On Tue, 15 Jun 2021, Jiang Xin wrote:
The issue this patch try to fix is like the following example:
PKTLINE(\2 "<progress-1>" CR "<progress-2>")
PKTLINE(\2 CR "<message-3>" LF)
The message "<progress-2>" is displayed without a proper clear-to-eol
suffix, because it's eol (CR) is in another pktline.
I'd fix this issue with the following logic:
bool pending_clear_to_eol;
my_putchar(c) {
switch (c) {
case '\r':
case '\n':
pending_clear_to_eol = true;
break;
default:
if (pending_clear_to_eol) {
clear_to_eol();
pending_clear_to_eol = false;
}
break;
}
putchar(c);
}
In other words, you clear the line after printing "remote:" but only if
there is a non \n or \r coming next.
Nicolas