diff --git a/bin/scripts/outv.def b/bin/scripts/outv.def index 58aa1d8..08a494d 100644 --- a/bin/scripts/outv.def +++ b/bin/scripts/outv.def @@ -1,7 +1,14 @@ #permission=0 SET,vn #${@caller}::${@def} -SET,vv,onfail,{} ${${vn}} -LOG * Var '${@def}' = '${vv}' + +IF ?{NOT ?{ISSET ${vn}}} + OUT * Var '${@def}' not defined. + RETURN +ENDIF + +SET,vv ${${vn}} +OUT * Var '${@def}' = '${vv}' + UNSET vv -UNSET vn \ No newline at end of file +UNSET vn diff --git a/bin/scripts/sayv.def b/bin/scripts/sayv.def index 5b331ae..a1c7ab6 100644 --- a/bin/scripts/sayv.def +++ b/bin/scripts/sayv.def @@ -1,10 +1,16 @@ #permission=0 -SET,vn ${@def} +SET,vn #${@caller}::${@def} SET,vl ${@0} DEFAULT,vl 0 -SET,vv,onfail,{} ${#${@caller}::${@def}} -SAY,{${vl}} * Var '${vn}' = '${vv}' + +IF ?{NOT ?{ISSET ${vn}}} + SAY,{${vl}} * Var '${@def}' not defined. + RETURN +ENDIF + +SET,vv ${${vn}} +SAY,{${vl}} * Var '${@def}' = '${vv}' UNSET vv UNSET vn diff --git a/src/Client/DefScript/DefScript.cpp b/src/Client/DefScript/DefScript.cpp index d1bc185..4916b69 100644 --- a/src/Client/DefScript/DefScript.cpp +++ b/src/Client/DefScript/DefScript.cpp @@ -878,12 +878,15 @@ DefXChgResult DefScriptPackage::ReplaceVars(std::string str, CmdSet *pSet, unsig } std::string DefScriptPackage::_NormalizeVarName(std::string vn_in, std::string sn){ + if(vn_in.empty()) + return vn_in; std::string vn=vn_in; bool global=false; + if(sn.empty()) + global = true; while(true) { - if(sn.empty()) - return vn; + if(vn.at(0)=='#') global = true; if(vn.at(0)=='#' || vn.at(0)==':')