diff options
author | Philipp Haller <hallerp@gmail.com> | 2009-06-30 10:55:32 +0000 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2009-06-30 10:55:32 +0000 |
commit | 978e36705aa429a1e957230cd5f5ccaed8dc5b4c (patch) | |
tree | c170240032017c4c4eb759261899831ce93ab95c /src/library | |
parent | 96f6c893f1ad84ef81e975820af566a926a246c3 (diff) | |
download | scala-978e36705aa429a1e957230cd5f5ccaed8dc5b4c.tar.gz scala-978e36705aa429a1e957230cd5f5ccaed8dc5b4c.tar.bz2 scala-978e36705aa429a1e957230cd5f5ccaed8dc5b4c.zip |
Applied patch to fix #2104 and added test.
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/io/BufferedSource.scala | 13 |
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 } } |