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