[libcxx-commits] [PATCH] D91137: [5/N] [libcxx] Convert paths to/from the right narrow code page for narrow strings on windows
Martin Storsjö via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Nov 16 14:52:44 PST 2020
mstorsjo added inline comments.
================
Comment at: libcxx/src/filesystem/operations.cpp:1675
+ ErrorHandler<size_t> err("__wide_to_char", nullptr);
+ UINT codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP;
+ BOOL used_default = FALSE;
----------------
amccarth wrote:
> I'm not clear on what AreFileApisANSI does, nor have I found it using code search. In what case would any APIs use the OEM code page when the user's code page is something else?
>
> I'm also wondering whether CP_ACP should be CP_THREAD_ACP, which, by default, will be the user's current code page which could be different than the system code page.
See D91133 for a testcase (which passes with MSVC STL) for this and some more - a process can switch between whether the narrow file apis take OEM CP or ACP with SetFileApisToANSI() and SetFileApisToOEM().
The MSVC STL sources don't seem to use CP_THREAD_ACP at least... however they also check for `___lc_codepage_func() == CP_UTF8`, which I guess we also should...
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91137/new/
https://reviews.llvm.org/D91137
More information about the libcxx-commits
mailing list