check for the x bit when locating an executable
[sface.git] / sface / sfiprocess.py
index fac19db..f8dc206 100644 (file)
@@ -13,7 +13,7 @@ def find_executable(exec_name):
     paths = os.getenv("PATH").split(':')
     for p in paths:
         exec_path = os.path.join(p, exec_name)
-        if os.path.exists(exec_path):
+        if os.path.exists(exec_path) and os.access(exec_path,os.X_OK):
             return exec_path
     return None
 
@@ -64,7 +64,15 @@ class SfiProcess(QObject):
         output = self.process.readAllStandardOutput()
         self.output = self.output + output
         if config.debug:
-            print output
+            try:
+                print output
+            except IOError, e:
+                if (e.errno == 4):
+                    # XXX why is this happening??
+                    print "*** caught EINTR"
+                else:
+                    raise
+
 
     def processStandardError(self):
         print self.process.readAllStandardError()