From: Abdelrazak Younes Date: Wed, 16 Jul 2008 12:40:10 +0000 (+0000) Subject: simplify code by using fontIterator() X-Git-Tag: 1.6.10~4043 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=e1eaea3b4db3662038b4f8a3129e93642fe28431;p=features.git simplify code by using fontIterator() git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25665 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/FontList.cpp b/src/FontList.cpp index 954ab4a1d5..0c38c03e5d 100644 --- a/src/FontList.cpp +++ b/src/FontList.cpp @@ -127,27 +127,20 @@ void FontList::set(pos_type pos, Font const & font) // in a new kernel. (Asger) // Next search font table - iterator beg = list_.begin(); - iterator it = beg; - iterator endit = list_.end(); - bool found = false; - for (; it != endit; ++it) { - if (it->pos() >= pos) { - found = true; - break; - } - } + List::iterator it = fontIterator(pos); + bool const found = it != list_.end(); if (found && it->font() == font) + // Font is already set. return; - size_t const i = distance(beg, it); + size_t const i = distance(list_.begin(), it); - // Is position pos is a beginning of a font block? - bool begin = pos == 0 || !found + // Is position pos a beginning of a font block? + bool const begin = pos == 0 || !found || (i > 0 && list_[i - 1].pos() == pos - 1); - // Is position pos is the end of a font block? - bool end = found && list_[i].pos() == pos; + // Is position pos at the end of a font block? + bool const end = found && list_[i].pos() == pos; if (!begin && !end) { // The general case: The block is splitted into 3 blocks @@ -188,27 +181,18 @@ void FontList::set(pos_type pos, Font const & font) } -FontSize FontList::highestInRange - (pos_type startpos, pos_type endpos, FontSize def_size) const +FontSize FontList::highestInRange(pos_type startpos, pos_type endpos, + FontSize def_size) const { if (list_.empty()) return def_size; - const_iterator end_it = list_.begin(); + List::const_iterator end_it = fontIterator(endpos); const_iterator const end = list_.end(); - for (; end_it != end; ++end_it) { - if (end_it->pos() >= endpos) - break; - } - if (end_it != end) ++end_it; - FontList::const_iterator cit = list_.begin(); - for (; cit != end; ++cit) { - if (cit->pos() >= startpos) - break; - } + List::const_iterator cit = fontIterator(startpos); FontSize maxsize = FONT_SIZE_TINY; for (; cit != end_it; ++cit) { @@ -224,17 +208,8 @@ FontSize FontList::highestInRange bool FontList::hasChangeInRange(pos_type pos, int len) const { - // FIXME: can't we use fontIterator(pos) instead? - const_iterator cit = list_.begin(); - const_iterator end = list_.end(); - for (; cit != end; ++cit) { - if (cit->pos() >= pos) - break; - } - if (cit != end && pos + len - 1 > cit->pos()) - return false; - - return true; + List::const_iterator cit = fontIterator(pos); + return cit == list_.end() || pos + len - 1 <= cit->pos(); }