From: Daniel Pfeiffer Date: Thu, 4 Nov 2004 20:25:08 +0000 (+0000) Subject: (set-auto-mode): Don't get error after setting -*-mode-*-. X-Git-Tag: ttn-vms-21-2-B4~4186 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=df4d061346b75da5366205536c74ac6442abbd7e;p=emacs.git (set-auto-mode): Don't get error after setting -*-mode-*-. --- diff --git a/lisp/files.el b/lisp/files.el index e9ae0fb834f..6ade94cd14d 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -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