summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2019-05-29 05:53:14 +0900
committeraycabta <aycabta@gmail.com>2019-05-29 05:53:44 +0900
commit3b7862c8e88cd7838a53ec083ac5733386400956 (patch)
treec464514142c1193cdd16c70af27f19378ffd66b2 /lib
parenta66bc2c01194a9c017c874a30db5b3b6bd95e966 (diff)
Use existing instances for LineEditor and Config
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