Debugger cmds not requiring spaces
authorSmylers <Smylers@stripey.com>
Wed, 6 Sep 2017 11:32:09 +0000 (12:32 +0100)
committerAaron Crane <arc@cpan.org>
Sat, 30 Sep 2017 16:29:59 +0000 (17:29 +0100)
Make debugger commands like these work again, not requiring a space
between a single-letter command and a following argument which starts with
punctuation:

  p$^V
  x@ARGV
  x\@ARGV
  x\%INC

Regressions were in d478d7a0 and 8f144dfc.

lib/perl5db.pl

index 265b444..d0c707e 100644 (file)
@@ -529,7 +529,7 @@ BEGIN {
 use vars qw($VERSION $header);
 
 # bump to X.XX in blead, only use X.XX_XX in maint
-$VERSION = '1.51';
+$VERSION = '1.52';
 
 $header = "perl5db.pl version $VERSION";
 
@@ -1871,7 +1871,10 @@ sub _DB__trim_command_and_return_first_component {
     $cmd =~ s/\A\s+//s;    # trim annoying leading whitespace
     $cmd =~ s/\s+\z//s;    # trim annoying trailing whitespace
 
-    my ($verb, $args) = $cmd =~ m{\A(\S*)\s*(.*)}s;
+    # A single-character debugger command can be immediately followed by its
+    # argument if they aren't both alphanumeric; otherwise require space
+    # between commands and arguments:
+    my ($verb, $args) = $cmd =~ m{\A(.\b|\S*)\s*(.*)}s;
 
     $obj->cmd_verb($verb);
     $obj->cmd_args($args);