int
def(inbuf,w)
char *inbuf, *w;
{
int c,i;
int left_br=0, right_br=0;
for (i=0; (c = *inbuf++) != NULL && i < MAXLINE; i++)
{
w[i] = (char)c;
if (c == '{') left_br++;
if (c == '}') right_br++;
if (left_br == right_br && left_br != 0) break;
}
w[++i] = NULL;
return(i);
}
int
def_file(fp,line,match)
FILE *fp;
int *line,match;
{
int i=0, lbrl=0;
int c;
int left_br=0, right_br=0;
while ((c = getc(fp)) != EOF)
{
i++;
if (c == '\n') (*line)++;
if (c == '{')
{
left_br++;
if (lbrl == 0) lbrl = *line;
}
if (c == '}') right_br++;
if (left_br == right_br && left_br != 0) break;
}
if (match == 1 && c == EOF && left_br > right_br)
fprintf(stderr,"file ends: %d unclosed left braces while reading \\def, first opened at line %d\n",left_br-right_br,lbrl);
return(i);
}
int
get_buf_word(inbuf,w)
char *inbuf;
char *w;
{
int c,i;
for (i=0; (c = *inbuf++) != NULL && c != ' ' && c != '\n' && c != '\t'
&& c != '$' && c != '{' && c != '}' && c != '%'
&& c != '\\' && c != '#' && c != '(' && c != ')' && c != '['
&& c != ']' && i < MAXWORD; i++)
w[i] = (char)c;
if ((c == ' ' || c == '\n' || c == '\t' || c == '$' || c == '{' || c == '}' ||
c == '%' || c == '\\' && c != '#' || c == '(' || c == ')' || c =='['
|| c == ']') && i == 0)
w[i++] = (char)c;
w[i] = NULL;
return(i);
}
int
getenv_file(fp,line,match)
FILE *fp;
int *line,match;
{
int i=0,lbrl=0;
int c;
int left_br=0, right_br=0;
while ((c = getc(fp)) != EOF)
{
i++;
if (c == '\n') (*line)++;
if (c == '{')
{
left_br++;
if (lbrl == 0) lbrl = *line;
}
if (c == '}') right_br++;
if (right_br > left_br) break;
}
if (match == 1 && c == EOF && left_br > right_br)
{
fprintf(stderr,"file ends: %d unclosed left braces while reading \\newenvironment, first opened at line %d\n",left_br-right_br,lbrl);
return(i);
}
left_br = 0; right_br = 0; lbrl = 0;
while ((c = getc(fp)) != EOF)
{
i++;
if (c == '\n') (*line)++;
if (c == '{')
{
left_br++;
if (lbrl == 0) lbrl = *line;
}
if (c == '}') right_br++;
if (left_br == right_br && left_br != 0) break;
}
if (match == 1 && c == EOF && left_br > right_br)
{
fprintf(stderr,"file ends: %d unclosed left braces while reading \\newenvironment, first opened at line %d\n",left_br-right_br,lbrl);
return(i);
}
left_br = 0; right_br = 0; lbrl = 0;
while ((c = getc(fp)) != EOF)
{
i++;
if (c == '\n') (*line)++;
if (c == '{')
{
left_br++;
if (lbrl == 0) lbrl = *line;
}
if (c == '}') right_br++;
if (left_br == right_br && left_br != 0) break;
}
if (match == 1 && c == EOF && left_br > right_br)
fprintf(stderr,"file ends: %d unclosed left braces while reading \\newenvironment, first opened at line %d\n",left_br-right_br,lbrl);
return(i);
}
int
get_file_word(fp,w,line,c)
FILE *fp;
char *w;
int *line, *c;
{
int i;