commit ee7c4db72a9dd392d7e1e34463c3ae11fce670ee
Author: Jean-Marc Lasgouttes <lasgout...@lyx.org>
Date:   Fri May 16 15:17:10 2014 +0200

    Do not forget last word of paragraph in completion
    
    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.

diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index b6ca893..c551ea0 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -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);
        }
 }
 

Reply via email to