X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.h;h=e34ace3ac5a10a959ec13684f48577f3d41db3eb;hb=9366f0ec508a96f6d067d5496e2a37c30b9c2521;hp=856e0be63a5a7fb202608702a11118f58e92e81f;hpb=9d9f6b522dae2008a4aa198438ba564e1f80bf14;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.h b/perl.h index 856e0be..e34ace3 100644 --- a/perl.h +++ b/perl.h @@ -21,6 +21,10 @@ #define USE_STDIO #endif /* PERL_FOR_X2P */ +#if defined(DGUX) +#include +#endif + #define VOIDUSED 1 #ifdef PERL_MICRO # include "uconfig.h" @@ -42,6 +46,10 @@ /* See L for detailed notes on * PERL_IMPLICIT_CONTEXT and PERL_IMPLICIT_SYS */ +/* Note that from here --> to <-- the same logic is + * repeated in makedef.pl, so be certain to update + * both places when editing. */ + #ifdef PERL_IMPLICIT_SYS /* PERL_IMPLICIT_SYS implies PerlMemShared != PerlMem so use slab allocator to avoid lots of MUTEX overhead @@ -69,6 +77,14 @@ # endif #endif +/* Use the reentrant APIs like localtime_r and getpwent_r */ +/* Win32 has naturally threadsafe libraries, no need to use any _r variants. */ +#if defined(USE_ITHREADS) && !defined(USE_REENTRANT_API) && !defined(NETWARE) && !defined(WIN32) && !defined(__APPLE__) +# define USE_REENTRANT_API +#endif + +/* <--- here ends the logic shared by perl.h and makedef.pl */ + #ifdef PERL_IMPLICIT_CONTEXT # ifdef USE_5005THREADS struct perl_thread; @@ -328,12 +344,6 @@ register struct op *Perl_op asm(stringify(OP_IN_REGISTER)); # endif #endif -/* Use the reentrant APIs like localtime_r and getpwent_r */ -/* Win32 has naturally threadsafe libraries, no need to use any _r variants. */ -#if defined(USE_ITHREADS) && !defined(USE_REENTRANT_API) && !defined(WIN32) && !defined(__APPLE__) -# define USE_REENTRANT_API -#endif - /* HP-UX 10.X CMA (Common Multithreaded Architecure) insists that pthread.h must be included before all other header files. */ @@ -435,7 +445,7 @@ int usleep(unsigned int); # define MYSWAP #endif -/* Cannot include embed.h here on Win32 as win32.h has not +/* Cannot include embed.h here on Win32 as win32.h has not yet been included and defines some config variables e.g. HAVE_INTERP_INTERN */ #if !defined(PERL_FOR_X2P) && !(defined(WIN32)||defined(VMS)) @@ -1223,7 +1233,7 @@ typedef NVTYPE NV; # else # define Perl_frexp(x,y) ((long double)frexp((double)(x),y)) # endif -# ifndef Perl_isinf +# ifndef Perl_isnan # ifdef HAS_ISNANL # define Perl_isnan(x) isnanl(x) # endif @@ -1331,7 +1341,7 @@ typedef NVTYPE NV; #if !defined(Perl_fp_class) && defined(HAS_FPCLASSIFY) # include # define Perl_fp_class(x) fpclassify(x) -# define Perl_fp_class_nan(x) (fp_classify(x)==FP_SNAN|FP|_fp_classify(x)==QNAN) +# define Perl_fp_class_nan(x) (fp_classify(x)==FP_SNAN||fp_classify(x)==FP_QNAN) # define Perl_fp_class_inf(x) (fp_classify(x)==FP_INFINITE) # define Perl_fp_class_norm(x) (fp_classify(x)==FP_NORMAL) # define Perl_fp_class_denorm(x) (fp_classify(x)==FP_SUBNORMAL) @@ -2352,11 +2362,12 @@ Gid_t getegid (void); #define DEBUG_S_FLAG 0x00010000 /* 65536 */ #define DEBUG_T_FLAG 0x00020000 /* 131072 */ #define DEBUG_R_FLAG 0x00040000 /* 262144 */ -#define DEBUG_MASK 0x0007FFFF /* mask of all the standard flags */ +#define DEBUG_J_FLAG 0x00080000 /* 524288 */ +#define DEBUG_MASK 0x000FFFFF /* mask of all the standard flags */ #define DEBUG_DB_RECURSE_FLAG 0x40000000 -#define DEBUG_TOP_FLAG 0x80000000 /* XXX what's this for ??? */ - +#define DEBUG_TOP_FLAG 0x80000000 /* XXX what's this for ??? Signal + that something was done? */ # define DEBUG_p_TEST_ (PL_debug & DEBUG_p_FLAG) # define DEBUG_s_TEST_ (PL_debug & DEBUG_s_FLAG) @@ -2377,6 +2388,7 @@ Gid_t getegid (void); # define DEBUG_S_TEST_ (PL_debug & DEBUG_S_FLAG) # define DEBUG_T_TEST_ (PL_debug & DEBUG_T_FLAG) # define DEBUG_R_TEST_ (PL_debug & DEBUG_R_FLAG) +# define DEBUG_J_TEST_ (PL_debug & DEBUG_J_FLAG) #ifdef DEBUGGING @@ -2402,6 +2414,7 @@ Gid_t getegid (void); # define DEBUG_S_TEST DEBUG_S_TEST_ # define DEBUG_T_TEST DEBUG_T_TEST_ # define DEBUG_R_TEST DEBUG_R_TEST_ +# define DEBUG_J_TEST DEBUG_J_TEST_ # define DEB(a) a # define DEBUG(a) if (PL_debug) a @@ -2464,6 +2477,7 @@ Gid_t getegid (void); # define DEBUG_S_TEST (0) # define DEBUG_T_TEST (0) # define DEBUG_R_TEST (0) +# define DEBUG_J_TEST (0) # define DEB(a) # define DEBUG(a) @@ -2680,7 +2694,9 @@ END_EXTERN_C char *crypt (); /* Maybe more hosts will need the unprototyped version */ # else # if !defined(WIN32) && !defined(VMS) +#ifndef crypt char *crypt (const char*, const char*); +#endif # endif /* !WIN32 */ # endif /* !NeXT && !__NeXT__ */ # ifndef DONT_DECLARE_STD @@ -2695,7 +2711,9 @@ Off_t lseek (int,Off_t,int); # endif # endif # endif /* !DONT_DECLARE_STD */ +#ifndef getlogin char *getlogin (void); +#endif #endif /* !__cplusplus */ #ifdef UNLINK_ALL_VERSIONS /* Currently only makes sense for VMS */ @@ -3165,7 +3183,7 @@ struct perl_debug_pad { }; #define PERL_DEBUG_PAD(i) &(PL_debug_pad.pad[i]) -#define PERL_DEBUG_PAD_ZERO(i) (sv_setpvn(PERL_DEBUG_PAD(i), "", 0), PERL_DEBUG_PAD(i)) +#define PERL_DEBUG_PAD_ZERO(i) (SvPVX(PERL_DEBUG_PAD(i))[0] = 0, SvCUR(PERL_DEBUG_PAD(i)) = 0, PERL_DEBUG_PAD(i)) /* Enable variables which are pointers to functions */ typedef void (CPERLscope(*peep_t))(pTHX_ OP* o);