Hi --
I've often wanted the up-arrow in irb to give me my history from the
previous session. Well, now it does :-) Patch follows, in the hope
that this (or equivalent) might make it into the real irb.
David
*** input-method.rb.orig Sat Feb 19 09:21:08 2005
--- input-method.rb Sat Feb 19 09:30:01 2005
***************
*** 91,101 ****
--- 91,118 ----
@line_no = 0
@line = []
@eof = false
+ h_file = "#{ENV["HOME"]}/.irb_history"
+ if test(?f,h_file)
+ begin
+ File.readlines(h_file).each {|x| HISTORY << x.chomp}
+ rescue
+ print "irb: warning: can't read #{h_file};"
+ puts "prior history will not be available"
+ end
+ end
+ begin
+ @h_file = File.open(h_file, "a")
+ rescue
+ print "irb: warning: can't write to #{h_file};"
+ puts "history will not be saved"
+ @h_file = nil
+ end
end
def gets
if l = readline(@prompt, true)
HISTORY.pop if l.empty?
+ @h_file.puts(l) if @h_file
@line[@line_no += 1] = l + "\n"
else
@eof = true