_SP_puts.c
00001 #include <stdio.h>
00002 #include <string.h>
00003
00004
00005 void __io_putchar ( char );
00006
00007 void _SMALL_PRINTF_puts(const char *ptr, int len, FILE *fp)
00008 {
00009 if ( fp && ( fp->_file == -1 )
00010 && (fp->_flags & (__SWR | __SSTR) ) )
00011 {
00012 char *str = fp->_p;
00013
00014 for ( ; len ; len-- )
00015 {
00016 *str ++ = *ptr++;
00017 }
00018 fp->_p = str;
00019 }
00020 else
00021 {
00022 for ( ; len ; len-- )
00023 __io_putchar ( *ptr++ );
00024 }
00025 }
00026
00027 int puts(const char *str)
00028 {
00029 int len = strlen ( str );
00030 _SMALL_PRINTF_puts(str, len, 0) ;
00031 __io_putchar ( '\n' );
00032 return len;
00033 }
00034