]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
column: add --table-wrap
authorKarel Zak <kzak@redhat.com>
Wed, 29 Mar 2017 10:46:54 +0000 (12:46 +0200)
committerKarel Zak <kzak@redhat.com>
Tue, 2 May 2017 10:18:00 +0000 (12:18 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
text-utils/column.1
text-utils/column.c

index 8117b6bf93356b7c7e0c5674c7a3001417f905a2..0889bfe8cd4b0c42c378b17637def7bc734fd317 100644 (file)
@@ -77,6 +77,10 @@ average) cells when calculate column width.  The option has impact to the width
 calculation, but the printed text is not affected.  The \fIcolumns\fP is
 comma separated list of the column names (see \fB\-\-table-columns\fP) or
 column number.
+.IP "\fB\-W, \-\-table-wrap\fP \fIcolumns\fP"
+Specify columns where is possible to use multi-line cell for long text when
+necessary.  The \fIcolumns\fP is comma separated list of the column names (see
+\fB\-\-table-columns\fP) or column number.
 .IP "\fB\-n, \-\-table-name\fP \fIname\fP"
 Specify the table name used for JSON output. The defaout is "table".
 .IP "\fB\-x, \-\-fillrows\fP"
index 66f7e6c5458f01a6b7899ae0b666714d65ade181..5f5e4ea335907a31d2094665aae4d048ee1ee159 100644 (file)
@@ -75,6 +75,7 @@ struct column_control {
        const char *tab_colright;       /* --table-right */
        const char *tab_coltrunc;       /* --table-trunc */
        const char *tab_colnoextrem;    /* --table-noextreme */
+       const char *tab_colwrap;        /* --table-wrap */
 
        wchar_t *input_separator;
        const char *output_separator;
@@ -259,6 +260,11 @@ static void modify_table(struct column_control *ctl)
        if (ctl->tab_colnoextrem)
                apply_columnflag_from_list(ctl, ctl->tab_colnoextrem,
                                SCOLS_FL_NOEXTREMES , _("failed to parse --table-noextreme list"));
+
+       if (ctl->tab_colwrap)
+               apply_columnflag_from_list(ctl, ctl->tab_colwrap,
+                               SCOLS_FL_WRAP , _("failed to parse --table-wrap list"));
+
 }
 
 static int add_line_to_table(struct column_control *ctl, wchar_t *wcs)
@@ -433,7 +439,8 @@ static void __attribute__((__noreturn__)) usage(int rc)
        fputs(_(" -N, --table-columns <names>      comma separated columns names\n"), out);
        fputs(_(" -R, --table-right <columns>      right align text in these columns\n"), out);
        fputs(_(" -T, --table-truncate <columns>   truncate text in the columns when necessary\n"), out);
-       fputs(_(" -E, --table-noextreme <column>   don't count long text from the columns to column width\n"), out);
+       fputs(_(" -E, --table-noextreme <columns>  don't count long text from the columns to column width\n"), out);
+       fputs(_(" -W, --table-wrap <columns>       wrap text in the columns when necessary\n"), out);
        fputs(_(" -n, --table-name <name>          table name for JSON output\n"), out);
        fputs(_(" -s, --separator <string>         possible table delimiters\n"), out);
        fputs(_(" -o, --output-separator <string>  columns separator for table output\n"
@@ -472,6 +479,7 @@ int main(int argc, char **argv)
                { "table-right",         required_argument, NULL, 'R' },
                { "table-truncate",      required_argument, NULL, 'T' },
                { "table-noextreme",     required_argument, NULL, 'E' },
+               { "table-wrap",          required_argument, NULL, 'W' },
                { "table-name",          required_argument, NULL, 'n' },
                { "version",             no_argument,       NULL, 'V' },
                { NULL, 0, NULL, 0 },
@@ -492,7 +500,7 @@ int main(int argc, char **argv)
        ctl.output_separator = "  ";
        ctl.input_separator = mbs_to_wcs("\t ");
 
-       while ((c = getopt_long(argc, argv, "hVc:Jn:N:R:s:txo:T:E:", longopts, NULL)) != -1) {
+       while ((c = getopt_long(argc, argv, "hVc:Jn:N:R:s:txo:T:E:W:", longopts, NULL)) != -1) {
 
                err_exclusive_options(c, longopts, excl, excl_st);
 
@@ -536,6 +544,9 @@ int main(int argc, char **argv)
                case 't':
                        ctl.mode = COLUMN_MODE_TABLE;
                        break;
+               case 'W':
+                       ctl.tab_colwrap = optarg;
+                       break;
                case 'x':
                        ctl.mode = COLUMN_MODE_FILLROWS;
                        break;