1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-27 07:37:33 +00:00

(sh-mode): Fix bug: Arrange to use

the default shell if filename is not available.
This commit is contained in:
Thien-Thi Nguyen 2006-02-25 11:25:25 +00:00
parent f37de644fd
commit 19cd88cc93
2 changed files with 27 additions and 19 deletions

View File

@ -1,3 +1,9 @@
2006-02-25 Thien-Thi Nguyen <ttn@gnu.org>
* progmodes/sh-script.el (sh-mode): Fix bug: Arrange
to use the default shell if filename is not available.
Reported by Giorgos Keramidas.
2006-02-25 John Williams <jrw@pobox.com> (tiny change)
* progmodes/etags.el (tags-completion-table): Do completion from

View File

@ -1430,25 +1430,27 @@ with your script for an edit-interpret-debug cycle."
(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