1 /* libgplugin_a.c - test plugin for testgmodule 2 * Copyright (C) 1998 Tim Janik 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 * Boston, MA 02111-1307, USA. 18 */ 19 20 /* 21 * Modified by the GLib Team and others 1997-2000. See the AUTHORS 22 * file for a list of people on the GLib Team. See the ChangeLog 23 * files for a list of changes. These files are distributed with 24 * GLib at ftp://ftp.gtk.org/pub/gtk/. 25 */ 26 27 #undef G_DISABLE_ASSERT 28 #undef G_LOG_DOMAIN 29 30 #include <gmodule.h> 31 #include <stdlib.h> 32 33 G_MODULE_EXPORT gchar* gplugin_a_state; 34 35 G_MODULE_EXPORT void 36 gplugin_a_func (void) 37 { 38 gplugin_a_state = "Hello world"; 39 } 40 41 G_MODULE_EXPORT void 42 gplugin_clash_func (void) 43 { 44 gplugin_a_state = "plugin clash"; 45 } 46 47 G_MODULE_EXPORT void 48 g_clash_func (void) 49 { 50 gplugin_a_state = "global clash"; 51 } 52 53 G_MODULE_EXPORT void 54 gplugin_say_boo_func (void) 55 { 56 gplugin_a_state = "BOOH"; 57 } 58 59 G_MODULE_EXPORT void 60 gplugin_a_module_func (GModule *module) 61 { 62 void *f = NULL; 63 64 if (!g_module_symbol (module, "gplugin_say_boo_func", &f )) 65 { 66 g_print ("error: %s\n", g_module_error ()); 67 exit (1); 68 } 69 70 ((void(*)(void)) f) (); 71 } 72