summaryrefslogtreecommitdiff
path: root/gmodule
diff options
context:
space:
mode:
Diffstat (limited to 'gmodule')
-rw-r--r--gmodule/ChangeLog8
-rw-r--r--gmodule/gmodule-dl.c9
-rw-r--r--gmodule/gmodule-dld.c11
-rw-r--r--gmodule/gmodule-win32.c12
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);
}