diff options
Diffstat (limited to 'gl/time.in.h')
-rw-r--r-- | gl/time.in.h | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/gl/time.in.h b/gl/time.in.h new file mode 100644 index 0000000..dec37e8 --- /dev/null +++ b/gl/time.in.h | |||
@@ -0,0 +1,118 @@ | |||
1 | /* A more-standard <time.h>. | ||
2 | |||
3 | Copyright (C) 2007-2008 Free Software Foundation, Inc. | ||
4 | |||
5 | This program is free software; you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published by | ||
7 | the Free Software Foundation; either version 3, or (at your option) | ||
8 | any later version. | ||
9 | |||
10 | This program is distributed in the hope that it will be useful, | ||
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | GNU General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with this program; if not, write to the Free Software Foundation, | ||
17 | Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ | ||
18 | |||
19 | #if __GNUC__ >= 3 | ||
20 | @PRAGMA_SYSTEM_HEADER@ | ||
21 | #endif | ||
22 | |||
23 | /* Don't get in the way of glibc when it includes time.h merely to | ||
24 | declare a few standard symbols, rather than to declare all the | ||
25 | symbols. Also, Solaris 8 <time.h> eventually includes itself | ||
26 | recursively; if that is happening, just include the system <time.h> | ||
27 | without adding our own declarations. */ | ||
28 | #if (defined __need_time_t || defined __need_clock_t \ | ||
29 | || defined __need_timespec \ | ||
30 | || defined _GL_TIME_H) | ||
31 | |||
32 | # @INCLUDE_NEXT@ @NEXT_TIME_H@ | ||
33 | |||
34 | #else | ||
35 | |||
36 | # define _GL_TIME_H | ||
37 | |||
38 | # @INCLUDE_NEXT@ @NEXT_TIME_H@ | ||
39 | |||
40 | # ifdef __cplusplus | ||
41 | extern "C" { | ||
42 | # endif | ||
43 | |||
44 | /* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3). | ||
45 | Or they define it with the wrong member names or define it in <sys/time.h> | ||
46 | (e.g., FreeBSD circa 1997). */ | ||
47 | # if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@ | ||
48 | # if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ | ||
49 | # include <sys/time.h> | ||
50 | # else | ||
51 | # undef timespec | ||
52 | # define timespec rpl_timespec | ||
53 | struct timespec | ||
54 | { | ||
55 | time_t tv_sec; | ||
56 | long int tv_nsec; | ||
57 | }; | ||
58 | # endif | ||
59 | # endif | ||
60 | |||
61 | /* Sleep for at least RQTP seconds unless interrupted, If interrupted, | ||
62 | return -1 and store the remaining time into RMTP. See | ||
63 | <http://www.opengroup.org/susv3xsh/nanosleep.html>. */ | ||
64 | # if @REPLACE_NANOSLEEP@ | ||
65 | # define nanosleep rpl_nanosleep | ||
66 | int nanosleep (struct timespec const *__rqtp, struct timespec *__rmtp); | ||
67 | # endif | ||
68 | |||
69 | /* Convert TIMER to RESULT, assuming local time and UTC respectively. See | ||
70 | <http://www.opengroup.org/susv3xsh/localtime_r.html> and | ||
71 | <http://www.opengroup.org/susv3xsh/gmtime_r.html>. */ | ||
72 | # if @REPLACE_LOCALTIME_R@ | ||
73 | # undef localtime_r | ||
74 | # define localtime_r rpl_localtime_r | ||
75 | # undef gmtime_r | ||
76 | # define gmtime_r rpl_gmtime_r | ||
77 | struct tm *localtime_r (time_t const *restrict __timer, | ||
78 | struct tm *restrict __result); | ||
79 | struct tm *gmtime_r (time_t const *restrict __timer, | ||
80 | struct tm *restrict __result); | ||
81 | # endif | ||
82 | |||
83 | /* Parse BUF as a time stamp, assuming FORMAT specifies its layout, and store | ||
84 | the resulting broken-down time into TM. See | ||
85 | <http://www.opengroup.org/susv3xsh/strptime.html>. */ | ||
86 | # if @REPLACE_STRPTIME@ | ||
87 | # undef strptime | ||
88 | # define strptime rpl_strptime | ||
89 | char *strptime (char const *restrict __buf, char const *restrict __format, | ||
90 | struct tm *restrict __tm); | ||
91 | # endif | ||
92 | |||
93 | /* Convert TM to a time_t value, assuming UTC. */ | ||
94 | # if @REPLACE_TIMEGM@ | ||
95 | # undef timegm | ||
96 | # define timegm rpl_timegm | ||
97 | time_t timegm (struct tm *__tm); | ||
98 | # endif | ||
99 | |||
100 | /* Encourage applications to avoid unsafe functions that can overrun | ||
101 | buffers when given outlandish struct tm values. Portable | ||
102 | applications should use strftime (or even sprintf) instead. */ | ||
103 | # if GNULIB_PORTCHECK | ||
104 | # undef asctime | ||
105 | # define asctime eschew_asctime | ||
106 | # undef asctime_r | ||
107 | # define asctime_r eschew_asctime_r | ||
108 | # undef ctime | ||
109 | # define ctime eschew_ctime | ||
110 | # undef ctime_r | ||
111 | # define ctime_r eschew_ctime_r | ||
112 | # endif | ||
113 | |||
114 | # ifdef __cplusplus | ||
115 | } | ||
116 | # endif | ||
117 | |||
118 | #endif | ||