[sr-dev] git:master:49e80dbe: app_squirrel: updated squirrel interpreter to latest git version
Daniel-Constantin Mierla
miconda at gmail.com
Sun Jun 7 19:17:56 CEST 2020
Module: kamailio
Branch: master
Commit: 49e80dbe4b47f3252445fbad6e12d7150304f5a3
URL: https://github.com/kamailio/kamailio/commit/49e80dbe4b47f3252445fbad6e12d7150304f5a3
Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at 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/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
More information about the sr-dev
mailing list