40 |
struct repeat_entry |
struct repeat_entry |
41 |
{ |
{ |
42 |
int type; /* 1=variable names, 0=any other. */ |
int type; /* 1=variable names, 0=any other. */ |
43 |
char id[SHORT_NAME_LEN + 1]; /* Macro identifier. */ |
char id[LONG_NAME_LEN + 1]; /* Macro identifier. */ |
44 |
char **replacement; /* Macro replacement. */ |
char **replacement; /* Macro replacement. */ |
45 |
struct repeat_entry *next; |
struct repeat_entry *next; |
46 |
}; |
}; |
125 |
internal_cmd_do_repeat (void) |
internal_cmd_do_repeat (void) |
126 |
{ |
{ |
127 |
/* Name of first DO REPEAT macro. */ |
/* Name of first DO REPEAT macro. */ |
128 |
char first_name[SHORT_NAME_LEN + 1]; |
char first_name[LONG_NAME_LEN + 1]; |
129 |
|
|
130 |
/* Current filename. */ |
/* Current filename. */ |
131 |
const char *current_filename = NULL; |
const char *current_filename = NULL; |
553 |
|
|
554 |
/* Collect an identifier. */ |
/* Collect an identifier. */ |
555 |
{ |
{ |
556 |
char name[SHORT_NAME_LEN + 1]; |
char name[LONG_NAME_LEN + 1]; |
557 |
char *start = cp; |
char *start = cp; |
558 |
char *np = name; |
char *np = name; |
559 |
char *substitution; |
char *substitution; |
560 |
|
|
561 |
while (CHAR_IS_IDN (*cp) && np < &name[SHORT_NAME_LEN]) |
while (CHAR_IS_IDN (*cp) && np < &name[LONG_NAME_LEN]) |
562 |
*np++ = *cp++; |
*np++ = *cp++; |
563 |
while (CHAR_IS_IDN (*cp)) |
while (CHAR_IS_IDN (*cp)) |
564 |
cp++; |
cp++; |