shader-debugger: Force file/stdout IO as UTF-8
authorRémi Cardona <remi@gentoo.org>
Sun, 17 Aug 2014 23:09:15 +0000 (01:09 +0200)
committerDamien Lespiau <damien.lespiau@intel.com>
Wed, 27 Aug 2014 07:56:08 +0000 (08:56 +0100)
Not all locales on linux are UTF-8, the most notable being the C locale.
Python will use the ASCII codec for stream IO in this case and will barf
on the Copyright sign at the top of .g4a files.

Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=519434
Signed-off-by: Rémi Cardona <remi@gentoo.org>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
debugger/system_routine/pre_cpp.py

index effea0e..584d2af 100755 (executable)
 
 import sys,re
 
-file = open(sys.argv[1], "r")
+# make sure both input file and stdout are handled as utf-8 text, regardless
+# of current locale (eg. LANG=C which tells python to use ascii encoding)
+sys.stdout = open(sys.__stdout__.fileno(), "a", encoding="utf-8")
+file = open(sys.argv[1], "r", encoding="utf-8")
 
 lines = file.readlines()
 len(lines)