Fonction pprint

#ifdef WIN32
#define sleep(useconds) Sleep( useconds );
#else
#define sleep(useconds) usleep( useconds * 1000 );
#endif
/*************************************************************************
 * progressive print                                                     *
 * msg : le message à afficher                                           *
 * ms : le nombre de milli-secondes entre chaque "lettre"                *
 * skip : si différent de 0, ne perd pas de temps à afficher les espaces *
 *************************************************************************
 * exemple :                                                             *
 * pprint("Hello, world\n", 10, 0);                                      *
 *************************************************************************/
void pprint(const char * msg, unsigned int ms, int skip)
{
	int len = strlen(msg);
	char * tmp_msg = malloc(len + 1);
	
	if( tmp_msg != NULL )
	{
		int pos = 0;
		
		while( pos < len )
		{
			printf( "\r" );
			while( skip && msg[ pos ] == ' ' )
			{
				tmp_msg[ pos ] = msg[ pos ];
				tmp_msg[ pos + 1 ] = '\0';
				pos++;
			}
			tmp_msg[ pos ] = msg[ pos ];
			tmp_msg[ pos + 1 ] = '\0';
			printf( tmp_msg );
			fflush( stdout );
			pos++;
			sleep( ms );
		}
	}
}
retour