Branch data Line data Source code
1 : : /* libgplugin_a.c - test plugin for testgmodule
2 : : * Copyright (C) 1998 Tim Janik
3 : : *
4 : : * SPDX-License-Identifier: LGPL-2.1-or-later
5 : : *
6 : : * This library is free software; you can redistribute it and/or
7 : : * modify it under the terms of the GNU Lesser General Public
8 : : * License as published by the Free Software Foundation; either
9 : : * version 2.1 of the License, or (at your option) any later version.
10 : : *
11 : : * This library is distributed in the hope that it will be useful,
12 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 : : * Lesser General Public License for more details.
15 : : *
16 : : * You should have received a copy of the GNU Lesser General Public
17 : : * License along with this library; if not, see <http://www.gnu.org/licenses/>.
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 : : #include <gmodule.h>
28 : :
29 : : G_MODULE_EXPORT void gplugin_a_func (void);
30 : : G_MODULE_EXPORT void gplugin_clash_func (void);
31 : : G_MODULE_EXPORT void g_clash_func (void);
32 : : G_MODULE_EXPORT void gplugin_say_boo_func (void);
33 : : G_MODULE_EXPORT void gplugin_a_module_func (GModule *module);
34 : :
35 : : G_MODULE_EXPORT gchar* gplugin_a_state;
36 : :
37 : : G_MODULE_EXPORT void
38 : 2 : gplugin_a_func (void)
39 : : {
40 : 2 : gplugin_a_state = "Hello world";
41 : 2 : }
42 : :
43 : : G_MODULE_EXPORT void
44 : 2 : gplugin_clash_func (void)
45 : : {
46 : 2 : gplugin_a_state = "plugin clash";
47 : 2 : }
48 : :
49 : : G_MODULE_EXPORT void
50 : 2 : g_clash_func (void)
51 : : {
52 : 2 : gplugin_a_state = "global clash";
53 : 2 : }
54 : :
55 : : G_MODULE_EXPORT void
56 : 2 : gplugin_say_boo_func (void)
57 : : {
58 : 2 : gplugin_a_state = "BOOH";
59 : 2 : }
60 : :
61 : : G_MODULE_EXPORT void
62 : 4 : gplugin_a_module_func (GModule *module)
63 : : {
64 : 4 : void *f = NULL;
65 : :
66 : 4 : if (!g_module_symbol (module, "gplugin_say_boo_func", &f ))
67 : : {
68 : 0 : g_print ("error: %s\n", g_module_error ());
69 : 0 : exit (1);
70 : : }
71 : :
72 : 4 : ((void(*)(void)) f) ();
73 : 4 : }
|