]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libsmartcols: add multi-line cells to samples
authorKarel Zak <kzak@redhat.com>
Wed, 5 Jan 2022 10:04:05 +0000 (11:04 +0100)
committerKarel Zak <kzak@redhat.com>
Wed, 5 Jan 2022 10:04:05 +0000 (11:04 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
libsmartcols/samples/grouping-overlay.c
libsmartcols/samples/grouping-simple.c

index ef125a660c7c8d2f0d6aa4ceca49d6a220e82d3c..d55c57d6969ac52f4fd3e312e340e05c971420f0 100644 (file)
@@ -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");
index 8f363feea35a88226128cf377b57d2bd21c9da40..6b9cbcf1a5b481c01350f19ebfc46b09673ee63c 100644 (file)
@@ -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");