File: check.tcl

package info (click to toggle)
tcllib 2.0%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 83,560 kB
  • sloc: tcl: 306,798; ansic: 14,272; sh: 3,035; xml: 1,766; yacc: 1,157; pascal: 881; makefile: 124; perl: 84; f90: 84; python: 33; ruby: 13; php: 11
file content (38 lines) | stat: -rw-r--r-- 786 bytes parent folder | download | duplicates (2)
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