Change 34660 by [EMAIL PROTECTED] on 2008/10/30 11:29:50
The file test operators -s, -A, -C and -M can return false values
that are not undef or "no". Take that into account when stacking them.
This fixes bug #60214.
Affected files ...
... //depot/perl/pp_sys.c#567 edit
Differences ...
==== //depot/perl/pp_sys.c#567 (text) ====
Index: perl/pp_sys.c
--- perl/pp_sys.c#566~34654~ 2008-10-29 16:20:01.000000000 -0700
+++ perl/pp_sys.c 2008-10-30 04:29:50.000000000 -0700
@@ -2940,7 +2940,7 @@
* Else, discard it from the stack and continue. --rgs
*/
#define STACKED_FTEST_CHECK if (PL_op->op_private & OPpFT_STACKED) { \
- if (TOPs == &PL_sv_no || TOPs == &PL_sv_undef) { RETURN; } \
+ if (!SvTRUE(TOPs)) { RETURN; } \
else { (void)POPs; PUTBACK; } \
}
End of Patch.