diff options
author | Andre Heinecke <aheinecke@intevation.de> | 2018-06-20 09:43:19 +0200 |
---|---|---|
committer | Andre Heinecke <aheinecke@intevation.de> | 2018-06-20 10:50:17 +0200 |
commit | d8beab30c44482fb7a3e445b92cec482792b2ca0 (patch) | |
tree | 80177793c7fcc28f966689329cf8eaf16eae5003 | |
parent | 19c5267f868aa41e73752ac1c76ec7ae1efe07b8 (diff) | |
download | gpgme-d8beab30c44482fb7a3e445b92cec482792b2ca0.tar.gz |
json: Add file handling for debug output
* src/gpgme-json.c (main): Add possibilty to set log file.
--
This is similar to how GPGME_DEBUG works. It takes ; on
Windows as seperator and : on linux. Followed by a file name.
For Linux it might make sense to use a different seperator
to allow setting a socket explicitly. But this is better
in line with the current GPGME_DEBUG behavior.
The change helps on Windows where we don't have a
log socket.
-rw-r--r-- | src/gpgme-json.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/gpgme-json.c b/src/gpgme-json.c index ae878bd0..d7e1cbc6 100644 --- a/src/gpgme-json.c +++ b/src/gpgme-json.c @@ -3617,6 +3617,8 @@ main (int argc, char *argv[]) }; gpgrt_argparse_t pargs = { &argc, &argv}; + int log_file_set = 0; + gpgrt_set_strusage (my_strusage); #ifdef HAVE_SETLOCALE @@ -3653,12 +3655,24 @@ main (int argc, char *argv[]) if (!opt_debug) { + /* Handling is similar to GPGME_DEBUG */ const char *s = getenv ("GPGME_JSON_DEBUG"); + const char *s1; + if (s && atoi (s) > 0) - opt_debug = 1; + { + opt_debug = 1; + s1 = strchr (s, PATHSEP_C); + if (s1 && strlen (s1) > 2) + { + s1++; + log_set_file (s1); + log_file_set = 1; + } + } } - if (opt_debug) + if (opt_debug && !log_file_set) { const char *home = getenv ("HOME"); char *file = xstrconcat ("socket://", |