Skip to content

Commit 4b4776e

Browse files
committed
Migrate prereq error report in dedicated proc
Add the reportMissingPrereqError procedure to report error when prereq is not satisfied.
1 parent aac27e7 commit 4b4776e

File tree

2 files changed

+34
-29
lines changed

2 files changed

+34
-29
lines changed

tcl/mfinterp.tcl.in

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1749,35 +1749,7 @@ proc prereq {args} {
17491749
}
17501750

17511751
if {$loadedmod eq {}} {
1752-
set retisreqlo [isModuleEvaluated reqlo $curmodnamevr {*}$args]
1753-
# report message on currently evaluated module message block
1754-
if {![set retiseval [isModuleEvaluated any $curmodnamevr {*}$args]] ||\
1755-
[currentState msgrecordid] ne [topState msgrecordid] ||\
1756-
!$retisreqlo} {
1757-
1758-
# more appropriate msg if an evaluation was attempted or is by-passed
1759-
set msg [expr {$retiseval || [getState force] ? [getReqNotLoadedMsg\
1760-
$args] : [getErrPrereqMsg $args]}]
1761-
# still proceed if force mode enabled
1762-
if {[getState force]} {
1763-
reportWarning $msg
1764-
# no error raise if done later
1765-
} elseif {$retisreqlo} {
1766-
reportError $msg
1767-
} else {
1768-
knerror $msg MODULES_ERR_GLOBAL
1769-
}
1770-
}
1771-
1772-
# raise reqlo-specific msg to top level if attempted
1773-
if {$retisreqlo} {
1774-
set msg [getErrReqLoMsg $args]
1775-
if {[getState force]} {
1776-
reportWarning $msg 1
1777-
} else {
1778-
knerror $msg MODULES_ERR_GLOBALTOP
1779-
}
1780-
}
1752+
reportMissingPrereqError $curmodnamevr {*}$args
17811753
} elseif {![getConf auto_handling]} {
17821754
# apply missing tag to first loaded module found
17831755
cmdModuleTag 0 0 $tag_list $loadedmod

tcl/report.tcl.in

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1730,6 +1730,39 @@ Options:
17301730
Set output width to COLS columns.}
17311731
}
17321732
1733+
# create appropriate message and kind of report when a requirement is not
1734+
# satisfied
1735+
proc reportMissingPrereqError {curmodnamevr args} {
1736+
set retisreqlo [isModuleEvaluated reqlo $curmodnamevr {*}$args]
1737+
# report message on currently evaluated module message block
1738+
if {![set retiseval [isModuleEvaluated any $curmodnamevr {*}$args]] ||\
1739+
[currentState msgrecordid] ne [topState msgrecordid] || !$retisreqlo} {
1740+
1741+
# more appropriate msg if an evaluation was attempted or is by-passed
1742+
set msg [expr {$retiseval || [getState force] ? [getReqNotLoadedMsg\
1743+
$args] : [getErrPrereqMsg $args]}]
1744+
# still proceed if force mode enabled
1745+
if {[getState force]} {
1746+
reportWarning $msg
1747+
# no error raise if done later
1748+
} elseif {$retisreqlo} {
1749+
reportError $msg
1750+
} else {
1751+
knerror $msg MODULES_ERR_GLOBAL
1752+
}
1753+
}
1754+
1755+
# raise reqlo-specific msg to top level if attempted
1756+
if {$retisreqlo} {
1757+
set msg [getErrReqLoMsg $args]
1758+
if {[getState force]} {
1759+
reportWarning $msg 1
1760+
} else {
1761+
knerror $msg MODULES_ERR_GLOBALTOP
1762+
}
1763+
}
1764+
}
1765+
17331766
# ;;; Local Variables: ***
17341767
# ;;; mode:tcl ***
17351768
# ;;; End: ***

0 commit comments

Comments
 (0)