From: Karel Zak Date: Wed, 5 Jan 2022 10:04:05 +0000 (+0100) Subject: libsmartcols: add multi-line cells to samples X-Git-Tag: v2.38-rc1~74 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dd69e525fd847a9af54326b72209d99c279b70d1;p=thirdparty%2Futil-linux.git libsmartcols: add multi-line cells to samples Signed-off-by: Karel Zak --- diff --git a/libsmartcols/samples/grouping-overlay.c b/libsmartcols/samples/grouping-overlay.c index ef125a660c..d55c57d696 100644 --- a/libsmartcols/samples/grouping-overlay.c +++ b/libsmartcols/samples/grouping-overlay.c @@ -26,10 +26,16 @@ enum { COL_NAME, COL_DATA }; /* add columns to the @tb */ static void setup_columns(struct libscols_table *tb) { + struct libscols_column *cl; + if (!scols_table_new_column(tb, "NAME", 0, SCOLS_FL_TREE)) goto fail; - if (!scols_table_new_column(tb, "DATA", 0, 0)) + cl = scols_table_new_column(tb, "DATA", 0, SCOLS_FL_WRAP); + if (!cl) goto fail; + scols_column_set_wrapfunc(cl, scols_wrapnl_chunksize, + scols_wrapnl_nextchunk, NULL); + scols_column_set_safechars(cl, "\n"); return; fail: scols_unref_table(tb); @@ -96,20 +102,20 @@ int main(int argc, char *argv[]) add_line(tb, NULL, "Alone", "bla bla bla"); - p1 = add_line(tb, NULL, "A", "bla bla bla"); - add_line(tb, p1, "A:B", "bla bla bla"); - add_line(tb, p1, "A:C", "bla bla bla"); + p1 = add_line(tb, NULL, "A", "bla bla\nbla"); + add_line(tb, p1, "A:B", "bla bla\nbla"); + add_line(tb, p1, "A:C", "bla bla\nbla"); - g1 = add_line(tb, NULL, "B", "bla bla bla"); + g1 = add_line(tb, NULL, "B", "bla bla\nbla"); - g2 = add_line(tb, NULL, "C", "bla bla bla"); - ln = add_line(tb, NULL, "D", "bla bla bla"); + g2 = add_line(tb, NULL, "C", "bla bla\nbla"); + ln = add_line(tb, NULL, "D", "bla bla\nbla"); scols_table_group_lines(tb, g2, ln, 0); - ln = add_line(tb, NULL, "G2:A", "alb alb alb"); + ln = add_line(tb, NULL, "G2:A", "alb alb\nalb"); scols_line_link_group(ln, g2, 0); - ln = add_line(tb, NULL, "E", "bla bla bla"); + ln = add_line(tb, NULL, "E", "bla bla\nbla"); scols_table_group_lines(tb, g1, ln, 0); @@ -118,7 +124,7 @@ int main(int argc, char *argv[]) add_line(tb, NULL, "G", "bla bla bla"); - g3 = ln = add_line(tb, NULL, "G1:B", "alb alb alb"); + g3 = ln = add_line(tb, NULL, "G1:B", "alb alb\nalb"); scols_line_link_group(ln, g1, 0); ln = add_line(tb, NULL, "F", "bla bla bla"); diff --git a/libsmartcols/samples/grouping-simple.c b/libsmartcols/samples/grouping-simple.c index 8f363feea3..6b9cbcf1a5 100644 --- a/libsmartcols/samples/grouping-simple.c +++ b/libsmartcols/samples/grouping-simple.c @@ -26,10 +26,19 @@ enum { COL_NAME, COL_DATA }; /* add columns to the @tb */ static void setup_columns(struct libscols_table *tb) { + struct libscols_column *cl; + if (!scols_table_new_column(tb, "NAME", 0, SCOLS_FL_TREE)) goto fail; - if (!scols_table_new_column(tb, "DATA", 0, 0)) + cl = scols_table_new_column(tb, "DATA", 0, SCOLS_FL_WRAP); + if (!cl) goto fail; + + scols_column_set_wrapfunc(cl, scols_wrapnl_chunksize, + scols_wrapnl_nextchunk, + NULL); + scols_column_set_safechars(cl, "\n"); + return; fail: scols_unref_table(tb); @@ -101,15 +110,17 @@ int main(int argc, char *argv[]) add_line(tb, p1, "A:C", "bla bla bla"); g1 = add_line(tb, NULL, "B", "bla bla bla"); - add_line(tb, NULL, "C", "bla bla bla"); - p1 = add_line(tb, NULL, "D", "bla bla bla"); + add_line(tb, NULL, "C", "bla\nfoo"); + p1 = add_line(tb, NULL, "D", "bla bla\nbar"); p2 = add_line(tb, p1, "D:A", "bla bla bla"); - ln = add_line(tb, p2, "D:A:A", "bla bla bla"); + ln = add_line(tb, p2, "D:A:A", "bla\nbla\nbla"); scols_table_group_lines(tb, g1, ln, 0); add_line(tb, p1, "D:B", "bla bla bla"); + add_line(tb, p1, "D:C", "bla\nother bla"); + add_line(tb, p1, "D:D", "bla bla bla"); ln = add_line(tb, NULL, "E", "bla bla bla"); scols_table_group_lines(tb, g1, ln, 0); @@ -125,13 +136,13 @@ int main(int argc, char *argv[]) scols_line_link_group(ln, g1, 0); p1 = ln; - add_line(tb, p1, "G1:A:A", "bla bla bla"); + add_line(tb, p1, "G1:A:A", "bla\nbla bla"); add_line(tb, p1, "G1:A:B", "bla bla bla"); add_line(tb, p1, "G1:A:C", "bla bla bla"); add_line(tb, NULL, "G", "bla bla bla"); - ln = add_line(tb, NULL, "G1:B", "alb alb alb"); + ln = add_line(tb, NULL, "G1:B", "alb alb\nalb"); scols_line_link_group(ln, g1, 0); add_line(tb, NULL, "foo", "bla bla bla");