Term::ReadLine::Perl support to ReadLineHistory
Chris Marshall [Sat, 8 May 2010 19:39:34 +0000 (15:39 -0400)]
Term::ReadLine::Gnu uses the stifle_history() method to set the
number of history lines kept.  Term::ReadLine::Perl uses the
value of the MaxHistorySize atribute.

lib/Devel/REPL/Plugin/ReadLineHistory.pm

index 70a79ad..711aa3d 100644 (file)
@@ -20,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->Attribs->{ReadLine} eq 'Term::ReadLine::Gnu') {
+     $self->term->stifle_history($hist_len);
+  }
+  if ($self->term->Attribs->{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);