void exit ();
#endif
-#include "fetchmail.h"
-
#ifndef _
# define _(String) String
#endif
+#include "fetchmail.h"
+#define MALLOC(n) xmalloc(n)
+#define REALLOC(n,s) xrealloc(n,s)
+
/* If NULL, error will flush stdout, then print on stderr the program
name, a colon and a space. Otherwise, error will call this
function without parameters instead. */
static unsigned int partial_message_size_used = 0;
static char *partial_message;
static unsigned use_stderr;
+static unsigned int use_syslog;
/* This variable is incremented each time `error' is called. */
unsigned int error_message_count;
+
#ifdef _LIBC
/* In the GNU C library, there is a predefined variable for this. */
}
\f
/*
- * Calling error_init(TRUE) causes error_build and error_complete to write
+ * Calling error_init(1) causes error_build and error_complete to write
* to stderr without buffering. This is needed for the ticker dots to
* work correctly.
*/
-void error_init(foreground)
-int foreground;
+void error_init(int mode)
{
- use_stderr = foreground;
+ switch(mode)
+ {
+ case 0: /* stderr, buffered */
+ default:
+ use_stderr = 0;
+ use_syslog = 0;
+ break;
+
+ case 1: /* stderr, unbuffered */
+ use_stderr = 1;
+ use_syslog = 0;
+ break;
+
+#ifdef HAVE_SYSLOG
+ case -1: /* syslogd */
+ use_stderr = 0;
+ use_syslog = 1;
+ break;
+#endif /* HAVE_SYSLOG */
+ }
}
\f
/* Build an error message by appending MESSAGE, which is a printf-style
{
partial_message_size_used = 0;
partial_message_size = 2048;
- partial_message = xmalloc (partial_message_size);
+ partial_message = MALLOC (partial_message_size);
}
else
if (partial_message_size - partial_message_size_used < 1024)
{
partial_message_size += 2048;
- partial_message = xrealloc (partial_message, partial_message_size);
+ partial_message = REALLOC (partial_message, partial_message_size);
}
#if defined(VA_START)
}
partial_message_size += 2048;
- partial_message = xrealloc (partial_message, partial_message_size);
+ partial_message = REALLOC (partial_message, partial_message_size);
}
#else
vsprintf (partial_message + partial_message_size_used, message, args);
}
partial_message_size += 2048;
- partial_message = xrealloc (partial_message, partial_message_size);
+ partial_message = REALLOC (partial_message, partial_message_size);
}
#else
sprintf (partial_message + partial_message_size_used, message, a1, a2, a3, a4, a5, a6, a7, a8);
{
partial_message_size_used = 0;
partial_message_size = 2048;
- partial_message = xmalloc (partial_message_size);
+ partial_message = MALLOC (partial_message_size);
}
else
if (partial_message_size - partial_message_size_used < 1024)
{
partial_message_size += 2048;
- partial_message = xrealloc (partial_message, partial_message_size);
+ partial_message = REALLOC (partial_message, partial_message_size);
}
#if defined(VA_START)
}
partial_message_size += 2048;
- partial_message = xrealloc (partial_message, partial_message_size);
+ partial_message = REALLOC (partial_message, partial_message_size);
}
#else
vsprintf (partial_message + partial_message_size_used, message, args);
}
partial_message_size += 2048;
- partial_message = xrealloc (partial_message, partial_message_size);
+ partial_message = REALLOC (partial_message, partial_message_size);
}
#else
sprintf (partial_message + partial_message_size_used, message, a1, a2, a3, a4, a5, a6, a7, a8);