diff options
Diffstat (limited to 'gmodule')
-rw-r--r-- | gmodule/ChangeLog | 8 | ||||
-rw-r--r-- | gmodule/gmodule-dl.c | 9 | ||||
-rw-r--r-- | gmodule/gmodule-dld.c | 11 | ||||
-rw-r--r-- | gmodule/gmodule-win32.c | 12 |
4 files changed, 33 insertions, 7 deletions
diff --git a/gmodule/ChangeLog b/gmodule/ChangeLog index 86dd222ae..e90408a33 100644 --- a/gmodule/ChangeLog +++ b/gmodule/ChangeLog @@ -1,3 +1,11 @@ +1999-01-16 Tor Lillqvist <tml@iki.fi> + + * gmodule-dl.c gmodule-dld.c: In + _g_module_build_path, don't add the "lib" prefix and + ".so" or ".sl" suffix if already there. + + * gmodule-win32.c: Likewise for the ".dll" suffix. + 1998-12-10 Sebastian Wilhelmi <wilhelmi@ira.uka.de> * gmodule.c: Made it MT safe, the g_module_error() is now thread diff --git a/gmodule/gmodule-dl.c b/gmodule/gmodule-dl.c index 4a5686616..e8c986fc7 100644 --- a/gmodule/gmodule-dl.c +++ b/gmodule/gmodule-dl.c @@ -125,8 +125,13 @@ static gchar* _g_module_build_path (const gchar *directory, const gchar *module_name) { - if (directory) - return g_strconcat (directory, "/lib", module_name, ".so", NULL); + if (directory && *directory) + if (strncmp (module_name, "lib", 3) == 0) + return g_strconcat (directory, "/", module_name, NULL); + else + return g_strconcat (directory, "/lib", module_name, ".so", NULL); + else if (strncmp (module_name, "lib", 3) == 0) + return g_strdup (module_name); else return g_strconcat ("lib", module_name, ".so", NULL); } diff --git a/gmodule/gmodule-dld.c b/gmodule/gmodule-dld.c index 53b269b48..17d6e010e 100644 --- a/gmodule/gmodule-dld.c +++ b/gmodule/gmodule-dld.c @@ -122,8 +122,13 @@ static gchar* _g_module_build_path (const gchar *directory, const gchar *module_name) { - if (directory) - return g_strconcat (directory, "/", module_name, ".sl", NULL); + if (directory && *directory) + if (strncmp (module_name, "lib", 3) == 0) + return g_strconcat (directory, "/", module_name, NULL); + else + return g_strconcat (directory, "/lib", module_name, ".sl", NULL); + else if (strncmp (module_name, "lib", 3) == 0) + return g_strdup (module_name); else - return g_strconcat (module_name, ".sl", NULL); + return g_strconcat ("lib", module_name, ".sl", NULL); } diff --git a/gmodule/gmodule-win32.c b/gmodule/gmodule-win32.c index 98643ad23..c3fc9a90d 100644 --- a/gmodule/gmodule-win32.c +++ b/gmodule/gmodule-win32.c @@ -91,8 +91,16 @@ static gchar* _g_module_build_path (const gchar *directory, const gchar *module_name) { - if (directory) - return g_strconcat (directory, "\\", module_name, ".dll", NULL); + gint k; + + k = strlen (module_name); + if (directory && *directory) + if (k > 4 && g_strcasecmp (module_name + k - 4, ".dll") == 0) + return g_strconcat (directory, "\\", module_name, NULL); + else + return g_strconcat (directory, "\\", module_name, ".dll", NULL); + else if (k > 4 && g_strcasecmp (module_name + k - 4, ".dll") == 0) + return g_strdup (module_name); else return g_strconcat (module_name, ".dll", NULL); } |