1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
proc main {} {
foreach path $::argv {
set key [file dirname $path]
source $path
rename ::textutil::wcswidth_type ${key}_type
rename ::textutil::wcswidth_char ${key}_char
rename ::textutil::wcswidth {}
lappend codes $key
}
set codes [lsort -dict $codes]
puts Order:$codes
lassign {0 0} tmis wmis
for {set code 0} {$code <= 1114111} {incr code} {
puts -nonewline stderr \r$code\t$tmis\t$wmis
set ts [lmap key $codes { ${key}_type $code }]
set ws [lmap key $codes { ${key}_char $code }]
set tsu [lsort -unique $ts]
set wsu [lsort -unique $ws]
if {[llength $tsu] > 1} {
puts Mismatch:T:${code}:$ts
incr tmis
}
if {[llength $wsu] > 1} {
puts Mismatch:W:${code}:$ws
incr wmis
}
}
puts /Done
puts stderr ""
}
main
|