diff --git a/src/configure.in b/src/configure.in index bfb05968ec2e21bb796129568593464213d8da67..e81c3cc5f28358943f0fdd1a6ba17fabbffbc29c 100644 --- a/src/configure.in +++ b/src/configure.in @@ -1,4 +1,4 @@ -AC_REVISION("$Id: configure.in,v 1.84 1997/04/16 03:09:10 hubbe Exp $") +AC_REVISION("$Id: configure.in,v 1.85 1997/04/16 23:04:51 hubbe Exp $") AC_INIT(interpret.c) AC_CONFIG_HEADER(machine.h) @@ -668,6 +668,7 @@ AC_CHECK_FUNCS( dlsym \ dld_link \ dld_get_func \ + pipe \ ) if test $ac_cv_func_crypt$ac_cv_func__crypt = nono ; then diff --git a/src/fd_control.c b/src/fd_control.c index 52e3b87152a20c43b90b4821d2f0ab132492f3d6..c5faa6f1a20b2d7c7d0d7c08c246756bac56dbc5 100644 --- a/src/fd_control.c +++ b/src/fd_control.c @@ -92,6 +92,9 @@ int set_close_on_exec(int fd, int which) #ifdef TESTING #include <signal.h> +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif /* a part of the autoconf thingy */ RETSIGTYPE sigalrm_handler0(int tmp) { exit(0); } @@ -99,15 +102,23 @@ RETSIGTYPE sigalrm_handler1(int tmp) { exit(1); } main() { + int tmp[2]; char foo[1000]; - set_nonblocking(0,1); + + tmp[0]=0; + tmp[1]=0; +#ifdef HAVE_PIPE + pipe(tmp); +#endif + + set_nonblocking(tmp[0],1); signal(SIGALRM, sigalrm_handler1); alarm(1); - read(0,foo,999); - set_nonblocking(0,0); + read(tmp[0],foo,999); + set_nonblocking(tmp[0],0); signal(SIGALRM, sigalrm_handler0); alarm(1); - read(0,foo,999); + read(tmp[0],foo,999); exit(1); } #endif