Dear Chet,

Do you mean that commands should output a newline at the end? I don't have control over what all commands do that I run, and sometimes they don't end with a newline. It would be nice if I could still read their last lines, like in bash 5.2.

In bash 5.3 it also works fine for prompts without unicode characters, for example:

bash-5.3$ echo -n test
testbash-5.3$

On bash 5.2 this also works fine:

bash-5.2$ PS1='€ \[\e[0m\]'
€ echo -n test
test€

Best,

Lennart


On 5/18/26 6:07 PM, Chet Ramey wrote:
On 5/16/26 3:28 PM, Lennart Ackermans via Bug reports for the GNU Bourne Again SHell wrote:

Bash Version: 5.3
Patch Level: 9
Release Status: release

Description:
     If $PS1 contains a unicode character followed by an escape sequence, the prompt appears to be output twice if a command ends without a newline: once (correctly) after the output and once at the beginning of the line, overwriting the output. The cursor is placed after the first, overwriting prompt (on "s" in the example below).

   This bug was not present in Bash 5.2.

Repeat-By:
     bash-5.3$ PS1='€ \[\e[0m\]'
     € echo -n test
     € st€

If the cursor isn't at position 0 when readline starts, results will be
unpredictable. Readline has to know where it is on the screen so it can
make decisions about which escape sequences to use to move the cursor.
This isn't necessarily the result of having any particular characters in
the prompt string, though having a sequence of non-printing characters
means that readline really does need to know where it is on the screen.

A simple newline will fix this.

  • Prompt ov... Lennart Ackermans via Bug reports for the GNU Bourne Again SHell
    • Re: ... Chet Ramey
      • ... Lennart Ackermans via Bug reports for the GNU Bourne Again SHell
        • ... Grisha Levit
          • ... Chet Ramey
            • ... Chet Ramey

Reply via email to