# This file is part of the YAZ toolkit
-# Copyright (c) Index Data 1996-2005
+# Copyright (C) Index Data
# See the file LICENSE for details.
#
-# $Id: csvtodiag.tcl,v 1.1 2005-04-22 08:27:58 adam Exp $
#
# Converts a CSV file with diagnostics to C+H file for easy
# maintenance
set cfile [open [lindex $ifiles 1] w]
set hfile [open [lindex $ifiles 2] w]
set lineno 0
- set preamble "/* Generated automatically by csvtodiag.tcl from [lindex $ifiles 0] */"
+ puts $cfile "/** \\file [lindex $ifiles 1]"
+ puts $hfile "/** \\file [lindex $ifiles 2]"
+ set preamble " \\brief Diagnostics: Generated by csvtodiag.tcl from [lindex $ifiles 0] */"
puts $cfile $preamble
+ puts $cfile "\#ifdef HAVE_CONFIG_H"
+ puts $cfile "\#include <config.h>"
+ puts $cfile "\#endif"
+
puts $cfile "
#include \"diag-entry.h\"
+\#include \"[lindex $ifiles 2]\"
struct yaz_diag_entry yaz_diag_${name}_tab\[\] = \{
"
puts $hfile $preamble
close $hfile
}
+proc csvto_xml {csvfname xmlfname id} {
+ set xfile [open $xmlfname w]
+ set csv [open $csvfname r]
+
+ puts $xfile "<!-- Generated by csvtodiag.tcl from $csvfname -->"
+ puts $xfile "<informaltable id=\"${id}\">"
+ puts $xfile {<tgroup cols="2">}
+ puts $xfile {<colspec colwidth="1*" colname="code"></colspec>}
+ puts $xfile {<colspec colwidth="4*" colname="text"></colspec>}
+ puts $xfile {<thead>}
+ puts $xfile {<row>}
+ puts $xfile {<entry>Code</entry>}
+ puts $xfile {<entry>Text</entry>}
+ puts $xfile {</row>}
+ puts $xfile {</thead>}
+ puts $xfile {<tbody>}
+
+ set lineno 0
+ while {1} {
+ incr lineno
+ set cnt [gets $csv line]
+ if {$cnt < 0} {
+ break
+ }
+ if {[regexp {([0-9]+)[^\"]*"([^\"]*)"} $line s code msg]} {
+ puts $xfile {<row>}
+ puts $xfile {<entry>}
+ puts $xfile $code
+ puts $xfile {</entry><entry>}
+ puts $xfile $msg
+ puts $xfile {</entry>}
+ puts $xfile {</row>}
+ }
+ }
+ puts $xfile {</tbody>}
+ puts $xfile {</tgroup>}
+ puts $xfile {</informaltable>}
+
+ close $xfile
+ close $csv
+}
+
+if {[llength $argv] >= 4} {
+ set alias {}
+ if {[llength $argv] >= 5} {
+ set alias [lindex $argv 4]
+ }
+ csvtodiag [list [lindex $argv 0] [lindex $argv 1] [lindex $argv 2]] \
+ [lindex $argv 3] $alias
+} elseif {[llength $argv] == 3} {
+ csvto_xml [lindex $argv 0] [lindex $argv 1] [lindex $argv 2]
+}
\ No newline at end of file