\r
switch (*fmt) {\r
case 'c': /* finished */\r
- if (!(flags & LEFT))\r
- while (--field_width > 0) {\r
- if (str <= end)\r
- *str = ' ';\r
- ++str;\r
- }\r
- if (qualifier == 'l' || qualifier == 'w') {\r
- if (str <= end)\r
- *str = (unsigned char)(wchar_t) va_arg(args, int);\r
- ++str;\r
+ if (qualifier == 'l' || qualifier == 'w') { \r
+ wchar_t sw1[2];\r
+ /* print unicode string */\r
+ sw1[0] = (wchar_t) va_arg(args, int);\r
+ sw1[1] = 0;\r
+ str = stringw(str, end, (wchar_t *)&sw1, -1, field_width, precision, flags);\r
} else {\r
- if (str <= end)\r
- *str = (unsigned char) va_arg(args, int);\r
- ++str;\r
- }\r
- while (--field_width > 0) {\r
- if (str <= end)\r
- *str = ' ';\r
- ++str;\r
+ char s1[2];\r
+ /* print ascii string */\r
+ s1[0] = ( unsigned char) va_arg(args, int);\r
+ s1[1] = 0;\r
+ str = string(str, end, (char *)&s1, -1, field_width, precision, flags);\r
}\r
- continue;\r
+ continue;\r
\r
case 'C': /* finished */\r
if (!(flags & LEFT))\r
\r
switch (*fmt) {\r
case L'c':\r
- if (!(flags & LEFT))\r
- while (--field_width > 0) {\r
- if (str <= end)\r
- *str = L' ';\r
- ++str;\r
- }\r
- if (qualifier == 'h') {\r
- if (str <= end)\r
- *str = (wchar_t) va_arg(args, int);\r
- ++str;\r
+ if (qualifier == 'h' || qualifier == 'w') { \r
+ wchar_t sw1[2];\r
+ /* print unicode string */\r
+ sw1[0] = (wchar_t) va_arg(args, int);\r
+ sw1[1] = 0;\r
+ str = stringw(str, end, (wchar_t *)&sw1, -1, field_width, precision, flags);\r
} else {\r
- if (str <= end)\r
- *str = (wchar_t) va_arg(args, int);\r
- ++str;\r
- }\r
- while (--field_width > 0) {\r
- if (str <= end)\r
- *str = L' ';\r
- ++str;\r
+ char s1[2];\r
+ /* print ascii string */\r
+ s1[0] = ( unsigned char) va_arg(args, int);\r
+ s1[1] = 0;\r
+ str = string(str, end, (char *)&s1, -1, field_width, precision, flags);\r
}\r
+ \r
continue;\r
\r
case L'C':\r