#endif
};
-static inline int
+static inline int
add_to_res(unsigned int c, unsigned int *res, unsigned int base)
{
/* overflow */
/* parse an int or a float */
-int
+int
cmdline_parse_num(cmdline_parse_token_hdr_t *tk, const char *srcbuf, void *res)
{
struct cmdline_token_num_data nd;
st = ERROR;
else
st = OCTAL_OK;
- }
+ }
else {
st = ERROR;
}
break;
case BIN:
- st = BIN_OK;
+ st = BIN_OK;
/* no break */
case BIN_OK:
if (c >= '0' && c <= '1') {
if (c >= '0' && c <= '9') {
if (add_to_res(c - '0', &res2, 10) < 0)
st = ERROR;
- else
+ else
st = FLOAT_POS_OK;
res3 = 10;
}
if (c >= '0' && c <= '9') {
if (add_to_res(c - '0', &res2, 10) < 0)
st = ERROR;
- else
+ else
st = FLOAT_NEG_OK;
res3 = 10;
}
default:
debug_printf("not impl ");
-
+
}
/* XXX uint32_t et %d */
if (buf-srcbuf > 127)
return -1;
}
-
+
switch (st) {
case ZERO_OK:
case DEC_POS_OK:
if (res)
*(float *)res = (float)res1 + ((float)res2 / (float)res3);
return (buf-srcbuf);
-
+
}
else {
return -1;
if (res)
*(float *)res = - ((float)res1 + ((float)res2 / (float)res3));
return (buf-srcbuf);
-
+
}
else {
return -1;
/* parse an int or a float */
-int
+int
cmdline_get_help_num(cmdline_parse_token_hdr_t *tk, char *dstbuf, unsigned int size)
{
struct cmdline_token_num_data nd;
memcpy(&nd, &((struct cmdline_token_num *)tk)->num_data, sizeof(nd));
-
+
/* should not happen.... don't so this test */
/* if (nd.type >= (sizeof(num_help)/sizeof(const char *))) */
/* return -1; */