Mercurial > emacs
comparison lisp/files.el @ 63060:1fd49ae230dd
(hack-local-variables-confirm): New arg FLAG-TO-CHECK.
(hack-one-local-variable, hack-local-variables)
(hack-local-variables-prop-line): Pass that arg.
(locate-file-completion): Doc fix.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 06 Jun 2005 12:31:48 +0000 |
parents | 1cee97f4847c |
children | 07f77f5f8190 173dee4e2611 |
comparison
equal
deleted
inserted
replaced
63059:ac70444b7205 | 63060:1fd49ae230dd |
---|---|
656 (if (memq 'readable predicate) 4 0)))) | 656 (if (memq 'readable predicate) 4 0)))) |
657 (locate-file-internal filename path suffixes predicate)) | 657 (locate-file-internal filename path suffixes predicate)) |
658 | 658 |
659 (defun locate-file-completion (string path-and-suffixes action) | 659 (defun locate-file-completion (string path-and-suffixes action) |
660 "Do completion for file names passed to `locate-file'. | 660 "Do completion for file names passed to `locate-file'. |
661 PATH-AND-SUFFIXES is a pair of lists (DIRECTORIES . SUFFIXES)." | 661 PATH-AND-SUFFIXES is a pair of lists, (DIRECTORIES . SUFFIXES)." |
662 (if (file-name-absolute-p string) | 662 (if (file-name-absolute-p string) |
663 (read-file-name-internal string nil action) | 663 (read-file-name-internal string nil action) |
664 (let ((names nil) | 664 (let ((names nil) |
665 (suffix (concat (regexp-opt (cdr path-and-suffixes) t) "\\'")) | 665 (suffix (concat (regexp-opt (cdr path-and-suffixes) t) "\\'")) |
666 (string-dir (file-name-directory string))) | 666 (string-dir (file-name-directory string))) |
2157 (skip-chars-backward " \t") | 2157 (skip-chars-backward " \t") |
2158 (setq end (point)) | 2158 (setq end (point)) |
2159 (goto-char beg) | 2159 (goto-char beg) |
2160 end)))) | 2160 end)))) |
2161 | 2161 |
2162 (defun hack-local-variables-confirm (string) | 2162 (defun hack-local-variables-confirm (string flag-to-check) |
2163 (or (eq enable-local-variables t) | 2163 (or (eq flag-to-check t) |
2164 (and enable-local-variables | 2164 (and flag-to-check |
2165 (save-window-excursion | 2165 (save-window-excursion |
2166 (condition-case nil | 2166 (condition-case nil |
2167 (switch-to-buffer (current-buffer)) | 2167 (switch-to-buffer (current-buffer)) |
2168 (error | 2168 (error |
2169 ;; If we fail to switch in the selected window, | 2169 ;; If we fail to switch in the selected window, |
2234 | 2234 |
2235 (if mode-only mode-specified | 2235 (if mode-only mode-specified |
2236 (if (and result | 2236 (if (and result |
2237 (or mode-only | 2237 (or mode-only |
2238 (hack-local-variables-confirm | 2238 (hack-local-variables-confirm |
2239 "Set local variables as specified in -*- line of %s? "))) | 2239 "Set local variables as specified in -*- line of %s? " |
2240 enable-local-variables))) | |
2240 (let ((enable-local-eval enable-local-eval)) | 2241 (let ((enable-local-eval enable-local-eval)) |
2241 (while result | 2242 (while result |
2242 (hack-one-local-variable (car (car result)) (cdr (car result))) | 2243 (hack-one-local-variable (car (car result)) (cdr (car result))) |
2243 (setq result (cdr result))))) | 2244 (setq result (cdr result))))) |
2244 nil)))) | 2245 nil)))) |
2265 (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move) | 2266 (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move) |
2266 (when (let ((case-fold-search t)) | 2267 (when (let ((case-fold-search t)) |
2267 (and (search-forward "Local Variables:" nil t) | 2268 (and (search-forward "Local Variables:" nil t) |
2268 (or mode-only | 2269 (or mode-only |
2269 (hack-local-variables-confirm | 2270 (hack-local-variables-confirm |
2270 "Set local variables as specified at end of %s? ")))) | 2271 "Set local variables as specified at end of %s? " |
2272 enable-local-variables)))) | |
2271 (skip-chars-forward " \t") | 2273 (skip-chars-forward " \t") |
2272 (let ((enable-local-eval enable-local-eval) | 2274 (let ((enable-local-eval enable-local-eval) |
2273 ;; suffix is what comes after "local variables:" in its line. | 2275 ;; suffix is what comes after "local variables:" in its line. |
2274 (suffix | 2276 (suffix |
2275 (concat | 2277 (concat |
2487 (if (or (and (eq var 'eval) | 2489 (if (or (and (eq var 'eval) |
2488 (hack-one-local-variable-eval-safep val)) | 2490 (hack-one-local-variable-eval-safep val)) |
2489 ;; Permit eval if not root and user says ok. | 2491 ;; Permit eval if not root and user says ok. |
2490 (and (not (zerop (user-uid))) | 2492 (and (not (zerop (user-uid))) |
2491 (hack-local-variables-confirm | 2493 (hack-local-variables-confirm |
2492 "Process `eval' or hook local variables in %s? "))) | 2494 "Process `eval' or hook local variables in %s? " |
2495 enable-local-eval))) | |
2493 (if (eq var 'eval) | 2496 (if (eq var 'eval) |
2494 (save-excursion (eval val)) | 2497 (save-excursion (eval val)) |
2495 (make-local-variable var) | 2498 (make-local-variable var) |
2496 (set var val)) | 2499 (set var val)) |
2497 (message "Ignoring risky spec in the local variables list"))) | 2500 (message "Ignoring risky spec in the local variables list"))) |