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 out "[lindex $chunk 0] [lindex $chunk 1] [string index [lindex $chunk 2] [- $x $c]]" }; incr c [string length [lindex $chunk 2]] };. $out }