Change files which are mysteriously different to mainline to be
[p5sagit/p5-mst-13.2.git] / iperlsys.h
index 7b20d5d..caca9df 100644 (file)
@@ -120,7 +120,7 @@ typedef void                (*LPSetCnt)(struct IPerlStdIO*, PerlIO*, int);
 typedef void           (*LPSetPtrCnt)(struct IPerlStdIO*, PerlIO*, char*,
                            int);
 typedef void           (*LPSetlinebuf)(struct IPerlStdIO*, PerlIO*);
-typedef int            (*LPPrintf)(struct IPerlStdIO*, PerlIO*, const char*, 
+typedef int            (*LPPrintf)(struct IPerlStdIO*, PerlIO*, const char*,
                            ...);
 typedef int            (*LPVprintf)(struct IPerlStdIO*, PerlIO*, const char*,
                            va_list);
@@ -185,14 +185,20 @@ struct IPerlStdIOInfo
 };
 
 #ifdef USE_STDIO_PTR
-#  define PerlIO_has_cntptr(f)         1       
-#  ifdef STDIO_CNT_LVALUE
-#    define PerlIO_canset_cnt(f)       1      
-#    ifdef STDIO_PTR_LVALUE
-#      define PerlIO_fast_gets(f)      1        
+#  define PerlIO_has_cntptr(f)         1
+#  ifdef STDIO_PTR_LVALUE
+#    ifdef  STDIO_CNT_LVALUE
+#      define PerlIO_canset_cnt(f)     1
+#      ifdef STDIO_PTR_LVAL_NOCHANGE_CNT
+#        define PerlIO_fast_gets(f)    1
+#      endif
+#    else /* STDIO_CNT_LVALUE */
+#      define PerlIO_canset_cnt(f)     0
+#    endif
+#  else /* STDIO_PTR_LVALUE */
+#    ifdef STDIO_PTR_LVAL_SETS_CNT
+#      define PerlIO_fast_gets(f)      1
 #    endif
-#  else
-#    define PerlIO_canset_cnt(f)       0      
 #  endif
 #else  /* USE_STDIO_PTR */
 #  define PerlIO_has_cntptr(f)         0
@@ -200,7 +206,7 @@ struct IPerlStdIOInfo
 #endif /* USE_STDIO_PTR */
 
 #ifndef PerlIO_fast_gets
-#define PerlIO_fast_gets(f)            0        
+#define PerlIO_fast_gets(f)            0
 #endif
 
 #ifdef FILE_base
@@ -268,7 +274,7 @@ struct IPerlStdIOInfo
 #define PerlIO_printf          Perl_fprintf_nocontext
 #define PerlIO_stdoutf         *PL_StdIO->pPrintf
 #define PerlIO_vprintf(f,fmt,a)                                                \
-       (*PL_StdIO->pVprintf)(PL_StdIO, (f),(fmt),a)          
+       (*PL_StdIO->pVprintf)(PL_StdIO, (f),(fmt),a)
 #define PerlIO_tell(f)                                                 \
        (*PL_StdIO->pTell)(PL_StdIO, (f))
 #define PerlIO_seek(f,o,w)                                             \
@@ -325,8 +331,8 @@ struct IPerlStdIOInfo
 #endif
 
 #ifndef PerlIO
-struct _PerlIO;
-#define PerlIO struct _PerlIO
+typedef struct _PerlIO PerlIO;
+#define PerlIO PerlIO
 #endif /* No PerlIO */
 
 #ifndef Fpos_t
@@ -551,8 +557,8 @@ struct IPerlDirInfo
 
 #define PerlDir_mkdir(name, mode)      Mkdir((name), (mode))
 #ifdef VMS
-#  define PerlDir_chdir(n)             chdir(((n) && *(n)) ? (n) : "SYS$LOGIN")
-#else 
+#  define PerlDir_chdir(n)             Chdir(((n) && *(n)) ? (n) : "SYS$LOGIN")
+#else
 #  define PerlDir_chdir(name)          chdir((name))
 #endif
 #define PerlDir_rmdir(name)            rmdir((name))
@@ -595,8 +601,10 @@ typedef char*              (*LPENVGetenv_len)(struct IPerlEnv*,
 #endif
 #ifdef WIN32
 typedef unsigned long  (*LPEnvOsID)(struct IPerlEnv*);
-typedef char*          (*LPEnvLibPath)(struct IPerlEnv*, char*);
-typedef char*          (*LPEnvSiteLibPath)(struct IPerlEnv*, char*);
+typedef char*          (*LPEnvLibPath)(struct IPerlEnv*, const char*);
+typedef char*          (*LPEnvSiteLibPath)(struct IPerlEnv*, const char*);
+typedef char*          (*LPEnvVendorLibPath)(struct IPerlEnv*, const char*);
+typedef void           (*LPEnvGetChildIO)(struct IPerlEnv*, child_IO_table*);
 #endif
 
 struct IPerlEnv
@@ -618,6 +626,8 @@ struct IPerlEnv
     LPEnvOsID          pEnvOsID;
     LPEnvLibPath       pLibPath;
     LPEnvSiteLibPath   pSiteLibPath;
+    LPEnvVendorLibPath pVendorLibPath;
+    LPEnvGetChildIO    pGetChildIO;
 #endif
 };
 
@@ -663,6 +673,10 @@ struct IPerlEnvInfo
        (*PL_Env->pLibPath)(PL_Env,(str))
 #define PerlEnv_sitelib_path(str)                              \
        (*PL_Env->pSiteLibPath)(PL_Env,(str))
+#define PerlEnv_vendorlib_path(str)                            \
+       (*PL_Env->pVendorLibPath)(PL_Env,(str))
+#define PerlEnv_get_child_IO(ptr)                              \
+       (*PL_Env->pGetChildIO)(PL_Env, ptr)
 #endif
 
 #else  /* PERL_IMPLICIT_SYS */
@@ -686,6 +700,10 @@ struct IPerlEnvInfo
 
 #ifdef WIN32
 #define PerlEnv_os_id()                        win32_os_id()
+#define PerlEnv_lib_path(str)          win32_get_privlib(str)
+#define PerlEnv_sitelib_path(str)      win32_get_sitelib(str)
+#define PerlEnv_vendorlib_path(str)    win32_get_vendorlib(str)
+#define PerlEnv_get_child_IO(ptr)      win32_get_child_IO(ptr)
 #endif
 
 #endif /* PERL_IMPLICIT_SYS */
@@ -1244,7 +1262,7 @@ typedef int               (*LPRecvfrom)(struct IPerlSock*, SOCKET, char*, int,
 typedef int            (*LPSelect)(struct IPerlSock*, int, char*, char*,
                            char*, const struct timeval*);
 typedef int            (*LPSend)(struct IPerlSock*, SOCKET, const char*, int,
-                           int); 
+                           int);
 typedef int            (*LPSendto)(struct IPerlSock*, SOCKET, const char*,
                            int, int, const struct sockaddr*, int);
 typedef void           (*LPSethostent)(struct IPerlSock*, int);