]> git.eshelyaron.com Git - emacs.git/commitdiff
(completion-table-with-terminator): Those completions
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 14 Apr 2008 15:10:36 +0000 (15:10 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 14 Apr 2008 15:10:36 +0000 (15:10 +0000)
are never valid w.r.t test-completion.
(completion--file-name-table): Check completion-all-completions-with-base-size.

lisp/ChangeLog
lisp/minibuffer.el

index ceec579639956a5b35dbbbcee3d1eb0aaf37e7f3..90090c667849d8dfbd666b5246e45ff07088d96f 100644 (file)
@@ -1,3 +1,10 @@
+2008-04-14  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * minibuffer.el (completion-table-with-terminator): Those completions
+       are never valid w.r.t test-completion.
+       (completion--file-name-table):
+       Check completion-all-completions-with-base-size.
+
 2008-04-14  Tassilo Horn  <tassilo@member.fsf.org>
 
        * doc-view.el (doc-view-dvipdf-program): New variable.
@@ -7,8 +14,8 @@
        (doc-view-dvi->pdf): Prefer dvipdf over dvipdfm.
 
        * doc-view.el (doc-view-start-process): Don't set
-       default-directory to "~/" if the current value is valid.  This
-       broke PS files that run other files in the same directory.
+       default-directory to "~/" if the current value is valid.
+       This broke PS files that run other files in the same directory.
 
 2008-04-14  Dan Nicolaescu  <dann@ics.uci.edu>
 
index 7baef47ba795fc402498c0e301641c9461accc0f..7429af3248dde428d5b3aa9b1a81f42e740375e5 100644 (file)
@@ -131,14 +131,19 @@ You should give VAR a non-nil `risky-local-variable' property."
 
 (defun completion-table-with-terminator (terminator table string pred action)
   (let ((comp (complete-with-action action table string pred)))
-    (if (eq action nil)
-        (if (eq comp t)
-            (concat string terminator)
-          (if (and (stringp comp)
-                   (eq (complete-with-action action table comp pred) t))
-              (concat comp terminator)
-            comp))
-      comp)))
+    (cond
+     ((eq action nil)
+      (if (eq comp t)
+          (concat string terminator)
+        (if (and (stringp comp)
+                 (eq (complete-with-action action table comp pred) t))
+            (concat comp terminator)
+          comp))
+      comp)
+     ;; completion-table-with-terminator is always used for
+     ;; "sub-completions" so it's only called if the terminator is missing,
+     ;; in which case `test-completion' should return nil.
+     ((eq action 'lambda) nil))))
 
 (defun completion-table-in-turn (&rest tables)
   "Create a completion table that tries each table in TABLES in turn."
@@ -707,8 +712,11 @@ during running `completion-setup-hook'."
                   (if (funcall pred tem) (push tem comp))))
               (setq all (nreverse comp))))
 
-          ;; Add base-size, but only if the list is non-empty.
-          (if (consp all) (nconc all base-size))))
+          (if (and completion-all-completions-with-base-size (consp all))
+              ;; Add base-size, but only if the list is non-empty.
+              (nconc all base-size))
+
+          all))
 
        (t
         ;; Only other case actually used is ACTION = lambda.
@@ -717,7 +725,7 @@ during running `completion-setup-hook'."
 
 (defalias 'read-file-name-internal
   (completion-table-in-turn 'completion--embedded-envvar-table
-                      'completion--file-name-table)
+                            'completion--file-name-table)
   "Internal subroutine for `read-file-name'.  Do not call this.")
 
 (provide 'minibuffer)