branch: externals/consult
commit 3c0f87ebd20b25f03568fb9ef8fd36b5a2a6eb84
Author: Daniel Mendler <m...@daniel-mendler.de>
Commit: Daniel Mendler <m...@daniel-mendler.de>

    Fix shell quoting for consult-completion-in-region (Fix #810)
---
 consult.el | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/consult.el b/consult.el
index cca641cd27..f86eee13b7 100644
--- a/consult.el
+++ b/consult.el
@@ -574,14 +574,20 @@ We use invalid characters outside the Unicode range.")
   (if (functionp table)
       (consult--in-buffer
        (lambda (str pred action)
-         (if (eq action 'metadata)
-             (mapcar
-              (lambda (x)
-                (if (and (string-suffix-p (symbol-name (car-safe x)) 
"-function") (cdr x))
-                    (cons (car x) (consult--in-buffer (cdr x)))
-                  x))
-              (funcall table str pred action))
-           (funcall table str pred action)))
+         (let ((result (funcall table str pred action)))
+           (pcase action
+             ('metadata
+              (setq result
+                    (mapcar
+                     (lambda (x)
+                       (if (and (string-suffix-p (symbol-name (car-safe x)) 
"-function") (cdr x))
+                           (cons (car x) (consult--in-buffer (cdr x)))
+                         x))
+                     result)))
+             ((and 'completion--unquote (guard (functionp (cadr result))))
+              (cl-callf consult--in-buffer (cadr result) buffer)
+              (cl-callf consult--in-buffer (cadddr result) buffer)))
+           result))
        buffer)
     table))
 

Reply via email to