changeset 22559:d9e33b33a02f

(executable-binary-suffixes): New variable. (executable-find): Use it to look for executable program files.
author Richard M. Stallman <rms@gnu.org>
date Tue, 23 Jun 1998 18:37:01 +0000
parents a342b7785783
children ce6e85fd8036
files lisp/progmodes/executable.el
diffstat 1 files changed, 19 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/executable.el	Tue Jun 23 17:45:10 1998 +0000
+++ b/lisp/progmodes/executable.el	Tue Jun 23 18:37:01 1998 +0000
@@ -136,21 +136,33 @@
 See `compilation-error-regexp-alist'.")
 
 ;; The C function openp slightly modified would do the trick fine
+(defvar executable-binary-suffixes
+  (if (memq system-type '(ms-dos windows-nt))
+      '(".exe" ".com" ".bat" ".cmd" ".btm" "")
+    '("")))
 (defun executable-find (command)
   "Search for COMMAND in exec-path and return the absolute file name.
 Return nil if COMMAND is not found anywhere in `exec-path'."
   (let ((list exec-path)
 	file)
     (while list
-      (setq list (if (and (setq file (expand-file-name command (car list)))
-			  (file-executable-p file)
-			  (not (file-directory-p file)))
-		     nil
-		   (setq file nil)
-		   (cdr list))))
+      (setq list
+	    (if (and (setq file (expand-file-name command (car list)))
+		     (let ((suffixes executable-binary-suffixes)
+			   candidate)
+		       (while suffixes
+			 (setq candidate (concat file (car suffixes)))
+			 (if (and (file-executable-p candidate)
+				  (not (file-directory-p candidate)))
+			     (setq suffixes nil)
+			   (setq suffixes (cdr suffixes))
+			   (setq candidate nil)))
+		       (setq file candidate)))
+		nil
+	      (setq file nil)
+	      (cdr list))))
     file))
 
-
 (defun executable-chmod ()
   "This gets called after saving a file to assure that it be executable.
 You can set the absolute or relative mode in variable `executable-chmod' for