Library plugin interface:
struct CompLibraryFunction {
CompLibraryFunction *next;
CompLibraryFunction *prev;
char *name;
void *function;
}
add
CompLibraryFunction *libFunctions to CompDisplay;
a additional vtable entry libraryFunctionUpdated(CompDisplay *d, char *name);
a function addLibraryFunction(CompDisplay *d, char *name, void *function);
and a function removeLibraryFunction(CompDisplay *d, char *name, void *function);
Both would call libraryFunctionUpdated to ensure other plugins know about loading/unloading of functions.