From: Stefan Monnier Date: Mon, 17 Oct 2011 13:43:40 +0000 (-0400) Subject: * lisp/comint.el (comint--table-subvert): Quote the all-completions output. X-Git-Tag: emacs-pretest-24.0.91~107 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8b79f3e0ed805d86dcb0e74572e61da2cd2d8ffc;p=emacs.git * lisp/comint.el (comint--table-subvert): Quote the all-completions output. Fixes: debbugs:9160 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6c29a93950d..1ebca8675ce 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,11 @@ +2011-10-17 Stefan Monnier + + * comint.el (comint--table-subvert): Quote the all-completions output + (bug#9160). + 2011-10-17 Martin Rudalics - * ido.el (ido-default-buffer-method): Remove redundant :type - entry. + * ido.el (ido-default-buffer-method): Remove redundant :type entry. * menu-bar.el (menu-bar-file-menu): Add entry for making new window on right of selected. (Bug#9350) Reword other window @@ -14,8 +18,8 @@ 2011-10-15 Chong Yidong - * net/network-stream.el (network-stream-open-starttls): Improve - detection of failure due to lack of TLS support. + * net/network-stream.el (network-stream-open-starttls): + Improve detection of failure due to lack of TLS support. * mail/sendmail.el (sendmail-query-once): Tweak prompt message, putting the input text in front and in bold. diff --git a/lisp/comint.el b/lisp/comint.el index 52580db6186..c3ec17b02f4 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -3079,9 +3079,9 @@ SS1 = (unquote SS2)." (defun comint--table-subvert (table s1 s2 &optional quote-fun unquote-fun) "Completion table that replaces the prefix S1 with S2 in STRING. -When TABLE, S1 and S2 are provided by `apply-partially', the result -is a completion table which completes strings of the form (concat S1 S) -in the same way as TABLE completes strings of the form (concat S2 S)." +The result is a completion table which completes strings of the +form (concat S1 S) in the same way as TABLE completes strings of +the form (concat S2 S)." (lambda (string pred action) (let* ((str (if (eq t (compare-strings string 0 (length s1) s1 nil nil completion-ignore-case)) @@ -3106,13 +3106,15 @@ in the same way as TABLE completes strings of the form (concat S2 S)." ((eq action t) (let ((bounds (completion-boundaries str table pred ""))) (if (>= (car bounds) (length s2)) - res + (if quote-fun (mapcar quote-fun res) res) (let ((re (concat "\\`" (regexp-quote (substring s2 (car bounds)))))) (delq nil (mapcar (lambda (c) (if (string-match re c) - (substring c (match-end 0)))) + (let ((str (substring c (match-end 0)))) + (if quote-fun + (funcall quote-fun str) str)))) res)))))) ;; E.g. action=nil and it's the only completion. (res))))))