]> git.eshelyaron.com Git - emacs.git/commitdiff
(set-auto-mode): Don't get error after setting -*-mode-*-.
authorDaniel Pfeiffer <occitan@esperanto.org>
Thu, 4 Nov 2004 20:25:08 +0000 (20:25 +0000)
committerDaniel Pfeiffer <occitan@esperanto.org>
Thu, 4 Nov 2004 20:25:08 +0000 (20:25 +0000)
lisp/files.el

index e9ae0fb834f05c77593be7d3c561bf2911589cd4..6ade94cd14d0fa4f1bdcf1a3cf964ae472ddc056 100644 (file)
@@ -1912,6 +1912,7 @@ only set the major mode, if that would change it."
                (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 @@ only set the major mode, if that would change it."
            ;; 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