siegel@hc.DSPO.GOV (josh Siegel) (02/10/89)
This fixes a few more silly bugs on my part... There were some comment line trucations and I blew away existing comment indentations. Also, if a string larger then BUFSIZ (for example, 23,000 characters long) came in, pspp dumped. These are now fixed. --Josh Siegel diff -r -c pspp.n/pspp.l pspp/pspp.l *** pspp.n/pspp.l Thu Feb 9 09:37:02 1989 --- pspp/pspp.l Thu Feb 9 09:36:41 1989 *************** *** 8,13 **** --- 8,17 ---- You may copy the pspp kit in whole or in part as long as you don't try to make money off it, or pretend that you wrote it. + Version 0.07 + Fixed two more comment bugs. + Fixed a core dump when I get a string over BUFSIZ (stdio.h) long. + Version 0.06 Fixed comment lines getting stuck together (bug by Dave Yost). *************** *** 118,123 **** --- 122,133 ---- default: break; } i++; + if(i >= BUFSIZ-1) { + yytext[i]= '\0'; + newline(); + fprintf(yyout,"%s",yytext); + i = 0; + } } yytext[i]= '\0'; newline(); *************** *** 124,130 **** fprintf(yyout,"%s",yytext); } ! <PSPP>\{[ \t]*\} { /* Yet another special case */ newline(); fprintf(yyout,yytext); } <PSPP>"def" { /* Rule 3 */ if(check_flag(FLAG_DB)) --- 134,143 ---- fprintf(yyout,"%s",yytext); } ! <PSPP>\{[ \t]*\} { /* Yet another special case */ ! newline(); ! fprintf(yyout,yytext); ! } <PSPP>"def" { /* Rule 3 */ if(check_flag(FLAG_DB)) *************** *** 291,298 **** parseflag(&yytext[3]); neednew=1; } ! <PSPP>[^^]\%.* { /* 11 */ ! yytext[yyleng-1]='\0'; fprintf(yyout,"%s",yytext); neednew=1; } --- 304,311 ---- parseflag(&yytext[3]); neednew=1; } ! <PSPP>[^^][ \t]*\%.* { /* 11 */ ! /* yytext[yyleng-1]='\0'; */ fprintf(yyout,"%s",yytext); neednew=1; } -- Josh Siegel (siegel@hc.dspo.gov) I like using a C-47A "puff dragon" to go shooting beer cans with.