-static void index_tag (data1_node *par, data1_node *n,
- struct recExtractCtrl *p, int level, RecWord *wrd)
+static void index_string_tag (data1_node *n,
+ struct recExtractCtrl *p,
+ int level, RecWord *wrd,
+ int use)
+{
+ int i;
+ switch (n->which)
+ {
+ case DATA1N_data:
+ wrd->reg_type = 'w';
+ wrd->string = n->u.data.data;
+ wrd->length = n->u.data.len;
+ wrd->attrSet = VAL_BIB1;
+ wrd->attrUse = 1016;
+ if (p->flagShowRecords)
+ {
+ printf("%*s data=", (level + 1) * 4, "");
+ for (i = 0; i<wrd->length && i < 8; i++)
+ fputc (wrd->string[i], stdout);
+ printf("\n");
+ }
+ else
+ {
+ (*p->tokenAdd)(wrd);
+ }
+ break;
+ case DATA1N_tag:
+ wrd->reg_type = 'w';
+ wrd->string = n->u.tag.tag;
+ wrd->length = strlen(n->u.tag.tag);
+ wrd->attrSet = VAL_BIB1;
+ wrd->attrUse = use;
+ if (p->flagShowRecords)
+ {
+ printf("%*s tag=", (level + 1) * 4, "");
+ for (i = 0; i<wrd->length && i < 8; i++)
+ fputc (wrd->string[i], stdout);
+ printf("\n");
+ }
+ else
+ {
+ (*p->tokenAdd)(wrd);
+ }
+ break;
+ }
+}
+
+static void index_termlist (data1_node *par, data1_node *n,
+ struct recExtractCtrl *p, int level, RecWord *wrd)