home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / iolib / cputc.c < prev    next >
Encoding:
C/C++ Source or Header  |  1975-05-13  |  601 b   |  31 lines

  1. # include "ciodec.c"
  2. char cputc(ch, fn)
  3. {
  4. struct fileps *fp;
  5. if (nargs() != 2)
  6.   IEHzap("cputc  ");
  7. if (fn<0 || fn>20) return(ch);
  8. fp = &IEH3fpts[fn];
  9. if (fp->wrflag == 1)
  10.     IEH3err("cputc: %d not open",fn);
  11. if (fp->wrflag == 0)
  12.     IEH3mbuf(fn,1);
  13. *(fp->bptr++) = ch;
  14. if (++(fp->nchars) < fp->bsize)
  15.     return(ch);
  16. if (fp->wrflag == 3) /* append, seek to end */
  17.     {
  18.     seek(fn, 0, 2);
  19.     fp->wrflag = 2; /* now just write from here on */
  20.     }
  21. if ( write(fn, fp->bptr=fp->buff, fp->nchars) < 0)
  22.     {
  23.     if (fp->eoferr == 0)
  24.         IEH3err("cputc: writing %d",fn);
  25.     fp->eoferr = 3;
  26.     }
  27. fp->nchars = 0;
  28. return (ch);
  29. }
  30. cout 1;
  31.