aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2003-06-24 07:25:24 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2003-06-24 07:25:24 +0000
commit20afd4757112345a1f7d9eabe4ff0d6e772a8701 (patch)
treeb9587b3136b98690806c5f9f2ede250c65edc05f /libjava
parentd1a2c4d688e3a559c483c097ad91f13447bb9f00 (diff)
downloadgcc-20afd4757112345a1f7d9eabe4ff0d6e772a8701.zip
gcc-20afd4757112345a1f7d9eabe4ff0d6e772a8701.tar.gz
gcc-20afd4757112345a1f7d9eabe4ff0d6e772a8701.tar.bz2
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. From-SVN: r68408
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog6
-rw-r--r--libjava/java/io/LineNumberReader.java37
2 files changed, 17 insertions, 26 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 6d6ad17..e7d39c1 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -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
diff --git a/libjava/java/io/LineNumberReader.java b/libjava/java/io/LineNumberReader.java
index 9d80745..12bafe3 100644
--- a/libjava/java/io/LineNumberReader.java
+++ b/libjava/java/io/LineNumberReader.java
@@ -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;
}
}