SV *sv;
for (;;) {
- sv = NEWSV(56, 80);
+ sv = NEWSV(56, 79);
if (sv_gets(sv, fp, 0) == Nullch) {
SvREFCNT_dec(sv);
break;
if(tmpsv ? SvROK(tmpsv) : SvROK(error)) {
if(tmpsv)
SvSetSV(error,tmpsv);
+ else if(sv_isobject(error)) {
+ HV *stash = SvSTASH(SvRV(error));
+ GV *gv = gv_fetchmethod(stash, "PROPAGATE");
+ if (gv) {
+ SV *file = sv_2mortal(newSVsv(GvSV(curcop->cop_filegv)));
+ SV *line = sv_2mortal(newSViv(curcop->cop_line));
+ EXTEND(SP, 3);
+ PUSHMARK(SP);
+ PUSHs(error);
+ PUSHs(file);
+ PUSHs(line);
+ PUTBACK;
+ perl_call_sv((SV*)GvCV(gv),
+ G_SCALAR|G_EVAL|G_KEEPERR);
+ sv_setsv(error,*stack_sp--);
+ }
+ }
pat = Nullch;
}
else {
TAINT_PROPER("umask");
XPUSHi(anum);
#else
- XPUSHs(&sv_undef)
+ XPUSHs(&sv_undef);
#endif
RETURN;
}
{
djSP;
SV * sv ;
- sv = POPs;
+
+ sv = POPs;
if (dowarn) {
MAGIC * mg ;
return pp_sysread(ARGS);
}
-static OP *
+STATIC OP *
doform(CV *cv, GV *gv, OP *retop)
{
dTHR;
if (optype == OP_IOCTL)
#ifdef HAS_IOCTL
- retval = ioctl(PerlIO_fileno(IoIFP(io)), func, s);
+ retval = PerlLIO_ioctl(PerlIO_fileno(IoIFP(io)), func, s);
#else
DIE("ioctl is not implemented");
#endif
fp = Nullfp;
if (fp) {
(void)PerlIO_flush(fp);
- value = (I32)(FLOCK(PerlIO_fileno(fp), argtype) >= 0);
+ value = (I32)(PerlLIO_flock(PerlIO_fileno(fp), argtype) >= 0);
}
else
value = 0;
buf = SvPV(sv, na);
len = na;
}
- else if (SvOK(sv)) {
+ else {
aint = (int)SvIV(sv);
buf = (char*)&aint;
len = sizeof(int);
EXTEND(SP, 4);
#ifndef VMS
- (void)times(×buf);
+ (void)PerlProc_times(×buf);
#else
- (void)times((tbuffer_t *)×buf); /* time.h uses different name for */
- /* struct tms, though same data */
- /* is returned. */
+ (void)PerlProc_times((tbuffer_t *)×buf); /* time.h uses different name for */
+ /* struct tms, though same data */
+ /* is returned. */
#endif
PUSHs(sv_2mortal(newSVnv(((double)timesbuf.tms_utime)/HZ)));
(void)time(&lasttime);
if (MAXARG < 1)
- Pause();
+ PerlProc_pause();
else {
duration = POPi;
- sleep((unsigned int)duration);
+ PerlProc_sleep((unsigned int)duration);
}
(void)time(&when);
XPUSHi(when - lasttime);
}
PUSHs(sv = sv_mortalcopy(&sv_no));
#ifdef HAS_NTOHS
- sv_setiv(sv, (IV)ntohs(sent->s_port));
+ sv_setiv(sv, (IV)PerlSock_ntohs(sent->s_port));
#else
sv_setiv(sv, (IV)(sent->s_port));
#endif
{
djSP;
#ifdef HAS_SETHOSTENT
- sethostent(TOPi);
+ PerlSock_sethostent(TOPi);
RETSETYES;
#else
DIE(no_sock_func, "sethostent");
{
djSP;
#ifdef HAS_SETNETENT
- setnetent(TOPi);
+ PerlSock_setnetent(TOPi);
RETSETYES;
#else
DIE(no_sock_func, "setnetent");
{
djSP;
#ifdef HAS_SETPROTOENT
- setprotoent(TOPi);
+ PerlSock_setprotoent(TOPi);
RETSETYES;
#else
DIE(no_sock_func, "setprotoent");
{
djSP;
#ifdef HAS_SETSERVENT
- setservent(TOPi);
+ PerlSock_setservent(TOPi);
RETSETYES;
#else
DIE(no_sock_func, "setservent");
sv_setpv(sv, pwent->pw_gecos);
#endif
#ifndef INCOMPLETE_TAINTS
- /* pw_gecos is tainted. */
+ /* pw_gecos is tainted because user himself can diddle with it. */
SvTAINTED_on(sv);
#endif
#ifdef HAS_GETLOGIN
char *tmps;
EXTEND(SP, 1);
- if (!(tmps = getlogin()))
+ if (!(tmps = PerlProc_getlogin()))
RETPUSHUNDEF;
PUSHp(tmps, strlen(tmps));
RETURN;
PP(pp_syscall)
{
-#ifdef HAS_SYSCALL
+#ifdef HAS_SYSCALL
djSP; dMARK; dORIGMARK; dTARGET;
register I32 items = SP - MARK;
unsigned long a[20];
}
#endif /* LOCKF_EMULATE_FLOCK */
-