altos: Share getnibble function
[fw/altos] / src / core / ao_cmd.c
index 1814cecf5021848e4fe88b8fc3841dd10e6a491f..a33309745430d51d8dd3137df057ec1e7752cf1b 100644 (file)
@@ -110,6 +110,22 @@ putnibble(uint8_t v)
                putchar(v + ('a' - 10));
 }
 
+uint8_t
+ao_getnibble(void)
+{
+       char    c;
+
+       c = getchar();
+       if ('0' <= c && c <= '9')
+               return c - '0';
+       if ('a' <= c && c <= 'f')
+               return c - ('a' - 10);
+       if ('A' <= c && c <= 'F')
+               return c - ('A' - 10);
+       ao_cmd_status = ao_cmd_lex_error;
+       return 0;
+}
+
 void
 ao_cmd_put16(uint16_t v)
 {