Mercurial > emacs
comparison lisp/files.el @ 68869:443a9b04eefe
* files.el (hack-local-variables): Only set results if they
exist.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Tue, 14 Feb 2006 03:47:00 +0000 |
parents | 5340157fbfc2 |
children | ca6b93e0f08b d57ee9eab157 |
comparison
equal
deleted
inserted
replaced
68868:68b8fcd1410c | 68869:443a9b04eefe |
---|---|
2437 ;; We've read all the local variables. Now, return whether the | 2437 ;; We've read all the local variables. Now, return whether the |
2438 ;; mode is specified (if MODE-ONLY is non-nil), or set the | 2438 ;; mode is specified (if MODE-ONLY is non-nil), or set the |
2439 ;; variables (if MODE-ONLY is nil.) | 2439 ;; variables (if MODE-ONLY is nil.) |
2440 (if mode-only | 2440 (if mode-only |
2441 result | 2441 result |
2442 (setq result (nreverse result)) | 2442 (when result |
2443 (dolist (ignored ignored-local-variables) | 2443 (setq result (nreverse result)) |
2444 (setq result (assq-delete-all ignored result))) | 2444 (dolist (ignored ignored-local-variables) |
2445 (if (null enable-local-eval) | 2445 (setq result (assq-delete-all ignored result))) |
2446 (setq result (assq-delete-all 'eval result))) | 2446 (if (null enable-local-eval) |
2447 ;; Find those variables that we may want to save to | 2447 (setq result (assq-delete-all 'eval result))) |
2448 ;; `safe-local-variable-values'. | 2448 ;; Find those variables that we may want to save to |
2449 (let (risky-vars unsafe-vars) | 2449 ;; `safe-local-variable-values'. |
2450 (dolist (elt result) | 2450 (let (risky-vars unsafe-vars) |
2451 (let ((var (car elt)) | 2451 (dolist (elt result) |
2452 (val (cdr elt))) | 2452 (let ((var (car elt)) |
2453 (or (eq var 'mode) | 2453 (val (cdr elt))) |
2454 (and (eq var 'eval) | 2454 (or (eq var 'mode) |
2455 (or (eq enable-local-eval t) | 2455 (and (eq var 'eval) |
2456 (hack-one-local-variable-eval-safep | 2456 (or (eq enable-local-eval t) |
2457 (eval (quote val))))) | 2457 (hack-one-local-variable-eval-safep |
2458 (safe-local-variable-p var val) | 2458 (eval (quote val))))) |
2459 (and (risky-local-variable-p var val) | 2459 (safe-local-variable-p var val) |
2460 (push elt risky-vars)) | 2460 (and (risky-local-variable-p var val) |
2461 (push elt unsafe-vars)))) | 2461 (push elt risky-vars)) |
2462 (if (or (and (eq enable-local-variables t) | 2462 (push elt unsafe-vars)))) |
2463 (null unsafe-vars) | 2463 (if (or (and (eq enable-local-variables t) |
2464 (null risky-vars)) | 2464 (null unsafe-vars) |
2465 (hack-local-variables-confirm | 2465 (null risky-vars)) |
2466 result unsafe-vars risky-vars)) | 2466 (hack-local-variables-confirm |
2467 (dolist (elt result) | 2467 result unsafe-vars risky-vars)) |
2468 (hack-one-local-variable (car elt) (cdr elt))))) | 2468 (dolist (elt result) |
2469 (run-hooks 'hack-local-variables-hook))))) | 2469 (hack-one-local-variable (car elt) (cdr elt))))) |
2470 (run-hooks 'hack-local-variables-hook)))))) | |
2470 | 2471 |
2471 (defvar ignored-local-variables | 2472 (defvar ignored-local-variables |
2472 '(ignored-local-variables safe-local-variable-values) | 2473 '(ignored-local-variables safe-local-variable-values) |
2473 "Variables to be ignored in a file's local variable spec.") | 2474 "Variables to be ignored in a file's local variable spec.") |
2474 | 2475 |