summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Wendel <h_wendel@cojobo.net>2005-08-11 11:27:30 +0000
committerHeinrich Wendel <h_wendel@cojobo.net>2005-08-11 11:27:30 +0000
commitada2185d92e7200e8a0b406bcef34c3eb7a18d52 (patch)
treeb91fedd9f3f7a7d128f5356f04d79d180d5374cb
parent92b6c4099c09201e41d765d5eeeff1906e8a4e38 (diff)
add tryexec feature
-rw-r--r--ChangeLog3
-rw-r--r--xdg/Menu.py22
2 files changed, 14 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index aa40273..66bf2e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
Version 0.15
+2005-08-10 Heinrich Wendel <h_wendel@cojoob.net>
+ * Menu.py: Add support for TryExec
+
2005-08-09 Heinrich Wendel <h_wendel@cojobo.net>
* Menu.py: Unicode bug fixed!
* IconTheme.py: small speedup
diff --git a/xdg/Menu.py b/xdg/Menu.py
index 6fd234f..a307d17 100644
--- a/xdg/Menu.py
+++ b/xdg/Menu.py
@@ -1,8 +1,6 @@
"""
Implementation of the XDG Menu Specification Version 1.0.draft-1
http://standards.freedesktop.org/menu-spec/
-
-TODO: TryExec / NoExec
"""
from __future__ import generators
@@ -972,15 +970,17 @@ def sort(menu):
menu.Entries.remove(entry)
def __find_executable(executable):
- paths = os.environ['PATH'].split(os.pathsep)
- if not os.path.isfile(executable):
- for p in paths:
- f = os.path.join(p, executable)
- if os.path.isfile(f):
- return f
- return None
- else:
- return executable
+ paths = os.environ['PATH'].split(os.pathsep)
+ if not os.path.isfile(executable):
+ for p in paths:
+ f = os.path.join(p, executable)
+ if os.path.isfile(f):
+ if os.access(f, os.X_OK):
+ return f
+ else:
+ if os.access(f, os.X_OK):
+ return executable
+ return None
# inline tags
def __parse_inline(submenu, menu):