-2013-10-21 Vladimir Serbinenko <phcoder@gmail.com>
+2013-10-27 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * grub-core/kern/misc.c (grub_vsnprintf_real): Unify int and wchar
+ handling.
+
+2013-10-27 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/misc.c (grub_abort): Make static
-2013-10-21 Vladimir Serbinenko <phcoder@gmail.com>
+2013-10-27 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/misc.c (grub_vsnprintf_real): Don't attempt to
transform invalid unicode codepoints.
-2013-10-21 Vladimir Serbinenko <phcoder@gmail.com>
+2013-10-27 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/misc.c (grub_vsnprintf_real): Remove needless explicit
\0 checking.
}
}
- enum { INT, WCHAR, LONG, LONGLONG, POINTER } types[count_args];
+ enum { INT, LONG, LONGLONG, POINTER } types[count_args];
union
{
int i;
- grub_uint32_t w;
long l;
long long ll;
void *p;
} args[count_args];
+ COMPILE_TIME_ASSERT (sizeof (int) == sizeof (grub_uint32_t));
+
grub_memset (types, 0, sizeof (types));
fmt = fmt0;
case 's':
types[curn] = POINTER;
break;
+ case 'C':
case 'c':
types[curn] = INT;
break;
- case 'C':
- types[curn] = WCHAR;
- break;
}
}
for (n = 0; n < count_args; n++)
switch (types[n])
{
- case WCHAR:
- args[n].w = va_arg (args_in, grub_uint32_t);
- break;
case POINTER:
args[n].p = va_arg (args_in, void *);
break;
case 'C':
{
- grub_uint32_t code = args[curn].w;
+ grub_uint32_t code = args[curn].i;
int shift;
unsigned mask;