From 9efac7dc163ee573072fe1cdf64fb0dceb655982 Mon Sep 17 00:00:00 2001 From: Christian Wieninger Date: Sun, 26 Sep 2010 14:09:57 +0200 Subject: new 'lenght' command for script language --- uservars.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'uservars.c') diff --git a/uservars.c b/uservars.c index d635c41..08d2a3d 100644 --- a/uservars.c +++ b/uservars.c @@ -42,7 +42,7 @@ cUserVar::cUserVar() string cUserVar::Evaluate(const cEvent* e, bool escapeStrings) { - if (oldEvent && oldEvent == e && oldescapeStrings == escapeStrings) + if (oldEvent && oldEvent == e && oldescapeStrings == escapeStrings) return oldResult; usedVars.clear(); string result; @@ -50,6 +50,8 @@ string cUserVar::Evaluate(const cEvent* e, bool escapeStrings) result = EvaluateShellCmd(e); else if (IsConnectCmd()) result = EvaluateConnectCmd(e); + else if (IsLengthCmd()) + result = EvaluateLengthCmd(e); else if (IsCondExpr()) result = EvaluateCondExpr(e); else @@ -126,6 +128,11 @@ string cUserVar::EvaluateConnectCmd(const cEvent* e) return buffer; } +string cUserVar::EvaluateLengthCmd(const cEvent* e) +{ + return NumToString(EvaluateCompExpr(e, false).size()); +} + string cUserVar::EvaluateCondExpr(const cEvent* e, bool escapeStrings) { string condresult = ""; @@ -239,6 +246,7 @@ string cUserVar::EvaluateInternalTimerVars(const string& Expr, const cTimer* t) { string varName = tvar->second->Name(); int varPos = 0; + while((varPos = FindIgnoreCase(expr, varName)) >= 0) { expr.replace(varPos, varName.size(), tvar->second->Evaluate(t)); -- cgit v1.2.3