Remove Encode::Tcl::Extended, suggested by
[p5sagit/p5-mst-13.2.git] / reentr.h
CommitLineData
10bc17b6 1/*
2 * reentr.h
3 *
4 * Copyright (c) 1997-2002, Larry Wall
5 *
6 * You may distribute under the terms of either the GNU General Public
7 * License or the Artistic License, as specified in the README file.
8 *
9 * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
10 * This file is built by reentrl.pl from data in reentr.pl.
11 */
12
13#ifndef REENTR_H
14#define REENTR_H
15
16#ifdef USE_REENTRANT_API
17
18/* Deprecations: some platforms have the said reentrant interfaces
19 * but they are declared obsolete and are not to be used. Often this
20 * means that the platform has threadsafed the interfaces (hopefully).
21 * All this is OS version dependent, so we are of course fooling ourselves.
22 * If you know of more deprecations on some platforms, please add your own. */
23
24#ifdef __hpux
25# undef HAS_CRYPT_R
26# undef HAS_DRAND48_R
efa45b01 27# undef HAS_ENDGRENT_R
28# undef HAS_ENDPWENT_R
10bc17b6 29# undef HAS_GETGRENT_R
30# undef HAS_GETPWENT_R
31# undef HAS_SETLOCALE_R
32# undef HAS_SRAND48_R
33# undef HAS_STRERROR_R
34# define NETDB_R_OBSOLETE
35#endif
36
37#if defined(__osf__) && defined(__alpha) /* Tru64 aka Digital UNIX */
38# undef HAS_CRYPT_R
39# undef HAS_STRERROR_R
40# define NETDB_R_OBSOLETE
41#endif
42
43#ifdef NETDB_R_OBSOLETE
44# undef HAS_ENDHOSTENT_R
45# undef HAS_ENDNETENT_R
46# undef HAS_ENDPROTOENT_R
47# undef HAS_ENDSERVENT_R
48# undef HAS_GETHOSTBYADDR_R
49# undef HAS_GETHOSTBYNAME_R
50# undef HAS_GETHOSTENT_R
51# undef HAS_GETNETBYADDR_R
52# undef HAS_GETNETBYNAME_R
53# undef HAS_GETNETENT_R
54# undef HAS_GETPROTOBYNAME_R
55# undef HAS_GETPROTOBYNUMBER_R
56# undef HAS_GETPROTOENT_R
57# undef HAS_GETSERVBYNAME_R
58# undef HAS_GETSERVBYPORT_R
59# undef HAS_GETSERVENT_R
60# undef HAS_SETHOSTENT_R
61# undef HAS_SETNETENT_R
62# undef HAS_SETPROTOENT_R
63# undef HAS_SETSERVENT_R
64#endif
65
66#ifdef I_PWD
67# include <pwd.h>
68#endif
69#ifdef I_GRP
70# include <grp.h>
71#endif
72#ifdef I_NETDB
73# include <netdb.h>
74#endif
75#ifdef I_STDLIB
76# include <stdlib.h> /* drand48_data */
77#endif
78#ifdef I_CRYPT
79# ifdef I_CRYPT
80# include <crypt.h>
81# endif
82#endif
83#ifdef HAS_GETSPNAM_R
84# ifdef I_SHADOW
85# include <shadow.h>
86# endif
87#endif
88
89#define REENTRANT_PROTO_B_B 1
90#define REENTRANT_PROTO_B_BI 2
91#define REENTRANT_PROTO_B_BW 3
92#define REENTRANT_PROTO_B_CCS 4
93#define REENTRANT_PROTO_B_IBI 5
94#define REENTRANT_PROTO_B_IBW 6
95#define REENTRANT_PROTO_B_SB 7
96#define REENTRANT_PROTO_B_SBI 8
97#define REENTRANT_PROTO_I_BI 9
98#define REENTRANT_PROTO_I_BW 10
99#define REENTRANT_PROTO_I_CCSBWR 11
100#define REENTRANT_PROTO_I_CCSD 12
101#define REENTRANT_PROTO_I_CII 13
102#define REENTRANT_PROTO_I_CIISD 14
103#define REENTRANT_PROTO_I_CSBI 15
104#define REENTRANT_PROTO_I_CSBIR 16
105#define REENTRANT_PROTO_I_CSBWR 17
106#define REENTRANT_PROTO_I_CSBWRE 18
107#define REENTRANT_PROTO_I_CSD 19
108#define REENTRANT_PROTO_I_CWISBWRE 20
109#define REENTRANT_PROTO_I_CWISD 21
110#define REENTRANT_PROTO_I_H 22
111#define REENTRANT_PROTO_I_IBI 23
112#define REENTRANT_PROTO_I_IBW 24
113#define REENTRANT_PROTO_I_ICBI 25
114#define REENTRANT_PROTO_I_ICSBWR 26
115#define REENTRANT_PROTO_I_ICSD 27
116#define REENTRANT_PROTO_I_ID 28
117#define REENTRANT_PROTO_I_IISD 29
118#define REENTRANT_PROTO_I_ISBWR 30
119#define REENTRANT_PROTO_I_ISD 31
120#define REENTRANT_PROTO_I_LISBI 32
121#define REENTRANT_PROTO_I_LISD 33
122#define REENTRANT_PROTO_I_LS 34
123#define REENTRANT_PROTO_I_S 35
124#define REENTRANT_PROTO_I_SB 36
125#define REENTRANT_PROTO_I_SBI 37
126#define REENTRANT_PROTO_I_SBIE 38
127#define REENTRANT_PROTO_I_SBIH 39
128#define REENTRANT_PROTO_I_SBIR 40
129#define REENTRANT_PROTO_I_SBWR 41
130#define REENTRANT_PROTO_I_SBWRE 42
131#define REENTRANT_PROTO_I_SD 43
132#define REENTRANT_PROTO_I_ST 44
133#define REENTRANT_PROTO_I_TISD 45
134#define REENTRANT_PROTO_I_TS 46
135#define REENTRANT_PROTO_I_TSBI 47
136#define REENTRANT_PROTO_I_TSBIR 48
137#define REENTRANT_PROTO_I_TSBWR 49
138#define REENTRANT_PROTO_I_TSR 50
139#define REENTRANT_PROTO_I_UISBWRE 51
140#define REENTRANT_PROTO_S_CBI 52
141#define REENTRANT_PROTO_S_CCSBI 53
142#define REENTRANT_PROTO_S_CIISBIE 54
143#define REENTRANT_PROTO_S_CSBI 55
144#define REENTRANT_PROTO_S_CSBIE 56
145#define REENTRANT_PROTO_S_CWISBIE 57
146#define REENTRANT_PROTO_S_CWISBWIE 58
147#define REENTRANT_PROTO_S_ICSBI 59
148#define REENTRANT_PROTO_S_ISBI 60
149#define REENTRANT_PROTO_S_LISBI 61
150#define REENTRANT_PROTO_S_SBI 62
151#define REENTRANT_PROTO_S_SBIE 63
152#define REENTRANT_PROTO_S_SBW 64
153#define REENTRANT_PROTO_S_TISBI 65
154#define REENTRANT_PROTO_S_TS 66
155#define REENTRANT_PROTO_S_TSBI 67
156#define REENTRANT_PROTO_S_TSBIE 68
157#define REENTRANT_PROTO_S_TWISBIE 69
158#define REENTRANT_PROTO_V_H 70
159#define REENTRANT_PROTO_V_ID 71
160#define REENTRANT_PROTO_V_S 72
161
162/* Defines for indicating which special features are supported. */
163
edd309b7 164/* The getgrent getgrgid getgrnam using buffer? */
165
166#if defined(HAS_GETGRENT_R) && (GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIR || GETGRENT_R_PROTO == REENTRANT_PROTO_S_SBW || GETGRENT_R_PROTO == REENTRANT_PROTO_S_SBI || GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBI || GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIH)
167# define GETGRENT_R_HAS_BUFFER
168#else
169# undef GETGRENT_R_HAS_BUFFER
170#endif
171#if defined(HAS_GETGRGID_R) && (GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBWR || GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBIR || GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBI || GETGRGID_R_PROTO == REENTRANT_PROTO_S_TSBI)
172# define GETGRGID_R_HAS_BUFFER
173#else
174# undef GETGRGID_R_HAS_BUFFER
175#endif
176#if defined(HAS_GETGRNAM_R) && (GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR || GETGRNAM_R_PROTO == REENTRANT_PROTO_S_CBI || GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBI || GETGRNAM_R_PROTO == REENTRANT_PROTO_S_CSBI)
177# define GETGRNAM_R_HAS_BUFFER
178#else
179# undef GETGRNAM_R_HAS_BUFFER
180#endif
181
182/* Any of the getgrent getgrgid getgrnam using buffer? */
183
184#if (defined(GETGRENT_R_HAS_BUFFER) || defined(GETGRGID_R_HAS_BUFFER) || defined(GETGRNAM_R_HAS_BUFFER))
185# define USE_GETGRENT_BUFFER
186#else
187# undef USE_GETGRENT_BUFFER
188#endif
189
10bc17b6 190/* The getgrent getgrgid getgrnam using ptr? */
191
09310450 192#if defined(HAS_GETGRENT_R) && (GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIR)
10bc17b6 193# define GETGRENT_R_HAS_PTR
194#else
195# undef GETGRENT_R_HAS_PTR
196#endif
09310450 197#if defined(HAS_GETGRGID_R) && (GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBWR || GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBIR)
10bc17b6 198# define GETGRGID_R_HAS_PTR
199#else
200# undef GETGRGID_R_HAS_PTR
201#endif
09310450 202#if defined(HAS_GETGRNAM_R) && (GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR)
10bc17b6 203# define GETGRNAM_R_HAS_PTR
204#else
205# undef GETGRNAM_R_HAS_PTR
206#endif
207
208/* Any of the getgrent getgrgid getgrnam using ptr? */
209
210#if (defined(GETGRENT_R_HAS_PTR) || defined(GETGRGID_R_HAS_PTR) || defined(GETGRNAM_R_HAS_PTR))
211# define USE_GETGRENT_PTR
212#else
213# undef USE_GETGRENT_PTR
214#endif
215
216/* The getpwent getpwnam getpwuid using ptr? */
217
09310450 218#if defined(HAS_GETPWENT_R) && (GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIR)
10bc17b6 219# define GETPWENT_R_HAS_PTR
220#else
221# undef GETPWENT_R_HAS_PTR
222#endif
09310450 223#if defined(HAS_GETPWNAM_R) && (GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR)
10bc17b6 224# define GETPWNAM_R_HAS_PTR
225#else
226# undef GETPWNAM_R_HAS_PTR
227#endif
09310450 228#if defined(HAS_GETPWUID_R) && (GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBWR || GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBIR)
10bc17b6 229# define GETPWUID_R_HAS_PTR
230#else
231# undef GETPWUID_R_HAS_PTR
232#endif
233
234/* Any of the getpwent getpwnam getpwuid using ptr? */
235
236#if (defined(GETPWENT_R_HAS_PTR) || defined(GETPWNAM_R_HAS_PTR) || defined(GETPWUID_R_HAS_PTR))
237# define USE_GETPWENT_PTR
238#else
239# undef USE_GETPWENT_PTR
240#endif
241
242/* The getspent getspnam using ptr? */
243
09310450 244#if defined(HAS_GETSPNAM_R) && (GETSPNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR)
10bc17b6 245# define GETSPNAM_R_HAS_PTR
246#else
247# undef GETSPNAM_R_HAS_PTR
248#endif
249
250/* Any of the getspent getspnam using ptr? */
251
252#if (defined(GETSPENT_R_HAS_PTR) || defined(GETSPNAM_R_HAS_PTR))
253# define USE_GETSPENT_PTR
254#else
255# undef USE_GETSPENT_PTR
256#endif
257
258/* The getgrent getgrgid getgrnam using fptr? */
259
09310450 260#if defined(HAS_GETGRENT_R) && (GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIH)
10bc17b6 261# define GETGRENT_R_HAS_FPTR
262#else
263# undef GETGRENT_R_HAS_FPTR
264#endif
265
266/* Any of the getgrent getgrgid getgrnam using fptr? */
267
268#if (defined(GETGRENT_R_HAS_FPTR) || defined(GETGRGID_R_HAS_FPTR) || defined(GETGRNAM_R_HAS_FPTR))
269# define USE_GETGRENT_FPTR
270#else
271# undef USE_GETGRENT_FPTR
272#endif
273
274/* The getpwent getpwnam getpwuid using fptr? */
275
09310450 276#if defined(HAS_GETPWENT_R) && (GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIH)
10bc17b6 277# define GETPWENT_R_HAS_FPTR
278#else
279# undef GETPWENT_R_HAS_FPTR
280#endif
281
282/* Any of the getpwent getpwnam getpwuid using fptr? */
283
284#if (defined(GETPWENT_R_HAS_FPTR) || defined(GETPWNAM_R_HAS_FPTR) || defined(GETPWUID_R_HAS_FPTR))
285# define USE_GETPWENT_FPTR
286#else
287# undef USE_GETPWENT_FPTR
288#endif
289
edd309b7 290/* The getpwent getpwgid getpwnam using buffer? */
291
292#if defined(HAS_GETPWENT_R) && (GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIR || GETPWENT_R_PROTO == REENTRANT_PROTO_S_SBW || GETPWENT_R_PROTO == REENTRANT_PROTO_S_SBI || GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBI || GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIH)
293# define GETPWENT_R_HAS_BUFFER
294#else
295# undef GETPWENT_R_HAS_BUFFER
296#endif
297#if defined(HAS_GETPWNAM_R) && (GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR || GETPWNAM_R_PROTO == REENTRANT_PROTO_S_CSBI || GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBI)
298# define GETPWNAM_R_HAS_BUFFER
299#else
300# undef GETPWNAM_R_HAS_BUFFER
301#endif
302
303/* Any of the getpwent getpwgid getpwnam using buffer? */
304
305#if (defined(GETPWENT_R_HAS_BUFFER) || defined(GETPWGID_R_HAS_BUFFER) || defined(GETPWNAM_R_HAS_BUFFER))
306# define USE_GETPWENT_BUFFER
307#else
308# undef USE_GETPWENT_BUFFER
309#endif
310
10bc17b6 311/* The gethostent gethostbyaddr gethostbyname using ptr? */
312
09310450 313#if defined(HAS_GETHOSTENT_R) && (GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBWRE)
10bc17b6 314# define GETHOSTENT_R_HAS_PTR
315#else
316# undef GETHOSTENT_R_HAS_PTR
317#endif
09310450 318#if defined(HAS_GETHOSTBYADDR_R) && (GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CWISBWRE)
10bc17b6 319# define GETHOSTBYADDR_R_HAS_PTR
320#else
321# undef GETHOSTBYADDR_R_HAS_PTR
322#endif
09310450 323#if defined(HAS_GETHOSTBYNAME_R) && (GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE)
10bc17b6 324# define GETHOSTBYNAME_R_HAS_PTR
325#else
326# undef GETHOSTBYNAME_R_HAS_PTR
327#endif
328
329/* Any of the gethostent gethostbyaddr gethostbyname using ptr? */
330
331#if (defined(GETHOSTENT_R_HAS_PTR) || defined(GETHOSTBYADDR_R_HAS_PTR) || defined(GETHOSTBYNAME_R_HAS_PTR))
332# define USE_GETHOSTENT_PTR
333#else
334# undef USE_GETHOSTENT_PTR
335#endif
336
337/* The getnetent getnetbyaddr getnetbyname using ptr? */
338
09310450 339#if defined(HAS_GETNETENT_R) && (GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBWRE)
10bc17b6 340# define GETNETENT_R_HAS_PTR
341#else
342# undef GETNETENT_R_HAS_PTR
343#endif
09310450 344#if defined(HAS_GETNETBYADDR_R) && (GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_UISBWRE)
10bc17b6 345# define GETNETBYADDR_R_HAS_PTR
346#else
347# undef GETNETBYADDR_R_HAS_PTR
348#endif
09310450 349#if defined(HAS_GETNETBYNAME_R) && (GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE)
10bc17b6 350# define GETNETBYNAME_R_HAS_PTR
351#else
352# undef GETNETBYNAME_R_HAS_PTR
353#endif
354
355/* Any of the getnetent getnetbyaddr getnetbyname using ptr? */
356
357#if (defined(GETNETENT_R_HAS_PTR) || defined(GETNETBYADDR_R_HAS_PTR) || defined(GETNETBYNAME_R_HAS_PTR))
358# define USE_GETNETENT_PTR
359#else
360# undef USE_GETNETENT_PTR
361#endif
362
363/* The getprotoent getprotobyname getprotobynumber using ptr? */
364
09310450 365#if defined(HAS_GETPROTOENT_R) && (GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SBWR)
10bc17b6 366# define GETPROTOENT_R_HAS_PTR
367#else
368# undef GETPROTOENT_R_HAS_PTR
369#endif
09310450 370#if defined(HAS_GETPROTOBYNAME_R) && (GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWR)
10bc17b6 371# define GETPROTOBYNAME_R_HAS_PTR
372#else
373# undef GETPROTOBYNAME_R_HAS_PTR
374#endif
09310450 375#if defined(HAS_GETPROTOBYNUMBER_R) && (GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_I_ISBWR)
10bc17b6 376# define GETPROTOBYNUMBER_R_HAS_PTR
377#else
378# undef GETPROTOBYNUMBER_R_HAS_PTR
379#endif
380
381/* Any of the getprotoent getprotobyname getprotobynumber using ptr? */
382
383#if (defined(GETPROTOENT_R_HAS_PTR) || defined(GETPROTOBYNAME_R_HAS_PTR) || defined(GETPROTOBYNUMBER_R_HAS_PTR))
384# define USE_GETPROTOENT_PTR
385#else
386# undef USE_GETPROTOENT_PTR
387#endif
388
389/* The getservent getservbyname getservbyport using ptr? */
390
09310450 391#if defined(HAS_GETSERVENT_R) && (GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SBWR)
10bc17b6 392# define GETSERVENT_R_HAS_PTR
393#else
394# undef GETSERVENT_R_HAS_PTR
395#endif
09310450 396#if defined(HAS_GETSERVBYNAME_R) && (GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSBWR)
10bc17b6 397# define GETSERVBYNAME_R_HAS_PTR
398#else
399# undef GETSERVBYNAME_R_HAS_PTR
400#endif
09310450 401#if defined(HAS_GETSERVBYPORT_R) && (GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_I_ICSBWR)
10bc17b6 402# define GETSERVBYPORT_R_HAS_PTR
403#else
404# undef GETSERVBYPORT_R_HAS_PTR
405#endif
406
407/* Any of the getservent getservbyname getservbyport using ptr? */
408
409#if (defined(GETSERVENT_R_HAS_PTR) || defined(GETSERVBYNAME_R_HAS_PTR) || defined(GETSERVBYPORT_R_HAS_PTR))
410# define USE_GETSERVENT_PTR
411#else
412# undef USE_GETSERVENT_PTR
413#endif
414
edd309b7 415/* The gethostent gethostbyaddr gethostbyname using buffer? */
416
417#if defined(HAS_GETHOSTENT_R) && (GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBWRE || GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBIE || GETHOSTENT_R_PROTO == REENTRANT_PROTO_S_SBIE || GETHOSTENT_R_PROTO == REENTRANT_PROTO_S_SBI || GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBI)
418# define GETHOSTENT_R_HAS_BUFFER
419#else
420# undef GETHOSTENT_R_HAS_BUFFER
421#endif
422#if defined(HAS_GETHOSTBYADDR_R) && (GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CWISBWRE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CWISBWIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CWISBIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_TWISBIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CIISBIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CSBIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_TSBIE)
423# define GETHOSTBYADDR_R_HAS_BUFFER
424#else
425# undef GETHOSTBYADDR_R_HAS_BUFFER
426#endif
427#if defined(HAS_GETHOSTBYNAME_R) && (GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE || GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBIE)
428# define GETHOSTBYNAME_R_HAS_BUFFER
429#else
430# undef GETHOSTBYNAME_R_HAS_BUFFER
431#endif
432
433/* Any of the gethostent gethostbyaddr gethostbyname using buffer? */
434
435#if (defined(GETHOSTENT_R_HAS_BUFFER) || defined(GETHOSTBYADDR_R_HAS_BUFFER) || defined(GETHOSTBYNAME_R_HAS_BUFFER))
436# define USE_GETHOSTENT_BUFFER
437#else
438# undef USE_GETHOSTENT_BUFFER
439#endif
440
441/* The getnetent getnetbyaddr getnetbyname using buffer? */
442
443#if defined(HAS_GETNETENT_R) && (GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBWRE || GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBIE || GETNETENT_R_PROTO == REENTRANT_PROTO_S_SBIE || GETNETENT_R_PROTO == REENTRANT_PROTO_S_SBI || GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBI)
444# define GETNETENT_R_HAS_BUFFER
445#else
446# undef GETNETENT_R_HAS_BUFFER
447#endif
448#if defined(HAS_GETNETBYADDR_R) && (GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_UISBWRE || GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_LISBI || GETNETBYADDR_R_PROTO == REENTRANT_PROTO_S_TISBI || GETNETBYADDR_R_PROTO == REENTRANT_PROTO_S_LISBI)
449# define GETNETBYADDR_R_HAS_BUFFER
450#else
451# undef GETNETBYADDR_R_HAS_BUFFER
452#endif
453#if defined(HAS_GETNETBYNAME_R) && (GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE || GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBI || GETNETBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBI)
454# define GETNETBYNAME_R_HAS_BUFFER
455#else
456# undef GETNETBYNAME_R_HAS_BUFFER
457#endif
458
459/* Any of the getnetent getnetbyaddr getnetbyname using buffer? */
460
461#if (defined(GETNETENT_R_HAS_BUFFER) || defined(GETNETBYADDR_R_HAS_BUFFER) || defined(GETNETBYNAME_R_HAS_BUFFER))
462# define USE_GETNETENT_BUFFER
463#else
464# undef USE_GETNETENT_BUFFER
465#endif
466
467/* The getprotoent getprotobyname getprotobynumber using buffer? */
468
469#if defined(HAS_GETPROTOENT_R) && (GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SBI || GETPROTOENT_R_PROTO == REENTRANT_PROTO_S_SBI)
470# define GETPROTOENT_R_HAS_BUFFER
471#else
472# undef GETPROTOENT_R_HAS_BUFFER
473#endif
474#if defined(HAS_GETPROTOBYNAME_R) && (GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBI)
475# define GETPROTOBYNAME_R_HAS_BUFFER
476#else
477# undef GETPROTOBYNAME_R_HAS_BUFFER
478#endif
479#if defined(HAS_GETPROTOBYNUMBER_R) && (GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_I_ISBWR || GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_S_ISBI)
480# define GETPROTOBYNUMBER_R_HAS_BUFFER
481#else
482# undef GETPROTOBYNUMBER_R_HAS_BUFFER
483#endif
484
485/* Any of the getprotoent getprotobyname getprotobynumber using buffer? */
486
487#if (defined(GETPROTOENT_R_HAS_BUFFER) || defined(GETPROTOBYNAME_R_HAS_BUFFER) || defined(GETPROTOBYNUMBER_R_HAS_BUFFER))
488# define USE_GETPROTOENT_BUFFER
489#else
490# undef USE_GETPROTOENT_BUFFER
491#endif
492
493/* The getservent getservbyname getservbyport using buffer? */
494
495#if defined(HAS_GETSERVENT_R) && (GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SBI || GETSERVENT_R_PROTO == REENTRANT_PROTO_S_SBI)
496# define GETSERVENT_R_HAS_BUFFER
497#else
498# undef GETSERVENT_R_HAS_BUFFER
499#endif
500#if defined(HAS_GETSERVBYNAME_R) && (GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSBWR || GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_S_CCSBI)
501# define GETSERVBYNAME_R_HAS_BUFFER
502#else
503# undef GETSERVBYNAME_R_HAS_BUFFER
504#endif
505#if defined(HAS_GETSERVBYPORT_R) && (GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_I_ICSBWR || GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_S_ICSBI)
506# define GETSERVBYPORT_R_HAS_BUFFER
507#else
508# undef GETSERVBYPORT_R_HAS_BUFFER
509#endif
510
511/* Any of the getservent getservbyname getservbyport using buffer? */
512
513#if (defined(GETSERVENT_R_HAS_BUFFER) || defined(GETSERVBYNAME_R_HAS_BUFFER) || defined(GETSERVBYPORT_R_HAS_BUFFER))
514# define USE_GETSERVENT_BUFFER
515#else
516# undef USE_GETSERVENT_BUFFER
517#endif
518
10bc17b6 519/* The gethostent gethostbyaddr gethostbyname using errno? */
520
09310450 521#if defined(HAS_GETHOSTENT_R) && (GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBWRE || GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBIE || GETHOSTENT_R_PROTO == REENTRANT_PROTO_S_SBIE)
10bc17b6 522# define GETHOSTENT_R_HAS_ERRNO
523#else
524# undef GETHOSTENT_R_HAS_ERRNO
525#endif
09310450 526#if defined(HAS_GETHOSTBYADDR_R) && (GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CWISBWRE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CWISBWIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CWISBIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_TWISBIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CIISBIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CSBIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_TSBIE)
10bc17b6 527# define GETHOSTBYADDR_R_HAS_ERRNO
528#else
529# undef GETHOSTBYADDR_R_HAS_ERRNO
530#endif
09310450 531#if defined(HAS_GETHOSTBYNAME_R) && (GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE || GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBIE)
10bc17b6 532# define GETHOSTBYNAME_R_HAS_ERRNO
533#else
534# undef GETHOSTBYNAME_R_HAS_ERRNO
535#endif
536
537/* Any of the gethostent gethostbyaddr gethostbyname using errno? */
538
539#if (defined(GETHOSTENT_R_HAS_ERRNO) || defined(GETHOSTBYADDR_R_HAS_ERRNO) || defined(GETHOSTBYNAME_R_HAS_ERRNO))
540# define USE_GETHOSTENT_ERRNO
541#else
542# undef USE_GETHOSTENT_ERRNO
543#endif
544
545/* The getnetent getnetbyaddr getnetbyname using errno? */
546
09310450 547#if defined(HAS_GETNETENT_R) && (GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBWRE || GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBIE || GETNETENT_R_PROTO == REENTRANT_PROTO_S_SBIE)
10bc17b6 548# define GETNETENT_R_HAS_ERRNO
549#else
550# undef GETNETENT_R_HAS_ERRNO
551#endif
09310450 552#if defined(HAS_GETNETBYADDR_R) && (GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_UISBWRE)
10bc17b6 553# define GETNETBYADDR_R_HAS_ERRNO
554#else
555# undef GETNETBYADDR_R_HAS_ERRNO
556#endif
09310450 557#if defined(HAS_GETNETBYNAME_R) && (GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE)
10bc17b6 558# define GETNETBYNAME_R_HAS_ERRNO
559#else
560# undef GETNETBYNAME_R_HAS_ERRNO
561#endif
562
563/* Any of the getnetent getnetbyaddr getnetbyname using errno? */
564
565#if (defined(GETNETENT_R_HAS_ERRNO) || defined(GETNETBYADDR_R_HAS_ERRNO) || defined(GETNETBYNAME_R_HAS_ERRNO))
566# define USE_GETNETENT_ERRNO
567#else
568# undef USE_GETNETENT_ERRNO
569#endif
570
571
572typedef struct {
573#ifdef HAS_ASCTIME_R
574 char* _asctime_buffer;
575 size_t _asctime_size;
576#endif /* HAS_ASCTIME_R */
577#ifdef HAS_CRYPT_R
578 struct crypt_data _crypt_struct;
579#endif /* HAS_CRYPT_R */
580#ifdef HAS_CTIME_R
581 char* _ctime_buffer;
582 size_t _ctime_size;
583#endif /* HAS_CTIME_R */
584#ifdef HAS_DRAND48_R
585 struct drand48_data _drand48_struct;
586 double _drand48_double;
587#endif /* HAS_DRAND48_R */
588#ifdef HAS_GETGRNAM_R
589 struct group _getgrent_struct;
590 char* _getgrent_buffer;
591 size_t _getgrent_size;
592# ifdef USE_GETGRENT_PTR
593 struct group* _getgrent_ptr;
594# endif
595# ifdef USE_GETGRENT_FPTR
596 FILE* _getgrent_fptr;
597# endif
598#endif /* HAS_GETGRNAM_R */
599#ifdef HAS_GETHOSTBYNAME_R
600 struct hostent _gethostent_struct;
601# if GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
602 struct hostent_data* _gethostent_data;
603# else
604 char* _gethostent_buffer;
605 size_t _gethostent_size;
606# endif
607# ifdef USE_GETHOSTENT_PTR
608 struct hostent* _gethostent_ptr;
609# endif
610# ifdef USE_GETHOSTENT_ERRNO
611 int _gethostent_errno;
612# endif
613#endif /* HAS_GETHOSTBYNAME_R */
614#ifdef HAS_GETLOGIN_R
615 char* _getlogin_buffer;
616 size_t _getlogin_size;
617#endif /* HAS_GETLOGIN_R */
618#ifdef HAS_GETNETBYNAME_R
619 struct netent _getnetent_struct;
620# if GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
621 struct netent_data* _getnetent_data;
622# else
623 char* _getnetent_buffer;
624 size_t _getnetent_size;
625# endif
626# ifdef USE_GETNETENT_PTR
627 struct netent* _getnetent_ptr;
628# endif
629# ifdef USE_GETNETENT_ERRNO
630 int _getnetent_errno;
631# endif
632#endif /* HAS_GETNETBYNAME_R */
633#ifdef HAS_GETPROTOBYNAME_R
634 struct protoent _getprotoent_struct;
635# if GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
636 struct protoent_data* _getprotoent_data;
637# else
638 char* _getprotoent_buffer;
639 size_t _getprotoent_size;
640# endif
641# ifdef USE_GETPROTOENT_PTR
642 struct protoent* _getprotoent_ptr;
643# endif
644# ifdef USE_GETPROTOENT_ERRNO
645 int _getprotoent_errno;
646# endif
647#endif /* HAS_GETPROTOBYNAME_R */
648#ifdef HAS_GETPWNAM_R
649 struct passwd _getpwent_struct;
650 char* _getpwent_buffer;
651 size_t _getpwent_size;
652# ifdef USE_GETPWENT_PTR
653 struct passwd* _getpwent_ptr;
654# endif
655# ifdef USE_GETPWENT_FPTR
656 FILE* _getpwent_fptr;
657# endif
658#endif /* HAS_GETPWNAM_R */
659#ifdef HAS_GETSERVBYNAME_R
660 struct servent _getservent_struct;
661# if GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSD
662 struct servent_data* _getservent_data;
663# else
664 char* _getservent_buffer;
665 size_t _getservent_size;
666# endif
667# ifdef USE_GETSERVENT_PTR
668 struct servent* _getservent_ptr;
669# endif
670# ifdef USE_GETSERVENT_ERRNO
671 int _getservent_errno;
672# endif
673#endif /* HAS_GETSERVBYNAME_R */
674#ifdef HAS_GETSPNAM_R
675 struct spwd _getspent_struct;
676 char* _getspent_buffer;
677 size_t _getspent_size;
678# ifdef USE_GETSPENT_PTR
679 struct spwd* _getspent_ptr;
680# endif
681#endif /* HAS_GETSPNAM_R */
682#ifdef HAS_GMTIME_R
683 struct tm _gmtime_struct;
684#endif /* HAS_GMTIME_R */
685#ifdef HAS_LOCALTIME_R
686 struct tm _localtime_struct;
687#endif /* HAS_LOCALTIME_R */
688#ifdef HAS_RANDOM_R
689 struct random_data _random_struct;
690#endif /* HAS_RANDOM_R */
691#ifdef HAS_READDIR_R
692 struct dirent* _readdir_struct;
693 size_t _readdir_size;
694# if READDIR_R_PROTO == REENTRANT_PROTO_I_TSR
695 struct dirent* _readdir_ptr;
696# endif
697#endif /* HAS_READDIR_R */
698#ifdef HAS_READDIR64_R
699 struct dirent64* _readdir64_struct;
700 size_t _readdir64_size;
701# if READDIR64_R_PROTO == REENTRANT_PROTO_I_TSR
702 struct dirent64* _readdir64_ptr;
703# endif
704#endif /* HAS_READDIR64_R */
705#ifdef HAS_SETLOCALE_R
706 char* _setlocale_buffer;
707 size_t _setlocale_size;
708#endif /* HAS_SETLOCALE_R */
709#ifdef HAS_STRERROR_R
710 char* _strerror_buffer;
711 size_t _strerror_size;
712#endif /* HAS_STRERROR_R */
713#ifdef HAS_TTYNAME_R
714 char* _ttyname_buffer;
715 size_t _ttyname_size;
716#endif /* HAS_TTYNAME_R */
717
718} REENTR;
719
720/* The wrappers. */
721
722#ifdef HAS_ASCTIME_R
723# undef asctime
724# if !defined(asctime) && ASCTIME_R_PROTO == REENTRANT_PROTO_B_SB
725# define asctime(a) asctime_r(a, PL_reentrant_buffer->_asctime_buffer)
726# endif
727# if !defined(asctime) && ASCTIME_R_PROTO == REENTRANT_PROTO_B_SBI
728# define asctime(a) asctime_r(a, PL_reentrant_buffer->_asctime_buffer, PL_reentrant_buffer->_asctime_size)
729# endif
730# if !defined(asctime) && ASCTIME_R_PROTO == REENTRANT_PROTO_I_SB
731# define asctime(a) (((errno = asctime_r(a, PL_reentrant_buffer->_asctime_buffer))) == 0 ? PL_reentrant_buffer->_asctime_buffer : 0)
732# endif
733# if !defined(asctime) && ASCTIME_R_PROTO == REENTRANT_PROTO_I_SBI
734# define asctime(a) (((errno = asctime_r(a, PL_reentrant_buffer->_asctime_buffer, PL_reentrant_buffer->_asctime_size))) == 0 ? PL_reentrant_buffer->_asctime_buffer : 0)
735# endif
736#endif /* HAS_ASCTIME_R */
737
738#ifdef HAS_CRYPT_R
739# undef crypt
740# if !defined(crypt) && CRYPT_R_PROTO == REENTRANT_PROTO_B_CCS
741# define crypt(a, b) crypt_r(a, b, &PL_reentrant_buffer->_crypt_struct)
742# endif
743#endif /* HAS_CRYPT_R */
744
745#ifdef HAS_CTERMID_R
746# undef ctermid
747# if !defined(ctermid) && CTERMID_R_PROTO == REENTRANT_PROTO_B_B
748# define ctermid(a) ctermid_r(a)
749# endif
750#endif /* HAS_CTERMID_R */
751
752#ifdef HAS_CTIME_R
753# undef ctime
754# if !defined(ctime) && CTIME_R_PROTO == REENTRANT_PROTO_B_SB
755# define ctime(a) ctime_r(a, PL_reentrant_buffer->_ctime_buffer)
756# endif
757# if !defined(ctime) && CTIME_R_PROTO == REENTRANT_PROTO_B_SBI
758# define ctime(a) ctime_r(a, PL_reentrant_buffer->_ctime_buffer, PL_reentrant_buffer->_ctime_size)
759# endif
760# if !defined(ctime) && CTIME_R_PROTO == REENTRANT_PROTO_I_SB
761# define ctime(a) (((errno = ctime_r(a, PL_reentrant_buffer->_ctime_buffer))) == 0 ? PL_reentrant_buffer->_ctime_buffer : 0)
762# endif
763# if !defined(ctime) && CTIME_R_PROTO == REENTRANT_PROTO_I_SBI
764# define ctime(a) (((errno = ctime_r(a, PL_reentrant_buffer->_ctime_buffer, PL_reentrant_buffer->_ctime_size))) == 0 ? PL_reentrant_buffer->_ctime_buffer : 0)
765# endif
766#endif /* HAS_CTIME_R */
767
768#ifdef HAS_DRAND48_R
769# undef drand48
770# if !defined(drand48) && DRAND48_R_PROTO == REENTRANT_PROTO_I_ST
771# define drand48() (((errno = drand48_r(&PL_reentrant_buffer->_drand48_struct, &PL_reentrant_buffer->_drand48_double))) == 0 ? PL_reentrant_buffer->_drand48_double : 0)
772# endif
773#endif /* HAS_DRAND48_R */
774
775#ifdef HAS_ENDGRENT_R
776# undef endgrent
777# if !defined(endgrent) && ENDGRENT_R_PROTO == REENTRANT_PROTO_I_H
778# define endgrent() (((errno = endgrent_r(&PL_reentrant_buffer->_getgrent_fptr))) == 0 ? 1 : 0)
779# endif
780# if !defined(endgrent) && ENDGRENT_R_PROTO == REENTRANT_PROTO_V_H
781# define endgrent() endgrent_r(&PL_reentrant_buffer->_getgrent_fptr)
782# endif
783#endif /* HAS_ENDGRENT_R */
784
785#ifdef HAS_ENDHOSTENT_R
786# undef endhostent
787# if !defined(endhostent) && ENDHOSTENT_R_PROTO == REENTRANT_PROTO_I_S
788# define endhostent() (((errno = endhostent_r(&PL_reentrant_buffer->_gethostent_struct))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : 0)
789# endif
790# if !defined(endhostent) && ENDHOSTENT_R_PROTO == REENTRANT_PROTO_V_S
791# define endhostent() endhostent_r(&PL_reentrant_buffer->_gethostent_struct)
792# endif
793#endif /* HAS_ENDHOSTENT_R */
794
795#ifdef HAS_ENDNETENT_R
796# undef endnetent
797# if !defined(endnetent) && ENDNETENT_R_PROTO == REENTRANT_PROTO_I_S
798# define endnetent() (((errno = endnetent_r(&PL_reentrant_buffer->_getnetent_struct))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : 0)
799# endif
800# if !defined(endnetent) && ENDNETENT_R_PROTO == REENTRANT_PROTO_V_S
801# define endnetent() endnetent_r(&PL_reentrant_buffer->_getnetent_struct)
802# endif
803#endif /* HAS_ENDNETENT_R */
804
805#ifdef HAS_ENDPROTOENT_R
806# undef endprotoent
807# if !defined(endprotoent) && ENDPROTOENT_R_PROTO == REENTRANT_PROTO_I_S
808# define endprotoent() (((errno = endprotoent_r(&PL_reentrant_buffer->_getprotoent_struct))) == 0 ? &PL_reentrant_buffer->_getprotoent_struct : 0)
809# endif
810# if !defined(endprotoent) && ENDPROTOENT_R_PROTO == REENTRANT_PROTO_V_S
811# define endprotoent() endprotoent_r(&PL_reentrant_buffer->_getprotoent_struct)
812# endif
813#endif /* HAS_ENDPROTOENT_R */
814
815#ifdef HAS_ENDPWENT_R
816# undef endpwent
817# if !defined(endpwent) && ENDPWENT_R_PROTO == REENTRANT_PROTO_I_H
818# define endpwent() (((errno = endpwent_r(&PL_reentrant_buffer->_getpwent_fptr))) == 0 ? 1 : 0)
819# endif
820# if !defined(endpwent) && ENDPWENT_R_PROTO == REENTRANT_PROTO_V_H
821# define endpwent() endpwent_r(&PL_reentrant_buffer->_getpwent_fptr)
822# endif
823#endif /* HAS_ENDPWENT_R */
824
825#ifdef HAS_ENDSERVENT_R
826# undef endservent
827# if !defined(endservent) && ENDSERVENT_R_PROTO == REENTRANT_PROTO_I_S
828# define endservent() (((errno = endservent_r(&PL_reentrant_buffer->_getservent_struct))) == 0 ? &PL_reentrant_buffer->_getservent_struct : 0)
829# endif
830# if !defined(endservent) && ENDSERVENT_R_PROTO == REENTRANT_PROTO_V_S
831# define endservent() endservent_r(&PL_reentrant_buffer->_getservent_struct)
832# endif
833#endif /* HAS_ENDSERVENT_R */
834
835#ifdef HAS_GETGRENT_R
836# undef getgrent
837# if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBWR
edd309b7 838# define getgrent() (((errno = getgrent_r(&PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_ptr))) == 0 ? PL_reentrant_buffer->_getgrent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getgrent") : 0))
10bc17b6 839# endif
840# if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIR
edd309b7 841# define getgrent() (((errno = getgrent_r(&PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_ptr))) == 0 ? PL_reentrant_buffer->_getgrent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getgrent") : 0))
10bc17b6 842# endif
843# if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_S_SBW
edd309b7 844# define getgrent() (getgrent_r(&PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size) ? &PL_reentrant_buffer->_getgrent_struct : (errno == ERANGE ? Perl_reentrant_retry("getgrent") : 0))
10bc17b6 845# endif
846# if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_S_SBI
edd309b7 847# define getgrent() (getgrent_r(&PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size) ? &PL_reentrant_buffer->_getgrent_struct : (errno == ERANGE ? Perl_reentrant_retry("getgrent") : 0))
10bc17b6 848# endif
849# if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBI
edd309b7 850# define getgrent() (((errno = getgrent_r(&PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size))) == 0 ? &PL_reentrant_buffer->_getgrent_struct : (errno == ERANGE ? Perl_reentrant_retry("getgrent") : 0))
10bc17b6 851# endif
852# if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIH
edd309b7 853# define getgrent() (((errno = getgrent_r(&PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_fptr))) == 0 ? &PL_reentrant_buffer->_getgrent_struct : (errno == ERANGE ? Perl_reentrant_retry("getgrent") : 0))
10bc17b6 854# endif
855#endif /* HAS_GETGRENT_R */
856
857#ifdef HAS_GETGRGID_R
858# undef getgrgid
859# if !defined(getgrgid) && GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBWR
edd309b7 860# define getgrgid(a) (((errno = getgrgid_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_ptr))) == 0 ? PL_reentrant_buffer->_getgrent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getgrgid", a) : 0))
10bc17b6 861# endif
862# if !defined(getgrgid) && GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBIR
edd309b7 863# define getgrgid(a) (((errno = getgrgid_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_ptr))) == 0 ? PL_reentrant_buffer->_getgrent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getgrgid", a) : 0))
10bc17b6 864# endif
865# if !defined(getgrgid) && GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBI
edd309b7 866# define getgrgid(a) (((errno = getgrgid_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size))) == 0 ? &PL_reentrant_buffer->_getgrent_struct : (errno == ERANGE ? Perl_reentrant_retry("getgrgid", a) : 0))
10bc17b6 867# endif
868# if !defined(getgrgid) && GETGRGID_R_PROTO == REENTRANT_PROTO_S_TSBI
edd309b7 869# define getgrgid(a) (getgrgid_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size) ? &PL_reentrant_buffer->_getgrent_struct : (errno == ERANGE ? Perl_reentrant_retry("getgrgid", a) : 0))
10bc17b6 870# endif
871#endif /* HAS_GETGRGID_R */
872
873#ifdef HAS_GETGRNAM_R
874# undef getgrnam
875# if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR
edd309b7 876# define getgrnam(a) (((errno = getgrnam_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_ptr))) == 0 ? PL_reentrant_buffer->_getgrent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getgrnam", a) : 0))
10bc17b6 877# endif
878# if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR
edd309b7 879# define getgrnam(a) (((errno = getgrnam_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_ptr))) == 0 ? PL_reentrant_buffer->_getgrent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getgrnam", a) : 0))
10bc17b6 880# endif
881# if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_S_CBI
edd309b7 882# define getgrnam(a) (getgrnam_r(a, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size) ? PL_reentrant_buffer->_getgrent_buffer : (errno == ERANGE ? Perl_reentrant_retry("getgrnam", a) : 0))
10bc17b6 883# endif
884# if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBI
edd309b7 885# define getgrnam(a) (((errno = getgrnam_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size))) == 0 ? &PL_reentrant_buffer->_getgrent_struct : (errno == ERANGE ? Perl_reentrant_retry("getgrnam", a) : 0))
10bc17b6 886# endif
887# if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_S_CSBI
edd309b7 888# define getgrnam(a) (getgrnam_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size) ? &PL_reentrant_buffer->_getgrent_struct : (errno == ERANGE ? Perl_reentrant_retry("getgrnam", a) : 0))
10bc17b6 889# endif
890#endif /* HAS_GETGRNAM_R */
891
892#ifdef HAS_GETHOSTBYADDR_R
893# undef gethostbyaddr
894# if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CWISBWRE
edd309b7 895# define gethostbyaddr(a, b, c) (((errno = gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_ptr, &PL_reentrant_buffer->_gethostent_errno))) == 0 ? PL_reentrant_buffer->_gethostent_ptr : (errno == ERANGE ? Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
10bc17b6 896# endif
897# if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CWISBWIE
edd309b7 898# define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? &PL_reentrant_buffer->_gethostent_struct : (errno == ERANGE ? Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
10bc17b6 899# endif
900# if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CWISBIE
edd309b7 901# define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? &PL_reentrant_buffer->_gethostent_struct : (errno == ERANGE ? Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
10bc17b6 902# endif
903# if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_TWISBIE
edd309b7 904# define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? &PL_reentrant_buffer->_gethostent_struct : (errno == ERANGE ? Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
10bc17b6 905# endif
906# if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CIISBIE
edd309b7 907# define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? &PL_reentrant_buffer->_gethostent_struct : (errno == ERANGE ? Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
10bc17b6 908# endif
909# if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CSBIE
edd309b7 910# define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? 1 : (errno == ERANGE ? Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
10bc17b6 911# endif
912# if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_TSBIE
edd309b7 913# define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? 1 : (errno == ERANGE ? Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
10bc17b6 914# endif
915# if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CWISD
edd309b7 916# define gethostbyaddr(a, b, c) (((errno = gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, &PL_reentrant_buffer->_gethostent_data))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : (errno == ERANGE ? Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
10bc17b6 917# endif
918# if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CIISD
edd309b7 919# define gethostbyaddr(a, b, c) (((errno = gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, &PL_reentrant_buffer->_gethostent_data))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : (errno == ERANGE ? Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
10bc17b6 920# endif
921# if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CII
edd309b7 922# define gethostbyaddr(a, b, c) (((errno = gethostbyaddr_r(a, b, c))) == 0 ? 1 : (errno == ERANGE ? Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
10bc17b6 923# endif
924#endif /* HAS_GETHOSTBYADDR_R */
925
926#ifdef HAS_GETHOSTBYNAME_R
927# undef gethostbyname
928# if !defined(gethostbyname) && GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE
edd309b7 929# define gethostbyname(a) (((errno = gethostbyname_r(a, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_ptr, &PL_reentrant_buffer->_gethostent_errno))) == 0 ? PL_reentrant_buffer->_gethostent_ptr : (errno == ERANGE ? Perl_reentrant_retry("gethostbyname", a) : 0))
10bc17b6 930# endif
931# if !defined(gethostbyname) && GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBIE
edd309b7 932# define gethostbyname(a) (gethostbyname_r(a, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? &PL_reentrant_buffer->_gethostent_struct : (errno == ERANGE ? Perl_reentrant_retry("gethostbyname", a) : 0))
10bc17b6 933# endif
934# if !defined(gethostbyname) && GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
edd309b7 935# define gethostbyname(a) (((errno = gethostbyname_r(a, &PL_reentrant_buffer->_gethostent_struct, &PL_reentrant_buffer->_gethostent_data))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : (errno == ERANGE ? Perl_reentrant_retry("gethostbyname", a) : 0))
10bc17b6 936# endif
937#endif /* HAS_GETHOSTBYNAME_R */
938
939#ifdef HAS_GETHOSTENT_R
940# undef gethostent
941# if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBWRE
edd309b7 942# define gethostent() (((errno = gethostent_r(&PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_ptr, &PL_reentrant_buffer->_gethostent_errno))) == 0 ? PL_reentrant_buffer->_gethostent_ptr : (errno == ERANGE ? Perl_reentrant_retry("gethostent") : 0))
10bc17b6 943# endif
944# if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBIE
edd309b7 945# define gethostent() (((errno = gethostent_r(&PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : (errno == ERANGE ? Perl_reentrant_retry("gethostent") : 0))
10bc17b6 946# endif
947# if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_S_SBIE
edd309b7 948# define gethostent() (gethostent_r(&PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? &PL_reentrant_buffer->_gethostent_struct : (errno == ERANGE ? Perl_reentrant_retry("gethostent") : 0))
10bc17b6 949# endif
950# if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_S_SBI
edd309b7 951# define gethostent() (gethostent_r(&PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size) ? &PL_reentrant_buffer->_gethostent_struct : (errno == ERANGE ? Perl_reentrant_retry("gethostent") : 0))
10bc17b6 952# endif
953# if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBI
edd309b7 954# define gethostent() (((errno = gethostent_r(&PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : (errno == ERANGE ? Perl_reentrant_retry("gethostent") : 0))
10bc17b6 955# endif
956# if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SD
edd309b7 957# define gethostent() (((errno = gethostent_r(&PL_reentrant_buffer->_gethostent_struct, &PL_reentrant_buffer->_gethostent_data))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : (errno == ERANGE ? Perl_reentrant_retry("gethostent") : 0))
10bc17b6 958# endif
959#endif /* HAS_GETHOSTENT_R */
960
961#ifdef HAS_GETLOGIN_R
962# undef getlogin
963# if !defined(getlogin) && GETLOGIN_R_PROTO == REENTRANT_PROTO_I_BW
edd309b7 964# define getlogin() (((errno = getlogin_r(PL_reentrant_buffer->_getlogin_buffer, PL_reentrant_buffer->_getlogin_size))) == 0 ? PL_reentrant_buffer->_getlogin_buffer : (errno == ERANGE ? Perl_reentrant_retry("getlogin") : 0))
10bc17b6 965# endif
966# if !defined(getlogin) && GETLOGIN_R_PROTO == REENTRANT_PROTO_I_BI
edd309b7 967# define getlogin() (((errno = getlogin_r(PL_reentrant_buffer->_getlogin_buffer, PL_reentrant_buffer->_getlogin_size))) == 0 ? PL_reentrant_buffer->_getlogin_buffer : (errno == ERANGE ? Perl_reentrant_retry("getlogin") : 0))
10bc17b6 968# endif
969# if !defined(getlogin) && GETLOGIN_R_PROTO == REENTRANT_PROTO_B_BW
970# define getlogin() getlogin_r(PL_reentrant_buffer->_getlogin_buffer, PL_reentrant_buffer->_getlogin_size)
971# endif
972# if !defined(getlogin) && GETLOGIN_R_PROTO == REENTRANT_PROTO_B_BI
973# define getlogin() getlogin_r(PL_reentrant_buffer->_getlogin_buffer, PL_reentrant_buffer->_getlogin_size)
974# endif
975#endif /* HAS_GETLOGIN_R */
976
977#ifdef HAS_GETNETBYADDR_R
978# undef getnetbyaddr
979# if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_UISBWRE
edd309b7 980# define getnetbyaddr(a, b) (((errno = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size, &PL_reentrant_buffer->_getnetent_ptr, &PL_reentrant_buffer->_getnetent_errno))) == 0 ? PL_reentrant_buffer->_getnetent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
10bc17b6 981# endif
982# if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_LISBI
edd309b7 983# define getnetbyaddr(a, b) (((errno = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
10bc17b6 984# endif
985# if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_S_TISBI
edd309b7 986# define getnetbyaddr(a, b) (getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size) ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
10bc17b6 987# endif
988# if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_S_LISBI
edd309b7 989# define getnetbyaddr(a, b) (getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size) ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
10bc17b6 990# endif
991# if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_TISD
edd309b7 992# define getnetbyaddr(a, b) (((errno = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, &PL_reentrant_buffer->_getnetent_data))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
10bc17b6 993# endif
994# if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_LISD
edd309b7 995# define getnetbyaddr(a, b) (((errno = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, &PL_reentrant_buffer->_getnetent_data))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
10bc17b6 996# endif
997# if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_IISD
edd309b7 998# define getnetbyaddr(a, b) (((errno = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, &PL_reentrant_buffer->_getnetent_data))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
10bc17b6 999# endif
1000#endif /* HAS_GETNETBYADDR_R */
1001
1002#ifdef HAS_GETNETBYNAME_R
1003# undef getnetbyname
1004# if !defined(getnetbyname) && GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE
edd309b7 1005# define getnetbyname(a) (((errno = getnetbyname_r(a, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size, &PL_reentrant_buffer->_getnetent_ptr, &PL_reentrant_buffer->_getnetent_errno))) == 0 ? PL_reentrant_buffer->_getnetent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getnetbyname", a) : 0))
10bc17b6 1006# endif
1007# if !defined(getnetbyname) && GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBI
edd309b7 1008# define getnetbyname(a) (((errno = getnetbyname_r(a, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetbyname", a) : 0))
10bc17b6 1009# endif
1010# if !defined(getnetbyname) && GETNETBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBI
edd309b7 1011# define getnetbyname(a) (getnetbyname_r(a, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size) ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetbyname", a) : 0))
10bc17b6 1012# endif
1013# if !defined(getnetbyname) && GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
edd309b7 1014# define getnetbyname(a) (((errno = getnetbyname_r(a, &PL_reentrant_buffer->_getnetent_struct, &PL_reentrant_buffer->_getnetent_data))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetbyname", a) : 0))
10bc17b6 1015# endif
1016#endif /* HAS_GETNETBYNAME_R */
1017
1018#ifdef HAS_GETNETENT_R
1019# undef getnetent
1020# if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBWRE
edd309b7 1021# define getnetent() (((errno = getnetent_r(&PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size, &PL_reentrant_buffer->_getnetent_ptr, &PL_reentrant_buffer->_getnetent_errno))) == 0 ? PL_reentrant_buffer->_getnetent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getnetent") : 0))
10bc17b6 1022# endif
1023# if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBIE
edd309b7 1024# define getnetent() (((errno = getnetent_r(&PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size, &PL_reentrant_buffer->_getnetent_errno))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetent") : 0))
10bc17b6 1025# endif
1026# if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_S_SBIE
edd309b7 1027# define getnetent() (getnetent_r(&PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size, &PL_reentrant_buffer->_getnetent_errno) ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetent") : 0))
10bc17b6 1028# endif
1029# if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_S_SBI
edd309b7 1030# define getnetent() (getnetent_r(&PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size) ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetent") : 0))
10bc17b6 1031# endif
1032# if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBI
edd309b7 1033# define getnetent() (((errno = getnetent_r(&PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetent") : 0))
10bc17b6 1034# endif
1035# if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_I_SD
edd309b7 1036# define getnetent() (((errno = getnetent_r(&PL_reentrant_buffer->_getnetent_struct, &PL_reentrant_buffer->_getnetent_data))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : (errno == ERANGE ? Perl_reentrant_retry("getnetent") : 0))
10bc17b6 1037# endif
1038#endif /* HAS_GETNETENT_R */
1039
1040#ifdef HAS_GETPROTOBYNAME_R
1041# undef getprotobyname
1042# if !defined(getprotobyname) && GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWR
edd309b7 1043# define getprotobyname(a) (((errno = getprotobyname_r(a, &PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size, &PL_reentrant_buffer->_getprotoent_ptr))) == 0 ? PL_reentrant_buffer->_getprotoent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getprotobyname", a) : 0))
10bc17b6 1044# endif
1045# if !defined(getprotobyname) && GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBI
edd309b7 1046# define getprotobyname(a) (getprotobyname_r(a, &PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size) ? &PL_reentrant_buffer->_getprotoent_struct : (errno == ERANGE ? Perl_reentrant_retry("getprotobyname", a) : 0))
10bc17b6 1047# endif
1048# if !defined(getprotobyname) && GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
edd309b7 1049# define getprotobyname(a) (((errno = getprotobyname_r(a, &PL_reentrant_buffer->_getprotoent_struct, &PL_reentrant_buffer->_getprotoent_data))) == 0 ? &PL_reentrant_buffer->_getprotoent_struct : (errno == ERANGE ? Perl_reentrant_retry("getprotobyname", a) : 0))
10bc17b6 1050# endif
1051#endif /* HAS_GETPROTOBYNAME_R */
1052
1053#ifdef HAS_GETPROTOBYNUMBER_R
1054# undef getprotobynumber
1055# if !defined(getprotobynumber) && GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_I_ISBWR
edd309b7 1056# define getprotobynumber(a) (((errno = getprotobynumber_r(a, &PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size, &PL_reentrant_buffer->_getprotoent_ptr))) == 0 ? PL_reentrant_buffer->_getprotoent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getprotobynumber", a) : 0))
10bc17b6 1057# endif
1058# if !defined(getprotobynumber) && GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_S_ISBI
edd309b7 1059# define getprotobynumber(a) (getprotobynumber_r(a, &PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size) ? &PL_reentrant_buffer->_getprotoent_struct : (errno == ERANGE ? Perl_reentrant_retry("getprotobynumber", a) : 0))
10bc17b6 1060# endif
1061# if !defined(getprotobynumber) && GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_I_ISD
edd309b7 1062# define getprotobynumber(a) (((errno = getprotobynumber_r(a, &PL_reentrant_buffer->_getprotoent_struct, &PL_reentrant_buffer->_getprotoent_data))) == 0 ? &PL_reentrant_buffer->_getprotoent_struct : (errno == ERANGE ? Perl_reentrant_retry("getprotobynumber", a) : 0))
10bc17b6 1063# endif
1064#endif /* HAS_GETPROTOBYNUMBER_R */
1065
1066#ifdef HAS_GETPROTOENT_R
1067# undef getprotoent
1068# if !defined(getprotoent) && GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SBWR
edd309b7 1069# define getprotoent() (((errno = getprotoent_r(&PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size, &PL_reentrant_buffer->_getprotoent_ptr))) == 0 ? PL_reentrant_buffer->_getprotoent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getprotoent") : 0))
10bc17b6 1070# endif
1071# if !defined(getprotoent) && GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SBI
edd309b7 1072# define getprotoent() (((errno = getprotoent_r(&PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size))) == 0 ? &PL_reentrant_buffer->_getprotoent_struct : (errno == ERANGE ? Perl_reentrant_retry("getprotoent") : 0))
10bc17b6 1073# endif
1074# if !defined(getprotoent) && GETPROTOENT_R_PROTO == REENTRANT_PROTO_S_SBI
edd309b7 1075# define getprotoent() (getprotoent_r(&PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size) ? &PL_reentrant_buffer->_getprotoent_struct : (errno == ERANGE ? Perl_reentrant_retry("getprotoent") : 0))
10bc17b6 1076# endif
1077# if !defined(getprotoent) && GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SD
edd309b7 1078# define getprotoent() (((errno = getprotoent_r(&PL_reentrant_buffer->_getprotoent_struct, &PL_reentrant_buffer->_getprotoent_data))) == 0 ? &PL_reentrant_buffer->_getprotoent_struct : (errno == ERANGE ? Perl_reentrant_retry("getprotoent") : 0))
10bc17b6 1079# endif
1080#endif /* HAS_GETPROTOENT_R */
1081
1082#ifdef HAS_GETPWENT_R
1083# undef getpwent
1084# if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBWR
edd309b7 1085# define getpwent() (((errno = getpwent_r(&PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_ptr))) == 0 ? PL_reentrant_buffer->_getpwent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getpwent") : 0))
10bc17b6 1086# endif
1087# if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIR
edd309b7 1088# define getpwent() (((errno = getpwent_r(&PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_ptr))) == 0 ? PL_reentrant_buffer->_getpwent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getpwent") : 0))
10bc17b6 1089# endif
1090# if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_S_SBW
edd309b7 1091# define getpwent() (getpwent_r(&PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size) ? &PL_reentrant_buffer->_getpwent_struct : (errno == ERANGE ? Perl_reentrant_retry("getpwent") : 0))
10bc17b6 1092# endif
1093# if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_S_SBI
edd309b7 1094# define getpwent() (getpwent_r(&PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size) ? &PL_reentrant_buffer->_getpwent_struct : (errno == ERANGE ? Perl_reentrant_retry("getpwent") : 0))
10bc17b6 1095# endif
1096# if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBI
edd309b7 1097# define getpwent() (((errno = getpwent_r(&PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size))) == 0 ? &PL_reentrant_buffer->_getpwent_struct : (errno == ERANGE ? Perl_reentrant_retry("getpwent") : 0))
10bc17b6 1098# endif
1099# if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIH
edd309b7 1100# define getpwent() (((errno = getpwent_r(&PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_fptr))) == 0 ? &PL_reentrant_buffer->_getpwent_struct : (errno == ERANGE ? Perl_reentrant_retry("getpwent") : 0))
10bc17b6 1101# endif
1102#endif /* HAS_GETPWENT_R */
1103
1104#ifdef HAS_GETPWNAM_R
1105# undef getpwnam
1106# if !defined(getpwnam) && GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR
edd309b7 1107# define getpwnam(a) (((errno = getpwnam_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_ptr))) == 0 ? PL_reentrant_buffer->_getpwent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getpwnam", a) : 0))
10bc17b6 1108# endif
1109# if !defined(getpwnam) && GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR
edd309b7 1110# define getpwnam(a) (((errno = getpwnam_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_ptr))) == 0 ? PL_reentrant_buffer->_getpwent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getpwnam", a) : 0))
10bc17b6 1111# endif
1112# if !defined(getpwnam) && GETPWNAM_R_PROTO == REENTRANT_PROTO_S_CSBI
edd309b7 1113# define getpwnam(a) (getpwnam_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size) ? &PL_reentrant_buffer->_getpwent_struct : (errno == ERANGE ? Perl_reentrant_retry("getpwnam", a) : 0))
10bc17b6 1114# endif
1115# if !defined(getpwnam) && GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBI
edd309b7 1116# define getpwnam(a) (((errno = getpwnam_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size))) == 0 ? &PL_reentrant_buffer->_getpwent_struct : (errno == ERANGE ? Perl_reentrant_retry("getpwnam", a) : 0))
10bc17b6 1117# endif
1118#endif /* HAS_GETPWNAM_R */
1119
1120#ifdef HAS_GETPWUID_R
1121# undef getpwuid
1122# if !defined(getpwuid) && GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBWR
edd309b7 1123# define getpwuid(a) (((errno = getpwuid_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_ptr))) == 0 ? PL_reentrant_buffer->_getpwent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getpwuid", a) : 0))
10bc17b6 1124# endif
1125# if !defined(getpwuid) && GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBIR
edd309b7 1126# define getpwuid(a) (((errno = getpwuid_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_ptr))) == 0 ? PL_reentrant_buffer->_getpwent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getpwuid", a) : 0))
10bc17b6 1127# endif
1128# if !defined(getpwuid) && GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBI
edd309b7 1129# define getpwuid(a) (((errno = getpwuid_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size))) == 0 ? &PL_reentrant_buffer->_getpwent_struct : (errno == ERANGE ? Perl_reentrant_retry("getpwuid", a) : 0))
10bc17b6 1130# endif
1131# if !defined(getpwuid) && GETPWUID_R_PROTO == REENTRANT_PROTO_S_TSBI
edd309b7 1132# define getpwuid(a) (getpwuid_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size) ? &PL_reentrant_buffer->_getpwent_struct : (errno == ERANGE ? Perl_reentrant_retry("getpwuid", a) : 0))
10bc17b6 1133# endif
1134#endif /* HAS_GETPWUID_R */
1135
1136#ifdef HAS_GETSERVBYNAME_R
1137# undef getservbyname
1138# if !defined(getservbyname) && GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSBWR
edd309b7 1139# define getservbyname(a, b) (((errno = getservbyname_r(a, b, &PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size, &PL_reentrant_buffer->_getservent_ptr))) == 0 ? PL_reentrant_buffer->_getservent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getservbyname", a, b) : 0))
10bc17b6 1140# endif
1141# if !defined(getservbyname) && GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_S_CCSBI
edd309b7 1142# define getservbyname(a, b) (getservbyname_r(a, b, &PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size) ? &PL_reentrant_buffer->_getservent_struct : (errno == ERANGE ? Perl_reentrant_retry("getservbyname", a, b) : 0))
10bc17b6 1143# endif
1144# if !defined(getservbyname) && GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSD
edd309b7 1145# define getservbyname(a, b) (((errno = getservbyname_r(a, b, &PL_reentrant_buffer->_getservent_struct, &PL_reentrant_buffer->_getservent_data))) == 0 ? &PL_reentrant_buffer->_getservent_struct : (errno == ERANGE ? Perl_reentrant_retry("getservbyname", a, b) : 0))
10bc17b6 1146# endif
1147#endif /* HAS_GETSERVBYNAME_R */
1148
1149#ifdef HAS_GETSERVBYPORT_R
1150# undef getservbyport
1151# if !defined(getservbyport) && GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_I_ICSBWR
edd309b7 1152# define getservbyport(a, b) (((errno = getservbyport_r(a, b, &PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size, &PL_reentrant_buffer->_getservent_ptr))) == 0 ? PL_reentrant_buffer->_getservent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getservbyport", a, b) : 0))
10bc17b6 1153# endif
1154# if !defined(getservbyport) && GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_S_ICSBI
edd309b7 1155# define getservbyport(a, b) (getservbyport_r(a, b, &PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size) ? &PL_reentrant_buffer->_getservent_struct : (errno == ERANGE ? Perl_reentrant_retry("getservbyport", a, b) : 0))
10bc17b6 1156# endif
1157# if !defined(getservbyport) && GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_I_ICSD
edd309b7 1158# define getservbyport(a, b) (((errno = getservbyport_r(a, b, &PL_reentrant_buffer->_getservent_struct, &PL_reentrant_buffer->_getservent_data))) == 0 ? &PL_reentrant_buffer->_getservent_struct : (errno == ERANGE ? Perl_reentrant_retry("getservbyport", a, b) : 0))
10bc17b6 1159# endif
1160#endif /* HAS_GETSERVBYPORT_R */
1161
1162#ifdef HAS_GETSERVENT_R
1163# undef getservent
1164# if !defined(getservent) && GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SBWR
edd309b7 1165# define getservent() (((errno = getservent_r(&PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size, &PL_reentrant_buffer->_getservent_ptr))) == 0 ? PL_reentrant_buffer->_getservent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getservent") : 0))
10bc17b6 1166# endif
1167# if !defined(getservent) && GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SBI
edd309b7 1168# define getservent() (((errno = getservent_r(&PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size))) == 0 ? &PL_reentrant_buffer->_getservent_struct : (errno == ERANGE ? Perl_reentrant_retry("getservent") : 0))
10bc17b6 1169# endif
1170# if !defined(getservent) && GETSERVENT_R_PROTO == REENTRANT_PROTO_S_SBI
edd309b7 1171# define getservent() (getservent_r(&PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size) ? &PL_reentrant_buffer->_getservent_struct : (errno == ERANGE ? Perl_reentrant_retry("getservent") : 0))
10bc17b6 1172# endif
1173# if !defined(getservent) && GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SD
edd309b7 1174# define getservent() (((errno = getservent_r(&PL_reentrant_buffer->_getservent_struct, &PL_reentrant_buffer->_getservent_data))) == 0 ? &PL_reentrant_buffer->_getservent_struct : (errno == ERANGE ? Perl_reentrant_retry("getservent") : 0))
10bc17b6 1175# endif
1176#endif /* HAS_GETSERVENT_R */
1177
1178#ifdef HAS_GETSPNAM_R
1179# undef getspnam
1180# if !defined(getspnam) && GETSPNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR
edd309b7 1181# define getspnam(a) (((errno = getspnam_r(a, &PL_reentrant_buffer->_getspent_struct, PL_reentrant_buffer->_getspent_buffer, PL_reentrant_buffer->_getspent_size, &PL_reentrant_buffer->_getspent_ptr))) == 0 ? PL_reentrant_buffer->_getspent_ptr : (errno == ERANGE ? Perl_reentrant_retry("getspnam", a) : 0))
10bc17b6 1182# endif
1183# if !defined(getspnam) && GETSPNAM_R_PROTO == REENTRANT_PROTO_S_CSBI
edd309b7 1184# define getspnam(a) (getspnam_r(a, &PL_reentrant_buffer->_getspent_struct, PL_reentrant_buffer->_getspent_buffer, PL_reentrant_buffer->_getspent_size) ? &PL_reentrant_buffer->_getspent_struct : (errno == ERANGE ? Perl_reentrant_retry("getspnam", a) : 0))
10bc17b6 1185# endif
1186#endif /* HAS_GETSPNAM_R */
1187
1188#ifdef HAS_GMTIME_R
1189# undef gmtime
1190# if !defined(gmtime) && GMTIME_R_PROTO == REENTRANT_PROTO_S_TS
1191# define gmtime(a) (gmtime_r(a, &PL_reentrant_buffer->_gmtime_struct) ? &PL_reentrant_buffer->_gmtime_struct : 0)
1192# endif
1193# if !defined(gmtime) && GMTIME_R_PROTO == REENTRANT_PROTO_I_TS
1194# define gmtime(a) (((errno = gmtime_r(a, &PL_reentrant_buffer->_gmtime_struct))) == 0 ? &PL_reentrant_buffer->_gmtime_struct : 0)
1195# endif
1196#endif /* HAS_GMTIME_R */
1197
1198#ifdef HAS_LOCALTIME_R
1199# undef localtime
1200# if !defined(localtime) && LOCALTIME_R_PROTO == REENTRANT_PROTO_S_TS
1201# define localtime(a) (localtime_r(a, &PL_reentrant_buffer->_localtime_struct) ? &PL_reentrant_buffer->_localtime_struct : 0)
1202# endif
1203# if !defined(localtime) && LOCALTIME_R_PROTO == REENTRANT_PROTO_I_TS
1204# define localtime(a) (((errno = localtime_r(a, &PL_reentrant_buffer->_localtime_struct))) == 0 ? &PL_reentrant_buffer->_localtime_struct : 0)
1205# endif
1206#endif /* HAS_LOCALTIME_R */
1207
1208#ifdef HAS_RANDOM_R
1209# undef random
1210# if !defined(random) && RANDOM_R_PROTO == REENTRANT_PROTO_I_TS
1211# define random() (((errno = random_r(T, &PL_reentrant_buffer->_random_struct))) == 0 ? &PL_reentrant_buffer->_random_struct : 0)
1212# endif
1213#endif /* HAS_RANDOM_R */
1214
1215#ifdef HAS_READDIR_R
1216# undef readdir
1217# if !defined(readdir) && READDIR_R_PROTO == REENTRANT_PROTO_I_TSR
1218# define readdir(a) (((errno = readdir_r(a, PL_reentrant_buffer->_readdir_struct, &PL_reentrant_buffer->_readdir_ptr))) == 0 ? PL_reentrant_buffer->_readdir_ptr : 0)
1219# endif
1220# if !defined(readdir) && READDIR_R_PROTO == REENTRANT_PROTO_I_TS
1221# define readdir(a) (((errno = readdir_r(a, PL_reentrant_buffer->_readdir_struct))) == 0 ? PL_reentrant_buffer->_readdir_struct : 0)
1222# endif
1223#endif /* HAS_READDIR_R */
1224
1225#ifdef HAS_READDIR64_R
1226# undef readdir64
1227# if !defined(readdir64) && READDIR64_R_PROTO == REENTRANT_PROTO_I_TSR
1228# define readdir64(a) (((errno = readdir64_r(a, PL_reentrant_buffer->_readdir64_struct, &PL_reentrant_buffer->_readdir64_ptr))) == 0 ? PL_reentrant_buffer->_readdir64_ptr : 0)
1229# endif
1230# if !defined(readdir64) && READDIR64_R_PROTO == REENTRANT_PROTO_I_TS
1231# define readdir64(a) (((errno = readdir64_r(a, PL_reentrant_buffer->_readdir64_struct))) == 0 ? PL_reentrant_buffer->_readdir64_struct : 0)
1232# endif
1233#endif /* HAS_READDIR64_R */
1234
1235#ifdef HAS_SETGRENT_R
1236# undef setgrent
1237# if !defined(setgrent) && SETGRENT_R_PROTO == REENTRANT_PROTO_I_H
1238# define setgrent() (((errno = setgrent_r(&PL_reentrant_buffer->_getgrent_fptr))) == 0 ? 1 : 0)
1239# endif
1240# if !defined(setgrent) && SETGRENT_R_PROTO == REENTRANT_PROTO_V_H
1241# define setgrent() setgrent_r(&PL_reentrant_buffer->_getgrent_fptr)
1242# endif
1243#endif /* HAS_SETGRENT_R */
1244
1245#ifdef HAS_SETHOSTENT_R
1246# undef sethostent
1247# if !defined(sethostent) && SETHOSTENT_R_PROTO == REENTRANT_PROTO_I_ID
1248# define sethostent(a) (((errno = sethostent_r(a, &PL_reentrant_buffer->_gethostent_data))) == 0 ? 1 : 0)
1249# endif
1250# if !defined(sethostent) && SETHOSTENT_R_PROTO == REENTRANT_PROTO_V_ID
1251# define sethostent(a) sethostent_r(a, &PL_reentrant_buffer->_gethostent_data)
1252# endif
1253#endif /* HAS_SETHOSTENT_R */
1254
1255#ifdef HAS_SETLOCALE_R
1256# undef setlocale
1257# if !defined(setlocale) && SETLOCALE_R_PROTO == REENTRANT_PROTO_I_ICBI
1258# define setlocale(a, b) (((errno = setlocale_r(a, b, PL_reentrant_buffer->_setlocale_buffer, PL_reentrant_buffer->_setlocale_size))) == 0 ? PL_reentrant_buffer->_setlocale_buffer : 0)
1259# endif
1260#endif /* HAS_SETLOCALE_R */
1261
1262#ifdef HAS_SETNETENT_R
1263# undef setnetent
1264# if !defined(setnetent) && SETNETENT_R_PROTO == REENTRANT_PROTO_I_ID
1265# define setnetent(a) (((errno = setnetent_r(a, &PL_reentrant_buffer->_getnetent_data))) == 0 ? 1 : 0)
1266# endif
1267# if !defined(setnetent) && SETNETENT_R_PROTO == REENTRANT_PROTO_V_ID
1268# define setnetent(a) setnetent_r(a, &PL_reentrant_buffer->_getnetent_data)
1269# endif
1270#endif /* HAS_SETNETENT_R */
1271
1272#ifdef HAS_SETPROTOENT_R
1273# undef setprotoent
1274# if !defined(setprotoent) && SETPROTOENT_R_PROTO == REENTRANT_PROTO_I_ID
1275# define setprotoent(a) (((errno = setprotoent_r(a, &PL_reentrant_buffer->_getprotoent_data))) == 0 ? 1 : 0)
1276# endif
1277# if !defined(setprotoent) && SETPROTOENT_R_PROTO == REENTRANT_PROTO_V_ID
1278# define setprotoent(a) setprotoent_r(a, &PL_reentrant_buffer->_getprotoent_data)
1279# endif
1280#endif /* HAS_SETPROTOENT_R */
1281
1282#ifdef HAS_SETPWENT_R
1283# undef setpwent
1284# if !defined(setpwent) && SETPWENT_R_PROTO == REENTRANT_PROTO_I_H
1285# define setpwent() (((errno = setpwent_r(&PL_reentrant_buffer->_getpwent_fptr))) == 0 ? 1 : 0)
1286# endif
1287# if !defined(setpwent) && SETPWENT_R_PROTO == REENTRANT_PROTO_V_H
1288# define setpwent() setpwent_r(&PL_reentrant_buffer->_getpwent_fptr)
1289# endif
1290#endif /* HAS_SETPWENT_R */
1291
1292#ifdef HAS_SETSERVENT_R
1293# undef setservent
1294# if !defined(setservent) && SETSERVENT_R_PROTO == REENTRANT_PROTO_I_ID
1295# define setservent(a) (((errno = setservent_r(a, &PL_reentrant_buffer->_getservent_data))) == 0 ? 1 : 0)
1296# endif
1297# if !defined(setservent) && SETSERVENT_R_PROTO == REENTRANT_PROTO_V_ID
1298# define setservent(a) setservent_r(a, &PL_reentrant_buffer->_getservent_data)
1299# endif
1300#endif /* HAS_SETSERVENT_R */
1301
1302#ifdef HAS_SRAND48_R
1303# undef srand48
1304# if !defined(srand48) && SRAND48_R_PROTO == REENTRANT_PROTO_I_LS
1305# define srand48(a) (((errno = srand48_r(a, &PL_reentrant_buffer->_drand48_struct))) == 0 ? &PL_reentrant_buffer->_drand48_struct : 0)
1306# endif
1307#endif /* HAS_SRAND48_R */
1308
1309#ifdef HAS_SRANDOM_R
1310# undef srandom
1311# if !defined(srandom) && SRANDOM_R_PROTO == REENTRANT_PROTO_I_TS
1312# define srandom(a) (((errno = srandom_r(a, &PL_reentrant_buffer->_srandom_struct))) == 0 ? &PL_reentrant_buffer->_srandom_struct : 0)
1313# endif
1314#endif /* HAS_SRANDOM_R */
1315
1316#ifdef HAS_STRERROR_R
1317# undef strerror
1318# if !defined(strerror) && STRERROR_R_PROTO == REENTRANT_PROTO_I_IBW
1319# define strerror(a) (((errno = strerror_r(a, PL_reentrant_buffer->_strerror_buffer, PL_reentrant_buffer->_strerror_size))) == 0 ? PL_reentrant_buffer->_strerror_buffer : 0)
1320# endif
1321# if !defined(strerror) && STRERROR_R_PROTO == REENTRANT_PROTO_I_IBI
1322# define strerror(a) (((errno = strerror_r(a, PL_reentrant_buffer->_strerror_buffer, PL_reentrant_buffer->_strerror_size))) == 0 ? PL_reentrant_buffer->_strerror_buffer : 0)
1323# endif
1324# if !defined(strerror) && STRERROR_R_PROTO == REENTRANT_PROTO_B_IBW
1325# define strerror(a) strerror_r(a, PL_reentrant_buffer->_strerror_buffer, PL_reentrant_buffer->_strerror_size)
1326# endif
1327#endif /* HAS_STRERROR_R */
1328
1329#ifdef HAS_TMPNAM_R
1330# undef tmpnam
1331# if !defined(tmpnam) && TMPNAM_R_PROTO == REENTRANT_PROTO_B_B
1332# define tmpnam(a) tmpnam_r(a)
1333# endif
1334#endif /* HAS_TMPNAM_R */
1335
1336#ifdef HAS_TTYNAME_R
1337# undef ttyname
1338# if !defined(ttyname) && TTYNAME_R_PROTO == REENTRANT_PROTO_I_IBW
1339# define ttyname(a) (((errno = ttyname_r(a, PL_reentrant_buffer->_ttyname_buffer, PL_reentrant_buffer->_ttyname_size))) == 0 ? PL_reentrant_buffer->_ttyname_buffer : 0)
1340# endif
1341# if !defined(ttyname) && TTYNAME_R_PROTO == REENTRANT_PROTO_I_IBI
1342# define ttyname(a) (((errno = ttyname_r(a, PL_reentrant_buffer->_ttyname_buffer, PL_reentrant_buffer->_ttyname_size))) == 0 ? PL_reentrant_buffer->_ttyname_buffer : 0)
1343# endif
1344# if !defined(ttyname) && TTYNAME_R_PROTO == REENTRANT_PROTO_B_IBI
1345# define ttyname(a) ttyname_r(a, PL_reentrant_buffer->_ttyname_buffer, PL_reentrant_buffer->_ttyname_size)
1346# endif
1347#endif /* HAS_TTYNAME_R */
1348
1349
1350#endif /* USE_REENTRANT_API */
1351
1352#endif
1353