* [PATCH 2/4] column: Call mbs_to_wcs("") only once @ 2020-09-20 13:08 Lennard Hofmann 2020-09-20 13:08 ` [PATCH 3/4] column: Deprecate --table-empty-lines in favor of --keep-empty-lines Lennard Hofmann 2020-09-20 13:08 ` [PATCH 4/4] tests: column --keep-empty-lines in cols mode Lennard Hofmann 0 siblings, 2 replies; 4+ messages in thread From: Lennard Hofmann @ 2020-09-20 13:08 UTC (permalink / raw) To: util-linux; +Cc: Lennard Hofmann Signed-off-by: Lennard Hofmann <lennard.hofmann@web.de> --- This is an optional patch to improve performance slightly while only adding three lines of code. text-utils/column.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/text-utils/column.c b/text-utils/column.c index bc7851472..d83d8d6d7 100644 --- a/text-utils/column.c +++ b/text-utils/column.c @@ -496,14 +496,18 @@ static void add_entry(struct column_control *ctl, size_t *maxents, wchar_t *wcs) ctl->ents[ctl->nents] = wcs; } -static void add_empty_entry(struct column_control *ctl, size_t *maxents) +static void add_empty_entry(struct column_control *ctl, size_t *maxents, + wchar_t *empty) { - add_entry(ctl, maxents, mbs_to_wcs("")); + if (empty == NULL) + empty = mbs_to_wcs(""); + add_entry(ctl, maxents, empty); ctl->nents++; } static int read_input(struct column_control *ctl, FILE *fp) { + wchar_t *empty = NULL; char *buf = NULL; size_t bufsz = 0; size_t maxents = 0; @@ -531,7 +535,7 @@ static int read_input(struct column_control *ctl, FILE *fp) if (ctl->mode == COLUMN_MODE_TABLE) add_emptyline_to_table(ctl); else - add_empty_entry(ctl, &maxents); + add_empty_entry(ctl, &maxents, empty); } continue; } -- 2.28.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/4] column: Deprecate --table-empty-lines in favor of --keep-empty-lines 2020-09-20 13:08 [PATCH 2/4] column: Call mbs_to_wcs("") only once Lennard Hofmann @ 2020-09-20 13:08 ` Lennard Hofmann 2020-09-21 13:08 ` Karel Zak 2020-09-20 13:08 ` [PATCH 4/4] tests: column --keep-empty-lines in cols mode Lennard Hofmann 1 sibling, 1 reply; 4+ messages in thread From: Lennard Hofmann @ 2020-09-20 13:08 UTC (permalink / raw) To: util-linux; +Cc: Lennard Hofmann `--table-empty-lines` gives the false impression that the option only applies to table mode. Signed-off-by: Lennard Hofmann <lennard.hofmann@web.de> --- text-utils/column.1 | 8 +++++--- text-utils/column.c | 9 +++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/text-utils/column.1 b/text-utils/column.1 index 86886f3bf..d10fc7efb 100644 --- a/text-utils/column.1 +++ b/text-utils/column.1 @@ -110,9 +110,11 @@ hide all unnamed columns (see \-\-table-columns). Specify columns order on output. .IP "\fB\-n, \-\-table-name\fP \fIname\fP" Specify the table name used for JSON output. The default is "table". -.IP "\fB\-L, \-\-table\-empty\-lines\fP" -Insert empty line to the table for each empty line on input. The default -is ignore empty lines at all. +.IP "\fB\-L, \-\-keep\-empty\-lines\fP" +Preserve whitespace-only lines in the input. The default is ignore empty lines +at all. This option’s original name was \-\-table-empty-lines but is now +deprecated because it gives the false impression that the option only applies +to table mode. .IP "\fB\-r, \-\-tree\fP \fIcolumn\fP" Specify column to use tree-like output. Note that the circular dependencies and other anomalies in child and parent relation are silently ignored. diff --git a/text-utils/column.c b/text-utils/column.c index d83d8d6d7..bc0c1fd11 100644 --- a/text-utils/column.c +++ b/text-utils/column.c @@ -96,7 +96,7 @@ struct column_control { unsigned int greedy :1, json :1, header_repeat :1, - tab_empty_lines :1, /* --table-empty-lines */ + keep_empty_lines :1, /* --keep-empty-lines */ tab_noheadings :1; }; @@ -531,7 +531,7 @@ static int read_input(struct column_control *ctl, FILE *fp) *p = '\0'; } if (!str || !*str) { - if (ctl->tab_empty_lines) { + if (ctl->keep_empty_lines) { if (ctl->mode == COLUMN_MODE_TABLE) add_emptyline_to_table(ctl); else @@ -709,6 +709,7 @@ int main(int argc, char **argv) { "fillrows", no_argument, NULL, 'x' }, { "help", no_argument, NULL, 'h' }, { "json", no_argument, NULL, 'J' }, + { "keep-empty-lines", no_argument, NULL, 'L' }, { "output-separator", required_argument, NULL, 'o' }, { "output-width", required_argument, NULL, 'c' }, { "separator", required_argument, NULL, 's' }, @@ -723,7 +724,7 @@ int main(int argc, char **argv) { "table-right", required_argument, NULL, 'R' }, { "table-truncate", required_argument, NULL, 'T' }, { "table-wrap", required_argument, NULL, 'W' }, - { "table-empty-lines", no_argument, NULL, 'L' }, + { "table-empty-lines", no_argument, NULL, 'L' }, /* deprecated */ { "table-header-repeat", no_argument, NULL, 'e' }, { "tree", required_argument, NULL, 'r' }, { "tree-id", required_argument, NULL, 'i' }, @@ -774,7 +775,7 @@ int main(int argc, char **argv) ctl.mode = COLUMN_MODE_TABLE; break; case 'L': - ctl.tab_empty_lines = 1; + ctl.keep_empty_lines = 1; break; case 'l': ctl.maxncols = strtou32_or_err(optarg, _("invalid columns limit argument")); -- 2.28.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 3/4] column: Deprecate --table-empty-lines in favor of --keep-empty-lines 2020-09-20 13:08 ` [PATCH 3/4] column: Deprecate --table-empty-lines in favor of --keep-empty-lines Lennard Hofmann @ 2020-09-21 13:08 ` Karel Zak 0 siblings, 0 replies; 4+ messages in thread From: Karel Zak @ 2020-09-21 13:08 UTC (permalink / raw) To: Lennard Hofmann; +Cc: util-linux On Sun, Sep 20, 2020 at 03:08:18PM +0200, Lennard Hofmann wrote: > +.IP "\fB\-L, \-\-keep\-empty\-lines\fP" > +Preserve whitespace-only lines in the input. The default is ignore empty lines > +at all. This option’s original name was \-\-table-empty-lines but is now > +deprecated because it gives the false impression that the option only applies > +to table mode. Please update also usage() (--help output) where we do not need --table-empty-lines anymore. Karel -- Karel Zak <kzak@redhat.com> http://karelzak.blogspot.com ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 4/4] tests: column --keep-empty-lines in cols mode 2020-09-20 13:08 [PATCH 2/4] column: Call mbs_to_wcs("") only once Lennard Hofmann 2020-09-20 13:08 ` [PATCH 3/4] column: Deprecate --table-empty-lines in favor of --keep-empty-lines Lennard Hofmann @ 2020-09-20 13:08 ` Lennard Hofmann 1 sibling, 0 replies; 4+ messages in thread From: Lennard Hofmann @ 2020-09-20 13:08 UTC (permalink / raw) To: util-linux; +Cc: Lennard Hofmann Add intentional whitespace to the test file `onecolumn` to test that `column` ignores it. Add empty lines to the same test file to test that `column--keep-empty-lines` preserves them. Signed-off-by: Lennard Hofmann <lennard.hofmann@web.de> --- tests/expected/column/columnate-fill-cols-keep-empty | 7 +++++++ tests/ts/column/columnate | 4 ++++ tests/ts/column/files/onecolumn | 5 +++++ 3 files changed, 16 insertions(+) create mode 100644 tests/expected/column/columnate-fill-cols-keep-empty diff --git a/tests/expected/column/columnate-fill-cols-keep-empty b/tests/expected/column/columnate-fill-cols-keep-empty new file mode 100644 index 000000000..8cc1fdf1f --- /dev/null +++ b/tests/expected/column/columnate-fill-cols-keep-empty @@ -0,0 +1,7 @@ + FFFFFFFFFFFFFFFFFFF +AAAAAAAAAAAAAAAAAAAA +BBBBBBBBBBBBBBBBBBBBB +CCCCCCCCCCCCCCCC XXXXXXX + YYYYYYYYYYY +DDDDDDDDDDDDDDDDD ZZZZZZZZZZZ +EEEEEEEEEEEEE diff --git a/tests/ts/column/columnate b/tests/ts/column/columnate index ebeb0c44f..e80f3b00d 100755 --- a/tests/ts/column/columnate +++ b/tests/ts/column/columnate @@ -49,4 +49,8 @@ ts_init_subtest "fill-rows-250" $TS_CMD_COLUMN --fillrows -c 250 $TS_SELF/files/onecolumn >> $TS_OUTPUT 2>> $TS_ERRLOG ts_finalize_subtest +ts_init_subtest "fill-cols-keep-empty" +$TS_CMD_COLUMN --keep-empty-lines -c 60 $TS_SELF/files/onecolumn >> $TS_OUTPUT 2>> $TS_ERRLOG +ts_finalize_subtest + ts_finalize diff --git a/tests/ts/column/files/onecolumn b/tests/ts/column/files/onecolumn index 69ec82f5d..3e579e1d4 100644 --- a/tests/ts/column/files/onecolumn +++ b/tests/ts/column/files/onecolumn @@ -1,9 +1,14 @@ + AAAAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBBBBBBBB CCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDD EEEEEEEEEEEEE FFFFFFFFFFFFFFFFFFF + + XXXXXXX YYYYYYYYYYY ZZZZZZZZZZZ + -- 2.28.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-09-21 13:08 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-09-20 13:08 [PATCH 2/4] column: Call mbs_to_wcs("") only once Lennard Hofmann 2020-09-20 13:08 ` [PATCH 3/4] column: Deprecate --table-empty-lines in favor of --keep-empty-lines Lennard Hofmann 2020-09-21 13:08 ` Karel Zak 2020-09-20 13:08 ` [PATCH 4/4] tests: column --keep-empty-lines in cols mode Lennard Hofmann
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).