Mercurial > emacs
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