Mercurial > emacs
changeset 44279:7f0854961eb4
(file-expand-wildcards): Use save-match-data.
(format-alist): Mark as risky.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 01 Apr 2002 03:45:11 +0000 |
parents | 2f0122b0b947 |
children | a6ae94fc37af |
files | lisp/files.el |
diffstat | 1 files changed, 33 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/files.el Mon Apr 01 01:24:25 2002 +0000 +++ b/lisp/files.el Mon Apr 01 03:45:11 2002 +0000 @@ -1925,6 +1925,7 @@ (put 'header-line-format 'risky-local-variable t) (put 'icon-title-format 'risky-local-variable t) (put 'input-method-alist 'risky-local-variable t) +(put 'format-alist 'risky-local-variable t) (put 'vc-mode 'risky-local-variable t) (put 'imenu-generic-expression 'risky-local-variable t) (put 'imenu-index-alist 'risky-local-variable t) @@ -3518,37 +3519,38 @@ relative to the current default directory, `default-directory'. The file names returned are normally also relative to the current default directory. However, if FULL is non-nil, they are absolute." - (let* ((nondir (file-name-nondirectory pattern)) - (dirpart (file-name-directory pattern)) - ;; A list of all dirs that DIRPART specifies. - ;; This can be more than one dir - ;; if DIRPART contains wildcards. - (dirs (if (and dirpart (string-match "[[*?]" dirpart)) - (mapcar 'file-name-as-directory - (file-expand-wildcards (directory-file-name dirpart))) - (list dirpart))) - contents) - (while dirs - (when (or (null (car dirs)) ; Possible if DIRPART is not wild. - (file-directory-p (directory-file-name (car dirs)))) - (let ((this-dir-contents - ;; Filter out "." and ".." - (delq nil - (mapcar #'(lambda (name) - (unless (string-match "\\`\\.\\.?\\'" - (file-name-nondirectory name)) - name)) - (directory-files (or (car dirs) ".") full - (wildcard-to-regexp nondir)))))) - (setq contents - (nconc - (if (and (car dirs) (not full)) - (mapcar (function (lambda (name) (concat (car dirs) name))) - this-dir-contents) - this-dir-contents) - contents)))) - (setq dirs (cdr dirs))) - contents)) + (save-match-data + (let* ((nondir (file-name-nondirectory pattern)) + (dirpart (file-name-directory pattern)) + ;; A list of all dirs that DIRPART specifies. + ;; This can be more than one dir + ;; if DIRPART contains wildcards. + (dirs (if (and dirpart (string-match "[[*?]" dirpart)) + (mapcar 'file-name-as-directory + (file-expand-wildcards (directory-file-name dirpart))) + (list dirpart))) + contents) + (while dirs + (when (or (null (car dirs)) ; Possible if DIRPART is not wild. + (file-directory-p (directory-file-name (car dirs)))) + (let ((this-dir-contents + ;; Filter out "." and ".." + (delq nil + (mapcar #'(lambda (name) + (unless (string-match "\\`\\.\\.?\\'" + (file-name-nondirectory name)) + name)) + (directory-files (or (car dirs) ".") full + (wildcard-to-regexp nondir)))))) + (setq contents + (nconc + (if (and (car dirs) (not full)) + (mapcar (function (lambda (name) (concat (car dirs) name))) + this-dir-contents) + this-dir-contents) + contents)))) + (setq dirs (cdr dirs))) + contents))) (defun list-directory (dirname &optional verbose) "Display a list of files in or matching DIRNAME, a la `ls'.