| #include <stdio.h> | |
| #include <string.h> | |
| #include <tchar.h> | |
| #include <wchar.h> | |
| /* mingw-w64 headers */ | |
| #include "libtest.h" | |
| int main() { | |
| int i; | |
| TCHAR buffer[10] = { _T('X'), _T('X'), _T('X'), _T('X'), _T('X'), _T('X'), _T('X'), _T('X'), _T('X'), _T('X') }; | |
| #ifdef _UNICODE | |
| int exp_sizeof_buffer = 2*10; | |
| #else | |
| int exp_sizeof_buffer = 10; | |
| #endif | |
| /* _stprintf format: | |
| * %s takes _T string | |
| * %hs takes char* string | |
| * %ls takes wchar_t* string | |
| */ | |
| int ret; | |
| mingw_test_init (); | |
| ret = _stprintf(buffer, _T("%sBB%hs%ls"), _T("AA"), "CC", L"DD"); | |
| if (sizeof(buffer) != exp_sizeof_buffer) { | |
| fprintf(stderr, "sizeof(buffer): expected=%d got=%d\n", exp_sizeof_buffer, (int)sizeof(buffer)); | |
| return 1; | |
| } | |
| if (ret != 8 || memcmp(buffer, _T("AABBCCDD\0X"), sizeof(buffer)) != 0) { | |
| fprintf(stderr, "ret: expected=8 got=%d\n", ret); | |
| fprintf(stderr, "buffer:"); | |
| for (i = 0; i < 10; i++) { | |
| fprintf(stderr, " 0x%02x", (int)buffer[i]); | |
| } | |
| fprintf(stderr, "\n"); | |
| return 1; | |
| } | |
| return 0; | |
| } |