Subject: bug#33053: scm_i_mirror_backslashes assumes ASCII-compatible locale encoding

From: Mark H Weaver <[email-masked]>
Date: Fri, 19 Oct 2018 21:21:49 -0400

tags 33053 + notabug
close 33053
thanks

Mark H Weaver <[email-masked]> writes:

> Mark H Weaver <[email-masked]> writes:
>
>> The 'scm_i_mirror_backslashes' in load.c operates on C strings in the
>> locale encoding, and assumes that the locale encoding is ASCII
>> compatible.  In the Shift_JIS encoding, used in the "JP_jp.sjis" locale,
>> backslash '\' is mapped to a multibyte character, and the Yen sign '¥'
>> is represented using code 0x5C, the same code as backslash '\' in ASCII.
>>
>> As a result, users of the "JP_jp.sjis" locale will have Yen signs '¥' in
>> their file names converted into slashes by this function.
>
> I miswrote the locale name above.  The locale name is "ja_JP.sjis".

It seems that I was mistaken in my assumption that '\' is mapped to a
multibyte character in Shift_JIS.  According to John Cowan, "the
character at #\x5C is *functionally* a backslash that is *displayed* as
a yen sign".

It seems that this is not actually a bug in 'scm_i_mirror_backslashes',
so I'm closing this bug.

      Mark