You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ml...@apache.org on 2006/08/24 10:04:19 UTC

svn commit: r434337 - in /incubator/harmony/enhanced/classlib/trunk/modules/luni/src: main/java/java/io/StreamTokenizer.java test/java/tests/api/java/io/StreamTokenizerTest.java

Author: mloenko
Date: Thu Aug 24 01:04:18 2006
New Revision: 434337

URL: http://svn.apache.org/viewvc?rev=434337&view=rev
Log:
applied patch for HARMONY-1262
[classlib][luni] StreamTokenizer does not work with block comments

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/StreamTokenizer.java
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/StreamTokenizerTest.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/StreamTokenizer.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/StreamTokenizer.java?rev=434337&r1=434336&r2=434337&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/StreamTokenizer.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/StreamTokenizer.java Thu Aug 24 01:04:18 2006
@@ -1,4 +1,4 @@
-/* Copyright 1998, 2004 The Apache Software Foundation or its licensors, as applicable
+/* Copyright 1998, 2006 The Apache Software Foundation or its licensors, as applicable
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -411,16 +411,6 @@
 			sval = quoteString.toString();
 			return ttype;
 		}
-		// Check for comment character
-		if (currentType == TOKEN_COMMENT) {
-			// Skip to EOF or new line then return the next token
-			while ((currentChar = read()) >= 0 && currentChar != '\r'
-					&& currentChar != '\n') {
-				// Intentionally empty
-			}
-			peekChar = currentChar;
-			return nextToken();
-		}
 		// Do comments, both "//" and "/*stuff*/"
 		if (currentChar == '/' && (slashSlashComments || slashStarComments)) {
 			if ((currentChar = read()) == '*' && slashStarComments) {
@@ -451,12 +441,23 @@
 				}
 				peekChar = currentChar;
 				return nextToken();
-			} else {
+			} else if(currentType != TOKEN_COMMENT){
 				// Was just a slash by itself
 				peekChar = currentChar;
 				return (ttype = '/');
 			}
 		}
+        // Check for comment character
+        if (currentType == TOKEN_COMMENT) {
+            // Skip to EOF or new line then return the next token
+            while ((currentChar = read()) >= 0 && currentChar != '\r'
+                    && currentChar != '\n') {
+                // Intentionally empty
+            }
+            peekChar = currentChar;
+            return nextToken();
+        }
+        
 		peekChar = read();
 		return (ttype = currentChar);
 	}

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/StreamTokenizerTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/StreamTokenizerTest.java?rev=434337&r1=434336&r2=434337&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/StreamTokenizerTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/StreamTokenizerTest.java Thu Aug 24 01:04:18 2006
@@ -1,4 +1,4 @@
-/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+/* Copyright 1998, 2006 The Apache Software Foundation or its licensors, as applicable
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,9 +15,11 @@
 
 package tests.api.java.io;
 
+import java.io.CharArrayReader;
 import java.io.IOException;
 import java.io.PipedInputStream;
 import java.io.PipedOutputStream;
+import java.io.Reader;
 import java.io.StreamTokenizer;
 import java.io.StringBufferInputStream;
 
@@ -352,7 +354,48 @@
 			fail("Exception during test : " + e.getMessage());
 		}
 	}
-
+    
+    /**
+     * @tests java.io.StreamTokenizer#slashSlashComments(boolean)
+     */
+    public void test_slashSlashComments_withSSOpen() throws IOException {
+        Reader reader = new CharArrayReader( "t // t t t".toCharArray());
+
+        StreamTokenizer st = new StreamTokenizer(reader);
+        st.slashSlashComments(true);
+
+        assertEquals(StreamTokenizer.TT_WORD,st.nextToken());
+        assertEquals(StreamTokenizer.TT_EOF,st.nextToken());
+    }
+
+    /**
+     * @tests java.io.StreamTokenizer#slashSlashComments(boolean)
+     */
+    public void test_slashSlashComments_withSSOpen_NoComment() throws IOException {
+        Reader reader = new CharArrayReader( "// t".toCharArray());
+
+        StreamTokenizer st = new StreamTokenizer(reader);
+        st.slashSlashComments(true);
+        st.ordinaryChar('/');
+
+        assertEquals(StreamTokenizer.TT_EOF,st.nextToken());
+    }
+    
+    /**
+     * @tests java.io.StreamTokenizer#slashSlashComments(boolean)
+     */
+    public void test_slashSlashComments_withSSClosed() throws IOException {
+        Reader reader = new CharArrayReader( "// t".toCharArray());
+
+        StreamTokenizer st = new StreamTokenizer(reader);
+        st.slashSlashComments(false);
+        st.ordinaryChar('/');
+
+        assertEquals('/',st.nextToken());
+        assertEquals('/',st.nextToken());
+        assertEquals(StreamTokenizer.TT_WORD,st.nextToken());
+    }
+    
 	/**
 	 * @tests java.io.StreamTokenizer#slashStarComments(boolean)
 	 */
@@ -368,6 +411,33 @@
 		}
 	}
 
+    /**
+     * @tests java.io.StreamTokenizer#slashStarComments(boolean)
+     */
+    public void test_slashStarComments_withSTOpen() throws IOException {
+        Reader reader = new CharArrayReader( "t /* t */ t".toCharArray());
+
+        StreamTokenizer st = new StreamTokenizer(reader);
+        st.slashStarComments(true);
+
+        assertEquals(StreamTokenizer.TT_WORD,st.nextToken());
+        assertEquals(StreamTokenizer.TT_WORD,st.nextToken());
+        assertEquals(StreamTokenizer.TT_EOF,st.nextToken());
+    }
+
+    /**
+     * @tests java.io.StreamTokenizer#slashStarComments(boolean)
+     */
+    public void test_slashStarComments_withSTClosed() throws IOException {
+        Reader reader = new CharArrayReader( "t /* t */ t".toCharArray());
+
+        StreamTokenizer st = new StreamTokenizer(reader);
+        st.slashStarComments(false);
+
+        assertEquals(StreamTokenizer.TT_WORD,st.nextToken());
+        assertEquals(StreamTokenizer.TT_EOF,st.nextToken());
+    }
+    
 	/**
 	 * @tests java.io.StreamTokenizer#toString()
 	 */