From 2590bf7a2bc40e2fcd5cbe1f4f063d820c2c5438 Mon Sep 17 00:00:00 2001 From: William Hubbs Date: Sun, 1 Sep 2013 15:06:15 -0500 Subject: [PATCH] libeinfo: add separate variable to suppress eerror messages Add an EERROR_QUIET environment variable which works like EINFO_QUIET but for the eerror functions. This will allow library consumers to choose whether to suppress eerror messages separately from einfo and ewarn messages. X-Gentoo-Bug: 482396 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=482396 --- man/einfo.3 | 7 ++++++- src/libeinfo/libeinfo.c | 12 +++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/man/einfo.3 b/man/einfo.3 index 31c4b68c..f7b1fd26 100644 --- a/man/einfo.3 +++ b/man/einfo.3 @@ -107,7 +107,6 @@ respectively, but only work when is true. You can also make the .Fn einfo , .Fn ewarn , -.Fn eerror , and .Fn ebegin functions silent by setting @@ -186,6 +185,12 @@ when set to true makes the and .Fn einfon family of functions quiet, so nothing is printed. +.Va EERROR_QUIET +when set to true makes the +.Fn eerror +and +.Fn eerrorn +family of functions quiet, so nothing is printed. .Pp .Va EINFO_VERBOSE when set to true makes the diff --git a/src/libeinfo/libeinfo.c b/src/libeinfo/libeinfo.c index 7b1f2da5..9791051f 100644 --- a/src/libeinfo/libeinfo.c +++ b/src/libeinfo/libeinfo.c @@ -273,6 +273,12 @@ is_quiet(void) return yesno(getenv("EINFO_QUIET")); } +static bool +is_really_quiet(void) +{ + return yesno(getenv("EERROR_QUIET")); +} + static bool is_verbose(void) { @@ -674,7 +680,7 @@ eerrorn(const char *EINFO_RESTRICT fmt, ...) int retval; va_list ap; - if (!fmt || is_quiet()) + if (!fmt || is_really_quiet()) return 0; va_start(ap, fmt); retval = _eerrorvn(fmt, ap); @@ -742,7 +748,7 @@ eerror(const char *EINFO_RESTRICT fmt, ...) int retval; va_list ap; - if (!fmt || is_quiet()) + if (!fmt || is_really_quiet()) return 0; va_start(ap, fmt); elogv(LOG_ERR, fmt, ap); @@ -759,7 +765,7 @@ eerrorx(const char *EINFO_RESTRICT fmt, ...) { va_list ap; - if (fmt && !is_quiet()) { + if (fmt && !is_really_quiet()) { va_start(ap, fmt); elogv(LOG_ERR, fmt, ap); _eerrorvn(fmt, ap);