aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/debug.c21
-rw-r--r--src/debug.h3
2 files changed, 18 insertions, 6 deletions
diff --git a/src/debug.c b/src/debug.c
index 0ddb1539..a861b416 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -254,6 +254,7 @@ _gpgme_debug (void **line, int level, int mode,
int indent;
char *prefix, *stdinfo, *userinfo;
const char *modestr;
+ int no_userinfo = 0;
if (debug_level < level)
return 0;
@@ -295,7 +296,13 @@ _gpgme_debug (void **line, int level, int mode,
else
stdinfo = gpgrt_bsprintf ("%s: %s: ", func, modestr);
- userinfo = gpgrt_vbsprintf (format, arg_ptr);
+ if (format && *format)
+ userinfo = gpgrt_vbsprintf (format, arg_ptr);
+ else
+ {
+ userinfo = NULL;
+ no_userinfo = 1;
+ }
va_end (arg_ptr);
if (mode != -1 && (!format || !*format))
@@ -317,7 +324,7 @@ _gpgme_debug (void **line, int level, int mode,
prefix? prefix : "GPGME out-of-core ",
!modestr? "" : stdinfo? stdinfo :
(!format || !*format)? "" :"out-of-core ",
- userinfo? userinfo : "out-of-core",
+ userinfo? userinfo : no_userinfo? "" : "out-of-core",
need_lf? "\n":"");
fflush (errfp);
}
@@ -365,12 +372,16 @@ _gpgme_debug_add (void **line, const char *format, ...)
void
_gpgme_debug_end (void **line)
{
+ const char *string;
+
if (!*line)
return;
+ string = *line;
- /* The smallest possible level is 1, so force logging here by
- using that. */
- _gpgme_debug (NULL, 1, -1, NULL, NULL, NULL, "%s", (char*)*line);
+ fprintf (errfp, "%s%s",
+ string,
+ (*string && string[strlen (string)-1] != '\n')? "\n":"");
+ fflush (errfp);
gpgrt_free (*line);
*line = NULL;
}
diff --git a/src/debug.h b/src/debug.h
index 08d063c6..fa0bfc6c 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -25,6 +25,7 @@
#ifdef HAVE_STDINT_H
#include <stdint.h>
#endif
+#include <errno.h>
#include "gpgme.h" /* Required for gpgme_error stuff. */
@@ -151,7 +152,7 @@ _trace_sysres (int res, int lvl, const char *func, int line)
else
_gpgme_debug (NULL, lvl, -1, NULL, NULL, NULL,
"%s:%d: error: %s (%d)\n",
- func, line, strerror (res), res);
+ func, line, strerror (errno), errno);
_gpgme_debug_frame_end ();
return res;
}