mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-12 20:36:15 +01:00
glib-mkenums: Python2: use locale encoding when redirecting stdout
In case of Python 2 and stdout being redirected to a file, sys.stdout.encoding is None and it defaults ASCII for encoding text. To match the behaviour of Python 3, which uses the locale encoding also when redirecting to a file, wrap sys.stdout with a StreamWriter using the locale encoding. https://bugzilla.gnome.org/show_bug.cgi?id=785113
This commit is contained in:
parent
a7926117dd
commit
867b5e6f90
@ -16,6 +16,8 @@ import sys
|
|||||||
import tempfile
|
import tempfile
|
||||||
import io
|
import io
|
||||||
import errno
|
import errno
|
||||||
|
import codecs
|
||||||
|
import locale
|
||||||
|
|
||||||
VERSION_STR = '''glib-mkenums version @VERSION@
|
VERSION_STR = '''glib-mkenums version @VERSION@
|
||||||
glib-genmarshal comes with ABSOLUTELY NO WARRANTY.
|
glib-genmarshal comes with ABSOLUTELY NO WARRANTY.
|
||||||
@ -24,7 +26,13 @@ the GNU General Public License which can be found in the
|
|||||||
GLib source package. Sources, examples and contact
|
GLib source package. Sources, examples and contact
|
||||||
information are available at http://www.gtk.org'''
|
information are available at http://www.gtk.org'''
|
||||||
|
|
||||||
output_stream = sys.stdout
|
# Python 2 defaults to ASCII in case stdout is redirected.
|
||||||
|
# This should make it match Python 3, which uses the locale encoding.
|
||||||
|
if sys.stdout.encoding is None:
|
||||||
|
output_stream = codecs.getwriter(
|
||||||
|
locale.getpreferredencoding())(sys.stdout)
|
||||||
|
else:
|
||||||
|
output_stream = sys.stdout
|
||||||
|
|
||||||
# pylint: disable=too-few-public-methods
|
# pylint: disable=too-few-public-methods
|
||||||
class Color:
|
class Color:
|
||||||
|
Loading…
Reference in New Issue
Block a user