aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbeber <beber>2005-12-06 23:25:17 +0000
committerbeber <beber>2005-12-06 23:25:17 +0000
commitfeec95fa421d2f1c9cf9a99e1b81342067ac1d27 (patch)
treec40beea49b37bd5dd45198f46d037df33668425b
parentmore work on va (diff)
downloadespik-feec95fa421d2f1c9cf9a99e1b81342067ac1d27.tar.xz
use a macro
-rw-r--r--tst/va_test.c58
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);