X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=win32%2Fwin32.h;h=6bbd2f23ed5504df1298cf6ffc38cbe0370c58f3;hb=564bd1e9882f812e2096523b4d5d7a449b2ae3ea;hp=05a568b6e7e2101fdf80e07b653334cd97e32b86;hpb=cb359b415c42e7a6c1192036d2ee416133c9daa1;p=p5sagit%2Fp5-mst-13.2.git diff --git a/win32/win32.h b/win32/win32.h index 05a568b..6bbd2f2 100644 --- a/win32/win32.h +++ b/win32/win32.h @@ -13,9 +13,8 @@ # define _WIN32_WINNT 0x0400 /* needed for TryEnterCriticalSection() etc. */ #endif -#if defined(PERL_OBJECT) || defined(PERL_IMPLICIT_SYS) || defined(PERL_CAPI) +#if defined(PERL_IMPLICIT_SYS) # define DYNAMIC_ENV_FETCH -# define ENV_HV_NAME "___ENV_HV_NAME___" # define HAS_GETENV_LEN # define prime_env_iter() # define WIN32IO_IS_STDIO /* don't pull in custom stdio layer */ @@ -33,8 +32,14 @@ # define __int64 long long # endif # define Win32_Winsock +#ifdef __cplusplus +/* Mingw32 gcc -xc++ objects to __attribute((unused)) at least */ +#undef PERL_UNUSED_DECL +#define PERL_UNUSED_DECL +#endif #endif + /* Define DllExport akin to perl's EXT, * If we are in the DLL or mimicing the DLL for Win95 work round * then Export the symbol, @@ -43,16 +48,12 @@ /* now even GCC supports __declspec() */ -#if defined(PERL_OBJECT) -#define DllExport -#else #if defined(PERLDLL) || defined(WIN95FIX) #define DllExport /*#define DllExport __declspec(dllexport)*/ /* noises with VC5+sp3 */ #else #define DllExport __declspec(dllimport) #endif -#endif #define WIN32_LEAN_AND_MEAN #include @@ -187,11 +188,6 @@ struct utsname { #pragma warn -use /* "'foo' is declared but never used" */ #pragma warn -csu /* "comparing signed and unsigned values" */ -/* Borland is picky about a bare member function name used as its ptr */ -#ifdef PERL_OBJECT -# define MEMBER_TO_FPTR(name) &(name) -#endif - /* Borland C thinks that a pointer to a member variable is 12 bytes in size. */ #define PERL_MEMBER_PTR_SIZE 12 @@ -224,10 +220,6 @@ typedef long gid_t; #define fcloseall _fcloseall #define isnan _isnan /* ...same libraries as MSVC */ -#ifdef PERL_OBJECT -# define MEMBER_TO_FPTR(name) &(name) -#endif - #ifndef _O_NOINHERIT # define _O_NOINHERIT 0x0080 # ifndef _NO_OLDNAMES @@ -244,46 +236,6 @@ typedef long gid_t; /* compatibility stuff for other compilers goes here */ - -#if !defined(PERL_OBJECT) && defined(PERL_CAPI) && defined(PERL_MEMBER_PTR_SIZE) -# define STRUCT_MGVTBL_DEFINITION \ -struct mgvtbl { \ - union { \ - int (CPERLscope(*svt_get))(pTHX_ SV *sv, MAGIC* mg); \ - char handle_VC_problem1[PERL_MEMBER_PTR_SIZE]; \ - }; \ - union { \ - int (CPERLscope(*svt_set))(pTHX_ SV *sv, MAGIC* mg); \ - char handle_VC_problem2[PERL_MEMBER_PTR_SIZE]; \ - }; \ - union { \ - U32 (CPERLscope(*svt_len))(pTHX_ SV *sv, MAGIC* mg); \ - char handle_VC_problem3[PERL_MEMBER_PTR_SIZE]; \ - }; \ - union { \ - int (CPERLscope(*svt_clear))(pTHX_ SV *sv, MAGIC* mg); \ - char handle_VC_problem4[PERL_MEMBER_PTR_SIZE]; \ - }; \ - union { \ - int (CPERLscope(*svt_free))(pTHX_ SV *sv, MAGIC* mg); \ - char handle_VC_problem5[PERL_MEMBER_PTR_SIZE]; \ - }; \ -} - -# define BASEOP_DEFINITION \ - OP* op_next; \ - OP* op_sibling; \ - OP* (CPERLscope(*op_ppaddr))(pTHX); \ - char handle_VC_problem[PERL_MEMBER_PTR_SIZE-sizeof(OP*)]; \ - PADOFFSET op_targ; \ - OPCODE op_type; \ - U16 op_seq; \ - U8 op_flags; \ - U8 op_private; - -#endif /* !PERL_OBJECT && PERL_CAPI && PERL_MEMBER_PTR_SIZE */ - - START_EXTERN_C /* For UNIX compatibility. */ @@ -403,11 +355,11 @@ struct thread_intern { # endif }; -#ifdef USE_THREADS +#ifdef USE_5005THREADS # ifndef USE_DECLSPEC_THREAD # define HAVE_THREAD_INTERN # endif /* !USE_DECLSPEC_THREAD */ -#endif /* USE_THREADS */ +#endif /* USE_5005THREADS */ #define HAVE_INTERP_INTERN typedef struct { @@ -427,7 +379,7 @@ struct interp_intern { child_tab * pseudo_children; #endif void * internal_host; -#ifndef USE_THREADS +#ifndef USE_5005THREADS struct thread_intern thr_intern; #endif }; @@ -447,7 +399,7 @@ struct interp_intern { #define w32_pseudo_child_pids (w32_pseudo_children->pids) #define w32_pseudo_child_handles (w32_pseudo_children->handles) #define w32_internal_host (PL_sys_intern.internal_host) -#ifdef USE_THREADS +#ifdef USE_5005THREADS # define w32_strerror_buffer (thr->i.Wstrerror_buffer) # define w32_getlogin_buffer (thr->i.Wgetlogin_buffer) # define w32_crypt_buffer (thr->i.Wcrypt_buffer) @@ -459,19 +411,19 @@ struct interp_intern { # 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) -#endif /* USE_THREADS */ +#endif /* USE_5005THREADS */ /* 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_BYTE) ? CP_ACP : CP_UTF8, 0, \ + (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_BYTE) ? CP_ACP : CP_UTF8, 0, \ + (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) @@ -541,6 +493,10 @@ EXTERN_C _CRTIMP ioinfo* __pioinfo[]; #endif #endif +/* IO.xs and POSIX.xs define PERLIO_NOT_STDIO to 1 */ +#if defined(PERL_EXT_IO) || defined(PERL_EXT_POSIX) +#undef PERLIO_NOT_STDIO +#endif #define PERLIO_NOT_STDIO 0 #include "perlio.h"