filesystem encoding fix for non-ascii home dir

bzr-revno: 1303
This commit is contained in:
Mattias Põldaru 2011-02-15 21:15:35 +02:00 committed by Raoul Snyman
commit 727c7d9804
1 changed files with 18 additions and 11 deletions

View File

@ -164,27 +164,34 @@ def _get_os_dir_path(dir_type):
""" """
Return a path based on which OS and environment we are running in. Return a path based on which OS and environment we are running in.
""" """
encoding = sys.getfilesystemencoding()
if sys.platform == u'win32': if sys.platform == u'win32':
if dir_type == AppLocation.DataDir: if dir_type == AppLocation.DataDir:
return os.path.join(os.getenv(u'APPDATA'), u'openlp', u'data') return os.path.join(unicode(os.getenv(u'APPDATA'), encoding),
return os.path.join(os.getenv(u'APPDATA'), u'openlp') u'openlp', u'data')
return os.path.join(unicode(os.getenv(u'APPDATA'), encoding),
u'openlp')
elif sys.platform == u'darwin': elif sys.platform == u'darwin':
if dir_type == AppLocation.DataDir: if dir_type == AppLocation.DataDir:
return os.path.join(os.getenv(u'HOME'), u'Library', return os.path.join(unicode(os.getenv(u'HOME'), encoding),
u'Application Support', u'openlp', u'Data') u'Library', u'Application Support', u'openlp', u'Data')
return os.path.join(os.getenv(u'HOME'), u'Library', return os.path.join(unicode(os.getenv(u'HOME'), encoding),
u'Application Support', u'openlp') u'Library', u'Application Support', u'openlp')
else: else:
if XDG_BASE_AVAILABLE: if XDG_BASE_AVAILABLE:
if dir_type == AppLocation.ConfigDir: if dir_type == AppLocation.ConfigDir:
return os.path.join(BaseDirectory.xdg_config_home, u'openlp') return os.path.join(unicode(BaseDirectory.xdg_config_home,
encoding), u'openlp')
elif dir_type == AppLocation.DataDir: elif dir_type == AppLocation.DataDir:
return os.path.join(BaseDirectory.xdg_data_home, u'openlp') return os.path.join(
unicode(BaseDirectory.xdg_data_home, encoding), u'openlp')
elif dir_type == AppLocation.CacheDir: elif dir_type == AppLocation.CacheDir:
return os.path.join(BaseDirectory.xdg_cache_home, u'openlp') return os.path.join(unicode(BaseDirectory.xdg_cache_home,
encoding), u'openlp')
if dir_type == AppLocation.DataDir: if dir_type == AppLocation.DataDir:
return os.path.join(os.getenv(u'HOME'), u'.openlp', u'data') return os.path.join(unicode(os.getenv(u'HOME'), encoding),
return os.path.join(os.getenv(u'HOME'), u'.openlp') u'.openlp', u'data')
return os.path.join(unicode(os.getenv(u'HOME'), encoding), u'.openlp')
def _get_frozen_path(frozen_option, non_frozen_option): def _get_frozen_path(frozen_option, non_frozen_option):
""" """