evalScriptRestricted()
Allows to execute a script during runtime and to write the return value of the script in target. Compared to the unrestricted function evalScript() only a more limited set of functions is allowed to provide better security.
Synopsis
int evalScriptRestricted(anytype &retVal, string script,[ dyn_string
                    dollars [,<type> <arg> ...]] )
Parameters
| Parameter | Meaning | 
|---|---|
| target | Return value of the executed script | 
| script | The executes script | 
| dollars | The $parameter of the script | 
| arg | The parameters of any existing main function | 
Return value
If the execution was successful, the function returns 0 or in the event of an error, -1.
Error
An error can be, for example, a syntax error in the script or a missing main function.
Description
Like evalScript() the function executes the defined script with the $parameters and returns the return value of the main function in target. However only a limited amount of functions may be used.
- 
                    
UI-functions
 - 
                    
functions from CTRL-extensions
 
function-types that may not be used:
evalScript() can not be used to call a function from the calling script (c.f. example 1).
When using Object Oriented Scripting (CTRL++) the scope accessibility must be considered as otherwise crashes inside of your tests might occur!
Example 1
This example shows how evalScript() can NOT be used.
main()
{
  evalScript(ret, "string main(){ return myFunc();}",
  makeDynString());
}
string myfunc()
{
  return "A";
}
            
Example 2
The function evalScript() calls a script inside the main-function and the returning values are sent to the log viewer.
main()
{
  int sum;
  int rc = evalScriptRestricted(sum,
      "int main(int a, int b)" +
      "{" +
      "  int val;" +
      "  val = 3;" +
      "  DebugN(\"$ Value:\", $val1 + \" val:\", a + b );" +
      "}",
      makeDynString("$val1:12345"), 17, 8);
  DebugN(rc, sum);
}
        Assignment
Miscellaneous functions, waiting CONTROL functions
Availability
CTRL
