
On Mon, Sep 11, 2017 at 7:50 AM, Lothar Waßmann LW@karo-electronics.de wrote:
Hi,
On Mon, 11 Sep 2017 05:42:01 -0400 Rob Clark wrote:
On Mon, Sep 11, 2017 at 2:18 AM, Simon Glass sjg@chromium.org wrote:
On 7 September 2017 at 14:28, Rob Clark robdclark@gmail.com wrote:
Really just the subset that is needed by efi_console. Perhaps more will be added later, for example color support would be useful to implement efi_cout_set_attribute().
Signed-off-by: Rob Clark robdclark@gmail.com
drivers/video/vidconsole-uclass.c | 112 ++++++++++++++++++++++++++++++++++++++ drivers/video/video-uclass.c | 4 +- include/video.h | 7 +++ include/video_console.h | 11 ++++ 4 files changed, 131 insertions(+), 3 deletions(-)
diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c index e081d5a0ee..7998b4cf5f 100644 --- a/drivers/video/vidconsole-uclass.c +++ b/drivers/video/vidconsole-uclass.c @@ -9,6 +9,7 @@ */
#include <common.h> +#include <linux/ctype.h> #include <dm.h> #include <video.h> #include <video_console.h> @@ -107,12 +108,123 @@ static void vidconsole_newline(struct udevice *dev) video_sync(dev->parent); }
+/*
- Parse a number from string that ends in a non-numeric character..
- sscanf() would be nice. This is just enough for parsing ANSI escape
- sequences.
- */
+static char *parsenum(char *s, int *num)
Can you use simple_strtoul() or similar?
Possibly, but I'm not sure it is a good idea.. I don't think escape sequences are meant to be encoded with hex or octal number strings. From a quick look, I don't see any escape code terminated with 'x', so maybe it would end up working ok.. but something like ESC[0x1234m should be an escape sequence terminated with x followed by normal chars 1234m and strtoul would get that wrong..
stroul(s, NULL, 10) will only parse decimal numbers and stop at non-decimal digits.
And you'd expect simple_strtoul() would too.. but that does not appear to be the case. Not sure if that is intentional.
BR, -R