- Sync with trunk r51165.

svn path=/branches/cmake-bringup/; revision=51166
This commit is contained in:
Amine Khaldi 2011-03-26 23:14:25 +00:00
commit 475719f162
249 changed files with 13280 additions and 5238 deletions

View file

@ -16,13 +16,6 @@
#ifdef _UNICODE
# define streamout wstreamout
# define format_float format_floatw
# define _flsbuf _flswbuf
int __cdecl _flswbuf(int ch, FILE *stream);
#endif
#ifdef _LIBCNT_
# undef _flsbuf
# define _flsbuf(chr, stream) _TEOF
#endif
#define MB_CUR_MAX 10
@ -234,25 +227,19 @@ static
int
streamout_char(FILE *stream, int chr)
{
#if defined(_USER32_WSPRINTF) || defined(_LIBCNT_)
/* Check if the buffer is full */
if (stream->_cnt < sizeof(TCHAR))
{
#ifdef _USER32_WSPRINTF
return _TEOF;
#else
/* Strings are done now */
if (stream->_flag & _IOSTRG) return _TEOF;
/* Flush buffer for files */
return _flsbuf(chr, stream) != _TEOF;
#endif
}
return 0;
*(TCHAR*)stream->_ptr = chr;
stream->_ptr += sizeof(TCHAR);
stream->_cnt -= sizeof(TCHAR);
return 1;
#else
return _fputtc((TCHAR)chr, stream) != _TEOF;
#endif
}
static

View file

@ -2175,12 +2175,33 @@ size_t CDECL fwrite(const void *ptr, size_t size, size_t nmemb, FILE* file)
/*********************************************************************
* fputwc (MSVCRT.@)
*/
wint_t CDECL fputwc(wint_t wc, FILE* file)
wint_t CDECL fputwc(wchar_t c, FILE* stream)
{
wchar_t mwc=wc;
if (fwrite( &mwc, sizeof(mwc), 1, file) != 1)
return WEOF;
return wc;
/* If this is a real file stream (and not some temporary one for
sprintf-like functions), check whether it is opened in text mode.
In this case, we have to perform an implicit conversion to ANSI. */
if (!(stream->_flag & _IOSTRG) && fdesc[stream->_file].wxflag & WX_TEXT)
{
/* Convert to multibyte in text mode */
char mbc[MB_LEN_MAX];
int mb_return;
mb_return = wctomb(mbc, c);
if(mb_return == -1)
return WEOF;
/* Output all characters */
if (fwrite(mbc, mb_return, 1, stream) != 1)
return WEOF;
}
else
{
if (fwrite(&c, sizeof(c), 1, stream) != 1)
return WEOF;
}
return c;
}
/*********************************************************************