Add taint rethink to the todo list.
[p5sagit/p5-mst-13.2.git] / iperlsys.h
index b2b2172..de45ff1 100644 (file)
@@ -88,13 +88,19 @@ typedef void                (*LPSetBuf)(struct IPerlStdIO*, FILE*, char*);
 typedef int            (*LPSetVBuf)(struct IPerlStdIO*, FILE*, char*, int,
                            Size_t);
 typedef void           (*LPSetCnt)(struct IPerlStdIO*, FILE*, int);
+
+#ifndef NETWARE
 typedef void           (*LPSetPtr)(struct IPerlStdIO*, FILE*, char*);
+#elif defined(NETWARE)
+typedef void           (*LPSetPtr)(struct IPerlStdIO*, FILE*, char*, int);
+#endif
+
 typedef void           (*LPSetlinebuf)(struct IPerlStdIO*, FILE*);
 typedef int            (*LPPrintf)(struct IPerlStdIO*, FILE*, const char*,
                            ...);
 typedef int            (*LPVprintf)(struct IPerlStdIO*, FILE*, const char*,
                            va_list);
-typedef long           (*LPTell)(struct IPerlStdIO*, FILE*);
+typedef Off_t          (*LPTell)(struct IPerlStdIO*, FILE*);
 typedef int            (*LPSeek)(struct IPerlStdIO*, FILE*, Off_t, int);
 typedef void           (*LPRewind)(struct IPerlStdIO*, FILE*);
 typedef FILE*          (*LPTmpfile)(struct IPerlStdIO*);
@@ -275,9 +281,16 @@ struct IPerlStdIOInfo
 #define PerlSIO_stdout                 stdout
 #define PerlSIO_stderr                 stderr
 #define PerlSIO_fopen(x,y)             fopen(x,y)
+#ifdef __VOS__
+/* Work around VOS bug posix-979, wrongly setting errno when at end of file. */
+#define PerlSIO_fclose(f)              (((errno==1025)?errno=0:0),fclose(f))
+#define PerlSIO_feof(f)                        (((errno==1025)?errno=0:0),feof(f))
+#define PerlSIO_ferror(f)              (((errno==1025)?errno=0:0),ferror(f))
+#else
 #define PerlSIO_fclose(f)              fclose(f)
 #define PerlSIO_feof(f)                        feof(f)
 #define PerlSIO_ferror(f)              ferror(f)
+#endif
 #define PerlSIO_clearerr(f)            clearerr(f)
 #define PerlSIO_fgetc(f)                       fgetc(f)
 #ifdef FILE_base
@@ -590,15 +603,15 @@ typedef int               (*LPLIOClose)(struct IPerlLIO*, int);
 typedef int            (*LPLIODup)(struct IPerlLIO*, int);
 typedef int            (*LPLIODup2)(struct IPerlLIO*, int, int);
 typedef int            (*LPLIOFlock)(struct IPerlLIO*, int, int);
-typedef int            (*LPLIOFileStat)(struct IPerlLIO*, int, struct stat*);
+typedef int            (*LPLIOFileStat)(struct IPerlLIO*, int, Stat_t*);
 typedef int            (*LPLIOIOCtl)(struct IPerlLIO*, int, unsigned int,
                            char*);
 typedef int            (*LPLIOIsatty)(struct IPerlLIO*, int);
 typedef int            (*LPLIOLink)(struct IPerlLIO*, const char*,
                                     const char *);
-typedef long           (*LPLIOLseek)(struct IPerlLIO*, int, long, int);
+typedef Off_t          (*LPLIOLseek)(struct IPerlLIO*, int, Off_t, int);
 typedef int            (*LPLIOLstat)(struct IPerlLIO*, const char*,
-                           struct stat*);
+                           Stat_t*);
 typedef char*          (*LPLIOMktemp)(struct IPerlLIO*, char*);
 typedef int            (*LPLIOOpen)(struct IPerlLIO*, const char*, int);       
 typedef int            (*LPLIOOpen3)(struct IPerlLIO*, const char*, int, int); 
@@ -611,7 +624,7 @@ typedef int         (*LPLIOSetmode)(struct IPerlLIO*, FILE*, int);
 typedef int            (*LPLIOSetmode)(struct IPerlLIO*, int, int);
 #endif /* NETWARE */
 typedef int            (*LPLIONameStat)(struct IPerlLIO*, const char*,
-                           struct stat*);
+                           Stat_t*);
 typedef char*          (*LPLIOTmpnam)(struct IPerlLIO*, char*);
 typedef int            (*LPLIOUmask)(struct IPerlLIO*, int);
 typedef int            (*LPLIOUnlink)(struct IPerlLIO*, const char*);