You should have received a copy of the GNU Lesser General Public
License along with the m17n library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
02111-1307, USA. */
/***en
{
/** Name of the dynamic library (e.g. "libm17n-X.so"). */
char *library;
- /** Handle fo the dynamic library. */
+ /** Handle of the dynamic library. */
void *handle;
/** Function to call just after loading the library. */
int (*init) ();
}
#ifdef HAVE_FREETYPE
if (null_interface.handle)
- (*null_interface.fini) ();
+ {
+ (*null_interface.fini) ();
+ null_interface.handle = NULL;
+ }
#endif /* not HAVE_FREETYPE */
M17N_OBJECT_UNREF (device_library_list);
minput__win_fini ();
if (! interface->handle)
{
if (! (interface->handle = dlopen (interface->library, RTLD_NOW))
- || ! (interface->init
- = (int (*) ()) dlsym (interface->handle, "device_init"))
- || ! (interface->open
- = (int (*) (MFrame *, MPlist *)) dlsym (interface->handle,
- "device_open"))
- || ! (interface->fini
- = (int (*) ()) dlsym (interface->handle, "device_fini"))
+ || ! (*(void **) (&interface->init)
+ = dlsym (interface->handle, "device_init"))
+ || ! (*(void **) (&interface->open)
+ = dlsym (interface->handle, "device_open"))
+ || ! (*(void **) (&interface->fini)
+ = dlsym (interface->handle, "device_fini"))
|| (*interface->init) () < 0)
{
fprintf (stderr, "%s\n", (char *) dlerror ());