summaryrefslogtreecommitdiffstats
path: root/eprintf.c
diff options
context:
space:
mode:
authorTomasz Kramkowski <tk@the-tk.com>2018-04-21 21:11:32 +0200
committerTomasz Kramkowski <tk@the-tk.com>2018-04-21 21:11:32 +0200
commitb0f260efed64e9db6b07bc36250971fc21a0f6db (patch)
treecb928888983b0f7170efc5aefc190650ff54aaef /eprintf.c
parent7a802c4ff4c715f50825d833fa44f2ad1a5993f4 (diff)
downloadeprintf-b0f260efed64e9db6b07bc36250971fc21a0f6db.tar.gz
eprintf-b0f260efed64e9db6b07bc36250971fc21a0f6db.tar.xz
eprintf-b0f260efed64e9db6b07bc36250971fc21a0f6db.zip
add deprintf functionHEADmaster
Diffstat (limited to 'eprintf.c')
-rw-r--r--eprintf.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/eprintf.c b/eprintf.c
index 9f4aa11..d1cde98 100644
--- a/eprintf.c
+++ b/eprintf.c
@@ -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;
+}