summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2009-06-30 10:55:32 +0000
committerPhilipp Haller <hallerp@gmail.com>2009-06-30 10:55:32 +0000
commit978e36705aa429a1e957230cd5f5ccaed8dc5b4c (patch)
treec170240032017c4c4eb759261899831ce93ab95c /src
parent96f6c893f1ad84ef81e975820af566a926a246c3 (diff)
downloadscala-978e36705aa429a1e957230cd5f5ccaed8dc5b4c.tar.gz
scala-978e36705aa429a1e957230cd5f5ccaed8dc5b4c.tar.bz2
scala-978e36705aa429a1e957230cd5f5ccaed8dc5b4c.zip
Applied patch to fix #2104 and added test.
Diffstat (limited to 'src')
-rw-r--r--src/library/scala/io/BufferedSource.scala13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/library/scala/io/BufferedSource.scala b/src/library/scala/io/BufferedSource.scala
index d84138e5fe..6727b27fb7 100644
--- a/src/library/scala/io/BufferedSource.scala
+++ b/src/library/scala/io/BufferedSource.scala
@@ -61,15 +61,16 @@ extends Source
val reader = new BufferedReader(new InputStreamReader(inputStream, decoder), bufferSize)
override val iter = new Iterator[Char] {
- private def getc(): Char =
- try { reader.read().toChar }
+ private def getc(): Int =
+ try { reader.read() }
catch { case e: CharacterCodingException => codec receivedMalformedInput e }
- var buf_char = getc
- def hasNext = reader.ready()
+ private[this] var buf_char = getc
+ def peek = buf_char
+ def hasNext = { buf_char != -1 }
def next = {
- val c = buf_char
- if (hasNext) buf_char = getc
+ val c = buf_char.toChar
+ buf_char = getc
c
}
}