[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.21 and 1.22

version 1.21, 1999/11/30 22:19:50 version 1.22, 1999/12/21 22:30:47
Line 110 
Line 110 
         for (n = 0; n < argc; n++)          for (n = 0; n < argc; n++)
                 printf("argv[%d] = %s\n", n, argv[n]);                  printf("argv[%d] = %s\n", n, argv[n]);
 #endif  #endif
   
           if (td & RECDEF)
                   errx(1, "expanding recursive definition for %s", argv[1]);
  /*   /*
   * if argc == 3 and argv[2] is null, then we    * if argc == 3 and argv[2] is null, then we
   * have macro-or-builtin() type call. We adjust    * have macro-or-builtin() type call. We adjust
Line 118 
Line 121 
         if (argc == 3 && !*(argv[2]))          if (argc == 3 && !*(argv[2]))
                 argc--;                  argc--;
   
         switch (td & ~STATIC) {          switch (td & TYPEMASK) {
   
         case DEFITYPE:          case DEFITYPE:
                 if (argc > 2)                  if (argc > 2)
Line 485 
Line 488 
   
         if (!*name)          if (!*name)
                 errx(1, "null definition.");                  errx(1, "null definition.");
         if (STREQ(name, defn))  
                 errx(1, "%s: recursive definition.", name);  
         if ((p = lookup(name)) == nil)          if ((p = lookup(name)) == nil)
                 p = addent(name);                  p = addent(name);
         else if (p->defn != null)          else if (p->defn != null)
Line 496 
Line 497 
         else          else
                 p->defn = xstrdup(defn);                  p->defn = xstrdup(defn);
         p->type = MACRTYPE;          p->type = MACRTYPE;
           if (STREQ(name, defn))
                   p->type |= RECDEF;
 }  }
   
 /*  /*
Line 531 
Line 534 
   
         if (!*name)          if (!*name)
                 errx(1, "null definition");                  errx(1, "null definition");
         if (STREQ(name, defn))  
                 errx(1, "%s: recursive definition.", name);  
         p = addent(name);          p = addent(name);
         if (!*defn)          if (!*defn)
                 p->defn = null;                  p->defn = null;
         else          else
                 p->defn = xstrdup(defn);                  p->defn = xstrdup(defn);
         p->type = MACRTYPE;          p->type = MACRTYPE;
           if (STREQ(name, defn))
                   p->type |= RECDEF;
 }  }
   
 /*  /*

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22