Implemented loadable filters.
[idzebra-moved-to-github.git] / recctrl / rectext.c
index 5d04bfb..9d8d165 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: rectext.c,v 1.17 2004-05-14 10:57:42 adam Exp $
+/* $Id: rectext.c,v 1.20 2004-09-27 10:44:50 adam Exp $
    Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
    Index Data Aps
 
@@ -26,19 +26,24 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include <ctype.h>
 
 #include <zebrautl.h>
-#include "rectext.h"
+#include <recctrl.h>
 
 struct text_info {
     char *sep;
 };
 
-static void *text_init (RecType recType)
+static void *text_init (Res res, RecType recType)
 {
     struct text_info *tinfo = (struct text_info *) xmalloc(sizeof(*tinfo));
     tinfo->sep = 0;
     return tinfo;
 }
 
+static void text_config(void *clientData, Res res, const char *args)
+{
+
+}
+
 static void text_destroy (void *clientData)
 {
     struct text_info *tinfo = clientData;
@@ -105,10 +110,6 @@ static int text_extract (void *clientData, struct recExtractCtrl *p)
 #endif
     xfree(tinfo->sep);
     tinfo->sep = 0;
-    if (p->subType) {
-       if (!strncmp(p->subType, "sep=", 4))
-           tinfo->sep = xstrdup(p->subType+4);
-    }
     (*p->init)(p, &recWord);
     recWord.reg_type = 'w';
     do
@@ -134,7 +135,6 @@ static int text_extract (void *clientData, struct recExtractCtrl *p)
 
 static int text_retrieve (void *clientData, struct recRetrieveCtrl *p)
 {
-    struct text_info *tinfo = clientData;
     int r, text_ptr = 0;
     static char *text_buf = NULL;
     static int text_size = 0;
@@ -184,7 +184,8 @@ static int text_retrieve (void *clientData, struct recRetrieveCtrl *p)
                 sprintf (text_buf, "Rank: %d\n", p->score);
                 text_ptr = strlen(text_buf);
             }
-            sprintf (text_buf + text_ptr, "Local Number: %d\n", p->localno);
+            sprintf (text_buf + text_ptr, "Local Number: " ZINT_FORMAT "\n",
+                    p->localno);
             text_ptr = strlen(text_buf);
            if (p->fname)
            {
@@ -230,9 +231,20 @@ static int text_retrieve (void *clientData, struct recRetrieveCtrl *p)
 static struct recType text_type = {
     "text",
     text_init,
+    text_config,
     text_destroy,
     text_extract,
     text_retrieve
 };
 
-RecType recTypeText = &text_type;
+RecType
+#ifdef IDZEBRA_STATIC_TEXT
+idzebra_filter_text
+#else
+idzebra_filter
+#endif
+
+[] = {
+    &text_type,
+    0,
+};