#undef _POSIX_C_SOURCE
#define _POSIX_C_SOURCE 200112L
extern "C" void init_enigma();
+extern "C" void eBaseInit(void);
+extern "C" void eConsoleInit(void);
extern void bsodFatal();
#define SKIP_PART2
#include <lib/python/python.h>
#undef SKIP_PART1
-DEFINE_REF(TestObj);
-
-TestObj::TestObj()
-{
- eDebug("create %p", this);
-}
-
-TestObj::~TestObj()
-{
- eDebug("destroy %p", this);
-}
-
ePython::ePython()
{
// Py_VerboseFlag = 1;
// Py_OptimizeFlag = 1;
Py_Initialize();
-
+ PyEval_InitThreads();
+
init_enigma();
+ eBaseInit();
+ eConsoleInit();
}
ePython::~ePython()
Py_Finalize();
}
+int ePython::execFile(const char *file)
+{
+ FILE *fp = fopen(file, "r");
+ if (!fp)
+ return -ENOENT;
+ int ret = PyRun_SimpleFile(fp, file);
+ fclose(fp);
+ return ret;
+}
+
int ePython::execute(const std::string &pythonfile, const std::string &funcname)
{
ePyObject pName, pModule, pDict, pFunc, pArgs, pValue;
} else
{
PyErr_Print();
+ ePyObject FuncStr = PyObject_Str(pFunc);
+ ePyObject ArgStr = PyObject_Str(pArgs);
+ eDebug("(PyObject_CallObject(%s,%s) failed)", PyString_AS_STRING(FuncStr), PyString_AS_STRING(ArgStr));
+ Py_DECREF(FuncStr);
+ Py_DECREF(ArgStr);
bsodFatal();
}
}