summaryrefslogtreecommitdiff
path: root/perlsdio.h
diff options
context:
space:
mode:
Diffstat (limited to 'perlsdio.h')
-rw-r--r--perlsdio.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/perlsdio.h b/perlsdio.h
index 9825f8ed92..a539a0a3d9 100644
--- a/perlsdio.h
+++ b/perlsdio.h
@@ -55,7 +55,12 @@
#define PerlIO_clearerr(f) clearerr(f)
#define PerlIO_flush(f) Fflush(f)
#define PerlIO_tell(f) ftell(f)
-#define PerlIO_seek(f,o,w) fseek(f,o,w)
+#if defined(VMS) && !defined(__DECC)
+ /* Old VAXC RTL doesn't reset EOF on seek; Perl folk seem to expect this */
+# define PerlIO_seek(f,o,w) (((f) && (*f) && ((*f)->_flag &= ~_IOEOF)),fseek(f,o,w))
+#else
+# define PerlIO_seek(f,o,w) fseek(f,o,w)
+#endif
#ifdef HAS_FGETPOS
#define PerlIO_getpos(f,p) fgetpos(f,p)
#endif