/* doio.c
*
- * Copyright (c) 1991-1997, Larry Wall
+ * Copyright (c) 1991-1999, Larry Wall
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
int filedev;
int fileino;
#endif
- int fileuid;
- int filegid;
+ Uid_t fileuid;
+ Gid_t filegid;
if (!PL_argvoutgv)
PL_argvoutgv = gv_fetchpv("ARGVOUT",TRUE,SVt_PVIO);
struct utimbuf utbuf;
#else
struct {
- long actime;
- long modtime;
+ Time_t actime;
+ Time_t modtime;
} utbuf;
#endif
Zero(&utbuf, sizeof utbuf, char);
#ifdef BIG_TIME
- utbuf.actime = (Time_t)SvNVx(*++mark); /* time accessed */
- utbuf.modtime = (Time_t)SvNVx(*++mark); /* time modified */
+ utbuf.actime = (Time_t)SvNVx(*++mark); /* time accessed */
+ utbuf.modtime = (Time_t)SvNVx(*++mark); /* time modified */
#else
- utbuf.actime = SvIVx(*++mark); /* time accessed */
- utbuf.modtime = SvIVx(*++mark); /* time modified */
+ utbuf.actime = (Time_t)SvIVx(*++mark); /* time accessed */
+ utbuf.modtime = (Time_t)SvIVx(*++mark); /* time modified */
#endif
APPLY_TAINT_PROPER();
tot = sp - mark;
#endif
#ifdef HAS_SEM
case OP_SEMCTL:
+#ifdef Semctl
if (cmd == IPC_STAT || cmd == IPC_SET)
infosize = sizeof(struct semid_ds);
else if (cmd == GETALL || cmd == SETALL)
/* "short" is technically wrong but much more portable
than guessing about u_?short(_t)? */
}
+#else
+ croak("%s not implemented", PL_op_desc[optype]);
+#endif
break;
#endif
#if !defined(HAS_MSG) || !defined(HAS_SEM) || !defined(HAS_SHM)
#endif
#ifdef HAS_SEM
case OP_SEMCTL: {
+#ifdef Semctl
union semun unsemds;
unsemds.buf = (struct semid_ds *)a;
ret = Semctl(id, n, cmd, unsemds);
+#else
+ croak("%s not implemented", PL_op_desc[optype]);
+#endif
}
break;
#endif
msize = SvIVx(*++mark);
mtype = (long)SvIVx(*++mark);
flags = SvIVx(*++mark);
- if (SvTHINKFIRST(mstr)) {
- if (SvREADONLY(mstr))
- croak("Can't msgrcv to readonly var");
- if (SvROK(mstr))
- sv_unref(mstr);
- }
SvPV_force(mstr, len);
mbuf = SvGROW(mstr, sizeof(long)+msize+1);