diff options
Diffstat (limited to 'tst/va_test.c')
-rw-r--r-- | tst/va_test.c | 58 |
1 files changed, 10 insertions, 48 deletions
diff --git a/tst/va_test.c b/tst/va_test.c index a7664c1..f359717 100644 --- a/tst/va_test.c +++ b/tst/va_test.c @@ -3,59 +3,21 @@ #include <stdarg.h> #include <string.h> -#define ES_PRINT (...) (espik_debug_print (__FILE__, __LINE__, __FUNCTION__, )) - -inline void espik_debug_print (char *fmt, ...) -{ - va_list ap; -/* char c, *s; - int d, e; -*/ - char* output; - - output = malloc(sizeof(char)* - ( strlen(__FUNCTION__) - + strlen(fmt) ) ); - - snprintf (output, "%s: %s", __FUNCTION__, fmt); - - va_start (ap, output); - - vfprintf (stderr, output, ap); - fprintf (stderr, "\n"); - -// printf("fct : %s\n", *(fct+1)); -/* while (*fct) - { -// fprintf (stderr, ">fct : %c\n", *(fct+1)); - switch (*fct++) - { - case 's': s = va_arg (ap, char*); - fprintf (stderr, "%s", s); - break; - case 'd': d = va_arg (ap, int); - fprintf (stderr, "%d", d); - break; - default : -// case 'c': - e = va_arg (ap, int); - fprintf (stderr, "%c", (char)e); - break; -// default : fprintf (stderr, "Unknown type : %c\n", *fct); - } - // fprintf (stderr, "<fct : %c\n", *fct); - } - fprintf (stderr, "\n"); -*/ - va_end (ap); +#define espik_debug_print (...) \ +{ \ + va_list __ap; \ + char* __output; \ + __output = malloc (sizeof(char)* (strlen (__FUNCTION__", "__FILE__", "__LINE__" : ") + strlen(...))); \ + sprintf (__output, "%s: %s", __FUNCTION__", "__FILE__", "__LINE__" : ", ...); \ + va_start (__ap, __output); \ + vfprintf (stdout, __output, ap); \ + va_end (__ap); \ + free (__output); \ } int main() { int a = 10; -/* char b = 'c'; - char c[] = "totomadit"; - */ espik_debug_print ("a : %d\n", a); |