From 87c31aacfa16abfa781accf709947b6ff729beaf Mon Sep 17 00:00:00 2001 From: Yun Peng Date: Mon, 28 Aug 2017 16:20:49 +0200 Subject: Def Parser: make it work with long path better Previously, only arguments in parameter file are converted to long path. Now, we convert every path we use to long path. Change-Id: Iafff8b7a0f69f82cc9f8f9399b35528814eb7715 --- third_party/def_parser/def_parser_main.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'third_party/def_parser') diff --git a/third_party/def_parser/def_parser_main.cc b/third_party/def_parser/def_parser_main.cc index a92f0e9aa0..5268b0ced5 100644 --- a/third_party/def_parser/def_parser_main.cc +++ b/third_party/def_parser/def_parser_main.cc @@ -5,6 +5,7 @@ #include #include +#include "src/main/cpp/util/file_platform.h" #include "third_party/def_parser/def_parser.h" static const char* ws = " \t\n\r\f\v"; @@ -37,7 +38,9 @@ int main(int argc, char* argv[]) { return 1; } - FILE* fout = fopen(argv[1], "w+"); + std::wstring filenameW; + blaze_util::AsAbsoluteWindowsPath(argv[1], &filenameW); + FILE* fout = _wfopen(filenameW.c_str(), L"w+"); if (!fout) { std::cerr << "Could not open output .def file: " << argv[1] << "\n"; return 1; @@ -50,7 +53,8 @@ int main(int argc, char* argv[]) { for (int i = 3; i < argc; i++) { // If the argument starts with @, then treat it as a parameter file. if (argv[i][0] == '@') { - std::ifstream paramfile(argv[i] + 1, std::ios::in | std::ios::binary); + blaze_util::AsAbsoluteWindowsPath(argv[i] + 1, &filenameW); + std::ifstream paramfile(filenameW.c_str(), std::ios::in | std::ios::binary); if (!paramfile) { std::cerr << "Could not open parameter file: " << argv[i] << "\n"; return 1; -- cgit v1.2.3