aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorJim Porter2022-04-26 21:51:23 -0700
committerLars Ingebrigtsen2022-05-01 20:41:21 +0200
commitbb40507fed7b211bb0ef5b5e3dcc609876f6ad8d (patch)
tree1ea82c099719bf3caf267ea257027bb90bb22905 /lisp
parentade1424a975aabaa208010c6fdd3c8b7c51242ff (diff)
downloademacs-bb40507fed7b211bb0ef5b5e3dcc609876f6ad8d.tar.gz
emacs-bb40507fed7b211bb0ef5b5e3dcc609876f6ad8d.zip
Handle escaped characters in Eshell argument predicates/modifiers
* lisp/eshell/em-pred.el (eshell-get-delimited-modifier-argument): Unescape escaped characters. * test/lisp/eshell/em-pred-tests.el (em-pred-test/predicate-escaping): New test (bug#55204).
Diffstat (limited to 'lisp')
-rw-r--r--lisp/eshell/em-pred.el4
1 files changed, 3 insertions, 1 deletions
diff --git a/lisp/eshell/em-pred.el b/lisp/eshell/em-pred.el
index 594563554d2..d73976d3464 100644
--- a/lisp/eshell/em-pred.el
+++ b/lisp/eshell/em-pred.el
@@ -416,7 +416,9 @@ before the closing delimiter. This allows modifiers like
416 (close (cdr (assoc open eshell-pred-delimiter-pairs))) 416 (close (cdr (assoc open eshell-pred-delimiter-pairs)))
417 (end (eshell-find-delimiter open close nil nil t))) 417 (end (eshell-find-delimiter open close nil nil t)))
418 (prog1 418 (prog1
419 (buffer-substring-no-properties (1+ (point)) end) 419 (replace-regexp-in-string
420 (rx-to-string `(seq "\\" (group (or "\\" ,open ,close)))) "\\1"
421 (buffer-substring-no-properties (1+ (point)) end))
420 (goto-char (if (and chained-p (eq open close)) 422 (goto-char (if (and chained-p (eq open close))
421 end 423 end
422 (1+ end)))))) 424 (1+ end))))))