static void addHLParsedLex(HeadlineParsedText *prs, TSQuery query, ParsedLex *lexs, TSLexeme *norms) { ParsedLex *tmplexs; TSLexeme *ptr; while (lexs) { if (lexs->type > 0) hladdword(prs, lexs->lemm, lexs->lenlemm, lexs->type); ptr = norms; while (ptr && ptr->lexeme) { hlfinditem(prs, query, ptr->lexeme, strlen(ptr->lexeme)); ptr++; } tmplexs = lexs->next; pfree(lexs); lexs = tmplexs; } if (norms) { ptr = norms; while (ptr->lexeme) { pfree(ptr->lexeme); ptr++; } pfree(norms); } }
static void addHLParsedLex(HeadlineParsedText *prs, TSQuery query, ParsedLex *lexs, TSLexeme *norms) { ParsedLex *tmplexs; TSLexeme *ptr; int32 savedpos; while (lexs) { if (lexs->type > 0) hladdword(prs, lexs->lemm, lexs->lenlemm, lexs->type); ptr = norms; savedpos = prs->vectorpos; while (ptr && ptr->lexeme) { if (ptr->flags & TSL_ADDPOS) savedpos++; hlfinditem(prs, query, savedpos, ptr->lexeme, strlen(ptr->lexeme)); ptr++; } tmplexs = lexs->next; pfree(lexs); lexs = tmplexs; } if (norms) { ptr = norms; while (ptr->lexeme) { if (ptr->flags & TSL_ADDPOS) prs->vectorpos++; pfree(ptr->lexeme); ptr++; } pfree(norms); } }