void SearchIndex::addWord(const char *word,bool hiPriority) { //printf("SearchIndex::addWord(%s,%d)\n",word,hiPriority); //QString wStr=QString(word).lower(); QString wStr(word); if (wStr.isEmpty()) return; wStr=wStr.lower(); IndexWord *w = m_words[wStr]; if (w==0) { int idx=charsToIndex(wStr); if (idx<0) return; w = new IndexWord(wStr); //fprintf(stderr,"addWord(%s) at index %d\n",word,idx); m_index[idx]->append(w); m_words.insert(wStr,w); } w->addUrlIndex(m_urlIndex,hiPriority); }
void SearchIndex::addWord(const char *word,bool hiPriority,bool recurse) { static QRegExp nextPart("[_a-z:][A-Z]"); //printf("SearchIndex::addWord(%s,%d)\n",word,hiPriority); QCString wStr(word); if (wStr.isEmpty()) return; wStr=wStr.lower(); IndexWord *w = m_words[wStr]; if (w==0) { int idx=charsToIndex(wStr); if (idx<0) return; w = new IndexWord(wStr); //fprintf(stderr,"addWord(%s) at index %d\n",word,idx); m_index[idx]->append(w); m_words.insert(wStr,w); } w->addUrlIndex(m_urlIndex,hiPriority); int i; bool found=FALSE; if (!recurse) // the first time we check if we can strip the prefix { i=getPrefixIndex(word); if (i>0) { addWord(word+i,hiPriority,TRUE); found=TRUE; } } if (!found) // no prefix stripped { if ((i=nextPart.match(word))>=1) { addWord(word+i+1,hiPriority,TRUE); } } }