- fix fencepost error in number of includes allowed, - use print and not diag, because diag isn't initialized yet, - use error exit in case output file has been opened. Reference: /n/atom/patch/applied2013/ccninclude Date: Tue Jul 16 17:51:39 CES 2013 Signed-off-by: quanstro@quanstro.net --- /sys/src/cmd/cc/lexbody Tue Jul 16 17:50:00 2013 +++ /sys/src/cmd/cc/lexbody Tue Jul 16 17:50:00 2013 @@ -77,24 +77,6 @@ } void -setinclude(char *p) -{ - int i; - - if(p == 0) - return; - for(i=1; i < ninclude; i++) - if(strcmp(p, include[i]) == 0) - return; - - if(ninclude >= nelem(include)) { - yyerror("ninclude too small %d", nelem(include)); - exits("ninclude"); - } - include[ninclude++] = p; -} - -void errorexit(void) { --- /sys/src/cmd/cc/lex.c Tue Jul 16 17:50:00 2013 +++ /sys/src/cmd/cc/lex.c Tue Jul 16 17:50:00 2013 @@ -243,14 +243,10 @@ close(fd[1]); av[0] = CPP; i = 1; - if(debug['.']){ - sprint(opt, "-."); - av[i++] = strdup(opt); - } - if(debug['+']) { - sprint(opt, "-+"); - av[i++] = strdup(opt); - } + if(debug['.']) + av[i++] = strdup("-."); + /* 1999 ANSI C requires recognising // comments */ + av[i++] = strdup("-+"); for(c = 0; c < ndef; c++) { sprint(opt, "-D%s", defs[c]); av[i++] = strdup(opt); @@ -1532,7 +1528,6 @@ e = strchr(p, ' '); if(e != 0) *e = '\0'; - for(i=1; i < ninclude; i++) if(strcmp(p, include[i]) == 0) break; @@ -1540,9 +1535,9 @@ if(i >= ninclude) include[ninclude++] = p; - if(ninclude > nelem(include)) { - diag(Z, "ninclude too small %d", nelem(include)); - exits("ninclude"); + if(ninclude >= nelem(include)) { + print("%s: ninclude too small: %d\n", argv0, nelem(include)); + errorexit(); } if(e == 0)