summaryrefslogtreecommitdiff
path: root/gtk/gtkmain.c
diff options
context:
space:
mode:
authorTim Janik <timj@gtk.org>1998-08-17 03:12:10 +0000
committerTim Janik <timj@src.gnome.org>1998-08-17 03:12:10 +0000
commitfe63fe5da9d676db2a00f659b86199b367ef85b4 (patch)
tree649cf8b0d0fef08591490ce0b93b6006d9e91199 /gtk/gtkmain.c
parent2b7f8016b5f16d347e077c3e1c43724c0e9450e3 (diff)
downloadgtk+-fe63fe5da9d676db2a00f659b86199b367ef85b4.tar.gz
don't call module initializers multiple times. changed --gtk-with-module
Mon Aug 17 05:10:29 1998 Tim Janik <timj@gtk.org> * gtk/gtkmain.c (gtk_init): don't call module initializers multiple times. changed --gtk-with-module to --gtk-module at owen's request.
Diffstat (limited to 'gtk/gtkmain.c')
-rw-r--r--gtk/gtkmain.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index 1c315b3262..19c6d2f79f 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -309,12 +309,12 @@ gtk_init (int *argc,
}
(*argv)[i] = NULL;
}
- else if (strcmp ("--gtk-with-module", (*argv)[i]) == 0 ||
- strncmp ("--gtk-with-module=", (*argv)[i], 18) == 0)
+ else if (strcmp ("--gtk-module", (*argv)[i]) == 0 ||
+ strncmp ("--gtk-module=", (*argv)[i], 13) == 0)
{
GModule *module = NULL;
GtkModuleInitFunc modinit_func = NULL;
- gchar *module_name = (*argv)[i] + 17;
+ gchar *module_name = (*argv)[i] + 12;
if (*module_name == '=')
module_name++;
@@ -339,7 +339,15 @@ gtk_init (int *argc,
if (module &&
g_module_symbol (module, "gtk_module_init", (gpointer*) &modinit_func) &&
modinit_func)
- gtk_modinit_funcs = g_slist_prepend (gtk_modinit_funcs, modinit_func);
+ {
+ if (!g_slist_find (gtk_modinit_funcs, modinit_func))
+ gtk_modinit_funcs = g_slist_prepend (gtk_modinit_funcs, modinit_func);
+ else
+ {
+ g_module_close (module);
+ module = NULL;
+ }
+ }
}
if (!modinit_func)
{