|
@@ -508,10 +508,10 @@ static void token_proc_number(struct finsh_token* self)
|
|
|
|
|
|
*p = '\0';
|
|
|
}
|
|
|
- else
|
|
|
+ else if ( '0' <= ch && ch <= '7' )
|
|
|
{
|
|
|
b = 8;
|
|
|
- while ( is_digit(ch) )
|
|
|
+ while ( '0' <= ch && ch <= '7' )
|
|
|
{
|
|
|
*p++ = ch;
|
|
|
ch = token_next_char(self);
|
|
@@ -519,6 +519,12 @@ static void token_proc_number(struct finsh_token* self)
|
|
|
|
|
|
*p = '\0';
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ /* Not a valid number */
|
|
|
+ token_prev_char(self);
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
self->value.int_value = token_spec_number(buf, strlen(buf), b);
|
|
|
self->current_token = finsh_token_type_value_int;
|