From 357a499884543ec285238c9ec6c53565fa4d5b48 Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Mon, 10 Jun 2013 16:18:35 +0200 Subject: [PATCH] configure.ac: Add --enable-warnings. Enables warning() messages without the overhead of all debug output. --- configure.ac | 7 +++++++ src/coloredstderr.c | 2 +- src/constants.h | 2 ++ src/debug.h | 2 ++ src/trackfds.h | 6 +++--- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index e17afdf..f4154bd 100644 --- a/configure.ac +++ b/configure.ac @@ -58,10 +58,17 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[return __builtin_expect(main != 0, 1)])], AC_SEARCH_LIBS([dlsym], [dl], [], [AC_MSG_ERROR([dlsym() is required])]) +AC_ARG_ENABLE([warnings], + [AS_HELP_STRING([--enable-warnings],[enable warning output])], + [if test "x$enableval" = xyes; then + AC_DEFINE([WARNING], 1, [Define to enable warning output.]) + fi]) AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug],[enable debug output])], [if test "x$enableval" = xyes; then AC_DEFINE([DEBUG], 1, [Define to enable debug output.]) + dnl DEBUG implies WARNING + AC_DEFINE([WARNING], 1) fi]) dnl Used in tests/Makefile.am to build the test only if error() is available. diff --git a/src/coloredstderr.c b/src/coloredstderr.c index dcd1166..d0c5494 100644 --- a/src/coloredstderr.c +++ b/src/coloredstderr.c @@ -53,7 +53,7 @@ static int force_write_to_non_tty; #include "constants.h" -#ifdef DEBUG +#ifdef WARNING # include "debug.h" #endif diff --git a/src/constants.h b/src/constants.h index f76f78f..bde43b5 100644 --- a/src/constants.h +++ b/src/constants.h @@ -39,6 +39,8 @@ #ifdef DEBUG # define DEBUG_FILE "colored_stderr_debug_log.txt" +#endif +#ifdef WARNING /* Created in the user's home directory, appends to existing file. */ # define WARNING_FILE "colored_stderr_warning_log.txt" #endif diff --git a/src/debug.h b/src/debug.h index 7425ce4..4a7c00b 100644 --- a/src/debug.h +++ b/src/debug.h @@ -41,6 +41,7 @@ static void debug_write(int fd, int first_call, char const *format, va_list ap) real_close(fd); } +#ifdef DEBUG static void debug(char const *format, ...) { va_list ap; @@ -63,6 +64,7 @@ static void debug(char const *format, ...) { errno = saved_errno; } +#endif static void warning(char const *format, ...) { va_list ap; diff --git a/src/trackfds.h b/src/trackfds.h index 2def68c..1eede80 100644 --- a/src/trackfds.h +++ b/src/trackfds.h @@ -56,7 +56,7 @@ static int init_tracked_fds_list(size_t count) { tracked_fds_list = malloc(count * sizeof(*tracked_fds_list)); if (!tracked_fds_list) { -#ifdef DEBUG +#ifdef WARNING warning("malloc(tracked_fds_list, %d) failed [%d]\n", count * sizeof(*tracked_fds_list), getpid()); #endif @@ -164,7 +164,7 @@ static char *update_environment_buffer_entry(char *x, int fd) { int length = snprintf(x, 10 + 1, "%d", fd); if (length >= 10 + 1) { /* Integer too big to fit the buffer, skip it. */ -#ifdef DEBUG +#ifdef WARNING warning("update_environment_buffer_entry(): truncated fd: %d [%d]\n", fd, getpid()); #endif @@ -245,7 +245,7 @@ static void tracked_fds_add(int fd) { /* We can do nothing, just ignore the error. We made sure not to * destroy our state, so the new descriptor is ignored without any * other consequences. */ -#ifdef DEBUG +#ifdef WARNING warning("realloc(tracked_fds_list, %zu) failed! [%d]\n", sizeof(*tracked_fds_list) * new_space, getpid()); #endif -- 2.43.2