51 lines
1.3 KiB
Tcl
51 lines
1.3 KiB
Tcl
#!/usr/bin/tclsh
|
|
|
|
# get names for html-4.0 characters from:
|
|
# http://www.w3.org/TR/REC-html40/sgml/entities.html
|
|
set f [open entities.html r]
|
|
set entity_name_length_max 0
|
|
set nr_of_entities 0
|
|
while {! [eof $f]} {
|
|
set rec [gets $f]
|
|
if {[scan $rec {<!ENTITY %s CDATA "&#%d;"; --} name val] == 2} {
|
|
set entity($name) $val
|
|
set entity_name_length [string length $name]
|
|
if {$entity_name_length > $entity_name_length_max} {
|
|
set entity_name_length_max $entity_name_length
|
|
}
|
|
incr nr_of_entities
|
|
}
|
|
}
|
|
close $f
|
|
|
|
set f [open entities.h w]
|
|
puts $f "/*"
|
|
puts $f " * Generated file - do not edit directly."
|
|
puts $f " *"
|
|
puts $f " * This file was generated from:"
|
|
puts $f " * http://www.w3.org/TR/REC-html40/sgml/entities.html"
|
|
puts $f " * by means of the script:"
|
|
puts $f " * entities.tcl"
|
|
puts $f " */"
|
|
puts $f ""
|
|
puts $f "#ifdef __cplusplus"
|
|
puts $f "extern \"C\" {"
|
|
puts $f "#endif"
|
|
puts $f ""
|
|
puts $f "static struct entities_s {"
|
|
puts $f " char *name;"
|
|
puts $f " int value;"
|
|
puts $f "} entities\[\] = {"
|
|
foreach name [lsort [array names entity]] {
|
|
puts $f " {\"$name\", $entity($name)},"
|
|
}
|
|
puts $f "};"
|
|
puts $f ""
|
|
puts $f "#define ENTITY_NAME_LENGTH_MAX $entity_name_length_max"
|
|
puts $f "#define NR_OF_ENTITIES $nr_of_entities"
|
|
puts $f ""
|
|
puts $f "#ifdef __cplusplus"
|
|
puts $f "}"
|
|
puts $f "#endif"
|
|
close $f
|