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

Diff for /src/usr.bin/grep/util.c between version 1.24 and 1.25

version 1.24, 2004/02/04 18:38:52 version 1.25, 2004/05/07 14:51:42
Line 225 
Line 225 
  * Returns: -1 on failure, 0 on success   * Returns: -1 on failure, 0 on success
  */   */
 int  int
   fgrepcomp(fastgrep_t *fg, const char *pattern)
   {
           int i;
   
           /* Initialize. */
           fg->patternLen = strlen(pattern);
           fg->bol = 0;
           fg->eol = 0;
           fg->wmatch = wflag;
           fg->reversedSearch = 0;
   
           /*
            * Make a copy and upper case it for later if in -i mode,
            * else just copy the pointer.
            */
           if (iflag) {
                   fg->pattern = grep_malloc(fg->patternLen + 1);
                   for (i = 0; i < fg->patternLen; i++)
                           fg->pattern[i] = toupper(pattern[i]);
                   fg->pattern[fg->patternLen] = '\0';
           } else
                   fg->pattern = (char *)pattern;  /* really const */
   
           /* Preprocess pattern. */
           for (i = 0; i <= UCHAR_MAX; i++)
                   fg->qsBc[i] = fg->patternLen;
           for (i = 1; i < fg->patternLen; i++) {
                   fg->qsBc[fg->pattern[i]] = fg->patternLen - i;
                   /*
                    * If case is ignored, make the jump apply to both upper and
                    * lower cased characters.  As the pattern is stored in upper
                    * case, apply the same to the lower case equivalents.
                    */
                   if (iflag)
                           fg->qsBc[tolower(fg->pattern[i])] = fg->patternLen - i;
           }
   
           return (0);
   }
   
   /*
    * Returns: -1 on failure, 0 on success
    */
   int
 fastcomp(fastgrep_t *fg, const char *pattern)  fastcomp(fastgrep_t *fg, const char *pattern)
 {  {
         int i;          int i;
Line 237 
Line 281 
         int firstLastHalfDot = -1;          int firstLastHalfDot = -1;
         int lastHalfDot = 0;          int lastHalfDot = 0;
   
         if (Fflag) {  
                 fg->pattern = NULL;  
                 return (-1);  
         }  
   
         /* Initialize. */          /* Initialize. */
         origPatternLen = fg->patternLen = strlen(pattern);          origPatternLen = fg->patternLen = strlen(pattern);
         fg->bol = 0;          fg->bol = 0;
Line 482 
Line 521 
         int i;          int i;
   
         for (i = 0; i < len; i++) {          for (i = 0; i < len; i++) {
                 if (((pattern[i] == data[i]) || (pattern[i] == '.')) ||                  if (((pattern[i] == data[i]) || (!Fflag && pattern[i] == '.'))
                     (iflag && pattern[i] == toupper(data[i])))                      || (iflag && pattern[i] == toupper(data[i])))
                         continue;                          continue;
                 return (i);                  return (i);
         }          }

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25