aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris <[email protected]>2009-06-22 07:02:04 +0000
committerGlenn Morris <[email protected]>2009-06-22 07:02:04 +0000
commit46253b344064c3cc340e6838bcb5f87d64a5260f (patch)
tree4310be03952b811421eeaab68436f113f660aecf
parentd5067810ac1a013e191ed271d8add2999c2fd5ee (diff)
(dir-locals-collect-mode-variables): Allow for any number of `mode'
and `eval' entries. (Bug#3430)
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/files.el4
2 files changed, 6 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index a39a5249aa..8d50839ea8 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,8 @@
2009-06-22 Glenn Morris <[email protected]>
+ * files.el (dir-locals-collect-mode-variables): Allow for any number of
+ `mode' and `eval' entries. (Bug#3430)
+
* Makefile.in (ELCFILES): Add fadr.elc.
* calendar/appt.el (appt-make-list): Fix off-by-one error caused by
diff --git a/lisp/files.el b/lisp/files.el
index ff6b692769..8718a9668c 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -3213,7 +3213,9 @@ Returns the new list."
(let* ((variable (car pair))
(value (cdr pair))
(slot (assq variable variables)))
- (if slot
+ ;; If variables are specified more than once, only use the last. (Why?)
+ ;; The pseudo-variables mode and eval are different (bug#3430).
+ (if (and slot (not (memq variable '(mode eval))))
(setcdr slot value)
;; Need a new cons in case we setcdr later.
(push (cons variable value) variables)))))