aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDetlev Casanova <detlev.casanova@gmail.com>2010-07-05 12:19:47 +0200
committerDetlev Casanova <detlev.casanova@gmail.com>2010-07-05 12:19:47 +0200
commit1fa0da3323562b7bfc74501d4b20a12bdfe5d094 (patch)
treef5b1eb7c4c3b45d89139f5a263ac02cfcbf2b32e
parentRunner working (diff)
downloadlayman-1fa0da3323562b7bfc74501d4b20a12bdfe5d094.tar.gz
layman-1fa0da3323562b7bfc74501d4b20a12bdfe5d094.tar.bz2
layman-1fa0da3323562b7bfc74501d4b20a12bdfe5d094.zip
Add interpreter version : shorter, more reliable
-rw-r--r--src/interpreter.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/interpreter.c b/src/interpreter.c
new file mode 100644
index 0000000..6ab2843
--- /dev/null
+++ b/src/interpreter.c
@@ -0,0 +1,58 @@
+#include <Python.h>
+#include <stdio.h>
+#include <string.h>
+
+int main(int argc, char *argv[])
+{
+ PyObject *pP1, *pP2, *pArgs, *pName, *pModule, *pDict, *pFunc, *pValue;
+
+ Py_Initialize();
+
+ //printf("%s\n", Py_GetVersion());
+
+ //pName = PyByteArray_FromStringAndSize("portage", strlen("portage"));
+ pModule = PyModule_New("portage");
+
+ pDict = PyModule_GetDict(pModule);
+ pFunc = PyDict_GetItemString(pDict, "pkgcmp");
+
+ if (PyCallable_Check(pFunc))
+ {
+ pP1 = PyByteArray_FromStringAndSize("app-portage/kuroo4-4.2", strlen("app-portage/kuroo4-4.2"));
+ pP2 = PyByteArray_FromStringAndSize("app-portage/kuroo4-4.3", strlen("app-portage/kuroo4-4.3"));
+
+ pArgs = PyTuple_New(2);
+
+ PyTuple_SetItem(pArgs, 0, pP1);
+ PyTuple_SetItem(pArgs, 0, pP2);
+
+ pValue = PyObject_CallObject(pFunc, pArgs);
+
+ if (pArgs != NULL)
+ {
+ Py_DECREF(pArgs);
+ }
+ }
+ else
+ PyErr_Print();
+
+ int ret = PyLong_AsLong(pValue);
+ switch(ret)
+ {
+ case -1:
+ printf("less");
+ break;
+ case 0:
+ printf("same");
+ break;
+ case 1:
+ printf("more");
+ break;
+ }
+
+ printf("\n");
+
+ Py_DECREF(pModule);
+
+ Py_Finalize();
+}