30 lines
744 B
Diff
30 lines
744 B
Diff
|
diff --git a/src/loslib.c b/src/loslib.c
|
||
|
index e65e188..3595601 100644
|
||
|
--- a/src/loslib.c
|
||
|
+++ b/src/loslib.c
|
||
|
@@ -3,7 +3,9 @@
|
||
|
** Standard Operating System library
|
||
|
** See Copyright Notice in lua.h
|
||
|
*/
|
||
|
-
|
||
|
+#if defined(__APPLE__)
|
||
|
+#include <TargetConditionals.h>
|
||
|
+#endif
|
||
|
#define loslib_c
|
||
|
#define LUA_LIB
|
||
|
|
||
|
@@ -143,7 +145,12 @@ static int os_execute (lua_State *L) {
|
||
|
const char *cmd = luaL_optstring(L, 1, NULL);
|
||
|
int stat;
|
||
|
errno = 0;
|
||
|
- stat = system(cmd);
|
||
|
+#if defined(__APPLE__) && !TARGET_OS_OSX
|
||
|
+ // system() is __IOS_PROHIBITED, __WATCHOS_PROHIBITED, and __TVOS_PROHIBITED.
|
||
|
+ stat = 127; // error: shell execution failed
|
||
|
+#else
|
||
|
+ stat = system(cmd);
|
||
|
+#endif
|
||
|
if (cmd != NULL)
|
||
|
return luaL_execresult(L, stat);
|
||
|
else {
|