mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-26 07:33:47 +00:00
(complete-with-action): Backport from trunk (for vc-arch.el).
(dynamic-completion-table): Use it it.
This commit is contained in:
parent
5e835c9f55
commit
a621c46e3e
@ -1,5 +1,26 @@
|
||||
2007-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* subr.el (complete-with-action): Backport from trunk (for vc-arch.el).
|
||||
(dynamic-completion-table): Use it it.
|
||||
|
||||
* net/browse-url.el: Remove spurious * in custom docstrings.
|
||||
(browse-url-filename-alist): Use new-style backquote.
|
||||
|
||||
* emacs-lisp/backquote.el (backquote-unquote-symbol)
|
||||
(backquote-splice-symbol): Clarify they're not new-style unquotes.
|
||||
|
||||
* emacs-lisp/edebug.el (edebug-list-form, edebug-match-symbol, \,)
|
||||
(\,@): Backslash the , and ,@ which are not new-style unquotes.
|
||||
|
||||
* textmodes/texinfmt.el (\,): Clarify it's not a new-style unquote.
|
||||
|
||||
* net/socks.el (socks-username/password-auth-filter):
|
||||
Remove unused vars `state' and `desired-len'.
|
||||
(socks-parse-services, socks-nslookup-host): Use with-current-buffer.
|
||||
(socks-wait-for-state-change): Use new-style backquotes.
|
||||
|
||||
* pcvs.el (cvs-mode-status): Fix long-standing typo.
|
||||
|
||||
* emacs-lisp/bytecomp.el (byte-compile-from-buffer): Check old-style
|
||||
backquotes after each `read' rather than once per buffer.
|
||||
|
||||
|
19
lisp/subr.el
19
lisp/subr.el
@ -2509,6 +2509,20 @@ The value returned is the value of the last form in BODY."
|
||||
|
||||
;;;; Constructing completion tables.
|
||||
|
||||
(defun complete-with-action (action table string pred)
|
||||
"Perform completion ACTION.
|
||||
STRING is the string to complete.
|
||||
TABLE is the completion table, which should not be a function.
|
||||
PRED is a completion predicate.
|
||||
ACTION can be one of nil, t or `lambda'."
|
||||
;; (assert (not (functionp table)))
|
||||
(funcall
|
||||
(cond
|
||||
((null action) 'try-completion)
|
||||
((eq action t) 'all-completions)
|
||||
(t 'test-completion))
|
||||
string table pred))
|
||||
|
||||
(defmacro dynamic-completion-table (fun)
|
||||
"Use function FUN as a dynamic completion table.
|
||||
FUN is called with one argument, the string for which completion is required,
|
||||
@ -2530,10 +2544,7 @@ that can be used as the ALIST argument to `try-completion' and
|
||||
(with-current-buffer (let ((,win (minibuffer-selected-window)))
|
||||
(if (window-live-p ,win) (window-buffer ,win)
|
||||
(current-buffer)))
|
||||
(cond
|
||||
((eq ,mode t) (all-completions ,string (,fun ,string) ,predicate))
|
||||
((not ,mode) (try-completion ,string (,fun ,string) ,predicate))
|
||||
(t (test-completion ,string (,fun ,string) ,predicate)))))))
|
||||
(complete-with-action ,mode (,fun ,string) ,string ,predicate)))))
|
||||
|
||||
(defmacro lazy-completion-table (var fun)
|
||||
;; We used to have `&rest args' where `args' were evaluated late (at the
|
||||
|
Loading…
Reference in New Issue
Block a user