Update Changes.
[p5sagit/p5-mst-13.2.git] / perlsdio.h
index 4b86634..0d6612b 100644 (file)
 #define PerlIO_open                    fopen
 #define PerlIO_fdopen                  fdopen
 #define PerlIO_reopen                  freopen
-#define PerlIO_close(f)                        fclose(f)
+#ifdef SOCKS_64BIT_BUG
+#  define PerlIO_close(f)              (Perl_do_s64_delete_buffer(f), fclose(f))
+#else
+#  define PerlIO_close(f)              fclose(f)
+#endif
 #define PerlIO_puts(f,s)               fputs(s,f)
 #define PerlIO_putc(f,c)               fputc(c,f)
 #if defined(VMS)
                (feof(f) ? EOF : getc(f))
 #  define PerlIO_read(f,buf,count) \
                (feof(f) ? 0 : (SSize_t)fread(buf,1,count,f))
+#  define PerlIO_tell(f)               ftell(f)
 #else
-#  define PerlIO_ungetc(f,c)           ungetc(c,f)
-#  define PerlIO_getc(f)               getc(f)
-#  define PerlIO_read(f,buf,count)     (SSize_t)fread(buf,1,count,f)
+#  ifdef SOCKS_64BIT_BUG
+#    define PerlIO_getc(f)             Perl_do_s64_getc(f)
+#    define PerlIO_ungetc(f,c)         Perl_do_s64_ungetc(c,f)
+#    define PerlIO_read(f,buf,count)   Perl_do_s64_fread(buf,count,f)
+#    define PerlIO_tell(f)             Perl_do_s64_tell(f)
+#  else
+#    define PerlIO_getc(f)             getc(f)
+#    define PerlIO_ungetc(f,c)         ungetc(c,f)
+#    define PerlIO_read(f,buf,count)   (SSize_t)fread(buf,1,count,f)
+#    define PerlIO_tell(f)             ftell(f)
+#  endif /* SOCKS_64BIT_BUG */
 #endif
 #define PerlIO_eof(f)                  feof(f)
 #define PerlIO_getname(f,b)            fgetname(f,b)
 #define PerlIO_fileno(f)               fileno(f)
 #define PerlIO_clearerr(f)             clearerr(f)
 #define PerlIO_flush(f)                        Fflush(f)
-#define PerlIO_tell(f)                 ftell(f)
-#if defined(VMS) && !defined(__DECC)
+#ifdef SOCKS_64BIT_BUG
+#  define PerlIO_seek(f,o,w)           Perl_do_s64_seek(f,o,w)
+#else
+#  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)
+#  else
+#    define PerlIO_seek(f,o,w)         fseek(f,o,w)
+#  endif
 #endif
 #ifdef HAS_FGETPOS
 #define PerlIO_getpos(f,p)             fgetpos(f,p)