my %msgs;
my %msgprinted;
my %msgkindprinted;
-sub pmsg ($$) { push @{ $msgs{$_[0]} }, "$_[0]: $_[1]\n"; }
+sub pmsg ($$) {
+ my $m= "$_[0]: $_[1]\n";
+ print DEBUG "D $m";
+ push @{ $msgs{$_[0]} }, $m;
+}
sub warning ($) { pmsg("warning",$_[0]); }
sub error ($) { pmsg("error", $_[0]); }
sub change ($) { pmsg("change", $_[0]); }
s/\<--.*--\>//g;
s/^\s*//; chomp; s/\s+$//; s/\s+/ /g;
s/\<\/?(?:b|em)\>//g;
- s/\{\{Chart\ style\|[^{}]*\}\}//g;
+ s/\{\{chart\ style\|[^{}]*\}\}//gi;
next unless m/\{\{/; # only interested in chart template stuff
my ($x,$y, $arch,$island,$solid,$dirn);
if (($x,$y,$arch) =
m/^\{\{ chart\ label \|(\d+)\|(\d+)\| .*
- \'\[\[ [^][\']* \| (\S+)\ archipelago \]\]\'*\}\}$/xi) {
+ (?: \<(?: big|center )\>)* \'+
+ (?: \[\[ | \{\{ )
+ [^][\']* \| ([^][\'|]+)\ archipelago
+ (?: \]\] | \}\} )
+ \'+ (?: \<\/(?: big|center )\>)* \}\}$/xi) {
printf DEBUG "%2d,%-2d arch %s\n", $x,$y,$arch;
push @wiarchlabels, [ $x,$y,$arch ];
+ } elsif (m/^\{\{ chart\ label \|\d+\|\d+\|
+ \<big\> \'+ \[\[ .* \b ocean \]\]/xi) {
} elsif (($x,$y,$island) =
m/^\{\{ chart\ island\ icon \|(\d+)\|(\d+)\|
([^| ][^|]*[^| ]) \| .*\}\}$/xi) {
#
foreach my $label (@wiarchlabels) {
my ($ax,$ay,$arch) = @$label;
- my $best_ccmulti= -1;
- my $best_d2= 0;
+ my $best_d2= 9999999;
my $best_n;
# print DEBUG "$ax,$ay arch-island-search $arch\n";
$ay += 1; $ax += 2; # coords are rather to the top left of label
next unless exists $winode2island{$vertex};
my $ccix= $wiarchs->connected_component_by_vertex($vertex);
my @cc= $wiarchs->connected_component_by_index($ccix);
- my $ccmulti= @cc > 1;
my ($vx,$vy) = split /,/, $vertex;
my $d2= ($vx-$ax)*($vx-$ax) + ($vy-$ay)*($vy-$ay);
- my $cmp= $ccmulti <=> $best_ccmulti
- || $best_d2 <=> $d2;
+ my $cmp= $best_d2 <=> $d2;
printf DEBUG "%2d,%-2d arch-island-search %5s d2=%4d cc%-2d".
- " #cc=%2d ccmulti=%d cmp=%2d %s\n",
- $ax,$ay, $vertex, $d2, $ccix, scalar(@cc), $ccmulti, $cmp,
+ " #cc=%2d cmp=%2d %s\n",
+ $ax,$ay, $vertex, $d2, $ccix, scalar(@cc), $cmp,
$winode2island{$vertex};
next unless $cmp > 0;
$best_n= $vertex;
$best_d2= $d2;
- $best_ccmulti= $ccmulti;
}
die 'no island vertices?!' unless defined $best_n;
my $ccix= $wiarchs->connected_component_by_vertex($best_n);