summaryrefslogtreecommitdiff
path: root/kde-base/pykde4/files/kpythonpluginfactorywrapper.c-r1
diff options
context:
space:
mode:
Diffstat (limited to 'kde-base/pykde4/files/kpythonpluginfactorywrapper.c-r1')
-rw-r--r--kde-base/pykde4/files/kpythonpluginfactorywrapper.c-r160
1 files changed, 0 insertions, 60 deletions
diff --git a/kde-base/pykde4/files/kpythonpluginfactorywrapper.c-r1 b/kde-base/pykde4/files/kpythonpluginfactorywrapper.c-r1
deleted file mode 100644
index b5d152f4b5c..00000000000
--- a/kde-base/pykde4/files/kpythonpluginfactorywrapper.c-r1
+++ /dev/null
@@ -1,60 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#define VERSION_LEN 10
-
-#define FORMAT EPREFIX PLUGIN_DIR "/kpython%spluginfactory.so"
-
-static void *handle;
-static void *(*wrapped_qt_plugin_instance)();
-
-static void get_python_version(char* out) {
- int pipefd[2];
- pipe(pipefd);
- pid_t cpid = fork();
- if (cpid == 0) {
- close(pipefd[1]);
- read(pipefd[0], out, VERSION_LEN);
- } else {
- close(pipefd[0]);
- close(1);
- dup2(pipefd[1], 1);
- close(pipefd[1]);
- close(0);
- char *args[] = { "eselect", "python", "show", "--ABI", "--python2", 0 };
- execv(EPREFIX "/usr/bin/eselect", args);
- }
-}
-
-__attribute__((constructor))
-static void init() {
- char buf[VERSION_LEN + 1];
- memset(buf, 0, VERSION_LEN + 1);
- get_python_version(buf);
- char *s = buf;
- while(*s != '\0') {
- if(*s == '\n') {
- *s = '\0';
- break;
- }
- ++s;
- }
- int length = strlen(FORMAT) + strlen(buf) + 1;
- char *name = malloc(length + 1);
- snprintf(name, length, FORMAT, buf);
- handle = dlopen(name, RTLD_NOW);
- free(name);
- wrapped_qt_plugin_instance = dlsym(handle, "qt_plugin_instance");
-}
-
-__attribute__((destructor))
-static void fini() {
- dlclose(handle);
-}
-
-void *qt_plugin_instance() {
- return wrapped_qt_plugin_instance();
-}