OSDN Git Service

2003-06-24 Michael Koch <konqueror@gmx.de>
authormkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 24 Jun 2003 07:25:24 +0000 (07:25 +0000)
committermkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 24 Jun 2003 07:25:24 +0000 (07:25 +0000)
* java/io/LineNumberReader.java
(skip): Dont do line number accounting here as this is already done in
read(), simplified.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68408 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/java/io/LineNumberReader.java

index 6d6ad17..e7d39c1 100644 (file)
@@ -1,3 +1,9 @@
+2003-06-24  Michael Koch  <konqueror@gmx.de>
+
+       * java/io/LineNumberReader.java
+       (skip): Dont do line number accounting here as this is already done in
+       read(), simplified.
+
 2003-06-21  Michael Koch  <konqueror@gmx.de>
 
        * java/io/File.java
index 9d80745..12bafe3 100644 (file)
@@ -374,37 +374,22 @@ public class LineNumberReader extends BufferedReader
     *
     * @exception IOException If an error occurs
     */
-  public long skip(long count) throws IOException
+  public long skip (long count) throws IOException
   {
     if (count <= 0)
       return 0;
-    long to_do = count;
-    do
+
+    int skipped;
+    
+    for (skipped = 0; skipped < count; skipped++)
       {
-       int ch = read();
-       if (ch < 0)
-         break;
-       to_do--;
-       if (ch == '\n' || ch == '\r')
-         lineNumber++;
-       else
-         {
-           long fence = pos + to_do;
-           if (limit < fence)
-             fence = limit;
-           int end = pos;
-           for (; end < fence; end++)
-             {
-               char endch = buffer[end];
-               if (endch == '\n' || endch == '\r')
-                 break;
-             }
-           to_do -= end - pos;
-           pos = end;
-         }
+        int ch = read();
+
+        if (ch < 0)
+          break;
       }
-    while (to_do > 0);
-    return count - to_do;
+
+    return skipped;
   }
 }