- if ($` ne $lastk0) { $lastk0=$`; $changek0++; }
- print $whynot,"\t",$k;
- print "\t", defined($_) ? $_ : "-" foreach @r;
- print "\n";
+ my ($stall,$commod) = ($`,$');
+
+ my $eol= '';
+ my $prep= sub {
+ return if $eol;
+ $eol="\n";
+ if ($stall ne $laststall) {
+ printf "\"%s\n", $stall;
+ $laststall= $stall;
+ }
+ print alencodenum(findcommod($commod));
+ };
+
+ if (!defined($r[2])) {
+ $prep->();
+ printf "\n"; # no "-" here saves 3.5%
+ next;
+ }
+ # base62-encoding all these numbers saves about 8%
+ my $qtydiff= $r[3] - ($r[1] || 0);
+ if (!defined($r[0]) || $r[0] != $r[2]) {
+ $prep->();
+ printf "\@%s",alencodenum($r[2]);
+ }
+ if ($qtydiff>0) {
+ $prep->();
+ printf "+%s",alencodenum($qtydiff);
+ } elsif ($qtydiff<0) {
+ $prep->();
+ printf "-%s",alencodenum(-$qtydiff);
+ }
+ print $eol;