bool CWord::CanAddHomonym(const CHomonym& h) const { //make sure that abbreviations (e.g. PO, OAO, etc.) are uppercased if (h.HasGrammem(gAbbreviation) && !m_bIgnoreUpperCase) { if (!m_bUp) return false; for (size_t i = 0; i < m_txt.size(); ++i) if (!::IsUpper(m_txt[i])) return false; } if ((h.IsGeo() || h.IsName()) && h.IsMorphNoun() && !m_bUp && !m_bIgnoreUpperCase) return false; return true; }