Message ID | 20190323013002.27117-5-andre.przywara@arm.com |
---|---|
State | Accepted |
Commit | 4422294cbe37e3b2bcbbb066e0d53411880cf07e |
Delegated to: | Anatolij Gustschin |
Headers | show |
Series | video/console: Fix various DM_VIDEO console issues | expand |
On Fri, 22 Mar 2019 at 19:32, Andre Przywara <andre.przywara@arm.com> wrote: > > There is a standard ANSI terminal escape sequence to clear a whole line > of text. So far the DM_VIDEO console was missing this code. > > Detect the sequence and use vidconsole_set_row with the background > colour to fix this omission. > > Signed-off-by: Andre Przywara <andre.przywara@arm.com> > --- > drivers/video/vidconsole-uclass.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > Reviewed-by: Simon Glass <sjg@chromium.org>
On Sat, 23 Mar 2019 01:29:58 +0000 Andre Przywara andre.przywara@arm.com wrote: > There is a standard ANSI terminal escape sequence to clear a whole line > of text. So far the DM_VIDEO console was missing this code. > > Detect the sequence and use vidconsole_set_row with the background > colour to fix this omission. > > Signed-off-by: Andre Przywara <andre.przywara@arm.com> > --- > drivers/video/vidconsole-uclass.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) Applied to u-boot-video/master, thanks! -- Anatolij
diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c index cbd63f0ce8..7d914ed5ca 100644 --- a/drivers/video/vidconsole-uclass.c +++ b/drivers/video/vidconsole-uclass.c @@ -346,6 +346,25 @@ static void vidconsole_escape_char(struct udevice *dev, char ch) } break; } + case 'K': { + struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent); + int mode; + + /* + * Clear (parts of) current line + * [0K - clear line to end + * [2K - clear entire line + */ + parsenum(priv->escape_buf + 1, &mode); + + if (mode == 2) { + int row, col; + + get_cursor_position(priv, &row, &col); + vidconsole_set_row(dev, row, vid_priv->colour_bg); + } + break; + } case 'm': { struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent); char *s = priv->escape_buf;
There is a standard ANSI terminal escape sequence to clear a whole line of text. So far the DM_VIDEO console was missing this code. Detect the sequence and use vidconsole_set_row with the background colour to fix this omission. Signed-off-by: Andre Przywara <andre.przywara@arm.com> --- drivers/video/vidconsole-uclass.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)