diff options
author | Karel Zak | 2016-09-07 12:25:06 +0200 |
---|---|---|
committer | Karel Zak | 2016-09-07 12:25:06 +0200 |
commit | 37948503c995d2986e95819f6f5b2c3037dbc23d (patch) | |
tree | 18a516a5ff53c43d1cff6fed7bae5a97b823e2d5 /libsmartcols | |
parent | libsmartcols: add fallback for symbols (diff) | |
download | kernel-qcow2-util-linux-37948503c995d2986e95819f6f5b2c3037dbc23d.tar.gz kernel-qcow2-util-linux-37948503c995d2986e95819f6f5b2c3037dbc23d.tar.xz kernel-qcow2-util-linux-37948503c995d2986e95819f6f5b2c3037dbc23d.zip |
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 <kzak@redhat.com>
Diffstat (limited to 'libsmartcols')
-rw-r--r-- | libsmartcols/src/smartcolsP.h | 1 | ||||
-rw-r--r-- | libsmartcols/src/table.c | 16 | ||||
-rw-r--r-- | libsmartcols/src/table_print.c | 4 |
3 files changed, 20 insertions, 1 deletions
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 { |