diff options
Diffstat (limited to 'eprintf.c')
-rw-r--r-- | eprintf.c | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -9,6 +9,7 @@ #include "eprintf.h" static char *pname; +static int debug = 0; // doprintf: print error message __attribute__((format(printf, 1, 0))) @@ -48,6 +49,25 @@ void weprintf(const char *fmt, ...) va_end(va); } +// deprintf: print debug message if debugging is enabled +void deprintf(const char *fmt, ...) +{ + va_list va; + + assert(fmt != NULL); + + if (!debug) + return; + + if (pname != NULL) + fprintf(stderr, "%s: ", pname); + + fputs("debug: ", stderr); + va_start(va, fmt); + vfprintf(stderr, fmt, va); + va_end(va); +} + // estrdup: attempt to strdup a string or exit on error char *estrdup(const char *s) { @@ -115,3 +135,9 @@ void setprogname(const char *s) pname = estrdup(s); } + +// setdebug: set debug +void setdebug(int d) +{ + debug = d; +} |