# the next line restats using tclsh \
exec tclsh "$0" "$@"
#
-# $Id: charconv.tcl,v 1.1 2002-12-16 13:13:53 adam Exp $
+# $Id: charconv.tcl,v 1.3 2003-06-02 22:17:20 adam Exp $
proc usage {} {
- puts {charconv.tcl: [-p prefix] [-s split] input output}
+ puts {charconv.tcl: [-p prefix] [-s split] [-o ofile] file ... }
exit 1
}
foreach m $trie($this,content) {
puts -nonewline $f " \{\""
foreach d [lindex $m 0] {
- puts -nonewline $f "\\0x$d"
+ puts -nonewline $f "\\x$d"
}
puts -nonewline $f "\", 0x[lindex $m 1]"
puts $f "\},"
while (flat->from)
{
size_t len = strlen(flat->from);
- if (len >= inbytesleft)
+ if (len <= inbytesleft)
{
if (memcmp(flat->from, inp, len) == 0)
{
set verbose 0
set ifile {}
-set ofile {}
+set ofile out.c
set trie(split) 40
set trie(prefix) {}
# Parse command line
}
set trie(prefix) $arg
}
- default {
- if {![string length $ifile]} {
- set ifile $arg
- } elseif {![string length $ofile]} {
- set ofile $arg
- } else {
- puts "charconv.tcl: too many files given"
- usage
+ -o {
+ if {[string length $arg]} {
+ set arg [lindex $argv [incr i]]
}
+ set ofile $arg
+ }
+ default {
+ lappend ifiles $arg
}
}
incr i
}
-if {![string length $ifile]} {
- puts "charconv.tcl: missing input file"
+if {![info exists ifiles]} {
+ puts "charconv.tcl: missing input file(s)"
usage
}
-if {![string length $ofile]} {
- puts "charconv.tcl: missing output file"
- usage
+foreach ifile $ifiles {
+ readfile $ifile
}
-readfile $ifile
dump_trie $ofile