Module: kamailio Branch: master Commit: 49e80dbe4b47f3252445fbad6e12d7150304f5a3 URL: https://github.com/kamailio/kamailio/commit/49e80dbe4b47f3252445fbad6e12d715...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2020-06-07T19:17:32+02:00
app_squirrel: updated squirrel interpreter to latest git version
---
Modified: src/modules/app_sqlang/squirrel/sqstdlib/sqstdstring.cpp Modified: src/modules/app_sqlang/squirrel/sqstdlib/sqstdsystem.cpp Modified: src/modules/app_sqlang/squirrel/squirrel/sqvm.cpp
---
Diff: https://github.com/kamailio/kamailio/commit/49e80dbe4b47f3252445fbad6e12d715... Patch: https://github.com/kamailio/kamailio/commit/49e80dbe4b47f3252445fbad6e12d715...
---
diff --git a/src/modules/app_sqlang/squirrel/sqstdlib/sqstdstring.cpp b/src/modules/app_sqlang/squirrel/sqstdlib/sqstdstring.cpp index 7f7599bbfb..919bd9e924 100644 --- a/src/modules/app_sqlang/squirrel/sqstdlib/sqstdstring.cpp +++ b/src/modules/app_sqlang/squirrel/sqstdlib/sqstdstring.cpp @@ -181,7 +181,7 @@ static SQInteger _string_printf(HSQUIRRELVM v) return -1;
SQPRINTFUNCTION printfunc = sq_getprintfunc(v); - if(printfunc) printfunc(v,dest); + if(printfunc) printfunc(v,_SC("%s"),dest);
return 0; } diff --git a/src/modules/app_sqlang/squirrel/sqstdlib/sqstdsystem.cpp b/src/modules/app_sqlang/squirrel/sqstdlib/sqstdsystem.cpp index b008a44d5e..d326be1af9 100644 --- a/src/modules/app_sqlang/squirrel/sqstdlib/sqstdsystem.cpp +++ b/src/modules/app_sqlang/squirrel/sqstdlib/sqstdsystem.cpp @@ -19,6 +19,10 @@ #define scremove remove #define screname rename #endif +#ifdef IOS + #include <spawn.h> + extern char **environ; +#endif
static SQInteger _system_getenv(HSQUIRRELVM v) { @@ -30,18 +34,22 @@ static SQInteger _system_getenv(HSQUIRRELVM v) return 0; }
- static SQInteger _system_system(HSQUIRRELVM v) { const SQChar *s; if(SQ_SUCCEEDED(sq_getstring(v,2,&s))){ - sq_pushinteger(v,scsystem(s)); + #ifdef IOS + pid_t pid; + posix_spawn(&pid, s, NULL, NULL, NULL, environ); + sq_pushinteger(v, 0); + #else + sq_pushinteger(v,scsystem(s)); + #endif return 1; } return sq_throwerror(v,_SC("wrong param")); }
- static SQInteger _system_clock(HSQUIRRELVM v) { sq_pushfloat(v,((SQFloat)clock())/(SQFloat)CLOCKS_PER_SEC); diff --git a/src/modules/app_sqlang/squirrel/squirrel/sqvm.cpp b/src/modules/app_sqlang/squirrel/squirrel/sqvm.cpp index b39be72a77..dcf823d735 100644 --- a/src/modules/app_sqlang/squirrel/squirrel/sqvm.cpp +++ b/src/modules/app_sqlang/squirrel/squirrel/sqvm.cpp @@ -671,7 +671,7 @@ bool SQVM::IsFalse(SQObjectPtr &o) #if !defined(SQUSEDOUBLE) || (defined(SQUSEDOUBLE) && defined(_SQ64)) || (_integer(o) == 0) ) //OT_NULL|OT_INTEGER|OT_BOOL #else - || (((type(o) != OT_FLOAT) && (_integer(o) == 0))) ) //OT_NULL|OT_INTEGER|OT_BOOL + || (((sq_type(o) != OT_FLOAT) && (_integer(o) == 0))) ) //OT_NULL|OT_INTEGER|OT_BOOL #endif { return true; @@ -1605,6 +1605,7 @@ SQInteger prevstackbase = _stackbase; } break; default: + Raise_Error(_SC("attempt to call '%s'"), GetTypeName(closure)); return false; } #ifdef _DEBUG