emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/complete.el


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/lisp/complete.el
Date: Mon, 22 May 2006 18:09:42 +0000

Index: emacs/lisp/complete.el
diff -u emacs/lisp/complete.el:1.52 emacs/lisp/complete.el:1.53
--- emacs/lisp/complete.el:1.52 Tue Apr 18 17:33:33 2006
+++ emacs/lisp/complete.el      Mon May 22 18:09:40 2006
@@ -369,7 +369,7 @@
         (str (buffer-substring beg end))
         (incname (and filename (string-match "<\\([^\"<>]*\\)>?$" str)))
         (ambig nil)
-        basestr
+        basestr origstr
         env-on
         regex
         p offset
@@ -415,7 +415,7 @@
                                    (file-name-nondirectory dir))
                                   "*/" file))
                (setq dir (file-name-directory dir)))
-             (setq str (concat dir file))))
+             (setq origstr str str (concat dir file))))
 
       ;; Look for wildcard expansions in directory name
       (and filename
@@ -443,7 +443,14 @@
                     (setq str (concat dir (file-name-nondirectory str)))
                     (insert str)
                     (setq end (+ beg (length str)))))
-              (setq filename nil table nil pred nil))))
+              (if origstr
+                   ;; If the wildcards were introduced by us, it's possible
+                   ;; that read-file-name-internal (especially our
+                   ;; PC-include-file advice) can still find matches for the
+                   ;; original string even if we couldn't, so remove the
+                   ;; added wildcards.
+                   (setq str origstr)
+                (setq filename nil table nil pred nil)))))
 
       ;; Strip directory name if appropriate
       (if filename
@@ -943,10 +950,11 @@
   (if (string-match "<\\([^\"<>]*\\)>?\\'" (ad-get-arg 0))
       (let* ((string (ad-get-arg 0))
              (action (ad-get-arg 2))
-             (name (substring string (match-beginning 1) (match-end 1)))
+             (name (match-string 1 string))
             (str2 (substring string (match-beginning 0)))
             (completion-table
-             (mapcar (lambda (x) (format "<%s>" x))
+             (mapcar (lambda (x)
+                       (format (if (string-match "/\\'" x) "<%s" "<%s>") x))
                      (PC-include-file-all-completions
                       name (PC-include-file-path)))))
         (setq ad-return-value




reply via email to

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