diff lisp/files.el @ 57945:a705018ca13b

(set-auto-mode): Don't get error after setting -*-mode-*-.
author Daniel Pfeiffer <occitan@esperanto.org>
date Thu, 04 Nov 2004 20:25:08 +0000
parents fad95a27e1d8
children 58546a39b629 7a0245dd1848
line wrap: on
line diff
--- a/lisp/files.el	Thu Nov 04 20:24:29 2004 +0000
+++ b/lisp/files.el	Thu Nov 04 20:25:08 2004 +0000
@@ -1912,6 +1912,7 @@
 		(message "Ignoring unknown mode `%s'" mode)
 	      (setq done t)
 	      (or (set-auto-mode-0 mode keep-mode-if-same)
+		  ;; continuing would call minor modes again, toggling them off
 		  (throw 'nop nil)))))
       ;; If we didn't, look for an interpreter specified in the first line.
       ;; As a special case, allow for things like "#!/bin/env perl", which
@@ -1924,10 +1925,11 @@
 	    ;; Map interpreter name to a mode, signalling we're done at the
 	    ;; same time.
 	    done (assoc (file-name-nondirectory mode)
-			interpreter-mode-alist)))
+			interpreter-mode-alist))
+      (if done
+	  (set-auto-mode-0 (cdr done) keep-mode-if-same)))
     ;; If we found an interpreter mode to use, invoke it now.
-    (if done
-	(set-auto-mode-0 (cdr done) keep-mode-if-same)
+    (unless done
       (if (setq done (save-excursion
 		       (goto-char (point-min))
 		       (assoc-default nil magic-mode-alist