diff options
author | Karel Zak <kzak@redhat.com> | 2014-03-19 17:20:57 +0100 |
---|---|---|
committer | Karel Zak <kzak@redhat.com> | 2014-04-03 12:29:16 +0200 |
commit | e906be066ec378843e81a22ad49e92c3e412b928 (patch) | |
tree | bb7c2384daf5bbc82c6cc58dd178b0e2fdb46a4e /libsmartcols | |
parent | 62d2e2e5389daf4120c945300e89705a91d93ff5 (diff) | |
download | util-linux-e906be066ec378843e81a22ad49e92c3e412b928.tar.gz |
libsmartcols: add reduce term width functionality
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libsmartcols')
-rw-r--r-- | libsmartcols/src/libsmartcols.h.in | 1 | ||||
-rw-r--r-- | libsmartcols/src/smartcolsP.h | 1 | ||||
-rw-r--r-- | libsmartcols/src/table.c | 10 | ||||
-rw-r--r-- | libsmartcols/src/table_print.c | 1 |
4 files changed, 13 insertions, 0 deletions
diff --git a/libsmartcols/src/libsmartcols.h.in b/libsmartcols/src/libsmartcols.h.in index c5875fd1c..93b205e2f 100644 --- a/libsmartcols/src/libsmartcols.h.in +++ b/libsmartcols/src/libsmartcols.h.in @@ -134,6 +134,7 @@ extern int scols_table_set_symbols(struct libscols_table *tb, struct libscols_sy extern int scols_table_set_stream(struct libscols_table *tb, FILE *stream); extern FILE *scols_table_get_stream(struct libscols_table *tb); +extern int scols_table_reduce_termwidth(struct libscols_table *tb, size_t reduce); /* table_print.c */ extern int scols_print_table(struct libscols_table *tb); diff --git a/libsmartcols/src/smartcolsP.h b/libsmartcols/src/smartcolsP.h index d8cf2ee56..d7211438e 100644 --- a/libsmartcols/src/smartcolsP.h +++ b/libsmartcols/src/smartcolsP.h @@ -104,6 +104,7 @@ struct libscols_table { size_t ncols; /* number of columns */ size_t nlines; /* number of lines */ size_t termwidth; /* terminal width */ + size_t termreduce; /* extra blank space */ int is_term; /* is a tty? */ int flags; int first_run; diff --git a/libsmartcols/src/table.c b/libsmartcols/src/table.c index 5c45aeeeb..770aaccc2 100644 --- a/libsmartcols/src/table.c +++ b/libsmartcols/src/table.c @@ -270,6 +270,16 @@ FILE *scols_table_get_stream(struct libscols_table *tb) return tb ? tb->out: NULL; } +int scols_table_reduce_termwidth(struct libscols_table *tb, size_t reduce) +{ + assert(tb); + if (!tb) + return -EINVAL; + + tb->termreduce = reduce; + return 0; +} + /* * @tb: table * @: number of column (0..N) diff --git a/libsmartcols/src/table_print.c b/libsmartcols/src/table_print.c index 8504c2c4d..2edd185b4 100644 --- a/libsmartcols/src/table_print.c +++ b/libsmartcols/src/table_print.c @@ -558,6 +558,7 @@ int scols_print_table(struct libscols_table *tb) tb->termwidth = get_terminal_width(); if (tb->termwidth <= 0) tb->termwidth = 80; + tb->termwidth -= tb->termreduce; } line_sz = tb->termwidth; |