From: Mischa POSLAWSKY Date: Fri, 19 Mar 2021 02:59:09 +0000 (+0100) Subject: ascii option to avoid unicode X-Git-Tag: v1.08~15 X-Git-Url: http://git.shiar.nl/barcat.git/commitdiff_plain/678a3ead2e3143f8fbc9881bf51305636c66523c ascii option to avoid unicode --- diff --git a/barcat b/barcat index 838c89f..cc3f607 100755 --- a/barcat +++ b/barcat @@ -11,6 +11,7 @@ our $VERSION = '1.07'; use Getopt::Long '2.33', qw( :config gnu_getopt ); my %opt; GetOptions(\%opt, + 'ascii|a!', 'color|c!', 'C' => sub { $opt{color} = 0 }, 'field|f=s' => sub { @@ -50,7 +51,9 @@ GetOptions(\%opt, $opt{'graph-format'} = substr $_[1], 0, 1; }, 'spark:s' => sub { - $opt{spark} = [split //, $_[1] || ' ▁▂▃▄▅▆▇█']; + $opt{spark} = [split //, + $_[1] || ($opt{ascii} ? ' ..oOO' : ' ▁▂▃▄▅▆▇█') + ]; }, 'palette=s' => sub { $opt{palette} = { @@ -119,7 +122,8 @@ $opt{width} ||= $ENV{COLUMNS} || qx(tput cols) || 80 unless $opt{spark}; $opt{color} //= -t *STDOUT; # enable on tty $opt{'graph-format'} //= '-'; $opt{trim} *= $opt{width} / 100 if $opt{trimpct}; -$opt{units} = [split //, ' kMGTPEZYyzafpnμm'] if $opt{'human-readable'}; +$opt{units} = [split //, ' kMGTPEZYyzafpn'.($opt{ascii} ? 'u' : 'μ').'m'] + if $opt{'human-readable'}; $opt{anchor} //= qr/\A/; $opt{'value-length'} = 6 if $opt{units}; $opt{'value-length'} = 1 if $opt{unmodified}; @@ -179,7 +183,7 @@ while (defined ($_ = $opt{input} ? shift @{ $opt{input} } : readline)) { } elsif (length > $trimpos) { # cut and replace (intentional lvalue for speed, contrary to PBP) - substr($_, $trimpos - 1) = '…'; + substr($_, $trimpos - 1) = $opt{ascii} ? '>' : '…'; } } push @lines, $_; @@ -368,6 +372,12 @@ you'll need a larger animal like I. =over +=item -a, --[no-]ascii + +Restrict user interface to ASCII characters, +replacing default UTF-8 by their closest approximation. +Input is always interpreted as UTF-8 and shown as is. + =item -c, --[no-]color Force colored output of values and bar markers. diff --git a/t/t0002-usage_-h_|wc_-l.out b/t/t0002-usage_-h_|wc_-l.out index 64bb6b7..e85087a 100644 --- a/t/t0002-usage_-h_|wc_-l.out +++ b/t/t0002-usage_-h_|wc_-l.out @@ -1 +1 @@ -30 +31 diff --git a/t/t0003-invalid_options_-Az_?64.out b/t/t0003-invalid_options_-Az_?64.out new file mode 100644 index 0000000..e8e36f1 --- /dev/null +++ b/t/t0003-invalid_options_-Az_?64.out @@ -0,0 +1,2 @@ +Unknown option: A +Unknown option: z diff --git a/t/t0003-invalid_options_-aZ_?64.out b/t/t0003-invalid_options_-aZ_?64.out deleted file mode 100644 index 082a421..0000000 --- a/t/t0003-invalid_options_-aZ_?64.out +++ /dev/null @@ -1,2 +0,0 @@ -Unknown option: a -Unknown option: Z diff --git a/t/t2105-spark_ascii.in b/t/t2105-spark_ascii.in new file mode 120000 index 0000000..4646f48 --- /dev/null +++ b/t/t2105-spark_ascii.in @@ -0,0 +1 @@ +t2100-sparkwave.in \ No newline at end of file diff --git a/t/t2105-spark_ascii_-a_--spark.out b/t/t2105-spark_ascii_-a_--spark.out new file mode 100644 index 0000000..eddad81 --- /dev/null +++ b/t/t2105-spark_ascii_-a_--spark.out @@ -0,0 +1 @@ +OOOOOOOOOOOOoooooooo.................ooooooooOOOOOOOOOOOOOOOOOooooooooo................oooooooooOOOO diff --git a/t/t2201-ascii.in b/t/t2201-ascii.in new file mode 100644 index 0000000..447b1fd --- /dev/null +++ b/t/t2201-ascii.in @@ -0,0 +1,5 @@ +123e-6 micro +.1 long line +-1 +-2 +-3 diff --git a/t/t2201-ascii_-aHl7.out b/t/t2201-ascii_-aHl7.out new file mode 100644 index 0000000..fbae8fc --- /dev/null +++ b/t/t2201-ascii_-aHl7.out @@ -0,0 +1,5 @@ +123u micro ------------<-=-+--------| +100m long> ------------<-=-+--------|- + -1 ------------<-=-+ + -2 --------- + -3