Support field with specifiers in %N printf hook

This commit is contained in:
Martin Willi
2012-10-24 11:34:30 +02:00
parent fc4d1568d1
commit 2232d88569
+7 -5
View File
@@ -65,15 +65,17 @@ int enum_printf_hook(printf_hook_data_t *data, printf_hook_spec_t *spec,
{
enum_name_t *ed = *((enum_name_t**)(args[0]));
int val = *((int*)(args[1]));
char *name, buf[32];
char *name = enum_to_name(ed, val);
name = enum_to_name(ed, val);
if (name == NULL)
{
return print_in_hook(data, "(%d)", val);
snprintf(buf, sizeof(buf), "(%d)", val);
name = buf;
}
else
if (spec->minus)
{
return print_in_hook(data, "%s", name);
return print_in_hook(data, "%-*s", spec->width, name);
}
return print_in_hook(data, "%*s", spec->width, name);
}