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

Diff for /src/usr.bin/m4/gnum4.c between version 1.19 and 1.20

version 1.19, 2003/06/07 12:02:35 version 1.20, 2003/06/08 20:11:45
Line 429 
Line 429 
 void  void
 dopatsubst(const char *argv[], int argc)  dopatsubst(const char *argv[], int argc)
 {  {
         int error;  
         regex_t re;  
         regmatch_t *pmatch;  
   
         if (argc <= 3) {          if (argc <= 3) {
                 warnx("Too few arguments to patsubst");                  warnx("Too few arguments to patsubst");
                 return;                  return;
         }          }
         error = regcomp(&re, mimic_gnu ? twiddle(argv[3]) : argv[3],          /* special case: empty regexp */
             REG_NEWLINE | REG_EXTENDED);          if (argv[3][0] == '\0') {
         if (error != 0)                  const char *s;
                 exit_regerror(error, &re);                  size_t len = strlen(argv[4]);
                   for (s = argv[2]; *s != '\0'; s++) {
         pmatch = xalloc(sizeof(regmatch_t) * (re.re_nsub+1));                          addchars(argv[4], len);
         do_subst(argv[2], &re,                          addchar(*s);
             argc != 4 && argv[4] != NULL ? argv[4] : "", pmatch);                  }
           } else {
                   int error;
                   regex_t re;
                   regmatch_t *pmatch;
   
                   error = regcomp(&re, mimic_gnu ? twiddle(argv[3]) : argv[3],
                       REG_NEWLINE | REG_EXTENDED);
                   if (error != 0)
                           exit_regerror(error, &re);
   
                   pmatch = xalloc(sizeof(regmatch_t) * (re.re_nsub+1));
                   do_subst(argv[2], &re,
                       argc != 4 && argv[4] != NULL ? argv[4] : "", pmatch);
                   free(pmatch);
                   regfree(&re);
           }
         pbstr(getstring());          pbstr(getstring());
         free(pmatch);  
         regfree(&re);  
 }  }
   
 void  void

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20