1 /*
2  * PROJECT:     ReactOS kernel-mode tests
3  * LICENSE:     LGPL-2.1+ (https://spdx.org/licenses/LGPL-2.1+)
4  * PURPOSE:     Kernel-Mode Test Suite stub functions for any-IRQL vsnprintf
5  * COPYRIGHT:   Copyright 2011-2018 Thomas Faber <thomas.faber@reactos.org>
6  */
7 
8 #undef wctomb
9 #include <stdarg.h>
10 #include <stdio.h>
11 #include <wchar.h>
12 
13 int __cdecl KmtWcToMb(char *mbchar, wchar_t wchar)
14 {
15     *mbchar = (char)wchar;
16     return 1;
17 }
18 
19 int __cdecl streamout(FILE *stream, const char *format, va_list argptr);
20 
21 int __cdecl KmtVSNPrintF(char *buffer, size_t count, const char *format, va_list argptr)
22 {
23     int result;
24     FILE stream;
25 
26     stream._base = (char *)buffer;
27     stream._ptr = stream._base;
28     stream._charbuf = 0;
29     stream._cnt = (int)count;
30     stream._bufsiz = 0;
31     stream._flag = _IOSTRG | _IOWRT;
32     stream._tmpfname = 0;
33 
34     result = streamout(&stream, format, argptr);
35 
36     /* Only zero terminate if there is enough space left */
37     if (stream._cnt) *(char *)stream._ptr = '\0';
38 
39     return result;
40 }
41