From a15dca2f6d0693546138a6a727f019dd8019dee8 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 17 Jan 2018 13:58:29 +0100 Subject: include/debug: introduce __UL_INIT_DEBUG_FROM_STRING() Let's make it possible to use debug.h without environment variables. Suggested-by: J William Piggott Signed-off-by: Karel Zak --- disk-utils/cfdisk.c | 2 +- disk-utils/fdisk.c | 2 +- disk-utils/sfdisk.c | 2 +- include/debug.h | 19 ++++++++++++------- lib/colors.c | 2 +- lib/loopdev.c | 2 +- libblkid/src/init.c | 2 +- libfdisk/src/init.c | 2 +- libmount/src/init.c | 2 +- libsmartcols/src/init.c | 2 +- login-utils/su-common.c | 2 +- misc-utils/lsblk.c | 2 +- misc-utils/whereis.c | 2 +- sys-utils/lsns.c | 2 +- term-utils/script.c | 2 +- 15 files changed, 26 insertions(+), 21 deletions(-) diff --git a/disk-utils/cfdisk.c b/disk-utils/cfdisk.c index 286f88abb..806bff837 100644 --- a/disk-utils/cfdisk.c +++ b/disk-utils/cfdisk.c @@ -264,7 +264,7 @@ UL_DEBUG_DEFINE_MASKNAMES(cfdisk) = UL_DEBUG_EMPTY_MASKNAMES; static void cfdisk_init_debug(void) { - __UL_INIT_DEBUG(cfdisk, CFDISK_DEBUG_, 0, CFDISK_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(cfdisk, CFDISK_DEBUG_, 0, CFDISK_DEBUG); } /* Initialize output columns -- we follow libfdisk fields (usually specific diff --git a/disk-utils/fdisk.c b/disk-utils/fdisk.c index 226f07065..95bc83696 100644 --- a/disk-utils/fdisk.c +++ b/disk-utils/fdisk.c @@ -68,7 +68,7 @@ UL_DEBUG_DEFINE_MASKNAMES(fdisk) = UL_DEBUG_EMPTY_MASKNAMES; static void fdiskprog_init_debug(void) { - __UL_INIT_DEBUG(fdisk, FDISKPROG_DEBUG_, 0, FDISK_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(fdisk, FDISKPROG_DEBUG_, 0, FDISK_DEBUG); } static void reply_sighandler(int sig __attribute__((unused))) diff --git a/disk-utils/sfdisk.c b/disk-utils/sfdisk.c index 5a992342a..9f031126f 100644 --- a/disk-utils/sfdisk.c +++ b/disk-utils/sfdisk.c @@ -119,7 +119,7 @@ struct sfdisk { static void sfdiskprog_init_debug(void) { - __UL_INIT_DEBUG(sfdisk, SFDISKPROG_DEBUG_, 0, SFDISK_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(sfdisk, SFDISKPROG_DEBUG_, 0, SFDISK_DEBUG); } diff --git a/include/debug.h b/include/debug.h index ff51e04d9..39c21d563 100644 --- a/include/debug.h +++ b/include/debug.h @@ -83,15 +83,12 @@ struct ul_debug_maskname { } \ } while (0) - -#define __UL_INIT_DEBUG(lib, pref, mask, env) \ +#define __UL_INIT_DEBUG_FROM_STRING(lib, pref, mask, str) \ do { \ if (lib ## _debug_mask & pref ## INIT) \ ; \ - else if (!mask) { \ - char *str = getenv(# env); \ - if (str) \ - lib ## _debug_mask = ul_debug_parse_envmask(lib ## _masknames, str); \ + else if (!mask && str) { \ + lib ## _debug_mask = ul_debug_parse_mask(lib ## _masknames, str); \ } else \ lib ## _debug_mask = mask; \ if (lib ## _debug_mask) { \ @@ -104,6 +101,14 @@ struct ul_debug_maskname { } while (0) +#define __UL_INIT_DEBUG_FROM_ENV(lib, pref, mask, env) \ + do { \ + const char *envstr = mask ? NULL : getenv(# env); \ + __UL_INIT_DEBUG_FROM_STRING(lib, pref, mask, envstr); \ + } while (0) + + + static inline void __attribute__ ((__format__ (__printf__, 1, 2))) ul_debug(const char *mesg, ...) { @@ -114,7 +119,7 @@ ul_debug(const char *mesg, ...) fputc('\n', stderr); } -static inline int ul_debug_parse_envmask( +static inline int ul_debug_parse_mask( const struct ul_debug_maskname flagnames[], const char *mask) { diff --git a/lib/colors.c b/lib/colors.c index f82496d7a..6ee81ccbb 100644 --- a/lib/colors.c +++ b/lib/colors.c @@ -646,7 +646,7 @@ done: static void termcolors_init_debug(void) { - __UL_INIT_DEBUG(termcolors, TERMCOLORS_DEBUG_, 0, TERMINAL_COLORS_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(termcolors, TERMCOLORS_DEBUG_, 0, TERMINAL_COLORS_DEBUG); } static int colors_terminal_is_ready(void) diff --git a/lib/loopdev.c b/lib/loopdev.c index 7274f8480..e37b29213 100644 --- a/lib/loopdev.c +++ b/lib/loopdev.c @@ -64,7 +64,7 @@ static void loopdev_init_debug(void) { if (loopdev_debug_mask) return; - __UL_INIT_DEBUG(loopdev, LOOPDEV_DEBUG_, 0, LOOPDEV_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(loopdev, LOOPDEV_DEBUG_, 0, LOOPDEV_DEBUG); } /* diff --git a/libblkid/src/init.c b/libblkid/src/init.c index a73b7fd07..6dc9ffd56 100644 --- a/libblkid/src/init.c +++ b/libblkid/src/init.c @@ -50,7 +50,7 @@ void blkid_init_debug(int mask) if (libblkid_debug_mask) return; - __UL_INIT_DEBUG(libblkid, BLKID_DEBUG_, mask, LIBBLKID_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(libblkid, BLKID_DEBUG_, mask, LIBBLKID_DEBUG); if (libblkid_debug_mask != BLKID_DEBUG_INIT && libblkid_debug_mask != (BLKID_DEBUG_HELP|BLKID_DEBUG_INIT)) { diff --git a/libfdisk/src/init.c b/libfdisk/src/init.c index 0275836bf..b25a876b3 100644 --- a/libfdisk/src/init.c +++ b/libfdisk/src/init.c @@ -43,7 +43,7 @@ void fdisk_init_debug(int mask) if (libfdisk_debug_mask) return; - __UL_INIT_DEBUG(libfdisk, LIBFDISK_DEBUG_, mask, LIBFDISK_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(libfdisk, LIBFDISK_DEBUG_, mask, LIBFDISK_DEBUG); if (libfdisk_debug_mask != LIBFDISK_DEBUG_INIT diff --git a/libmount/src/init.c b/libmount/src/init.c index c927fb7f6..29be282d5 100644 --- a/libmount/src/init.c +++ b/libmount/src/init.c @@ -51,7 +51,7 @@ void mnt_init_debug(int mask) if (libmount_debug_mask) return; - __UL_INIT_DEBUG(libmount, MNT_DEBUG_, mask, LIBMOUNT_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(libmount, MNT_DEBUG_, mask, LIBMOUNT_DEBUG); if (libmount_debug_mask != MNT_DEBUG_INIT && libmount_debug_mask != (MNT_DEBUG_HELP|MNT_DEBUG_INIT)) { diff --git a/libsmartcols/src/init.c b/libsmartcols/src/init.c index 806b0e1a2..104e43b64 100644 --- a/libsmartcols/src/init.c +++ b/libsmartcols/src/init.c @@ -45,7 +45,7 @@ void scols_init_debug(int mask) if (libsmartcols_debug_mask) return; - __UL_INIT_DEBUG(libsmartcols, SCOLS_DEBUG_, mask, LIBSMARTCOLS_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(libsmartcols, SCOLS_DEBUG_, mask, LIBSMARTCOLS_DEBUG); if (libsmartcols_debug_mask != SCOLS_DEBUG_INIT && libsmartcols_debug_mask != (SCOLS_DEBUG_HELP|SCOLS_DEBUG_INIT)) { diff --git a/login-utils/su-common.c b/login-utils/su-common.c index b1be7c6ef..32cdd1954 100644 --- a/login-utils/su-common.c +++ b/login-utils/su-common.c @@ -172,7 +172,7 @@ su_catch_sig(int sig) static void su_init_debug(void) { - __UL_INIT_DEBUG(su, SU_DEBUG_, 0, SU_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(su, SU_DEBUG_, 0, SU_DEBUG); } static void init_tty(struct su_context *su) diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c index 9e9f3cf81..6a16f6500 100644 --- a/misc-utils/lsblk.c +++ b/misc-utils/lsblk.c @@ -301,7 +301,7 @@ struct blkdev_cxt { static void lsblk_init_debug(void) { - __UL_INIT_DEBUG(lsblk, LSBLK_DEBUG_, 0, LSBLK_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(lsblk, LSBLK_DEBUG_, 0, LSBLK_DEBUG); } static int is_maj_excluded(int maj) diff --git a/misc-utils/whereis.c b/misc-utils/whereis.c index c6bf2fa4b..828106ffe 100644 --- a/misc-utils/whereis.c +++ b/misc-utils/whereis.c @@ -178,7 +178,7 @@ static const char *srcdirs[] = { static void whereis_init_debug(void) { - __UL_INIT_DEBUG(whereis, WHEREIS_DEBUG_, 0, WHEREIS_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(whereis, WHEREIS_DEBUG_, 0, WHEREIS_DEBUG); } static const char *whereis_type_to_name(int type) diff --git a/sys-utils/lsns.c b/sys-utils/lsns.c index 4a39f66ef..d36269df5 100644 --- a/sys-utils/lsns.c +++ b/sys-utils/lsns.c @@ -194,7 +194,7 @@ static int netlink_fd = -1; static void lsns_init_debug(void) { - __UL_INIT_DEBUG(lsns, LSNS_DEBUG_, 0, LSNS_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(lsns, LSNS_DEBUG_, 0, LSNS_DEBUG); } static int ns_name2type(const char *name) diff --git a/term-utils/script.c b/term-utils/script.c index f991de14e..d5ffa27f1 100644 --- a/term-utils/script.c +++ b/term-utils/script.c @@ -132,7 +132,7 @@ struct script_control { static void script_init_debug(void) { - __UL_INIT_DEBUG(script, SCRIPT_DEBUG_, 0, SCRIPT_DEBUG); + __UL_INIT_DEBUG_FROM_ENV(script, SCRIPT_DEBUG_, 0, SCRIPT_DEBUG); } /* -- cgit v1.2.3-55-g7522