1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Handle escaped characters in Eshell special references (e.g. buffers)

* lisp/eshell/esh-arg.el (eshell-parse-special-reference): Unescape
escaped characters.

* test/lisp/eshell/eshell-tests-helpers.el (with-temp-eshell): Restore
current buffer after evaluating BODY.

* test/lisp/eshell/eshell-tests.el (eshell-test/redirect-buffer)
(eshell-test/redirect-buffer-escaped): New tests (bug#55204).
This commit is contained in:
Jim Porter 2022-04-26 21:53:00 -07:00 committed by Lars Ingebrigtsen
parent bb40507fed
commit 32ab756d82
3 changed files with 34 additions and 12 deletions

View file

@ -114,6 +114,25 @@ e.g. \"{(+ 1 2)} 3\" => 3"
(eshell-wait-for-subprocess)
(eshell-match-result "OLLEH\n")))
(ert-deftest eshell-test/redirect-buffer ()
"Check that piping to a buffer works"
(with-temp-buffer
(rename-buffer "eshell-temp-buffer" t)
(let ((bufname (buffer-name)))
(with-temp-eshell
(eshell-insert-command (format "echo hi > #<%s>" bufname)))
(should (equal (buffer-string) "hi")))))
(ert-deftest eshell-test/redirect-buffer-escaped ()
"Check that piping to a buffer with escaped characters works"
(with-temp-buffer
(rename-buffer "eshell\\temp\\buffer" t)
(let ((bufname (buffer-name)))
(with-temp-eshell
(eshell-insert-command (format "echo hi > #<%s>"
(string-replace "\\" "\\\\" bufname))))
(should (equal (buffer-string) "hi")))))
(ert-deftest eshell-test/inside-emacs-var ()
"Test presence of \"INSIDE_EMACS\" in subprocesses"
(with-temp-eshell