+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.
(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)
(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)
(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))