[Bug 10381] New: (patch inside) lineedit: multiline PS1: fix extra scrolls
bugzilla at busybox.net
bugzilla at busybox.net
Sat Oct 7 19:21:11 UTC 2017
https://bugs.busybox.net/show_bug.cgi?id=10381
Bug ID: 10381
Summary: (patch inside) lineedit: multiline PS1: fix extra
scrolls
Product: Busybox
Version: unspecified
Hardware: All
OS: Linux
Status: NEW
Severity: normal
Priority: P5
Component: Other
Assignee: unassigned at busybox.net
Reporter: avihpit at yahoo.com
CC: busybox-cvs at busybox.net
Target Milestone: ---
Created attachment 7266
--> https://bugs.busybox.net/attachment.cgi?id=7266&action=edit
lineedit: multiline PS1: fix extra scrolls - redraw using last PS1 line
The commit message:
---------------
lineedit: multiline PS1: fix extra scrolls - redraw using last PS1 line
This patch only affects prompts with newlines.
We redraw the prompt [+ input] occasionally, e.g. during tab completion,
history browsing or search, etc, and we expect it to align with prior
redraws, such that the visible effect is that only the input changes.
With multi-line PS1, redraw always printed the prompt some lines below
the old one, which resulted in terminal scroll during every redraw.
Now we only redraw the last PS1 line, so vertical alignment is easier to
manage (we already calculated it using only the last line, but re-drew
all lines - that was the culprit), which fixes those extra scrolls.
Notes:
- Clear-screen (^L) is now the only case where we redraw all prompt lines.
- During terminal resize we now only redraw the last[/sole] prompt line,
which is arguably better because it's hard to do right (and we never did).
- Good side effect for reverse-i-search: its prompt now replaces only the
last line of the original prompt - like other shells do.
---------------
Note, when applied to busybox git master, the patch has a conflict at the
context of the last hunk because it's applied on top of the patch at bug 10376
. However, the patches and fixes are independent and just happen to modify near
eachother.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the busybox-cvs
mailing list