#include <stdio.h>
#include <string.h>
 
 
void __io_putchar ( char );
 
void _SMALL_PRINTF_puts(const char *ptr, int len, FILE *fp)
	{
	if ( fp &&  ( fp->_file == -1 )  /* No file => sprintf */
		  &&   (fp->_flags & (__SWR | __SSTR) ) )
		{
		char *str =  fp->_p;

		for ( ; len ; len-- )
			{
		  	*str ++ =  *ptr++;
		  	}
	   fp->_p = str;		  	
		}
	else	/* file => printf */
		{
		for ( ; len ; len-- )
			__io_putchar ( *ptr++ );
		}
	}

int  puts(const char *str) 
	{
	int len = strlen ( str );
	_SMALL_PRINTF_puts(str, len, 0) ;
	__io_putchar ( '\n' );
	return len;
	}