+void *PluginObj::load(const char *plugin_dir, const char *path)
+{
+ char dlpath[BCTEXTLEN], *dp = dlpath;
+ const char *cp = path;
+ if( *cp != '/' ) {
+ const char *bp = plugin_dir;
+ while( *bp ) *dp++ = *bp++;
+ *dp++ = '/';
+ }
+ while( *cp ) *dp++ = *cp++;
+ *dp = 0;
+ return dlobj = load(dlpath);
+}
+
+int PluginServer::load_obj()
+{
+ void *obj = plugin_obj->obj();
+ if( !obj ) obj =plugin_obj->load(preferences->plugin_dir, path);
+ return obj ? 1 : 0;
+}
+
+const char *PluginServer::load_error()
+{
+ return plugin_obj->load_error();
+}
+
+void *PluginServer::get_sym(const char *sym)