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 '';
@EXPORT = qw(expand unexpand $tabstop);
use vars qw($VERSION $tabstop $debug);
-$VERSION = 96.121201;
+$VERSION = 98.112801;
use strict;
sub expand
{
- my @l = @_;
+ my (@l) = @_;
for $_ (@l) {
1 while s/(^|\n)([^\t\n]*)(\t+)/
$1. $2 . (" " x
sub unexpand
{
- my @l = @_;
+ my (@l) = @_;
my @e;
my $x;
my $line;
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;
"%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);