sv_setpvn(sv,PL_oldname,oldlen);
SETERRNO(0,0); /* in case sprintf set errno */
- if (!do_open(PL_argvoutgv,(char*)SvPVX_const(sv),SvCUR(sv),TRUE,
+ if (!Perl_do_openn(aTHX_ PL_argvoutgv, (char*)SvPVX_const(sv),
+ SvCUR(sv), TRUE,
#ifdef VMS
- O_WRONLY|O_CREAT|O_TRUNC,0,
+ O_WRONLY|O_CREAT|O_TRUNC,0,
#else
- O_WRONLY|O_CREAT|OPEN_EXCL,0600,
+ O_WRONLY|O_CREAT|OPEN_EXCL,0600,
#endif
- NULL))
- {
+ NULL, NULL, 0)) {
if (ckWARN_d(WARN_INPLACE))
Perl_warner(aTHX_ packWARN(WARN_INPLACE), "Can't do inplace edit on %s: %s",
PL_oldname, Strerror(errno) );
{
dVAR;
const key_t key = (key_t)SvNVx(*++mark);
- const I32 n = (optype == OP_MSGGET) ? 0 : SvIVx(*++mark);
+ SV *nsv = optype == OP_MSGGET ? NULL : *++mark;
const I32 flags = SvIVx(*++mark);
PERL_ARGS_ASSERT_DO_IPCGET;
#endif
#ifdef HAS_SEM
case OP_SEMGET:
- return semget(key, n, flags);
+ return semget(key, (int) SvIV(nsv), flags);
#endif
#ifdef HAS_SHM
case OP_SHMGET:
- return shmget(key, n, flags);
+ return shmget(key, (size_t) SvUV(nsv), flags);
#endif
#if !defined(HAS_MSG) || !defined(HAS_SEM) || !defined(HAS_SHM)
default: