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")))