[BACK]Return to search.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / mg

Diff for /src/usr.bin/mg/search.c between version 1.29 and 1.30

version 1.29, 2006/05/28 23:30:16 version 1.30, 2006/06/01 09:00:50
Line 164 
Line 164 
         int      xcase;          int      xcase;
         int      i;          int      i;
         char     opat[NPAT];          char     opat[NPAT];
           int      cdotline;
   
 #ifndef NO_MACRO  #ifndef NO_MACRO
         if (macrodef) {          if (macrodef) {
Line 179 
Line 180 
         pptr = -1;          pptr = -1;
         clp = curwp->w_dotp;          clp = curwp->w_dotp;
         cbo = curwp->w_doto;          cbo = curwp->w_doto;
           cdotline = curwp->w_dotline;
         is_lpush();          is_lpush();
         is_cpush(SRCH_BEGIN);          is_cpush(SRCH_BEGIN);
         success = TRUE;          success = TRUE;
Line 212 
Line 214 
                         }                          }
                         curwp->w_dotp = clp;                          curwp->w_dotp = clp;
                         curwp->w_doto = cbo;                          curwp->w_doto = cbo;
                           curwp->w_dotline = cdotline;
                         curwp->w_flag |= WFMOVE;                          curwp->w_flag |= WFMOVE;
                         srch_lastdir = dir;                          srch_lastdir = dir;
                         (void)ctrlg(FFRAND, 0);                          (void)ctrlg(FFRAND, 0);
Line 230 
Line 233 
                                 clp = lforw(curbp->b_linep);                                  clp = lforw(curbp->b_linep);
                                 curwp->w_dotp = clp;                                  curwp->w_dotp = clp;
                                 curwp->w_doto = 0;                                  curwp->w_doto = 0;
                                   curwp->w_dotline = 1;
                                 if (is_find(dir) != FALSE) {                                  if (is_find(dir) != FALSE) {
                                         is_cpush(SRCH_MARK);                                          is_cpush(SRCH_MARK);
                                         success = TRUE;                                          success = TRUE;
Line 262 
Line 266 
                                 curwp->w_dotp = clp;                                  curwp->w_dotp = clp;
                                 curwp->w_doto =                                  curwp->w_doto =
                                     llength(curwp->w_dotp);                                      llength(curwp->w_dotp);
                                   curwp->w_dotline = curwp->w_bufp->b_lines;
                                 if (is_find(dir) != FALSE) {                                  if (is_find(dir) != FALSE) {
                                         is_cpush(SRCH_MARK);                                          is_cpush(SRCH_MARK);
                                         success = TRUE;                                          success = TRUE;
Line 651 
Line 656 
         struct line     *clp, *tlp;          struct line     *clp, *tlp;
         int      cbo, tbo, c, i, xcase = 0;          int      cbo, tbo, c, i, xcase = 0;
         char    *pp;          char    *pp;
           int      nline;
   
         clp = curwp->w_dotp;          clp = curwp->w_dotp;
         cbo = curwp->w_doto;          cbo = curwp->w_doto;
           nline = curwp->w_dotline;
         for (i = 0; pat[i]; i++)          for (i = 0; pat[i]; i++)
                 if (ISUPPER(CHARMASK(pat[i])))                  if (ISUPPER(CHARMASK(pat[i])))
                         xcase = 1;                          xcase = 1;
Line 661 
Line 668 
                 if (cbo == llength(clp)) {                  if (cbo == llength(clp)) {
                         if ((clp = lforw(clp)) == curbp->b_linep)                          if ((clp = lforw(clp)) == curbp->b_linep)
                                 break;                                  break;
                           nline++;
                         cbo = 0;                          cbo = 0;
                         c = CCHR('J');                          c = CCHR('J');
                 } else                  } else
Line 676 
Line 684 
                                                 goto fail;                                                  goto fail;
                                         tbo = 0;                                          tbo = 0;
                                         c = CCHR('J');                                          c = CCHR('J');
                                 } else                                          if (eq(c, *pp++, xcase) == FALSE)
                                                   goto fail;
                                           nline++;
                                   } else {
                                         c = lgetc(tlp, tbo++);                                          c = lgetc(tlp, tbo++);
                                 if (eq(c, *pp++, xcase) == FALSE)                                          if (eq(c, *pp++, xcase) == FALSE)
                                         goto fail;                                                  goto fail;
                                   }
                         }                          }
                         curwp->w_dotp = tlp;                          curwp->w_dotp = tlp;
                         curwp->w_doto = tbo;                          curwp->w_doto = tbo;
                           curwp->w_dotline = nline;
                         curwp->w_flag |= WFMOVE;                          curwp->w_flag |= WFMOVE;
                         return (TRUE);                          return (TRUE);
                 }                  }
Line 703 
Line 716 
         struct line     *clp, *tlp;          struct line     *clp, *tlp;
         int      cbo, tbo, c, i, xcase = 0;          int      cbo, tbo, c, i, xcase = 0;
         char    *epp, *pp;          char    *epp, *pp;
           int      nline;
   
         for (epp = &pat[0]; epp[1] != 0; ++epp);          for (epp = &pat[0]; epp[1] != 0; ++epp);
         clp = curwp->w_dotp;          clp = curwp->w_dotp;
         cbo = curwp->w_doto;          cbo = curwp->w_doto;
           nline = curwp->w_dotline;
         for (i = 0; pat[i]; i++)          for (i = 0; pat[i]; i++)
                 if (ISUPPER(CHARMASK(pat[i])))                  if (ISUPPER(CHARMASK(pat[i])))
                         xcase = 1;                          xcase = 1;
Line 715 
Line 730 
                         clp = lback(clp);                          clp = lback(clp);
                         if (clp == curbp->b_linep)                          if (clp == curbp->b_linep)
                                 return (FALSE);                                  return (FALSE);
                           nline--;
                         cbo = llength(clp) + 1;                          cbo = llength(clp) + 1;
                 }                  }
                 if (--cbo == llength(clp))                  if (--cbo == llength(clp))
Line 730 
Line 746 
                                         tlp = lback(tlp);                                          tlp = lback(tlp);
                                         if (tlp == curbp->b_linep)                                          if (tlp == curbp->b_linep)
                                                 goto fail;                                                  goto fail;
                                           nline--;
                                         tbo = llength(tlp) + 1;                                          tbo = llength(tlp) + 1;
                                 }                                  }
                                 if (--tbo == llength(tlp))                                  if (--tbo == llength(tlp))
Line 741 
Line 758 
                         }                          }
                         curwp->w_dotp = tlp;                          curwp->w_dotp = tlp;
                         curwp->w_doto = tbo;                          curwp->w_doto = tbo;
                           curwp->w_dotline = nline;
                         curwp->w_flag |= WFMOVE;                          curwp->w_flag |= WFMOVE;
                         return (TRUE);                          return (TRUE);
                 }                  }

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.30