.IP "\fB\-E, \-\-table-noextreme\fP \fIcolumns\fP"
Specify columns where is possible to ignore unusually long (longer than
average) cells when calculate column width. The option has impact to the width
-calculation, but the printed text is not affected.
+calculation and table formatting, but the printed text is not affected.
+
+The option is used for the last visible column by default.
.IP "\fB\-W, \-\-table-wrap\fP \fIcolumns\fP"
Specify columns where is possible to use multi-line cell for long text when
necessary.
return scols_table_get_column(ctl->tab, colnum);
}
+static struct libscols_column *get_last_visible_column(struct column_control *ctl)
+{
+ struct libscols_iter *itr;
+ struct libscols_column *cl, *last = NULL;
+
+ itr = scols_new_iter(SCOLS_ITER_FORWARD);
+ if (!itr)
+ err_oom();
+
+ while (scols_table_next_column(ctl->tab, itr, &cl) == 0) {
+ if (scols_column_get_flags(cl) & SCOLS_FL_HIDDEN)
+ continue;
+ last = cl;
+ }
+
+ scols_free_iter(itr);
+ return last;
+}
static int column_set_flag(struct libscols_column *cl, int fl)
{
apply_columnflag_from_list(ctl, ctl->tab_colhide,
SCOLS_FL_HIDDEN , _("failed to parse --table-hide list"));
+ if (!ctl->tab_colnoextrem) {
+ struct libscols_column *cl = get_last_visible_column(ctl);
+ if (cl)
+ column_set_flag(cl, SCOLS_FL_NOEXTREMES);
+ }
+
if (ctl->tree)
create_tree(ctl);