GNU bug report logs - #59622
29.0.50; [PATCH] Regression in Eshell's handling of escaped newlines

Previous Next

Package: emacs;

Reported by: Jim Porter <jporterbugs <at> gmail.com>

Date: Sun, 27 Nov 2022 00:38:01 UTC

Severity: normal

Tags: patch

Found in version 29.0.50

Done: Jim Porter <jporterbugs <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jim Porter <jporterbugs <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.50; [PATCH] Regression in Eshell's handling of escaped newlines
Date: Sat, 26 Nov 2022 16:36:59 -0800
[Message part 1 (text/plain, inline)]
Starting from "emacs -Q -f eshell":

  # Emacs 28
  ~ $ echo foo\
  bar

  foobar

  # Emacs 29
  ~ $ echo foo\
  bar

  foo
  bar

That is, Emacs 28 used to treat escaped newlines in the way you'd expect 
from other shells: it expands to the empty string. Now in Emacs 29, it 
inserts a literal newline.

There's also a similar bug when doing this inside double-quotes:

  # Emacs 28
  ~ $ echo "foo\
  bar"

  ("foo\\" "bar")

  # Emacs 29
  ~  $ echo "foo\
  bar"

  foo\
  bar

Here, both cases are wrong. In Emacs 29, it inserts the literal 
backslash+newline combo, but Emacs 28 is even worse: it returns a list 
of two elements! Wrapping arguments in quotes should always produce a 
string in Eshell.
[0001-Treat-escaped-newlines-in-Eshell-as-the-empty-string.patch (text/plain, attachment)]

This bug report was last modified 2 years and 161 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.