diff options
author | Christian Wieninger <cwieninger@gmx.de> | 2010-09-26 14:09:57 +0200 |
---|---|---|
committer | Christian Wieninger <cwieninger@gmx.de> | 2010-09-26 14:09:57 +0200 |
commit | 9efac7dc163ee573072fe1cdf64fb0dceb655982 (patch) | |
tree | 5d662f2a7d764fdabd704e52f11268dc5badf0f5 /uservars.c | |
parent | 44fe54115300b604865789018b560ec28edfcf3f (diff) | |
download | vdr-plugin-epgsearch-9efac7dc163ee573072fe1cdf64fb0dceb655982.tar.gz vdr-plugin-epgsearch-9efac7dc163ee573072fe1cdf64fb0dceb655982.tar.bz2 |
new 'lenght' command for script language
Diffstat (limited to 'uservars.c')
-rw-r--r-- | uservars.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -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)); |