- $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/;