home *** CD-ROM | disk | FTP | other *** search
-
- /*
- * FPUTC.C
- *
- * (c)Copyright 1990, Matthew Dillon, All Rights Reserved
- *
- */
-
- #include <stdio.h>
-
- int
- fputc(c, fi)
- int c;
- FILE *fi;
- {
- if (fi && (fi->sd_Flags & __SIF_WRITE)) {
- if (fi->sd_WLeft <= 0) {
- if (fi->sd_BufSiz == 0) { /* unbuffered */
- if (write(fi->sd_Fd, &c, 1) != 1)
- fi->sd_Error = EOF;
- ++fi->sd_Offset;
- return(fi->sd_Error);
- }
- if (fflush(fi)) /* not unbuffered */
- return(EOF);
- }
- *fi->sd_WPtr++ = c;
- --fi->sd_WLeft;
- if (c == '\n' && (fi->sd_Flags & __SIF_IOLBF))
- fflush(fi);
- } else {
- fi->sd_Error = EOF;
- }
- return(fi->sd_Error);
- }
-
-