#define MAX_MODULE_INDEX 4
+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)
g_free(gmod);
return NULL;
}
- gmod->path = g_module_build_path(MODULE_PATH_PREFIX, gmod->name);
+ gmod->path = _g_module_build_path(MODULE_PATH_PREFIX, gmod->name);
if (!gmod->path) {
g_free(gmod->name);