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 {
|
else {
|
||||||
char *ptr = strchr(nextarg, ':');
|
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 */
|
/* we have a password too */
|
||||||
*ptr=0;
|
*ptr=0;
|
||||||
ptr++;
|
ptr++;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user