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.
This commit is contained in:
parent
edec65246a
commit
59ab21ed07
18
src/main.c
18
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++;
|
||||
|
Loading…
Reference in New Issue
Block a user