Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/native/common/langinfo.h
38825 views
1
/*
2
* Copyright (C) 2016 The Android Open Source Project
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* * Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* * Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in
12
* the documentation and/or other materials provided with the
13
* distribution.
14
*
15
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
18
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
22
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
25
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26
* SUCH DAMAGE.
27
*/
28
#ifndef _LANGINFO_H_
29
#define _LANGINFO_H_
30
31
#include <stdlib.h>
32
#include <sys/cdefs.h>
33
#include "nl_types.h"
34
#include "xlocale.h"
35
36
__BEGIN_DECLS
37
38
#define CODESET 1
39
#define D_T_FMT 2
40
#define D_FMT 3
41
#define T_FMT 4
42
#define T_FMT_AMPM 5
43
#define AM_STR 6
44
#define PM_STR 7
45
#define DAY_1 8
46
#define DAY_2 9
47
#define DAY_3 10
48
#define DAY_4 11
49
#define DAY_5 12
50
#define DAY_6 13
51
#define DAY_7 14
52
#define ABDAY_1 15
53
#define ABDAY_2 16
54
#define ABDAY_3 17
55
#define ABDAY_4 18
56
#define ABDAY_5 19
57
#define ABDAY_6 20
58
#define ABDAY_7 21
59
#define MON_1 22
60
#define MON_2 23
61
#define MON_3 24
62
#define MON_4 25
63
#define MON_5 26
64
#define MON_6 27
65
#define MON_7 28
66
#define MON_8 29
67
#define MON_9 30
68
#define MON_10 31
69
#define MON_11 32
70
#define MON_12 33
71
#define ABMON_1 34
72
#define ABMON_2 35
73
#define ABMON_3 36
74
#define ABMON_4 37
75
#define ABMON_5 38
76
#define ABMON_6 39
77
#define ABMON_7 40
78
#define ABMON_8 41
79
#define ABMON_9 42
80
#define ABMON_10 43
81
#define ABMON_11 44
82
#define ABMON_12 45
83
#define ERA 46
84
#define ERA_D_FMT 47
85
#define ERA_D_T_FMT 48
86
#define ERA_T_FMT 49
87
#define ALT_DIGITS 50
88
#define RADIXCHAR 51
89
#define THOUSEP 52
90
#define YESEXPR 53
91
#define NOEXPR 54
92
#define CRNCYSTR 55
93
94
static inline char* nl_langinfo(nl_item item) {
95
const char* result = "";
96
switch (item) {
97
case CODESET: result = (MB_CUR_MAX == 1) ? "ASCII" : "UTF-8"; break;
98
case D_T_FMT: result = "%F %T %z"; break;
99
case D_FMT: result = "%F"; break;
100
case T_FMT: result = "%T"; break;
101
case T_FMT_AMPM: result = "%I:%M:%S %p"; break;
102
case AM_STR: result = "AM"; break;
103
case PM_STR: result = "PM"; break;
104
case DAY_1: result = "Sunday"; break;
105
case DAY_2: result = "Monday"; break;
106
case DAY_3: result = "Tuesday"; break;
107
case DAY_4: result = "Wednesday"; break;
108
case DAY_5: result = "Thursday"; break;
109
case DAY_6: result = "Friday"; break;
110
case DAY_7: result = "Saturday"; break;
111
case ABDAY_1: result = "Sun"; break;
112
case ABDAY_2: result = "Mon"; break;
113
case ABDAY_3: result = "Tue"; break;
114
case ABDAY_4: result = "Wed"; break;
115
case ABDAY_5: result = "Thu"; break;
116
case ABDAY_6: result = "Fri"; break;
117
case ABDAY_7: result = "Sat"; break;
118
case MON_1: result = "January"; break;
119
case MON_2: result = "February"; break;
120
case MON_3: result = "March"; break;
121
case MON_4: result = "April"; break;
122
case MON_5: result = "May"; break;
123
case MON_6: result = "June"; break;
124
case MON_7: result = "July"; break;
125
case MON_8: result = "August"; break;
126
case MON_9: result = "September"; break;
127
case MON_10: result = "October"; break;
128
case MON_11: result = "November"; break;
129
case MON_12: result = "December"; break;
130
case ABMON_1: result = "Jan"; break;
131
case ABMON_2: result = "Feb"; break;
132
case ABMON_3: result = "Mar"; break;
133
case ABMON_4: result = "Apr"; break;
134
case ABMON_5: result = "May"; break;
135
case ABMON_6: result = "Jun"; break;
136
case ABMON_7: result = "Jul"; break;
137
case ABMON_8: result = "Aug"; break;
138
case ABMON_9: result = "Sep"; break;
139
case ABMON_10: result = "Oct"; break;
140
case ABMON_11: result = "Nov"; break;
141
case ABMON_12: result = "Dec"; break;
142
case ERA: result = ""; break;
143
case ERA_D_FMT: result = ""; break;
144
case ERA_D_T_FMT: result = ""; break;
145
case ERA_T_FMT: result = ""; break;
146
case ALT_DIGITS: result = ""; break;
147
case RADIXCHAR: result = "."; break;
148
case THOUSEP: result = ""; break;
149
case YESEXPR: result = "^[yY]"; break;
150
case NOEXPR: result = "^[nN]"; break;
151
case CRNCYSTR: result = ""; break;
152
default: break;
153
}
154
return result;
155
}
156
157
// char* nl_langinfo(nl_item); // __INTRODUCED_IN_FUTURE;
158
// char* nl_langinfo_l(nl_item, locale_t) __INTRODUCED_IN_FUTURE;
159
160
__END_DECLS
161
162
#endif
163
164