summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Wendel <h_wendel@cojobo.net>2005-06-02 19:43:02 +0000
committerHeinrich Wendel <h_wendel@cojobo.net>2005-06-02 19:43:02 +0000
commitab21174c5e18c3b84a3f89087e832709f2105f74 (patch)
treea020199c2fbc23c0a82d249815760bd5dfc61b5c
parent9393e8e042e064b7ce299b78925d78297aab53a9 (diff)
fix detection of menu files
-rw-r--r--xdg/Menu.py24
-rw-r--r--xdg/MenuEditor.py2
2 files changed, 15 insertions, 11 deletions
diff --git a/xdg/Menu.py b/xdg/Menu.py
index da4252a..cd76aa4 100644
--- a/xdg/Menu.py
+++ b/xdg/Menu.py
@@ -475,17 +475,23 @@ class Header:
tmp = {}
+def __getFileName(filename):
+ for dir in xdg_config_dirs:
+ menuname = os.path.join (dir, "menus" , filename)
+ if os.path.isdir(dir) and os.path.isfile(menuname):
+ return menuname
+
def parse(filename=None):
- # if no file given, try default files
+ # conver to absolute path
+ if filename and not os.path.isabs(filename):
+ filename = __getFileName(filename)
+
+ # use default if no filename given
if not filename:
- for dir in xdg_config_dirs:
- filename = os.path.join (dir, "menus" , "applications.menu")
- if os.path.isdir(dir) and os.path.isfile(filename):
- break
+ filename = __getFileName("applications.menu")
- # convert to absolute path
- if not os.path.isabs(filename):
- filename = os.path.abspath(filename)
+ if not filename:
+ raise ParsingError('File not found', "/etc/xdg/menus/applications.menu")
# check if it is a .menu file
if not os.path.splitext(filename)[1] == ".menu":
@@ -494,8 +500,6 @@ def parse(filename=None):
# create xml parser
try:
doc = xml.dom.minidom.parse(filename)
- except IOError:
- raise ParsingError('File not found', filename)
except xml.parsers.expat.ExpatError:
raise ParsingError('Not a valid .menu file', filename)
diff --git a/xdg/MenuEditor.py b/xdg/MenuEditor.py
index fc6c0c1..9061834 100644
--- a/xdg/MenuEditor.py
+++ b/xdg/MenuEditor.py
@@ -32,7 +32,7 @@ class MenuEditor:
def parse(self, menu=None, filename=None, root=False):
if isinstance(menu, Menu):
self.menu = menu
- elif isinstance(menu, unicode):
+ elif menu:
self.menu = parse(menu)
else:
self.menu = parse()