Use 64 bit time_t stat internally
[platform/upstream/glibc.git] / locale / C-time.c
1 /* Copyright (C) 1995-2021 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
4
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, see
17    <https://www.gnu.org/licenses/>.  */
18
19 #include <stdint.h>
20 #include "localeinfo.h"
21
22 /* This table's entries are taken from POSIX.2 Table 2-11
23    ``LC_TIME Category Definition in the POSIX Locale'',
24    with additions from ISO 14652, section 4.6.  */
25
26 const struct __locale_data _nl_C_LC_TIME attribute_hidden =
27 {
28   _nl_C_name,
29   NULL, 0, 0,                   /* no file mapped */
30   { NULL, },                    /* no cached data */
31   UNDELETABLE,
32   0,
33   159,
34   {
35     { .string = "Sun" },
36     { .string = "Mon" },
37     { .string = "Tue" },
38     { .string = "Wed" },
39     { .string = "Thu" },
40     { .string = "Fri" },
41     { .string = "Sat" },
42     { .string = "Sunday" },
43     { .string = "Monday" },
44     { .string = "Tuesday" },
45     { .string = "Wednesday" },
46     { .string = "Thursday" },
47     { .string = "Friday" },
48     { .string = "Saturday" },
49     { .string = "Jan" },
50     { .string = "Feb" },
51     { .string = "Mar" },
52     { .string = "Apr" },
53     { .string = "May" },
54     { .string = "Jun" },
55     { .string = "Jul" },
56     { .string = "Aug" },
57     { .string = "Sep" },
58     { .string = "Oct" },
59     { .string = "Nov" },
60     { .string = "Dec" },
61     { .string = "January" },
62     { .string = "February" },
63     { .string = "March" },
64     { .string = "April" },
65     { .string = "May" },
66     { .string = "June" },
67     { .string = "July" },
68     { .string = "August" },
69     { .string = "September" },
70     { .string = "October" },
71     { .string = "November" },
72     { .string = "December" },
73     { .string = "AM" },
74     { .string = "PM" },
75     { .string = "%a %b %e %H:%M:%S %Y" },
76     { .string = "%m/%d/%y" },
77     { .string = "%H:%M:%S" },
78     { .string = "%I:%M:%S %p" },
79     { .string = "" },
80     { .string = "" },
81     { .string = "" },
82     { .string = "" },
83     { .string = "" },
84     { .string = "" },
85     { .word = 0 },
86     { .string = "" },
87     { .wstr = (const uint32_t *) L"Sun" },
88     { .wstr = (const uint32_t *) L"Mon" },
89     { .wstr = (const uint32_t *) L"Tue" },
90     { .wstr = (const uint32_t *) L"Wed" },
91     { .wstr = (const uint32_t *) L"Thu" },
92     { .wstr = (const uint32_t *) L"Fri" },
93     { .wstr = (const uint32_t *) L"Sat" },
94     { .wstr = (const uint32_t *) L"Sunday" },
95     { .wstr = (const uint32_t *) L"Monday" },
96     { .wstr = (const uint32_t *) L"Tuesday" },
97     { .wstr = (const uint32_t *) L"Wednesday" },
98     { .wstr = (const uint32_t *) L"Thursday" },
99     { .wstr = (const uint32_t *) L"Friday" },
100     { .wstr = (const uint32_t *) L"Saturday" },
101     { .wstr = (const uint32_t *) L"Jan" },
102     { .wstr = (const uint32_t *) L"Feb" },
103     { .wstr = (const uint32_t *) L"Mar" },
104     { .wstr = (const uint32_t *) L"Apr" },
105     { .wstr = (const uint32_t *) L"May" },
106     { .wstr = (const uint32_t *) L"Jun" },
107     { .wstr = (const uint32_t *) L"Jul" },
108     { .wstr = (const uint32_t *) L"Aug" },
109     { .wstr = (const uint32_t *) L"Sep" },
110     { .wstr = (const uint32_t *) L"Oct" },
111     { .wstr = (const uint32_t *) L"Nov" },
112     { .wstr = (const uint32_t *) L"Dec" },
113     { .wstr = (const uint32_t *) L"January" },
114     { .wstr = (const uint32_t *) L"February" },
115     { .wstr = (const uint32_t *) L"March" },
116     { .wstr = (const uint32_t *) L"April" },
117     { .wstr = (const uint32_t *) L"May" },
118     { .wstr = (const uint32_t *) L"June" },
119     { .wstr = (const uint32_t *) L"July" },
120     { .wstr = (const uint32_t *) L"August" },
121     { .wstr = (const uint32_t *) L"September" },
122     { .wstr = (const uint32_t *) L"October" },
123     { .wstr = (const uint32_t *) L"November" },
124     { .wstr = (const uint32_t *) L"December" },
125     { .wstr = (const uint32_t *) L"AM" },
126     { .wstr = (const uint32_t *) L"PM" },
127     { .wstr = (const uint32_t *) L"%a %b %e %H:%M:%S %Y" },
128     { .wstr = (const uint32_t *) L"%m/%d/%y" },
129     { .wstr = (const uint32_t *) L"%H:%M:%S" },
130     { .wstr = (const uint32_t *) L"%I:%M:%S %p" },
131     { .wstr = (const uint32_t *) L"" },
132     { .wstr = (const uint32_t *) L"" },
133     { .wstr = (const uint32_t *) L"" },
134     { .wstr = (const uint32_t *) L"" },
135     { .wstr = (const uint32_t *) L"" },
136     { .string = "\7" },
137     { .word = 19971130 },
138     { .string = "\4" },
139     { .string = "\1" },
140     { .string = "\2" },
141     { .string = "\1" },
142     { .string = "" },
143     { .string = "%a %b %e %H:%M:%S %Z %Y" },
144     { .wstr = (const uint32_t *) L"%a %b %e %H:%M:%S %Z %Y" },
145     { .string = _nl_C_codeset },
146     { .string = "January" },
147     { .string = "February" },
148     { .string = "March" },
149     { .string = "April" },
150     { .string = "May" },
151     { .string = "June" },
152     { .string = "July" },
153     { .string = "August" },
154     { .string = "September" },
155     { .string = "October" },
156     { .string = "November" },
157     { .string = "December" },
158     { .wstr = (const uint32_t *) L"January" },
159     { .wstr = (const uint32_t *) L"February" },
160     { .wstr = (const uint32_t *) L"March" },
161     { .wstr = (const uint32_t *) L"April" },
162     { .wstr = (const uint32_t *) L"May" },
163     { .wstr = (const uint32_t *) L"June" },
164     { .wstr = (const uint32_t *) L"July" },
165     { .wstr = (const uint32_t *) L"August" },
166     { .wstr = (const uint32_t *) L"September" },
167     { .wstr = (const uint32_t *) L"October" },
168     { .wstr = (const uint32_t *) L"November" },
169     { .wstr = (const uint32_t *) L"December" },
170     { .string = "Jan" },
171     { .string = "Feb" },
172     { .string = "Mar" },
173     { .string = "Apr" },
174     { .string = "May" },
175     { .string = "Jun" },
176     { .string = "Jul" },
177     { .string = "Aug" },
178     { .string = "Sep" },
179     { .string = "Oct" },
180     { .string = "Nov" },
181     { .string = "Dec" },
182     { .wstr = (const uint32_t *) L"Jan" },
183     { .wstr = (const uint32_t *) L"Feb" },
184     { .wstr = (const uint32_t *) L"Mar" },
185     { .wstr = (const uint32_t *) L"Apr" },
186     { .wstr = (const uint32_t *) L"May" },
187     { .wstr = (const uint32_t *) L"Jun" },
188     { .wstr = (const uint32_t *) L"Jul" },
189     { .wstr = (const uint32_t *) L"Aug" },
190     { .wstr = (const uint32_t *) L"Sep" },
191     { .wstr = (const uint32_t *) L"Oct" },
192     { .wstr = (const uint32_t *) L"Nov" },
193     { .wstr = (const uint32_t *) L"Dec" }
194   }
195 };