}
if (as_raw) {
+#if defined(O_LARGEFILE)
+ rawmode |= O_LARGEFILE;
+#endif
+
#ifndef O_ACCMODE
#define O_ACCMODE 3 /* Assume traditional implementation */
#endif
+
switch (result = rawmode & O_ACCMODE) {
case O_RDONLY:
IoTYPE(io) = '<';
TAINT_ENV();
TAINT_PROPER("piped open");
if (name[strlen(name)-1] == '|') {
+ dTHR;
name[strlen(name)-1] = '\0' ;
if (ckWARN(WARN_PIPE))
warner(WARN_PIPE, "Can't do bidirectional pipe");
}
}
if (!fp) {
+ dTHR;
if (ckWARN(WARN_NEWLINE) && IoTYPE(io) == '<' && strchr(name, '\n'))
warner(WARN_NEWLINE, warn_nl, "open");
goto say_false;
io = GvIO(gv);
if (!io) { /* never opened */
if (not_implicit) {
+ dTHR;
if (ckWARN(WARN_UNOPENED))
warner(WARN_UNOPENED,
"Close on unopened file <%s>",GvENAME(gv));
return TRUE;
}
-long
+Off_t
do_tell(GV *gv)
{
register IO *io;
#endif
return PerlIO_tell(fp);
}
- if (ckWARN(WARN_UNOPENED))
- warner(WARN_UNOPENED, "tell() on unopened file");
+ {
+ dTHR;
+ if (ckWARN(WARN_UNOPENED))
+ warner(WARN_UNOPENED, "tell() on unopened file");
+ }
SETERRNO(EBADF,RMS$_IFI);
- return -1L;
+ return (Off_t)-1;
}
bool
-do_seek(GV *gv, long int pos, int whence)
+do_seek(GV *gv, Off_t pos, int whence)
{
register IO *io;
register PerlIO *fp;
#endif
return PerlIO_seek(fp, pos, whence) >= 0;
}
- if (ckWARN(WARN_UNOPENED))
- warner(WARN_UNOPENED, "seek() on unopened file");
+ {
+ dTHR;
+ if (ckWARN(WARN_UNOPENED))
+ warner(WARN_UNOPENED, "seek() on unopened file");
+ }
SETERRNO(EBADF,RMS$_IFI);
return FALSE;
}
-long
-do_sysseek(GV *gv, long int pos, int whence)
+Off_t
+do_sysseek(GV *gv, Off_t pos, int whence)
{
register IO *io;
register PerlIO *fp;
if (gv && (io = GvIO(gv)) && (fp = IoIFP(io)))
return PerlLIO_lseek(PerlIO_fileno(fp), pos, whence);
- if (ckWARN(WARN_UNOPENED))
- warner(WARN_UNOPENED, "sysseek() on unopened file");
+ {
+ dTHR;
+ if (ckWARN(WARN_UNOPENED))
+ warner(WARN_UNOPENED, "sysseek() on unopened file");
+ }
SETERRNO(EBADF,RMS$_IFI);
return -1L;
}
}
switch (SvTYPE(sv)) {
case SVt_NULL:
- if (ckWARN(WARN_UNINITIALIZED))
- warner(WARN_UNINITIALIZED, warn_uninit);
+ {
+ dTHR;
+ if (ckWARN(WARN_UNINITIALIZED))
+ warner(WARN_UNINITIALIZED, warn_uninit);
+ }
return TRUE;
case SVt_IV:
if (SvIOK(sv)) {
do_execfree();
goto doshell;
}
- if (ckWARN(WARN_EXEC))
- warner(WARN_EXEC, "Can't exec \"%s\": %s",
- PL_Argv[0], Strerror(errno));
+ {
+ dTHR;
+ if (ckWARN(WARN_EXEC))
+ warner(WARN_EXEC, "Can't exec \"%s\": %s",
+ PL_Argv[0], Strerror(errno));
+ }
}
do_execfree();
return FALSE;