mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 14:58:03 +03:00
patch: show lower-ed translated message correctly
Before this patch, patch.filterpatch() shows meaningless translation of help message for chunk selection in some encoding. It applies str.lower() instead of encoding.lower(str) on translated message, but some encoding uses 0x41(A) - 0x5a(Z) as the second or later byte of multi-byte character (for example, ja_JP.cp932), and str.lower() causes unexpected result. To show lower-ed translated message correctly, this patch replaces str.lower() by encoding.lower(str).
This commit is contained in:
parent
8d72832828
commit
63611bb308
@ -1010,7 +1010,7 @@ def filterpatch(ui, headers, operation=None):
|
||||
ui.write("\n")
|
||||
if r == 8: # ?
|
||||
for c, t in ui.extractchoices(resps)[1]:
|
||||
ui.write('%s - %s\n' % (c, t.lower()))
|
||||
ui.write('%s - %s\n' % (c, encoding.lower(t)))
|
||||
continue
|
||||
elif r == 0: # yes
|
||||
ret = True
|
||||
|
@ -878,6 +878,32 @@ Help, quit
|
||||
abort: user quit
|
||||
[255]
|
||||
|
||||
#if gettext
|
||||
|
||||
Test translated help message
|
||||
|
||||
str.lower() instead of encoding.lower(str) on translated message might
|
||||
make message meaningless, because some encoding uses 0x41(A) - 0x5a(Z)
|
||||
as the second or later byte of multi-byte character.
|
||||
|
||||
For example, "\x8bL\x98^" (translation of "record" in ja_JP.cp932)
|
||||
contains 0x4c (L). str.lower() replaces 0x4c(L) by 0x6c(l) and this
|
||||
replacement makes message meaningless.
|
||||
|
||||
This tests that translated help message is lower()-ed correctly.
|
||||
|
||||
$ LANGUAGE=ja
|
||||
$ export LANGUAGE
|
||||
|
||||
$ hg commit -i --encoding cp932 2>&1 <<EOF | grep '^y - '
|
||||
> ?
|
||||
> q
|
||||
> EOF
|
||||
y - \x82\xb1\x82\xcc\x95\xcf\x8dX\x82\xf0\x8bL\x98^(yes) (esc)
|
||||
|
||||
$ LANGUAGE=
|
||||
#endif
|
||||
|
||||
Skip
|
||||
|
||||
$ hg commit -i <<EOF
|
||||
|
Loading…
Reference in New Issue
Block a user