diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2011-09-19 21:06:29 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2011-09-19 21:06:29 -0400 |
commit | 78054a469de3f8942d96eaf8c024070700ac9bae (patch) | |
tree | 076801842c97d47143edb28cb1d959fe376f9b84 | |
parent | 207c12ef2a59d5d61cef416283634f0b2e3bf24c (diff) | |
download | emacs-78054a469de3f8942d96eaf8c024070700ac9bae.tar.gz |
* lisp/minibuffer.el (completion-file-name-table): Keep track of errors.
(completion-table-with-predicate): Handle the case where pred1 is nil.
* lisp/pcomplete.el (pcomplete-completions-at-point): Simplify.
Fixes: debbugs:9160
-rw-r--r-- | lisp/ChangeLog | 6 | ||||
-rw-r--r-- | lisp/minibuffer.el | 9 | ||||
-rw-r--r-- | lisp/pcomplete.el | 11 |
3 files changed, 16 insertions, 10 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 91bf69aa7a6..3c2eb430f30 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2011-09-20 Stefan Monnier <monnier@iro.umontreal.ca> + + * minibuffer.el (completion-file-name-table): Keep track of errors. + (completion-table-with-predicate): Handle the case where pred1 is nil. + * pcomplete.el (pcomplete-completions-at-point): Simplify. + 2011-09-19 Stefan Monnier <monnier@iro.umontreal.ca> * emacs-lisp/debug.el (debugger-args): Give it a docstring. diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 820b1599abb..c6f28b14415 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -322,14 +322,15 @@ Note: TABLE needs to be a proper completion table which obeys predicates." (test-completion string table pred2)) (t (or (complete-with-action action table string - (if (null pred2) pred1 + (if (not (and pred1 pred2)) + (or pred1 pred2) (lambda (x) ;; Call `pred1' first, so that `pred2' ;; really can't tell that `x' is in table. - (if (funcall pred1 x) (funcall pred2 x))))) + (and (funcall pred1 x) (funcall pred2 x))))) ;; If completion failed and we're not applying pred1 strictly, try ;; again without pred1. - (and (not strict) + (and (not strict) pred1 pred2 (complete-with-action action table string pred2)))))) (defun completion-table-in-turn (&rest tables) @@ -1774,7 +1775,7 @@ same as `substitute-in-file-name'." (defun completion-file-name-table (string pred action) "Completion table for file names." - (ignore-errors + (with-demoted-errors (cond ((eq action 'metadata) '(metadata (category . file))) ((eq (car-safe action) 'boundaries) diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el index bdf2dadd16c..1a95fb28206 100644 --- a/lisp/pcomplete.el +++ b/lisp/pcomplete.el @@ -515,14 +515,13 @@ Same as `pcomplete' but using the standard completion UI." (pred ;; Pare it down, if applicable. (when (and pcomplete-use-paring pcomplete-seen) - (setq pcomplete-seen - (mapcar (lambda (f) - (funcall pcomplete-norm-func - (directory-file-name f))) - pcomplete-seen)) ;; Capture the dynbound values for later use. (let ((norm-func pcomplete-norm-func) - (seen pcomplete-seen)) + (seen + (mapcar (lambda (f) + (funcall pcomplete-norm-func + (directory-file-name f))) + pcomplete-seen))) (lambda (f) (not (member (funcall norm-func (directory-file-name f)) |