From: Ian Jackson Date: Wed, 1 Jul 2009 19:45:07 +0000 (+0100) Subject: Pass and use possible as well as actual contexts X-Git-Tag: 1.9.2~81 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-test.git;a=commitdiff_plain;h=12dab98558133719e1c624dd2d7bf7b5fa93ae07 Pass and use possible as well as actual contexts --- diff --git a/pctb/TODO b/pctb/TODO index 042feb1..6a603c6 100644 --- a/pctb/TODO +++ b/pctb/TODO @@ -1,5 +1,3 @@ -glyphsdone in dictionary-manager must cope with new entry in each entry - add UI option to dictionary-manager to make user specify which dictionary to add multi-context entries to install/test dictionary upload/approval diff --git a/pctb/dictionary-manager b/pctb/dictionary-manager index 51140c6..10c87a8 100755 --- a/pctb/dictionary-manager +++ b/pctb/dictionary-manager @@ -140,7 +140,7 @@ static unsigned char csr_bits[] = { } proc resize_widgets_core {} { - global mulcols mulrows csrh gotsh ctxh glyphsdone + global mulcols mulrows csrh gotsh ctxh global unk_l unk_contexts foreach w {.d.csr .d.got .d.ctx} { @@ -263,8 +263,8 @@ proc required/char {} { .d.mi.csr_$w configure -height $mulrows } set maxh 0 - foreach {min max contexts got} $glyphsdone { - show_context maxh $min $contexts + foreach {min max context contexts got} $glyphsdone { + show_context maxh $min $context foreach ctx $contexts { set all_contexts($ctx) 1 } } foreach ctx $unk_contexts { set all_contexts($ctx) 1 } @@ -597,11 +597,11 @@ proc char_read_xpm {f} { set unk_l [expr {$unk_l - $chop_l}] set unk_r [expr {$unk_r - $chop_l}] set ngd {} - foreach {min max contexts got} $glyphsdone { + foreach {min max context contexts got} $glyphsdone { lappend ngd \ [expr {$min-$chop_l}] \ [expr {$max-$chop_l}] \ - $contexts $got + $context $contexts $got } set glyphsdone $ngd @@ -643,7 +643,7 @@ proc char_read_xpm {f} { set how q } else { set ab 0 - foreach {min max contexts got} $glyphsdone { + foreach {min max context contexts got} $glyphsdone { set rhsmost_max $max if {$x >= $min && $x <= $max} { set how [lindex {a b} $ab] @@ -695,7 +695,7 @@ proc show_context {maxhv x ctxs} { proc draw_glyphsdone {} { global glyphsdone mul inter eval destroy [winfo children .d.got] - foreach {min max contexts got} $glyphsdone { + foreach {min max context contexts got} $glyphsdone { frame .d.got.m$min -bd 0 -background \#888 label .d.got.m$min.l -text "$got" -fg white -bg black -bd 0 pack .d.got.m$min.l -padx 1 -pady 1 @@ -707,7 +707,7 @@ proc startup_cursor {} { global cur_already cur_mode cur_0 cur_1 last_ht global glyphsdone unk_l unk_r - set cur_already [expr {[llength $glyphsdone]/4-1}] + set cur_already [expr {[llength $glyphsdone]/5-1}] set cur_mode 1 ;# one of: 0 1 already text set cur_0 $unk_l @@ -799,22 +799,21 @@ proc recursor/text {} { proc recursor/already {} { global mul - global glyphsdone global cur_already mul global glyphsdone cur_already mul - char_exactly_selctxts [lindex $glyphsdone [expr {$cur_already*4+2}]] + char_exactly_selctxts [lindex $glyphsdone [expr {$cur_already*5+3}]] .d.csr.csr.l configure -text {correct} - set rmax [lindex $glyphsdone [expr {$cur_already*4}]] + set rmax [lindex $glyphsdone [expr {$cur_already*5}]] place .d.csr.csr -x [expr {$rmax*$mul-3}] bind_key Return {} - bind_leftright_q cur_already 0 [expr {[llength $glyphsdone]/4-1}] + bind_leftright_q cur_already 0 [expr {[llength $glyphsdone]/5-1}] bind_key space { bind_key Delete {}; set cur_mode 1; recursor } bind_key Delete { RETURN_RESULT DELETE [lrange $glyphsdone \ - [expr $cur_already*4] \ - [expr $cur_already*4+2]] + [expr $cur_already*5] \ + [expr $cur_already*5+2]] } helptext { {{<- ->} {move cursor, selecting glyph to correct}} @@ -907,7 +906,7 @@ proc char_get_definition_info {c0 c1} { if {$c0 == $unk_l} { set ncontexts $unk_contexts } else { - foreach {l r contexts got} $glyphsdone { + foreach {l r context contexts got} $glyphsdone { if {$l==$c0} { set ncontexts $contexts; break } } if {![info exists ncontexts]} { diff --git a/pctb/ocr.c b/pctb/ocr.c index 27271c7..6448ee4 100644 --- a/pctb/ocr.c +++ b/pctb/ocr.c @@ -246,7 +246,7 @@ static void callout_unknown(OcrReader *rd, int w, Pixcol cols[], fprintf(resolver," %d %d ",s->l,s->r); cu_pr_ctxmap(resolver, 1u << s->match); fprintf(resolver," "); - cu_pr_ctxmap(resolver, 1u << s->ctxmap); + cu_pr_ctxmap(resolver, s->ctxmap); fprintf(resolver," "); for (p=s->s; (c= *p); p++) { if (c=='\\') fprintf(resolver,"\\%c",c);