X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.h;h=e7c0c5abe7de47e10e22a3decfa84024f5a0dbf8;hb=87e33296bf0538cd7a52dd3a42dce8c2210d7406;hp=bb6437d8e79b58a7439d55eb47a04a0d4510c8aa;hpb=6cb8cb214e85c7d67c2acca4f12551f90bf4908e;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.h b/perl.h index bb6437d..e7c0c5a 100644 --- a/perl.h +++ b/perl.h @@ -210,6 +210,9 @@ CALL_FPTR((prog)->engine->checkstr)(aTHX_ (prog)) #define CALLREGFREE(prog) \ if(prog) CALL_FPTR((prog)->engine->free)(aTHX_ (prog)) +#define CALLREG_AS_STR(mg,lp,flags,haseval) \ + CALL_FPTR(((regexp *)((mg)->mg_obj))->engine->as_str)(aTHX_ (mg), (lp), (flags), (haseval)) +#define CALLREG_STRINGIFY(mg,lp,flags) CALLREG_AS_STR(mg,lp,flags,0) #if defined(USE_ITHREADS) #define CALLREGDUPE(prog,param) \ (prog ? CALL_FPTR((prog)->engine->dupe)(aTHX_ (prog),(param)) \ @@ -1177,6 +1180,14 @@ EXTERN_C char *crypt(const char *, const char *); EXTERN_C char **environ; #endif +#if defined(__OpenBSD__) && defined(__cplusplus) +EXTERN_C char **environ; +#endif + +#if defined(__CYGWIN__) && defined(__cplusplus) +EXTERN_C char *crypt(const char *, const char *); +#endif + #ifdef SETERRNO # undef SETERRNO /* SOCKS might have defined this */ #endif @@ -2565,10 +2576,10 @@ typedef struct clone_params CLONE_PARAMS; # if HAS_FLOATINGPOINT_H # include # endif -# define PERL_FPU_INIT fpsetmask(0); +# define PERL_FPU_INIT fpsetmask(0) # else # if defined(SIGFPE) && defined(SIG_IGN) && !defined(PERL_MICRO) -# define PERL_FPU_INIT PL_sigfpe_saved = (Sighandler_t) signal(SIGFPE, SIG_IGN); +# define PERL_FPU_INIT PL_sigfpe_saved = (Sighandler_t) signal(SIGFPE, SIG_IGN) # define PERL_FPU_PRE_EXEC { Sigsave_t xfpe; rsignal_save(SIGFPE, PL_sigfpe_saved, &xfpe); # define PERL_FPU_POST_EXEC rsignal_restore(SIGFPE, &xfpe); } # else @@ -3094,6 +3105,13 @@ typedef pthread_key_t perl_key; # define NORETURN_FUNCTION_END /* NOTREACHED */ return 0 #endif +/* Some OS warn on NULL format to printf */ +#ifdef PRINTF_FORMAT_NULL_OK +# define __attribute__format__null_ok__(x,y,z) __attribute__format__(x,y,z) +#else +# define __attribute__format__null_ok__(x,y,z) +#endif + #ifdef HAS_BUILTIN_EXPECT # define EXPECT(expr,val) __builtin_expect(expr,val) #else @@ -3864,8 +3882,8 @@ typedef Sighandler_t Sigsave_t; #endif #ifdef USE_PERLIO -void PerlIO_teardown(pTHX); -# ifdef USE_THREADS +EXTERN_C void PerlIO_teardown(pTHX); +# ifdef USE_ITHREADS # define PERLIO_INIT MUTEX_INIT(&PL_perlio_mutex) # define PERLIO_TERM \ STMT_START { \ @@ -3876,6 +3894,9 @@ void PerlIO_teardown(pTHX); # define PERLIO_INIT # define PERLIO_TERM PerlIO_teardown(aTHX) # endif +#else +# define PERLIO_INIT +# define PERLIO_TERM #endif #ifdef MYMALLOC @@ -5255,8 +5276,9 @@ typedef struct am_table_short AMTS; /* * Boilerplate macros for initializing and accessing interpreter-local * data from C. All statics in extensions should be reworked to use - * this, if you want to make the extension thread-safe. See ext/re/re.xs - * for an example of the use of these macros, and perlxs.pod for more. + * this, if you want to make the extension thread-safe. See + * ext/XS/APItest/APItest.xs for an example of the use of these macros, + * and perlxs.pod for more. * * Code that uses these macros is responsible for the following: * 1. #define MY_CXT_KEY to a unique string, e.g.