Contiki 2.6

_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 )  /* No file => sprintf */
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    /* file => printf */
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