-/* $Id: recgrs.c,v 1.62 2002-08-28 12:47:10 adam Exp $
+/* $Id: recgrs.c,v 1.66 2002-09-02 11:19:33 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
Index Data Aps
for (xp = n->u.tag.attributes; xp; xp = xp->next)
{
char attr_tag_path_full[1024];
+ int int_len = flen;
sprintf (attr_tag_path_full, "@%s/%.*s",
- xp->name, flen, tag_path_full);
+ xp->name, int_len, tag_path_full);
wrd->reg_type = '0';
wrd->attrUse = 1;
wrd->length = strlen(attr_tag_path_full);
(*p->tokenAdd)(wrd);
- wrd->attrUse = 1015;
- wrd->reg_type = 'w';
- wrd->string = xp->value;
- wrd->length = strlen(xp->value);
-
- (*p->tokenAdd)(wrd);
+ if (xp->value)
+ {
+ wrd->attrUse = 1015;
+ wrd->reg_type = 'w';
+ wrd->string = xp->value;
+ wrd->length = strlen(xp->value);
+ (*p->tokenAdd)(wrd);
+ }
wrd->reg_type = '0';
wrd->attrUse = 2;
}
}
+static void add_nice_whitespace (struct recRetrieveCtrl *p, data1_node *top,
+ NMEM mem)
+{
+ data1_node *n = top->child;
+ while (n && n->which == DATA1N_data && n->u.data.what == DATA1I_text)
+ {
+ data1_mk_text_n(p->dh, mem, n->u.data.data, n->u.data.len, top);
+ n = n->next;
+ }
+}
+
static void add_idzebra_info (struct recRetrieveCtrl *p, data1_node *top,
NMEM mem)
{
data1_tag_add_attr (p->dh, mem, top, idzebra_ns);
+ add_nice_whitespace (p, top, mem);
data1_mk_tag_data_int (p->dh, top, "idzebra:size", p->recordSize,
mem);
if (p->score != -1)
+ {
+ add_nice_whitespace (p, top, mem);
data1_mk_tag_data_int (p->dh, top, "idzebra:score",
p->score, mem);
-
+ }
+ add_nice_whitespace (p, top, mem);
data1_mk_tag_data_int (p->dh, top, "idzebra:localnumber", p->localno,
mem);
if (p->fname)
+ {
+ add_nice_whitespace (p, top, mem);
data1_mk_tag_data_text(p->dh, top, "idzebra:filename",
p->fname, mem);
+ }
}
static int grs_retrieve(void *clientData, struct recRetrieveCtrl *p)
/* ensure our data1 tree is UTF-8 */
data1_iconv (p->dh, mem, node, "UTF-8", data1_get_encoding(p->dh, node));
-#if 1
+#if 0
data1_pr_tree (p->dh, node, stdout);
#endif
top = data1_get_root_tag (p->dh, node);