+
+ /* we have to fetch the whole path to the data tag */
+ for (nn = n; nn; nn = nn->parent)
+ {
+ if (nn->which == DATA1N_tag)
+ {
+ size_t tlen = strlen(nn->u.tag.tag);
+ if (tlen + flen > (max - 2))
+ break;
+ memcpy (tag_path_full + flen, nn->u.tag.tag, tlen);
+ flen += tlen;
+ tag_path_full[flen++] = '/';
+ }
+ else
+ if (nn->which == DATA1N_root)
+ break;
+ }
+ tag_path_full[flen] = 0;
+}
+
+
+static void index_xpath(struct source_parser *sp, data1_node *n,
+ struct recExtractCtrl *p,
+ int level, RecWord *wrd,
+ char *xpath_index,
+ int xpath_is_start
+ )
+{
+ int i;
+ char tag_path_full[1024];