Re: Uninitialised error from -M()
Stephen McCamant [Fri, 29 May 1998 23:52:26 +0000 (18:52 -0500)]
Message-Id: <m0yfdd4-000Eb2C@alias-2.pr.mcs.net>

p4raw-id: //depot/perl@1089

op.c
t/op/stat.t

diff --git a/op.c b/op.c
index 4db69c2..61001a4 100644 (file)
--- a/op.c
+++ b/op.c
@@ -4121,7 +4121,7 @@ ck_ftst(OP *o)
     if (o->op_flags & OPf_REF)
        return o;
 
-    if (o->op_flags & OPf_KIDS) {
+    if (o->op_flags & OPf_KIDS && cUNOPo->op_first->op_type != OP_STUB) {
        SVOP *kid = (SVOP*)cUNOPo->op_first;
 
        if (kid->op_type == OP_CONST && (kid->op_private & OPpCONST_BARE)) {
index c7cd096..4a2b4be 100755 (executable)
@@ -9,7 +9,7 @@ BEGIN {
 
 use Config;
 
-print "1..56\n";
+print "1..58\n";
 
 $Is_MSWin32 = $^O eq 'MSWin32';
 $Is_Dos = $^O eq 'dos';
@@ -109,8 +109,8 @@ else {
 if (-o 'Op.stat.tmp') {print "ok 26\n";} else {print "not ok 26\n";}
 
 if (-e 'Op.stat.tmp') {print "ok 27\n";} else {print "not ok 27\n";}
-unlink 'Op.stat.tmp', 'Op.stat.tmp2';
-if (! -e 'Op.stat.tmp') {print "ok 28\n";} else {print "not ok 28\n";}
+unlink 'Op.stat.tmp2';
+if (! -e 'Op.stat.tmp2') {print "ok 28\n";} else {print "not ok 28\n";}
 
 if ($Is_MSWin32 || $Is_Dos)
     {print "ok 29\n";}
@@ -234,3 +234,10 @@ close(FOO);
 
 if (-T '/dev/null') {print "ok 55\n";} else {print "not ok 55\n";}
 if (-B '/dev/null') {print "ok 56\n";} else {print "not ok 56\n";}
+
+# and now, a few parsing tests:
+$_ = 'Op.stat.tmp';
+if (-f) {print "ok 57\n";} else {print "not ok 57\n";}
+if (-f()) {print "ok 58\n";} else {print "not ok 58\n";}
+
+unlink 'Op.stat.tmp';