X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.h;h=7ef943212c15e0edae399ff182534988432a7b49;hb=d43ce814c3413c5d667db1dd8ade5d571ac81c1f;hp=33368b1ad27e0edc64c96ec56ae4c4720b7bfbfe;hpb=f3aa04c29a85dd63d563ae8e27316ff34501ccd5;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.h b/perl.h index 33368b1..7ef9432 100644 --- a/perl.h +++ b/perl.h @@ -150,7 +150,7 @@ class CPerlObj; #else # define START_EXTERN_C # define END_EXTERN_C -# define EXTERN_C +# define EXTERN_C extern #endif #ifdef OP_IN_REGISTER @@ -1502,14 +1502,14 @@ typedef pthread_key_t perl_key; #ifdef PERL_IMPLICIT_CONTEXT # ifdef USE_THREADS struct perl_thread; -# define pTHX struct perl_thread *thr +# define pTHX register struct perl_thread *thr # define aTHX thr # define dTHXa(a) pTHX = (struct perl_thread *)a # define dTHX dTHXa(SvPVX(PL_thrsv)) # define dTHR dNOOP # else # define MULTIPLICITY -# define pTHX PerlInterpreter *my_perl +# define pTHX register PerlInterpreter *my_perl # define aTHX my_perl # define dTHXa(a) pTHX = (PerlInterpreter *)a # define dTHX dTHXa(PL_curinterp) @@ -1932,17 +1932,10 @@ typedef Sighandler_t Sigsave_t; #endif -/* - * These need prototyping here because isn't - * included until after runops is initialised. - */ - -#ifndef PERL_OBJECT +#ifdef PERL_OBJECT +typedef int (CPerlObj::*runops_proc_t) (void); +#else typedef int (*runops_proc_t) (pTHX); -int Perl_runops_standard (pTHX); -#ifdef DEBUGGING -int Perl_runops_debug (pTHX); -#endif #endif /* _ (for $_) must be first in the following list (DEFSV requires it) */ @@ -1973,6 +1966,8 @@ extern char ** environ; /* environment variables supplied via exec */ # endif #endif +START_EXTERN_C + /* handy constants */ EXTCONST char PL_warn_uninit[] INIT("Use of uninitialized value"); @@ -2231,6 +2226,8 @@ EXTCONST char* PL_block_type[]; #endif #endif +END_EXTERN_C + /*****************************************************************************/ /* This lexer/parser stuff is currently global since yacc is hard to reenter */ /*****************************************************************************/ @@ -2350,10 +2347,6 @@ typedef struct exitlistentry { #ifdef PERL_OBJECT extern "C" CPerlObj* perl_alloc (IPerlMem*, IPerlEnv*, IPerlStdIO*, IPerlLIO*, IPerlDir*, IPerlSock*, IPerlProc*); -#ifdef PERL_OBJECT -typedef int (CPerlObj::*runops_proc_t) (void); -#endif /* PERL_OBJECT */ - #undef EXT #define EXT #undef EXTCONST @@ -2482,7 +2475,9 @@ END_EXTERN_C #define PERLVARIC(var,type,init) EXTCONST type PL_##var INIT(init); #ifndef PERL_GLOBAL_STRUCT +START_EXTERN_C #include "perlvars.h" +END_EXTERN_C #endif #ifndef MULTIPLICITY @@ -2523,6 +2518,8 @@ PERLVAR(object_compatibility[30], char) #undef PERLVARI #undef PERLVARIC +START_EXTERN_C + #ifdef DOINIT EXT MGVTBL PL_vtbl_sv = {Perl_magic_get, @@ -2727,6 +2724,8 @@ EXTCONST char * PL_AMG_names[NofAMmeth] = { EXTCONST char * PL_AMG_names[NofAMmeth]; #endif /* def INITAMAGIC */ +END_EXTERN_C + struct am_table { long was_ok_sub; long was_ok_am; @@ -2818,10 +2817,22 @@ typedef struct am_table_short AMTS; set_numeric_local(); \ } STMT_END +#define IS_NUMERIC_RADIX(c) \ + ((PL_hints & HINT_LOCALE) && \ + PL_numeric_radix && (c) == PL_numeric_radix) + +#define RESTORE_NUMERIC_LOCAL() if ((PL_hints & HINT_LOCALE) && PL_numeric_standard) SET_NUMERIC_LOCAL() +#define RESTORE_NUMERIC_STANDARD() if ((PL_hints & HINT_LOCALE) && PL_numeric_local) SET_NUMERIC_STANDARD() +#define Atof(s) Perl_my_atof(s) + #else /* !USE_LOCALE_NUMERIC */ -#define SET_NUMERIC_STANDARD() /**/ -#define SET_NUMERIC_LOCAL() /**/ +#define SET_NUMERIC_STANDARD() /**/ +#define SET_NUMERIC_LOCAL() /**/ +#define IS_NUMERIC_RADIX(c) (0) +#define RESTORE_NUMERIC_LOCAL() /**/ +#define RESTORE_NUMERIC_STANDARD() /**/ +#define Atof(s) atof(s) #endif /* !USE_LOCALE_NUMERIC */