Add docs on quoting and history expansion
Chris Marshall [Fri, 4 Jun 2010 02:42:58 +0000 (22:42 -0400)]
This addresses rt.cpan.org bug #48459 where a user complained
that history expansion caused problems with using ! in strings.
This is the expected behavior.  The documentation covers how
to quote the ! so that history expansion with not take place
as well as how to disable it entirely.

lib/Devel/REPL/Plugin/ReadLineHistory.pm

index 42f733f..2d7428f 100644 (file)
@@ -64,5 +64,39 @@ __END__
 
 Devel::REPL::Plugin::ReadLineHistory - Integrate history with the facilities provided by L<Term::ReadLine>
 
+=head1 DESCRIPTION
+
+This plugin enables loading and saving command line history from
+a file as well has history expansion of previous commands using
+the !-syntax a la bash.
+
+By default, history expansion is enabled with this plugin when
+using L<Term::ReadLine::Gnu|Term::ReadLine::Gnu>. That means that
+"loose" '!' characters will be treated as history events which
+may not be what you wish.
+
+To avoid this, you need to quote the '!' with '\':
+
+  my $var = "foo\!";
+
+or place the arguments in single quotes---but enable the
+C<Term::ReadLine> attribute C<history_quotes_inhibit_expansion>:
+
+  $_REPL->term->Attribs->{history_quotes_inhibit_expansion} = 1;
+  my $var = 'foo!';
+
+and to disable history expansion from GNU readline/history do
+
+  $_REPL->term->Attribs->{do_expand} = 0;
+
+=head1 CONFLICTS
+
+Note that Term::ReadLine::Perl does not support a history
+expansion method.  In that case, you may wish to use the
+Devel::REPL History plugin which provides similar functions.
+Work is underway to make use of either History or
+ReadLineHistory consistent for expansion with either the
+Term::ReadLine::Gnu support or Term::ReadLine::Perl.
+
 =cut