 +    ESCAPED_PATH,
 +    ROOTED_PATH,
 +    POSIX_PATH_LIST,
++    RELATIVE_PATH,
 +    URL
 +} path_type;
 +

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

+
+    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) == ':') {
