proc recursor/1 {} { recursor//01 1 }
proc recursor//01 {z1} {
global mul rhsmost_max cols glyphsdone cur_0 cur_1
+ global all_contexts
upvar #0 cur_$z1 cur
.d.csr.csr.l configure -text {adjust}
place .d.csr.csr -x [expr {$cur*$mul - 7}]
- char_exactly_selctxts [char_get_definition_contexts]
+ set okctxts [char_get_definition_contexts]
+ char_exactly_selctxts $okctxts
+
+ foreach ctx [lsort [array names all_contexts]] {
+ set key [string range $ctx 0 0]
+ if {[lsearch -exact $okctxts $ctx] >= 0} {
+ bind_key [string tolower $key] [list set new_context $ctx]
+ } else {
+ bind_key [string tolower $key] {}
+ }
+ lappend context_help $key
+ }
+ set context_help [list [join $context_help " "] \
+ {Set match context for new glyph.}]
bind_key space { othercursor }
bind_leftright_q cur_$z1 0 [expr {$cols-1}]
bind_key Return {
char_start_define_text
}
- helptext {
- {{<- ->} {move cursor, adjusting area to define}}
- {Space {switch to moving other cursor}}
- {Return {confirm location, enter letter(s)}}
- {Backspace {switch to correcting earlier ocr}}
- {Q {quit and abandon OCR run}}
- }
+ helptext [list \
+ {{<- ->} {move cursor, adjusting area to define}} \
+ {Space {switch to moving other cursor}} \
+ {Return {confirm location, enter letter(s)}} \
+ {Backspace {switch to correcting earlier ocr}} \
+ {Q {quit and abandon OCR run}} \
+ $context_help \
+ ]
}
proc othercursor {} {
global cur_mode