[PATCH] Windows: Add support for unicode command lines

David Majnemer david.majnemer at gmail.com
Fri Oct 4 05:14:35 PDT 2013


Hi aaron.ballman, Bigcheese, rnk, ruiu,

The MSVCRT deliberately sends main() code-page specific characters.
This isn't too useful to LLVM as we end up converting the arguments to
UTF-16 and subsequently attempt to use the result as, for example, a
file name.  Instead, we need to have the ability to access the Unicode
command line and transform it to UTF-8.

This has the distinct advantage over using the MSVC-specific wmain()
function as our entry point because:
 - It doesn't work on cygwin.
 - It only work on MinGW with caveats and only then on certain versions.
 - We get to keep our entry point as main(). :)

N.B.  This patch includes fixes to other parts of lib/Support/Windows
s.t. we would be able to take advantage of getting the Unicode paths.
E.G.  clang spawning clang -cc1 would want to give it Unicode arguments.

http://llvm-reviews.chandlerc.com/D1834

Files:
  autoconf/configure.ac
  cmake/config-ix.cmake
  cmake/modules/LLVM-Config.cmake
  cmake/modules/TableGen.cmake
  configure
  include/llvm/Config/config.h.cmake
  include/llvm/Config/config.h.in
  include/llvm/Support/Process.h
  lib/Support/Unix/Process.inc
  lib/Support/Windows/DynamicLibrary.inc
  lib/Support/Windows/Path.inc
  lib/Support/Windows/Process.inc
  lib/Support/Windows/Program.inc
  lib/Support/Windows/Signals.inc
  lib/Support/Windows/Windows.h
  projects/sample/autoconf/configure.ac
  projects/sample/configure
  utils/FileCheck/CMakeLists.txt
  utils/FileUpdate/CMakeLists.txt
  utils/not/CMakeLists.txt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D1834.1.patch
Type: text/x-patch
Size: 22572 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131004/fb9c2e35/attachment.bin>


More information about the llvm-commits mailing list