File: getenttree.tcl

package info (click to toggle)
graphviz 14.0.5-2
  • links: PTS
  • area: main
  • in suites: sid
  • size: 139,388 kB
  • sloc: ansic: 141,938; cpp: 11,957; python: 7,766; makefile: 4,043; yacc: 3,030; xml: 2,972; tcl: 2,495; sh: 1,388; objc: 1,159; java: 560; lex: 423; perl: 243; awk: 156; pascal: 139; php: 58; ruby: 49; cs: 31; sed: 1
file content (37 lines) | stat: -rwxr-xr-x 1,108 bytes parent folder | download | duplicates (4)
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
#!/bin/sh
# next line is a comment in tcl \
exec tclsh "$0" ${1+"$@"}

# get names for  html-4.0 characters from: 
#          http://www.w3.org/TR/REC-html40/sgml/entities.html
set f [open entities.html r]
while {! [eof $f]} {
	set rec [gets $f]
	if {[scan $rec {<!ENTITY %s CDATA "&#%d;" --} name val] == 2} {
		set entity($name) $val
	}
}

set depth 0
set previous {}
set previousentity {}
foreach n [lsort [array names entity]] {
	set current [split $n {}]
	set i 0
	while {[lindex $previous $i] == [lindex $current $i]} {incr i}
	if {$previous != {}} {
		set prefix [format %[set depth]s {}]
		if {$i > $depth} {
			puts "$prefix[join [lrange $previous $depth [expr $i -1]] {}]"
			puts "$prefix [join [lrange $previous $i end] {}] $previousentity"
		} elseif {$i == $depth} {
			puts "$prefix[join [lrange $previous $i end] {}] $previousentity"
		} {
			puts "$prefix[join [lrange $previous $depth end] {}] $previousentity"
		}
	}
	set previousentity $entity($n)
	set depth $i
	set previous $current
}
puts "[format %[set depth]s {}][join [lrange $previous $depth end] {}] $entity($n)"