[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/lisp ChangeLog files.el
From: |
Chong Yidong |
Subject: |
[Emacs-diffs] emacs/lisp ChangeLog files.el |
Date: |
Sun, 19 Jul 2009 01:05:22 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Chong Yidong <cyd> 09/07/19 01:05:22
Modified files:
lisp : ChangeLog files.el
Log message:
* files.el (hack-local-variables-filter): Rewrite.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.15832&r2=1.15833
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/files.el?cvsroot=emacs&r1=1.1057&r2=1.1058
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.15832
retrieving revision 1.15833
diff -u -b -r1.15832 -r1.15833
--- ChangeLog 19 Jul 2009 00:47:47 -0000 1.15832
+++ ChangeLog 19 Jul 2009 01:05:17 -0000 1.15833
@@ -1,3 +1,7 @@
+2009-07-19 Chong Yidong <address@hidden>
+
+ * files.el (hack-local-variables-filter): Rewrite.
+
2009-07-19 Glenn Morris <address@hidden>
* progmodes/verilog-mode.el (verilog-error-regexp-add-xemacs):
Index: files.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/files.el,v
retrieving revision 1.1057
retrieving revision 1.1058
diff -u -b -r1.1057 -r1.1058
--- files.el 18 Jul 2009 20:41:32 -0000 1.1057
+++ files.el 19 Jul 2009 01:05:21 -0000 1.1058
@@ -2931,55 +2931,47 @@
`file-local-variables-alist', without applying them.
DIR-NAME is a directory name if these settings come from
directory-local variables, or nil otherwise."
- ;; Strip any variables that are in `ignored-local-variables'.
- (dolist (ignored ignored-local-variables)
- (setq variables (assq-delete-all ignored variables)))
- ;; If `enable-local-eval' is nil, strip eval "variables".
- (if (null enable-local-eval)
- (setq variables (assq-delete-all 'eval variables)))
- (setq variables (nreverse variables))
- (when variables
;; Find those variables that we may want to save to
;; `safe-local-variable-values'.
- (let (risky-vars unsafe-vars)
+ (let (all-vars risky-vars unsafe-vars)
(dolist (elt variables)
(let ((var (car elt))
(val (cdr elt)))
- ;; Don't query about the fake variables.
- (or (memq var '(mode unibyte coding))
- (and (eq var 'eval)
+ (cond ((memq var ignored-local-variables)
+ ;; Ignore any variable in `ignored-local-variables'.
+ nil)
+ ;; Obey `enable-local-eval'.
+ ((eq var 'eval)
+ (when enable-local-eval
+ (push elt all-vars)
(or (eq enable-local-eval t)
- (hack-one-local-variable-eval-safep
- (eval (quote val)))))
- (safe-local-variable-p var val)
- (and (risky-local-variable-p var val)
- (push elt risky-vars))
+ (hack-one-local-variable-eval-safep (eval (quote val)))
(push elt unsafe-vars))))
- (if (eq enable-local-variables :safe)
- ;; If caller wants only safe variables, store only these.
- (dolist (elt variables)
- (unless (or (member elt unsafe-vars)
- (member elt risky-vars))
- (let ((var (car elt)))
- (unless (eq var 'eval)
- (setq file-local-variables-alist
- (assq-delete-all var file-local-variables-alist)))
- (push elt file-local-variables-alist))))
- ;; Query, unless all are known safe or the user wants no
- ;; querying.
- (if (or (and (eq enable-local-variables t)
+ ;; Ignore duplicates in the present list.
+ ((assq var all-vars) nil)
+ ;; Accept known-safe variables.
+ ((or (memq var '(mode unibyte coding))
+ (safe-local-variable-p var val))
+ (push elt all-vars))
+ ;; The variable is either risky or unsafe:
+ ((not (eq enable-local-variables :safe))
+ (push elt all-vars)
+ (if (risky-local-variable-p var val)
+ (push elt risky-vars)
+ (push elt unsafe-vars))))))
+ (and all-vars
+ ;; Query, unless all vars are safe or user wants no querying.
+ (or (and (eq enable-local-variables t)
(null unsafe-vars)
(null risky-vars))
(eq enable-local-variables :all)
- (hack-local-variables-confirm
- variables unsafe-vars risky-vars dir-name))
- (dolist (elt variables)
- (let ((var (car elt)))
- (unless (eq var 'eval)
+ (hack-local-variables-confirm all-vars unsafe-vars
+ risky-vars dir-name))
+ (dolist (elt all-vars)
+ (unless (eq (car elt) 'eval)
(setq file-local-variables-alist
- (assq-delete-all var file-local-variables-alist)))
- (push elt file-local-variables-alist))))))))
-
+ (assq-delete-all (car elt) file-local-variables-alist)))
+ (push elt file-local-variables-alist)))))
(defun hack-local-variables (&optional mode-only)
"Parse and put into effect this buffer's local variables spec.