Mercurial > emacs
changeset 78641:fc54bf727c30
(complete-with-action): Backport from trunk (for vc-arch.el).
(dynamic-completion-table): Use it it.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Thu, 23 Aug 2007 18:42:38 +0000 |
parents | 33d0b6780fb2 |
children | 8702e85df8eb |
files | lisp/ChangeLog lisp/subr.el |
diffstat | 2 files changed, 36 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Thu Aug 23 18:41:14 2007 +0000 +++ b/lisp/ChangeLog Thu Aug 23 18:42:38 2007 +0000 @@ -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.
--- a/lisp/subr.el Thu Aug 23 18:41:14 2007 +0000 +++ b/lisp/subr.el Thu Aug 23 18:42:38 2007 +0000 @@ -2509,6 +2509,20 @@ ;;;; 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 @@ (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