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