From: Glenn Morris Date: Sun, 22 May 2011 01:18:49 +0000 (-0700) Subject: Further tweak previous files.el change. X-Git-Tag: emacs-pretest-24.0.90~104^2~618^2~215 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=162d78a17e0da16bdcb0c2d5633f8fdaf323f407;p=emacs.git Further tweak previous files.el change. * lisp/files.el (hack-local-variables): In the MODE-ONLY case, try to ignore minor modes. --- diff --git a/lisp/files.el b/lisp/files.el index 1d560ace065..24a0e0a5b62 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -3147,7 +3147,9 @@ DIR-NAME is the name of the associated directory. Otherwise it is nil." (defun hack-local-variables (&optional mode-only) "Parse and put into effect this buffer's local variables spec. If MODE-ONLY is non-nil, all we do is check whether a \"mode:\" -is specified, and return the corresponding mode symbol, or nil." +is specified, and return the corresponding mode symbol, or nil. +In this case, we try to ignore minor-modes, and only return a +major-mode." (let ((enable-local-variables (and local-enable-local-variables enable-local-variables)) result) @@ -3226,17 +3228,20 @@ is specified, and return the corresponding mode symbol, or nil." (let* ((str (buffer-substring beg (point))) (var (let ((read-circle nil)) (read str))) - val) + val val2) ;; Read the variable value. (skip-chars-forward "^:") (forward-char 1) (let ((read-circle nil)) (setq val (read (current-buffer)))) (if mode-only - (if (eq var 'mode) - (setq result - (intern (concat (symbol-name val) - "-mode")))) + (and (eq var 'mode) + ;; Specifying minor-modes via mode: is + ;; deprecated, but try to reject them anyway. + (not (string-match + "-minor\\'" + (setq val2 (symbol-name val)))) + (setq result (intern (concat val2 "-mode")))) (unless (eq var 'coding) (condition-case nil (push (cons (if (eq var 'eval)