summaryrefslogtreecommitdiff
path: root/uservars.c
diff options
context:
space:
mode:
authorChristian Wieninger <cwieninger@gmx.de>2010-09-26 14:09:57 +0200
committerChristian Wieninger <cwieninger@gmx.de>2010-09-26 14:09:57 +0200
commit9efac7dc163ee573072fe1cdf64fb0dceb655982 (patch)
tree5d662f2a7d764fdabd704e52f11268dc5badf0f5 /uservars.c
parent44fe54115300b604865789018b560ec28edfcf3f (diff)
downloadvdr-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.c10
1 files changed, 9 insertions, 1 deletions
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));