* libc/stdio/vfwprintf.c (_VFWPRINTF_R): Add code to correctly handle
's' format specifier on not _MB_CAPABLE targets. Fix a formatting glitch in _MB_CAPABLE enabled code. Add a missing 'L' specifier.
This commit is contained in:
parent
2f47bbd555
commit
3920a99a22
|
@ -1,3 +1,9 @@
|
||||||
|
2013-01-11 Corinna Vinschen <vinschen@redhat.com>
|
||||||
|
|
||||||
|
* libc/stdio/vfwprintf.c (_VFWPRINTF_R): Add code to correctly handle
|
||||||
|
's' format specifier on not _MB_CAPABLE targets. Fix a formatting
|
||||||
|
glitch in _MB_CAPABLE enabled code. Add a missing 'L' specifier.
|
||||||
|
|
||||||
2013-01-10 Marcus Shawcroft <marcus.shawcroft@linaro.org>
|
2013-01-10 Marcus Shawcroft <marcus.shawcroft@linaro.org>
|
||||||
|
|
||||||
* libc/machine/aarch64/Makefile.am (lib_a_SOURCES): Add
|
* libc/machine/aarch64/Makefile.am (lib_a_SOURCES): Add
|
||||||
|
@ -8,7 +14,7 @@
|
||||||
|
|
||||||
2013-01-10 Marcus Shawcroft <marcus.shawcroft@linaro.org>
|
2013-01-10 Marcus Shawcroft <marcus.shawcroft@linaro.org>
|
||||||
|
|
||||||
* libc/machine/aarch64/Makefile.am (lib_a_SOURCES): Add
|
* libc/machine/aarch64/Makefile.am (lib_a_SOURCES): Add
|
||||||
strnlen-stub.c and strnlen.S
|
strnlen-stub.c and strnlen.S
|
||||||
* libc/machine/aarch64/Makefile.in: Regenerated.
|
* libc/machine/aarch64/Makefile.in: Regenerated.
|
||||||
* libc/machine/aarch64/strnlen-stub.c: New file.
|
* libc/machine/aarch64/strnlen-stub.c: New file.
|
||||||
|
|
|
@ -1171,11 +1171,11 @@ string:
|
||||||
insize = strlen(arg);
|
insize = strlen(arg);
|
||||||
if (insize >= BUF) {
|
if (insize >= BUF) {
|
||||||
if ((malloc_buf = (wchar_t *) _malloc_r (data, (insize + 1) * sizeof (wchar_t)))
|
if ((malloc_buf = (wchar_t *) _malloc_r (data, (insize + 1) * sizeof (wchar_t)))
|
||||||
== NULL) {
|
== NULL) {
|
||||||
fp->_flags |= __SERR;
|
fp->_flags |= __SERR;
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
cp = malloc_buf;
|
cp = malloc_buf;
|
||||||
} else
|
} else
|
||||||
cp = buf;
|
cp = buf;
|
||||||
memset ((_PTR)&ps, '\0', sizeof (mbstate_t));
|
memset ((_PTR)&ps, '\0', sizeof (mbstate_t));
|
||||||
|
@ -1195,9 +1195,31 @@ string:
|
||||||
*p = L'\0';
|
*p = L'\0';
|
||||||
size = p - cp;
|
size = p - cp;
|
||||||
}
|
}
|
||||||
else
|
#else
|
||||||
|
if (ch != L'S' && !(flags & LONGINT)) {
|
||||||
|
char *arg = (char *) cp;
|
||||||
|
size_t insize = 0;
|
||||||
|
|
||||||
|
if (prec >= 0) {
|
||||||
|
char *p = memchr (arg, '\0', prec);
|
||||||
|
insize = p ? p - arg : prec;
|
||||||
|
} else
|
||||||
|
insize = strlen (arg);
|
||||||
|
if (insize >= BUF) {
|
||||||
|
if ((malloc_buf = (wchar_t *) _malloc_r (data, (insize + 1) * sizeof (wchar_t)))
|
||||||
|
== NULL) {
|
||||||
|
fp->_flags |= __SERR;
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
cp = malloc_buf;
|
||||||
|
} else
|
||||||
|
cp = buf;
|
||||||
|
for (size = 0; size < insize; ++size)
|
||||||
|
cp[size] = arg[size];
|
||||||
|
cp[size] = L'\0';
|
||||||
|
}
|
||||||
#endif /* _MB_CAPABLE */
|
#endif /* _MB_CAPABLE */
|
||||||
if (prec >= 0) {
|
else if (prec >= 0) {
|
||||||
/*
|
/*
|
||||||
* can't use wcslen; can only look for the
|
* can't use wcslen; can only look for the
|
||||||
* NUL in the first `prec' characters, and
|
* NUL in the first `prec' characters, and
|
||||||
|
@ -1222,7 +1244,7 @@ string:
|
||||||
case L'X':
|
case L'X':
|
||||||
xdigs = L"0123456789ABCDEF";
|
xdigs = L"0123456789ABCDEF";
|
||||||
goto hex;
|
goto hex;
|
||||||
case 'x':
|
case L'x':
|
||||||
xdigs = L"0123456789abcdef";
|
xdigs = L"0123456789abcdef";
|
||||||
hex: _uquad = UARG ();
|
hex: _uquad = UARG ();
|
||||||
base = HEX;
|
base = HEX;
|
||||||
|
|
Loading…
Reference in New Issue