
Hi Beman,
In detail::narrow_path_api(), GetShortPathNameW() is used for getting the short 8.3 form names. This function returns an Unicode string which contains non-ASCII characters. So, mapping from Unicode to ANSI is necessary.
This is a tough one for me; the test cases you sent separately work fine on my Win XP SP2 English edition. The differences in test results may have more to do with codepage differences that edition differences.
Yes. For example, my test results: Case A: (Japanese Only) L"\u3053\u3093\u306B\u3061\u306F.txt" -> L"\u3053\u3093\u306B~1.TXT" Case B: (Chinese, but contains CJK Unified Ideograph) L"\u4F60\u597D.txt" -> L"\u597DD0E7~1.TXT" Case C: (Chinese Only) L"\u4F60\u597D.txt" -> L"7464~1.TXT" I think that your environment corresponds to the case C.
In any case, I applied your patch to CVS.
Thanks! Regards, Takeshi Mouri