From: Tatsuhiro Tsujikawa Date: Mon, 14 May 2012 13:46:15 +0000 (+0900) Subject: Always create directory hierarchy for Metalink. X-Git-Tag: curl-7_27_0~342 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c3ef63f16743202eae8b0a1207130a5ba65b8ec2;p=curl Always create directory hierarchy for Metalink. Filenames contained in Metalink file can include directory information. Filenames are unique in Metalink file, taking into account the directory information. So we need to create the directory hierarchy. Curl has --create-dirs option, but we create directory hierarchy for Metalink downloads regardless of the option value. This patch also put metalink int variable outside of HAVE_LIBMETALINK guard. This reduces the number of #ifdefs. --- diff --git a/src/tool_operate.c b/src/tool_operate.c index be841e7e7..0d17329b0 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -406,8 +406,9 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) int infilenum; URLGlob *inglob; + int metalink = 0; /* nonzero for metalink download. Put outside of + HAVE_LIBMETALINK to reduce #ifdef */ #ifdef HAVE_LIBMETALINK - int metalink; /* nonzero for metalink download */ struct metalinkfile *mlfile; metalink_resource_t **mlres; #endif /* HAVE_LIBMETALINK */ @@ -427,7 +428,6 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) mlres = mlfile->file->resources; } else { - metalink = 0; mlfile = NULL; mlres = NULL; } @@ -642,7 +642,7 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) /* Create the directory hierarchy, if not pre-existent to a multiple file output call */ - if(config->create_dirs) { + if(config->create_dirs || metalink) { res = create_dir_hierarchy(outfile, config->errors); /* create_dir_hierarchy shows error upon CURLE_WRITE_ERROR */ if(res == CURLE_WRITE_ERROR)