Mercurial > emacs
comparison lisp/progmodes/executable.el @ 39933:89f6eeae2af3
(executable-binary-suffixes): Make varalias.
(executable-find): Use exec-suffixes.
(executable-set-magic): Don't use make-local-hook.
| author | Stefan Monnier <monnier@iro.umontreal.ca> |
|---|---|
| date | Sun, 14 Oct 2001 20:09:46 +0000 |
| parents | 0e498f6c5404 |
| children | 52ad052cb312 d7ddb3e565de |
comparison
equal
deleted
inserted
replaced
| 39932:ade54d52bb06 | 39933:89f6eeae2af3 |
|---|---|
| 136 ("^\\(.+\\):\\([0-9]+\\): " 1 2)) | 136 ("^\\(.+\\):\\([0-9]+\\): " 1 2)) |
| 137 "Alist of regexps used to match script errors. | 137 "Alist of regexps used to match script errors. |
| 138 See `compilation-error-regexp-alist'.") | 138 See `compilation-error-regexp-alist'.") |
| 139 | 139 |
| 140 ;; The C function openp slightly modified would do the trick fine | 140 ;; The C function openp slightly modified would do the trick fine |
| 141 (defvar executable-binary-suffixes | 141 (defvaralias 'executable-binary-suffixes 'exec-suffixes) |
| 142 (if (memq system-type '(ms-dos windows-nt)) | |
| 143 '(".exe" ".com" ".bat" ".cmd" ".btm" "") | |
| 144 '(""))) | |
| 145 | 142 |
| 146 ;;;###autoload | 143 ;;;###autoload |
| 147 (defun executable-find (command) | 144 (defun executable-find (command) |
| 148 "Search for COMMAND in exec-path and return the absolute file name. | 145 "Search for COMMAND in `exec-path' and return the absolute file name. |
| 149 Return nil if COMMAND is not found anywhere in `exec-path'." | 146 Return nil if COMMAND is not found anywhere in `exec-path'." |
| 150 (let ((list exec-path) | 147 (let ((list exec-path) |
| 151 file) | 148 file) |
| 152 (while list | 149 (while list |
| 153 (setq list | 150 (setq list |
| 154 (if (and (setq file (expand-file-name command (car list))) | 151 (if (and (setq file (expand-file-name command (car list))) |
| 155 (let ((suffixes executable-binary-suffixes) | 152 (let ((suffixes exec-suffixes) |
| 156 candidate) | 153 candidate) |
| 157 (while suffixes | 154 (while suffixes |
| 158 (setq candidate (concat file (car suffixes))) | 155 (setq candidate (concat file (car suffixes))) |
| 159 (if (and (file-executable-p candidate) | 156 (if (and (file-executable-p candidate) |
| 160 (not (file-directory-p candidate))) | 157 (not (file-directory-p candidate))) |
| 231 (> (point-min) 1) | 228 (> (point-min) 1) |
| 232 (save-excursion | 229 (save-excursion |
| 233 (let ((point (point-marker)) | 230 (let ((point (point-marker)) |
| 234 (buffer-modified-p (buffer-modified-p))) | 231 (buffer-modified-p (buffer-modified-p))) |
| 235 (goto-char (point-min)) | 232 (goto-char (point-min)) |
| 236 (make-local-hook 'after-save-hook) | |
| 237 (add-hook 'after-save-hook 'executable-chmod nil t) | 233 (add-hook 'after-save-hook 'executable-chmod nil t) |
| 238 (if (looking-at "#![ \t]*\\(.*\\)$") | 234 (if (looking-at "#![ \t]*\\(.*\\)$") |
| 239 (and (goto-char (match-beginning 1)) | 235 (and (goto-char (match-beginning 1)) |
| 240 ;; If the line ends in a space, | 236 ;; If the line ends in a space, |
| 241 ;; don't offer to change it. | 237 ;; don't offer to change it. |
