posix: check for executable bits on files identified by findexe function
authorRobert Jones <rob@redshirtsoftware.com>
Wed, 24 Aug 2011 05:42:41 -0400
changeset 15056 8413916df816
parent 15054 7c03e3b1b858
child 15057 774da7121fc9
posix: check for executable bits on files identified by findexe function
mercurial/posix.py
--- a/mercurial/posix.py	Thu Aug 25 16:21:53 2011 -0500
+++ b/mercurial/posix.py	Wed Aug 24 05:42:41 2011 -0400
@@ -256,7 +256,9 @@
     for path in os.environ.get('PATH', '').split(os.pathsep):
         executable = findexisting(os.path.join(path, command))
         if executable is not None:
-            return executable
+            st = os.stat(executable)
+            if (st.st_mode & (stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)):
+                return executable
     return None
 
 def setsignalhandler():