+ {
+ const char *pathstr = c+pathl;
+ const char *namestr = NULL;
+ int found = strlen(pathstr)-1;
+ for(;found >= 0;found--)
+ {
+ if(pathstr[found] == ':')
+ break;
+ }
+ if (found != -1)
+ namestr = pathstr + found;
+ if (namestr)
+ {
+ if (!strncmp(namestr, "://", 3)) // The path is a url (e.g. "http://...")
+ {
+ namestr = strchr(namestr, ' ');
+ if (namestr)
+ {
+ path.assign(pathstr, namestr - pathstr);
+ if (*(namestr + 1))
+ name = namestr + 1;
+ }
+ }
+ else
+ {
+ if (pathstr != namestr)
+ path.assign(pathstr, namestr-pathstr);
+ if (*(namestr+1))
+ name=namestr+1;
+ }
+ }
+ else
+ path=pathstr;
+ }
+
+ path = decode(path);
+ name = decode(name);