diff --git a/extern/btyacc/reader.c b/extern/btyacc/reader.c index 435e5ad3f48..8e2d9ed199d 100644 --- a/extern/btyacc/reader.c +++ b/extern/btyacc/reader.c @@ -146,11 +146,13 @@ char *get_line() { /* VM: Process %include line */ if(strncmp(&line[0], "%include ", 9)==0) { - int ii=0; - for(i=9; line[i]!='\n' && line[i]!=' '; i++, ii++) { - inc_file_name[ii] = line[i]; - } - inc_file_name[ii] = 0; + + char *inc_file_name = line+9; + while (isspace(*inc_file_name)) inc_file_name++; + i = strlen(inc_file_name); + while (i > 0 && isspace(inc_file_name[i-1])) --i; + inc_file_name[i] = 0; + if(inc_file) { error(lineno, 0, 0, "Nested include lines are not allowed"); }