From 37948503c995d2986e95819f6f5b2c3037dbc23d Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 7 Sep 2016 12:25:06 +0200 Subject: [PATCH] libsmartcols: support LIBSMARTCOLS_DEBUG_PADDING=on This env.variable forces libsmartcols to use visible padding chars. The standard debug has to be enabled (to minimize overhead for non-debug execution). For example: $ LIBSMARTCOLS_DEBUG=all LIBSMARTCOLS_DEBUG_PADDING=on findmnt 2> ~/log Signed-off-by: Karel Zak --- disk-utils/cfdisk.8 | 2 ++ disk-utils/fdisk.8 | 2 ++ libsmartcols/src/smartcolsP.h | 1 + libsmartcols/src/table.c | 16 ++++++++++++++++ libsmartcols/src/table_print.c | 4 +++- misc-utils/findmnt.8 | 2 ++ misc-utils/lsblk.8 | 2 ++ 7 files changed, 28 insertions(+), 1 deletion(-) diff --git a/disk-utils/cfdisk.8 b/disk-utils/cfdisk.8 index 68cec9492..6204bdc4f 100644 --- a/disk-utils/cfdisk.8 +++ b/disk-utils/cfdisk.8 @@ -184,6 +184,8 @@ enables libfdisk debug output. enables libblkid debug output. .IP LIBSMARTCOLS_DEBUG=all enables libsmartcols debug output. +.IP LIBSMARTCOLS_DEBUG_PADDING=on +use visible padding characters. Requires enabled LIBSMARTCOLS_DEBUG. .SH "SEE ALSO" .BR fdisk (8), diff --git a/disk-utils/fdisk.8 b/disk-utils/fdisk.8 index 5d644d8d6..70e88e36a 100644 --- a/disk-utils/fdisk.8 +++ b/disk-utils/fdisk.8 @@ -354,6 +354,8 @@ enables libfdisk debug output. enables libblkid debug output. .IP LIBSMARTCOLS_DEBUG=all enables libsmartcols debug output. +.IP LIBSMARTCOLS_DEBUG_PADDING=on +use visible padding characters. Requires enabled LIBSMARTCOLS_DEBUG. .SH "SEE ALSO" .BR cfdisk (8), diff --git a/libsmartcols/src/smartcolsP.h b/libsmartcols/src/smartcolsP.h index c1bb1e07f..01b132752 100644 --- a/libsmartcols/src/smartcolsP.h +++ b/libsmartcols/src/smartcolsP.h @@ -157,6 +157,7 @@ struct libscols_table { unsigned int ascii :1, /* don't use unicode */ colors_wanted :1, /* enable colors */ is_term :1, /* isatty() */ + padding_debug :1, /* output visible padding chars */ maxout :1, /* maximize output */ header_printed :1, /* header already printed */ no_headings :1, /* don't print header */ diff --git a/libsmartcols/src/table.c b/libsmartcols/src/table.c index dc3a3016c..10320f0be 100644 --- a/libsmartcols/src/table.c +++ b/libsmartcols/src/table.c @@ -38,6 +38,20 @@ list_entry_is_last(&(_cl)->cl_columns, &(_tb)->tb_columns) +static void check_padding_debug(struct libscols_table *tb) +{ + const char *str; + + assert(libsmartcols_debug_mask); /* debug has to be enabled! */ + + str = getenv("LIBSMARTCOLS_DEBUG_PADDING"); + if (!str || (strcmp(str, "on") != 0 && strcmp(str, "1") != 0)) + return; + + DBG(INIT, ul_debugobj(tb, "padding debug: ENABLE")); + tb->padding_debug = 1; +} + /** * scols_new_table: * @@ -58,6 +72,8 @@ struct libscols_table *scols_new_table(void) INIT_LIST_HEAD(&tb->tb_columns); DBG(TAB, ul_debugobj(tb, "alloc")); + ON_DBG(INIT, check_padding_debug(tb)); + return tb; } diff --git a/libsmartcols/src/table_print.c b/libsmartcols/src/table_print.c index 910a9137a..bdac0b296 100644 --- a/libsmartcols/src/table_print.c +++ b/libsmartcols/src/table_print.c @@ -37,11 +37,13 @@ * fallback to be more robust and backwardly compatible. */ #define titlepadding_symbol(tb) ((tb)->symbols->title_padding ? (tb)->symbols->title_padding : " ") -#define cellpadding_symbol(tb) ((tb)->symbols->cell_padding ? (tb)->symbols->cell_padding: " ") #define branch_symbol(tb) ((tb)->symbols->branch ? (tb)->symbols->branch : "|-") #define vertical_symbol(tb) ((tb)->symbols->vert ? (tb)->symbols->vert : "|") #define right_symbol(tb) ((tb)->symbols->right ? (tb)->symbols->right : "-") +#define cellpadding_symbol(tb) ((tb)->padding_debug ? "." : \ + ((tb)->symbols->cell_padding ? (tb)->symbols->cell_padding: " ")) + /* This is private struct to work with output data */ struct libscols_buffer { diff --git a/misc-utils/findmnt.8 b/misc-utils/findmnt.8 index 3f09b1900..fd26f5e5c 100644 --- a/misc-utils/findmnt.8 +++ b/misc-utils/findmnt.8 @@ -267,6 +267,8 @@ overrides the default location of the mtab file enables libmount debug output .IP LIBSMARTCOLS_DEBUG=all enables libsmartcols debug output +.IP LIBSMARTCOLS_DEBUG_PADDING=on +use visible padding characters. Requires enabled LIBSMARTCOLS_DEBUG. .SH AUTHORS .nf Karel Zak diff --git a/misc-utils/lsblk.8 b/misc-utils/lsblk.8 index 3e74e37ce..d82d232b3 100644 --- a/misc-utils/lsblk.8 +++ b/misc-utils/lsblk.8 @@ -161,6 +161,8 @@ enables libblkid debug output. enables libmount debug output. .IP LIBSMARTCOLS_DEBUG=all enables libsmartcols debug output. +.IP LIBSMARTCOLS_DEBUG_PADDING=on +use visible padding characters. Requires enabled LIBSMARTCOLS_DEBUG. .SH SEE ALSO .BR findmnt (8), .BR blkid (8),