From f1b00452c532527a77c2a090d43dcca8fc9ae02e Mon Sep 17 00:00:00 2001 From: John Kerl Date: Tue, 15 Mar 2022 07:52:55 -0400 Subject: [PATCH 1/4] Restore --tsvlite flag --- internal/pkg/cli/option_parse.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/internal/pkg/cli/option_parse.go b/internal/pkg/cli/option_parse.go index 6cbc0712b..ec62d076b 100644 --- a/internal/pkg/cli/option_parse.go +++ b/internal/pkg/cli/option_parse.go @@ -975,8 +975,9 @@ var FileFormatFlagSection = FlagSection{ }, { - name: "--tsv", - help: "Use TSV format for input and output data.", + name: "--tsv", + help: "Use TSV format for input and output data.", + altNames: []string{"-t"}, parser: func(args []string, argc int, pargi *int, options *TOptions) { options.ReaderOptions.InputFileFormat = "tsv" options.WriterOptions.OutputFileFormat = "tsv" @@ -985,12 +986,15 @@ var FileFormatFlagSection = FlagSection{ }, { - name: "--tsv", - help: "Use TSV-lite format for input and output data.", - altNames: []string{"-t"}, + name: "--tsvlite", + help: "Use TSV-lite format for input and output data.", parser: func(args []string, argc int, pargi *int, options *TOptions) { - options.ReaderOptions.InputFileFormat = "tsv" - options.WriterOptions.OutputFileFormat = "tsv" + options.ReaderOptions.InputFileFormat = "csvlite" + options.WriterOptions.OutputFileFormat = "csvlite" + options.ReaderOptions.IFS = "\t" + options.WriterOptions.OFS = "\t" + options.ReaderOptions.ifsWasSpecified = true + options.WriterOptions.ofsWasSpecified = true *pargi += 1 }, }, @@ -1008,6 +1012,7 @@ var FileFormatFlagSection = FlagSection{ options.WriterOptions.ORS = ASV_RS options.ReaderOptions.ifsWasSpecified = true + options.ReaderOptions.ifsWasSpecified = true options.ReaderOptions.irsWasSpecified = true options.WriterOptions.ofsWasSpecified = true options.WriterOptions.orsWasSpecified = true From d987d890fa31d0f565872b423bdd03bdbbee1018 Mon Sep 17 00:00:00 2001 From: John Kerl Date: Tue, 15 Mar 2022 07:53:41 -0400 Subject: [PATCH 2/4] todo --- test/cases/io-format-conversion-keystroke-savers/0052/cmd | 1 + test/cases/io-format-conversion-keystroke-savers/0052/experr | 0 test/cases/io-format-conversion-keystroke-savers/0052/expout | 1 + .../io-format-conversion-keystroke-savers/0052/input.tsv | 2 ++ test/cases/io-format-conversion-keystroke-savers/0053/cmd | 1 + test/cases/io-format-conversion-keystroke-savers/0053/experr | 0 test/cases/io-format-conversion-keystroke-savers/0053/expout | 1 + .../io-format-conversion-keystroke-savers/0053/input.tsv | 2 ++ test/cases/io-format-conversion-keystroke-savers/0054/cmd | 1 + test/cases/io-format-conversion-keystroke-savers/0054/experr | 0 test/cases/io-format-conversion-keystroke-savers/0054/expout | 2 ++ .../io-format-conversion-keystroke-savers/0054/input.tsv | 2 ++ test/cases/io-format-conversion-keystroke-savers/0055/cmd | 1 + test/cases/io-format-conversion-keystroke-savers/0055/experr | 0 test/cases/io-format-conversion-keystroke-savers/0055/expout | 2 ++ .../io-format-conversion-keystroke-savers/0055/input.tsv | 2 ++ todo.txt | 4 ++++ 17 files changed, 22 insertions(+) create mode 100644 test/cases/io-format-conversion-keystroke-savers/0052/cmd create mode 100644 test/cases/io-format-conversion-keystroke-savers/0052/experr create mode 100644 test/cases/io-format-conversion-keystroke-savers/0052/expout create mode 100644 test/cases/io-format-conversion-keystroke-savers/0052/input.tsv create mode 100644 test/cases/io-format-conversion-keystroke-savers/0053/cmd create mode 100644 test/cases/io-format-conversion-keystroke-savers/0053/experr create mode 100644 test/cases/io-format-conversion-keystroke-savers/0053/expout create mode 100644 test/cases/io-format-conversion-keystroke-savers/0053/input.tsv create mode 100644 test/cases/io-format-conversion-keystroke-savers/0054/cmd create mode 100644 test/cases/io-format-conversion-keystroke-savers/0054/experr create mode 100644 test/cases/io-format-conversion-keystroke-savers/0054/expout create mode 100644 test/cases/io-format-conversion-keystroke-savers/0054/input.tsv create mode 100644 test/cases/io-format-conversion-keystroke-savers/0055/cmd create mode 100644 test/cases/io-format-conversion-keystroke-savers/0055/experr create mode 100644 test/cases/io-format-conversion-keystroke-savers/0055/expout create mode 100644 test/cases/io-format-conversion-keystroke-savers/0055/input.tsv diff --git a/test/cases/io-format-conversion-keystroke-savers/0052/cmd b/test/cases/io-format-conversion-keystroke-savers/0052/cmd new file mode 100644 index 000000000..d7b5bd074 --- /dev/null +++ b/test/cases/io-format-conversion-keystroke-savers/0052/cmd @@ -0,0 +1 @@ +mlr --itsvlite --odkvp cat ${CASEDIR}/input.tsv diff --git a/test/cases/io-format-conversion-keystroke-savers/0052/experr b/test/cases/io-format-conversion-keystroke-savers/0052/experr new file mode 100644 index 000000000..e69de29bb diff --git a/test/cases/io-format-conversion-keystroke-savers/0052/expout b/test/cases/io-format-conversion-keystroke-savers/0052/expout new file mode 100644 index 000000000..ded30cc14 --- /dev/null +++ b/test/cases/io-format-conversion-keystroke-savers/0052/expout @@ -0,0 +1 @@ +a=1\t2,b=c:\foo\bar,c=xyz diff --git a/test/cases/io-format-conversion-keystroke-savers/0052/input.tsv b/test/cases/io-format-conversion-keystroke-savers/0052/input.tsv new file mode 100644 index 000000000..5d7e82edc --- /dev/null +++ b/test/cases/io-format-conversion-keystroke-savers/0052/input.tsv @@ -0,0 +1,2 @@ +a b c +1\t2 c:\foo\bar xyz diff --git a/test/cases/io-format-conversion-keystroke-savers/0053/cmd b/test/cases/io-format-conversion-keystroke-savers/0053/cmd new file mode 100644 index 000000000..4a4c3947e --- /dev/null +++ b/test/cases/io-format-conversion-keystroke-savers/0053/cmd @@ -0,0 +1 @@ +mlr --itsv --odkvp cat ${CASEDIR}/input.tsv diff --git a/test/cases/io-format-conversion-keystroke-savers/0053/experr b/test/cases/io-format-conversion-keystroke-savers/0053/experr new file mode 100644 index 000000000..e69de29bb diff --git a/test/cases/io-format-conversion-keystroke-savers/0053/expout b/test/cases/io-format-conversion-keystroke-savers/0053/expout new file mode 100644 index 000000000..15dcca2aa --- /dev/null +++ b/test/cases/io-format-conversion-keystroke-savers/0053/expout @@ -0,0 +1 @@ +a=1 2,b=c:\foo\bar,c=xyz diff --git a/test/cases/io-format-conversion-keystroke-savers/0053/input.tsv b/test/cases/io-format-conversion-keystroke-savers/0053/input.tsv new file mode 100644 index 000000000..5d7e82edc --- /dev/null +++ b/test/cases/io-format-conversion-keystroke-savers/0053/input.tsv @@ -0,0 +1,2 @@ +a b c +1\t2 c:\foo\bar xyz diff --git a/test/cases/io-format-conversion-keystroke-savers/0054/cmd b/test/cases/io-format-conversion-keystroke-savers/0054/cmd new file mode 100644 index 000000000..5d7b3805c --- /dev/null +++ b/test/cases/io-format-conversion-keystroke-savers/0054/cmd @@ -0,0 +1 @@ +mlr --tsvlite cat ${CASEDIR}/input.tsv diff --git a/test/cases/io-format-conversion-keystroke-savers/0054/experr b/test/cases/io-format-conversion-keystroke-savers/0054/experr new file mode 100644 index 000000000..e69de29bb diff --git a/test/cases/io-format-conversion-keystroke-savers/0054/expout b/test/cases/io-format-conversion-keystroke-savers/0054/expout new file mode 100644 index 000000000..5d7e82edc --- /dev/null +++ b/test/cases/io-format-conversion-keystroke-savers/0054/expout @@ -0,0 +1,2 @@ +a b c +1\t2 c:\foo\bar xyz diff --git a/test/cases/io-format-conversion-keystroke-savers/0054/input.tsv b/test/cases/io-format-conversion-keystroke-savers/0054/input.tsv new file mode 100644 index 000000000..5d7e82edc --- /dev/null +++ b/test/cases/io-format-conversion-keystroke-savers/0054/input.tsv @@ -0,0 +1,2 @@ +a b c +1\t2 c:\foo\bar xyz diff --git a/test/cases/io-format-conversion-keystroke-savers/0055/cmd b/test/cases/io-format-conversion-keystroke-savers/0055/cmd new file mode 100644 index 000000000..9b294e09c --- /dev/null +++ b/test/cases/io-format-conversion-keystroke-savers/0055/cmd @@ -0,0 +1 @@ +mlr --tsv cat ${CASEDIR}/input.tsv diff --git a/test/cases/io-format-conversion-keystroke-savers/0055/experr b/test/cases/io-format-conversion-keystroke-savers/0055/experr new file mode 100644 index 000000000..e69de29bb diff --git a/test/cases/io-format-conversion-keystroke-savers/0055/expout b/test/cases/io-format-conversion-keystroke-savers/0055/expout new file mode 100644 index 000000000..d119f0855 --- /dev/null +++ b/test/cases/io-format-conversion-keystroke-savers/0055/expout @@ -0,0 +1,2 @@ +a b c +1\t2 c:\\foo\\bar xyz diff --git a/test/cases/io-format-conversion-keystroke-savers/0055/input.tsv b/test/cases/io-format-conversion-keystroke-savers/0055/input.tsv new file mode 100644 index 000000000..5d7e82edc --- /dev/null +++ b/test/cases/io-format-conversion-keystroke-savers/0055/input.tsv @@ -0,0 +1,2 @@ +a b c +1\t2 c:\foo\bar xyz diff --git a/todo.txt b/todo.txt index 857368d68..40fbb3c27 100644 --- a/todo.txt +++ b/todo.txt @@ -2,9 +2,11 @@ * 404 -- what broke? https://github.com/johnkerl/miller/pull/757/files * https://github.com/johnkerl/miller/issues?q=is%3Aissue+is%3Aopen+label%3Aneeds-documentation +* https://squidfunk.github.io/mkdocs-material/setup/setting-up-versioning/ RELEASES * 6.2.0 plan: + ! #982 ., etc ! extended field accessors for #763 and #948 (positional & json.nested) ! strict mode ! awk-like exit @@ -18,6 +20,8 @@ RELEASES ? #908 inferencing options ? gogll + k --tsvlite + ================================================================ FEATURES From 7fc0911646f243ab1bc4c2d25510175a7fd7af0d Mon Sep 17 00:00:00 2001 From: John Kerl Date: Tue, 15 Mar 2022 07:56:19 -0400 Subject: [PATCH 3/4] doc-build artifacts --- docs/src/manpage.md | 6 +++--- docs/src/manpage.txt | 6 +++--- docs/src/reference-main-flag-list.md | 4 ++-- man/manpage.txt | 6 +++--- man/mlr.1 | 8 ++++---- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/src/manpage.md b/docs/src/manpage.md index ad9cb2343..0efe44db2 100644 --- a/docs/src/manpage.md +++ b/docs/src/manpage.md @@ -389,8 +389,8 @@ FILE-FORMAT FLAGS --ousv or --ousvlite Use USV format for output data. --oxtab Use XTAB format for output data. --pprint Use PPRINT format for input and output data. - --tsv Use TSV format for input and output data. - --tsv or -t Use TSV-lite format for input and output data. + --tsv or -t Use TSV format for input and output data. + --tsvlite Use TSV-lite format for input and output data. --usv or --usvlite Use USV format for input and output data. --xtab Use XTAB format for input and output data. -i {format name} Use format name for input data. For example: `-i csv` @@ -3190,5 +3190,5 @@ SEE ALSO - 2022-03-08 MILLER(1) + 2022-03-15 MILLER(1) diff --git a/docs/src/manpage.txt b/docs/src/manpage.txt index a19b5f303..51c5de00a 100644 --- a/docs/src/manpage.txt +++ b/docs/src/manpage.txt @@ -368,8 +368,8 @@ FILE-FORMAT FLAGS --ousv or --ousvlite Use USV format for output data. --oxtab Use XTAB format for output data. --pprint Use PPRINT format for input and output data. - --tsv Use TSV format for input and output data. - --tsv or -t Use TSV-lite format for input and output data. + --tsv or -t Use TSV format for input and output data. + --tsvlite Use TSV-lite format for input and output data. --usv or --usvlite Use USV format for input and output data. --xtab Use XTAB format for input and output data. -i {format name} Use format name for input data. For example: `-i csv` @@ -3169,4 +3169,4 @@ SEE ALSO - 2022-03-08 MILLER(1) + 2022-03-15 MILLER(1) diff --git a/docs/src/reference-main-flag-list.md b/docs/src/reference-main-flag-list.md index f3e027383..82ced4aa7 100644 --- a/docs/src/reference-main-flag-list.md +++ b/docs/src/reference-main-flag-list.md @@ -177,8 +177,8 @@ are overridden in all cases by setting output format to `format2`. * `--ousv or --ousvlite`: Use USV format for output data. * `--oxtab`: Use XTAB format for output data. * `--pprint`: Use PPRINT format for input and output data. -* `--tsv`: Use TSV format for input and output data. -* `--tsv`: Use TSV format for input and output data. +* `--tsv or -t`: Use TSV format for input and output data. +* `--tsvlite`: Use TSV-lite format for input and output data. * `--usv or --usvlite`: Use USV format for input and output data. * `--xtab`: Use XTAB format for input and output data. * `-i {format name}`: Use format name for input data. For example: `-i csv` is the same as `--icsv`. diff --git a/man/manpage.txt b/man/manpage.txt index a19b5f303..51c5de00a 100644 --- a/man/manpage.txt +++ b/man/manpage.txt @@ -368,8 +368,8 @@ FILE-FORMAT FLAGS --ousv or --ousvlite Use USV format for output data. --oxtab Use XTAB format for output data. --pprint Use PPRINT format for input and output data. - --tsv Use TSV format for input and output data. - --tsv or -t Use TSV-lite format for input and output data. + --tsv or -t Use TSV format for input and output data. + --tsvlite Use TSV-lite format for input and output data. --usv or --usvlite Use USV format for input and output data. --xtab Use XTAB format for input and output data. -i {format name} Use format name for input data. For example: `-i csv` @@ -3169,4 +3169,4 @@ SEE ALSO - 2022-03-08 MILLER(1) + 2022-03-15 MILLER(1) diff --git a/man/mlr.1 b/man/mlr.1 index d60af04d1..dfaddd1be 100644 --- a/man/mlr.1 +++ b/man/mlr.1 @@ -2,12 +2,12 @@ .\" Title: mlr .\" Author: [see the "AUTHOR" section] .\" Generator: ./mkman.rb -.\" Date: 2022-03-08 +.\" Date: 2022-03-15 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "MILLER" "1" "2022-03-08" "\ \&" "\ \&" +.TH "MILLER" "1" "2022-03-15" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Portability definitions .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -447,8 +447,8 @@ are overridden in all cases by setting output format to `format2`. --ousv or --ousvlite Use USV format for output data. --oxtab Use XTAB format for output data. --pprint Use PPRINT format for input and output data. ---tsv Use TSV format for input and output data. ---tsv or -t Use TSV-lite format for input and output data. +--tsv or -t Use TSV format for input and output data. +--tsvlite Use TSV-lite format for input and output data. --usv or --usvlite Use USV format for input and output data. --xtab Use XTAB format for input and output data. -i {format name} Use format name for input data. For example: `-i csv` From 219dcb62177066ecac24558c21c1c09c231f49f9 Mon Sep 17 00:00:00 2001 From: John Kerl Date: Tue, 15 Mar 2022 07:58:09 -0400 Subject: [PATCH 4/4] doc note on --tsv vs --tsvlite and backslashed data --- docs/src/file-formats.md | 1 + docs/src/file-formats.md.in | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/src/file-formats.md b/docs/src/file-formats.md index 40bbd7fe6..8611a7a22 100644 --- a/docs/src/file-formats.md +++ b/docs/src/file-formats.md @@ -126,6 +126,7 @@ Here are the differences between CSV and CSV-lite: * CSV does not allow heterogeneous data; CSV-lite does (see also [Record Heterogeneity](record-heterogeneity.md)). * TSV-lite is simply CSV-lite with field separator set to tab instead of comma. +In particular, no encode/decode of `\r`, `\n`, `\t`, or `\\` is done. * CSV-lite allows changing FS and/or RS to any values, perhaps multi-character. diff --git a/docs/src/file-formats.md.in b/docs/src/file-formats.md.in index 18b5fb67d..fd624a80e 100644 --- a/docs/src/file-formats.md.in +++ b/docs/src/file-formats.md.in @@ -38,6 +38,7 @@ Here are the differences between CSV and CSV-lite: * CSV does not allow heterogeneous data; CSV-lite does (see also [Record Heterogeneity](record-heterogeneity.md)). * TSV-lite is simply CSV-lite with field separator set to tab instead of comma. +In particular, no encode/decode of `\r`, `\n`, `\t`, or `\\` is done. * CSV-lite allows changing FS and/or RS to any values, perhaps multi-character.