X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/4b41b47d87dc5cd2533cb06f6791537176641503..e3166e0c204e3911b27305d180db6f8c4da349b7:/writing-latn.inc.pl diff --git a/writing-latn.inc.pl b/writing-latn.inc.pl index c026c0f..6adf33b 100644 --- a/writing-latn.inc.pl +++ b/writing-latn.inc.pl @@ -6,16 +6,13 @@ my %C = qw(red #EC1C24 blue #3953A3 yellow #F9EC31 black #231F20); my $U = 0; # optional unicode alternatives sub disptap { - return map { - !m/\A(-?)(\d)(\d)/ ? $_ : - $1.join(' ', - '·' x $2, '·' x $3, - ); - } @_; + my $code = shift; + $code =~ m/\A(-?)(\d)(\d)/ or return $code; + return $1 . join(' ', '·' x $2, '·' x $3); } sub dispbar { - my $code = shift; + my $code = shift or return ''; return join '', pairmap { ($a =~ tr/123/❘❙❚/r) . ($b =~ tr/321/  /dr) @@ -106,14 +103,14 @@ sub dispbar { .- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. -- -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --.. }], -'Tap code' => [disptap(qw{ +'Tap code' => [map { disptap($_) } qw{ 11 12 13 14 15 21 22 23 > 24 25 31 32 33 34 35 41 42 43 44 45 51 52 53 54 55 -})], -'Short Tap' => [disptap(qw{ +}], +'Short Tap' => [map { disptap($_) } qw{ 11 12 13 14 21 22 23 20 > 31 -13 32 33 30 41 42 -13 43 40 10 51 52 53 50 -31 -40 -})], +}], 'Cards' => [( map { chr(0x1F0A0 + $_), sprintf('%s', chr(0x1F0B0 + $_)) } # spades, hearts 1 .. 11, 13, 14 # A 2-10 J Q K @@ -277,39 +274,23 @@ sub dispbar { 131001 231301 000202 023302 230003 032003 201003 101003 ) ], -'Code 39' => [ - # ISO/IEC 16388 - map { !!$_ && tr/012/ ❘❙/r } - # bar widths (1-2) followed by space of width 1 (implied) or 2 (0) - qw( - 211012 121012 221011 112012 212011 122011 111022 211021 121021 112021 - 211102 121102 221101 112102 212101 122101 111202 211201 121201 112201 - 201112 102112 202111 101212 201211 102211 102121 0 101221 - ) -], +'Code 39' => [map { dispbar($_) } qw( + 2111121121 1121121121 2121121111 1111221121 2111221111 1121221111 + 1111122121 2111122111 1121122111 1111222111 2111111221 1121111221 + 2121111211 1111211221 2111211211 1121211211 1111112221 2111112211 + 1121112211 1111212211 2211111121 1221111121 2221111111 1211211121 + 2211211111 1221211111 1221112111 0 1211212111 +)], # ISO/IEC 16388 'Code 93' => [map { dispbar($_) } qw( 211113 211212 211311 221112 221211 231111 112113 112212 112311 122112 132111 111123 111222 111321 121122 131121 212112 212211 211122 211221 221121 222111 112122 112221 122121 123111 311211 )], -'Code 128' => [ - map { $U ? tr/1-3-/❘❙❚ /r : sprintf - '', - join ' ', - map { - $_ eq '' ? 'm2,-7' : - $_ eq '.' ? 'm3,-7' : - $_ eq ':' ? 'm4,-7' : - join 'm1,-7', ('v7') x $_ - } - split /([.:])?/ # each bar [123] and space [ .:] - } - # bar widths (1-3) followed by space of width 1 (implied), 2 (.) or 3 (:) - qw( - 11:2 1:12 1:1:2 12:1 1:21 1:2:1 21:1 2:11 2:1:1 123 12:3 1:23 132 - 13:2 1:32 332 21:3 2:13 231 23:1 233 312 31:2 3:12 321 32:1 22.2 - ) -], +'Code 128' => [map { dispbar($_) } qw( + 111323 131123 131321 112313 132113 132311 211313 231113 231311 112133 + 112331 132131 113123 113321 133121 313121 211331 231131 213113 213311 + 213131 311123 311321 331121 312113 312311 212222 +)], 'RM4SCC' => [ map { my $len = length $_;