Blame SOURCES/scala-2.10-jline.patch

0cd607
diff --git a/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala b/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala
0cd607
index 10f9724..2970276 100644
0cd607
--- a/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala
0cd607
+++ b/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala
0cd607
@@ -42,7 +42,7 @@ class JLineReader(_completion: => Completion) extends InteractiveReader {
0cd607
     def readOneKey(prompt: String) = {
0cd607
       this.print(prompt)
0cd607
       this.flush()
0cd607
-      this.readVirtualKey()
0cd607
+      this.readCharacter()
0cd607
     }
0cd607
     def eraseLine() = consoleReader.resetPromptLine("", "", 0)
0cd607
     def redrawLineAndFlush(): Unit = { flush() ; drawLine() ; flush() }
0cd607
diff --git a/src/compiler/scala/tools/nsc/interpreter/session/FileBackedHistory.scala b/src/compiler/scala/tools/nsc/interpreter/session/FileBackedHistory.scala
0cd607
index dddfb1b..e598ac5 100644
0cd607
--- a/src/compiler/scala/tools/nsc/interpreter/session/FileBackedHistory.scala
0cd607
+++ b/src/compiler/scala/tools/nsc/interpreter/session/FileBackedHistory.scala
0cd607
@@ -13,7 +13,7 @@ import FileBackedHistory._
0cd607
 /** TODO: file locking.
0cd607
  */
0cd607
 trait FileBackedHistory extends JLineHistory with JPersistentHistory {
0cd607
-  def maxSize: Int
0cd607
+  def maxSize: Int = 2500
0cd607
   protected lazy val historyFile: File = defaultFile
0cd607
   private var isPersistent = true
0cd607
 
0cd607
diff --git a/src/compiler/scala/tools/nsc/interpreter/session/JLineHistory.scala b/src/compiler/scala/tools/nsc/interpreter/session/JLineHistory.scala
0cd607
index 18e0ee7..fc33192 100644
0cd607
--- a/src/compiler/scala/tools/nsc/interpreter/session/JLineHistory.scala
0cd607
+++ b/src/compiler/scala/tools/nsc/interpreter/session/JLineHistory.scala
0cd607
@@ -13,7 +13,6 @@ package session
0cd607
 trait JLineHistory extends JHistory with History {
0cd607
   def size: Int
0cd607
   def isEmpty: Boolean
0cd607
-  def index: Int
0cd607
   def clear(): Unit
0cd607
   def get(index: Int): CharSequence
0cd607
   def add(line: CharSequence): Unit
0cd607
@@ -42,7 +41,8 @@ object JLineHistory {
0cd607
         addLineToFile(item)
0cd607
       }
0cd607
     }
0cd607
-    override def toString = "History(size = " + size + ", index = " + index + ")"
0cd607
+    override def toString = "History(size = " + size + ", _index = " + index + ")"
0cd607
+    override def maxSize: Int = 2500
0cd607
   }
0cd607
 
0cd607
   def apply(): JLineHistory = try new JLineFileHistory catch { case x: Exception => new SimpleHistory() }
0cd607
diff --git a/src/compiler/scala/tools/nsc/interpreter/session/SimpleHistory.scala b/src/compiler/scala/tools/nsc/interpreter/session/SimpleHistory.scala
0cd607
index 9f4e2b9..8933849 100644
0cd607
--- a/src/compiler/scala/tools/nsc/interpreter/session/SimpleHistory.scala
0cd607
+++ b/src/compiler/scala/tools/nsc/interpreter/session/SimpleHistory.scala
0cd607
@@ -10,7 +10,7 @@ package session
0cd607
 import scala.collection.mutable.{ Buffer, ListBuffer }
0cd607
 import scala.collection.JavaConverters._
0cd607
 
0cd607
-class SimpleHistory extends JLineHistory {
0cd607
+class SimpleHistory extends JMemoryHistory with JLineHistory {
0cd607
   private var _index: Int = 0
0cd607
   private val buf: Buffer[String] = new ListBuffer[String]
0cd607
   private def toEntries(): Seq[JEntry] = buf.zipWithIndex map { case (x, i) => Entry(i, x) }
0cd607
@@ -32,27 +32,27 @@ class SimpleHistory extends JLineHistory {
0cd607
   def maxSize: Int = 2500
0cd607
   def last = if (isEmpty) fail("last") else buf.last
0cd607
 
0cd607
-  def size = buf.size
0cd607
-  def index = _index
0cd607
-  def isEmpty = buf.isEmpty
0cd607
-  def clear() = buf.clear()
0cd607
-  def get(idx: Int): CharSequence = buf(idx)
0cd607
-  def add(item: CharSequence): Unit = buf += item
0cd607
-  def replace(item: CharSequence): Unit = {
0cd607
+  override def size = buf.size
0cd607
+  override def index = _index
0cd607
+  override def isEmpty = buf.isEmpty
0cd607
+  override def clear() = buf.clear()
0cd607
+  override def get(idx: Int): CharSequence = buf(idx)
0cd607
+  override def add(item: CharSequence): Unit = buf += item
0cd607
+  override def replace(item: CharSequence): Unit = {
0cd607
     buf trimEnd 1
0cd607
     add(item)
0cd607
   }
0cd607
-  def entries(idx: Int): JListIterator[JEntry] = toEntries().asJava.listIterator(idx)
0cd607
-  def entries(): JListIterator[JEntry]         = toEntries().asJava.listIterator()
0cd607
-  def iterator: JIterator[JEntry]              = toEntries().iterator.asJava
0cd607
-
0cd607
-  def current()         = if (index >= 0 && index < buf.size) buf(index) else fail("current()")
0cd607
-  def previous()        = (index > 0) && minusOne
0cd607
-  def next()            = (index <= lastIndex) && plusOne
0cd607
-  def moveToFirst()     = (size > 0) && (index != 0) && setTo(0)
0cd607
-  def moveToLast()      = (size > 0) && (index < lastIndex) && setTo(lastIndex)
0cd607
-  def moveTo(idx: Int)  = (idx > 0) && (idx <= lastIndex) && setTo(idx)
0cd607
-  def moveToEnd(): Unit = setTo(size)
0cd607
+  override def entries(idx: Int): JListIterator[JEntry] = toEntries().asJava.listIterator(idx)
0cd607
+  override def entries(): JListIterator[JEntry]         = toEntries().asJava.listIterator()
0cd607
+  override def iterator: JIterator[JEntry]              = toEntries().iterator.asJava
0cd607
+
0cd607
+  override def current()         = if (index >= 0 && index < buf.size) buf(index) else fail("current()")
0cd607
+  override def previous()        = (index > 0) && minusOne
0cd607
+  override def next()            = (index <= lastIndex) && plusOne
0cd607
+  override def moveToFirst()     = (size > 0) && (index != 0) && setTo(0)
0cd607
+  override def moveToLast()      = (size > 0) && (index < lastIndex) && setTo(lastIndex)
0cd607
+  override def moveTo(idx: Int)  = (idx > 0) && (idx <= lastIndex) && setTo(idx)
0cd607
+  override def moveToEnd(): Unit = setTo(size)
0cd607
 
0cd607
   // scala legacy interface
0cd607
   def asList: List[JEntry] = toEntries().toList