[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.11 and 1.12

version 1.11, 2004/07/22 01:25:25 version 1.12, 2005/04/03 02:09:28
Line 57 
Line 57 
         int     s;          int     s;
   
         if ((s = readpattern("Search")) != TRUE)          if ((s = readpattern("Search")) != TRUE)
                 return s;                  return (s);
         if (forwsrch() == FALSE) {          if (forwsrch() == FALSE) {
                 ewprintf("Search failed: \"%s\"", pat);                  ewprintf("Search failed: \"%s\"", pat);
                 return FALSE;                  return (FALSE);
         }          }
         srch_lastdir = SRCH_FORW;          srch_lastdir = SRCH_FORW;
         return TRUE;          return (TRUE);
 }  }
   
 /*  /*
Line 82 
Line 82 
                 return (s);                  return (s);
         if (backsrch() == FALSE) {          if (backsrch() == FALSE) {
                 ewprintf("Search failed: \"%s\"", pat);                  ewprintf("Search failed: \"%s\"", pat);
                 return FALSE;                  return (FALSE);
         }          }
         srch_lastdir = SRCH_BACK;          srch_lastdir = SRCH_BACK;
         return TRUE;          return (TRUE);
 }  }
   
 /*  /*
Line 100 
Line 100 
         if (srch_lastdir == SRCH_FORW) {          if (srch_lastdir == SRCH_FORW) {
                 if (forwsrch() == FALSE) {                  if (forwsrch() == FALSE) {
                         ewprintf("Search failed: \"%s\"", pat);                          ewprintf("Search failed: \"%s\"", pat);
                         return FALSE;                          return (FALSE);
                 }                  }
                 return TRUE;                  return (TRUE);
         }          }
         if (srch_lastdir == SRCH_BACK) {          if (srch_lastdir == SRCH_BACK) {
                 if (backsrch() == FALSE) {                  if (backsrch() == FALSE) {
                         ewprintf("Search failed: \"%s\"", pat);                          ewprintf("Search failed: \"%s\"", pat);
                         return FALSE;                          return (FALSE);
                 }                  }
                 return TRUE;                  return (TRUE);
         }          }
         ewprintf("No last search");          ewprintf("No last search");
         return FALSE;          return (FALSE);
 }  }
   
 /*  /*
Line 123 
Line 123 
 int  int
 forwisearch(int f, int n)  forwisearch(int f, int n)
 {  {
         return isearch(SRCH_FORW);          return (isearch(SRCH_FORW));
 }  }
   
 /*  /*
Line 134 
Line 134 
 int  int
 backisearch(int f, int n)  backisearch(int f, int n)
 {  {
         return isearch(SRCH_BACK);          return (isearch(SRCH_BACK));
 }  }
   
 /*  /*
Line 163 
Line 163 
 #ifndef NO_MACRO  #ifndef NO_MACRO
         if (macrodef) {          if (macrodef) {
                 ewprintf("Can't isearch in macro");                  ewprintf("Can't isearch in macro");
                 return FALSE;                  return (FALSE);
         }          }
 #endif /* !NO_MACRO */  #endif /* !NO_MACRO */
         for (cip = 0; cip < NSRCH; cip++)          for (cip = 0; cip < NSRCH; cip++)
                 cmds[cip].s_code = SRCH_NOPR;                  cmds[cip].s_code = SRCH_NOPR;
   
         (void)strlcpy(opat, pat, sizeof opat);          (void)strlcpy(opat, pat, sizeof(opat));
         cip = 0;          cip = 0;
         pptr = -1;          pptr = -1;
         clp = curwp->w_dotp;          clp = curwp->w_dotp;
Line 210 
Line 210 
                         curwp->w_flag |= WFMOVE;                          curwp->w_flag |= WFMOVE;
                         srch_lastdir = dir;                          srch_lastdir = dir;
                         (void)ctrlg(FFRAND, 0);                          (void)ctrlg(FFRAND, 0);
                         (void)strlcpy(pat, opat, sizeof pat);                          (void)strlcpy(pat, opat, sizeof(pat));
                         return ABORT;                          return (ABORT);
                 case CCHR(']'):                  case CCHR(']'):
                 case CCHR('S'):                  case CCHR('S'):
                         if (dir == SRCH_BACK) {                          if (dir == SRCH_BACK) {
Line 276 
Line 276 
                                 curwp->w_marko = cbo;                                  curwp->w_marko = cbo;
                                 ewprintf("Mark set");                                  ewprintf("Mark set");
                                 curwp->w_flag |= WFMOVE;                                  curwp->w_flag |= WFMOVE;
                                 return TRUE;                                  return (TRUE);
                         }       /* and continue */                          }       /* and continue */
                 case CCHR('I'):                  case CCHR('I'):
                 case CCHR('J'):                  case CCHR('J'):
Line 288 
Line 288 
                         pat[pptr++] = c;                          pat[pptr++] = c;
                         if (pptr == NPAT) {                          if (pptr == NPAT) {
                                 ewprintf("Pattern too long");                                  ewprintf("Pattern too long");
                                 return FALSE;                                  return (FALSE);
                         }                          }
                         pat[pptr] = '\0';                          pat[pptr] = '\0';
                         is_lpush();                          is_lpush();
Line 345 
Line 345 
 static int  static int
 is_peek(void)  is_peek(void)
 {  {
         return cmds[cip].s_code;          return (cmds[cip].s_code);
 }  }
   
 /* this used to always return TRUE (the return value was checked) */  /* this used to always return TRUE (the return value was checked) */
Line 396 
Line 396 
                         if (forwsrch() == FALSE) {                          if (forwsrch() == FALSE) {
                                 curwp->w_doto = odoto;                                  curwp->w_doto = odoto;
                                 curwp->w_dotp = odotp;                                  curwp->w_dotp = odotp;
                                 return FALSE;                                  return (FALSE);
                         }                          }
                         return TRUE;                          return (TRUE);
                 }                  }
                 if (dir == SRCH_BACK) {                  if (dir == SRCH_BACK) {
                         (void)forwchar(FFARG | FFRAND, plen);                          (void)forwchar(FFARG | FFRAND, plen);
                         if (backsrch() == FALSE) {                          if (backsrch() == FALSE) {
                                 curwp->w_doto = odoto;                                  curwp->w_doto = odoto;
                                 curwp->w_dotp = odotp;                                  curwp->w_dotp = odotp;
                                 return FALSE;                                  return (FALSE);
                         }                          }
                         return TRUE;                          return (TRUE);
                 }                  }
                 ewprintf("bad call to is_find");                  ewprintf("bad call to is_find");
                 return FALSE;                  return (FALSE);
         }          }
         return FALSE;          return (FALSE);
 }  }
   
 /*  /*
Line 467 
Line 467 
 #ifndef NO_MACRO  #ifndef NO_MACRO
         if (macrodef) {          if (macrodef) {
                 ewprintf("Can't query replace in macro");                  ewprintf("Can't query replace in macro");
                 return FALSE;                  return (FALSE);
         }          }
 #endif /* !NO_MACRO */  #endif /* !NO_MACRO */
   
         if ((s = readpattern("Query replace")) != TRUE)          if ((s = readpattern("Query replace")) != TRUE)
                 return (s);                  return (s);
         if ((rep = ereply("Query replace %s with: ", news, NPAT, pat)) == NULL)          if ((rep = ereply("Query replace %s with: ", news, NPAT, pat)) == NULL)
                 return ABORT;                  return (ABORT);
         else if (rep[0] == '\0')          else if (rep[0] == '\0')
                 news[0] = '\0';                  news[0] = '\0';
         ewprintf("Query replacing %s with %s:", pat, news);          ewprintf("Query replacing %s with %s:", pat, news);
Line 529 
Line 529 
                 ewprintf("(1 replacement done)");                  ewprintf("(1 replacement done)");
         else          else
                 ewprintf("(%d replacements done)", rcnt);                  ewprintf("(%d replacements done)", rcnt);
         return TRUE;          return (TRUE);
 }  }
   
 /*  /*
Line 574 
Line 574 
                         curwp->w_dotp = tlp;                          curwp->w_dotp = tlp;
                         curwp->w_doto = tbo;                          curwp->w_doto = tbo;
                         curwp->w_flag |= WFMOVE;                          curwp->w_flag |= WFMOVE;
                         return TRUE;                          return (TRUE);
                 }                  }
 fail:           ;  fail:           ;
         }          }
         return FALSE;          return (FALSE);
 }  }
   
 /*  /*
Line 601 
Line 601 
                 if (cbo == 0) {                  if (cbo == 0) {
                         clp = lback(clp);                          clp = lback(clp);
                         if (clp == curbp->b_linep)                          if (clp == curbp->b_linep)
                                 return FALSE;                                  return (FALSE);
                         cbo = llength(clp) + 1;                          cbo = llength(clp) + 1;
                 }                  }
                 if (--cbo == llength(clp))                  if (--cbo == llength(clp))
Line 629 
Line 629 
                         curwp->w_dotp = tlp;                          curwp->w_dotp = tlp;
                         curwp->w_doto = tbo;                          curwp->w_doto = tbo;
                         curwp->w_flag |= WFMOVE;                          curwp->w_flag |= WFMOVE;
                         return TRUE;                          return (TRUE);
                 }                  }
 fail:           ;  fail:           ;
         }          }
Line 646 
Line 646 
         bc = CHARMASK(bc);          bc = CHARMASK(bc);
         pc = CHARMASK(pc);          pc = CHARMASK(pc);
         if (bc == pc)          if (bc == pc)
                 return TRUE;                  return (TRUE);
         if (ISUPPER(bc))          if (ISUPPER(bc))
                 return TOLOWER(bc) == pc;                  return (TOLOWER(bc) == pc);
         if (ISUPPER(pc))          if (ISUPPER(pc))
                 return bc == TOLOWER(pc);                  return (bc == TOLOWER(pc));
         return FALSE;          return (FALSE);
 }  }
   
 /*  /*
Line 665 
Line 665 
 readpattern(char *prompt)  readpattern(char *prompt)
 {  {
         char    tpat[NPAT], *rep;          char    tpat[NPAT], *rep;
         int retval;          int     retval;
   
         if (tpat[0] == '\0')          if (tpat[0] == '\0')
                 rep = ereply("%s: ", tpat, NPAT, prompt);                  rep = ereply("%s: ", tpat, NPAT, prompt);
Line 674 
Line 674 
   
         /* specified */          /* specified */
         if (rep != NULL && *rep != '\0') {          if (rep != NULL && *rep != '\0') {
                 (void) strlcpy(pat, tpat, sizeof pat);                  (void) strlcpy(pat, tpat, sizeof(pat));
                 retval = TRUE;                  retval = TRUE;
         } else if (*rep == '\0' && pat[0] != '\0') {          } else if (*rep == '\0' && pat[0] != '\0') {
                 retval = TRUE;                  retval = TRUE;
         } else          } else
                 retval = FALSE;                  retval = FALSE;
         return retval;          return (retval);
 }  }
   

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12