summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/reline.rb3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/reline.rb b/lib/reline.rb
index 656fab2fea..df2b620448 100644
--- a/lib/reline.rb
+++ b/lib/reline.rb
@@ -46,10 +46,13 @@ module Reline
end
def push(*val)
+ diff = size + val.size - @@config.history_size
+ shift(diff) if diff > 0
super(*(val.map{ |v| String.new(v, encoding: Encoding::default_external) }))
end
def <<(val)
+ shift if size + 1 > @@config.history_size
super(String.new(val, encoding: Encoding::default_external))
end