Use fwrite in the msvc tool instead of printf
authorReid Kleckner <rnk@google.com>
Fri, 26 Jul 2013 22:27:30 +0000 (15:27 -0700)
committerReid Kleckner <rnk@google.com>
Fri, 26 Jul 2013 22:27:30 +0000 (15:27 -0700)
This allows wide characters from the compiler to propagate through the
msvc tool.  Similar to ad76e867f782e75e0fed620e7b39f7099af154a9.

src/msvc_helper_main-win32.cc

index 8a0479c..ff9bc8e 100644 (file)
@@ -129,7 +129,9 @@ int MSVCHelperMain(int argc, char** argv) {
   // CLWrapper's output already as \r\n line endings, make sure the C runtime
   // doesn't expand this to \r\r\n.
   _setmode(_fileno(stdout), _O_BINARY);
-  printf("%s", output.c_str());
+  // Avoid printf and C strings, since the actual output might contain null
+  // bytes like UTF-16 does (yuck).
+  fwrite(&output[0], sizeof(char), output.size(), stdout);
 
   return exit_code;
 }