mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
Avoid some syscalls in locate-dominating-file
* lisp/files.el (locate-dominating-file): Do not call file-directory-p each time through a loop ascending the directory hierarchy, as the file must be a directory after the first loop iteration. Instead, call file-directory-p just once, before the loop starts, and do this only if the file name is not already that of a directory.
This commit is contained in:
parent
94b2a0b2fc
commit
2074951c2a
1 changed files with 4 additions and 3 deletions
|
|
@ -1212,14 +1212,15 @@ the function needs to examine, starting with FILE."
|
|||
;; Represent /home/luser/foo as ~/foo so that we don't try to look for
|
||||
;; `name' in /home or in /.
|
||||
(setq file (abbreviate-file-name (expand-file-name file)))
|
||||
(when (and (not (directory-name-p file))
|
||||
(file-directory-p file))
|
||||
(setq file (file-name-as-directory file)))
|
||||
(let ((root nil)
|
||||
try)
|
||||
(while (not (or root
|
||||
(null file)
|
||||
(string-match locate-dominating-stop-dir-regexp file)))
|
||||
(setq file (if (file-directory-p file)
|
||||
file
|
||||
(file-name-directory file))
|
||||
(setq file (file-name-directory file)
|
||||
try (if (stringp name)
|
||||
(file-exists-p (expand-file-name name file))
|
||||
(funcall name file)))
|
||||
|
|
|
|||
Loading…
Reference in a new issue