emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/ls-lisp.el,v [EMACS_22_BASE]


From: Eli Zaretskii
Subject: [Emacs-diffs] Changes to emacs/lisp/ls-lisp.el,v [EMACS_22_BASE]
Date: Sat, 23 Jun 2007 11:23:54 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Branch:         EMACS_22_BASE
Changes by:     Eli Zaretskii <eliz>    07/06/23 11:23:53

Index: ls-lisp.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/ls-lisp.el,v
retrieving revision 1.63.2.2
retrieving revision 1.63.2.3
diff -u -b -r1.63.2.2 -r1.63.2.3
--- ls-lisp.el  23 Jun 2007 09:51:18 -0000      1.63.2.2
+++ ls-lisp.el  23 Jun 2007 11:23:53 -0000      1.63.2.3
@@ -216,6 +216,7 @@
     ;; 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 @@
        ;; 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 @@
                    (file-name-nondirectory file))
                  file (file-name-directory file))
          (if (memq ?B switches) (setq wildcard-regexp "[^~]\\'")))
+       (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))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]