From cfe48c3aee5749b24b6d213c95e1bb6961d3084b Mon Sep 17 00:00:00 2001 From: Dirk Zimoch <dirk.zimoch@psi.ch> Date: Tue, 20 Oct 2015 17:53:07 +0200 Subject: [PATCH] skip duplicate includes --- App/tools/expandDBD.tcl | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/App/tools/expandDBD.tcl b/App/tools/expandDBD.tcl index ebdc143c..a746fc96 100755 --- a/App/tools/expandDBD.tcl +++ b/App/tools/expandDBD.tcl @@ -8,6 +8,7 @@ set epicsversion 3.13 set quiet 0 set recordtypes 0 set seachpath {} +set filesDone {} while {[llength $argv]} { switch -glob -- [lindex $argv 0] { @@ -80,20 +81,35 @@ scanmatch $global_context {include[ \t]+"?([^"]*)"?} { continue } - -proc includeFile {context name} { - global global_context FileName - set file [opendbd $name] - set FileName($file) $name +proc includeFile {context filename} { + global global_context FileName filesDone matchInfo quiet + set basename [file tail $filename] + if {[lsearch $filesDone $basename ] != -1} { + if {!$quiet} { + puts stderr "Warning: skipping duplicate file $basename included from $FileName($matchInfo(handle))" + } + return + } + if {$filename != "dbCommon.dbd"} { lappend filesDone [file tail $filename] } + set file [opendbd $filename] + set FileName($file) $filename + #puts "#include $filename from $FileName($matchInfo(handle))" scanfile $context $file close $file } foreach filename $argv { + global filesDone quiet + set basename [file tail $filename] + if {[lsearch $filesDone $basename] != -1} { + if {!$quiet} { + puts stderr "Warning: skipping duplicate file $basename from command line" + } + continue + } + if {$basename != "dbCommon.dbd"} { lappend filesDone $basename } set file [open $filename] set FileName($file) $filename scanfile $global_context $file close $file } - -# $Header: /cvs/G/DRV/misc/App/tools/expandDBD.tcl,v 1.4 2011/12/22 10:33:20 zimoch Exp $ -- GitLab