Mercurial > emacs
annotate src/strftime.c @ 69478:e8bb5df2ba7a
Add index entries around each paragraph rather than depend on entries
from beginning of node. Doing so ensures that index entries are less
likely to be forgotten if text is cut and pasted, and are necessary
anyway if the references are on a separate page. It seems that
makeinfo is now (v. 4.8) only producing one index entry per node, so
there is no longer any excuse not to. Use subheading instead of
heading. The incorrect use of heading produced very large fonts in
Info--as large as the main heading.
(From Bill Wohler): MH-E never did appear in Emacs 21--MH-E versions 6
and 7 appeared *around* the time of these Emacs releases.
author | Bill Wohler <wohler@newt.com> |
---|---|
date | Wed, 15 Mar 2006 00:26:12 +0000 |
parents | 3bd95f4f2941 |
children | 751c24f0ec88 c5406394f567 |
rev | line source |
---|---|
64770
a0d1312ede66
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64084
diff
changeset
|
1 /* Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, |
68651
3bd95f4f2941
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64770
diff
changeset
|
2 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
51234
4458f91cfb2b
(my_strftime_localtime_r): Remove `defined but unused' warning.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45846
diff
changeset
|
3 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
4 NOTE: The canonical source of this file is maintained with gnulib. |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
5 Bugs can be reported to bug-gnulib@gnu.org. |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
6 |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
7 This file is part of the GNU Emacs. |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
8 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
9 This program is free software; you can redistribute it and/or |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
10 modify it under the terms of the GNU Library General Public License |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
11 as published by the Free Software Foundation; either version 2, or |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
12 (at your option) any later version. |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
13 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
14 This program is distributed in the hope that it will be useful, |
19875
278944a16af3
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18782
diff
changeset
|
15 but WITHOUT ANY WARRANTY; without even the implied warranty of |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
17 Library General Public License for more details. |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
18 |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
19 You should have received a copy of the GNU Library General Public |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
20 License along with the GNU C Library; see the file COPYING.LIB. If not, |
64084 | 21 write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
22 Boston, MA 02110-1301, USA. */ | |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
23 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
24 #ifdef HAVE_CONFIG_H |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
25 # include <config.h> |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
26 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
27 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
28 #ifdef _LIBC |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
29 # define HAVE_LIMITS_H 1 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
30 # define HAVE_MBLEN 1 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
31 # define HAVE_MBRLEN 1 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
32 # define HAVE_STRUCT_ERA_ENTRY 1 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
33 # define HAVE_TM_GMTOFF 1 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
34 # define HAVE_TM_ZONE 1 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
35 # define HAVE_TZNAME 1 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
36 # define HAVE_TZSET 1 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
37 # define MULTIBYTE_IS_FORMAT_SAFE 1 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
38 # define STDC_HEADERS 1 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
39 # include "../locale/localeinfo.h" |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
40 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
41 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
42 #include <ctype.h> |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
43 #include <sys/types.h> /* Some systems define `time_t' here. */ |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
44 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
45 #ifdef TIME_WITH_SYS_TIME |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
46 # include <sys/time.h> |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
47 # include <time.h> |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
48 #else |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
49 # ifdef HAVE_SYS_TIME_H |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
50 # include <sys/time.h> |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
51 # else |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
52 # include <time.h> |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
53 # endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
54 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
55 #if HAVE_TZNAME |
31100
92f108b8b281
[USE_CRT_DLL]: Remove unnecessary extern, which
Andrew Innes <andrewi@gnu.org>
parents:
28057
diff
changeset
|
56 #ifndef USE_CRT_DLL |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
57 extern char *tzname[]; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
58 #endif |
31100
92f108b8b281
[USE_CRT_DLL]: Remove unnecessary extern, which
Andrew Innes <andrewi@gnu.org>
parents:
28057
diff
changeset
|
59 #endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
60 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
61 /* Do multibyte processing if multibytes are supported, unless |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
62 multibyte sequences are safe in formats. Multibyte sequences are |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
63 safe if they cannot contain byte sequences that look like format |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
64 conversion specifications. The GNU C Library uses UTF8 multibyte |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
65 encoding, which is safe for formats, but strftime.c can be used |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
66 with other C libraries that use unsafe encodings. */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
67 #define DO_MULTIBYTE (HAVE_MBLEN && ! MULTIBYTE_IS_FORMAT_SAFE) |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
68 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
69 #if DO_MULTIBYTE |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
70 # if HAVE_MBRLEN |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
71 # include <wchar.h> |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
72 # ifdef HAVE_SYS__MBSTATE_H /* previously tested __hpux */ |
45846
a1fef23ccede
[__hpux]: Include sys/_mbstate_t.h.
Eli Zaretskii <eliz@gnu.org>
parents:
43890
diff
changeset
|
73 # include <sys/_mbstate_t.h> |
a1fef23ccede
[__hpux]: Include sys/_mbstate_t.h.
Eli Zaretskii <eliz@gnu.org>
parents:
43890
diff
changeset
|
74 # endif |
42384
e4835ecdffbc
(mbsinit): Define as no-op if not available.
Richard M. Stallman <rms@gnu.org>
parents:
34302
diff
changeset
|
75 # if !defined (mbsinit) && !defined (HAVE_MBSINIT) |
e4835ecdffbc
(mbsinit): Define as no-op if not available.
Richard M. Stallman <rms@gnu.org>
parents:
34302
diff
changeset
|
76 # define mbsinit(ps) 1 |
e4835ecdffbc
(mbsinit): Define as no-op if not available.
Richard M. Stallman <rms@gnu.org>
parents:
34302
diff
changeset
|
77 # endif /* !defined (mbsinit) && !defined (HAVE_MBSINIT) */ |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
78 # else |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
79 /* Simulate mbrlen with mblen as best we can. */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
80 # define mbstate_t int |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
81 # define mbrlen(s, n, ps) mblen (s, n) |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
82 # define mbsinit(ps) (*(ps) == 0) |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
83 # endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
84 static const mbstate_t mbstate_zero; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
85 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
86 |
34302
1139c325f625
Change some #if foo to #ifdef foo.
Dave Love <fx@gnu.org>
parents:
32687
diff
changeset
|
87 #ifdef HAVE_LIMITS_H |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
88 # include <limits.h> |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
89 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
90 |
34302
1139c325f625
Change some #if foo to #ifdef foo.
Dave Love <fx@gnu.org>
parents:
32687
diff
changeset
|
91 #ifdef STDC_HEADERS |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
92 # include <stddef.h> |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
93 # include <stdlib.h> |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
94 # include <string.h> |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
95 #else |
18781
70883b60c7a5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18488
diff
changeset
|
96 # ifndef HAVE_MEMCPY |
70883b60c7a5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18488
diff
changeset
|
97 # define memcpy(d, s, n) bcopy ((s), (d), (n)) |
70883b60c7a5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18488
diff
changeset
|
98 # endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
99 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
100 |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
101 #ifdef COMPILE_WIDE |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
102 # include <endian.h> |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
103 # define CHAR_T wchar_t |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
104 # define UCHAR_T unsigned int |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
105 # define L_(Str) L##Str |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
106 # define NLW(Sym) _NL_W##Sym |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
107 |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
108 # define MEMCPY(d, s, n) __wmemcpy (d, s, n) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
109 # define STRLEN(s) __wcslen (s) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
110 |
20212
90f407354bdf
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20211
diff
changeset
|
111 #else |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
112 # define CHAR_T char |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
113 # define UCHAR_T unsigned char |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
114 # define L_(Str) Str |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
115 # define NLW(Sym) Sym |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
116 |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
117 # if !defined STDC_HEADERS && !defined HAVE_MEMCPY |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
118 # define MEMCPY(d, s, n) bcopy ((s), (d), (n)) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
119 # else |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
120 # define MEMCPY(d, s, n) memcpy ((d), (s), (n)) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
121 # endif |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
122 # define STRLEN(s) strlen (s) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
123 |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
124 # ifdef _LIBC |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
125 # define MEMPCPY(d, s, n) __mempcpy (d, s, n) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
126 # else |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
127 # ifndef HAVE_MEMPCPY |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
128 # define MEMPCPY(d, s, n) ((void *) ((char *) memcpy (d, s, n) + (n))) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
129 # endif |
20212
90f407354bdf
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20211
diff
changeset
|
130 # endif |
90f407354bdf
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20211
diff
changeset
|
131 #endif |
90f407354bdf
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20211
diff
changeset
|
132 |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
133 #ifndef __P |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
134 # if defined __GNUC__ || (defined __STDC__ && __STDC__) || defined (PROTOTYPES) |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
135 # define __P(args) args |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
136 # else |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
137 # define __P(args) () |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
138 # endif /* GCC. */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
139 #endif /* Not __P. */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
140 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
141 #ifndef PTR |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
142 # ifdef __STDC__ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
143 # define PTR void * |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
144 # else |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
145 # define PTR char * |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
146 # endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
147 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
148 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
149 #ifndef CHAR_BIT |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
150 # define CHAR_BIT 8 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
151 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
152 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
153 #ifndef NULL |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
154 # define NULL 0 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
155 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
156 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
157 #define TYPE_SIGNED(t) ((t) -1 < 0) |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
158 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
159 /* Bound on length of the string representing an integer value of type t. |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
160 Subtract one for the sign bit if t is signed; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
161 302 / 1000 is log10 (2) rounded up; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
162 add one for integer division truncation; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
163 add one more for a minus sign if t is signed. */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
164 #define INT_STRLEN_BOUND(t) \ |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
165 ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 1000 + 1 + TYPE_SIGNED (t)) |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
166 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
167 #define TM_YEAR_BASE 1900 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
168 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
169 #ifndef __isleap |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
170 /* Nonzero if YEAR is a leap year (every 4 years, |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
171 except every 100th isn't, and every 400th is). */ |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
172 # define __isleap(year) \ |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
173 ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
174 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
175 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
176 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
177 #ifdef _LIBC |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
178 # define my_strftime_gmtime_r __gmtime_r |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
179 # define my_strftime_localtime_r __localtime_r |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
180 # define tzname __tzname |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
181 # define tzset __tzset |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
182 #else |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
183 |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
184 /* If we're a strftime substitute in a GNU program, then prefer gmtime |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
185 to gmtime_r, since many gmtime_r implementations are buggy. |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
186 Similarly for localtime_r. */ |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
187 |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
188 # if ! HAVE_TM_GMTOFF |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
189 static struct tm *my_strftime_gmtime_r __P ((const time_t *, struct tm *)); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
190 static struct tm * |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
191 my_strftime_gmtime_r (t, tp) |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
192 const time_t *t; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
193 struct tm *tp; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
194 { |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
195 struct tm *l = gmtime (t); |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
196 if (! l) |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
197 return 0; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
198 *tp = *l; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
199 return tp; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
200 } |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
201 |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
202 static struct tm *my_strftime_localtime_r __P ((const time_t *, struct tm *)); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
203 static struct tm * |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
204 my_strftime_localtime_r (t, tp) |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
205 const time_t *t; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
206 struct tm *tp; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
207 { |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
208 struct tm *l = localtime (t); |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
209 if (! l) |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
210 return 0; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
211 *tp = *l; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
212 return tp; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
213 } |
51234
4458f91cfb2b
(my_strftime_localtime_r): Remove `defined but unused' warning.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45846
diff
changeset
|
214 # endif /* ! HAVE_TM_GMTOFF */ |
20253
a7d1d668f57f
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20252
diff
changeset
|
215 #endif /* ! defined _LIBC */ |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
216 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
217 |
18781
70883b60c7a5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18488
diff
changeset
|
218 #if !defined memset && !defined HAVE_MEMSET && !defined _LIBC |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
219 /* Some systems lack the `memset' function and we don't want to |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
220 introduce additional dependencies. */ |
18487
47be751da08b
automatically generated from GPLed version
Richard M. Stallman <rms@gnu.org>
parents:
17965
diff
changeset
|
221 /* The SGI compiler reportedly barfs on the trailing null |
47be751da08b
automatically generated from GPLed version
Richard M. Stallman <rms@gnu.org>
parents:
17965
diff
changeset
|
222 if we use a string constant as the initializer. 28 June 1997, rms. */ |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
223 static const CHAR_T spaces[16] = /* " " */ |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
224 { |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
225 L_(' '),L_(' '),L_(' '),L_(' '),L_(' '),L_(' '),L_(' '),L_(' '), |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
226 L_(' '),L_(' '),L_(' '),L_(' '),L_(' '),L_(' '),L_(' '),L_(' ') |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
227 }; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
228 static const CHAR_T zeroes[16] = /* "0000000000000000" */ |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
229 { |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
230 L_('0'),L_('0'),L_('0'),L_('0'),L_('0'),L_('0'),L_('0'),L_('0'), |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
231 L_('0'),L_('0'),L_('0'),L_('0'),L_('0'),L_('0'),L_('0'),L_('0') |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
232 }; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
233 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
234 # define memset_space(P, Len) \ |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
235 do { \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
236 int _len = (Len); \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
237 \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
238 do \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
239 { \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
240 int _this = _len > 16 ? 16 : _len; \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
241 (P) = MEMPCPY ((P), spaces, _this * sizeof (CHAR_T)); \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
242 _len -= _this; \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
243 } \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
244 while (_len > 0); \ |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
245 } while (0) |
17965
2ef01cc793bf
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
17502
diff
changeset
|
246 |
2ef01cc793bf
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
17502
diff
changeset
|
247 # define memset_zero(P, Len) \ |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
248 do { \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
249 int _len = (Len); \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
250 \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
251 do \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
252 { \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
253 int _this = _len > 16 ? 16 : _len; \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
254 (P) = MEMPCPY ((P), zeroes, _this * sizeof (CHAR_T)); \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
255 _len -= _this; \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
256 } \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
257 while (_len > 0); \ |
17965
2ef01cc793bf
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
17502
diff
changeset
|
258 } while (0) |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
259 #else |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
260 # ifdef COMPILE_WIDE |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
261 # define memset_space(P, Len) (wmemset ((P), L' ', (Len)), (P) += (Len)) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
262 # define memset_zero(P, Len) (wmemset ((P), L'0', (Len)), (P) += (Len)) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
263 # else |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
264 # define memset_space(P, Len) (memset ((P), ' ', (Len)), (P) += (Len)) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
265 # define memset_zero(P, Len) (memset ((P), '0', (Len)), (P) += (Len)) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
266 # endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
267 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
268 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
269 #define add(n, f) \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
270 do \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
271 { \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
272 int _n = (n); \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
273 int _delta = width - _n; \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
274 int _incr = _n + (_delta > 0 ? _delta : 0); \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
275 if ((size_t) _incr >= maxsize - i) \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
276 return 0; \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
277 if (p) \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
278 { \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
279 if (_delta > 0) \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
280 { \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
281 if (pad == L_('0')) \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
282 memset_zero (p, _delta); \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
283 else \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
284 memset_space (p, _delta); \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
285 } \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
286 f; \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
287 p += _n; \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
288 } \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
289 i += _incr; \ |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
290 } while (0) |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
291 |
18781
70883b60c7a5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18488
diff
changeset
|
292 #define cpy(n, s) \ |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
293 add ((n), \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
294 if (to_lowcase) \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
295 memcpy_lowcase (p, (s), _n LOCALE_ARG); \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
296 else if (to_uppcase) \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
297 memcpy_uppcase (p, (s), _n LOCALE_ARG); \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
298 else \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
299 MEMCPY ((PTR) p, (const PTR) (s), _n)) |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
300 |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
301 #ifdef COMPILE_WIDE |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
302 # ifndef USE_IN_EXTENDED_LOCALE_MODEL |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
303 # undef __mbsrtowcs_l |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
304 # define __mbsrtowcs_l(d, s, l, st, loc) __mbsrtowcs (d, s, l, st) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
305 # endif |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
306 # define widen(os, ws, l) \ |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
307 { \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
308 mbstate_t __st; \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
309 const char *__s = os; \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
310 memset (&__st, '\0', sizeof (__st)); \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
311 l = __mbsrtowcs_l (NULL, &__s, 0, &__st, loc); \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
312 ws = (wchar_t *) alloca ((l + 1) * sizeof (wchar_t)); \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
313 (void) __mbsrtowcs_l (ws, &__s, l, &__st, loc); \ |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
314 } |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
315 #endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
316 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
317 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
318 #if defined _LIBC && defined USE_IN_EXTENDED_LOCALE_MODEL |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
319 /* We use this code also for the extended locale handling where the |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
320 function gets as an additional argument the locale which has to be |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
321 used. To access the values we have to redefine the _NL_CURRENT |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
322 macro. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
323 # define strftime __strftime_l |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
324 # define wcsftime __wcsftime_l |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
325 # undef _NL_CURRENT |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
326 # define _NL_CURRENT(category, item) \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
327 (current->values[_NL_ITEM_INDEX (item)].string) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
328 # define LOCALE_PARAM , loc |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
329 # define LOCALE_ARG , loc |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
330 # define LOCALE_PARAM_DECL __locale_t loc; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
331 # define LOCALE_PARAM_PROTO , __locale_t loc |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
332 # define HELPER_LOCALE_ARG , current |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
333 #else |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
334 # define LOCALE_PARAM |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
335 # define LOCALE_PARAM_PROTO |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
336 # define LOCALE_ARG |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
337 # define LOCALE_PARAM_DECL |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
338 # ifdef _LIBC |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
339 # define HELPER_LOCALE_ARG , _NL_CURRENT_DATA (LC_TIME) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
340 # else |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
341 # define HELPER_LOCALE_ARG |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
342 # endif |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
343 #endif |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
344 |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
345 #ifdef COMPILE_WIDE |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
346 # ifdef USE_IN_EXTENDED_LOCALE_MODEL |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
347 # define TOUPPER(Ch, L) __towupper_l (Ch, L) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
348 # define TOLOWER(Ch, L) __towlower_l (Ch, L) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
349 # else |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
350 # define TOUPPER(Ch, L) towupper (Ch) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
351 # define TOLOWER(Ch, L) towlower (Ch) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
352 # endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
353 #else |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
354 # ifdef _LIBC |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
355 # ifdef USE_IN_EXTENDED_LOCALE_MODEL |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
356 # define TOUPPER(Ch, L) __toupper_l (Ch, L) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
357 # define TOLOWER(Ch, L) __tolower_l (Ch, L) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
358 # else |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
359 # define TOUPPER(Ch, L) toupper (Ch) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
360 # define TOLOWER(Ch, L) tolower (Ch) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
361 # endif |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
362 # else |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
363 # define TOUPPER(Ch, L) (islower (Ch) ? toupper (Ch) : (Ch)) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
364 # define TOLOWER(Ch, L) (isupper (Ch) ? tolower (Ch) : (Ch)) |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
365 # endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
366 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
367 /* We don't use `isdigit' here since the locale dependent |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
368 interpretation is not what we want here. We only need to accept |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
369 the arabic digits in the ASCII range. One day there is perhaps a |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
370 more reliable way to accept other sets of digits. */ |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
371 #define ISDIGIT(Ch) ((unsigned int) (Ch) - L_('0') <= 9) |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
372 |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
373 static CHAR_T *memcpy_lowcase __P ((CHAR_T *dest, const CHAR_T *src, |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
374 size_t len LOCALE_PARAM_PROTO)); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
375 |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
376 static CHAR_T * |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
377 memcpy_lowcase (dest, src, len LOCALE_PARAM) |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
378 CHAR_T *dest; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
379 const CHAR_T *src; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
380 size_t len; |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
381 LOCALE_PARAM_DECL |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
382 { |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
383 while (len-- > 0) |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
384 dest[len] = TOLOWER ((UCHAR_T) src[len], loc); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
385 return dest; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
386 } |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
387 |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
388 static CHAR_T *memcpy_uppcase __P ((CHAR_T *dest, const CHAR_T *src, |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
389 size_t len LOCALE_PARAM_PROTO)); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
390 |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
391 static CHAR_T * |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
392 memcpy_uppcase (dest, src, len LOCALE_PARAM) |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
393 CHAR_T *dest; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
394 const CHAR_T *src; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
395 size_t len; |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
396 LOCALE_PARAM_DECL |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
397 { |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
398 while (len-- > 0) |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
399 dest[len] = TOUPPER ((UCHAR_T) src[len], loc); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
400 return dest; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
401 } |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
402 |
18781
70883b60c7a5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18488
diff
changeset
|
403 |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
404 #if ! HAVE_TM_GMTOFF |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
405 /* Yield the difference between *A and *B, |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
406 measured in seconds, ignoring leap seconds. */ |
18781
70883b60c7a5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18488
diff
changeset
|
407 # define tm_diff ftime_tm_diff |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
408 static int tm_diff __P ((const struct tm *, const struct tm *)); |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
409 static int |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
410 tm_diff (a, b) |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
411 const struct tm *a; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
412 const struct tm *b; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
413 { |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
414 /* Compute intervening leap days correctly even if year is negative. |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
415 Take care to avoid int overflow in leap day calculations, |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
416 but it's OK to assume that A and B are close to each other. */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
417 int a4 = (a->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (a->tm_year & 3); |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
418 int b4 = (b->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (b->tm_year & 3); |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
419 int a100 = a4 / 25 - (a4 % 25 < 0); |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
420 int b100 = b4 / 25 - (b4 % 25 < 0); |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
421 int a400 = a100 >> 2; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
422 int b400 = b100 >> 2; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
423 int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400); |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
424 int years = a->tm_year - b->tm_year; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
425 int days = (365 * years + intervening_leap_days |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
426 + (a->tm_yday - b->tm_yday)); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
427 return (60 * (60 * (24 * days + (a->tm_hour - b->tm_hour)) |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
428 + (a->tm_min - b->tm_min)) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
429 + (a->tm_sec - b->tm_sec)); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
430 } |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
431 #endif /* ! HAVE_TM_GMTOFF */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
432 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
433 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
434 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
435 /* The number of days from the first day of the first ISO week of this |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
436 year to the year day YDAY with week day WDAY. ISO weeks start on |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
437 Monday; the first ISO week has the year's first Thursday. YDAY may |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
438 be as small as YDAY_MINIMUM. */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
439 #define ISO_WEEK_START_WDAY 1 /* Monday */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
440 #define ISO_WEEK1_WDAY 4 /* Thursday */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
441 #define YDAY_MINIMUM (-366) |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
442 static int iso_week_days __P ((int, int)); |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
443 #ifdef __GNUC__ |
20010
cb0800f5aa96
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
19875
diff
changeset
|
444 __inline__ |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
445 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
446 static int |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
447 iso_week_days (yday, wday) |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
448 int yday; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
449 int wday; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
450 { |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
451 /* Add enough to the first operand of % to make it nonnegative. */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
452 int big_enough_multiple_of_7 = (-YDAY_MINIMUM / 7 + 2) * 7; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
453 return (yday |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
454 - (yday - wday + ISO_WEEK1_WDAY + big_enough_multiple_of_7) % 7 |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
455 + ISO_WEEK1_WDAY - ISO_WEEK_START_WDAY); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
456 } |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
457 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
458 |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
459 #if !(defined _NL_CURRENT || HAVE_STRFTIME) |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
460 static CHAR_T const weekday_name[][10] = |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
461 { |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
462 L_("Sunday"), L_("Monday"), L_("Tuesday"), L_("Wednesday"), |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
463 L_("Thursday"), L_("Friday"), L_("Saturday") |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
464 }; |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
465 static CHAR_T const month_name[][10] = |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
466 { |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
467 L_("January"), L_("February"), L_("March"), L_("April"), L_("May"), |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
468 L_("June"), L_("July"), L_("August"), L_("September"), L_("October"), |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
469 L_("November"), L_("December") |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
470 }; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
471 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
472 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
473 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
474 /* When compiling this file, GNU applications can #define my_strftime |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
475 to a symbol (typically nstrftime) to get an extended strftime with |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
476 extra arguments UT and NS. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
477 |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
478 #ifdef my_strftime |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
479 # define extra_args , ut, ns |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
480 # define extra_args_spec int ut; int ns; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
481 # define extra_args_spec_iso , int ut, int ns |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
482 #else |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
483 # ifdef COMPILE_WIDE |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
484 # define my_strftime wcsftime |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
485 # define nl_get_alt_digit _nl_get_walt_digit |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
486 # else |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
487 # define my_strftime strftime |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
488 # define nl_get_alt_digit _nl_get_alt_digit |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
489 # endif |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
490 # define extra_args |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
491 # define extra_args_spec |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
492 # define extra_args_spec_iso |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
493 /* We don't have this information in general. */ |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
494 # define ut 0 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
495 # define ns 0 |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
496 #endif |
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
497 |
32687
52117f9867f2
[!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
Andrew Innes <andrewi@gnu.org>
parents:
32629
diff
changeset
|
498 #if !defined _LIBC && !defined(WINDOWSNT) && HAVE_TZNAME && HAVE_TZSET |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
499 /* Solaris 2.5 tzset sometimes modifies the storage returned by localtime. |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
500 Work around this bug by copying *tp before it might be munged. */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
501 size_t _strftime_copytm __P ((char *, size_t, const char *, |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
502 const struct tm * extra_args_spec_iso)); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
503 size_t |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
504 my_strftime (s, maxsize, format, tp extra_args) |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
505 CHAR_T *s; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
506 size_t maxsize; |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
507 const CHAR_T *format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
508 const struct tm *tp; |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
509 extra_args_spec |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
510 { |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
511 struct tm tmcopy; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
512 tmcopy = *tp; |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
513 return _strftime_copytm (s, maxsize, format, &tmcopy extra_args); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
514 } |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
515 # undef my_strftime |
32687
52117f9867f2
[!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
Andrew Innes <andrewi@gnu.org>
parents:
32629
diff
changeset
|
516 # define my_strftime _strftime_copytm |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
517 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
518 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
519 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
520 /* Write information from TP into S according to the format |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
521 string FORMAT, writing no more that MAXSIZE characters |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
522 (including the terminating '\0') and returning number of |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
523 characters written. If S is NULL, nothing will be written |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
524 anywhere, so to determine how many characters would be |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
525 written, use NULL for S and (size_t) UINT_MAX for MAXSIZE. */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
526 size_t |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
527 my_strftime (s, maxsize, format, tp extra_args LOCALE_PARAM) |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
528 CHAR_T *s; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
529 size_t maxsize; |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
530 const CHAR_T *format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
531 const struct tm *tp; |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
532 extra_args_spec |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
533 LOCALE_PARAM_DECL |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
534 { |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
535 #if defined _LIBC && defined USE_IN_EXTENDED_LOCALE_MODEL |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
536 struct locale_data *const current = loc->__locales[LC_TIME]; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
537 #endif |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
538 |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
539 int hour12 = tp->tm_hour; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
540 #ifdef _NL_CURRENT |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
541 /* We cannot make the following values variables since we must delay |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
542 the evaluation of these values until really needed since some |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
543 expressions might not be valid in every situation. The `struct tm' |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
544 might be generated by a strptime() call that initialized |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
545 only a few elements. Dereference the pointers only if the format |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
546 requires this. Then it is ok to fail if the pointers are invalid. */ |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
547 # define a_wkday \ |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
548 ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(ABDAY_1) + tp->tm_wday)) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
549 # define f_wkday \ |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
550 ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(DAY_1) + tp->tm_wday)) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
551 # define a_month \ |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
552 ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(ABMON_1) + tp->tm_mon)) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
553 # define f_month \ |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
554 ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(MON_1) + tp->tm_mon)) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
555 # define ampm \ |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
556 ((const CHAR_T *) _NL_CURRENT (LC_TIME, tp->tm_hour > 11 \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
557 ? NLW(PM_STR) : NLW(AM_STR))) |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
558 |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
559 # define aw_len STRLEN (a_wkday) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
560 # define am_len STRLEN (a_month) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
561 # define ap_len STRLEN (ampm) |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
562 #else |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
563 # if !HAVE_STRFTIME |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
564 # define f_wkday (weekday_name[tp->tm_wday]) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
565 # define f_month (month_name[tp->tm_mon]) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
566 # define a_wkday f_wkday |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
567 # define a_month f_month |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
568 # define ampm (L_("AMPM") + 2 * (tp->tm_hour > 11)) |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
569 |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
570 size_t aw_len = 3; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
571 size_t am_len = 3; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
572 size_t ap_len = 2; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
573 # endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
574 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
575 const char *zone; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
576 size_t i = 0; |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
577 CHAR_T *p = s; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
578 const CHAR_T *f; |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
579 #if DO_MULTIBYTE && !defined COMPILE_WIDE |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
580 const char *format_end = NULL; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
581 #endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
582 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
583 zone = NULL; |
18781
70883b60c7a5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18488
diff
changeset
|
584 #if HAVE_TM_ZONE |
70883b60c7a5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18488
diff
changeset
|
585 /* The POSIX test suite assumes that setting |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
586 the environment variable TZ to a new value before calling strftime() |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
587 will influence the result (the %Z format) even if the information in |
18781
70883b60c7a5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18488
diff
changeset
|
588 TP is computed with a totally different time zone. |
70883b60c7a5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18488
diff
changeset
|
589 This is bogus: though POSIX allows bad behavior like this, |
70883b60c7a5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18488
diff
changeset
|
590 POSIX does not require it. Do the right thing instead. */ |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
591 zone = (const char *) tp->tm_zone; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
592 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
593 #if HAVE_TZNAME |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
594 if (ut) |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
595 { |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
596 if (! (zone && *zone)) |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
597 zone = "GMT"; |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
598 } |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
599 else |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
600 { |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
601 /* POSIX.1 requires that local time zone information be used as |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
602 though strftime called tzset. */ |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
603 # if HAVE_TZSET |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
604 tzset (); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
605 # endif |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
606 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
607 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
608 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
609 if (hour12 > 12) |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
610 hour12 -= 12; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
611 else |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
612 if (hour12 == 0) |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
613 hour12 = 12; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
614 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
615 for (f = format; *f != '\0'; ++f) |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
616 { |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
617 int pad = 0; /* Padding for number ('-', '_', or 0). */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
618 int modifier; /* Field modifier ('E', 'O', or 0). */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
619 int digits; /* Max digits for numeric format. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
620 int number_value; /* Numeric value to be printed. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
621 int negative_number; /* 1 if the number is negative. */ |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
622 const CHAR_T *subfmt; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
623 CHAR_T *bufp; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
624 CHAR_T buf[1 + (sizeof (int) < sizeof (time_t) |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
625 ? INT_STRLEN_BOUND (time_t) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
626 : INT_STRLEN_BOUND (int))]; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
627 int width = -1; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
628 int to_lowcase = 0; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
629 int to_uppcase = 0; |
18781
70883b60c7a5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
18488
diff
changeset
|
630 int change_case = 0; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
631 int format_char; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
632 |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
633 #if DO_MULTIBYTE && !defined COMPILE_WIDE |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
634 switch (*f) |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
635 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
636 case L_('%'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
637 break; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
638 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
639 case L_('\b'): case L_('\t'): case L_('\n'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
640 case L_('\v'): case L_('\f'): case L_('\r'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
641 case L_(' '): case L_('!'): case L_('"'): case L_('#'): case L_('&'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
642 case L_('\''): case L_('('): case L_(')'): case L_('*'): case L_('+'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
643 case L_(','): case L_('-'): case L_('.'): case L_('/'): case L_('0'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
644 case L_('1'): case L_('2'): case L_('3'): case L_('4'): case L_('5'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
645 case L_('6'): case L_('7'): case L_('8'): case L_('9'): case L_(':'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
646 case L_(';'): case L_('<'): case L_('='): case L_('>'): case L_('?'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
647 case L_('A'): case L_('B'): case L_('C'): case L_('D'): case L_('E'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
648 case L_('F'): case L_('G'): case L_('H'): case L_('I'): case L_('J'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
649 case L_('K'): case L_('L'): case L_('M'): case L_('N'): case L_('O'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
650 case L_('P'): case L_('Q'): case L_('R'): case L_('S'): case L_('T'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
651 case L_('U'): case L_('V'): case L_('W'): case L_('X'): case L_('Y'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
652 case L_('Z'): case L_('['): case L_('\\'): case L_(']'): case L_('^'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
653 case L_('_'): case L_('a'): case L_('b'): case L_('c'): case L_('d'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
654 case L_('e'): case L_('f'): case L_('g'): case L_('h'): case L_('i'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
655 case L_('j'): case L_('k'): case L_('l'): case L_('m'): case L_('n'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
656 case L_('o'): case L_('p'): case L_('q'): case L_('r'): case L_('s'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
657 case L_('t'): case L_('u'): case L_('v'): case L_('w'): case L_('x'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
658 case L_('y'): case L_('z'): case L_('{'): case L_('|'): case L_('}'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
659 case L_('~'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
660 /* The C Standard requires these 98 characters (plus '%') to |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
661 be in the basic execution character set. None of these |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
662 characters can start a multibyte sequence, so they need |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
663 not be analyzed further. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
664 add (1, *p = *f); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
665 continue; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
666 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
667 default: |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
668 /* Copy this multibyte sequence until we reach its end, find |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
669 an error, or come back to the initial shift state. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
670 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
671 mbstate_t mbstate = mbstate_zero; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
672 size_t len = 0; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
673 size_t fsize; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
674 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
675 if (! format_end) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
676 format_end = f + strlen (f) + 1; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
677 fsize = format_end - f; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
678 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
679 do |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
680 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
681 size_t bytes = mbrlen (f + len, fsize - len, &mbstate); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
682 |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
683 if (bytes == 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
684 break; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
685 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
686 if (bytes == (size_t) -2) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
687 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
688 len += strlen (f + len); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
689 break; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
690 } |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
691 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
692 if (bytes == (size_t) -1) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
693 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
694 len++; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
695 break; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
696 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
697 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
698 len += bytes; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
699 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
700 while (! mbsinit (&mbstate)); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
701 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
702 cpy (len, f); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
703 f += len - 1; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
704 continue; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
705 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
706 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
707 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
708 #else /* ! DO_MULTIBYTE */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
709 |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
710 /* Either multibyte encodings are not supported, they are |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
711 safe for formats, so any non-'%' byte can be copied through, |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
712 or this is the wide character version. */ |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
713 if (*f != L_('%')) |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
714 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
715 add (1, *p = *f); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
716 continue; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
717 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
718 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
719 #endif /* ! DO_MULTIBYTE */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
720 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
721 /* Check for flags that can modify a format. */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
722 while (1) |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
723 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
724 switch (*++f) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
725 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
726 /* This influences the number formats. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
727 case L_('_'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
728 case L_('-'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
729 case L_('0'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
730 pad = *f; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
731 continue; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
732 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
733 /* This changes textual output. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
734 case L_('^'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
735 to_uppcase = 1; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
736 continue; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
737 case L_('#'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
738 change_case = 1; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
739 continue; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
740 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
741 default: |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
742 break; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
743 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
744 break; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
745 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
746 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
747 /* As a GNU extension we allow to specify the field width. */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
748 if (ISDIGIT (*f)) |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
749 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
750 width = 0; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
751 do |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
752 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
753 if (width > INT_MAX / 10 |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
754 || (width == INT_MAX / 10 && *f - L_('0') > INT_MAX % 10)) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
755 /* Avoid overflow. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
756 width = INT_MAX; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
757 else |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
758 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
759 width *= 10; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
760 width += *f - L_('0'); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
761 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
762 ++f; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
763 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
764 while (ISDIGIT (*f)); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
765 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
766 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
767 /* Check for modifiers. */ |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
768 switch (*f) |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
769 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
770 case L_('E'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
771 case L_('O'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
772 modifier = *f++; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
773 break; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
774 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
775 default: |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
776 modifier = 0; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
777 break; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
778 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
779 |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
780 /* Now do the specified format. */ |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
781 format_char = *f; |
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
782 switch (format_char) |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
783 { |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
784 #define DO_NUMBER(d, v) \ |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
785 digits = d > width ? d : width; \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
786 number_value = v; goto do_number |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
787 #define DO_NUMBER_SPACEPAD(d, v) \ |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
788 digits = d > width ? d : width; \ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
789 number_value = v; goto do_number_spacepad |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
790 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
791 case L_('%'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
792 if (modifier != 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
793 goto bad_format; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
794 add (1, *p = *f); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
795 break; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
796 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
797 case L_('a'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
798 if (modifier != 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
799 goto bad_format; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
800 if (change_case) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
801 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
802 to_uppcase = 1; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
803 to_lowcase = 0; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
804 } |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
805 #if defined _NL_CURRENT || !HAVE_STRFTIME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
806 cpy (aw_len, a_wkday); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
807 break; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
808 #else |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
809 goto underlying_strftime; |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
810 #endif |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
811 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
812 case 'A': |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
813 if (modifier != 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
814 goto bad_format; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
815 if (change_case) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
816 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
817 to_uppcase = 1; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
818 to_lowcase = 0; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
819 } |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
820 #if defined _NL_CURRENT || !HAVE_STRFTIME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
821 cpy (STRLEN (f_wkday), f_wkday); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
822 break; |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
823 #else |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
824 goto underlying_strftime; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
825 #endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
826 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
827 case L_('b'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
828 case L_('h'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
829 if (change_case) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
830 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
831 to_uppcase = 1; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
832 to_lowcase = 0; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
833 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
834 if (modifier != 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
835 goto bad_format; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
836 #if defined _NL_CURRENT || !HAVE_STRFTIME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
837 cpy (am_len, a_month); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
838 break; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
839 #else |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
840 goto underlying_strftime; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
841 #endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
842 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
843 case L_('B'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
844 if (modifier != 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
845 goto bad_format; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
846 if (change_case) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
847 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
848 to_uppcase = 1; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
849 to_lowcase = 0; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
850 } |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
851 #if defined _NL_CURRENT || !HAVE_STRFTIME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
852 cpy (STRLEN (f_month), f_month); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
853 break; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
854 #else |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
855 goto underlying_strftime; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
856 #endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
857 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
858 case L_('c'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
859 if (modifier == L_('O')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
860 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
861 #ifdef _NL_CURRENT |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
862 if (! (modifier == 'E' |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
863 && (*(subfmt = |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
864 (const CHAR_T *) _NL_CURRENT (LC_TIME, |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
865 NLW(ERA_D_T_FMT))) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
866 != '\0'))) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
867 subfmt = (const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(D_T_FMT)); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
868 #else |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
869 # if HAVE_STRFTIME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
870 goto underlying_strftime; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
871 # else |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
872 subfmt = L_("%a %b %e %H:%M:%S %Y"); |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
873 # endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
874 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
875 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
876 subformat: |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
877 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
878 CHAR_T *old_start = p; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
879 size_t len = my_strftime (NULL, (size_t) -1, subfmt, |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
880 tp extra_args LOCALE_ARG); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
881 add (len, my_strftime (p, maxsize - i, subfmt, |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
882 tp extra_args LOCALE_ARG)); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
883 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
884 if (to_uppcase) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
885 while (old_start < p) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
886 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
887 *old_start = TOUPPER ((UCHAR_T) *old_start, loc); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
888 ++old_start; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
889 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
890 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
891 break; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
892 |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
893 #if HAVE_STRFTIME && ! (defined _NL_CURRENT && HAVE_STRUCT_ERA_ENTRY) |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
894 underlying_strftime: |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
895 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
896 /* The relevant information is available only via the |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
897 underlying strftime implementation, so use that. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
898 char ufmt[4]; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
899 char *u = ufmt; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
900 char ubuf[1024]; /* enough for any single format in practice */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
901 size_t len; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
902 /* Make sure we're calling the actual underlying strftime. |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
903 In some cases, config.h contains something like |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
904 "#define strftime rpl_strftime". */ |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
905 # ifdef strftime |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
906 # undef strftime |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
907 size_t strftime (); |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
908 # endif |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
909 |
43890
38d2cf408e27
(my_strftime) [STRFTIME_NO_POSIX2]: Handle %h, %EX
Jason Rumney <jasonr@gnu.org>
parents:
42384
diff
changeset
|
910 #ifdef STRFTIME_NO_POSIX2 |
38d2cf408e27
(my_strftime) [STRFTIME_NO_POSIX2]: Handle %h, %EX
Jason Rumney <jasonr@gnu.org>
parents:
42384
diff
changeset
|
911 /* Some system libraries do not support the POSIX.2 extensions. |
38d2cf408e27
(my_strftime) [STRFTIME_NO_POSIX2]: Handle %h, %EX
Jason Rumney <jasonr@gnu.org>
parents:
42384
diff
changeset
|
912 In those cases, convert %h to %b, and strip modifiers. */ |
38d2cf408e27
(my_strftime) [STRFTIME_NO_POSIX2]: Handle %h, %EX
Jason Rumney <jasonr@gnu.org>
parents:
42384
diff
changeset
|
913 modifier = 0; |
38d2cf408e27
(my_strftime) [STRFTIME_NO_POSIX2]: Handle %h, %EX
Jason Rumney <jasonr@gnu.org>
parents:
42384
diff
changeset
|
914 if (format_char == 'h') |
38d2cf408e27
(my_strftime) [STRFTIME_NO_POSIX2]: Handle %h, %EX
Jason Rumney <jasonr@gnu.org>
parents:
42384
diff
changeset
|
915 format_char = 'b'; |
38d2cf408e27
(my_strftime) [STRFTIME_NO_POSIX2]: Handle %h, %EX
Jason Rumney <jasonr@gnu.org>
parents:
42384
diff
changeset
|
916 #endif |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
917 *u++ = '%'; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
918 if (modifier != 0) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
919 *u++ = modifier; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
920 *u++ = format_char; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
921 *u = '\0'; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
922 len = strftime (ubuf, sizeof ubuf, ufmt, tp); |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
923 if (len == 0 && ubuf[0] != '\0') |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
924 return 0; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
925 cpy (len, ubuf); |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
926 } |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
927 break; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
928 #endif |
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
929 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
930 case L_('C'): |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
931 if (modifier == L_('O')) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
932 goto bad_format; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
933 if (modifier == L_('E')) |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
934 { |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
935 #if HAVE_STRUCT_ERA_ENTRY |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
936 struct era_entry *era = _nl_get_era_entry (tp HELPER_LOCALE_ARG); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
937 if (era) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
938 { |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
939 # ifdef COMPILE_WIDE |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
940 size_t len = __wcslen (era->era_wname); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
941 cpy (len, era->era_wname); |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
942 # else |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
943 size_t len = strlen (era->era_name); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
944 cpy (len, era->era_name); |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
945 # endif |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
946 break; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
947 } |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
948 #else |
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
949 # if HAVE_STRFTIME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
950 goto underlying_strftime; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
951 # endif |
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
952 #endif |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
953 } |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
954 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
955 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
956 int year = tp->tm_year + TM_YEAR_BASE; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
957 DO_NUMBER (1, year / 100 - (year % 100 < 0)); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
958 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
959 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
960 case L_('x'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
961 if (modifier == L_('O')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
962 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
963 #ifdef _NL_CURRENT |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
964 if (! (modifier == L_('E') |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
965 && (*(subfmt = |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
966 (const CHAR_T *)_NL_CURRENT (LC_TIME, NLW(ERA_D_FMT))) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
967 != L_('\0')))) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
968 subfmt = (const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(D_FMT)); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
969 goto subformat; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
970 #else |
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
971 # if HAVE_STRFTIME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
972 goto underlying_strftime; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
973 # else |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
974 /* Fall through. */ |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
975 # endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
976 #endif |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
977 case L_('D'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
978 if (modifier != 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
979 goto bad_format; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
980 subfmt = L_("%m/%d/%y"); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
981 goto subformat; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
982 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
983 case L_('d'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
984 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
985 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
986 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
987 DO_NUMBER (2, tp->tm_mday); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
988 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
989 case L_('e'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
990 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
991 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
992 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
993 DO_NUMBER_SPACEPAD (2, tp->tm_mday); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
994 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
995 /* All numeric formats set DIGITS and NUMBER_VALUE and then |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
996 jump to one of these two labels. */ |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
997 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
998 do_number_spacepad: |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
999 /* Force `_' flag unless overridden by `0' or `-' flag. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1000 if (pad != L_('0') && pad != L_('-')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1001 pad = L_('_'); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1002 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1003 do_number: |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1004 /* Format the number according to the MODIFIER flag. */ |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1005 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1006 if (modifier == L_('O') && 0 <= number_value) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1007 { |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1008 #ifdef _NL_CURRENT |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1009 /* Get the locale specific alternate representation of |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1010 the number NUMBER_VALUE. If none exist NULL is returned. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1011 const CHAR_T *cp = nl_get_alt_digit (number_value |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1012 HELPER_LOCALE_ARG); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1013 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1014 if (cp != NULL) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1015 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1016 size_t digitlen = STRLEN (cp); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1017 if (digitlen != 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1018 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1019 cpy (digitlen, cp); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1020 break; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1021 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1022 } |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1023 #else |
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1024 # if HAVE_STRFTIME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1025 goto underlying_strftime; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1026 # endif |
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1027 #endif |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1028 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1029 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1030 unsigned int u = number_value; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1031 |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1032 bufp = buf + sizeof (buf) / sizeof (buf[0]); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1033 negative_number = number_value < 0; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1034 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1035 if (negative_number) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1036 u = -u; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1037 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1038 do |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1039 *--bufp = u % 10 + L_('0'); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1040 while ((u /= 10) != 0); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1041 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1042 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1043 do_number_sign_and_padding: |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1044 if (negative_number) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1045 *--bufp = L_('-'); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1046 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1047 if (pad != L_('-')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1048 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1049 int padding = digits - (buf + (sizeof (buf) / sizeof (buf[0])) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1050 - bufp); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1051 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1052 if (padding > 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1053 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1054 if (pad == L_('_')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1055 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1056 if ((size_t) padding >= maxsize - i) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1057 return 0; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1058 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1059 if (p) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1060 memset_space (p, padding); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1061 i += padding; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1062 width = width > padding ? width - padding : 0; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1063 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1064 else |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1065 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1066 if ((size_t) digits >= maxsize - i) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1067 return 0; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1068 |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1069 if (negative_number) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1070 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1071 ++bufp; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1072 |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1073 if (p) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1074 *p++ = L_('-'); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1075 ++i; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1076 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1077 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1078 if (p) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1079 memset_zero (p, padding); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1080 i += padding; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1081 width = 0; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1082 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1083 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1084 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1085 |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1086 cpy (buf + sizeof (buf) / sizeof (buf[0]) - bufp, bufp); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1087 break; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1088 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1089 case L_('F'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1090 if (modifier != 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1091 goto bad_format; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1092 subfmt = L_("%Y-%m-%d"); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1093 goto subformat; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1094 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1095 case L_('H'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1096 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1097 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1098 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1099 DO_NUMBER (2, tp->tm_hour); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1100 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1101 case L_('I'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1102 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1103 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1104 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1105 DO_NUMBER (2, hour12); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1106 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1107 case L_('k'): /* GNU extension. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1108 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1109 goto bad_format; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1110 |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1111 DO_NUMBER_SPACEPAD (2, tp->tm_hour); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1112 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1113 case L_('l'): /* GNU extension. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1114 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1115 goto bad_format; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1116 |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1117 DO_NUMBER_SPACEPAD (2, hour12); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1118 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1119 case L_('j'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1120 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1121 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1122 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1123 DO_NUMBER (3, 1 + tp->tm_yday); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1124 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1125 case L_('M'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1126 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1127 goto bad_format; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1128 |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1129 DO_NUMBER (2, tp->tm_min); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1130 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1131 case L_('m'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1132 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1133 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1134 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1135 DO_NUMBER (2, tp->tm_mon + 1); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1136 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1137 #ifndef _LIBC |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1138 case L_('N'): /* GNU extension. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1139 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1140 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1141 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1142 number_value = ns; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1143 if (width != -1) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1144 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1145 /* Take an explicit width less than 9 as a precision. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1146 int j; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1147 for (j = width; j < 9; j++) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1148 number_value /= 10; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1149 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1150 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1151 DO_NUMBER (9, number_value); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1152 #endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1153 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1154 case L_('n'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1155 add (1, *p = L_('\n')); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1156 break; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1157 |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1158 case L_('P'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1159 to_lowcase = 1; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1160 #if !defined _NL_CURRENT && HAVE_STRFTIME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1161 format_char = L_('p'); |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1162 #endif |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1163 /* FALLTHROUGH */ |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1164 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1165 case L_('p'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1166 if (change_case) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1167 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1168 to_uppcase = 0; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1169 to_lowcase = 1; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1170 } |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1171 #if defined _NL_CURRENT || !HAVE_STRFTIME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1172 cpy (ap_len, ampm); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1173 break; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1174 #else |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1175 goto underlying_strftime; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1176 #endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1177 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1178 case L_('R'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1179 subfmt = L_("%H:%M"); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1180 goto subformat; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1181 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1182 case L_('r'): |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1183 #ifdef _NL_CURRENT |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1184 if (*(subfmt = (const CHAR_T *) _NL_CURRENT (LC_TIME, |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1185 NLW(T_FMT_AMPM))) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1186 == L_('\0')) |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1187 #endif |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1188 subfmt = L_("%I:%M:%S %p"); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1189 goto subformat; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1190 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1191 case L_('S'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1192 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1193 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1194 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1195 DO_NUMBER (2, tp->tm_sec); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1196 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1197 case L_('s'): /* GNU extension. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1198 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1199 struct tm ltm; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1200 time_t t; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1201 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1202 ltm = *tp; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1203 t = mktime (<m); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1204 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1205 /* Generate string value for T using time_t arithmetic; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1206 this works even if sizeof (long) < sizeof (time_t). */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1207 |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1208 bufp = buf + sizeof (buf) / sizeof (buf[0]); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1209 negative_number = t < 0; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1210 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1211 do |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1212 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1213 int d = t % 10; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1214 t /= 10; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1215 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1216 if (negative_number) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1217 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1218 d = -d; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1219 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1220 /* Adjust if division truncates to minus infinity. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1221 if (0 < -1 % 10 && d < 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1222 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1223 t++; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1224 d += 10; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1225 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1226 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1227 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1228 *--bufp = d + L_('0'); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1229 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1230 while (t != 0); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1231 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1232 digits = 1; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1233 goto do_number_sign_and_padding; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1234 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1235 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1236 case L_('X'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1237 if (modifier == L_('O')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1238 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1239 #ifdef _NL_CURRENT |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1240 if (! (modifier == L_('E') |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1241 && (*(subfmt = |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1242 (const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(ERA_T_FMT))) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1243 != L_('\0')))) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1244 subfmt = (const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(T_FMT)); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1245 goto subformat; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1246 #else |
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1247 # if HAVE_STRFTIME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1248 goto underlying_strftime; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1249 # else |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1250 /* Fall through. */ |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1251 # endif |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1252 #endif |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1253 case L_('T'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1254 subfmt = L_("%H:%M:%S"); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1255 goto subformat; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1256 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1257 case L_('t'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1258 add (1, *p = L_('\t')); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1259 break; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1260 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1261 case L_('u'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1262 DO_NUMBER (1, (tp->tm_wday - 1 + 7) % 7 + 1); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1263 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1264 case L_('U'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1265 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1266 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1267 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1268 DO_NUMBER (2, (tp->tm_yday - tp->tm_wday + 7) / 7); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1269 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1270 case L_('V'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1271 case L_('g'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1272 case L_('G'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1273 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1274 goto bad_format; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1275 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1276 int year = tp->tm_year + TM_YEAR_BASE; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1277 int days = iso_week_days (tp->tm_yday, tp->tm_wday); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1278 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1279 if (days < 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1280 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1281 /* This ISO week belongs to the previous year. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1282 year--; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1283 days = iso_week_days (tp->tm_yday + (365 + __isleap (year)), |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1284 tp->tm_wday); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1285 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1286 else |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1287 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1288 int d = iso_week_days (tp->tm_yday - (365 + __isleap (year)), |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1289 tp->tm_wday); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1290 if (0 <= d) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1291 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1292 /* This ISO week belongs to the next year. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1293 year++; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1294 days = d; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1295 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1296 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1297 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1298 switch (*f) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1299 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1300 case L_('g'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1301 DO_NUMBER (2, (year % 100 + 100) % 100); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1302 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1303 case L_('G'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1304 DO_NUMBER (1, year); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1305 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1306 default: |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1307 DO_NUMBER (2, days / 7 + 1); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1308 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1309 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1310 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1311 case L_('W'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1312 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1313 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1314 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1315 DO_NUMBER (2, (tp->tm_yday - (tp->tm_wday - 1 + 7) % 7 + 7) / 7); |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1316 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1317 case L_('w'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1318 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1319 goto bad_format; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1320 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1321 DO_NUMBER (1, tp->tm_wday); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1322 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1323 case L_('Y'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1324 if (modifier == 'E') |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1325 { |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1326 #if HAVE_STRUCT_ERA_ENTRY |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1327 struct era_entry *era = _nl_get_era_entry (tp HELPER_LOCALE_ARG); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1328 if (era) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1329 { |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1330 # ifdef COMPILE_WIDE |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1331 subfmt = era->era_wformat; |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1332 # else |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1333 subfmt = era->era_format; |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1334 # endif |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1335 goto subformat; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1336 } |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1337 #else |
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1338 # if HAVE_STRFTIME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1339 goto underlying_strftime; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1340 # endif |
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1341 #endif |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1342 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1343 if (modifier == L_('O')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1344 goto bad_format; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1345 else |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1346 DO_NUMBER (1, tp->tm_year + TM_YEAR_BASE); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1347 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1348 case L_('y'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1349 if (modifier == L_('E')) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1350 { |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1351 #if HAVE_STRUCT_ERA_ENTRY |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1352 struct era_entry *era = _nl_get_era_entry (tp HELPER_LOCALE_ARG); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1353 if (era) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1354 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1355 int delta = tp->tm_year - era->start_date[0]; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1356 DO_NUMBER (1, (era->offset |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1357 + delta * era->absolute_direction)); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1358 } |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1359 #else |
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1360 # if HAVE_STRFTIME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1361 goto underlying_strftime; |
20211
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1362 # endif |
f722b33c682d
automatically generated from GPLed version
Ulrich Drepper <drepper@redhat.com>
parents:
20010
diff
changeset
|
1363 #endif |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1364 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1365 DO_NUMBER (2, (tp->tm_year % 100 + 100) % 100); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1366 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1367 case L_('Z'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1368 if (change_case) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1369 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1370 to_uppcase = 0; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1371 to_lowcase = 1; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1372 } |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
1373 |
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
1374 #if HAVE_TZNAME |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1375 /* The tzset() call might have changed the value. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1376 if (!(zone && *zone) && tp->tm_isdst >= 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1377 zone = tzname[tp->tm_isdst]; |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
1378 #endif |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1379 if (! zone) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1380 zone = ""; |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
1381 |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1382 #ifdef COMPILE_WIDE |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1383 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1384 /* The zone string is always given in multibyte form. We have |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1385 to transform it first. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1386 wchar_t *wczone; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1387 size_t len; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1388 widen (zone, wczone, len); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1389 cpy (len, wczone); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1390 } |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1391 #else |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1392 cpy (strlen (zone), zone); |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1393 #endif |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1394 break; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1395 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1396 case L_('z'): |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1397 if (tp->tm_isdst < 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1398 break; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1399 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1400 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1401 int diff; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1402 #if HAVE_TM_GMTOFF |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1403 diff = tp->tm_gmtoff; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1404 #else |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1405 if (ut) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1406 diff = 0; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1407 else |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1408 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1409 struct tm gtm; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1410 struct tm ltm; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1411 time_t lt; |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1412 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1413 ltm = *tp; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1414 lt = mktime (<m); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1415 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1416 if (lt == (time_t) -1) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1417 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1418 /* mktime returns -1 for errors, but -1 is also a |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1419 valid time_t value. Check whether an error really |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1420 occurred. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1421 struct tm tm; |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
1422 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1423 if (! my_strftime_localtime_r (<, &tm) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1424 || ((ltm.tm_sec ^ tm.tm_sec) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1425 | (ltm.tm_min ^ tm.tm_min) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1426 | (ltm.tm_hour ^ tm.tm_hour) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1427 | (ltm.tm_mday ^ tm.tm_mday) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1428 | (ltm.tm_mon ^ tm.tm_mon) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1429 | (ltm.tm_year ^ tm.tm_year))) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1430 break; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1431 } |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
1432 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1433 if (! my_strftime_gmtime_r (<, >m)) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1434 break; |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
1435 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1436 diff = tm_diff (<m, >m); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1437 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1438 #endif |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1439 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1440 if (diff < 0) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1441 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1442 add (1, *p = L_('-')); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1443 diff = -diff; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1444 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1445 else |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1446 add (1, *p = L_('+')); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1447 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1448 diff /= 60; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1449 DO_NUMBER (4, (diff / 60) * 100 + diff % 60); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1450 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1451 |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1452 case L_('\0'): /* GNU extension: % at end of format. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1453 --f; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1454 /* Fall through. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1455 default: |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1456 /* Unknown format; output the format, including the '%', |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1457 since this is most likely the right thing to do if a |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1458 multibyte string has been misparsed. */ |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1459 bad_format: |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1460 { |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1461 int flen; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1462 for (flen = 1; f[1 - flen] != L_('%'); flen++) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1463 continue; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1464 cpy (flen, &f[1 - flen]); |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1465 } |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1466 break; |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1467 } |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1468 } |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1469 |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
23323
diff
changeset
|
1470 if (p && maxsize != 0) |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1471 *p = L_('\0'); |
17502
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1472 return i; |
8f3dcea869f5
automatically generated from GPLed version
Paul Eggert <eggert@twinsun.com>
parents:
diff
changeset
|
1473 } |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1474 #ifdef _LIBC |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1475 libc_hidden_def (my_strftime) |
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1476 #endif |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1477 |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1478 |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1479 #ifdef emacs |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1480 #undef ut |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1481 /* For Emacs we have a separate interface which corresponds to the normal |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1482 strftime function plus the ut argument, but without the ns argument. */ |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1483 size_t |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1484 emacs_strftimeu (s, maxsize, format, tp, ut) |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1485 char *s; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1486 size_t maxsize; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1487 const char *format; |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1488 const struct tm *tp; |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1489 int ut; |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1490 { |
51648
73b3b97a1595
Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
Dave Love <fx@gnu.org>
parents:
51234
diff
changeset
|
1491 return my_strftime (s, maxsize, format, tp, ut, 0); |
32629
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1492 } |
2683108cd13f
Sync with glibc, file version 1.78.
Gerd Moellmann <gerd@gnu.org>
parents:
31100
diff
changeset
|
1493 #endif |
52401 | 1494 |
1495 /* arch-tag: 662bc9c4-f8e2-41b6-bf96-b8346d0ce0d8 | |
1496 (do not change this comment) */ |