blob: 18bd839e7d37ebef7b1e4515b0d7aed756ae0049 [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 <locale.h>
5
6#include "header_checks.h"
7
8static void locale_h() {
9 TYPE(struct lconv);
10 STRUCT_MEMBER(struct lconv, char*, currency_symbol);
11 STRUCT_MEMBER(struct lconv, char*, decimal_point);
12 STRUCT_MEMBER(struct lconv, char, frac_digits);
13 STRUCT_MEMBER(struct lconv, char*, grouping);
14 STRUCT_MEMBER(struct lconv, char*, int_curr_symbol);
15 STRUCT_MEMBER(struct lconv, char, int_frac_digits);
16 STRUCT_MEMBER(struct lconv, char, int_n_cs_precedes);
17 STRUCT_MEMBER(struct lconv, char, int_n_sep_by_space);
18 STRUCT_MEMBER(struct lconv, char, int_n_sign_posn);
19 STRUCT_MEMBER(struct lconv, char, int_p_cs_precedes);
20 STRUCT_MEMBER(struct lconv, char, int_p_sep_by_space);
21 STRUCT_MEMBER(struct lconv, char, int_p_sign_posn);
22 STRUCT_MEMBER(struct lconv, char*, mon_decimal_point);
23 STRUCT_MEMBER(struct lconv, char*, mon_grouping);
24 STRUCT_MEMBER(struct lconv, char*, mon_thousands_sep);
25 STRUCT_MEMBER(struct lconv, char*, negative_sign);
26 STRUCT_MEMBER(struct lconv, char, n_cs_precedes);
27 STRUCT_MEMBER(struct lconv, char, n_sep_by_space);
28 STRUCT_MEMBER(struct lconv, char, n_sign_posn);
29 STRUCT_MEMBER(struct lconv, char*, positive_sign);
30 STRUCT_MEMBER(struct lconv, char, p_cs_precedes);
31 STRUCT_MEMBER(struct lconv, char, p_sep_by_space);
32 STRUCT_MEMBER(struct lconv, char, p_sign_posn);
33 STRUCT_MEMBER(struct lconv, char*, thousands_sep);
34
35 MACRO(NULL);
36
37 MACRO(LC_ALL);
38 MACRO(LC_COLLATE);
39 MACRO(LC_CTYPE);
40 MACRO(LC_MONETARY);
41 MACRO(LC_NUMERIC);
42 MACRO(LC_TIME);
43
44 MACRO(LC_COLLATE_MASK);
45 MACRO(LC_CTYPE_MASK);
46 MACRO(LC_MESSAGES_MASK);
47 MACRO(LC_MONETARY_MASK);
48 MACRO(LC_NUMERIC_MASK);
49 MACRO(LC_TIME_MASK);
50 MACRO(LC_ALL_MASK);
51
52 MACRO_TYPE(locale_t, LC_GLOBAL_LOCALE);
53 TYPE(locale_t);
54
55 FUNCTION(duplocale, locale_t (*f)(locale_t));
56 FUNCTION(freelocale, void (*f)(locale_t));
57 FUNCTION(localeconv, struct lconv* (*f)(void));
58 FUNCTION(newlocale, locale_t (*f)(int, const char*, locale_t));
59 FUNCTION(setlocale, char* (*f)(int, const char*));
60 FUNCTION(uselocale, locale_t (*f)(locale_t));
61}