- set o {}
- set y -3
- while 1 {
- must_gets $f l
- if {![regexp {^"(.*)",$} $l dummy l]} {
- append o "$l\n"
- if {[regexp {^\}\;$} $l]} break
- continue
- }
- if {$y==-3} {
- manyset $l cols rows colours cpp
- if {$colours!=2 || $cpp!=1} { error "$l ?" }
-
- set chop_l [expr {$unk_l - 80}]
- set chop_r [expr {$cols - $unk_l - 100}]
- if {$chop_l<0} { set chop_l 0 }
-
- set unk_l [expr {$unk_l - $chop_l}]
- set unk_r [expr {$unk_r - $chop_l}]
- set ngd {}
- foreach {min max contexts got} $glyphsdone {
- lappend ngd \
- [expr {$min-$chop_l}] \
- [expr {$max-$chop_l}] \
- $contexts $got
- }
- set glyphsdone $ngd
+ must_gets_imagel $f l
+ if {[string compare $l P2]} { error "magic $l ?" }
+
+ must_gets_imagel $f l
+ if {![regexp {^([1-9]\d{0,3}) ([1-9]\d{0,3}) ([1-9]\d?)$} \
+ $l dummy cols rows maxval]} { error "head $l ?" }
+
+ for {set depth 1} {$maxval != (1<<$depth)-1} {incr depth} {
+ if {$depth >= 16} { error "maxval $maxval ?" }
+ }
+
+ set chop_l [expr {$unk_l - 80}]
+ set chop_r [expr {$cols - $unk_l - 100}]
+ if {$chop_l<0} { set chop_l 0 }
+ if {$chop_r<0} { set chop_r 0 }
+
+ set unk_l [expr {$unk_l - $chop_l}]
+ set unk_r [expr {$unk_r - $chop_l}]
+ set ngd {}
+ foreach {min max context contexts got} $glyphsdone {
+ lappend ngd \
+ [expr {$min-$chop_l}] \
+ [expr {$max-$chop_l}] \
+ $context $contexts $got
+ }
+ set glyphsdone $ngd