diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2001-11-19 13:28:22 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-11-19 13:28:22 +0000 |
commit | 209030dfb82e17eb9572fa3fbdde2effbf80b651 (patch) | |
tree | 886050bd4e525a2f21153347fc100bb1067a641b /vms | |
parent | b2fc0eb55db5fd3e1d846d223b17558599f6decb (diff) | |
download | perl-209030dfb82e17eb9572fa3fbdde2effbf80b651.tar.gz |
do_spawn() cleanup from Charles Lane.
p4raw-id: //depot/perl@13087
Diffstat (limited to 'vms')
-rw-r--r-- | vms/vms.c | 41 |
1 files changed, 18 insertions, 23 deletions
@@ -5101,36 +5101,34 @@ Perl_do_aspawn(pTHX_ void *really,void **mark,void **sp) unsigned long int Perl_do_spawn(pTHX_ char *cmd) { - unsigned long int sts, substs, hadcmd = 1; + unsigned long int sts, substs; TAINT_ENV(); TAINT_PROPER("spawn"); if (!cmd || !*cmd) { - hadcmd = 0; sts = lib$spawn(0,0,0,0,0,0,&substs,0,0,0,0,0,0); if (!(sts & 1)) { switch (sts) { - case RMS$_FNF: case RMS$_DNF: - set_errno(ENOENT); break; - case RMS$_DIR: - set_errno(ENOTDIR); break; - case RMS$_DEV: - set_errno(ENODEV); break; - case RMS$_PRV: - set_errno(EACCES); break; - case RMS$_SYN: - set_errno(EINVAL); break; - case CLI$_BUFOVF: case RMS$_RTB: case CLI$_TKNOVF: case CLI$_RSLOVF: - set_errno(E2BIG); break; - case LIB$_INVARG: case LIB$_INVSTRDES: case SS$_ACCVIO: /* shouldn't happen */ - _ckvmssts(sts); /* fall through */ - default: /* SS$_DUPLNAM, SS$_CLI, resource exhaustion, etc. */ - set_errno(EVMSERR); + case RMS$_FNF: case RMS$_DNF: + set_errno(ENOENT); break; + case RMS$_DIR: + set_errno(ENOTDIR); break; + case RMS$_DEV: + set_errno(ENODEV); break; + case RMS$_PRV: + set_errno(EACCES); break; + case RMS$_SYN: + set_errno(EINVAL); break; + case CLI$_BUFOVF: case RMS$_RTB: case CLI$_TKNOVF: case CLI$_RSLOVF: + set_errno(E2BIG); break; + case LIB$_INVARG: case LIB$_INVSTRDES: case SS$_ACCVIO: /* shouldn't happen */ + _ckvmssts(sts); /* fall through */ + default: /* SS$_DUPLNAM, SS$_CLI, resource exhaustion, etc. */ + set_errno(EVMSERR); } set_vaxc_errno(sts); if (ckWARN(WARN_EXEC)) { - Perl_warner(aTHX_ WARN_EXEC,"Can't spawn \"%s\": %s", - hadcmd ? cmd : "", + Perl_warner(aTHX_ WARN_EXEC,"Can't spawn: %s", Strerror(errno)); } } @@ -5139,10 +5137,7 @@ Perl_do_spawn(pTHX_ char *cmd) else { (void) safe_popen(cmd, "nW", (int *)&sts); } - - vms_execfree(aTHX); return sts; - } /* end of do_spawn() */ /*}}}*/ |