Re: [PATCH] gitk: Fix display of copyright symbol in non-utf-8 locales
- From
Pat Thoyts <patthoyts@users.sourceforge.net>
- Date
- Mar 22, 2010, 22:58 UTC
- Message-ID
- <87pr2wc6bo.fsf@fox.patthoyts.tk>
- In-Reply-To
- <20100320061452.GA26224@progeny.tock>
Jonathan Nieder <jrnieder@gmail.com> writes:
Show 48 quoted lines
>Unless the ‘-encoding’ option is supplied, wish interprets source >files using the default system encoding, which depends on locale. >This can cause the copyright symbol to display incorrectly in gitk’s >about dialog. > >The -encoding option was added to tcl in version 8.1. > >Reported-by: Pat Thoyts <patthoyts@users.sourceforge.net> >Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> >--- >Hi, > >Pat Thoyts wrote: > >> The script file uses utf-8 encoding but when sourced it will be read >> using the default system encoding which is never utf8 on windows. This >> causes the copyright symbol to display incorrectly in the about dialog. > >I can reproduce this in Linux with LANG=de_DE@euro ./gitk. > >> Using the unicode escape sequence avoids incorrect decoding but does >> require a double escape in the .po files. > >When I tried applying your patch, running “make update-po” seemed to >undo its effect on translations. I am also worried about what would >happen in locales where ASCII is not a subset of the native character >set, or other uses of non-ASCII characters in the translated messages. > >Maybe the following would be safer? I haven’t looked at the effect on >translations yet. > > gitk | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > >diff --git a/gitk b/gitk >index 1f36a3e..a7c9a9a 100755 >--- a/gitk >+++ b/gitk >@@ -1,6 +1,6 @@ > #!/bin/sh > # Tcl ignores the next line -*- tcl -*- \ >-exec wish "$0" -- "$@" >+exec wish -encoding utf-8 "$0" -- "$@" > > # Copyright © 2005-2009 Paul Mackerras. All rights reserved. > # This program is free software; it may be used, copied, modified >-- >1.7.0.2
I would much rather see any fault in the makefile fixed than use source -encoding in all the various places this script might get loaded from. THere are two characters in this file that are not ASCII and one of them is in a comment. We could even just use (c) to simplify this. However, \u00a9 is the correct unicode escape sequence for tcl to get a copyright character into the script in a way that is independent of the encoding. The escape sequence should be passed through unchanged in any translations - tcl wants to see exactly \u00a9 and everyone is using a copyright glyph here.
-- Pat Thoyts http://www.patthoyts.tk/ PGP fingerprint 2C 6E 98 07 2C 59 C8 97 10 CE 11 E6 04 E0 B9 DD