libsmartcols: avoid cumulative width reduction during printing
__scols_initialize_printing() applied scols_table_reduce_termwidth()
by mutating table->termwidth via scols_table_set_termwidth().
When printing is performed repeatedly on the same table (e.g. in
interactive applications), this causes the effective output width
to shrink on each invocation, eventually truncating output.
Introduce an internally computed effective output width and stop
modifying termwidth during printing. All layout calculations are
updated to use the derived width instead, making the printing path
idempotent.
No functional change is expected for single-shot printing.
Addresses: https://github.com/util-linux/util-linux/issues/3895 Suggested-by: Karel Zak <kzak@redhat.com> Signed-off-by: Alessandro Ratti <alessandro@0x65c.net>