void CMultiWordCreator::AddQuoteMultiWord(CWordSequence& ws, const TArticleRef& article) { SWordHomonymNum wh; Wtroka str; CWord* pNewWord = GetWordForMultiWord(ws, str, wh); if (pNewWord->m_SourceWords.Size() == 1 && pNewWord->HasOnlyUnknownPOS()) { size_t firstId = pNewWord->IterHomonyms().GetID(); CHomonym& h = pNewWord->GetRusHomonym(firstId); h.SetSourceWordSequence(&ws); h.PutArticle(article); wh.m_HomNum = firstId; } else { pNewWord->m_SourceWords.SetPair(ws.FirstWord(), ws.LastWord()); if (str.size() == 0) str = pNewWord->m_txt; TMorph::ToLower(str); CHomonym* pNewHom = new CHomonym(TMorph::GetMainLanguage(), str); pNewHom->SetSourceWordSequence(&ws); pNewHom->PutArticle(article); wh.m_HomNum = pNewWord->AddRusHomonym(pNewHom); } if (article.AuxDic().IsValid()) { const article_t* pArt = GlobalDictsHolder->GetAuxArticle(article.AuxDic()); YASSERT(pArt != NULL); AddFoundArticle(pArt->get_kw_type(), pArt->get_title(), wh); } else { YASSERT(!article.Gzt().Empty()); AddFoundArticle(article.Gzt().GetType(), article.Gzt().GetTitle(), wh); } m_wordSequences.push_back(&ws); }