summaryrefslogtreecommitdiffstats
path: root/ui-macos/bits/runpython.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui-macos/bits/runpython.c')
-rw-r--r--ui-macos/bits/runpython.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/ui-macos/bits/runpython.c b/ui-macos/bits/runpython.c
new file mode 100644
index 0000000..63de339
--- /dev/null
+++ b/ui-macos/bits/runpython.c
@@ -0,0 +1,23 @@
+/*
+ * This rather pointless program acts like the python interpreter, except
+ * it's intended to sit inside a MacOS .app package, so that its argv[0]
+ * will point inside the package.
+ *
+ * NSApplicationMain() looks for Info.plist using the path in argv[0], which
+ * goes wrong if your interpreter is /usr/bin/python.
+ */
+#include <Python.h>
+#include <string.h>
+#include <unistd.h>
+
+int main(int argc, char **argv)
+{
+ char *path = strdup(argv[0]), *cptr;
+ char *args[] = {argv[0], "../Resources/main.py", NULL};
+ cptr = strrchr(path, '/');
+ if (cptr)
+ *cptr = 0;
+ chdir(path);
+ free(path);
+ return Py_Main(2, args);
+}