diff options
author | Heinrich Wendel <h_wendel@cojobo.net> | 2005-08-09 10:58:04 +0000 |
---|---|---|
committer | Heinrich Wendel <h_wendel@cojobo.net> | 2005-08-09 10:58:04 +0000 |
commit | 2195973b7fa026a3fc1af8ea2c9ff592fdf24801 (patch) | |
tree | e0d4a7cf2a89a69c913066646a502b8b74faeb17 | |
parent | e3f45ba22c9c81e766dcd301a31c18fd8200cd6b (diff) |
another fix
-rw-r--r-- | xdg/Menu.py | 46 |
1 files changed, 20 insertions, 26 deletions
diff --git a/xdg/Menu.py b/xdg/Menu.py index 16489bb..a153b82 100644 --- a/xdg/Menu.py +++ b/xdg/Menu.py @@ -751,13 +751,11 @@ def __parseMergeDir(value, child, filename, parent): if value: for item in os.listdir(value): try: - item.decode(locale.getpreferredencoding()).encode('utf-8') - except: + if os.path.splitext(item)[1] == ".menu": + __mergeFile(os.path.join(value, item), child, parent) + except UnicodeDecodeError: continue - if os.path.splitext(item)[1] == ".menu": - __mergeFile(os.path.join(value, item), child, parent) - def __parseDefaultMergeDirs(child, filename, parent): basename = os.path.splitext(os.path.basename(filename))[0] for dir in reversed(xdg_config_dirs): @@ -806,15 +804,13 @@ def __mergeLegacyDir(dir, prefix, filename, parent): for item in os.listdir(dir): try: - item.decode(locale.getpreferredencoding()).encode('utf-8') - except: + if item == ".directory": + m.Directories.append(item) + elif os.path.isdir(os.path.join(dir,item)): + m.addSubmenu(__mergeLegacyDir(os.path.join(dir,item), prefix, filename, parent)) + except UnicodeDecodeError: continue - if item == ".directory": - m.Directories.append(item) - elif os.path.isdir(os.path.join(dir,item)): - m.addSubmenu(__mergeLegacyDir(os.path.join(dir,item), prefix, filename, parent)) - tmp["cache"].addMenuEntries([dir],prefix, True) menuentries = tmp["cache"].getMenuEntries([dir], False) @@ -1005,11 +1001,6 @@ class MenuEntryCache: def __addFiles(self, dir, subdir, prefix, legacy): for item in os.listdir(os.path.join(dir,subdir)): - try: - item.decode(locale.getpreferredencoding()).encode('utf-8') - except: - continue - if os.path.splitext(item)[1] == ".desktop": try: menuentry = MenuEntry(os.path.join(subdir,item), dir, prefix) @@ -1037,14 +1028,17 @@ class MenuEntryCache: pass for dir in appdirs: for menuentry in self.cacheEntries[dir]: - if menuentry.DesktopFileID not in ids: - ids.append(menuentry.DesktopFileID) - list.append(menuentry) - elif menuentry.getType() == "System": - # FIXME: This is only 99% correct, but still... - i = list.index(menuentry) - e = list[i] - if e.getType() == "User": - e.Original = menuentry + try: + if menuentry.DesktopFileID not in ids: + ids.append(menuentry.DesktopFileID) + list.append(menuentry) + elif menuentry.getType() == "System": + # FIXME: This is only 99% correct, but still... + i = list.index(menuentry) + e = list[i] + if e.getType() == "User": + e.Original = menuentry + except UnicodeDecodeError: + continue self.cache[key] = list return list |