mirror of
https://github.com/moparisthebest/curl
synced 2025-02-28 17:31:46 -05:00
curl: make --create-dirs on windows grok both forward and backward slashes
Reported-by: Ryan Scott Fixes #1007
This commit is contained in:
parent
4a35bbbe8e
commit
ffa0709a88
@ -91,6 +91,14 @@ static void show_dir_errno(FILE *errors, const char *name)
|
||||
* should create all the dir* automagically
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
/* systems that may use either or when specifying a path */
|
||||
#define PATH_DELIMITERS "\\/"
|
||||
#else
|
||||
#define PATH_DELIMITERS DIR_CHAR
|
||||
#endif
|
||||
|
||||
|
||||
CURLcode create_dir_hierarchy(const char *outfile, FILE *errors)
|
||||
{
|
||||
char *tempdir;
|
||||
@ -114,10 +122,10 @@ CURLcode create_dir_hierarchy(const char *outfile, FILE *errors)
|
||||
|
||||
/* Allow strtok() here since this isn't used threaded */
|
||||
/* !checksrc! disable BANNEDFUNC 2 */
|
||||
tempdir = strtok(outdup, DIR_CHAR);
|
||||
tempdir = strtok(outdup, PATH_DELIMITERS);
|
||||
|
||||
while(tempdir != NULL) {
|
||||
tempdir2 = strtok(NULL, DIR_CHAR);
|
||||
tempdir2 = strtok(NULL, PATH_DELIMITERS);
|
||||
/* since strtok returns a token for the last word even
|
||||
if not ending with DIR_CHAR, we need to prune it */
|
||||
if(tempdir2 != NULL) {
|
||||
@ -125,7 +133,8 @@ CURLcode create_dir_hierarchy(const char *outfile, FILE *errors)
|
||||
if(dlen)
|
||||
snprintf(&dirbuildup[dlen], outlen - dlen, "%s%s", DIR_CHAR, tempdir);
|
||||
else {
|
||||
if(0 != strncmp(outdup, DIR_CHAR, 1))
|
||||
if(outdup == tempdir)
|
||||
/* the output string doesn't start with a separator */
|
||||
strcpy(dirbuildup, tempdir);
|
||||
else
|
||||
snprintf(dirbuildup, outlen, "%s%s", DIR_CHAR, tempdir);
|
||||
|
Loading…
x
Reference in New Issue
Block a user