diff options
author | Tim Janik <timj@gtk.org> | 1998-08-17 03:12:10 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 1998-08-17 03:12:10 +0000 |
commit | fe63fe5da9d676db2a00f659b86199b367ef85b4 (patch) | |
tree | 649cf8b0d0fef08591490ce0b93b6006d9e91199 /gtk/gtkmain.c | |
parent | 2b7f8016b5f16d347e077c3e1c43724c0e9450e3 (diff) | |
download | gtk+-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.c | 16 |
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) { |