From 778a4577d4db949db3f0aadc32fc227ac025bc56 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Wed, 31 Mar 2021 10:38:53 +0200 Subject: Move quadruple_dlopen() to Fl_Posix_System_Driver.cxx where it's used. --- src/drivers/Posix/Fl_Posix_System_Driver.cxx | 24 ++++++++++++++++++++++++ src/drivers/X11/Fl_X11_System_Driver.cxx | 22 ---------------------- 2 files changed, 24 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/drivers/Posix/Fl_Posix_System_Driver.cxx b/src/drivers/Posix/Fl_Posix_System_Driver.cxx index f9324428b..4a8ccda3c 100644 --- a/src/drivers/Posix/Fl_Posix_System_Driver.cxx +++ b/src/drivers/Posix/Fl_Posix_System_Driver.cxx @@ -171,6 +171,30 @@ int Fl_Posix_System_Driver::run_program(const char *program, char **argv, char * return 1; } + +#if HAVE_DLSYM && HAVE_DLFCN_H +static void* quadruple_dlopen(const char *libname) +{ + char filename2[FL_PATH_MAX]; + sprintf(filename2, "%s.so", libname); + void *ptr = dlopen(filename2, RTLD_LAZY | RTLD_GLOBAL); + if (!ptr) { + sprintf(filename2, "%s.so.2", libname); + ptr = dlopen(filename2, RTLD_LAZY | RTLD_GLOBAL); + if (!ptr) { + sprintf(filename2, "%s.so.1", libname); + ptr = dlopen(filename2, RTLD_LAZY | RTLD_GLOBAL); + if (!ptr) { + sprintf(filename2, "%s.so.0", libname); + ptr = dlopen(filename2, RTLD_LAZY | RTLD_GLOBAL); + } + } + } + return ptr; +} +#endif + + /** Returns the run-time address of a function or of a shared library. \param lib_name shared library name (without its extension) or NULL to search the function in the running program diff --git a/src/drivers/X11/Fl_X11_System_Driver.cxx b/src/drivers/X11/Fl_X11_System_Driver.cxx index c16133e15..8beed262b 100644 --- a/src/drivers/X11/Fl_X11_System_Driver.cxx +++ b/src/drivers/X11/Fl_X11_System_Driver.cxx @@ -569,28 +569,6 @@ int Fl_X11_System_Driver::utf8locale() { return ret; } -#if HAVE_DLSYM && HAVE_DLFCN_H -static void* quadruple_dlopen(const char *libname) -{ - char filename2[FL_PATH_MAX]; - sprintf(filename2, "%s.so", libname); - void *ptr = dlopen(filename2, RTLD_LAZY | RTLD_GLOBAL); - if (!ptr) { - sprintf(filename2, "%s.so.2", libname); - ptr = dlopen(filename2, RTLD_LAZY | RTLD_GLOBAL); - if (!ptr) { - sprintf(filename2, "%s.so.1", libname); - ptr = dlopen(filename2, RTLD_LAZY | RTLD_GLOBAL); - if (!ptr) { - sprintf(filename2, "%s.so.0", libname); - ptr = dlopen(filename2, RTLD_LAZY | RTLD_GLOBAL); - } - } - } - return ptr; -} -#endif - #if !defined(FL_DOXYGEN) -- cgit v1.2.3