X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/158fd6a72572921077756bed6286a16bb7d78f6b..54c3aaa2e77d7a750f5e2173ae2f56bbe17988a2:/writing-latn.inc.pl?ds=inline
diff --git a/writing-latn.inc.pl b/writing-latn.inc.pl
index 403e36f..2fbdb46 100644
--- a/writing-latn.inc.pl
+++ b/writing-latn.inc.pl
@@ -1,3 +1,4 @@
+use 5.014;
use utf8;
use List::Util qw( pairs );
@@ -16,7 +17,7 @@ my $U = 0; # optional unicode alternatives
(
'Uppercase' => [qw{ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z }],
'Lowercase' => [qw{ a b c d e f g h i j k l m n o p q r s t u v w x y z }],
-'Sütterlin' => [qw{ a b c d e f g h i j k l m n o p q r Å¿âs t u v w x y z }],
+'Sütterlin' => [qw{ a b c d e f g h i j k l m n o p q r ſ s t u v w x y z }],
'Old Roman Cursive' => [
map { m/^(-?)(\w.*)/ ? $1.'' : $_ }
"m2,4 c1,2 8,9 8,9 M2,15 6,9",
@@ -48,13 +49,14 @@ my $U = 0; # optional unicode alternatives
],
'Sutton ASL' => [
# American manual alphabet in Sutton (U+1D800+) notation
- map { pack 'W*', map { hex "1D$_" } unpack '(A3)*', $_ } qw{
+ map { !!$_ && pack 'W*', map { hex "1D$_" } unpack '(A3)*', $_ } qw{
8F7a9c 847a9c 86Da9c 801a9c 84Aa9c
8CEa9c 8F0 815aa2 892a9c 892a9c9A2aac
840a9c 8DCa9c 88Da9c
819a9c 876a9c 840a9caA1 8F0a9caA1 81Aa9c
903a9c 8FBa9c 815a9c 80Ea9c 887a9c
806a9c 89Aa9c 800a9c945aaa
+ 0 965aa6
}],
'ITA2' => [
map { tr/01/ââ/r =~ s/..\K/ /r } qw(
@@ -86,17 +88,17 @@ my $U = 0; # optional unicode alternatives
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
})],
-'Tap simplified' => [disptap(qw{
+'Short Tap' => [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
-],
+), '', chr(0x1F0CF), chr(0x1F0DF) ],
'Maritime flags' => [
# International Code of Signals, SVG fills
- map { '' }
+ map { !!$_ && '' }
split /\n\n/, qq{
@@ -188,6 +190,14 @@ my $U = 0; # optional unicode alternatives
+
+
+
+
+
+
+
+
},
],
'Flag semaphore' => [
@@ -247,10 +257,12 @@ my $U = 0; # optional unicode alternatives
],
'Code 39' => [
# ISO/IEC 16388
- map { tr/012/âââ/r } qw(
+ 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
+ 201112 102112 202111 101212 201211 102211 102121 0 101221
)
],
'Code 93' => [
@@ -290,15 +302,19 @@ my $U = 0; # optional unicode alternatives
)
],
'RM4SCC' => [
- map { sprintf
- '',
- join ' m2',
- map { sprintf ',%dv%dm0,-%d',
- ($_ & 1 ? 0 : 2), 2 + ($_ & 2) + ($_ & 1) * 2,
- ($_ & 1 ? 0 : 2) + 2 + ($_ & 2) + ($_ & 1) * 2,
- }
- split //
+ map {
+ my $len = length $_;
+ !$len ? '' : sprintf(
+ '',
+ $len * 5, $len * 2,
+ join ' m2',
+ map { sprintf ',%dv%dm0,-%d',
+ ($_ & 1 ? 0 : 2), 2 + ($_ & 2) + ($_ & 1) * 2,
+ ($_ & 1 ? 0 : 2) + 2 + ($_ & 2) + ($_ & 1) * 2,
+ }
+ split //
+ );
}
qw(
2121 2301
@@ -307,7 +323,31 @@ my $U = 0; # optional unicode alternatives
1032 1212 1230 3012 3030 3210
1122 1302 1320 3102 3120 3300
0033
- ) # 0 for space
+ ), # 0 for space
+ '', 1, 3 # start/end
+],
+"D'ni" => [
+ map {
+ state $window = 'M-.5,-.5H8.5V8.5H-.5Z';
+ state $v = [
+ '',
+ 'M0,4 8,4',
+ 'M0,8 Q4,4 8,8',
+ 'M0,4 4,8 8,4',
+ 'M2,0 2,4 8,4',
+ 'M0,0 8,8 M0,8 8,0', # cross
+ 'M3.5,4 h1', # dot
+ ];
+ state $h = [
+ '',
+ 'M4,0 4,8',
+ 'M0,0 Q4,4 0,8',
+ 'M4,-.5 0,4 4,8.5',
+ 'M4,8 4,2 8,2',
+ ];
+ sprintf '',
+ $window . ($h->[$_ % 5] . $v->[$_ / 5] || $v->[6]);
+ } 0 .. 5*5
],
'Pigpen' => [
map {