size_t _${f}_size;
EOF
push @size, <<EOF;
- PL_reentrant_buffer->_${f}_size = 256; /* Make something up. */
+ PL_reentrant_buffer->_${f}_size = REENTRANTSMALLSIZE;
EOF
pushinitfree $f;
pushssif $endif;
EOF
my $sc = $g eq 'getgrent' ?
'_SC_GETGR_R_SIZE_MAX' : '_SC_GETPW_R_SIZE_MAX';
+ my $sz = $g eq 'getgrent' ?
+ '_getgrent_size' : '_getpwent_size';
push @size, <<EOF;
# if defined(HAS_SYSCONF) && defined($sc) && !defined(__GLIBC__)
PL_reentrant_buffer->_${g}_size = sysconf($sc);
+ if (PL_reentrant_buffer->$sz == -1)
+ PL_reentrant_buffer->$sz = REENTRANTUSUALSIZE;
# else
# if defined(__osf__) && defined(__alpha) && defined(SIABUFSIZ)
PL_reentrant_buffer->_${g}_size = SIABUFSIZ;
# ifdef __sgi
PL_reentrant_buffer->_${g}_size = BUFSIZ;
# else
- PL_reentrant_buffer->_${g}_size = 256;
+ PL_reentrant_buffer->_${g}_size = REENTRANTUSUALSIZE;
# endif
# endif
# endif
EOF
push @size, <<EOF;
#if !($D)
- PL_reentrant_buffer->_${g}_size = 2048; /* Any better ideas? */
+ PL_reentrant_buffer->_${g}_size = REENTRANTUSUALSIZE;
#endif
EOF
push @init, <<EOF;
void
Perl_reentrant_size(pTHX) {
#ifdef USE_REENTRANT_API
+#define REENTRANTSMALLSIZE 256 /* Make something up. */
+#define REENTRANTUSUALSIZE 4096 /* Make something up. */
@size
#endif /* USE_REENTRANT_API */
}
dTHX;
void *retptr = NULL;
#ifdef USE_REENTRANT_API
- void *p0, *p1;
+# if defined(USE_GETHOSTENT_BUFFER) || defined(USE_GETGRENT_BUFFER) || defined(USE_GETNETENT_BUFFER) || defined(USE_GETPWENT_BUFFER) || defined(USE_GETPROTOENT_BUFFER) || defined(USE_GETSERVENT_BUFFER)
+ void *p0;
+# endif
+# if defined(USE_GETSERVENT_BUFFER)
+ void *p1;
+# endif
+# if defined(USE_GETHOSTENT_BUFFER)
size_t asize;
+# endif
+# if defined(USE_GETHOSTENT_BUFFER) || defined(USE_GETNETENT_BUFFER) || defined(USE_GETPROTOENT_BUFFER) || defined(USE_GETSERVENT_BUFFER)
int anint;
+# endif
va_list ap;
va_start(ap, f);