blob: 2029edc2c7f5955ac037f8869fb0838208d5417a [file] [log] [blame]
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#include <locale.h>
#include <limits.h>
#include <wchar.h>
#include <stdio.h>
#include <windows.h>
wint_t btowc (int c)
{
if (c == EOF)
return (WEOF);
/* Use dummy string so that mbrtowc will never return (size_t)-2 */
char str[MB_LEN_MAX] = {(unsigned char) c, 0, 0, 0, 0};
wint_t wc = WEOF;
mbstate_t state = {0};
if (mbrtowc (&wc, (char *) str, MB_CUR_MAX, &state) == (size_t) -1) {
return WEOF;
}
return wc;
}