changeset 70840:b599bb78c1fc

(PC-do-completion): Undo the addition of implicit wildcards if they did not lead to finding any match. (read-file-name-internal): Don't add the final > if the completion is not finished.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 22 May 2006 18:09:40 +0000
parents f20f9bda1ae7
children 2a874a2efaf4
files lisp/ChangeLog lisp/complete.el
diffstat 2 files changed, 24 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon May 22 17:34:00 2006 +0000
+++ b/lisp/ChangeLog	Mon May 22 18:09:40 2006 +0000
@@ -1,7 +1,14 @@
+2006-05-22  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* complete.el (PC-do-completion): Undo the addition of implicit
+	wildcards if they did not lead to finding any match.
+	(read-file-name-internal): Don't add the final > if the completion is
+	not finished.
+
 2006-05-22  Reiner Steib  <Reiner.Steib@gmx.de>
 
-	* textmodes/bibtex.el (bibtex-maintain-sorted-entries): Quote
-	safe-local-variable predicate.
+	* textmodes/bibtex.el (bibtex-maintain-sorted-entries):
+	Quote safe-local-variable predicate.
 
 2006-05-22  Thien-Thi Nguyen  <ttn@gnu.org>
 
@@ -9,15 +16,13 @@
 
 2006-05-21  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
 
-	* textmodes/bibtex.el (bibtex-maintain-sorted-entries): Mark as
-	safe.
+	* textmodes/bibtex.el (bibtex-maintain-sorted-entries): Mark as safe.
 
 	* progmodes/make-mode.el (makefile-special-targets-list)
 	(makefile-macro-table, makefile-target-table): Mark as risky.
 	(makefile-query-one-target-method): Make this the alias for the
 	following variable.
-	(makefile-query-one-target-method-function): Make this the real
-	name.
+	(makefile-query-one-target-method-function): Make this the real name.
 
 	* textmodes/artist.el (artist-text-renderer): Make this the alias
 	for the following variable.
--- a/lisp/complete.el	Mon May 22 17:34:00 2006 +0000
+++ b/lisp/complete.el	Mon May 22 18:09:40 2006 +0000
@@ -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