@@ -99,7 +99,7 @@ public void comment() throws IOException {
9999 c = string [j ++] = getchr (); // extra char
100100 while (done == 0 ) {
101101 c = string [j ++] = getchr ();
102- while ((c != '/' ) && (j < string .length )) {
102+ while ((c != '/' ) && (j < string .length ) && EOF == 0 ) {
103103 if (c == '\n' || c == '\r' ) {
104104 lineNumber ++;
105105 putcoms ();
@@ -111,7 +111,9 @@ public void comment() throws IOException {
111111 if (j >1 && string [j -2 ] == '*' ) {
112112 done = 1 ;
113113 jdoc = 0 ;
114- }
114+ } else if (EOF != 0 ) {
115+ done = 1 ;
116+ }
115117 }
116118
117119 putcoms ();
@@ -134,7 +136,7 @@ public char get_string() throws IOException {
134136 }
135137 if (ch == '\'' || ch == '"' ) {
136138 cc = string [j ++] = getchr ();
137- while (cc != ch ) {
139+ while (cc != ch && EOF == 0 ) {
138140 if (cc == '\\' ) string [j ++] = getchr ();
139141 cc = string [j ++] = getchr ();
140142 }
@@ -207,7 +209,7 @@ public void putcoms()
207209 }
208210 string [j ] = '\0' ;
209211 i = 0 ;
210- while (string [i ] == ' ' ) i ++;
212+ while (string [i ] == ' ' && EOF == 0 ) i ++;
211213 if (lookup_com (w_jdoc ) == 1 ) jdoc = 1 ;
212214 String strBuffer = new String (string ,0 ,j );
213215 if (string [i ] == '/' && string [i +1 ]=='*' )
@@ -241,7 +243,7 @@ public void putcoms()
241243 public void cpp_comment () throws IOException
242244 {
243245 c = getchr ();
244- while (c != '\n' && c != '\r' )
246+ while (c != '\n' && c != '\r' && EOF == 0 )
245247 {
246248 string [j ++] = c ;
247249 c = getchr ();
@@ -337,7 +339,7 @@ public int getnl() throws IOException
337339 peekc = getchr ();
338340 //while ((peekc == '\t' || peekc == ' ') &&
339341 // (j < string.length)) {
340- while (peekc == '\t' || peekc == ' ' ) {
342+ while (( peekc == '\t' || peekc == ' ' ) && EOF == 0 ) {
341343 string [j ++] = peekc ;
342344 peek = -1 ;
343345 peekc = '`' ;
@@ -398,7 +400,7 @@ public int lookup (String keyword)
398400
399401 if (j <1 ) return (0 );
400402 kk =0 ;
401- while (string [kk ] == ' ' )kk ++;
403+ while (string [kk ] == ' ' && EOF == 0 )kk ++;
402404 l =0 ;
403405 l = j_string .indexOf (keyword );
404406 if (l <0 || l !=kk )
@@ -421,7 +423,7 @@ public int lookup_com (String keyword)
421423
422424 if (j <1 ) return (0 );
423425 kk =0 ;
424- while (string [kk ] == ' ' ) kk ++;
426+ while (string [kk ] == ' ' && EOF == 0 ) kk ++;
425427 l =0 ;
426428 l = j_string .indexOf (keyword );
427429 if (l <0 || l !=kk )
@@ -637,8 +639,12 @@ public void run() {
637639 case '\'' :
638640 string [j ++] = c ;
639641 cc = getchr ();
640- while (cc != c )
642+ int count = 0 ;
643+ while (cc != c && EOF == 0 )
641644 {
645+ if (++count % 100000 == 0 ) {
646+ System .err .println ("Stuck: " + count );
647+ }
642648 // max. length of line should be 256
643649 string [j ++] = cc ;
644650
@@ -784,7 +790,7 @@ public void run() {
784790 case '#' :
785791 string [j ++] = c ;
786792 cc = getchr ();
787- while (cc != '\n' )
793+ while (cc != '\n' && EOF == 0 )
788794 {
789795 string [j ++] = cc ;
790796 cc = getchr ();
@@ -827,13 +833,13 @@ else if(tabs > 0)
827833 if ((lookup (w_for ) == 1 ))
828834 {
829835 c = get_string ();
830- while (c != ';' ) c = get_string ();
836+ while (c != ';' && EOF == 0 ) c = get_string ();
831837 ct =0 ;
832838 int for_done = 0 ;
833- while (for_done == 0 )
839+ while (for_done == 0 && EOF == 0 )
834840 {
835841 c = get_string ();
836- while (c != ')' )
842+ while (c != ')' && EOF == 0 )
837843 {
838844 if (c == '(' ) ct ++;
839845 c = get_string ();
0 commit comments