Add error handling
This commit is contained in:
parent
075d9e17a6
commit
3bcb9c7df4
28
srv/format.c
28
srv/format.c
@ -81,27 +81,37 @@ static uint32_t render_format(FormatCallback callback, void* arg,
|
|||||||
if (in_format) {
|
if (in_format) {
|
||||||
switch (*c) {
|
switch (*c) {
|
||||||
case '%':
|
case '%':
|
||||||
callback('%', arg);
|
if (callback('%', arg)) return 1;
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
callback((uint8_t)va_arg(va, uint32_t), arg);
|
if (callback((uint8_t)va_arg(va, uint32_t), arg)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
{
|
{
|
||||||
const char* str = va_arg(va, const char*);
|
const char* str = va_arg(va, const char*);
|
||||||
for (const char* c2 = str; *c2 != '\0'; ++c2) {
|
for (const char* c2 = str; *c2 != '\0'; ++c2) {
|
||||||
callback(*c2, arg);
|
if (callback(*c2, arg)) return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
render_signed(callback, arg, va_arg(va, int32_t), 10);
|
if (render_signed(callback, arg, va_arg(va, int32_t), 10)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'u':
|
case 'u':
|
||||||
render_unsigned(callback, arg, va_arg(va, uint32_t), 10);
|
if (render_unsigned(callback, arg,
|
||||||
|
va_arg(va, uint32_t), 10)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'x':
|
case 'x':
|
||||||
render_unsigned(callback, arg, va_arg(va, uint32_t), 16);
|
if (render_unsigned(callback, arg,
|
||||||
|
va_arg(va, uint32_t), 16)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
//TODO manage error
|
//TODO manage error
|
||||||
@ -113,7 +123,7 @@ static uint32_t render_format(FormatCallback callback, void* arg,
|
|||||||
in_format = true;
|
in_format = true;
|
||||||
continue;
|
continue;
|
||||||
default:
|
default:
|
||||||
callback(*c, arg);
|
if (callback(*c, arg)) return 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -154,9 +164,9 @@ static uint32_t render_unsigned(FormatCallback callback, void* arg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (digit < 10) {
|
if (digit < 10) {
|
||||||
callback('0' + digit, arg);
|
if (callback('0' + digit, arg)) return 1;
|
||||||
} else {
|
} else {
|
||||||
callback('A' + digit - 10, arg);
|
if (callback('A' + digit - 10, arg)) return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user