#define MODULE_PATH_PREFIX LIBDIR"/location/module"
+static gchar* _g_module_build_path (const gchar *directory, const gchar *module_name)
+{
+ 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, "." G_MODULE_SUFFIX, NULL);
+ } else if (strncmp (module_name, "lib", 3) == 0)
+ return g_strdup(module_name);
+ else
+ return g_strconcat("lib", module_name, "." G_MODULE_SUFFIX, NULL);
+}
+
static GMod *gmod_new(const char *module_name, gboolean is_resident)
{
if (!module_name)
char *module_path = g_strndup(MODULE_PATH_PREFIX, strlen(MODULE_PATH_PREFIX)+1);
/* gmod->path = g_module_build_path(MODULE_PATH_PREFIX, gmod->name); */
- gmod->path = g_module_build_path(module_path, gmod->name);
+ gmod->path = _g_module_build_path(module_path, gmod->name);
g_free(module_path);
if (!gmod->path) {
g_free(gmod->name);