Bool _XlcAddLoader( XLCdLoadProc proc, XlcPosition position) { XlcLoaderList loader, last; _XlcRemoveLoader(proc); /* remove old loader, if exist */ loader = (XlcLoaderList) Xmalloc(sizeof(XlcLoaderListRec)); if (loader == NULL) return False; loader->proc = proc; if (loader_list == NULL) position = XlcHead; if (position == XlcHead) { loader->next = loader_list; loader_list = loader; } else { last = loader_list; while (last->next) last = last->next; loader->next = NULL; last->next = loader; } return True; }
void _XlcDeInitLoader() { #ifdef USE_DYNAMIC_LC _XlcRemoveLoader(_XlcDynamicLoad); #else /* USE_DYNAMIC_LC */ #ifdef USE_GENERIC_LOADER _XlcRemoveLoader(_XlcGenericLoader); #endif #ifdef USE_DEFAULT_LOADER _XlcRemoveLoader(_XlcDefaultLoader); #endif #ifdef USE_UTF8_LOADER _XlcRemoveLoader(_XlcUtf8Loader); #endif #ifdef USE_EUC_LOADER _XlcRemoveLoader(_XlcEucLoader); #endif #ifdef USE_SJIS_LOADER _XlcRemoveLoader(_XlcSjisLoader); #endif #ifdef USE_JIS_LOADER _XlcRemoveLoader(_XlcJisLoader); #endif #ifdef USE_DYNAMIC_LOADER _XlcRemoveLoader(_XlcDynamicLoader); #endif #endif /* USE_DYNAMIC_LC */ }