X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fcsvtodiag.tcl;h=12e263c45ede740f2bf5d93754aaf4ced5885aa7;hp=e5d6a3f3f4ffd4a68c4ab6111e6cf1b0771ea528;hb=7a8a05adc0264c2dabad740830917e0eda4ad3ad;hpb=84d7b06c13daa609e93f353e655c4b02f936d65c diff --git a/src/csvtodiag.tcl b/src/csvtodiag.tcl index e5d6a3f..12e263c 100644 --- a/src/csvtodiag.tcl +++ b/src/csvtodiag.tcl @@ -1,8 +1,7 @@ # 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 @@ -17,10 +16,17 @@ proc csvtodiag {ifiles name alias} { 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 " + puts $cfile "\#endif" + puts $cfile " #include \"diag-entry.h\" +\#include \"[lindex $ifiles 2]\" struct yaz_diag_entry yaz_diag_${name}_tab\[\] = \{ " puts $hfile $preamble @@ -88,3 +94,55 @@ YAZ_END_CDECL close $hfile } +proc csvto_xml {csvfname xmlfname id} { + set xfile [open $xmlfname w] + set csv [open $csvfname r] + + puts $xfile "" + puts $xfile "" + puts $xfile {} + puts $xfile {} + puts $xfile {} + puts $xfile {} + puts $xfile {} + puts $xfile {Code} + puts $xfile {Text} + puts $xfile {} + puts $xfile {} + puts $xfile {} + + 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 {} + puts $xfile {} + puts $xfile $code + puts $xfile {} + puts $xfile $msg + puts $xfile {} + puts $xfile {} + } + } + puts $xfile {} + puts $xfile {} + puts $xfile {} + + 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