[BACK]Return to apropos_db.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/Attic/apropos_db.c between version 1.3 and 1.4

version 1.3, 2011/11/13 11:10:27 version 1.4, 2011/11/14 10:07:06
Line 454  out:
Line 454  out:
 }  }
   
 struct expr *  struct expr *
 exprcomp(int argc, char *argv[])  exprcomp(char *buf)
 {  {
         struct expr     *p;          struct expr     *p;
         struct expr      e;          struct expr      e;
         char            *key;          char            *key;
         int              i, icase;          int              i, icase;
   
         if (0 >= argc)          if ('\0' == *buf)
                 return(NULL);                  return(NULL);
   
         /*          /*
          * Choose regex or substring match.           * Choose regex or substring match.
          */           */
   
         if (NULL == (e.v = strpbrk(*argv, "=~"))) {          if (NULL == (e.v = strpbrk(buf, "=~"))) {
                 e.regex = 0;                  e.regex = 0;
                 e.v = *argv;                  e.v = buf;
         } else {          } else {
                 e.regex = '~' == *e.v;                  e.regex = '~' == *e.v;
                 *e.v++ = '\0';                  *e.v++ = '\0';
Line 482  exprcomp(int argc, char *argv[])
Line 482  exprcomp(int argc, char *argv[])
   
         icase = 0;          icase = 0;
         e.mask = 0;          e.mask = 0;
         if (*argv < e.v) {          if (buf < e.v) {
                 while (NULL != (key = strsep(argv, ","))) {                  while (NULL != (key = strsep(&buf, ","))) {
                         if ('i' == key[0] && '\0' == key[1]) {                          if ('i' == key[0] && '\0' == key[1]) {
                                 icase = REG_ICASE;                                  icase = REG_ICASE;
                                 continue;                                  continue;
                         }                          }
                         i = 0;                          i = 0;
                         while (types[i].mask &&                          while (types[i].mask &&
                             strcmp(types[i].name, key))                                          strcmp(types[i].name, key))
                                 i++;                                  i++;
                         e.mask |= types[i].mask;                          e.mask |= types[i].mask;
                 }                  }

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

CVSweb