Module: kamailio Branch: master Commit: 49e80dbe4b47f3252445fbad6e12d7150304f5a3 URL: https://github.com/kamailio/kamailio/commit/49e80dbe4b47f3252445fbad6e12d7150304f5a3
Author: Daniel-Constantin Mierla <[email protected]> Committer: Daniel-Constantin Mierla <[email protected]> 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/49e80dbe4b47f3252445fbad6e12d7150304f5a3.diff Patch: https://github.com/kamailio/kamailio/commit/49e80dbe4b47f3252445fbad6e12d7150304f5a3.patch --- 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 _______________________________________________ Kamailio (SER) - Development Mailing List [email protected] https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
