From 59ab21ed078cb165289b01de9af7c153050c58fd Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 8 Aug 2001 07:35:57 +0000 Subject: [PATCH] The file name given to -E can now contain drive letters on windows, if they 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 | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main.c b/src/main.c index 7e2ac4669..9c59ab3d4 100644 --- a/src/main.c +++ b/src/main.c @@ -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++;