Mercurial > emacs
changeset 69149:b5043066337b
(sh-mode): Fix bug: Arrange to use
the default shell if filename is not available.
author | Thien-Thi Nguyen <ttn@gnuvola.org> |
---|---|
date | Sat, 25 Feb 2006 11:23:12 +0000 |
parents | ed7ce86c68db |
children | 088a76f85c2a |
files | lisp/progmodes/sh-script.el |
diffstat | 1 files changed, 21 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/sh-script.el Sat Feb 25 01:48:09 2006 +0000 +++ b/lisp/progmodes/sh-script.el Sat Feb 25 11:23:12 2006 +0000 @@ -1430,25 +1430,27 @@ (set (make-local-variable 'parse-sexp-ignore-comments) t) ;; Parse or insert magic number for exec, and set all variables depending ;; on the shell thus determined. - (let ((interpreter - (save-excursion - (goto-char (point-min)) - (cond ((looking-at "#![ \t]?\\([^ \t\n]*/bin/env[ \t]\\)?\\([^ \t\n]+\\)") - (match-string 2)) - ((and buffer-file-name - (string-match "\\.m?spec\\'" buffer-file-name)) - "rpm"))))) - (unless interpreter - (setq interpreter - (cond ((string-match "[.]sh\\>" buffer-file-name) - "sh") - ((string-match "[.]bash\\>" buffer-file-name) - "bash") - ((string-match "[.]ksh\\>" buffer-file-name) - "ksh") - ((string-match "[.]csh\\>" buffer-file-name) - "csh")))) - (sh-set-shell (or interpreter sh-shell-file) nil nil)) + (sh-set-shell + (cond ((save-excursion + (goto-char (point-min)) + (looking-at "#![ \t]?\\([^ \t\n]*/bin/env[ \t]\\)?\\([^ \t\n]+\\)")) + (match-string 2)) + ((not buffer-file-name) + sh-shell-file) + ;; Checks that use `buffer-file-name' follow. + ((string-match "\\.m?spec\\'" buffer-file-name) + "rpm") + ((string-match "[.]sh\\>" buffer-file-name) + "sh") + ((string-match "[.]bash\\>" buffer-file-name) + "bash") + ((string-match "[.]ksh\\>" buffer-file-name) + "ksh") + ((string-match "[.]csh\\>" buffer-file-name) + "csh") + (t + sh-shell-file)) + nil nil) (run-mode-hooks 'sh-mode-hook)) ;;;###autoload