--- ray/src/hd/rhdisp.c 1999/01/03 17:49:11 3.39 +++ ray/src/hd/rhdisp.c 1999/07/29 15:38:40 3.42 @@ -1,4 +1,4 @@ -/* Copyright (c) 1998 Silicon Graphics, Inc. */ +/* Copyright (c) 1999 Silicon Graphics, Inc. */ #ifndef lint static char SCCSid[] = "$SunId$ SGI"; @@ -22,6 +22,12 @@ static char SCCSid[] = "$SunId$ SGI"; #define FSIZDEF 0.125 /* default focus frame size */ #endif +#ifdef linux +#define fbufcnt(f) ((f)->_IO_read_end - (f)->_IO_read_ptr) +#else +#define fbufcnt(f) ((f)->_cnt) +#endif + HOLO *hdlist[HDMAX+1]; /* global holodeck list */ char *hdgfn[HDMAX]; /* holodeck section geometry list */ @@ -40,7 +46,6 @@ char *progname; /* global argv[0] */ FILE *sstdin, *sstdout; /* server's standard input and output */ #ifdef DEBUG -#include extern time_t time(); static time_t tmodesw; static time_t timm, tadd; @@ -155,10 +160,12 @@ disp_wait() /* wait for more input */ int n; register int i; /* see if we can avoid select call */ + if (hdlist[0] == NULL) + return(RDY_SRV); /* initialize first */ flgs = 0; /* flag what's ready already */ - if (imm_mode || stdin->_cnt > 0) + if (imm_mode || fbufcnt(stdin) > 0) flgs |= RDY_SRV; - if (sstdin != NULL && sstdin->_cnt > 0) + if (sstdin != NULL && fbufcnt(sstdin) > 0) flgs |= RDY_SIN; if (odev.inpready) flgs |= RDY_DEV; @@ -269,7 +276,8 @@ register VIEW *v; static VIEW viewhist[VIEWHISTLEN]; static unsigned nhist; VIEW *dv; - int i, res[2], *slist; + int i, res[2]; + int2 *slist; char *err; /* restore previous view? */ if (v == NULL) {