version 1.17, 2000/06/10 01:41:05 |
version 1.18, 2000/06/17 14:38:15 |
|
|
struct For_ { |
struct For_ { |
char *text; /* unexpanded text */ |
char *text; /* unexpanded text */ |
char *var; /* Index name */ |
char *var; /* Index name */ |
Lst lst; /* List of items */ |
LIST lst; /* List of items */ |
size_t guess; /* Estimated expansion size */ |
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 */ |
|
|
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); |
|
|
arg->lst = Lst_Init(); |
Lst_Init(&arg->lst); |
build_words_list(arg->lst, sub); |
build_words_list(&arg->lst, sub); |
free(sub); |
free(sub); |
arg->lineno = Parse_Getlineno(); |
arg->lineno = Parse_Getlineno(); |
arg->level = 1; |
arg->level = 1; |
|
|
arg->text = Buf_Retrieve(&arg->buf); |
arg->text = Buf_Retrieve(&arg->buf); |
arg->guess = Buf_Size(&arg->buf) + GUESS_EXPANSION; |
arg->guess = Buf_Size(&arg->buf) + GUESS_EXPANSION; |
|
|
Lst_ForEach(arg->lst, ForExec, arg); |
Lst_ForEach(&arg->lst, ForExec, arg); |
free(arg->var); |
free(arg->var); |
free(arg->text); |
free(arg->text); |
Lst_Destroy(arg->lst, (SimpleProc)free); |
Lst_Destroy(&arg->lst, (SimpleProc)free); |
free(arg); |
free(arg); |
} |
} |