]> granicus.if.org Git - curl/commitdiff
The file name given to -E can now contain drive letters on windows, if they
authorDaniel Stenberg <daniel@haxx.se>
Wed, 8 Aug 2001 07:35:57 +0000 (07:35 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 8 Aug 2001 07:35:57 +0000 (07:35 +0000)
start the file name as in 'X:\' where X is any letter. The colon otherwise
normally separate the file name from the password.

src/main.c

index 7e2ac4669e8f42c266b3d66166fef2f0ae73b65f..9c59ab3d483c99aa3c8cd5aa0f75c18e64f06d77 100644 (file)
@@ -899,7 +899,23 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
       }
       else {
        char *ptr = strchr(nextarg, ':');
-       if(ptr) {
+        /* Since we live in a world of weirdness and confusion, the win32
+           dudes can use : when using drive letters and thus
+           c:\file:password needs to work. In order not to break
+           compatibility, we still use : as separator, but we try to detect
+           when it is used for a file name! On windows. */
+#ifdef WIN32
+        if(ptr &&
+           (ptr == &nextarg[1]) &&
+           (nextarg[2] == '\\') &&
+           (isalpha((int)nextarg[0])) )
+          /* colon in the second column, followed by a backslash, and the
+             first character is an alphabetic letter:
+
+             this is a drive letter colon */
+          ptr = strchr(&nextarg[3], ':'); /* find the next one instead */
+#endif
+        if(ptr) {
          /* we have a password too */
          *ptr=0;
          ptr++;