home *** CD-ROM | disk | FTP | other *** search
/ PC Extra Super CD 1998 January / PCPLUS131.iso / DJGPP / V2 / DJLSR201.ZIP / src / libc / ansi / stdio / fputs.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-26  |  575 b   |  35 lines

  1. /* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
  2. #include <stdio.h>
  3. #include <libc/file.h>
  4.  
  5. int
  6. fputs(const char *s, FILE *f)
  7. {
  8.   int r = 0;
  9.   int c;
  10.   int unbuffered;
  11.   char localbuf[BUFSIZ];
  12.  
  13.   unbuffered = f->_flag & _IONBF;
  14.   if (unbuffered)
  15.   {
  16.     f->_flag &= ~_IONBF;
  17.     f->_ptr = f->_base = localbuf;
  18.     f->_bufsiz = BUFSIZ;
  19.   }
  20.  
  21.   while ((c = *s++))
  22.     r = __putc(c, f);
  23.  
  24.   if (unbuffered)
  25.   {
  26.     fflush(f);
  27.     f->_flag |= _IONBF;
  28.     f->_base = NULL;
  29.     f->_bufsiz = NULL;
  30.     f->_cnt = 0;
  31.   }
  32.  
  33.   return(r);
  34. }
  35.