2000-10-23 Jochen Eisinger <jochen.eisinger@gmx.net>

* sanei/sanei_init_debug.c include/sane/sanei_debug.h
	  frontend/saned.c: removed vararg macros
DEVEL_2_0_BRANCH-1
Jochen Eisinger 2000-10-23 15:00:00 +00:00
rodzic 25cb005d86
commit 12c9770d63
2 zmienionych plików z 45 dodań i 44 usunięć

Wyświetl plik

@ -49,6 +49,8 @@
#include <netinet/in.h>
#include <stdarg.h>
#include <sys/param.h>
#include <sys/socket.h>
#include <sys/time.h>
@ -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)
{

Wyświetl plik

@ -46,6 +46,7 @@
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <string.h>
#include <stdarg.h>
#include <sys/syslog.h>
#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