tries. Previously only duplicates in index tries were treated.
This ensures that only first sequence (of multiple) is used for
conversion and takes precedence. For example utf E38080 is
converted then converted to marc8 212321 (not marc8 212320).
# the next line restarts using tclsh \
if [ -f /usr/local/bin/tclsh8.4 ]; then exec tclsh8.4 "$0" "$@"; else exec tclsh "$0" "$@"; fi
#
# the next line restarts using tclsh \
if [ -f /usr/local/bin/tclsh8.4 ]; then exec tclsh8.4 "$0" "$@"; else exec tclsh "$0" "$@"; fi
#
-# $Id: charconv.tcl,v 1.19 2007-09-17 19:18:27 adam Exp $
+# $Id: charconv.tcl,v 1.20 2007-09-22 18:55:02 adam Exp $
proc usage {} {
puts {charconv.tcl: [-p prefix] [-s split] [-o ofile] file ... }
proc usage {} {
puts {charconv.tcl: [-p prefix] [-s split] [-o ofile] file ... }
set trie($this,type) f
}
if {$trie($this,type) == "f"} {
set trie($this,type) f
}
if {$trie($this,type) == "f"} {
- lappend trie($this,content) [list $from $to $combining $codename]
+ set dup 0
+ if {[info exists trie($this,content)]} {
+ foreach e $trie($this,content) {
+ set efrom [lindex $e 0]
+ if { $efrom == $from } {
+ set dup 1
+ }
+ }
+ }
+ if { $dup == 0 } {
+ lappend trie($this,content) [list $from $to $combining $codename]
+ }
# split ?
if {[llength $trie($this,content)] > $trie(split)} {
# split ?
if {[llength $trie($this,content)] > $trie(split)} {