diff --git a/tcl/report.tcl.in b/tcl/report.tcl.in index 809f21b5..ca225cfe 100644 --- a/tcl/report.tcl.in +++ b/tcl/report.tcl.in @@ -90,6 +90,16 @@ proc knerror {message {code MODULES_ERR_KNOWN}} { error $message {} $code } +proc knerrorOrWarningIfForced {message {code MODULES_ERR_KNOWN}} { + if {[getState force]} { + if {[string length $message]} { + reportWarning $message + } + } else { + knerror $message $code + } +} + # save message if report is not yet initialized proc reportErrorAndExit {message} { lappend ::errreport_buffer [list reportErrorAndExit $message] @@ -2051,12 +2061,8 @@ proc reportMissingPrereqError {curmodnamevr args} { set msg [expr {$retiseval || [getState force] ? [getReqNotLoadedMsg\ $args] : [getErrPrereqMsg $args]}] } - # still proceed if force mode enabled - if {[getState force]} { - reportWarning $msg - } else { - knerror $msg MODULES_ERR_GLOBAL - } + + knerrorOrWarningIfForced $msg MODULES_ERR_GLOBAL } # create appropriate message and kind of report when a conflict is detected @@ -2065,14 +2071,10 @@ proc reportPresentConflictError {curmodnamevr mod isloading} { set msg [expr {$is_con_mod_eval || [getState force] ? [getConIsLoadedMsg\ [list $mod] $isloading] : [getErrConflictMsg $mod]}] - # still proceed if force mode enabled - if {[getState force]} { - reportWarning $msg - # indicate message has already been reported - lappend ::report_conflict([currentState evalid]) $mod - } else { - knerror $msg MODULES_ERR_GLOBAL - } + # indicate message has already been reported + lappend ::report_conflict([currentState evalid]) $mod + + knerrorOrWarningIfForced $msg MODULES_ERR_GLOBAL } # ;;; Local Variables: ***