efi_process_square_bracket() returns the number of characters consumed
including the escape character which starts the escape sequence. That
escape character is not passed to efi_process_square_bracket(), so it
seems more consistent to return the number of characters without the
escape.

Signed-off-by: Sascha Hauer <[email protected]>
---
 drivers/serial/efi-stdio.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/serial/efi-stdio.c b/drivers/serial/efi-stdio.c
index dec633a7d6..0c804a5d97 100644
--- a/drivers/serial/efi-stdio.c
+++ b/drivers/serial/efi-stdio.c
@@ -195,27 +195,27 @@ static int efi_process_square_bracket(struct 
efi_console_priv *priv, const char
                /* home */
        case 'F':
                /* end */
-               return 3;
+               return 2;
        case 'K':
                clear_to_eol(priv);
-               return 3;
+               return 2;
        }
 
        if (*inp == '2' && *(inp + 1) == 'J') {
                priv->out->clear_screen(priv->out);
-               return 4;
+               return 3;
        }
 
        if (*inp == '0' && *(inp + 1) == 'm') {
                priv->out->set_attribute(priv->out,
                                EFI_TEXT_ATTR(EFI_WHITE, EFI_BLACK));
-               return 4;
+               return 3;
        }
 
        if (*inp == '7' && *(inp + 1) == 'm') {
                priv->out->set_attribute(priv->out,
                                EFI_TEXT_ATTR(EFI_BLACK, priv->current_color));
-               return 4;
+               return 3;
        }
 
        if (*inp == '1' &&
@@ -239,7 +239,7 @@ static int efi_process_square_bracket(struct 
efi_console_priv *priv, const char
 
                priv->out->set_attribute(priv->out,
                                EFI_TEXT_ATTR(color, EFI_BLACK));
-               return 7;
+               return 6;
        }
 
        y = simple_strtoul(inp, &endp, 10);
@@ -247,11 +247,11 @@ static int efi_process_square_bracket(struct 
efi_console_priv *priv, const char
                x = simple_strtoul(endp + 1, &endp, 10);
                if (*endp == 'H') {
                        priv->out->set_cursor_position(priv->out, x - 1, y - 1);
-                       return endp - inp + 3;
+                       return endp - inp + 2;
                }
        }
 
-       return 8;
+       return 7;
 }
 
 static int efi_process_escape(struct efi_console_priv *priv, const char *inp)
@@ -263,7 +263,7 @@ static int efi_process_escape(struct efi_console_priv 
*priv, const char *inp)
        inp++;
 
        if (*inp == '[')
-               return efi_process_square_bracket(priv, inp);
+               return efi_process_square_bracket(priv, inp) + 1;
 
        return 1;
 }
-- 
2.30.2


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to