Okay, this was one of those mysterious "if the string ends in 0 let's not read it." Really?
A tentative fix - some of this will end up in the Importer rather than running the fix every single time you rebuild the MessageIndex.
In Maintenance.pm find
for (@tempboard) {
s/^.*?[|]//xsm;
}
@tempboard = reverse sort { lc($a) cmp lc $b } @tempboard;
my $prnbrd = join q{}, @tempboard;
open my $NEWBOARD, '>', "$boardsdir/$boardname.txt"
replace with
chomp @tempboard;
for (@tempboard) {
s/^.*?[|]//xsm;
}
@tempboard = reverse sort {
(split /[|]/xsm, $a )[4] <=>
(split /[|]/xsm, $b )[4]
} @tempboard;
#'0' issues with status
my @fixer = ();
foreach (@tempboard) {
my @fix = split /[|]/xsm;
if ( $fix[8] eq '0' ) {
$fix[8] = 'x';
}
my $fix = join '|', @fix;
push @fixer, $fix;
}
my $prnbrd = join qq{\n}, @fixer;
open my $NEWBOARD, '>', "$boardsdir/$boardname.txt"
Find
my @ftotals = <$TOTALS>;
close $TOTALS or croak "$croak{'close'} TOTALS";
chomp @ftotals;
add after
@ftotals = reverse sort {
(split /[|]/xsm, $a )[4] <=>
(split /[|]/xsm, $b )[4]
} @ftotals;
In Post.pm find:
else { $mstate = '0'; }
Replace with
else { $mstate = 'x'; }
There may be other places with sorting issues but I'm not finished looking for them.