chiark / gitweb /
canon: commodids in each stall are offsets
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 25 Jan 2011 15:23:03 +0000 (15:23 +0000)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Tue, 25 Jan 2011 15:23:03 +0000 (15:23 +0000)
yarrg/canon

index 1ba6b02f7a9d7c05667e04f9c23dd27c1e753d6e..9ae01e5abf476dd829dfcc69c7a04d83bf17ed62 100755 (executable)
@@ -45,6 +45,7 @@ sub findcommod ($) {
 }
 
 my $laststall='';
+my $lastcommod;
 
 foreach my $stall (sort keys %s) {
 my $stallstuff= $s{$stall};
@@ -59,8 +60,12 @@ foreach my $commod (sort { findcommod($a) <=> findcommod($b) }
         if ($stall ne $laststall) {
             printf "\"%s\n", $stall;
             $laststall= $stall;
+            $lastcommod= 0;
         }
-        print alencodenum(findcommod($commod));
+        my $commodnum= findcommod($commod);
+        die if $commodnum < $lastcommod;
+        print alencodenum($commodnum - $lastcommod);
+        $lastcommod= $commodnum;
     };
 
     if (!defined($r[2])) {