From: Chris Marshall Date: Sat, 12 Feb 2011 22:10:50 +0000 (-0500) Subject: Fixed minor logic inverson in MultiLine/PPI.pm X-Git-Tag: v1.003015~17 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FDevel-REPL.git;a=commitdiff_plain;h=d8153bec650b92d2cd68449a148c393c51e877e9;hp=52d6b6af147beccedca56cb715343c16935e8078 Fixed minor logic inverson in MultiLine/PPI.pm The result was that incomplete q/ / operators would not be detected and result in an error. Now they properly continue however, it appears that q followed by a \n is treaed as a q// operator. I don't know if perl allows that or if this need to be resolved in PPI... --- diff --git a/lib/Devel/REPL/Plugin/MultiLine/PPI.pm b/lib/Devel/REPL/Plugin/MultiLine/PPI.pm index 1f23cfc..f0f9f9a 100644 --- a/lib/Devel/REPL/Plugin/MultiLine/PPI.pm +++ b/lib/Devel/REPL/Plugin/MultiLine/PPI.pm @@ -57,12 +57,16 @@ sub line_needs_continuation $line .= "\n;;"; my $document = PPI::Document->new(\$line); - return 0 if !defined($document); + unless ( defined($document) ) { + die "PPI failed to parse document '$line'\n"; + } # adding ";" to a complete document adds a PPI::Statement::Null. we added a ;; # so if it doesn't end in null then there's probably something that's # incomplete - return 0 if $document->child(-1)->isa('PPI::Statement::Null'); + unless ( $document->child(-1)->isa('PPI::Statement::Null') ) { + return 1; + } # this could use more logic, such as returning 1 on s/foo/ba my $unfinished_structure = sub