diff options
Diffstat (limited to 'libkdenetwork/libgpgme-copy/gpgme/debug.c')
-rw-r--r-- | libkdenetwork/libgpgme-copy/gpgme/debug.c | 221 |
1 files changed, 0 insertions, 221 deletions
diff --git a/libkdenetwork/libgpgme-copy/gpgme/debug.c b/libkdenetwork/libgpgme-copy/gpgme/debug.c deleted file mode 100644 index 3351059e1..000000000 --- a/libkdenetwork/libgpgme-copy/gpgme/debug.c +++ /dev/null @@ -1,221 +0,0 @@ -/* debug.c - helpful output in desperate situations - Copyright (C) 2000 Werner Koch (dd9jn) - Copyright (C) 2001, 2002, 2003, 2004, 2005 g10 Code GmbH - - This file is part of GPGME. - - GPGME is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of - the License, or (at your option) any later version. - - GPGME is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ - -#if HAVE_CONFIG_H -#include <config.h> -#endif -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <stdarg.h> -#include <unistd.h> -#include <ctype.h> -#ifndef HAVE_DOSISH_SYSTEM - #include <sys/types.h> - #include <sys/stat.h> - #include <fcntl.h> -#endif -#include <assert.h> - -#include "util.h" -#include "sema.h" - - -/* Lock to serialize initialization of the debug output subsystem and - output of actual debug messages. */ -DEFINE_STATIC_LOCK (debug_lock); - -/* The amount of detail requested by the user, per environment - variable GPGME_DEBUG. */ -static int debug_level; - -/* The output stream for the debug messages. */ -static FILE *errfp; - - -/* Remove leading and trailing white spaces. */ -static char * -trim_spaces (char *str) -{ - char *string, *p, *mark; - - string = str; - /* Find first non space character. */ - for (p = string; *p && isspace (*(unsigned char *) p); p++) - ; - /* Move characters. */ - for (mark = NULL; (*string = *p); string++, p++) - if (isspace (*(unsigned char *) p)) - { - if (!mark) - mark = string; - } - else - mark = NULL; - if (mark) - *mark = '\0'; /* Remove trailing spaces. */ - - return str; -} - - -static void -debug_init (void) -{ - static int initialized; - - LOCK (debug_lock); - if (!initialized) - { - gpgme_error_t err; - char *e; - const char *s1, *s2;; - - err = _gpgme_getenv ("GPGME_DEBUG", &e); - if (err) - { - UNLOCK (debug_lock); - return; - } - - initialized = 1; - errfp = stderr; - if (e) - { - debug_level = atoi (e); - s1 = strchr (e, PATHSEP_C); - if (s1) - { -#ifndef HAVE_DOSISH_SYSTEM - if (getuid () == geteuid ()) - { -#endif - char *p; - FILE *fp; - - s1++; - if (!(s2 = strchr (s1, PATHSEP_C))) - s2 = s1 + strlen (s1); - p = malloc (s2 - s1 + 1); - if (p) - { - memcpy (p, s1, s2 - s1); - p[s2-s1] = 0; - trim_spaces (p); - fp = fopen (p,"a"); - if (fp) - { - setvbuf (fp, NULL, _IOLBF, 0); - errfp = fp; - } - free (p); - } -#ifndef HAVE_DOSISH_SYSTEM - } -#endif - } - free (e); - } - - if (debug_level > 0) - fprintf (errfp, "gpgme_debug: level=%d\n", debug_level); - } - UNLOCK (debug_lock); -} - - -/* Log the formatted string FORMAT at debug level LEVEL or higher. */ -void -_gpgme_debug (int level, const char *format, ...) -{ - va_list arg_ptr; - - debug_init (); - if (debug_level < level) - return; - - va_start (arg_ptr, format); - LOCK (debug_lock); - vfprintf (errfp, format, arg_ptr); - va_end (arg_ptr); - if(format && *format && format[strlen (format) - 1] != '\n') - putc ('\n', errfp); - UNLOCK (debug_lock); - fflush (errfp); -} - - -/* Start a new debug line in *LINE, logged at level LEVEL or higher, - and starting with the formatted string FORMAT. */ -void -_gpgme_debug_begin (void **line, int level, const char *format, ...) -{ - va_list arg_ptr; - - debug_init (); - if (debug_level < level) - { - /* Disable logging of this line. */ - *line = NULL; - return; - } - - va_start (arg_ptr, format); - vasprintf ((char **) line, format, arg_ptr); - va_end (arg_ptr); -} - - -/* Add the formatted string FORMAT to the debug line *LINE. */ -void -_gpgme_debug_add (void **line, const char *format, ...) -{ - va_list arg_ptr; - char *toadd; - char *result; - - if (!*line) - return; - - va_start (arg_ptr, format); - vasprintf (&toadd, format, arg_ptr); - va_end (arg_ptr); - asprintf (&result, "%s%s", *(char **) line, toadd); - free (*line); - free (toadd); - *line = result; -} - - -/* Finish construction of *LINE and send it to the debug output - stream. */ -void -_gpgme_debug_end (void **line) -{ - if (!*line) - return; - - /* The smallest possible level is 1, so force logging here by - using that. */ - _gpgme_debug (1, "%s", *line); - free (*line); - *line = NULL; -} |