X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=recctrl%2Frecgrs.c;h=df538ce10fa8a01c743ea1e24518c6d53a53376c;hb=9be04e6cf1e848fcc4f065a7407e489684aaaf61;hp=2ea2a536dc74f542a87ce17cb7401e080986aee3;hpb=83ffc352fb52d3cd5aadbcd11f52b58456131394;p=idzebra-moved-to-github.git diff --git a/recctrl/recgrs.c b/recctrl/recgrs.c index 2ea2a53..df538ce 100644 --- a/recctrl/recgrs.c +++ b/recctrl/recgrs.c @@ -1,4 +1,4 @@ -/* $Id: recgrs.c,v 1.104 2005-08-03 07:44:27 adam Exp $ +/* $Id: recgrs.c,v 1.107 2006-02-06 23:22:29 adam Exp $ Copyright (C) 1995-2005 Index Data ApS @@ -220,16 +220,20 @@ static int sp_expr(struct source_parser *sp, data1_node *n, RecWord *wrd) } else if (sp->len > 0 && isdigit(*(unsigned char *)sp->tok)) { - wrd->term_buf = nmem_malloc(sp->nmem, sp->len); - memcpy(wrd->term_buf, sp->tok, sp->len); + char *b; wrd->term_len = sp->len; + b = nmem_malloc(sp->nmem, sp->len); + memcpy(b, sp->tok, sp->len); + wrd->term_buf = b; sp_lex(sp); } else if (sp->len > 2 && sp->tok[0] == '\'' && sp->tok[sp->len-1] == '\'') { + char *b; wrd->term_len = sp->len - 2; - wrd->term_buf = nmem_malloc(sp->nmem, wrd->term_len); - memcpy(wrd->term_buf, sp->tok+1, wrd->term_len); + b = nmem_malloc(sp->nmem, wrd->term_len); + memcpy(b, sp->tok+1, wrd->term_len); + wrd->term_buf = b; sp_lex(sp); } else @@ -809,7 +813,7 @@ static void index_xpath(struct source_parser *sp, data1_node *n, p, wrd); xpdone = 1; } else { - /* add attribute based index for the attribute */ + /* index attribute value (only path/@attr) */ if (xp->value) { #if NATTR