diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2008-04-14 15:10:36 +0000 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2008-04-14 15:10:36 +0000 |
commit | 888932153ba7b6984deef265e72d624ef9faaa92 (patch) | |
tree | 9f04f1492ca9d88bd58269606f4bab46d7c9bce0 /lisp | |
parent | 53d4c024e9407cfc884005f9c969f7488bc3ec99 (diff) | |
download | emacs-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/ChangeLog | 11 | ||||
-rw-r--r-- | lisp/minibuffer.el | 30 |
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) |