>    
>   -    if ((*new)->filedes < 0 && (*new)->filehand == NULL) {
>   +    if ((*new)->filedes < 0 || (*new)->filehand == NULL) {
>           (*new)->filedes = -1;
>           (*new)->eof_hit = 1;
>            return errno;

This is wrong.  This says that we NEVER open the file correctly.  This is
because we only ever set one of the two options, either the filedes or the
filehand, NEVER both.  We are checking for the error condition, not the
successful case.  Either the filedes or the filehand WILL be not set after
each open.  I have serious doubts that the code even works anymore.  If
it does, it is only because we aren't checking return code properly.

Ryan



_______________________________________________________________________
Ryan Bloom              [EMAIL PROTECTED]
4205 S Miami Blvd       
RTP, NC 27709           It's a beautiful sight to see good dancers 
                        doing simple steps.  It's a painful sight to
                        see beginners doing complicated patterns.       

Reply via email to