Blame SOURCES/scala-2.10-jline.patch

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