Evaluated proc cgetchar {mmap x y} { set out [list]; set line [lindex $mmap $y]; set c 0; foreach chunk $line { if { $x >= $c && $x <= [+ $c [string length [lindex $chunk 2]]] } { set res "[lindex $chunk 1] [lindex $chunk 3] [string index [lindex $chunk 2] [- $x $c]] }; incr c [string length [lindex $chunk 2]] };. $res }