 +
 +    if (*it == '\0' || it == end) return NONE;
 +
++    if (!isalpha(*it) && *it != '/' && *it != '\\' && *it != ':' && *it != '-' && *it != '.') {
++        return find_path_start_and_type(move(src, 1), true, end);
++    }
++
 +    path_type result = NONE;
 +
 +    if (isalpha(*it) && *(it + 1) == ':') {

+        }
+
+        if (isspace(*srcit)) {
+            if (prev_was_space) {
+                continue;
+            }
+
+            prev_was_space = true;
+            in_string2 = in_string;
+            sub_convert(&srcbeg, &srcit, &dstit, dstend, &in_string2);
+            srcbeg = srcit + 1;
+        }
+
+        if (!isspace(*srcit) && prev_was_space) {
+            prev_was_space = false;
+            srcbeg = srcit;
+            if (in_string != in_string2) {
+                srcbeg += 1;
+            }
+            in_string = in_string2;
+        }
+    }
+

+    const char* srcit = src;
+    const char* srcbeg = src;
+
+    int in_string = false;
+
+    for (; *srcit != '\0'; ++srcit) {
+        if (*srcit == '\'' || *srcit == '"') {
+            if (in_string == *srcit) {
+                if (*(srcit + 1) != in_string) {
+                    in_string = 0;
+                }
+            } else {
+                in_string = *srcit;
+            }
