[PATCH 21/25] edit: Improve behaviour on efi-stdio console

Sascha Hauer s.hauer at pengutronix.de
Fri Dec 17 05:29:33 PST 2021


On Thu, Dec 16, 2021 at 01:41:34PM +0100, Jules Maselbas wrote:
> Hi,
> 
> On Mon, Dec 13, 2021 at 10:09:01PM +0100, Sascha Hauer wrote:
> > Our console driver for the EFI simple text protocol does not support
> > the "\e[1S" escape sequence to scroll the window which means sedit
> > doesn't work properly. Disable smartscroll when the efi-stdio console
> > is active. While at it put the screen height reduction into the same
> > dynamic test.
> 
> FYI
> 
> From the terminfo manpage:
> In order to scroll text up, a program will go to the bottom left corner
> of the screen and send the ind (index) string. [...] Parameterized
> versions of the scrolling sequences are indn and rin which have the same
> semantics as ind and ri except that they take one parameter, and scroll
> that many lines. [...]
> 
> From infocmp on my system: ind=\n and indn=\e[%p1$pS
> 
> So the smart scroll could be replaced by a move to the last line plus \n

The efi-stdio code itself implements a terminal and translates the
escape sequences into things the EFI simple text protocol can
understand.

With the EFI simple text protocol the screen content indeed scrolls one
line up when the cursor is moved out of the screen. The problem comes
with the status line in the editor. This would be scrolled out of the
screen. The editor uses escape sequences to limit the window of what is
scrolled in a way that the first line is not part of the window. That
cannot be implemented with the EFI simple text protocol, at least not
without redrawing the whole screen. This is why it's simpler to just
not use this in the editor.

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list