More PERL_POISON - poison SvANY() and SvREFCNT() in freed SV heads.
[p5sagit/p5-mst-13.2.git] / win32 / win32.h
index d1c2325..8f5b27d 100644 (file)
@@ -140,6 +140,8 @@ struct utsname {
 #endif
 #define ENV_IS_CASELESS
 
+#define PIPESOCK_MODE  "b"             /* pipes, sockets default to binmode */
+
 #ifndef VER_PLATFORM_WIN32_WINDOWS     /* VC-2.0 headers don't have this */
 #define VER_PLATFORM_WIN32_WINDOWS     1
 #endif
@@ -273,6 +275,7 @@ extern  int mkstemp(const char *path);
 #define  init_os_extras Perl_init_os_extras
 
 DllExport void         Perl_win32_init(int *argcp, char ***argvp);
+DllExport void         Perl_win32_term(void);
 DllExport void         Perl_init_os_extras(void);
 DllExport void         win32_str_os_error(void *sv, DWORD err);
 DllExport int          RunPerl(int argc, char **argv, char **env);
@@ -355,9 +358,6 @@ struct thread_intern {
     char               Wstrerror_buffer[512];
     struct servent     Wservent;
     char               Wgetlogin_buffer[128];
-#    ifdef USE_SOCKETS_AS_HANDLES
-    int                        Winit_socktype;
-#    endif
 #    ifdef HAVE_DES_FCRYPT
     char               Wcrypt_buffer[30];
 #    endif
@@ -424,26 +424,9 @@ DllExport int win32_async_check(pTHX);
 #define w32_getlogin_buffer    (PL_sys_intern.thr_intern.Wgetlogin_buffer)
 #define w32_crypt_buffer       (PL_sys_intern.thr_intern.Wcrypt_buffer)
 #define w32_servent            (PL_sys_intern.thr_intern.Wservent)
-#define w32_init_socktype      (PL_sys_intern.thr_intern.Winit_socktype)
 #define w32_use_showwindow     (PL_sys_intern.thr_intern.Wuse_showwindow)
 #define w32_showwindow (PL_sys_intern.thr_intern.Wshowwindow)
 
-/* UNICODE<>ANSI translation helpers */
-/* Use CP_ACP when mode is ANSI */
-/* Use CP_UTF8 when mode is UTF8 */
-
-#define A2WHELPER_LEN(lpa, alen, lpw, nBytes)\
-    (lpw[0] = 0, MultiByteToWideChar((IN_BYTES) ? CP_ACP : CP_UTF8, 0, \
-                                   lpa, alen, lpw, (nBytes/sizeof(WCHAR))))
-#define A2WHELPER(lpa, lpw, nBytes)    A2WHELPER_LEN(lpa, -1, lpw, nBytes)
-
-#define W2AHELPER_LEN(lpw, wlen, lpa, nChars)\
-    (lpa[0] = '\0', WideCharToMultiByte((IN_BYTES) ? CP_ACP : CP_UTF8, 0, \
-                                      lpw, wlen, (LPSTR)lpa, nChars,NULL,NULL))
-#define W2AHELPER(lpw, lpa, nChars)    W2AHELPER_LEN(lpw, -1, lpa, nChars)
-
-#define USING_WIDE() (PL_widesyscalls && PerlEnv_os_id() == VER_PLATFORM_WIN32_NT)
-
 #ifdef USE_ITHREADS
 #  define PERL_WAIT_FOR_CHILDREN \
     STMT_START {                                                       \
@@ -462,6 +445,9 @@ DllExport int win32_async_check(pTHX);
 #ifdef PERL_CORE
 
 /* C doesn't like repeat struct definitions */
+#if defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION>=3)
+#undef _CRTIMP
+#endif
 #ifndef _CRTIMP
 #define _CRTIMP __declspec(dllimport)
 #endif
@@ -527,9 +513,13 @@ EXTERN_C _CRTIMP ioinfo* __pioinfo[];
 #if !defined(ECONNABORTED) && defined(WSAECONNABORTED)
 #define ECONNABORTED WSAECONNABORTED
 #endif
+#if !defined(ECONNRESET) && defined(WSAECONNRESET)
+#define ECONNRESET WSAECONNRESET
+#endif
 #if !defined(EAFNOSUPPORT) && defined(WSAEAFNOSUPPORT)
 #define EAFNOSUPPORT WSAEAFNOSUPPORT
 #endif
+/* Why not needed for ECONNREFUSED? --abe */
 
 DllExport void *win32_signal_context(void);
 #define PERL_GET_SIG_CONTEXT win32_signal_context()