ash: main: Print \n upon EOF (CTRL-D) when run interactively

Upstream comment:

    Date: Fri, 7 Sep 2018 10:34:14 +0200
    main: Print \n upon EOF (CTRL-D) when run interactively

    Exiting dash via a ^D instead of with "exit" causes dash to forget to
    print a newline.

        sh-3.1$ sh
        sh-3.1$ ^D
        sh-3.1$ dash
        $ sh-3.1$

    It is more neat and tidy to send a newline similarly to what bash does,
    so it doesn't make the next prompt of the parent shell look ugly.

    Suggested by jidanni.

    Signed-off-by: Gerrit Pape <pape@smarden.org>
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
    [reworded the patch description]
    Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
    Bug-Debian: http://bugs.debian.org/476422
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2020-02-16 18:57:53 +01:00
parent e880b1fea8
commit 226b8a143d

View File

@ -13302,8 +13302,12 @@ cmdloop(int top)
if (!top || numeof >= 50) if (!top || numeof >= 50)
break; break;
if (!stoppedjobs()) { if (!stoppedjobs()) {
if (!Iflag) if (!Iflag) {
if (iflag) {
newline_and_flush(stderr);
}
break; break;
}
out2str("\nUse \"exit\" to leave shell.\n"); out2str("\nUse \"exit\" to leave shell.\n");
} }
numeof++; numeof++;