Filter 'text' loadable as most other filter types. 'grs.sgml' always
[idzebra-moved-to-github.git] / index / alvis.c
index 93f4241..3f4754e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: alvis.c,v 1.2 2006-08-14 10:40:15 adam Exp $
+/* $Id: alvis.c,v 1.4 2006-11-03 23:17:08 adam Exp $
    Copyright (C) 1995-2006
    Index Data ApS
 
@@ -35,6 +35,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #include <libxslt/transform.h>
 #include <libxslt/xsltutils.h>
 
+#if YAZ_HAVE_EXSLT
+#include <libexslt/exslt.h>
+#endif
+
 #include <idzebra/util.h>
 #include <idzebra/recctrl.h>
 
@@ -140,6 +144,10 @@ static void *filter_init(Res res, RecType recType)
     tinfo->doc = 0;
     tinfo->schemas = 0;
 
+#if YAZ_HAVE_EXSLT
+    exsltRegisterAll(); 
+#endif
+
 #if ENABLE_INPUT_CALLBACK
     xmlRegisterDefaultInputCallbacks();
     xmlRegisterInputCallbacks(zebra_xmlInputMatchCallback,
@@ -336,7 +344,7 @@ static void filter_destroy(void *clientData)
 static int ioread_ex(void *context, char *buffer, int len)
 {
     struct recExtractCtrl *p = context;
-    return (*p->readf)(p->fh, buffer, len);
+    return p->stream->readf(p->stream, buffer, len);
 }
 
 static int ioclose_ex(void *context)
@@ -555,7 +563,7 @@ static int filter_extract(void *clientData, struct recExtractCtrl *p)
 static int ioread_ret(void *context, char *buffer, int len)
 {
     struct recRetrieveCtrl *p = context;
-    return (*p->readf)(p->fh, buffer, len);
+    return p->stream->readf(p->stream, buffer, len);
 }
 
 static int ioclose_ret(void *context)