diff options
-rw-r--r-- | Source/cmFileCommand.cxx | 8 | ||||
-rw-r--r-- | Source/cmFileCommand.h | 6 |
2 files changed, 10 insertions, 4 deletions
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 3728a5f..a30b704 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -1970,7 +1970,7 @@ cmFileCommand::HandleDownloadCommand(std::vector<std::string> } i++; } - std::ofstream fout(file.c_str()); + std::ofstream fout(file.c_str(), std::ios::binary); if(!fout) { this->SetError("FILE(DOWNLOAD url file TIMEOUT time) can not open " @@ -2008,8 +2008,10 @@ cmFileCommand::HandleDownloadCommand(std::vector<std::string> curl_easy_cleanup(curl); if(statusVar.size()) { - this->Makefile->AddDefinition(statusVar.c_str(), - curl_easy_strerror(res)); + cmOStringStream result; + result << (int)res << ";\"" << curl_easy_strerror(res) << "\""; + this->Makefile->AddDefinition(statusVar.c_str(), + result.str().c_str()); } curl_global_cleanup(); if(chunkDebug.size()) diff --git a/Source/cmFileCommand.h b/Source/cmFileCommand.h index 2631021..18f4c8f 100644 --- a/Source/cmFileCommand.h +++ b/Source/cmFileCommand.h @@ -150,7 +150,11 @@ public: "DOWNLOAD will download the givin URL to the given file. " "If LOG var is specified a log of the download will be put in var. " "If STATUS var is specified the status of the operation will" - " be put in var. If TIMEOUT time is specified, the operation will " + " be put in var. The status is returned in a list of length 2. " + "The first element is the numeric return value for the operation, " + "and the second element is a string value for the error. A 0 " + "numeric error means no error in the operation. " + "If TIMEOUT time is specified, the operation will " "timeout after time seconds, time can be specified as a float.\n"; } |