Diff Вы: nobody
Вход

Differences From Artifact [07b68c6d9e]:

To Artifact [8010340d8d]:


    87     87   {
    88     88       var s = str;
    89     89       var words = null;     
    90     90   
    91     91       this.reset = function () 
    92     92       {
    93     93           words = s.split(/[^\wА-я]+/);
           94  +        if (!words.length || words.length == 1 && !words[0])
           95  +            words = new Array;
    94     96       }
    95     97       
    96     98       this.assert = function (ix) 
    97     99       {
    98    100           return ((typeof(words) == "object") && (ix >= 0) && (ix < words.length));                  
    99    101       }
   100    102       
................................................................................
   222    224           while (true) {  
   223    225               var word = words.next(lookBackward);
   224    226               if (word) {
   225    227                   this.complete(word);
   226    228                   return;
   227    229               }
   228    230               words = this.nextLine();
          231  +            if (!words.collection.count())
          232  +                return;
   229    233           }
   230    234       }
   231    235       
   232    236   	/* строит и возвращает список соответсвующих слов для следующей по порядку строки */
   233    237       this.nextLine = function ()
   234    238       {                   
   235    239           curLineIx += (backwardSearch ? -1 : 1); 
................................................................................
   247    251       }
   248    252       
   249    253   	/* "разбирает" переданную в качестве параметра строку на слова и фильтрует их 
   250    254       в соотвествии с шаблоном, который описывает подходящие соответствия для исходного слова */
   251    255       this.parseLine = function (srcLine)
   252    256       {
   253    257           var w = new Line(srcLine);
   254         -        w.filter(pattern, true);       
          258  +        w.filter(pattern, true);               
   255    259           return w.iterator(backwardSearch);
   256    260       }
   257    261       
   258    262   	/* выполняет подстановку очередного соответствия вместо исходного слова */
   259    263       this.complete = function (word)
   260    264       {        
   261    265           CurDoc.ReplaceLine(srcLine, this.leftPart() + word + this.rightPart());