--- a/common.c Tue Jun 17 19:08:05 2008 +0300
+++ b/common.c Thu Jun 26 01:32:56 2008 +0300
@@ -7,31 +7,33 @@
#include "common.h"
-static void _generic_err_vargs (const char *func, int perr, const char *fmt, va_list va) {
+static void _generic_err_vargs (int use_stderr, const char *func, int perr, const char *fmt, va_list va) {
+ FILE *stream = use_stderr ? stderr : stdin;
+
if (func)
- fprintf(stderr, "%s: ", func);
+ fprintf(stream, "%s: ", func);
- vfprintf(stderr, fmt, va);
+ vfprintf(stream, fmt, va);
if (perr)
- fprintf(stderr, ": %s\n", strerror(errno));
+ fprintf(stream, ": %s\n", strerror(errno));
- fprintf(stderr, "\n");
+ fprintf(stream, "\n");
}
-void _generic_err (const char *func, int perr, const char *fmt, ...) {
+void _generic_err (int use_stderr, const char *func, int perr, const char *fmt, ...) {
va_list va;
va_start(va, fmt);
- _generic_err_vargs(func, perr, fmt, va);
+ _generic_err_vargs(use_stderr, func, perr, fmt, va);
va_end(va);
}
-void _generic_err_exit (const char *func, int perr, const char *fmt, ...) {
+void _generic_err_exit (int use_stderr, const char *func, int perr, const char *fmt, ...) {
va_list va;
va_start(va, fmt);
- _generic_err_vargs(func, perr, fmt, va);
+ _generic_err_vargs(use_stderr, func, perr, fmt, va);
va_end(va);
exit(EXIT_FAILURE);