diff options
-rwxr-xr-x | installperl | 8 | ||||
-rw-r--r-- | lib/Text/Tabs.pm | 6 | ||||
-rw-r--r-- | perl.c | 2 | ||||
-rw-r--r-- | pp_hot.c | 8 |
4 files changed, 16 insertions, 8 deletions
diff --git a/installperl b/installperl index d0d5eebac5..b576d8b847 100755 --- a/installperl +++ b/installperl @@ -573,13 +573,15 @@ sub installlib { my $name = $_; - if ($name eq 'CVS' && -d $name) { + # Ignore RCS and CVS directories. + if (($name eq 'CVS' or $name eq 'RCS') and -d $name) { $File::Find::prune = 1; return; } - # ignore patch backups and the .exists files. - return if $name =~ m{\.orig$|~$|^\.exists}; + # ignore patch backups, RCS files, emacs backup & temp files and the + # .exists files. + return if $name =~ m{\.orig$|~$|^#.+#$|,v$|^\.exists}; $name = "$dir/$name" if $dir ne ''; diff --git a/lib/Text/Tabs.pm b/lib/Text/Tabs.pm index acd7afb7d6..c431019908 100644 --- a/lib/Text/Tabs.pm +++ b/lib/Text/Tabs.pm @@ -7,7 +7,7 @@ require Exporter; @EXPORT = qw(expand unexpand $tabstop); use vars qw($VERSION $tabstop $debug); -$VERSION = 96.121201; +$VERSION = 98.112801; use strict; @@ -18,7 +18,7 @@ BEGIN { sub expand { - my @l = @_; + my (@l) = @_; for $_ (@l) { 1 while s/(^|\n)([^\t\n]*)(\t+)/ $1. $2 . (" " x @@ -32,7 +32,7 @@ sub expand sub unexpand { - my @l = @_; + my (@l) = @_; my @e; my $x; my $line; @@ -1244,7 +1244,7 @@ Perl_call_sv(pTHX_ SV *sv, I32 flags) CATCH_SET(TRUE); call_xbody((OP*)&myop, FALSE); retval = PL_stack_sp - (PL_stack_base + oldmark); - CATCH_SET(FALSE); + CATCH_SET(oldcatch); } else { cLOGOP->op_other = PL_op; @@ -2536,7 +2536,13 @@ try_autoload: "%p entersub preparing @_\n", thr)); #endif av = (AV*)PL_curpad[0]; - assert(!AvREAL(av)); + if (AvREAL(av)) { + /* @_ is normally not REAL--this should only ever + * happen when DB::sub() calls things that modify @_ */ + av_clear(av); + AvREAL_off(av); + AvREIFY_on(av); + } #ifndef USE_THREADS cx->blk_sub.savearray = GvAV(PL_defgv); GvAV(PL_defgv) = (AV*)SvREFCNT_inc(av); |