[meld] Decode user data dir paths so that unicode usernames don't blow up



commit 5e43b73c3d038e28be7210e051c903f5356808cb
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sat Oct 12 08:03:52 2013 +1000

    Decode user data dir paths so that unicode usernames don't blow up

 meld/recent.py     |    1 +
 meld/util/prefs.py |   11 ++++++-----
 2 files changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/meld/recent.py b/meld/recent.py
index e20fac1..75c2a08 100644
--- a/meld/recent.py
+++ b/meld/recent.py
@@ -49,6 +49,7 @@ COMPARISON_TYPES = (TYPE_FILE, TYPE_FOLDER, TYPE_VC, TYPE_MERGE)
 class RecentFiles(object):
 
     recent_path = os.path.join(GLib.get_user_data_dir(), "meld")
+    recent_path = recent_path.decode('utf8')
     recent_suffix = ".meldcmp"
 
     # Recent data
diff --git a/meld/util/prefs.py b/meld/util/prefs.py
index 75aadd7..d34b566 100644
--- a/meld/util/prefs.py
+++ b/meld/util/prefs.py
@@ -37,7 +37,7 @@ p.color = "blue"
 import os
 import sys
 
-import glib
+from gi.repository import GLib
 
 
 class Value(object):
@@ -189,9 +189,10 @@ class ConfigParserPreferences(object):
         }
 
         if sys.platform == "win32":
-            pref_dir = os.path.join(os.getenv("APPDATA"), "Meld")
+            config_dir = GLib.get_user_config_dir().decode('utf8')
+            pref_dir = os.path.join(config_dir, "Meld")
         else:
-            pref_dir = os.path.join(glib.get_user_config_dir(), "meld")
+            pref_dir = os.path.join(GLib.get_user_config_dir(), "meld")
 
         if not os.path.exists(pref_dir):
             os.makedirs(pref_dir)
@@ -270,7 +271,7 @@ class ConfigParserPreferences(object):
 
 
 force_ini = os.path.exists(
-    os.path.join(glib.get_user_config_dir(), 'meld', 'use-rc-prefs'))
+    os.path.join(GLib.get_user_config_dir(), 'meld', 'use-rc-prefs'))
 skip_gconf = sys.platform == 'win32' or force_ini
 # Prefer gconf, falling back to configparser
 try:
@@ -283,7 +284,7 @@ try:
     client.set_int(key, os.getpid())
     client.unset(key)
     Preferences = GConfPreferences
-except (ImportError, glib.GError):
+except (ImportError, GLib.GError):
     try:
         import configparser
     except ImportError:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]