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: http://git.ipfire.org/?a=commitdiff_plain;h=c3ef63f16743202eae8b0a1207130a5ba65b8ec2;p=thirdparty%2Fcurl.git 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 be841e7e72..0d17329b09 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)