[r21146]GrampsLocale: Replace calls to sys.getfilesystemencoding
On MSWin and OSX, this call always returns the correct value (utf-8 on OSX, 'mbcs' on MSWin), but on Linux the return value is bizarrely dependent upon the environment. Replace it with a GrampsLocale function which returns 'utf-8' (the correct value for most Linux file systems) regardless of the environment. Also replace its use in print and write functions: It's the encoding of paths in the filesystem, not of the files's content, nor of the terminal's capabilities. The former is almost always utf-8 as long as we write the file, the latter is given by sys.stdout.encoding. Use the 'backslashreplace' error handler to avoid exceptions when we need to output unicode text to an ASCII terminal. svn: r21394
This commit is contained in:
@@ -1091,7 +1091,7 @@ class PluginRegister(object):
|
||||
lenpd = len(self.__plugindata)
|
||||
full_filename = os.path.join(dir, filename)
|
||||
if sys.version_info[0] < 3:
|
||||
full_filename = full_filename.encode(sys.getfilesystemencoding())
|
||||
full_filename = full_filename.encode(glocale.getfilesystemencoding())
|
||||
local_gettext = glocale.get_addon_translator(full_filename).gettext
|
||||
try:
|
||||
if win() and not sys.version_info[0] < 3:
|
||||
|
@@ -672,7 +672,7 @@ class GVPsDoc(GVDocBase):
|
||||
# :cairo does not work with Graphviz 2.26.3 and later See issue 4164
|
||||
# Covert filename to str using file system encoding.
|
||||
if sys.version_info[0] < 3:
|
||||
fname = self._filename.encode(sys.getfilesystemencoding())
|
||||
fname = self._filename.encode(glocale.getfilesystemencoding())
|
||||
else:
|
||||
fname = self._filename
|
||||
|
||||
@@ -720,7 +720,7 @@ class GVSvgDoc(GVDocBase):
|
||||
dotfile.close()
|
||||
# Covert filename to str using file system encoding.
|
||||
if sys.version_info[0] < 3:
|
||||
fname = self._filename.encode(sys.getfilesystemencoding())
|
||||
fname = self._filename.encode(glocale.getfilesystemencoding())
|
||||
else:
|
||||
fname = self._filename
|
||||
|
||||
@@ -763,7 +763,7 @@ class GVSvgzDoc(GVDocBase):
|
||||
dotfile.close()
|
||||
# Covert filename to str using file system encoding.
|
||||
if sys.version_info[0] < 3:
|
||||
fname = self._filename.encode(sys.getfilesystemencoding())
|
||||
fname = self._filename.encode(glocale.getfilesystemencoding())
|
||||
else:
|
||||
fname = self._filename
|
||||
|
||||
@@ -806,7 +806,7 @@ class GVPngDoc(GVDocBase):
|
||||
dotfile.close()
|
||||
# Covert filename to str using file system encoding.
|
||||
if sys.version_info[0] < 3:
|
||||
fname = self._filename.encode(sys.getfilesystemencoding())
|
||||
fname = self._filename.encode(glocale.getfilesystemencoding())
|
||||
else:
|
||||
fname = self._filename
|
||||
|
||||
@@ -849,7 +849,7 @@ class GVJpegDoc(GVDocBase):
|
||||
dotfile.close()
|
||||
# Covert filename to str using file system encoding.
|
||||
if sys.version_info[0] < 3:
|
||||
fname = self._filename.encode(sys.getfilesystemencoding())
|
||||
fname = self._filename.encode(glocale.getfilesystemencoding())
|
||||
else:
|
||||
fname = self._filename
|
||||
|
||||
@@ -892,7 +892,7 @@ class GVGifDoc(GVDocBase):
|
||||
dotfile.close()
|
||||
# Covert filename to str using file system encoding.
|
||||
if sys.version_info[0] < 3:
|
||||
fname = self._filename.encode(sys.getfilesystemencoding())
|
||||
fname = self._filename.encode(glocale.getfilesystemencoding())
|
||||
else:
|
||||
fname = self._filename
|
||||
|
||||
@@ -938,7 +938,7 @@ class GVPdfGvDoc(GVDocBase):
|
||||
dotfile.close()
|
||||
# Convert filename to str using file system encoding.
|
||||
if sys.version_info[0] < 3:
|
||||
fname = self._filename.encode(sys.getfilesystemencoding())
|
||||
fname = self._filename.encode(glocale.getfilesystemencoding())
|
||||
else:
|
||||
fname = self._filename
|
||||
|
||||
@@ -1003,7 +1003,7 @@ class GVPdfGsDoc(GVDocBase):
|
||||
|
||||
# Convert to PDF using ghostscript
|
||||
if sys.version_info[0] < 3:
|
||||
fname = self._filename.encode(sys.getfilesystemencoding())
|
||||
fname = self._filename.encode(glocale.getfilesystemencoding())
|
||||
else:
|
||||
fname = self._filename
|
||||
command = '%s -q -sDEVICE=pdfwrite -dNOPAUSE -dDEVICEWIDTHPOINTS=%d' \
|
||||
|
Reference in New Issue
Block a user