blob: 7eaa125fd164e4a46697855516e6d336d303599f [file] [log] [blame]
Elliott Hughes13da6002025-02-03 10:42:13 -08001// Copyright (C) 2017 The Android Open Source Project
2// SPDX-License-Identifier: BSD-2-Clause
Elliott Hughes21b56eb2017-10-20 17:57:17 -07003
4#include <wchar.h>
5
6#include "header_checks.h"
7
8static void wchar_h() {
9 TYPE(FILE*);
10 TYPE(locale_t);
11 TYPE(mbstate_t);
12 TYPE(size_t);
13 TYPE(va_list);
14 TYPE(wchar_t);
15 TYPE(wctype_t);
16 TYPE(wint_t);
17
18 MACRO(WCHAR_MAX);
19 MACRO(WCHAR_MIN);
20 MACRO(WEOF);
21 MACRO(NULL);
22
23 FUNCTION(btowc, wint_t (*f)(int));
24 FUNCTION(fgetwc, wint_t (*f)(FILE*));
25 FUNCTION(fgetws, wchar_t* (*f)(wchar_t*, int, FILE*));
26 FUNCTION(fputwc, wint_t (*f)(wchar_t, FILE*));
27 FUNCTION(fputws, int (*f)(const wchar_t*, FILE*));
28 FUNCTION(fwide, int (*f)(FILE*, int));
29 FUNCTION(fwprintf, int (*f)(FILE*, const wchar_t*, ...));
30 FUNCTION(fwscanf, int (*f)(FILE*, const wchar_t*, ...));
31 FUNCTION(getwc, wint_t (*f)(FILE*));
32 FUNCTION(getwchar, wint_t (*f)(void));
33 FUNCTION(mbrlen, size_t (*f)(const char*, size_t, mbstate_t*));
34 FUNCTION(mbrtowc, size_t (*f)(wchar_t*, const char*, size_t, mbstate_t*));
35 FUNCTION(mbsinit, int (*f)(const mbstate_t*));
36 FUNCTION(mbsnrtowcs, size_t (*f)(wchar_t*, const char**, size_t, size_t, mbstate_t*));
37 FUNCTION(mbsrtowcs, size_t (*f)(wchar_t*, const char**, size_t, mbstate_t*));
38 FUNCTION(open_wmemstream, FILE* (*f)(wchar_t**, size_t*));
39 FUNCTION(putwc, wint_t (*f)(wchar_t, FILE*));
40 FUNCTION(putwchar, wint_t (*f)(wchar_t));
41 FUNCTION(swprintf, int (*f)(wchar_t*, size_t, const wchar_t*, ...));
42 FUNCTION(swscanf, int (*f)(const wchar_t*, const wchar_t*, ...));
43 FUNCTION(ungetwc, wint_t (*f)(wint_t, FILE*));
44 FUNCTION(vfwprintf, int (*f)(FILE*, const wchar_t*, va_list));
45 FUNCTION(vfwscanf, int (*f)(FILE*, const wchar_t*, va_list));
46 FUNCTION(vswprintf, int (*f)(wchar_t*, size_t, const wchar_t*, va_list));
47 FUNCTION(vswscanf, int (*f)(const wchar_t*, const wchar_t*, va_list));
48 FUNCTION(vwprintf, int (*f)(const wchar_t*, va_list));
49 FUNCTION(vwscanf, int (*f)(const wchar_t*, va_list));
50 FUNCTION(wcpcpy, wchar_t* (*f)(wchar_t*, const wchar_t*));
51 FUNCTION(wcpncpy, wchar_t* (*f)(wchar_t*, const wchar_t*, size_t));
52 FUNCTION(wcrtomb, size_t (*f)(char*, wchar_t, mbstate_t*));
53 FUNCTION(wcscasecmp, int (*f)(const wchar_t*, const wchar_t*));
54 FUNCTION(wcscasecmp_l, int (*f)(const wchar_t*, const wchar_t*, locale_t));
55 FUNCTION(wcscat, wchar_t* (*f)(wchar_t*, const wchar_t*));
56 FUNCTION(wcschr, wchar_t* (*f)(const wchar_t*, wchar_t));
57 FUNCTION(wcscmp, int (*f)(const wchar_t*, const wchar_t*));
58 FUNCTION(wcscoll, int (*f)(const wchar_t*, const wchar_t*));
59 FUNCTION(wcscoll_l, int (*f)(const wchar_t*, const wchar_t*, locale_t));
60 FUNCTION(wcscpy, wchar_t* (*f)(wchar_t*, const wchar_t*));
61 FUNCTION(wcscspn, size_t (*f)(const wchar_t*, const wchar_t*));
62 FUNCTION(wcsdup, wchar_t* (*f)(const wchar_t*));
63 FUNCTION(wcsftime, size_t (*f)(wchar_t*, size_t, const wchar_t*, const struct tm*));
Elliott Hughesf4d57ac2025-01-28 14:22:12 -080064#if !defined(__GLIBC__) // Our glibc is too old.
65 FUNCTION(wcslcat, size_t (*f)(wchar_t*, const wchar_t*, size_t));
66 FUNCTION(wcslcpy, size_t (*f)(wchar_t*, const wchar_t*, size_t));
67#endif
Elliott Hughes21b56eb2017-10-20 17:57:17 -070068 FUNCTION(wcslen, size_t (*f)(const wchar_t*));
69 FUNCTION(wcsncasecmp, int (*f)(const wchar_t*, const wchar_t*, size_t));
70 FUNCTION(wcsncasecmp_l, int (*f)(const wchar_t*, const wchar_t*, size_t, locale_t));
71 FUNCTION(wcsncat, wchar_t* (*f)(wchar_t*, const wchar_t*, size_t));
72 FUNCTION(wcsncmp, int (*f)(const wchar_t*, const wchar_t*, size_t));
73 FUNCTION(wcsncpy, wchar_t* (*f)(wchar_t*, const wchar_t*, size_t));
74 FUNCTION(wcsnlen, size_t (*f)(const wchar_t*, size_t));
75 FUNCTION(wcsnrtombs, size_t (*f)(char*, const wchar_t**, size_t, size_t, mbstate_t*));
76 FUNCTION(wcspbrk, wchar_t* (*f)(const wchar_t*, const wchar_t*));
77 FUNCTION(wcsrchr, wchar_t* (*f)(const wchar_t*, wchar_t));
78 FUNCTION(wcsrtombs, size_t (*f)(char*, const wchar_t**, size_t, mbstate_t*));
79 FUNCTION(wcsspn, size_t (*f)(const wchar_t*, const wchar_t*));
80 FUNCTION(wcsstr, wchar_t* (*f)(const wchar_t*, const wchar_t*));
81 FUNCTION(wcstod, double (*f)(const wchar_t*, wchar_t**));
82 FUNCTION(wcstof, float (*f)(const wchar_t*, wchar_t**));
83 FUNCTION(wcstok, wchar_t* (*f)(wchar_t*, const wchar_t*, wchar_t**));
84 FUNCTION(wcstol, long (*f)(const wchar_t*, wchar_t**, int));
85 FUNCTION(wcstold, long double (*f)(const wchar_t*, wchar_t**));
86 FUNCTION(wcstoll, long long (*f)(const wchar_t*, wchar_t**, int));
87 FUNCTION(wcstoul, unsigned long (*f)(const wchar_t*, wchar_t**, int));
88 FUNCTION(wcstoull, unsigned long long (*f)(const wchar_t*, wchar_t**, int));
89 FUNCTION(wcswidth, int (*f)(const wchar_t*, size_t));
90 FUNCTION(wcsxfrm, size_t (*f)(wchar_t*, const wchar_t*, size_t));
91 FUNCTION(wcsxfrm_l, size_t (*f)(wchar_t*, const wchar_t*, size_t, locale_t));
92 FUNCTION(wctob, int (*f)(wint_t));
93 FUNCTION(wcwidth, int (*f)(wchar_t));
94 FUNCTION(wmemchr, wchar_t* (*f)(const wchar_t*, wchar_t, size_t));
95 FUNCTION(wmemcmp, int (*f)(const wchar_t*, const wchar_t*, size_t));
96 FUNCTION(wmemcpy, wchar_t* (*f)(wchar_t*, const wchar_t*, size_t));
97 FUNCTION(wmemmove, wchar_t* (*f)(wchar_t*, const wchar_t*, size_t));
98 FUNCTION(wmemset, wchar_t* (*f)(wchar_t*, wchar_t, size_t));
99 FUNCTION(wprintf, int (*f)(const wchar_t*, ...));
100 FUNCTION(wscanf, int (*f)(const wchar_t*, ...));
101}