-
Notifications
You must be signed in to change notification settings - Fork 0
/
missing.h
189 lines (154 loc) · 3.38 KB
/
missing.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
/************************************************
missing.h - prototype for *.c in ./missing, and
for missing timeval struct
$Author$
$Date$
created at: Sat May 11 23:46:03 JST 2002
************************************************/
#ifndef MISSING_H
#define MISSING_H
#include "config.h"
#ifdef RUBY_EXTCONF_H
#include RUBY_EXTCONF_H
#endif
#ifdef __cplusplus
# ifndef HAVE_PROTOTYPES
# define HAVE_PROTOTYPES 1
# endif
# ifndef HAVE_STDARG_PROTOTYPES
# define HAVE_STDARG_PROTOTYPES 1
# endif
#endif
#undef _
#ifdef HAVE_PROTOTYPES
# define _(args) args
#else
# define _(args) ()
#endif
#undef __
#ifdef HAVE_STDARG_PROTOTYPES
# define __(args) args
#else
# define __(args) ()
#endif
#ifdef __cplusplus
#define ANYARGS ...
#else
#define ANYARGS
#endif
#if defined(HAVE_SYS_TIME_H)
# include <sys/time.h>
#elif !defined(_WIN32)
# define time_t long
struct timeval {
time_t tv_sec; /* seconds */
time_t tv_usec; /* microseconds */
};
#endif
#if defined(HAVE_SYS_TYPES_H)
# include <sys/types.h>
#endif
#if !defined(HAVE_STRUCT_TIMEZONE)
struct timezone {
int tz_minuteswest;
int tz_dsttime;
};
#endif
#ifdef RUBY_EXPORT
#undef RUBY_EXTERN
#endif
#ifndef RUBY_EXTERN
#define RUBY_EXTERN extern
#endif
#ifndef HAVE_ACOSH
RUBY_EXTERN double acosh _((double));
RUBY_EXTERN double asinh _((double));
RUBY_EXTERN double atanh _((double));
#endif
#ifndef HAVE_CRYPT
RUBY_EXTERN char *crypt _((const char *, const char *));
#endif
#ifndef HAVE_DUP2
RUBY_EXTERN int dup2 _((int, int));
#endif
#ifndef HAVE_EACCESS
RUBY_EXTERN int eaccess _((const char*, int));
#endif
#ifndef HAVE_FINITE
RUBY_EXTERN int finite _((double));
#endif
#ifndef HAVE_FLOCK
RUBY_EXTERN int flock _((int, int));
#endif
/*
#ifndef HAVE_FREXP
RUBY_EXTERN double frexp _((double, int *));
#endif
*/
#ifndef HAVE_HYPOT
RUBY_EXTERN double hypot _((double, double));
#endif
#ifndef HAVE_ERF
RUBY_EXTERN double erf _((double));
RUBY_EXTERN double erfc _((double));
#endif
#ifndef HAVE_ISINF
# if defined(HAVE_FINITE) && defined(HAVE_ISNAN)
# define isinf(x) (!finite(x) && !isnan(x))
# else
RUBY_EXTERN int isinf _((double));
# endif
#endif
#ifndef HAVE_ISNAN
RUBY_EXTERN int isnan _((double));
#endif
/*
#ifndef HAVE_MEMCMP
RUBY_EXTERN int memcmp _((char *, char *, int));
#endif
*/
#ifndef HAVE_MEMMOVE
RUBY_EXTERN void *memmove _((void *, void *, int));
#endif
/*
#ifndef HAVE_MODF
RUBY_EXTERN double modf _((double, double *));
#endif
*/
#ifndef HAVE_STRCASECMP
RUBY_EXTERN int strcasecmp _((char *, char *));
#endif
#ifndef HAVE_STRNCASECMP
RUBY_EXTERN int strncasecmp _((char *, char *, int));
#endif
#ifndef HAVE_STRCHR
RUBY_EXTERN char *strchr _((char *, int));
RUBY_EXTERN char *strrchr _((char *, int));
#endif
#ifndef HAVE_STRERROR
RUBY_EXTERN char *strerror _((int));
#endif
#ifndef HAVE_STRFTIME
RUBY_EXTERN size_t strftime _((char *, size_t, const char *, const struct tm *));
#endif
#ifndef HAVE_STRSTR
RUBY_EXTERN char *strstr _((char *, char *));
#endif
/*
#ifndef HAVE_STRTOL
RUBY_EXTERN long strtol _((char *, char **, int));
#endif
*/
#ifndef HAVE_STRTOUL
RUBY_EXTERN unsigned long strtoul _((char *, char **, int));
#endif
#ifndef HAVE_VSNPRINTF
# ifdef HAVE_STDARG_PROTOTYPES
# include <stdarg.h>
# else
# include <varargs.h>
# endif
RUBY_EXTERN int snprintf __((char *, size_t n, char const *, ...));
RUBY_EXTERN int vsnprintf _((char *, size_t n, char const *, va_list));
#endif
#endif /* MISSING_H */