mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-15 11:00:04 +08:00
7890be6e7d
* libc/stdio/vfwprintf.c (wcvt): Add a new parameter len of type int. *length is set to the value of (rev - digits) regardless of whether _MB_CAPABLE is defined or not. Replace BUF with len in calling _mbsnrtowcs_r and also in the loop where _MB_CAPABLE is not defined. (_VFWPRINTF_R): Call wcvt with an extra argument. Call wcvt again with allocated new buffer if buf is not large enough for the conversion. * testsuite/newlib.stdio/stdio.exp: New. * testsuite/newlib.stdio/swprintf.c: Likewise.
31 lines
615 B
C
31 lines
615 B
C
/*
|
|
* Copyright (C) 2011 by ARM Ltd. All rights reserved.
|
|
*
|
|
* Permission to use, copy, modify, and distribute this software
|
|
* is freely granted, provided that this notice is preserved.
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <newlib.h>
|
|
#include <stdlib.h>
|
|
#include <wchar.h>
|
|
#include "check.h"
|
|
|
|
int main()
|
|
{
|
|
#if defined(INTEGER_ONLY) || defined(NO_FLOATING_POINT)
|
|
|
|
#else
|
|
char cbuf[512];
|
|
wchar_t wcbuf[512], wcbuf2[512];
|
|
double val = 1E+308;
|
|
snprintf(cbuf, 512, "%.*f", 3, val);
|
|
swprintf(wcbuf, 512, L"%.*f", 3, val);
|
|
mbstowcs(wcbuf2, cbuf, 512);
|
|
|
|
CHECK (wcscmp(wcbuf, wcbuf2) == 0);
|
|
#endif
|
|
|
|
exit (0);
|
|
}
|