]> git.lyx.org Git - lyx.git/commitdiff
Do not forget last word of paragraph in completion
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 16 May 2014 13:17:10 +0000 (15:17 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 16 May 2014 13:22:51 +0000 (15:22 +0200)
With the old code, the last word of a paragraph would not be added in
the completion list. The key difference is to pass `from' instead of `pos'
to FontList::fontiterator.

Slight cleanup of the code.

src/Paragraph.cpp

index b6ca89369817e1088345c615386c3a99f96155dd..c551ea022cccce1c7799b19f18cdd8a5b5913c5a 100644 (file)
@@ -3840,20 +3840,19 @@ void Paragraph::locateWord(pos_type & from, pos_type & to,
 
 void Paragraph::collectWords()
 {
-       pos_type n = size();
-       for (pos_type pos = 0; pos < n; ++pos) {
+       for (pos_type pos = 0; pos < size(); ++pos) {
                if (isWordSeparator(pos))
                        continue;
                pos_type from = pos;
                locateWord(from, pos, WHOLE_WORD);
-               if ((pos - from) >= (int)lyxrc.completion_minlength) {
-                       docstring word = asString(from, pos, AS_STR_NONE);
-                       FontList::const_iterator cit = d->fontlist_.fontIterator(pos);
-                       if (cit == d->fontlist_.end())
-                               return;
-                       Language const * lang = cit->font().language();
-                       d->words_[lang->lang()].insert(word);
-               }
+               if (pos < from + lyxrc.completion_minlength)
+                       continue;
+               FontList::const_iterator cit = d->fontlist_.fontIterator(from);
+               if (cit == d->fontlist_.end())
+                       return;
+               Language const * lang = cit->font().language();
+               docstring const word = asString(from, pos, AS_STR_NONE);
+               d->words_[lang->lang()].insert(word);
        }
 }