From 12c9770d6323ec431e9b74b48e2397f21fda0f8f Mon Sep 17 00:00:00 2001 From: Jochen Eisinger Date: Mon, 23 Oct 2000 15:00:00 +0000 Subject: [PATCH] 2000-10-23 Jochen Eisinger * sanei/sanei_init_debug.c include/sane/sanei_debug.h frontend/saned.c: removed vararg macros --- frontend/saned.c | 36 ++++++++++++--------------- sanei/sanei_init_debug.c | 53 ++++++++++++++++++++++------------------ 2 files changed, 45 insertions(+), 44 deletions(-) diff --git a/frontend/saned.c b/frontend/saned.c index 8b3ebb213..05cbfb03f 100644 --- a/frontend/saned.c +++ b/frontend/saned.c @@ -49,6 +49,8 @@ #include +#include + #include #include #include @@ -74,27 +76,7 @@ #define SANED_CONFIG_FILE "saned.conf" -/* The cpp that comes with GNU C 2.5 seems to have troubles understanding - vararg macros. */ -#if __GNUC__ - 0 > 2 || (__GNUC__ - 0 == 2 && __GNUC_MINOR__ > 5) -# define HAVE_VARARG_MACROS -#endif -#ifdef HAVE_VARARG_MACROS -# ifdef NDEBUG -# define DBG(level, msg, args...) -# else -# define DBG(level, msg, args...) \ - do \ - { \ - if ((debug) >= (level)) \ - syslog (LOG_DEBUG, msg, ##args); \ - } \ - while (0) -# endif -#else /* !HAVE_VARARG_MACROS */ -# define DBG if (0) sanei_debug -#endif typedef struct { @@ -138,6 +120,20 @@ static const char *config_file_names[] = /* forward declarations: */ static void process_request (Wire *w); +#define DBG saned_debug_call + +static void saned_debug_call(int level, const char *fmt, ...) +{ +#ifndef NDEBUG + va_list ap; + va_start (ap, fmt); + if (debug >= level) + vsyslog (LOG_DEBUG, fmt, ap); + va_end (ap); +#endif +} + + static void reset_watchdog (void) { diff --git a/sanei/sanei_init_debug.c b/sanei/sanei_init_debug.c index d0aeb822c..144b0dac8 100644 --- a/sanei/sanei_init_debug.c +++ b/sanei/sanei_init_debug.c @@ -46,6 +46,7 @@ #ifdef HAVE_UNISTD_H #include #endif +#include #include #include #ifdef HAVE_OS2_H @@ -64,9 +65,6 @@ #define BACKEND_NAME sanei_debug #include "sane/sanei_debug.h" -static int global_max_level = 0; - - void sanei_init_debug (const char * backend, int * var) { @@ -91,38 +89,45 @@ sanei_init_debug (const char * backend, int * var) *var = atoi (val); - if (*var > global_max_level) - global_max_level = *var; - DBG (0, "Setting debug level of %s to %d.\n", backend, *var); } -static void -debug_msg (int level, int max_level, const char *fmt, va_list ap) +void +sanei_debug_msg + (int level, int max_level, const char *be, const char *fmt, va_list ap) { + char *msg; + if (max_level >= level) { if ( 1 == isfdtype(fileno(stderr), S_IFSOCK) ) - vsyslog(LOG_DEBUG, fmt, ap); + { + msg = (char *)malloc (sizeof(char) * (strlen(be) + strlen(fmt) + 4)); + if (msg == NULL) + { + syslog (LOG_DEBUG, "[sanei_debug] malloc() failed\n"); + vsyslog (LOG_DEBUG, fmt, ap); + } + else + { + sprintf (msg, "[%s] %s", be, fmt); + vsyslog(LOG_DEBUG, msg, ap); + free (msg); + } + } else - vfprintf (stderr, fmt, ap); + { + fprintf (stderr, "[%s] ", be); + vfprintf (stderr, fmt, ap); + } + } } +#ifdef NDEBUG void -sanei_debug (int level, const char *fmt, ...) +sanei_debug_ndebug (int level, const char *fmt, ...) { - va_list ap; - va_start (ap, fmt); - debug_msg (level, global_max_level, fmt, ap); - va_end (ap); -} - -void -sanei_debug_max (int level, int max_level, const char *fmt, ...) -{ - va_list ap; - va_start (ap, fmt); - debug_msg (level, max_level, fmt, ap); - va_end (ap); + /* this function is never called */ } +#endif