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

Diff for /src/usr.bin/make/for.c between version 1.12 and 1.13

version 1.12, 1999/12/16 17:24:11 version 1.13, 1999/12/16 17:27:18
Line 105 
Line 105 
     char                *text;          /* unexpanded text              */      char                *text;          /* unexpanded text              */
     char                *var;           /* Index name                   */      char                *var;           /* Index name                   */
     Lst                 lst;            /* List of items                */      Lst                 lst;            /* List of items                */
       size_t              guess;          /* Estimated expansion size     */
     BUFFER              buf;            /* Accumulating text            */      BUFFER              buf;            /* Accumulating text            */
     unsigned long       lineno;         /* Line number at start of loop */      unsigned long       lineno;         /* Line number at start of loop */
     unsigned long       level;          /* Nesting level                */      unsigned long       level;          /* Nesting level                */
Line 197 
Line 198 
     arg->var = interval_dup(wrd, endVar);      arg->var = interval_dup(wrd, endVar);
   
     /* Make a list with the remaining words.  */      /* Make a list with the remaining words.  */
     sub = Var_Subst(NULL, ptr, VAR_GLOBAL, FALSE);      sub = Var_Subst(ptr, VAR_GLOBAL, FALSE);
     if (DEBUG(FOR))      if (DEBUG(FOR))
         (void)fprintf(stderr, "For: Iterator %s List %s\n", arg->var, sub);          (void)fprintf(stderr, "For: Iterator %s List %s\n", arg->var, sub);
   
Line 260 
Line 261 
 }  }
   
   
   #define GUESS_EXPANSION 32
 /*-  /*-
  *-----------------------------------------------------------------------   *-----------------------------------------------------------------------
  * ForExec --   * ForExec --
Line 274 
Line 276 
     char *name = (char *)namep;      char *name = (char *)namep;
     For *arg = (For *)argp;      For *arg = (For *)argp;
   
       Buf_Init(&arg->buf, arg->guess);
     Var_Set(arg->var, name, VAR_GLOBAL);      Var_Set(arg->var, name, VAR_GLOBAL);
     if (DEBUG(FOR))      if (DEBUG(FOR))
         (void)fprintf(stderr, "--- %s = %s\n", arg->var, name);          (void)fprintf(stderr, "--- %s = %s\n", arg->var, name);
     Parse_FromString(Var_Subst(arg->var, arg->text, VAR_GLOBAL, FALSE),      Var_SubstVar(&arg->buf, arg->text, arg->var, VAR_GLOBAL);
         arg->lineno);      if (Buf_Size(&arg->buf) >= arg->guess)
           arg->guess = Buf_Size(&arg->buf) + GUESS_EXPANSION;
   
       Parse_FromString(Buf_Retrieve(&arg->buf), arg->lineno);
     Var_Delete(arg->var, VAR_GLOBAL);      Var_Delete(arg->var, VAR_GLOBAL);
     return 0;      return 0;
 }  }
Line 296 
Line 302 
     For *arg;      For *arg;
 {  {
     arg->text = Buf_Retrieve(&arg->buf);      arg->text = Buf_Retrieve(&arg->buf);
       arg->guess = Buf_Size(&arg->buf) + GUESS_EXPANSION;
   
     Lst_ForEach(arg->lst, ForExec, (ClientData)arg);      Lst_ForEach(arg->lst, ForExec, (ClientData)arg);
     free(arg->var);      free(arg->var);

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13