summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2008-04-14 15:10:36 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2008-04-14 15:10:36 +0000
commit888932153ba7b6984deef265e72d624ef9faaa92 (patch)
tree9f04f1492ca9d88bd58269606f4bab46d7c9bce0 /lisp
parent53d4c024e9407cfc884005f9c969f7488bc3ec99 (diff)
downloademacs-888932153ba7b6984deef265e72d624ef9faaa92.tar.gz
emacs-888932153ba7b6984deef265e72d624ef9faaa92.tar.bz2
emacs-888932153ba7b6984deef265e72d624ef9faaa92.zip
(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.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog11
-rw-r--r--lisp/minibuffer.el30
2 files changed, 28 insertions, 13 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ceec5796399..90090c66784 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -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>
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 7baef47ba79..7429af3248d 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -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)