cc: names by default
[sheet.git] / cc.plp
diff --git a/cc.plp b/cc.plp
index 584884d74f43cbc9465d3b7dc249d08ad5b0a8bd..08a2341b2dc67434b827155f4b499b585c56c482 100644 (file)
--- a/cc.plp
+++ b/cc.plp
@@ -33,7 +33,7 @@ sub quote {
 }
 
 {
-       printf '<table class="glyphs ccmap">';
+       printf '<table class="mcmap">';
        print '<col>';
        for my $section (qw{thead}) {
                print "<$section><tr><th>↱";
@@ -49,11 +49,32 @@ sub quote {
                                print $code =~ /^x|^q[m-z]|^aa|^zz/ ? '<td class="X Co">' : '<td>';
                                next;
                        };
-                       $code = $country->[2] if defined $country->[2];
-                       my $img = sprintf '<img src="/flag/%s.png" alt="%s">', $code, $code
-                               if -e "flag/$code.png";
+                       my ($name, $class, $short, $ref) = @$country;
+                       $ref ||= $code;
+                       local $_ = $ref;
+                       if (exists $get{show}) {
+                               my $img = "flag/$ref.png";
+                               $_ = sprintf '<img src="/%s" alt="%s">', $img, $ref if -e $img;
+                       }
+                       else {
+                               $_ = $short || $name;
+                               s/,.*//;
+                               s/(?<=.)\(.*\)\s*//;
+                               s/ republic\b//gi;
+                               s/ islands?\b//gi;
+                               s/\bthe //g;
+                               s/ and / & /g;
+                               s/\bsaint /st /gi;
+                               s/South /S-/g;
+                               s/North /N-/g;
+                               s/New /n./g;
+                               s/(\S)(\S+)-/$1-/g;  # strip most chars preceding dash
+                               s/(\S{4}[b-df-hj-np-tv-xz])(\S{2,})/$1./g;  # abbreviate (at consonant)
+                               $_ = quote($_);
+                       }
+                       $name =~ s/([^,]*), (.*)/$2 $1/;
                        printf "\n".'<td class="%s" title="%s">%s',
-                               $img ? 'X '.$country->[1] : '', quote($country->[0]), $img;
+                               $_ ? 'X '.$class : '', quote("$code: $name"), $_;
                }
                print "\n";
        }