1*17951Sserge /* @(#)fputs.c 4.3 (Berkeley) 02/13/85 */ 22007Swnj #include <stdio.h> 32007Swnj 42007Swnj fputs(s, iop) 52007Swnj register char *s; 62007Swnj register FILE *iop; 72007Swnj { 817201Slepreau register r = 0; 92007Swnj register c; 10*17951Sserge int unbuffered; 11*17951Sserge char localbuf[BUFSIZ]; 122007Swnj 13*17951Sserge unbuffered = iop->_flag & _IONBF; 14*17951Sserge if (unbuffered) { 15*17951Sserge iop->_flag &= ~_IONBF; 16*17951Sserge iop->_ptr = iop->_base = localbuf; 17*17951Sserge iop->_bufsiz = BUFSIZ; 18*17951Sserge } 19*17951Sserge 202007Swnj while (c = *s++) 212007Swnj r = putc(c, iop); 22*17951Sserge 23*17951Sserge if (unbuffered) { 24*17951Sserge fflush(iop); 25*17951Sserge iop->_flag |= _IONBF; 26*17951Sserge iop->_base = NULL; 27*17951Sserge iop->_bufsiz = NULL; 28*17951Sserge iop->_cnt = 0; 29*17951Sserge } 30*17951Sserge 312007Swnj return(r); 322007Swnj } 33