From 7e3c4f3dd1df7ca8cbe91c636490c84be8c2d44f Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 16 Oct 2020 12:57:07 -0700 Subject: [PATCH] altos: Support negative decimal values on command line Add support for leading unary minus for decimal constants. Signed-off-by: Keith Packard --- src/kernel/ao_cmd.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/kernel/ao_cmd.c b/src/kernel/ao_cmd.c index 9bc19038..4ae63781 100644 --- a/src/kernel/ao_cmd.c +++ b/src/kernel/ao_cmd.c @@ -205,8 +205,13 @@ ao_cmd_decimal(void) { uint32_t result = 0; uint8_t r = ao_cmd_lex_error; + bool negative = false; ao_cmd_white(); + if (ao_cmd_lex_c == '-') { + negative = true; + ao_cmd_lex(); + } for(;;) { if ('0' <= ao_cmd_lex_c && ao_cmd_lex_c <= '9') result = result * 10 + (ao_cmd_lex_c - '0'); @@ -217,6 +222,8 @@ ao_cmd_decimal(void) } if (r != ao_cmd_success) ao_cmd_status = r; + if (negative) + result = -result; return result; } -- 2.30.2