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

Diff for /src/usr.bin/m4/eval.c between version 1.67 and 1.68

version 1.67, 2010/03/25 18:52:29 version 1.68, 2010/09/07 19:58:09
Line 100 
Line 100 
         size_t mark = SIZE_MAX;          size_t mark = SIZE_MAX;
   
         expansion_id++;          expansion_id++;
         if (td & RECDEF)          if (td & RECDEF)
                 m4errx(1, "expanding recursive definition for %s.", argv[1]);                  m4errx(1, "expanding recursive definition for %s.", argv[1]);
         if (is_traced)          if (is_traced)
                 mark = trace(argv, argc, infile+ilevel);                  mark = trace(argv, argc, infile+ilevel);
Line 108 
Line 108 
                 expand_macro(argv, argc);                  expand_macro(argv, argc);
         else          else
                 expand_builtin(argv, argc, td);                  expand_builtin(argv, argc, td);
         if (mark != SIZE_MAX)          if (mark != SIZE_MAX)
                 finish_trace(mark);                  finish_trace(mark);
 }  }
   
Line 137 
Line 137 
  /* we keep the initial value for those built-ins that differentiate   /* we keep the initial value for those built-ins that differentiate
   * between builtin() and builtin.    * between builtin() and builtin.
   */    */
         ac = argc;          ac = argc;
   
         if (argc == 3 && !*(argv[2]) && !mimic_gnu)          if (argc == 3 && !*(argv[2]) && !mimic_gnu)
                 argc--;                  argc--;
Line 252 
Line 252 
         /*          /*
          * dosysval - return value of the last           * dosysval - return value of the last
          * system call.           * system call.
          *           *
          */           */
                 pbnum(sysval);                  pbnum(sysval);
                 break;                  break;
Line 260 
Line 260 
         case ESYSCMDTYPE:          case ESYSCMDTYPE:
                 if (argc > 2)                  if (argc > 2)
                         doesyscmd(argv[2]);                          doesyscmd(argv[2]);
                 break;                  break;
         case INCLTYPE:          case INCLTYPE:
                 if (argc > 2)                  if (argc > 2)
                         if (!doincl(argv[2]))                          if (!doincl(argv[2]))
Line 299 
Line 299 
         case SUBSTYPE:          case SUBSTYPE:
         /*          /*
          * dosub - select substring           * dosub - select substring
          *           *
          */           */
                 if (argc > 3)                  if (argc > 3)
                         dosub(argv, argc);                          dosub(argv, argc);
Line 375 
Line 375 
                         char *temp;                          char *temp;
   
                         temp = xstrdup(argv[2]);                          temp = xstrdup(argv[2]);
   
                         fd = mkstemp(temp);                          fd = mkstemp(temp);
                         if (fd == -1)                          if (fd == -1)
                                 err(1,                                  err(1,
             "%s at line %lu: couldn't make temp file %s",              "%s at line %lu: couldn't make temp file %s",
             CURRENT_NAME, CURRENT_LINE, argv[2]);              CURRENT_NAME, CURRENT_LINE, argv[2]);
                         close(fd);                          close(fd);
                         pbstr(temp);                          pbstr(temp);
Line 465 
Line 465 
                 if (argc > 2)                  if (argc > 2)
                         doindir(argv, argc);                          doindir(argv, argc);
                 break;                  break;
   
         case BUILTINTYPE: /* Builtins only */          case BUILTINTYPE: /* Builtins only */
                 if (argc > 2)                  if (argc > 2)
                         dobuiltin(argv, argc);                          dobuiltin(argv, argc);
Line 541 
Line 541 
                                                 pushback(COMMA);                                                  pushback(COMMA);
                                         }                                          }
                                         pbstr(argv[2]);                                          pbstr(argv[2]);
                                 }                                  }
                                 break;                                  break;
                         case '@':                          case '@':
                                 if (argc > 2) {                                  if (argc > 2) {
Line 578 
Line 578 
 {  {
         if (!*name && !mimic_gnu)          if (!*name && !mimic_gnu)
                 m4errx(1, "null definition.");                  m4errx(1, "null definition.");
         else          else
                 macro_define(name, defn);                  macro_define(name, defn);
 }  }
   
Line 632 
Line 632 
                         fprintf(traceout, "%s:\t%s\n", name, p->defn);                          fprintf(traceout, "%s:\t%s\n", name, p->defn);
                 else {                  else {
                         fprintf(traceout, "%s:\t<%s>\n", name, p->defn);                          fprintf(traceout, "%s:\t<%s>\n", name, p->defn);
                 }                  }
         } else          } else
                 fprintf(traceout, "`%s'\t`%s'\n", name, p->defn);                  fprintf(traceout, "`%s'\t`%s'\n", name, p->defn);
 }  }
Line 803 
Line 803 
                         resizedivs(n + 10);                          resizedivs(n + 10);
                 else                  else
                         n = 0;          /* bitbucket */                          n = 0;          /* bitbucket */
         }          }
   
         if (n < 0)          if (n < 0)
                 n = 0;                 /* bitbucket */                  n = 0;                 /* bitbucket */
Line 986 
Line 986 
 handledash(char *buffer, char *end, const char *src)  handledash(char *buffer, char *end, const char *src)
 {  {
         char *p;          char *p;
   
         p = buffer;          p = buffer;
         while(*src) {          while(*src) {
                 if (src[1] == '-' && src[2]) {                  if (src[1] == '-' && src[2]) {

Legend:
Removed from v.1.67  
changed lines
  Added in v.1.68