+ /* actually indexing the text given */
+ dom_log(YLOG_DEBUG, tinfo, 0,
+ "INDEX '%s:%s' '%s'",
+ index ? (const char *) index : "null",
+ type ? (const char *) type : "null",
+ text ? (const char *) text : "null");
+
+ recword->index_name = (const char *)index;
+ if (type && *type)
+ recword->index_type = *type;
+
+ /* writing debug out */
+ if (extctr->flagShowRecords)
+ dom_log(YLOG_LOG, tinfo, 0,
+ "INDEX '%s:%s' '%s'",
+ index ? (const char *) index : "null",
+ type ? (const char *) type : "null",
+ text ? (const char *) text : "null");
+
+ /* actually indexing the text given */
+ recword->index_name = (const char *)index;
+ if (type && *type)
+ recword->index_type = *type;
+ (extctr->tokenAdd)(recword);
+
+ /* eat whitespaces */
+ if (*look && ' ' == *look && *(look+1))
+ {
+ look++;
+ }
+ }
+ }
+ xmlFree(text);
+ }
+}
+
+
+/* DOM filter style indexing */
+static void set_record_info(struct filter_info *tinfo,
+ struct recExtractCtrl *extctr,
+ xmlNodePtr node,
+ xmlChar * id_p,
+ xmlChar * rank_p,
+ xmlChar * type_p)
+{
+
+ /* writing debug info out */
+ if (extctr->flagShowRecords)
+ dom_log(YLOG_LOG, tinfo, 0,
+ "RECORD id=%s rank=%s type=%s",
+ id_p ? (const char *) id_p : "(null)",
+ rank_p ? (const char *) rank_p : "(null)",
+ type_p ? (const char *) type_p : "(null)");
+
+
+ if (id_p)
+ sscanf((const char *)id_p, "%255s", extctr->match_criteria);
+
+ if (rank_p)
+ extctr->staticrank = atozint((const char *)rank_p);
+
+ /* if (!strcmp("update", type_str)) */
+ /* index_node(tinfo, ctrl, ptr, recword); */
+ /* else if (!strcmp("delete", type_str)) */
+ /* dom_log(YLOG_WARN, tinfo, ptr, "dom filter delete: to be implemented"); */
+ /* else */
+ /* dom_log(YLOG_WARN, tinfo, ptr, "dom filter: unknown record type '%s'", */
+ /* type_str); */
+ if (tinfo->record_info_invoked == 1)
+ {
+ /* warn about multiple only once */
+ dom_log(YLOG_WARN, tinfo, node, "multiple record elements");
+ }
+ tinfo->record_info_invoked++;