Do not fail with 'l' type modifier. Bug #4438.

svn path=/trunk/; revision=42189
This commit is contained in:
Dmitry Gorbachev 2009-07-25 07:40:35 +00:00
parent adb1a3f3c8
commit 759abadd3d

View file

@ -41,25 +41,11 @@ int TuiPrintf(const char *format, ... )
{
switch (c = *(format++))
{
case 'd': case 'u': case 'x':
if (c == 'x')
_itoa(va_arg(ap, unsigned long), str, 16);
else
_itoa(va_arg(ap, unsigned long), str, 10);
ptr = str;
while (*ptr)
{
MachConsPutChar(*(ptr++));
}
case 'c':
MachConsPutChar((va_arg(ap, int)) & 0xff);
break;
case 'c': MachConsPutChar((va_arg(ap,int))&0xff); break;
case 's':
ptr = va_arg(ap,char *);
ptr = va_arg(ap, char *);
while ((c = *(ptr++)))
{
MachConsPutChar(c);
@ -68,6 +54,20 @@ int TuiPrintf(const char *format, ... )
case '%':
MachConsPutChar(c);
break;
case 'l':
c = *(format++);
/* Fall through. */
case 'd': case 'u': case 'x':
if (c == 'x')
_itoa(va_arg(ap, unsigned long), str, 16);
else
_itoa(va_arg(ap, unsigned long), str, 10);
ptr = str;
while (*ptr)
{
MachConsPutChar(*(ptr++));
}
break;
default:
printf("\nprintf() invalid format specifier - %%%c\n", c);
break;
@ -76,7 +76,6 @@ int TuiPrintf(const char *format, ... )
}
va_end(ap);
return 0;
}