From 5bad0d9e91a6a5b910e9a6a947ea1d762028bbab Mon Sep 17 00:00:00 2001 From: Peter Scott Date: Thu, 13 Sep 2001 08:26:31 -0700 Subject: Execute files of debugger commands Message-Id: <4.3.2.7.2.20010913115845.00b22100@mail.webquarry.com> p4raw-id: //depot/perl@12014 --- lib/perl5db.pl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'lib/perl5db.pl') diff --git a/lib/perl5db.pl b/lib/perl5db.pl index ab9c48da60..6f1b20a13d 100644 --- a/lib/perl5db.pl +++ b/lib/perl5db.pl @@ -1433,6 +1433,14 @@ EOP } } next CMD; }; + $cmd =~ /^\@\s*(.*\S)/ && do { + if (open my $fh, $1) { + push @cmdfhs, $fh; + } + else { + &warn("Can't execute `$1': $!\n"); + } + next CMD; }; $cmd =~ /^\|\|?\s*[^|]/ && do { if ($pager =~ /^\|/) { open(SAVEOUT,">&STDOUT") || &warn("Can't save STDOUT"); @@ -2105,6 +2113,11 @@ sub readline { } local $frame = 0; local $doret = -2; + while (@cmdfhs) { + my $line = CORE::readline($cmdfhs[-1]); + defined $line ? (print $OUT ">> $line" and return $line) + : close pop @cmdfhs; + } if (ref $OUT and UNIVERSAL::isa($OUT, 'IO::Socket::INET')) { $OUT->write(join('', @_)); my $stuff; @@ -2487,6 +2500,7 @@ B<$psh$psh> I Run cmd in a subprocess (reads from DB::IN, writes to DB::O . ( $rc eq $sh ? "" : " B<$psh> [I] Run I in subshell (forces \"\$SHELL -c 'cmd'\")." ) . " See 'B I' too. +B<@>I Execute I containing debugger commands (may nest). B I<-number> Display last number commands (default all). B

I Same as \"I\" in current package. B<|>I Run debugger command, piping DB::OUT to current pager. -- cgit v1.2.1