Fix typo in ReadLineHistory plugin
[p5sagit/Devel-REPL.git] / lib / Devel / REPL / Plugin / ReadLineHistory.pm
index 1830395..61ad9c0 100644 (file)
@@ -1,14 +1,17 @@
 # First cut at using the readline history directly rather than reimplementing
 # it. It does save history but it's a little crappy; still playing with it ;)
-# 
+#
 # epitaph, 22nd April 2007
 
 package Devel::REPL::Plugin::ReadLineHistory;
 
 use Devel::REPL::Plugin;
+use File::HomeDir;
+use File::Spec;
+
+my $hist_file = $ENV{PERLREPL_HISTFILE} ||
+    File::Spec->catfile(File::HomeDir->my_home, '.perlreplhist');
 
-my $hist_file=$ENV{PERLREPL_HISTFILE} ||
-             (($ENV{HOME} || (getpwuid($<))[7]) . "/.perlreplhist");
 # HISTLEN should probably be in a config file to stop people accidentally
 # truncating their history if they start the program and forget to set
 # PERLREPL_HISTLEN
@@ -17,7 +20,12 @@ my $hist_len=$ENV{PERLREPL_HISTLEN} || 100;
 around 'run' => sub {
   my $orig=shift;
   my ($self, @args)=@_;
-  $self->term->stifle_history($hist_len);
+  if ($self->term->ReadLine eq 'Term::ReadLine::Gnu') {
+     $self->term->stifle_history($hist_len);
+  }
+  if ($self->term->ReadLine eq 'Term::ReadLine::Perl') {
+     $self->term->Attribs->{MaxHistorySize} = $hist_len;
+  }
   -f($hist_file) && $self->term->ReadHistory($hist_file);
   $self->term->Attribs->{do_expand}=1;
   $self->$orig(@args);