diff options
author | Nicholas Clark <nick@ccl4.org> | 2005-11-02 20:59:52 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2005-11-02 20:59:52 +0000 |
commit | 1444765efaefee475386d81c393f3e679a455714 (patch) | |
tree | 085216fc6a0c1db1f4e7757ada983e7e81bb4a9b | |
parent | 17ad201a5d2de952269cf4eeb85881a49a9c3867 (diff) | |
download | perl-1444765efaefee475386d81c393f3e679a455714.tar.gz |
Move the conditonal compiles that report absence of kill and chown
from pp_kill() and pp_chown() into apply().
p4raw-id: //depot/perl@25963
-rw-r--r-- | doio.c | 13 | ||||
-rw-r--r-- | pp_sys.c | 8 |
2 files changed, 13 insertions, 8 deletions
@@ -1572,6 +1572,19 @@ Perl_apply(pTHX_ I32 type, register SV **mark, register SV **sp) const char *s; SV ** const oldmark = mark; + /* Doing this ahead of the switch statement preserves the old behaviour, + where attempting to use kill as a taint test test would fail on + platforms where kill was not defined. */ +#ifndef HAS_KILL + if (type == OP_KILL) + DIE(aTHX_ PL_no_func, "kill"); +#endif +#ifndef HAS_CHOWN + if (type == OP_CHOWN) + DIE(aTHX_ PL_no_func, "chown"); +#endif + + #define APPLY_TAINT_PROPER() \ STMT_START { \ if (PL_tainted) { TAINT_PROPER(what); } \ @@ -3455,16 +3455,12 @@ PP(pp_chdir) PP(pp_chown) { -#ifdef HAS_CHOWN dSP; dMARK; dTARGET; I32 value = (I32)apply(PL_op->op_type, MARK, SP); SP = MARK; PUSHi(value); RETURN; -#else - DIE(aTHX_ PL_no_func, "chown"); -#endif } PP(pp_chroot) @@ -4216,16 +4212,12 @@ PP(pp_exec) PP(pp_kill) { -#ifdef HAS_KILL dSP; dMARK; dTARGET; I32 value; value = (I32)apply(PL_op->op_type, MARK, SP); SP = MARK; PUSHi(value); RETURN; -#else - DIE(aTHX_ PL_no_func, "kill"); -#endif } PP(pp_getppid) |