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

  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <libp.h>
  4.  
  5. int _baseputc(int c, FILE *stream)
  6. {
  7.     unsigned char rv = (unsigned char) c;
  8.     if (stream->bsize) {
  9.         if (_writebuf(stream)) {
  10.             stream->flags |= _F_ERR;
  11.             return EOF;
  12.         }
  13.         stream->flags |= _F_OUT;
  14.         *stream->curp++ = (char)c;
  15.         stream->level++;
  16.         if (c == '\n' && (stream->flags & _F_LBUF))
  17.             fflush(stream);
  18.         return c;
  19.     }
  20.     else {
  21.         if (_ll_write(stream->fd,&rv,1)) {
  22.             stream->flags |= _F_ERR;
  23.             return EOF;
  24.         }
  25.     }
  26.     return c;
  27. }
  28. int fputc(int c, FILE *stream)
  29. {
  30.     if (stream->token != FILTOK)
  31.         return EOF;
  32.     if (!(stream->flags & _F_WRIT)) {
  33.         stream->flags |= _F_ERR;
  34.         return EOF;
  35.     }
  36.     if (!(stream->flags & _F_BIN) && c == '\n') {
  37.         if (_baseputc('\r',stream) == EOF)
  38.             return EOF;
  39.         return _baseputc('\n',stream);
  40.     }
  41.     return _baseputc(c,stream);
  42. }
  43. #undef putc
  44. #undef putchar
  45. int putc(int c, FILE *stream)
  46. {
  47.     return fputc(c,stream);
  48. }
  49. int putchar(int c)
  50. {
  51.     return fputc(c,stdout);
  52. }