json2tsv.1: properly escape backslashes - json2tsv - JSON to TSV converter
 (HTM) git clone git://git.codemadness.org/json2tsv
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit e2eeb2664324786e1a51e0ce64dbe03eeeff8346
 (DIR) parent 2a02e40c0df8ea64f7cb59f15b867cdb1d9f6506
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Mon,  2 May 2022 20:16:47 +0200
       
       json2tsv.1: properly escape backslashes
       
       From the mdoc(7) extended introduction:
       
       >To output a backslash, use the escape sequence \e.  Never use the escape
       sequence \\ in any context.
       
       https://mandoc.bsd.lv/mdoc/intro/escaping.html
       
       (Thanks adc for reporting it to sfeed so it came to my attention).
       
       Diffstat:
         M json2tsv.1                          |      22 +++++++++++-----------
       
       1 file changed, 11 insertions(+), 11 deletions(-)
       ---
 (DIR) diff --git a/json2tsv.1 b/json2tsv.1
       @@ -1,4 +1,4 @@
       -.Dd March 19, 2022
       +.Dd May 2, 2022
        .Dt JSON2TSV 1
        .Os
        .Sh NAME
       @@ -41,17 +41,17 @@ separators can be specified in the following formats:
        .Pp
        .Bl -item -compact
        .It
       -\\\\ for a backslash character.
       +\e\e for a backslash character.
        .It
       -\\n for a newline character.
       +\en for a newline character.
        .It
       -\\r for a carriage return character.
       +\er for a carriage return character.
        .It
       -\\t for a TAB character.
       +\et for a TAB character.
        .It
       -\\xXX for a character specified in the hexadecimal format as XX.
       +\exXX for a character specified in the hexadecimal format as XX.
        .It
       -\\NNN for a character specified in the octal format as NNN.
       +\eNNN for a character specified in the octal format as NNN.
        .El
        .Pp
        Otherwise: if a single character is specified this character will be used.
       @@ -65,7 +65,7 @@ The output format per node is:
        nodename<FIELD SEPARATOR>type<FIELD SEPARATOR>value<RECORD SEPARATOR>
        .Ed
        .Pp
       -Control-characters such as a newline, TAB and backslash (\\n, \\t and \\\\) are
       +Control-characters such as a newline, TAB and backslash (\en, \et and \e\e) are
        escaped in the nodename and value fields unless a
        .Fl F
        or
       @@ -104,7 +104,7 @@ exits with the exit status 0 on success, 1 on a parse error, 2 when out of
        memory or a read/write error or 3 with an usage error.
        .Sh EXAMPLES
        .Bd -literal
       -json2tsv < input.json | awk -F '\\t' '$1 == ".url" { print $3 }'
       +json2tsv < input.json | awk -F '\et' '$1 == ".url" { print $3 }'
        .Ed
        .Pp
        To filter without having to unescape characters the
       @@ -119,10 +119,10 @@ Additionally the
        .Fl r
        option is used so control-characters are printed.
        .Bd -literal
       -json2tsv -r -F '\\x1f' -R '\\x1e' < input.json | \\
       +json2tsv -r -F '\ex1f' -R '\ex1e' < input.json | \e
                awk '
                BEGIN {
       -                FS = "\\x1f"; RS = "\\x1e";
       +                FS = "\ex1f"; RS = "\ex1e";
                }
                $1 == ".url" {
                        print $3;