X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/62dc37489c39c8d20046b4d5e323707239491df6..0e2b222fc14b8f890fab644118cf0f43abbe450a:/lib/plugin.c diff --git a/lib/plugin.c b/lib/plugin.c index 1c526de..c23865d 100644 --- a/lib/plugin.c +++ b/lib/plugin.c @@ -1,6 +1,6 @@ /* * This file is part of DisOrder. - * Copyright (C) 2004, 2005, 2006 Richard Kettlewell + * Copyright (C) 2004-2008 Richard Kettlewell * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -84,22 +84,22 @@ const struct plugin *open_plugin(const char *name, function_t *get_plugin_function(const struct plugin *pl, const char *symbol) { function_t *f; - const char *e; f = (function_t *)dlsym(pl->dlhandle, symbol); - if((e = dlerror())) - fatal(0, "error looking up function '%s' in '%s': %s",symbol, pl->name, e); + if(!f) + fatal(0, "error looking up function '%s' in '%s': %s", + symbol, pl->name, dlerror()); return f; } const void *get_plugin_object(const struct plugin *pl, const char *symbol) { void *o; - const char *e; o = dlsym(pl->dlhandle, symbol); - if((e = dlerror())) - fatal(0, "error looking up object '%s' in '%s': %s", symbol, pl->name, e); + if(!o) + fatal(0, "error looking up object '%s' in '%s': %s", + symbol, pl->name, dlerror()); return o; }