# 0 = unquoted # 1 = unsolved # 2 = solved set last_state 0 foreach letter [split $a_chan_crypt_quote($chan) ""] { set curr_state 0 if {[info exists cur_solved($letter)]} { incr matches set curr_state 2 } else { if {[regexp -all {[a-z]} $letter] != 0} { set curr_state 1 } } if {$curr_state != $last_state} { if {$last_state == 0} { if {$curr_state == 1} { append quote $unsolved_encoding } else { append quote $solved_encoding } } if {$curr_state == 0} { append quote "\017" } else { if {$curr_state == 1} { append quote "\017${unsolved_encoding}" } else { append quote "\017${solved_encoding}" } } } if {$curr_state == 2} { append quote [string toupper cur_solved($letter)] } else { append quote $letter } set last_state $curr_state }