Commit 717c6888b3e4dfaf1ae484cc98ef22bab41b0220

Thomas de Grivel 2020-05-06T14:40:46

fix loading .so on Linux

diff --git a/gtk/rtbuf_gtk_library.c b/gtk/rtbuf_gtk_library.c
index 600004c..5c08482 100644
--- a/gtk/rtbuf_gtk_library.c
+++ b/gtk/rtbuf_gtk_library.c
@@ -134,7 +134,9 @@ void rtbuf_gtk_library_load_file (const char *path, size_t prefix_len)
 {
   size_t len = strlen(path);
   printf("file %s\n", path);
-  if (strncmp(&path[len - 7], ".so.0.0", 7) == 0)
+  if (strncmp(&path[len - 3], ".so", 3) == 0)
+    rtbuf_gtk_library_load_file_1(path, len, prefix_len, 3);
+  else if (strncmp(&path[len - 7], ".so.0.0", 7) == 0)
     rtbuf_gtk_library_load_file_1(path, len, prefix_len, 7);
   else if (strncmp(&path[len - 4], ".dll", 4) == 0)
     rtbuf_gtk_library_load_file_1(path, len, prefix_len, 4);
diff --git a/librtbuf/rtbuf_lib.c b/librtbuf/rtbuf_lib.c
index c3d391a..e08d7d3 100644
--- a/librtbuf/rtbuf_lib.c
+++ b/librtbuf/rtbuf_lib.c
@@ -112,7 +112,12 @@ const char * rtbuf_lib_find_in_path (const char *name)
     char *ext;
     lib_path = g_str_append(*path, strlen(*path));
     g_str_append(name, strlen(name));
-    ext = g_str_append(".so.0.0", 8);
+    ext = g_str_append(".so", 4);
+    printf("lib find in path \"%s\"\n", lib_path);
+    if (access(lib_path, R_OK) == 0)
+      return lib_path;
+    g_str_reset(ext);
+    g_str_append(".so.0.0", 8);
     printf("lib find in path \"%s\"\n", lib_path);
     if (access(lib_path, R_OK) == 0)
       return lib_path;