var(x=y) function

git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1403 8eb893ce-cfd4-0310-b710-fb5ebe64c474
sayer/1.4-spce2.6
Stefan Sayer 17 years ago
parent 0fd75622b0
commit 8d8040164b

@ -64,6 +64,7 @@ DSMAction* DSMCoreModule::getAction(const string& from_str) {
DEF_CMD("disableDTMFDetection", SCDisableDTMFDetection);
DEF_CMD("set", SCSetAction);
DEF_CMD("var", SCGetVarAction);
DEF_CMD("append", SCAppendAction);
DEF_CMD("substr", SCSubStrAction);
DEF_CMD("inc", SCIncAction);
@ -327,10 +328,22 @@ EXEC_ACTION_START(SCSetAction) {
par1.substr(1) : par1;
sc_sess->var[var_name] = resolveVars(par2, sess, sc_sess, event_params);
DBG("set variable '%s'='%s'\n",
DBG("set $%s='%s'\n",
var_name.c_str(), sc_sess->var[var_name].c_str());
} EXEC_ACTION_END;
CONST_ACTION_2P(SCGetVarAction,'=', false);
EXEC_ACTION_START(SCGetVarAction){
string dst_var_name = (par1.length() && par1[0] == '$')?
par1.substr(1) : par1;
string var_name = resolveVars(par2, sess, sc_sess, event_params);
DBG("var_name = %s, dst = %s\n", var_name.c_str(), dst_var_name.c_str());
sc_sess->var[dst_var_name] = sc_sess->var[var_name];
DBG("set $%s='%s'\n",
dst_var_name.c_str(), sc_sess->var[dst_var_name].c_str());
} EXEC_ACTION_END;
EXEC_ACTION_START(SCClearAction) {
string var_name = (arg.length() && arg[0] == '$')?
arg.substr(1) : arg;

@ -79,6 +79,7 @@ DEF_ACTION_1P(SCClearAction);
DEF_ACTION_2P(SCSetTimerAction);
DEF_ACTION_2P(SCLogAction);
DEF_ACTION_1P(SCLogVarsAction);
DEF_ACTION_2P(SCGetVarAction);
DEF_ACTION_2P(SCPlayFileAction);
DEF_ACTION_2P(SCPlayFileFrontAction);
DEF_ACTION_2P(SCPostEventAction);

@ -80,6 +80,8 @@ actions:
set($var=value)
e.g. set($var="text"); set($var=$var2); set($var=#key)
var($dstvar=srcvarname)
e.g. var($dstvar=$var_counter)
append($var, value)
e.g. append($var, "text"); append($var, #key);
append($var, @select); append($var, $var2);

Loading…
Cancel
Save