X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=recctrl%2Frecctrl.c;h=5709d8c19b27b813fd1476ddccef6fdf98a43f30;hb=9b9f570a2960c2c8a7026b2faee943794b08ce49;hp=a19874feb711cd6ab064cb20d31f238ada63b0a9;hpb=39cb125e7755c6058a93dada8d5172804213cf8e;p=idzebra-moved-to-github.git diff --git a/recctrl/recctrl.c b/recctrl/recctrl.c index a19874f..5709d8c 100644 --- a/recctrl/recctrl.c +++ b/recctrl/recctrl.c @@ -1,6 +1,6 @@ -/* $Id: recctrl.c,v 1.14 2004-11-29 21:55:28 adam Exp $ - Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 - Index Data Aps +/* $Id: recctrl.c,v 1.20 2005-04-28 08:20:40 adam Exp $ + Copyright (C) 1995-2005 + Index Data ApS This file is part of the Zebra server. @@ -24,10 +24,12 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include #include +#if HAVE_DLFCN_H #include +#endif #include -#include +#include #include struct recTypeClass { @@ -48,27 +50,6 @@ struct recTypes { struct recTypeInstance *entries; }; -#ifdef IDZEBRA_STATIC_TEXT - extern RecType idzebra_filter_text[]; -#endif -#ifdef IDZEBRA_STATIC_GRS_XML -#if HAVE_EXPAT_H - extern RecType idzebra_filter_grs_xml[]; -#endif -#endif -#ifdef IDZEBRA_STATIC_GRS_REGX - extern RecType idzebra_filter_grs_regx[]; -#endif -#ifdef IDZEBRA_STATIC_GRS_MARC - extern RecType idzebra_filter_grs_marc[]; -#endif -#ifdef IDZEBRA_STATIC_GRS_DANBIB - extern RecType idzebra_filter_grs_danbib[]; -#endif -#ifdef IDZEBRA_STATIC_SAFARI - extern RecType idzebra_filter_safari[]; -#endif - static void recTypeClass_add (struct recTypeClass **rts, RecType *rt, NMEM nmem, void *module_handle); @@ -78,29 +59,77 @@ RecTypeClass recTypeClass_create (Res res, NMEM nmem) const char *module_path = res_get_def(res, "modulePath", DEFAULT_MODULE_PATH); - extern RecType idzebra_filter_grs_sgml[]; - recTypeClass_add (&rts, idzebra_filter_grs_sgml, nmem, 0); +#ifdef IDZEBRA_STATIC_GRS_SGML + if (1) + { + extern RecType idzebra_filter_grs_sgml[]; + recTypeClass_add (&rts, idzebra_filter_grs_sgml, nmem, 0); + } +#endif #ifdef IDZEBRA_STATIC_TEXT - recTypeClass_add (&rts, idzebra_filter_text, nmem, 0); + if (1) + { + extern RecType idzebra_filter_text[]; + recTypeClass_add (&rts, idzebra_filter_text, nmem, 0); + } #endif #ifdef IDZEBRA_STATIC_GRS_XML #if HAVE_EXPAT_H - recTypeClass_add (&rts, idzebra_filter_grs_xml, nmem, 0); + if (1) + { + extern RecType idzebra_filter_grs_xml[]; + recTypeClass_add (&rts, idzebra_filter_grs_xml, nmem, 0); + } #endif #endif #ifdef IDZEBRA_STATIC_GRS_REGX - recTypeClass_add (&rts, idzebra_filter_grs_regx, nmem, 0); + if (1) + { + extern RecType idzebra_filter_grs_regx[]; + recTypeClass_add (&rts, idzebra_filter_grs_regx, nmem, 0); + } #endif #ifdef IDZEBRA_STATIC_GRS_MARC - recTypeClass_add (&rts, idzebra_filter_grs_marc, nmem, 0); + if (1) + { + extern RecType idzebra_filter_grs_marc[]; + recTypeClass_add (&rts, idzebra_filter_grs_marc, nmem, 0); + } #endif #ifdef IDZEBRA_STATIC_GRS_DANBIB - recTypeClass_add (&rts, idzebra_filter_grs_danbib, nmem, 0); + if (1) + { + extern RecType idzebra_filter_grs_danbib[]; + recTypeClass_add (&rts, idzebra_filter_grs_danbib, nmem, 0); + } #endif #ifdef IDZEBRA_STATIC_SAFARI - recTypeClass_add (&rts, idzebra_filter_safari, nmem, 0); + if (1) + { + extern RecType idzebra_filter_safari[]; + recTypeClass_add (&rts, idzebra_filter_safari, nmem, 0); + } +#endif +#ifdef IDZEBRA_STATIC_ALVIS +#if HAVE_XSLT + if (1) + { + extern RecType idzebra_filter_alvis[]; + recTypeClass_add (&rts, idzebra_filter_alvis, nmem, 0); + } +#endif +#endif +#ifdef IDZEBRA_STATIC_XSLT +#if HAVE_XSLT + if (1) + { + extern RecType idzebra_filter_xslt[]; + recTypeClass_add (&rts, idzebra_filter_xslt, nmem, 0); + } +#endif #endif +#if HAVE_DLFCN_H if (module_path) { DIR *dir = opendir(module_path); @@ -146,6 +175,7 @@ RecTypeClass recTypeClass_create (Res res, NMEM nmem) closedir(dir); } } +#endif return rts; } @@ -180,8 +210,10 @@ void recTypeClass_destroy(RecTypeClass rtc) { for (; rtc; rtc = rtc->next) { +#if HAVE_DLFCN_H if (rtc->module_handle) dlclose(rtc->module_handle); +#endif } }