Hi Chip, On 1/27/20 3:13 AM, Chip Davis wrote:
+ if(!get_locinfo()->lc_codepage) + return c & 255; + if(!MultiByteToWideChar(get_locinfo()->lc_codepage, + MB_ERR_INVALID_CHARS, (LPCSTR)&letter, 1, &ret, 1)) + return MSVCRT_WEOF; Please also add handling for c == EOF, it doesn't work correctly now.
+static void test_btowc(void) +{ + wint_t ret; + int cp = _getmbcp(); + + if(!p_btowc || !setlocale(LC_ALL, "chinese-traditional")) { + win_skip("Skipping btowc tests\n"); + return; + } + + ret = p_btowc(0x61); + ok(ret == 0x61, "ret = %x\n", ret); + + ret = p_btowc(0x81); + ok(ret == WEOF, "ret = %x\n", ret); + + ret = p_btowc(0xe0); + ok(ret == WEOF, "ret = %x\n", ret); + + _setmbcp(1250); It looks like you're trying to test different codepages here. The function uses lc_codepage, the _setmbcp function changes mbcodepage.
Thanks, Piotr