home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Magazine 1996 December / CD_shareware_12-96.iso / DOS / Programa / CCDL122.ZIP / CLIBS / IO / FGETC.C < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-26  |  854 b   |  58 lines

  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <libp.h>
  4.  
  5. int _basegetc(FILE *stream)
  6. {
  7.     unsigned char rv;
  8.     if (stream->bsize) {
  9.         if (_readbuf(stream))
  10.             return EOF;
  11.         stream->level--;
  12.         return(*stream->curp++);
  13.     }
  14.     else if (stream->hold) {
  15.         rv = stream->hold;
  16.         stream->hold = 0;
  17.     }
  18.     else {
  19.         if (!_ll_read(stream->fd,&rv,1)) {
  20.             stream->flags |= _F_EOF;
  21.             return EOF;
  22.         }
  23.     }
  24.     return(rv);
  25. }
  26. int fgetc(FILE *stream)
  27. {
  28.     int rv;
  29.     if (stream->token != FILTOK)
  30.         return EOF;
  31.     if (!(stream->flags & _F_READ)) {
  32.         stream->flags |= _F_ERR;
  33.         return EOF;
  34.     }
  35.     rv = _basegetc(stream);
  36.     if (!(stream->flags & _F_BIN) && rv == '\r')
  37.         return _basegetc(stream);
  38.     return rv;
  39. }
  40. #undef getc
  41. #undef getchar
  42. int getc(FILE *stream)
  43. {
  44.     return fgetc(stream);
  45. }
  46. int getchar(void)
  47. {
  48.     return fgetc(stdin);
  49. }
  50.         
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.