65 lines
2.1 KiB
Diff
65 lines
2.1 KiB
Diff
From c03602f3d5456d59fccfc8ad7d41c8c6f1a6d593 Mon Sep 17 00:00:00 2001
|
|
From: Andrew Chadwick <a.t.chadwick@gmail.com>
|
|
Date: Sat, 2 Apr 2016 19:08:44 +0100
|
|
Subject: [PATCH] Cherry-pick fixes for GLib 2.48 from master
|
|
|
|
This commit backports the following changes from master:
|
|
|
|
* dcfcffd1cbfeaa07dc9d2798fcdf713d5315d2ed
|
|
* 11a128e801e5facb63e54dcbf626729cc15f5e84
|
|
* a0ff39936a824f0677ce1dc075c77f0097edfae5
|
|
|
|
Addresses mypaint/mypaint#634.
|
|
---
|
|
lib/glib.py | 15 ++++++++++-----
|
|
1 file changed, 10 insertions(+), 5 deletions(-)
|
|
|
|
diff --git lib/glib.py lib/glib.py
|
|
index 8fb203d..ca4f34b 100644
|
|
--- lib/glib.py
|
|
+++ lib/glib.py
|
|
@@ -1,5 +1,5 @@
|
|
# This file is part of MyPaint.
|
|
-# Copyright (C) 2015 by Andrew Chadwick <a.t.chadwick@gmail.com>
|
|
+# Copyright (C) 2015-2016 by the MyPaint Development Team.
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -19,11 +19,12 @@
|
|
## Imports
|
|
|
|
import sys
|
|
-from logging import getLogger
|
|
-logger = getLogger(__name__)
|
|
+import logging
|
|
|
|
from gi.repository import GLib
|
|
|
|
+logger = logging.getLogger(__name__)
|
|
+
|
|
|
|
## File path getter functions
|
|
|
|
@@ -35,7 +36,6 @@ def filename_to_unicode(opsysstring):
|
|
:returns: the converted filename
|
|
:rtype: unicode
|
|
|
|
- >>> from gi.repository import GLib
|
|
>>> filename_to_unicode('/ascii/only/path')
|
|
u'/ascii/only/path'
|
|
>>> filename_to_unicode(None) is None
|
|
@@ -54,7 +54,12 @@ def filename_to_unicode(opsysstring):
|
|
# Other systems are dependent in opaque ways on the environment.
|
|
if not isinstance(opsysstring, str):
|
|
raise TypeError("Argument must be bytes")
|
|
- ustring = GLib.filename_to_utf8(opsysstring, -1, 0, 0)
|
|
+ # This function's annotation seems to vary quite a bit.
|
|
+ # See https://github.com/mypaint/mypaint/issues/634
|
|
+ try:
|
|
+ ustring, _, _ = GLib.filename_to_utf8(opsysstring, -1)
|
|
+ except TypeError:
|
|
+ ustring = GLib.filename_to_utf8(opsysstring, -1, 0, 0)
|
|
if ustring is None:
|
|
raise UnicodeDecodeError(
|
|
"GLib failed to convert %r to a UTF-8 string. "
|