# HG changeset patch # User Daniel Pfeiffer # Date 1099599908 0 # Node ID a705018ca13b968582f80dfa5195fd861036dec6 # Parent d0ac3dd83e07ff7a2b5ef129a2e156e3e8e59431 (set-auto-mode): Don't get error after setting -*-mode-*-. diff -r d0ac3dd83e07 -r a705018ca13b lisp/files.el --- 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