aboutsummaryrefslogtreecommitdiffstats
path: root/src/debug.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2019-06-05 14:37:59 +0000
committerWerner Koch <[email protected]>2019-06-05 14:48:47 +0000
commit0f68c9f16bdae7295cac4cbf3c9a197840989a85 (patch)
tree5ff057b5a1f052f1d749b1c2ff6defef6ff9ce75 /src/debug.c
parenttests: Use synced output for error in run-threaded (diff)
downloadgpgme-0f68c9f16bdae7295cac4cbf3c9a197840989a85.tar.gz
gpgme-0f68c9f16bdae7295cac4cbf3c9a197840989a85.zip
core: Prettify _gpgme_io_select debug output again and fix TRACE_SYSRES.
* src/debug.c (_gpgme_debug): Take better care of NULL userinfo. (_gpgme_debug_end): Rework. (_trace_sysres): Print ERRNO and not the supplied RES. -- The TRACE_SYSRES patch fixes Regression-due-to: 7a1e7006d06fdbab86ea79a197c316744b09d933 Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'src/debug.c')
-rw-r--r--src/debug.c21
1 files changed, 16 insertions, 5 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;
}