]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix regression from 23.1 to allow multiple modes in Local Variables.
authorJuri Linkov <juri@jurta.org>
Thu, 17 Dec 2009 01:18:14 +0000 (01:18 +0000)
committerJuri Linkov <juri@jurta.org>
Thu, 17 Dec 2009 01:18:14 +0000 (01:18 +0000)
* files.el (hack-local-variables-filter): While ignoring duplicates,
don't take `mode' into account.
(hack-local-variables-filter, hack-dir-local-variables): Don't
remove duplicate `mode' from local-variables-alist (like `eval').

lisp/ChangeLog
lisp/files.el

index c2a166435d04f5ec94b2bb9a0f7166dc8483bf62..05bad0f012ba1a6cb4ad65d33308f6fa48eb7465 100644 (file)
@@ -1,3 +1,12 @@
+2009-12-17  Juri Linkov  <juri@jurta.org>
+
+       Fix regression from 23.1 to allow multiple modes in Local Variables.
+
+       * files.el (hack-local-variables-filter): While ignoring duplicates,
+       don't take `mode' into account.
+       (hack-local-variables-filter, hack-dir-local-variables): Don't
+       remove duplicate `mode' from local-variables-alist (like `eval').
+
 2009-12-17  Juri Linkov  <juri@jurta.org>
 
        Make `dired-diff' more safe.  (Bug#5225)
index 8478151cf78f1979f5ee8133b4eb9ccbdb937a8c..b848407b3ae8625fbdcc8aa9000a81a51d1e9361 100644 (file)
@@ -2978,8 +2978,8 @@ DIR-NAME is a directory name if these settings come from
                 (or (eq enable-local-eval t)
                     (hack-one-local-variable-eval-safep (eval (quote val)))
                     (push elt unsafe-vars))))
-             ;; Ignore duplicates in the present list.
-             ((assq var all-vars) nil)
+             ;; Ignore duplicates (except `mode') in the present list.
+             ((and (assq var all-vars) (not (eq var 'mode))) nil)
              ;; Accept known-safe variables.
              ((or (memq var '(mode unibyte coding))
                   (safe-local-variable-p var val))
@@ -2999,7 +2999,7 @@ DIR-NAME is a directory name if these settings come from
             (hack-local-variables-confirm all-vars unsafe-vars
                                           risky-vars dir-name))
         (dolist (elt all-vars)
-          (unless (eq (car elt) 'eval)
+          (unless (memq (car elt) '(eval mode))
             (unless dir-name
               (setq dir-local-variables-alist
                     (assq-delete-all (car elt) dir-local-variables-alist)))
@@ -3427,7 +3427,7 @@ and `file-local-variables-alist', without applying them."
                (dir-locals-get-class-variables class) dir-name nil)))
          (when variables
            (dolist (elt variables)
-             (unless (eq (car elt) 'eval)
+             (unless (memq (car elt) '(eval mode))
                (setq dir-local-variables-alist
                      (assq-delete-all (car elt) dir-local-variables-alist)))
              (push elt dir-local-variables-alist))