mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 05:55:45 +00:00
fixing some bugs for %c in the string version of printf
svn path=/trunk/; revision=22257
This commit is contained in:
parent
dd221de709
commit
9c696e1c9e
2 changed files with 24 additions and 37 deletions
|
@ -477,25 +477,18 @@ int _vsnprintf(char *buf, size_t cnt, const char *fmt, va_list args)
|
||||||
|
|
||||||
switch (*fmt) {
|
switch (*fmt) {
|
||||||
case 'c': /* finished */
|
case 'c': /* finished */
|
||||||
if (!(flags & LEFT))
|
|
||||||
while (--field_width > 0) {
|
|
||||||
if (str <= end)
|
|
||||||
*str = ' ';
|
|
||||||
++str;
|
|
||||||
}
|
|
||||||
if (qualifier == 'l' || qualifier == 'w') {
|
if (qualifier == 'l' || qualifier == 'w') {
|
||||||
if (str <= end)
|
wchar_t sw1[2];
|
||||||
*str = (unsigned char)(wchar_t) va_arg(args, int);
|
/* print unicode string */
|
||||||
++str;
|
sw1[0] = (wchar_t) va_arg(args, int);
|
||||||
|
sw1[1] = 0;
|
||||||
|
str = stringw(str, end, (wchar_t *)&sw1, -1, field_width, precision, flags);
|
||||||
} else {
|
} else {
|
||||||
if (str <= end)
|
char s1[2];
|
||||||
*str = (unsigned char) va_arg(args, int);
|
/* print ascii string */
|
||||||
++str;
|
s1[0] = ( unsigned char) va_arg(args, int);
|
||||||
}
|
s1[1] = 0;
|
||||||
while (--field_width > 0) {
|
str = string(str, end, (char *)&s1, -1, field_width, precision, flags);
|
||||||
if (str <= end)
|
|
||||||
*str = ' ';
|
|
||||||
++str;
|
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
|
@ -475,26 +475,20 @@ int _vsnwprintf(wchar_t *buf, size_t cnt, const wchar_t *fmt, va_list args)
|
||||||
|
|
||||||
switch (*fmt) {
|
switch (*fmt) {
|
||||||
case L'c':
|
case L'c':
|
||||||
if (!(flags & LEFT))
|
if (qualifier == 'h' || qualifier == 'w') {
|
||||||
while (--field_width > 0) {
|
wchar_t sw1[2];
|
||||||
if (str <= end)
|
/* print unicode string */
|
||||||
*str = L' ';
|
sw1[0] = (wchar_t) va_arg(args, int);
|
||||||
++str;
|
sw1[1] = 0;
|
||||||
}
|
str = stringw(str, end, (wchar_t *)&sw1, -1, field_width, precision, flags);
|
||||||
if (qualifier == 'h') {
|
|
||||||
if (str <= end)
|
|
||||||
*str = (wchar_t) va_arg(args, int);
|
|
||||||
++str;
|
|
||||||
} else {
|
} else {
|
||||||
if (str <= end)
|
char s1[2];
|
||||||
*str = (wchar_t) va_arg(args, int);
|
/* print ascii string */
|
||||||
++str;
|
s1[0] = ( unsigned char) va_arg(args, int);
|
||||||
}
|
s1[1] = 0;
|
||||||
while (--field_width > 0) {
|
str = string(str, end, (char *)&s1, -1, field_width, precision, flags);
|
||||||
if (str <= end)
|
|
||||||
*str = L' ';
|
|
||||||
++str;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case L'C':
|
case L'C':
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue