diff options
author | Karel Zak | 2013-11-22 14:06:44 +0100 |
---|---|---|
committer | Karel Zak | 2014-03-11 11:35:12 +0100 |
commit | 735822963753884202a3a020121c9289752b8306 (patch) | |
tree | f7a983eb5116a398add7f78c3ff0a0e5db4880a4 | |
parent | lib/tt: add TT_FL_MAX to fill screen (diff) | |
download | kernel-qcow2-util-linux-735822963753884202a3a020121c9289752b8306.tar.gz kernel-qcow2-util-linux-735822963753884202a3a020121c9289752b8306.tar.xz kernel-qcow2-util-linux-735822963753884202a3a020121c9289752b8306.zip |
lib/tt: add reduce term width functionality
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r-- | include/tt.h | 2 | ||||
-rw-r--r-- | lib/tt.c | 13 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/tt.h b/include/tt.h index b1fbf927e..781b953ae 100644 --- a/include/tt.h +++ b/include/tt.h @@ -37,6 +37,7 @@ struct tt { FILE *out; /* output stream */ size_t ncols; /* number of columns */ size_t termwidth; /* terminal width */ + size_t termreduce; /* reduce the original termwidth */ int is_term; /* is a tty? */ int flags; int first_run; @@ -80,6 +81,7 @@ struct tt_line { extern struct tt *tt_new_table(int flags); extern int tt_get_flags(struct tt *tb); extern void tt_set_flags(struct tt *tb, int flags); +extern void tt_set_termreduce(struct tt *tb, size_t re); extern void tt_free_table(struct tt *tb); extern void tt_remove_lines(struct tt *tb); extern int tt_print_table(struct tt *tb); @@ -239,6 +239,17 @@ void tt_set_stream(struct tt *tb, FILE *out) tb->out = out; } +/* + * Reduce terminal size, the final table size will be + * termwidth - termreduce. + */ +void tt_set_termreduce(struct tt *tb, size_t re) +{ + if (!tb) + return; + tb->termreduce = re; +} + size_t tb_get_nlines(struct tt *tb) { struct list_head *p; @@ -943,6 +954,8 @@ int tt_print_table(struct tt *tb) tb->termwidth = get_terminal_width(); if (tb->termwidth <= 0) tb->termwidth = 80; + + tb->termwidth -= tb->termreduce; } line_sz = tb->termwidth; |