mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-23 10:34:07 +00:00
(insert-directory): If an invalid regexp error is thrown, try using FILE
as a literal file name, not a wildcard. Check for FILE as an existing file, not just a directory.
This commit is contained in:
parent
ff3cc240fa
commit
43bed6688c
@ -1,3 +1,9 @@
|
||||
2007-06-23 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* ls-lisp.el (insert-directory): If an invalid regexp error is
|
||||
thrown, try using FILE as a literal file name, not a wildcard.
|
||||
Check for FILE as an existing file, not just a directory.
|
||||
|
||||
2007-06-23 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* ruler-mode.el (ruler-mode): Prevent clobbering the original
|
||||
|
@ -216,6 +216,7 @@ that work are: A a c i r S s t u U X g G B C R and F partly."
|
||||
;; We need the directory in order to find the right handler.
|
||||
(let ((handler (find-file-name-handler (expand-file-name file)
|
||||
'insert-directory))
|
||||
(orig-file file)
|
||||
wildcard-regexp)
|
||||
(if handler
|
||||
(funcall handler 'insert-directory file switches
|
||||
@ -230,9 +231,9 @@ that work are: A a c i r S s t u U X g G B C R and F partly."
|
||||
;; there is no wildcard, only a directory name.
|
||||
(if (and ls-lisp-support-shell-wildcards
|
||||
(string-match "[[?*]" file)
|
||||
;; Prefer an existing directory to wildcards, like
|
||||
;; Prefer an existing file to wildcards, like
|
||||
;; dired-noselect does.
|
||||
(not (file-directory-p file)))
|
||||
(not (file-exists-p file)))
|
||||
(progn
|
||||
(or (not (eq (aref file (1- (length file))) ?/))
|
||||
(setq file (substring file 0 (1- (length file)))))
|
||||
@ -244,9 +245,21 @@ that work are: A a c i r S s t u U X g G B C R and F partly."
|
||||
(file-name-nondirectory file))
|
||||
file (file-name-directory file))
|
||||
(if (memq ?B switches) (setq wildcard-regexp "[^~]\\'")))
|
||||
(ls-lisp-insert-directory
|
||||
file switches (ls-lisp-time-index switches)
|
||||
wildcard-regexp full-directory-p)
|
||||
(condition-case err
|
||||
(ls-lisp-insert-directory
|
||||
file switches (ls-lisp-time-index switches)
|
||||
wildcard-regexp full-directory-p)
|
||||
(invalid-regexp
|
||||
;; Maybe they wanted a literal file that just happens to
|
||||
;; use characters special to shell wildcards.
|
||||
(if (equal (cadr err) "Unmatched [ or [^")
|
||||
(progn
|
||||
(setq wildcard-regexp (if (memq ?B switches) "[^~]\\'")
|
||||
file (file-relative-name orig-file))
|
||||
(ls-lisp-insert-directory
|
||||
file switches (ls-lisp-time-index switches)
|
||||
nil full-directory-p))
|
||||
(signal (car err) (cdr err)))))
|
||||
;; Try to insert the amount of free space.
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
|
Loading…
Reference in New Issue
Block a user