aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/def_parser
diff options
context:
space:
mode:
authorGravatar Yun Peng <pcloudy@google.com>2017-08-28 16:20:49 +0200
committerGravatar Yun Peng <pcloudy@google.com>2017-09-05 09:56:12 +0200
commit87c31aacfa16abfa781accf709947b6ff729beaf (patch)
treed3a079d60ce1721beeec76fa99587a813c686a34 /third_party/def_parser
parentc77f891e7c214a39f9f196cd0a308f9ea5819ad9 (diff)
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
Diffstat (limited to 'third_party/def_parser')
-rw-r--r--third_party/def_parser/def_parser_main.cc8
1 files changed, 6 insertions, 2 deletions
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 <iostream>
#include <string>
+#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;