diff options
-rw-r--r-- | AUTHORS | 1 | ||||
-rwxr-xr-x | Configure | 23 | ||||
-rw-r--r-- | dump.c | 22 | ||||
-rw-r--r-- | embed.fnc | 94 | ||||
-rw-r--r-- | embed.h | 1778 | ||||
-rwxr-xr-x | embed.pl | 14 | ||||
-rw-r--r-- | ext/Data/Dumper/Dumper.xs | 7 | ||||
-rw-r--r-- | ext/Devel/DProf/Changes | 9 | ||||
-rw-r--r-- | ext/Devel/DProf/DProf.pm | 2 | ||||
-rw-r--r-- | ext/Devel/DProf/DProf.xs | 11 | ||||
-rw-r--r-- | ext/Devel/DProf/Makefile.PL | 4 | ||||
-rw-r--r-- | ext/Devel/PPPort/PPPort.pm | 5 | ||||
-rw-r--r-- | ext/Digest/MD5/MD5.xs | 5 | ||||
-rw-r--r-- | ext/Digest/MD5/t/files.t | 6 | ||||
-rw-r--r-- | ext/Encode/MANIFEST | 1 | ||||
-rw-r--r-- | ext/List/Util/Util.xs | 5 | ||||
-rw-r--r-- | ext/Storable/Storable.xs | 3 | ||||
-rw-r--r-- | ext/re/Makefile.PL | 2 | ||||
-rw-r--r-- | global.sym | 1 | ||||
-rw-r--r-- | lib/Digest.pm | 4 | ||||
-rw-r--r-- | lib/Digest.t | 9 | ||||
-rw-r--r-- | lib/Pod/Perldoc.pm | 10 | ||||
-rw-r--r-- | mg.c | 10 | ||||
-rw-r--r-- | perl.c | 13 | ||||
-rw-r--r-- | perl.h | 11 | ||||
-rw-r--r-- | perlio.c | 1 | ||||
-rw-r--r-- | pod/perlapi.pod | 22 | ||||
-rw-r--r-- | pod/perlrun.pod | 8 | ||||
-rw-r--r-- | pod/perlsyn.pod | 5 | ||||
-rw-r--r-- | pp_ctl.c | 2 | ||||
-rw-r--r-- | pp_hot.c | 3 | ||||
-rw-r--r-- | proto.h | 3 | ||||
-rw-r--r-- | regexec.c | 84 | ||||
-rw-r--r-- | sv.c | 337 | ||||
-rwxr-xr-x | t/op/subst.t | 12 | ||||
-rw-r--r-- | util.c | 3 |
36 files changed, 2377 insertions, 153 deletions
@@ -131,7 +131,6 @@ Colin Meyer <cmeyer@helvella.org> Colin Watson <colinw@zeus.com> Conrad Augustin Conrad E. Kimball <cek@tblv021.ca.boeing.com> -Coral <coral@moonlight.crystalflame.net> Craig A. Berry <craig.berry@psinetcs.com> Craig Milo Rogers <Rogers@ISI.EDU> Curtis Poe <cp@onsitetech.com> @@ -20,7 +20,7 @@ # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # -# Generated on Mon Dec 16 12:51:57 MET 2002 [metaconfig 3.0 PL70] +# Generated on Tue Jan 21 18:59:19 MET 2003 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.org) cat >c1$$ <<EOF @@ -6743,8 +6743,25 @@ set d_dosuid eval $setvar : see if this is a malloc.h system -set malloc.h i_malloc -eval $inhdr +: we want a real compile instead of Inhdr because some systems have a +: malloc.h that just gives a compile error saying to use stdlib.h instead +echo " " +$cat >try.c <<EOCP +#include <stdlib.h> +#include <malloc.h> +int main () { return 0; } +EOCP +set try +if eval $compile; then + echo "<malloc.h> found." >&4 + val="$define" +else + echo "<malloc.h> NOT found." >&4 + val="$undef" +fi +$rm -f try.c try +set i_malloc +eval $setvar : see if stdlib is available set stdlib.h i_stdlib @@ -768,6 +768,7 @@ static struct { char type; char *name; } magic_names[] = { { PERL_MAGIC_uvar_elem, "uvar_elem(v)" }, { PERL_MAGIC_vec, "vec(v)" }, { PERL_MAGIC_vstring, "vstring(V)" }, + { PERL_MAGIC_utf8, "utf8(w)" }, { PERL_MAGIC_substr, "substr(x)" }, { PERL_MAGIC_defelem, "defelem(y)" }, { PERL_MAGIC_ext, "ext(~)" }, @@ -811,6 +812,7 @@ Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxne else if (v == &PL_vtbl_amagic) s = "amagic"; else if (v == &PL_vtbl_amagicelem) s = "amagicelem"; else if (v == &PL_vtbl_backref) s = "backref"; + else if (v == &PL_vtbl_utf8) s = "utf8"; if (s) Perl_dump_indent(aTHX_ level, file, " MG_VIRTUAL = &PL_vtbl_%s\n", s); else @@ -862,9 +864,11 @@ Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxne if (mg->mg_ptr) { Perl_dump_indent(aTHX_ level, file, " MG_PTR = 0x%"UVxf, PTR2UV(mg->mg_ptr)); if (mg->mg_len >= 0) { - SV *sv = newSVpvn("", 0); - PerlIO_printf(file, " %s", pv_display(sv, mg->mg_ptr, mg->mg_len, 0, pvlim)); - SvREFCNT_dec(sv); + if (mg->mg_type != PERL_MAGIC_utf8) { + SV *sv = newSVpvn("", 0); + PerlIO_printf(file, " %s", pv_display(sv, mg->mg_ptr, mg->mg_len, 0, pvlim)); + SvREFCNT_dec(sv); + } } else if (mg->mg_len == HEf_SVKEY) { PerlIO_puts(file, " => HEf_SVKEY\n"); @@ -875,6 +879,18 @@ Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxne PerlIO_puts(file, " ???? - please notify IZ"); PerlIO_putc(file, '\n'); } + if (mg->mg_type == PERL_MAGIC_utf8) { + STRLEN *cache = (STRLEN *) mg->mg_ptr; + if (cache) { + IV i; + for (i = 0; i < PERL_MAGIC_UTF8_CACHESIZE; i++) + Perl_dump_indent(aTHX_ level, file, + " %2"IVdf": %"UVuf" -> %"UVuf"\n", + i, + (UV)cache[i * 2], + (UV)cache[i * 2 + 1]); + } + } } } @@ -17,6 +17,7 @@ : o has no compatibility macro (#define foo Perl_foo) : x not exported : M may change +: E visible to Perl core extensions : : Individual flags may be separated by whitespace. : @@ -140,7 +141,7 @@ Ap |char** |get_op_names p |char* |get_no_modify p |U32* |get_opargs Ap |PPADDR_t*|get_ppaddr -p |I32 |cxinc +Ap |I32 |cxinc Afp |void |deb |const char* pat|... Ap |void |vdeb |const char* pat|va_list* args Ap |void |debprofdump @@ -412,6 +413,7 @@ p |int |magic_setsubstr|SV* sv|MAGIC* mg p |int |magic_settaint |SV* sv|MAGIC* mg p |int |magic_setuvar |SV* sv|MAGIC* mg p |int |magic_setvec |SV* sv|MAGIC* mg +p |int |magic_setutf8 |SV* sv|MAGIC* mg p |int |magic_set_all_env|SV* sv|MAGIC* mg p |U32 |magic_sizepack |SV* sv|MAGIC* mg p |int |magic_wipepack |SV* sv|MAGIC* mg @@ -604,7 +606,7 @@ Ap |I32 |regexec_flags |regexp* prog|char* stringarg \ |char* strend|char* strbeg|I32 minend \ |SV* screamer|void* data|U32 flags Ap |regnode*|regnext |regnode* p -p |void |regprop |SV* sv|regnode* o +Ep |void |regprop |SV* sv|regnode* o Ap |void |repeatcpy |char* to|const char* from|I32 len|I32 count Ap |char* |rninstr |const char* big|const char* bigend \ |const char* little|const char* lend @@ -1091,60 +1093,60 @@ s |int |dooneliner |char *cmd|char *filename #endif #if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT) -s |regnode*|reg |struct RExC_state_t*|I32|I32 * -s |regnode*|reganode |struct RExC_state_t*|U8|U32 -s |regnode*|regatom |struct RExC_state_t*|I32 * -s |regnode*|regbranch |struct RExC_state_t*|I32 *|I32 -s |void |reguni |struct RExC_state_t*|UV|char *|STRLEN* -s |regnode*|regclass |struct RExC_state_t* -s |I32 |regcurly |char * -s |regnode*|reg_node |struct RExC_state_t*|U8 -s |regnode*|regpiece |struct RExC_state_t*|I32 * -s |void |reginsert |struct RExC_state_t*|U8|regnode * -s |void |regoptail |struct RExC_state_t*|regnode *|regnode * -s |void |regtail |struct RExC_state_t*|regnode *|regnode * -s |char*|regwhite |char *|char * -s |char*|nextchar |struct RExC_state_t* +Es |regnode*|reg |struct RExC_state_t*|I32|I32 * +Es |regnode*|reganode |struct RExC_state_t*|U8|U32 +Es |regnode*|regatom |struct RExC_state_t*|I32 * +Es |regnode*|regbranch |struct RExC_state_t*|I32 *|I32 +Es |void |reguni |struct RExC_state_t*|UV|char *|STRLEN* +Es |regnode*|regclass |struct RExC_state_t* +Es |I32 |regcurly |char * +Es |regnode*|reg_node |struct RExC_state_t*|U8 +Es |regnode*|regpiece |struct RExC_state_t*|I32 * +Es |void |reginsert |struct RExC_state_t*|U8|regnode * +Es |void |regoptail |struct RExC_state_t*|regnode *|regnode * +Es |void |regtail |struct RExC_state_t*|regnode *|regnode * +Es |char*|regwhite |char *|char * +Es |char*|nextchar |struct RExC_state_t* # ifdef DEBUGGING -s |regnode*|dumpuntil |regnode *start|regnode *node \ +Es |regnode*|dumpuntil |regnode *start|regnode *node \ |regnode *last|SV* sv|I32 l -s |void |put_byte |SV* sv|int c +Es |void |put_byte |SV* sv|int c # endif -s |void |scan_commit |struct RExC_state_t*|struct scan_data_t *data -s |void |cl_anything |struct RExC_state_t*|struct regnode_charclass_class *cl -s |int |cl_is_anything |struct regnode_charclass_class *cl -s |void |cl_init |struct RExC_state_t*|struct regnode_charclass_class *cl -s |void |cl_init_zero |struct RExC_state_t*|struct regnode_charclass_class *cl -s |void |cl_and |struct regnode_charclass_class *cl \ +Es |void |scan_commit |struct RExC_state_t*|struct scan_data_t *data +Es |void |cl_anything |struct RExC_state_t*|struct regnode_charclass_class *cl +Es |int |cl_is_anything |struct regnode_charclass_class *cl +Es |void |cl_init |struct RExC_state_t*|struct regnode_charclass_class *cl +Es |void |cl_init_zero |struct RExC_state_t*|struct regnode_charclass_class *cl +Es |void |cl_and |struct regnode_charclass_class *cl \ |struct regnode_charclass_class *and_with -s |void |cl_or |struct RExC_state_t*|struct regnode_charclass_class *cl \ +Es |void |cl_or |struct RExC_state_t*|struct regnode_charclass_class *cl \ |struct regnode_charclass_class *or_with -s |I32 |study_chunk |struct RExC_state_t*|regnode **scanp|I32 *deltap \ +Es |I32 |study_chunk |struct RExC_state_t*|regnode **scanp|I32 *deltap \ |regnode *last|struct scan_data_t *data \ |U32 flags -s |I32 |add_data |struct RExC_state_t*|I32 n|char *s +Es |I32 |add_data |struct RExC_state_t*|I32 n|char *s rs |void|re_croak2 |const char* pat1|const char* pat2|... -s |I32 |regpposixcc |struct RExC_state_t*|I32 value -s |void |checkposixcc |struct RExC_state_t* +Es |I32 |regpposixcc |struct RExC_state_t*|I32 value +Es |void |checkposixcc |struct RExC_state_t* #endif #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT) -s |I32 |regmatch |regnode *prog -s |I32 |regrepeat |regnode *p|I32 max -s |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp -s |I32 |regtry |regexp *prog|char *startpos -s |bool |reginclass |regnode *n|U8 *p|STRLEN *lenp|bool do_utf8sv_is_utf8 -s |CHECKPOINT|regcppush |I32 parenfloor -s |char*|regcppop -s |char*|regcp_set_to |I32 ss -s |void |cache_re |regexp *prog -s |U8* |reghop |U8 *pos|I32 off -s |U8* |reghop3 |U8 *pos|I32 off|U8 *lim -s |U8* |reghopmaybe |U8 *pos|I32 off -s |U8* |reghopmaybe3 |U8 *pos|I32 off|U8 *lim -s |char* |find_byclass |regexp * prog|regnode *c|char *s|char *strend|char *startpos|I32 norun -s |void |to_utf8_substr |regexp * prog -s |void |to_byte_substr |regexp * prog +Es |I32 |regmatch |regnode *prog +Es |I32 |regrepeat |regnode *p|I32 max +Es |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp +Es |I32 |regtry |regexp *prog|char *startpos +Es |bool |reginclass |regnode *n|U8 *p|STRLEN *lenp|bool do_utf8sv_is_utf8 +Es |CHECKPOINT|regcppush |I32 parenfloor +Es |char*|regcppop +Es |char*|regcp_set_to |I32 ss +Es |void |cache_re |regexp *prog +Es |U8* |reghop |U8 *pos|I32 off +Es |U8* |reghop3 |U8 *pos|I32 off|U8 *lim +Es |U8* |reghopmaybe |U8 *pos|I32 off +Es |U8* |reghopmaybe3 |U8 *pos|I32 off|U8 *lim +Es |char* |find_byclass |regexp * prog|regnode *c|char *s|char *strend|char *startpos|I32 norun +Es |void |to_utf8_substr |regexp * prog +Es |void |to_byte_substr |regexp * prog #endif #if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT) @@ -1212,6 +1214,8 @@ s |I32 |expect_number |char** pattern # if defined(USE_ITHREADS) s |SV* |gv_share |SV *sv|CLONE_PARAMS *param # endif +s |bool |utf8_mg_pos |SV *sv|MAGIC **mgp|STRLEN **cachep|I32 i|I32 *offsetp|I32 uoff|U8 **sp|U8 *start|U8 *send +s |bool |utf8_mg_pos_init |SV *sv|MAGIC **mgp|STRLEN **cachep|I32 i|I32 *offsetp|U8 *s|U8 *start #if defined(PERL_COPY_ON_WRITE) sM |void |sv_release_COW |SV *sv|char *pvx|STRLEN cur|STRLEN len \ |U32 hash|SV *after @@ -29,41 +29,65 @@ # endif #endif #if defined(MYMALLOC) +#ifdef PERL_CORE #define malloced_size Perl_malloced_size #endif +#endif #define get_context Perl_get_context #define set_context Perl_set_context #define amagic_call Perl_amagic_call #define Gv_AMupdate Perl_Gv_AMupdate #define gv_handler Perl_gv_handler +#ifdef PERL_CORE #define append_elem Perl_append_elem +#endif +#ifdef PERL_CORE #define append_list Perl_append_list +#endif +#ifdef PERL_CORE #define apply Perl_apply +#endif #define apply_attrs_string Perl_apply_attrs_string #define av_clear Perl_av_clear #define av_delete Perl_av_delete #define av_exists Perl_av_exists #define av_extend Perl_av_extend +#ifdef PERL_CORE #define av_fake Perl_av_fake +#endif #define av_fetch Perl_av_fetch #define av_fill Perl_av_fill #define av_len Perl_av_len #define av_make Perl_av_make #define av_pop Perl_av_pop #define av_push Perl_av_push +#ifdef PERL_CORE #define av_reify Perl_av_reify +#endif #define av_shift Perl_av_shift #define av_store Perl_av_store #define av_undef Perl_av_undef #define av_unshift Perl_av_unshift +#ifdef PERL_CORE #define bind_match Perl_bind_match +#endif +#ifdef PERL_CORE #define block_end Perl_block_end +#endif #define block_gimme Perl_block_gimme +#ifdef PERL_CORE #define block_start Perl_block_start +#endif +#ifdef PERL_CORE #define boot_core_UNIVERSAL Perl_boot_core_UNIVERSAL +#endif +#ifdef PERL_CORE #define boot_core_PerlIO Perl_boot_core_PerlIO +#endif #define call_list Perl_call_list +#ifdef PERL_CORE #define cando Perl_cando +#endif #define cast_ulong Perl_cast_ulong #define cast_i32 Perl_cast_i32 #define cast_iv Perl_cast_iv @@ -71,7 +95,9 @@ #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) #define my_chsize Perl_my_chsize #endif +#ifdef PERL_CORE #define convert Perl_convert +#endif #define croak Perl_croak #define vcroak Perl_vcroak #if defined(PERL_IMPLICIT_CONTEXT) @@ -91,10 +117,16 @@ #define fprintf_nocontext Perl_fprintf_nocontext #define printf_nocontext Perl_printf_nocontext #endif +#ifdef PERL_CORE #define cv_ckproto Perl_cv_ckproto +#endif +#ifdef PERL_CORE #define cv_clone Perl_cv_clone +#endif #define cv_const_sv Perl_cv_const_sv +#ifdef PERL_CORE #define op_const_sv Perl_op_const_sv +#endif #define cv_undef Perl_cv_undef #define cx_dump Perl_cx_dump #define filter_add Perl_filter_add @@ -102,8 +134,12 @@ #define filter_read Perl_filter_read #define get_op_descs Perl_get_op_descs #define get_op_names Perl_get_op_names +#ifdef PERL_CORE #define get_no_modify Perl_get_no_modify +#endif +#ifdef PERL_CORE #define get_opargs Perl_get_opargs +#endif #define get_ppaddr Perl_get_ppaddr #define cxinc Perl_cxinc #define deb Perl_deb @@ -113,54 +149,114 @@ #define debstack Perl_debstack #define debstackptrs Perl_debstackptrs #define delimcpy Perl_delimcpy +#ifdef PERL_CORE #define deprecate Perl_deprecate +#endif +#ifdef PERL_CORE #define deprecate_old Perl_deprecate_old +#endif #define die Perl_die +#ifdef PERL_CORE #define vdie Perl_vdie +#endif +#ifdef PERL_CORE #define die_where Perl_die_where +#endif #define dounwind Perl_dounwind +#ifdef PERL_CORE #define do_aexec Perl_do_aexec +#endif +#ifdef PERL_CORE #define do_aexec5 Perl_do_aexec5 +#endif #define do_binmode Perl_do_binmode +#ifdef PERL_CORE #define do_chop Perl_do_chop +#endif #define do_close Perl_do_close +#ifdef PERL_CORE #define do_eof Perl_do_eof +#endif +#ifdef PERL_CORE #define do_exec Perl_do_exec +#endif #if defined(WIN32) #define do_aspawn Perl_do_aspawn #define do_spawn Perl_do_spawn #define do_spawn_nowait Perl_do_spawn_nowait #endif #if !defined(WIN32) +#ifdef PERL_CORE #define do_exec3 Perl_do_exec3 #endif +#endif +#ifdef PERL_CORE #define do_execfree Perl_do_execfree +#endif #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) +#ifdef PERL_CORE #define do_ipcctl Perl_do_ipcctl +#endif +#ifdef PERL_CORE #define do_ipcget Perl_do_ipcget +#endif +#ifdef PERL_CORE #define do_msgrcv Perl_do_msgrcv +#endif +#ifdef PERL_CORE #define do_msgsnd Perl_do_msgsnd +#endif +#ifdef PERL_CORE #define do_semop Perl_do_semop +#endif +#ifdef PERL_CORE #define do_shmio Perl_do_shmio #endif +#endif #define do_join Perl_do_join +#ifdef PERL_CORE #define do_kv Perl_do_kv +#endif #define do_open Perl_do_open #define do_open9 Perl_do_open9 #define do_openn Perl_do_openn +#ifdef PERL_CORE #define do_pipe Perl_do_pipe +#endif +#ifdef PERL_CORE #define do_print Perl_do_print +#endif +#ifdef PERL_CORE #define do_readline Perl_do_readline +#endif +#ifdef PERL_CORE #define do_chomp Perl_do_chomp +#endif +#ifdef PERL_CORE #define do_seek Perl_do_seek +#endif #define do_sprintf Perl_do_sprintf +#ifdef PERL_CORE #define do_sysseek Perl_do_sysseek +#endif +#ifdef PERL_CORE #define do_tell Perl_do_tell +#endif +#ifdef PERL_CORE #define do_trans Perl_do_trans +#endif +#ifdef PERL_CORE #define do_vecget Perl_do_vecget +#endif +#ifdef PERL_CORE #define do_vecset Perl_do_vecset +#endif +#ifdef PERL_CORE #define do_vop Perl_do_vop +#endif +#ifdef PERL_CORE #define dofile Perl_dofile +#endif #define dowantarray Perl_dowantarray #define dump_all Perl_dump_all #define dump_eval Perl_dump_eval @@ -175,16 +271,26 @@ #define dump_sub Perl_dump_sub #define fbm_compile Perl_fbm_compile #define fbm_instr Perl_fbm_instr +#ifdef PERL_CORE #define find_script Perl_find_script +#endif +#ifdef PERL_CORE #define force_list Perl_force_list +#endif +#ifdef PERL_CORE #define fold_constants Perl_fold_constants +#endif #define form Perl_form #define vform Perl_vform #define free_tmps Perl_free_tmps +#ifdef PERL_CORE #define gen_constant_list Perl_gen_constant_list +#endif #if !defined(HAS_GETENV_LEN) +#ifdef PERL_CORE #define getenv_len Perl_getenv_len #endif +#endif #define gp_free Perl_gp_free #define gp_ref Perl_gp_ref #define gv_AVadd Perl_gv_AVadd @@ -233,16 +339,30 @@ #define ibcmp Perl_ibcmp #define ibcmp_locale Perl_ibcmp_locale #define ibcmp_utf8 Perl_ibcmp_utf8 +#ifdef PERL_CORE #define ingroup Perl_ingroup +#endif +#ifdef PERL_CORE #define init_argv_symbols Perl_init_argv_symbols +#endif +#ifdef PERL_CORE #define init_debugger Perl_init_debugger +#endif #define init_stacks Perl_init_stacks #define init_tm Perl_init_tm +#ifdef PERL_CORE #define intro_my Perl_intro_my +#endif #define instr Perl_instr +#ifdef PERL_CORE #define io_close Perl_io_close +#endif +#ifdef PERL_CORE #define invert Perl_invert +#endif +#ifdef PERL_CORE #define is_gv_magical Perl_is_gv_magical +#endif #define is_lvalue_sub Perl_is_lvalue_sub #define to_uni_upper_lc Perl_to_uni_upper_lc #define to_uni_title_lc Perl_to_uni_title_lc @@ -297,82 +417,203 @@ #define is_utf8_punct Perl_is_utf8_punct #define is_utf8_xdigit Perl_is_utf8_xdigit #define is_utf8_mark Perl_is_utf8_mark +#ifdef PERL_CORE #define jmaybe Perl_jmaybe +#endif +#ifdef PERL_CORE #define keyword Perl_keyword +#endif #define leave_scope Perl_leave_scope +#ifdef PERL_CORE #define lex_end Perl_lex_end +#endif +#ifdef PERL_CORE #define lex_start Perl_lex_start +#endif #define op_null Perl_op_null +#ifdef PERL_CORE #define op_clear Perl_op_clear +#endif +#ifdef PERL_CORE #define linklist Perl_linklist +#endif +#ifdef PERL_CORE #define list Perl_list +#endif +#ifdef PERL_CORE #define listkids Perl_listkids +#endif #define load_module Perl_load_module #define vload_module Perl_vload_module +#ifdef PERL_CORE #define localize Perl_localize +#endif #define looks_like_number Perl_looks_like_number #define grok_bin Perl_grok_bin #define grok_hex Perl_grok_hex #define grok_number Perl_grok_number #define grok_numeric_radix Perl_grok_numeric_radix #define grok_oct Perl_grok_oct +#ifdef PERL_CORE #define magic_clearenv Perl_magic_clearenv +#endif +#ifdef PERL_CORE #define magic_clear_all_env Perl_magic_clear_all_env +#endif +#ifdef PERL_CORE #define magic_clearpack Perl_magic_clearpack +#endif +#ifdef PERL_CORE #define magic_clearsig Perl_magic_clearsig +#endif +#ifdef PERL_CORE #define magic_existspack Perl_magic_existspack +#endif +#ifdef PERL_CORE #define magic_freeregexp Perl_magic_freeregexp +#endif +#ifdef PERL_CORE #define magic_freeovrld Perl_magic_freeovrld +#endif +#ifdef PERL_CORE #define magic_get Perl_magic_get +#endif +#ifdef PERL_CORE #define magic_getarylen Perl_magic_getarylen +#endif +#ifdef PERL_CORE #define magic_getdefelem Perl_magic_getdefelem +#endif +#ifdef PERL_CORE #define magic_getglob Perl_magic_getglob +#endif +#ifdef PERL_CORE #define magic_getnkeys Perl_magic_getnkeys +#endif +#ifdef PERL_CORE #define magic_getpack Perl_magic_getpack +#endif +#ifdef PERL_CORE #define magic_getpos Perl_magic_getpos +#endif +#ifdef PERL_CORE #define magic_getsig Perl_magic_getsig +#endif +#ifdef PERL_CORE #define magic_getsubstr Perl_magic_getsubstr +#endif +#ifdef PERL_CORE #define magic_gettaint Perl_magic_gettaint +#endif +#ifdef PERL_CORE #define magic_getuvar Perl_magic_getuvar +#endif +#ifdef PERL_CORE #define magic_getvec Perl_magic_getvec +#endif +#ifdef PERL_CORE #define magic_len Perl_magic_len +#endif +#ifdef PERL_CORE #define magic_nextpack Perl_magic_nextpack +#endif +#ifdef PERL_CORE #define magic_regdata_cnt Perl_magic_regdata_cnt +#endif +#ifdef PERL_CORE #define magic_regdatum_get Perl_magic_regdatum_get +#endif +#ifdef PERL_CORE #define magic_regdatum_set Perl_magic_regdatum_set +#endif +#ifdef PERL_CORE #define magic_set Perl_magic_set +#endif +#ifdef PERL_CORE #define magic_setamagic Perl_magic_setamagic +#endif +#ifdef PERL_CORE #define magic_setarylen Perl_magic_setarylen +#endif +#ifdef PERL_CORE #define magic_setbm Perl_magic_setbm +#endif +#ifdef PERL_CORE #define magic_setdbline Perl_magic_setdbline +#endif #if defined(USE_LOCALE_COLLATE) +#ifdef PERL_CORE #define magic_setcollxfrm Perl_magic_setcollxfrm #endif +#endif +#ifdef PERL_CORE #define magic_setdefelem Perl_magic_setdefelem +#endif +#ifdef PERL_CORE #define magic_setenv Perl_magic_setenv +#endif +#ifdef PERL_CORE #define magic_setfm Perl_magic_setfm +#endif +#ifdef PERL_CORE #define magic_setisa Perl_magic_setisa +#endif +#ifdef PERL_CORE #define magic_setglob Perl_magic_setglob +#endif +#ifdef PERL_CORE #define magic_setmglob Perl_magic_setmglob +#endif +#ifdef PERL_CORE #define magic_setnkeys Perl_magic_setnkeys +#endif +#ifdef PERL_CORE #define magic_setpack Perl_magic_setpack +#endif +#ifdef PERL_CORE #define magic_setpos Perl_magic_setpos +#endif +#ifdef PERL_CORE #define magic_setsig Perl_magic_setsig +#endif +#ifdef PERL_CORE #define magic_setsubstr Perl_magic_setsubstr +#endif +#ifdef PERL_CORE #define magic_settaint Perl_magic_settaint +#endif +#ifdef PERL_CORE #define magic_setuvar Perl_magic_setuvar +#endif +#ifdef PERL_CORE #define magic_setvec Perl_magic_setvec +#endif +#ifdef PERL_CORE +#define magic_setutf8 Perl_magic_setutf8 +#endif +#ifdef PERL_CORE #define magic_set_all_env Perl_magic_set_all_env +#endif +#ifdef PERL_CORE #define magic_sizepack Perl_magic_sizepack +#endif +#ifdef PERL_CORE #define magic_wipepack Perl_magic_wipepack +#endif +#ifdef PERL_CORE #define magicname Perl_magicname +#endif #define markstack_grow Perl_markstack_grow #if defined(USE_LOCALE_COLLATE) +#ifdef PERL_CORE #define mem_collxfrm Perl_mem_collxfrm #endif +#endif #define mess Perl_mess #define vmess Perl_vmess +#ifdef PERL_CORE #define qerror Perl_qerror +#endif #define sortsv Perl_sortsv #define mg_clear Perl_mg_clear #define mg_copy Perl_mg_copy @@ -384,10 +625,16 @@ #define mg_set Perl_mg_set #define mg_size Perl_mg_size #define mini_mktime Perl_mini_mktime +#ifdef PERL_CORE #define mod Perl_mod +#endif +#ifdef PERL_CORE #define mode_from_discipline Perl_mode_from_discipline +#endif #define moreswitches Perl_moreswitches +#ifdef PERL_CORE #define my Perl_my +#endif #define my_atof Perl_my_atof #if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY)) #define my_bcopy Perl_my_bcopy @@ -419,7 +666,9 @@ #define my_htonl Perl_my_htonl #define my_ntohl Perl_my_ntohl #endif +#ifdef PERL_CORE #define my_unexec Perl_my_unexec +#endif #define newANONLIST Perl_newANONLIST #define newANONHASH Perl_newANONHASH #define newANONSUB Perl_newANONSUB @@ -479,22 +728,50 @@ #define vnumify Perl_vnumify #define vstringify Perl_vstringify #define vcmp Perl_vcmp +#ifdef PERL_CORE #define nextargv Perl_nextargv +#endif #define ninstr Perl_ninstr +#ifdef PERL_CORE #define oopsCV Perl_oopsCV +#endif #define op_free Perl_op_free +#ifdef PERL_CORE #define package Perl_package +#endif +#ifdef PERL_CORE #define pad_alloc Perl_pad_alloc +#endif +#ifdef PERL_CORE #define allocmy Perl_allocmy +#endif +#ifdef PERL_CORE #define pad_findmy Perl_pad_findmy +#endif +#ifdef PERL_CORE #define oopsAV Perl_oopsAV +#endif +#ifdef PERL_CORE #define oopsHV Perl_oopsHV +#endif +#ifdef PERL_CORE #define pad_leavemy Perl_pad_leavemy +#endif #define pad_sv Perl_pad_sv +#ifdef PERL_CORE #define pad_free Perl_pad_free +#endif +#ifdef PERL_CORE #define pad_reset Perl_pad_reset +#endif +#ifdef PERL_CORE #define pad_swipe Perl_pad_swipe +#endif +#ifdef PERL_CORE #define peep Perl_peep +#endif +#ifdef PERL_CORE +#endif #if defined(USE_REENTRANT_API) #define reentrant_size Perl_reentrant_size #define reentrant_init Perl_reentrant_init @@ -523,17 +800,33 @@ #define set_numeric_standard Perl_set_numeric_standard #define require_pv Perl_require_pv #define pack_cat Perl_pack_cat +#ifdef PERL_CORE #define pidgone Perl_pidgone +#endif #define pmflag Perl_pmflag +#ifdef PERL_CORE #define pmruntime Perl_pmruntime +#endif +#ifdef PERL_CORE #define pmtrans Perl_pmtrans +#endif +#ifdef PERL_CORE #define pop_return Perl_pop_return +#endif #define pop_scope Perl_pop_scope +#ifdef PERL_CORE #define prepend_elem Perl_prepend_elem +#endif +#ifdef PERL_CORE #define push_return Perl_push_return +#endif #define push_scope Perl_push_scope +#ifdef PERL_CORE #define ref Perl_ref +#endif +#ifdef PERL_CORE #define refkids Perl_refkids +#endif #define regdump Perl_regdump #define regclass_swash Perl_regclass_swash #define pregexec Perl_pregexec @@ -543,19 +836,33 @@ #define re_intuit_string Perl_re_intuit_string #define regexec_flags Perl_regexec_flags #define regnext Perl_regnext +#if defined(PERL_CORE) || defined(PERL_EXT) #define regprop Perl_regprop +#endif #define repeatcpy Perl_repeatcpy #define rninstr Perl_rninstr #define rsignal Perl_rsignal +#ifdef PERL_CORE #define rsignal_restore Perl_rsignal_restore +#endif +#ifdef PERL_CORE #define rsignal_save Perl_rsignal_save +#endif #define rsignal_state Perl_rsignal_state +#ifdef PERL_CORE #define rxres_free Perl_rxres_free +#endif +#ifdef PERL_CORE #define rxres_restore Perl_rxres_restore +#endif +#ifdef PERL_CORE #define rxres_save Perl_rxres_save +#endif #if !defined(HAS_RENAME) +#ifdef PERL_CORE #define same_dirent Perl_same_dirent #endif +#endif #define savepv Perl_savepv #define savesharedpv Perl_savesharedpv #define savepvn Perl_savepvn @@ -570,7 +877,9 @@ #define save_destructor Perl_save_destructor #define save_destructor_x Perl_save_destructor_x #define save_freesv Perl_save_freesv +#ifdef PERL_CORE #define save_freeop Perl_save_freeop +#endif #define save_freepv Perl_save_freepv #define save_generic_svref Perl_save_generic_svref #define save_generic_pvref Perl_save_generic_pvref @@ -590,7 +899,9 @@ #define save_long Perl_save_long #define save_mortalizesv Perl_save_mortalizesv #define save_nogv Perl_save_nogv +#ifdef PERL_CORE #define save_op Perl_save_op +#endif #define save_scalar Perl_save_scalar #define save_pptr Perl_save_pptr #define save_vptr Perl_save_vptr @@ -599,26 +910,48 @@ #define save_sptr Perl_save_sptr #define save_svref Perl_save_svref #define save_threadsv Perl_save_threadsv +#ifdef PERL_CORE #define sawparens Perl_sawparens +#endif +#ifdef PERL_CORE #define scalar Perl_scalar +#endif +#ifdef PERL_CORE #define scalarkids Perl_scalarkids +#endif +#ifdef PERL_CORE #define scalarseq Perl_scalarseq +#endif +#ifdef PERL_CORE #define scalarvoid Perl_scalarvoid +#endif #define scan_bin Perl_scan_bin #define scan_hex Perl_scan_hex #define scan_num Perl_scan_num #define scan_oct Perl_scan_oct +#ifdef PERL_CORE #define scope Perl_scope +#endif #define screaminstr Perl_screaminstr #if !defined(VMS) +#ifdef PERL_CORE #define setenv_getix Perl_setenv_getix #endif +#endif +#ifdef PERL_CORE #define setdefout Perl_setdefout +#endif +#ifdef PERL_CORE #define share_hek Perl_share_hek +#endif +#ifdef PERL_CORE #define sighandler Perl_sighandler +#endif #define stack_grow Perl_stack_grow #define start_subparse Perl_start_subparse +#ifdef PERL_CORE #define sub_crush_depth Perl_sub_crush_depth +#endif #define sv_2bool Perl_sv_2bool #define sv_2cv Perl_sv_2cv #define sv_2io Perl_sv_2io @@ -636,15 +969,21 @@ #define sv_pvutf8n Perl_sv_pvutf8n #define sv_pvbyten Perl_sv_pvbyten #define sv_true Perl_sv_true +#ifdef PERL_CORE #define sv_add_arena Perl_sv_add_arena +#endif #define sv_backoff Perl_sv_backoff #define sv_bless Perl_sv_bless #define sv_catpvf Perl_sv_catpvf #define sv_vcatpvf Perl_sv_vcatpvf #define sv_catpv Perl_sv_catpv #define sv_chop Perl_sv_chop +#ifdef PERL_CORE #define sv_clean_all Perl_sv_clean_all +#endif +#ifdef PERL_CORE #define sv_clean_objs Perl_sv_clean_objs +#endif #define sv_clear Perl_sv_clear #define sv_cmp Perl_sv_cmp #define sv_cmp_locale Perl_sv_cmp_locale @@ -658,7 +997,9 @@ #define sv_derived_from Perl_sv_derived_from #define sv_eq Perl_sv_eq #define sv_free Perl_sv_free +#ifdef PERL_CORE #define sv_free_arenas Perl_sv_free_arenas +#endif #define sv_gets Perl_sv_gets #define sv_grow Perl_sv_grow #define sv_inc Perl_sv_inc @@ -719,8 +1060,12 @@ #endif #define unpack_str Perl_unpack_str #define unsharepvn Perl_unsharepvn +#ifdef PERL_CORE #define unshare_hek Perl_unshare_hek +#endif +#ifdef PERL_CORE #define utilize Perl_utilize +#endif #define utf16_to_utf8 Perl_utf16_to_utf8 #define utf16_to_utf8_reversed Perl_utf16_to_utf8_reversed #define utf8_length Perl_utf8_length @@ -739,24 +1084,46 @@ #define uvuni_to_utf8_flags Perl_uvuni_to_utf8_flags #define pv_uni_display Perl_pv_uni_display #define sv_uni_display Perl_sv_uni_display +#ifdef PERL_CORE #define vivify_defelem Perl_vivify_defelem +#endif +#ifdef PERL_CORE #define vivify_ref Perl_vivify_ref +#endif +#ifdef PERL_CORE #define wait4pid Perl_wait4pid +#endif +#ifdef PERL_CORE #define report_evil_fh Perl_report_evil_fh +#endif +#ifdef PERL_CORE #define report_uninit Perl_report_uninit +#endif #define warn Perl_warn #define vwarn Perl_vwarn #define warner Perl_warner #define vwarner Perl_vwarner +#ifdef PERL_CORE #define watch Perl_watch +#endif #define whichsig Perl_whichsig +#ifdef PERL_CORE #define yyerror Perl_yyerror +#endif #ifdef USE_PURE_BISON +#ifdef PERL_CORE #define yylex_r Perl_yylex_r #endif +#endif +#ifdef PERL_CORE #define yylex Perl_yylex +#endif +#ifdef PERL_CORE #define yyparse Perl_yyparse +#endif +#ifdef PERL_CORE #define yywarn Perl_yywarn +#endif #if defined(MYMALLOC) #define dump_mstats Perl_dump_mstats #define get_mstats Perl_get_mstats @@ -811,12 +1178,18 @@ #define sv_force_normal_flags Perl_sv_force_normal_flags #define tmps_grow Perl_tmps_grow #define sv_rvweaken Perl_sv_rvweaken +#ifdef PERL_CORE #define magic_killbackrefs Perl_magic_killbackrefs +#endif #define newANONATTRSUB Perl_newANONATTRSUB #define newATTRSUB Perl_newATTRSUB #define newMYSUB Perl_newMYSUB +#ifdef PERL_CORE #define my_attrs Perl_my_attrs +#endif +#ifdef PERL_CORE #define boot_core_xsutils Perl_boot_core_xsutils +#endif #if defined(USE_ITHREADS) #define cx_dup Perl_cx_dup #define si_dup Perl_si_dup @@ -846,315 +1219,797 @@ #define custom_op_name Perl_custom_op_name #define custom_op_desc Perl_custom_op_desc #if defined(PERL_COPY_ON_WRITE) +#ifdef PERL_CORE #define sv_release_IVX Perl_sv_release_IVX #endif +#endif #define sv_nosharing Perl_sv_nosharing #define sv_nolocking Perl_sv_nolocking #define sv_nounlocking Perl_sv_nounlocking #define nothreadhook Perl_nothreadhook #if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define do_trans_simple S_do_trans_simple +#endif +#ifdef PERL_CORE #define do_trans_count S_do_trans_count +#endif +#ifdef PERL_CORE #define do_trans_complex S_do_trans_complex +#endif +#ifdef PERL_CORE #define do_trans_simple_utf8 S_do_trans_simple_utf8 +#endif +#ifdef PERL_CORE #define do_trans_count_utf8 S_do_trans_count_utf8 +#endif +#ifdef PERL_CORE #define do_trans_complex_utf8 S_do_trans_complex_utf8 #endif +#endif #if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define gv_init_sv S_gv_init_sv +#endif +#ifdef PERL_CORE #define require_errno S_require_errno #endif +#endif #if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define hsplit S_hsplit +#endif +#ifdef PERL_CORE #define hfreeentries S_hfreeentries +#endif +#ifdef PERL_CORE #define more_he S_more_he +#endif +#ifdef PERL_CORE #define new_he S_new_he +#endif +#ifdef PERL_CORE #define del_he S_del_he +#endif +#ifdef PERL_CORE #define save_hek_flags S_save_hek_flags +#endif +#ifdef PERL_CORE #define hv_magic_check S_hv_magic_check +#endif +#ifdef PERL_CORE #define unshare_hek_or_pvn S_unshare_hek_or_pvn +#endif +#ifdef PERL_CORE #define share_hek_flags S_share_hek_flags +#endif +#ifdef PERL_CORE #define hv_fetch_flags S_hv_fetch_flags +#endif +#ifdef PERL_CORE #define hv_notallowed S_hv_notallowed #endif +#endif #if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define save_magic S_save_magic +#endif +#ifdef PERL_CORE #define magic_methpack S_magic_methpack +#endif +#ifdef PERL_CORE #define magic_methcall S_magic_methcall #endif +#endif #if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define list_assignment S_list_assignment +#endif +#ifdef PERL_CORE #define bad_type S_bad_type +#endif +#ifdef PERL_CORE #define cop_free S_cop_free +#endif +#ifdef PERL_CORE #define modkids S_modkids +#endif +#ifdef PERL_CORE #define no_bareword_allowed S_no_bareword_allowed +#endif +#ifdef PERL_CORE #define no_fh_allowed S_no_fh_allowed +#endif +#ifdef PERL_CORE #define scalarboolean S_scalarboolean +#endif +#ifdef PERL_CORE #define too_few_arguments S_too_few_arguments +#endif +#ifdef PERL_CORE #define too_many_arguments S_too_many_arguments +#endif +#ifdef PERL_CORE #define newDEFSVOP S_newDEFSVOP +#endif +#ifdef PERL_CORE #define new_logop S_new_logop +#endif +#ifdef PERL_CORE #define simplify_sort S_simplify_sort +#endif +#ifdef PERL_CORE #define is_handle_constructor S_is_handle_constructor +#endif +#ifdef PERL_CORE #define gv_ename S_gv_ename +#endif +#ifdef PERL_CORE #define scalar_mod_type S_scalar_mod_type +#endif +#ifdef PERL_CORE #define my_kid S_my_kid +#endif +#ifdef PERL_CORE #define dup_attrlist S_dup_attrlist +#endif +#ifdef PERL_CORE #define apply_attrs S_apply_attrs +#endif +#ifdef PERL_CORE #define apply_attrs_my S_apply_attrs_my +#endif # if defined(PL_OP_SLAB_ALLOC) +#ifdef PERL_CORE #define Slab_Alloc S_Slab_Alloc +#endif +#ifdef PERL_CORE #define Slab_Free S_Slab_Free +#endif # endif #endif #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define find_beginning S_find_beginning +#endif +#ifdef PERL_CORE #define forbid_setid S_forbid_setid +#endif +#ifdef PERL_CORE #define incpush S_incpush +#endif +#ifdef PERL_CORE #define init_interp S_init_interp +#endif +#ifdef PERL_CORE #define init_ids S_init_ids +#endif +#ifdef PERL_CORE #define init_lexer S_init_lexer +#endif +#ifdef PERL_CORE #define init_main_stash S_init_main_stash +#endif +#ifdef PERL_CORE #define init_perllib S_init_perllib +#endif +#ifdef PERL_CORE #define init_postdump_symbols S_init_postdump_symbols +#endif +#ifdef PERL_CORE #define init_predump_symbols S_init_predump_symbols +#endif +#ifdef PERL_CORE #define my_exit_jump S_my_exit_jump +#endif +#ifdef PERL_CORE #define nuke_stacks S_nuke_stacks +#endif +#ifdef PERL_CORE #define open_script S_open_script +#endif +#ifdef PERL_CORE #define usage S_usage +#endif +#ifdef PERL_CORE #define validate_suid S_validate_suid +#endif # if defined(IAMSUID) +#ifdef PERL_CORE #define fd_on_nosuid_fs S_fd_on_nosuid_fs +#endif # endif +#ifdef PERL_CORE #define parse_body S_parse_body +#endif +#ifdef PERL_CORE #define run_body S_run_body +#endif +#ifdef PERL_CORE #define call_body S_call_body +#endif +#ifdef PERL_CORE #define call_list_body S_call_list_body +#endif #if defined(PERL_FLEXIBLE_EXCEPTIONS) +#ifdef PERL_CORE #define vparse_body S_vparse_body +#endif +#ifdef PERL_CORE #define vrun_body S_vrun_body +#endif +#ifdef PERL_CORE #define vcall_body S_vcall_body +#endif +#ifdef PERL_CORE #define vcall_list_body S_vcall_list_body #endif #endif +#endif #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define refto S_refto +#endif +#ifdef PERL_CORE #define seed S_seed #endif +#endif #if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define doencodes S_doencodes +#endif +#ifdef PERL_CORE #define mul128 S_mul128 +#endif +#ifdef PERL_CORE #define is_an_int S_is_an_int +#endif +#ifdef PERL_CORE #define div128 S_div128 +#endif +#ifdef PERL_CORE #define next_symbol S_next_symbol +#endif +#ifdef PERL_CORE #define find_count S_find_count +#endif +#ifdef PERL_CORE #define group_end S_group_end +#endif +#ifdef PERL_CORE #define measure_struct S_measure_struct #endif +#endif #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define docatch S_docatch +#endif +#ifdef PERL_CORE #define docatch_body S_docatch_body +#endif #if defined(PERL_FLEXIBLE_EXCEPTIONS) +#ifdef PERL_CORE #define vdocatch_body S_vdocatch_body #endif +#endif +#ifdef PERL_CORE #define dofindlabel S_dofindlabel +#endif +#ifdef PERL_CORE #define doparseform S_doparseform +#endif +#ifdef PERL_CORE #define dopoptoeval S_dopoptoeval +#endif +#ifdef PERL_CORE #define dopoptolabel S_dopoptolabel +#endif +#ifdef PERL_CORE #define dopoptoloop S_dopoptoloop +#endif +#ifdef PERL_CORE #define dopoptosub S_dopoptosub +#endif +#ifdef PERL_CORE #define dopoptosub_at S_dopoptosub_at +#endif +#ifdef PERL_CORE #define save_lines S_save_lines +#endif +#ifdef PERL_CORE #define doeval S_doeval +#endif +#ifdef PERL_CORE #define doopen_pmc S_doopen_pmc +#endif +#ifdef PERL_CORE #define path_is_absolute S_path_is_absolute #endif +#endif #if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define do_oddball S_do_oddball +#endif +#ifdef PERL_CORE #define get_db_sub S_get_db_sub +#endif +#ifdef PERL_CORE #define method_common S_method_common #endif +#endif #if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define doform S_doform +#endif +#ifdef PERL_CORE #define emulate_eaccess S_emulate_eaccess +#endif # if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) +#ifdef PERL_CORE #define dooneliner S_dooneliner +#endif # endif #endif #if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT) +#if defined(PERL_CORE) || defined(PERL_EXT) #define reg S_reg +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reganode S_reganode +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regatom S_regatom +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regbranch S_regbranch +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reguni S_reguni +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regclass S_regclass +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcurly S_regcurly +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reg_node S_reg_node +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regpiece S_regpiece +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reginsert S_reginsert +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regoptail S_regoptail +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regtail S_regtail +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regwhite S_regwhite +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define nextchar S_nextchar +#endif # ifdef DEBUGGING +#if defined(PERL_CORE) || defined(PERL_EXT) #define dumpuntil S_dumpuntil +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define put_byte S_put_byte +#endif # endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define scan_commit S_scan_commit +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_anything S_cl_anything +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_is_anything S_cl_is_anything +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_init S_cl_init +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_init_zero S_cl_init_zero +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_and S_cl_and +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_or S_cl_or +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define study_chunk S_study_chunk +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define add_data S_add_data +#endif +#ifdef PERL_CORE #define re_croak2 S_re_croak2 +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regpposixcc S_regpposixcc +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define checkposixcc S_checkposixcc #endif +#endif #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT) +#if defined(PERL_CORE) || defined(PERL_EXT) #define regmatch S_regmatch +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regrepeat S_regrepeat +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regrepeat_hard S_regrepeat_hard +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regtry S_regtry +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reginclass S_reginclass +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcppush S_regcppush +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcppop S_regcppop +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcp_set_to S_regcp_set_to +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cache_re S_cache_re +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghop S_reghop +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghop3 S_reghop3 +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghopmaybe S_reghopmaybe +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghopmaybe3 S_reghopmaybe3 +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define find_byclass S_find_byclass +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define to_utf8_substr S_to_utf8_substr +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define to_byte_substr S_to_byte_substr #endif +#endif #if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define deb_curcv S_deb_curcv +#endif +#ifdef PERL_CORE #define debprof S_debprof #endif +#endif #if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define save_scalar_at S_save_scalar_at #endif +#endif #if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define asIV S_asIV +#endif +#ifdef PERL_CORE #define asUV S_asUV +#endif +#ifdef PERL_CORE #define more_sv S_more_sv +#endif +#ifdef PERL_CORE #define more_xiv S_more_xiv +#endif +#ifdef PERL_CORE #define more_xnv S_more_xnv +#endif +#ifdef PERL_CORE #define more_xpv S_more_xpv +#endif +#ifdef PERL_CORE #define more_xpviv S_more_xpviv +#endif +#ifdef PERL_CORE #define more_xpvnv S_more_xpvnv +#endif +#ifdef PERL_CORE #define more_xpvcv S_more_xpvcv +#endif +#ifdef PERL_CORE #define more_xpvav S_more_xpvav +#endif +#ifdef PERL_CORE #define more_xpvhv S_more_xpvhv +#endif +#ifdef PERL_CORE #define more_xpvmg S_more_xpvmg +#endif +#ifdef PERL_CORE #define more_xpvlv S_more_xpvlv +#endif +#ifdef PERL_CORE #define more_xpvbm S_more_xpvbm +#endif +#ifdef PERL_CORE #define more_xrv S_more_xrv +#endif +#ifdef PERL_CORE #define new_xiv S_new_xiv +#endif +#ifdef PERL_CORE #define new_xnv S_new_xnv +#endif +#ifdef PERL_CORE #define new_xpv S_new_xpv +#endif +#ifdef PERL_CORE #define new_xpviv S_new_xpviv +#endif +#ifdef PERL_CORE #define new_xpvnv S_new_xpvnv +#endif +#ifdef PERL_CORE #define new_xpvcv S_new_xpvcv +#endif +#ifdef PERL_CORE #define new_xpvav S_new_xpvav +#endif +#ifdef PERL_CORE #define new_xpvhv S_new_xpvhv +#endif +#ifdef PERL_CORE #define new_xpvmg S_new_xpvmg +#endif +#ifdef PERL_CORE #define new_xpvlv S_new_xpvlv +#endif +#ifdef PERL_CORE #define new_xpvbm S_new_xpvbm +#endif +#ifdef PERL_CORE #define new_xrv S_new_xrv +#endif +#ifdef PERL_CORE #define del_xiv S_del_xiv +#endif +#ifdef PERL_CORE #define del_xnv S_del_xnv +#endif +#ifdef PERL_CORE #define del_xpv S_del_xpv +#endif +#ifdef PERL_CORE #define del_xpviv S_del_xpviv +#endif +#ifdef PERL_CORE #define del_xpvnv S_del_xpvnv +#endif +#ifdef PERL_CORE #define del_xpvcv S_del_xpvcv +#endif +#ifdef PERL_CORE #define del_xpvav S_del_xpvav +#endif +#ifdef PERL_CORE #define del_xpvhv S_del_xpvhv +#endif +#ifdef PERL_CORE #define del_xpvmg S_del_xpvmg +#endif +#ifdef PERL_CORE #define del_xpvlv S_del_xpvlv +#endif +#ifdef PERL_CORE #define del_xpvbm S_del_xpvbm +#endif +#ifdef PERL_CORE #define del_xrv S_del_xrv +#endif +#ifdef PERL_CORE #define sv_unglob S_sv_unglob +#endif +#ifdef PERL_CORE #define not_a_number S_not_a_number +#endif +#ifdef PERL_CORE #define visit S_visit +#endif +#ifdef PERL_CORE #define sv_add_backref S_sv_add_backref +#endif +#ifdef PERL_CORE #define sv_del_backref S_sv_del_backref +#endif # ifdef DEBUGGING +#ifdef PERL_CORE #define del_sv S_del_sv +#endif # endif # if !defined(NV_PRESERVES_UV) +#ifdef PERL_CORE #define sv_2iuv_non_preserve S_sv_2iuv_non_preserve +#endif # endif +#ifdef PERL_CORE #define expect_number S_expect_number +#endif # if defined(USE_ITHREADS) +#ifdef PERL_CORE #define gv_share S_gv_share +#endif # endif +#ifdef PERL_CORE +#define utf8_mg_pos S_utf8_mg_pos +#endif +#ifdef PERL_CORE +#define utf8_mg_pos_init S_utf8_mg_pos_init +#endif #if defined(PERL_COPY_ON_WRITE) +#ifdef PERL_CORE #define sv_release_COW S_sv_release_COW #endif #endif +#endif #if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define check_uni S_check_uni +#endif +#ifdef PERL_CORE #define force_next S_force_next +#endif +#ifdef PERL_CORE #define force_version S_force_version +#endif +#ifdef PERL_CORE #define force_word S_force_word +#endif +#ifdef PERL_CORE #define tokeq S_tokeq +#endif +#ifdef PERL_CORE #define pending_ident S_pending_ident +#endif +#ifdef PERL_CORE #define scan_const S_scan_const +#endif +#ifdef PERL_CORE #define scan_formline S_scan_formline +#endif +#ifdef PERL_CORE #define scan_heredoc S_scan_heredoc +#endif +#ifdef PERL_CORE #define scan_ident S_scan_ident +#endif +#ifdef PERL_CORE #define scan_inputsymbol S_scan_inputsymbol +#endif +#ifdef PERL_CORE #define scan_pat S_scan_pat +#endif +#ifdef PERL_CORE #define scan_str S_scan_str +#endif +#ifdef PERL_CORE #define scan_subst S_scan_subst +#endif +#ifdef PERL_CORE #define scan_trans S_scan_trans +#endif +#ifdef PERL_CORE #define scan_word S_scan_word +#endif +#ifdef PERL_CORE #define skipspace S_skipspace +#endif +#ifdef PERL_CORE #define swallow_bom S_swallow_bom +#endif +#ifdef PERL_CORE #define checkcomma S_checkcomma +#endif +#ifdef PERL_CORE #define force_ident S_force_ident +#endif +#ifdef PERL_CORE #define incline S_incline +#endif +#ifdef PERL_CORE #define intuit_method S_intuit_method +#endif +#ifdef PERL_CORE #define intuit_more S_intuit_more +#endif +#ifdef PERL_CORE #define lop S_lop +#endif +#ifdef PERL_CORE #define missingterm S_missingterm +#endif +#ifdef PERL_CORE #define no_op S_no_op +#endif +#ifdef PERL_CORE #define set_csh S_set_csh +#endif +#ifdef PERL_CORE #define sublex_done S_sublex_done +#endif +#ifdef PERL_CORE #define sublex_push S_sublex_push +#endif +#ifdef PERL_CORE #define sublex_start S_sublex_start +#endif +#ifdef PERL_CORE #define filter_gets S_filter_gets +#endif +#ifdef PERL_CORE #define find_in_my_stash S_find_in_my_stash +#endif +#ifdef PERL_CORE #define new_constant S_new_constant +#endif # if defined(DEBUGGING) +#ifdef PERL_CORE #define tokereport S_tokereport +#endif # endif +#ifdef PERL_CORE #define ao S_ao +#endif +#ifdef PERL_CORE #define depcom S_depcom +#endif +#ifdef PERL_CORE #define incl_perldb S_incl_perldb +#endif #if 0 +#ifdef PERL_CORE #define utf16_textfilter S_utf16_textfilter +#endif +#ifdef PERL_CORE #define utf16rev_textfilter S_utf16rev_textfilter #endif +#endif # if defined(PERL_CR_FILTER) +#ifdef PERL_CORE #define cr_textfilter S_cr_textfilter +#endif # endif #endif #if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define isa_lookup S_isa_lookup #endif +#endif #if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define stdize_locale S_stdize_locale #endif +#endif #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define closest_cop S_closest_cop +#endif +#ifdef PERL_CORE #define mess_alloc S_mess_alloc #endif +#endif #define sv_setsv_flags Perl_sv_setsv_flags #define sv_catpvn_flags Perl_sv_catpvn_flags #define sv_catsv_flags Perl_sv_catsv_flags @@ -1188,31 +2043,65 @@ #define PerlIO_stdout Perl_PerlIO_stdout #define PerlIO_stderr Perl_PerlIO_stderr #endif /* PERLIO_LAYERS */ +#ifdef PERL_CORE #define deb_stack_all Perl_deb_stack_all +#endif #ifdef PERL_IN_DEB_C +#ifdef PERL_CORE #define deb_stack_n S_deb_stack_n #endif +#endif +#ifdef PERL_CORE #define pad_new Perl_pad_new +#endif +#ifdef PERL_CORE #define pad_undef Perl_pad_undef +#endif +#ifdef PERL_CORE #define pad_add_name Perl_pad_add_name +#endif +#ifdef PERL_CORE #define pad_add_anon Perl_pad_add_anon +#endif +#ifdef PERL_CORE #define pad_check_dup Perl_pad_check_dup +#endif #ifdef DEBUGGING +#ifdef PERL_CORE #define pad_setsv Perl_pad_setsv #endif +#endif +#ifdef PERL_CORE #define pad_block_start Perl_pad_block_start +#endif +#ifdef PERL_CORE #define pad_tidy Perl_pad_tidy +#endif +#ifdef PERL_CORE #define do_dump_pad Perl_do_dump_pad +#endif +#ifdef PERL_CORE #define pad_fixup_inner_anons Perl_pad_fixup_inner_anons +#endif +#ifdef PERL_CORE #define pad_push Perl_pad_push +#endif #if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define pad_findlex S_pad_findlex +#endif # if defined(DEBUGGING) +#ifdef PERL_CORE #define cv_dump S_cv_dump +#endif # endif +#ifdef PERL_CORE #define cv_clone2 S_cv_clone2 #endif +#endif +#ifdef PERL_CORE #define find_runcv Perl_find_runcv +#endif #define ck_anoncode Perl_ck_anoncode #define ck_bitop Perl_ck_bitop #define ck_concat Perl_ck_concat @@ -1611,41 +2500,65 @@ # endif #endif #if defined(MYMALLOC) +#ifdef PERL_CORE #define malloced_size Perl_malloced_size #endif +#endif #define get_context Perl_get_context #define set_context Perl_set_context #define amagic_call(a,b,c,d) Perl_amagic_call(aTHX_ a,b,c,d) #define Gv_AMupdate(a) Perl_Gv_AMupdate(aTHX_ a) #define gv_handler(a,b) Perl_gv_handler(aTHX_ a,b) +#ifdef PERL_CORE #define append_elem(a,b,c) Perl_append_elem(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define append_list(a,b,c) Perl_append_list(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define apply(a,b,c) Perl_apply(aTHX_ a,b,c) +#endif #define apply_attrs_string(a,b,c,d) Perl_apply_attrs_string(aTHX_ a,b,c,d) #define av_clear(a) Perl_av_clear(aTHX_ a) #define av_delete(a,b,c) Perl_av_delete(aTHX_ a,b,c) #define av_exists(a,b) Perl_av_exists(aTHX_ a,b) #define av_extend(a,b) Perl_av_extend(aTHX_ a,b) +#ifdef PERL_CORE #define av_fake(a,b) Perl_av_fake(aTHX_ a,b) +#endif #define av_fetch(a,b,c) Perl_av_fetch(aTHX_ a,b,c) #define av_fill(a,b) Perl_av_fill(aTHX_ a,b) #define av_len(a) Perl_av_len(aTHX_ a) #define av_make(a,b) Perl_av_make(aTHX_ a,b) #define av_pop(a) Perl_av_pop(aTHX_ a) #define av_push(a,b) Perl_av_push(aTHX_ a,b) +#ifdef PERL_CORE #define av_reify(a) Perl_av_reify(aTHX_ a) +#endif #define av_shift(a) Perl_av_shift(aTHX_ a) #define av_store(a,b,c) Perl_av_store(aTHX_ a,b,c) #define av_undef(a) Perl_av_undef(aTHX_ a) #define av_unshift(a,b) Perl_av_unshift(aTHX_ a,b) +#ifdef PERL_CORE #define bind_match(a,b,c) Perl_bind_match(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define block_end(a,b) Perl_block_end(aTHX_ a,b) +#endif #define block_gimme() Perl_block_gimme(aTHX) +#ifdef PERL_CORE #define block_start(a) Perl_block_start(aTHX_ a) +#endif +#ifdef PERL_CORE #define boot_core_UNIVERSAL() Perl_boot_core_UNIVERSAL(aTHX) +#endif +#ifdef PERL_CORE #define boot_core_PerlIO() Perl_boot_core_PerlIO(aTHX) +#endif #define call_list(a,b) Perl_call_list(aTHX_ a,b) +#ifdef PERL_CORE #define cando(a,b,c) Perl_cando(aTHX_ a,b,c) +#endif #define cast_ulong(a) Perl_cast_ulong(aTHX_ a) #define cast_i32(a) Perl_cast_i32(aTHX_ a) #define cast_iv(a) Perl_cast_iv(aTHX_ a) @@ -1653,14 +2566,22 @@ #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) #define my_chsize(a,b) Perl_my_chsize(aTHX_ a,b) #endif +#ifdef PERL_CORE #define convert(a,b,c) Perl_convert(aTHX_ a,b,c) +#endif #define vcroak(a,b) Perl_vcroak(aTHX_ a,b) #if defined(PERL_IMPLICIT_CONTEXT) #endif +#ifdef PERL_CORE #define cv_ckproto(a,b,c) Perl_cv_ckproto(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define cv_clone(a) Perl_cv_clone(aTHX_ a) +#endif #define cv_const_sv(a) Perl_cv_const_sv(aTHX_ a) +#ifdef PERL_CORE #define op_const_sv(a,b) Perl_op_const_sv(aTHX_ a,b) +#endif #define cv_undef(a) Perl_cv_undef(aTHX_ a) #define cx_dump(a) Perl_cx_dump(aTHX_ a) #define filter_add(a,b) Perl_filter_add(aTHX_ a,b) @@ -1668,8 +2589,12 @@ #define filter_read(a,b,c) Perl_filter_read(aTHX_ a,b,c) #define get_op_descs() Perl_get_op_descs(aTHX) #define get_op_names() Perl_get_op_names(aTHX) +#ifdef PERL_CORE #define get_no_modify() Perl_get_no_modify(aTHX) +#endif +#ifdef PERL_CORE #define get_opargs() Perl_get_opargs(aTHX) +#endif #define get_ppaddr() Perl_get_ppaddr(aTHX) #define cxinc() Perl_cxinc(aTHX) #define vdeb(a,b) Perl_vdeb(aTHX_ a,b) @@ -1678,53 +2603,113 @@ #define debstack() Perl_debstack(aTHX) #define debstackptrs() Perl_debstackptrs(aTHX) #define delimcpy(a,b,c,d,e,f) Perl_delimcpy(aTHX_ a,b,c,d,e,f) +#ifdef PERL_CORE #define deprecate(a) Perl_deprecate(aTHX_ a) +#endif +#ifdef PERL_CORE #define deprecate_old(a) Perl_deprecate_old(aTHX_ a) +#endif +#ifdef PERL_CORE #define vdie(a,b) Perl_vdie(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define die_where(a,b) Perl_die_where(aTHX_ a,b) +#endif #define dounwind(a) Perl_dounwind(aTHX_ a) +#ifdef PERL_CORE #define do_aexec(a,b,c) Perl_do_aexec(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define do_aexec5(a,b,c,d,e) Perl_do_aexec5(aTHX_ a,b,c,d,e) +#endif #define do_binmode(a,b,c) Perl_do_binmode(aTHX_ a,b,c) +#ifdef PERL_CORE #define do_chop(a,b) Perl_do_chop(aTHX_ a,b) +#endif #define do_close(a,b) Perl_do_close(aTHX_ a,b) +#ifdef PERL_CORE #define do_eof(a) Perl_do_eof(aTHX_ a) +#endif +#ifdef PERL_CORE #define do_exec(a) Perl_do_exec(aTHX_ a) +#endif #if defined(WIN32) #define do_aspawn(a,b,c) Perl_do_aspawn(aTHX_ a,b,c) #define do_spawn(a) Perl_do_spawn(aTHX_ a) #define do_spawn_nowait(a) Perl_do_spawn_nowait(aTHX_ a) #endif #if !defined(WIN32) +#ifdef PERL_CORE #define do_exec3(a,b,c) Perl_do_exec3(aTHX_ a,b,c) #endif +#endif +#ifdef PERL_CORE #define do_execfree() Perl_do_execfree(aTHX) +#endif #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) +#ifdef PERL_CORE #define do_ipcctl(a,b,c) Perl_do_ipcctl(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define do_ipcget(a,b,c) Perl_do_ipcget(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define do_msgrcv(a,b) Perl_do_msgrcv(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define do_msgsnd(a,b) Perl_do_msgsnd(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define do_semop(a,b) Perl_do_semop(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define do_shmio(a,b,c) Perl_do_shmio(aTHX_ a,b,c) #endif +#endif #define do_join(a,b,c,d) Perl_do_join(aTHX_ a,b,c,d) +#ifdef PERL_CORE #define do_kv() Perl_do_kv(aTHX) +#endif #define do_open(a,b,c,d,e,f,g) Perl_do_open(aTHX_ a,b,c,d,e,f,g) #define do_open9(a,b,c,d,e,f,g,h,i) Perl_do_open9(aTHX_ a,b,c,d,e,f,g,h,i) #define do_openn(a,b,c,d,e,f,g,h,i) Perl_do_openn(aTHX_ a,b,c,d,e,f,g,h,i) +#ifdef PERL_CORE #define do_pipe(a,b,c) Perl_do_pipe(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define do_print(a,b) Perl_do_print(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define do_readline() Perl_do_readline(aTHX) +#endif +#ifdef PERL_CORE #define do_chomp(a) Perl_do_chomp(aTHX_ a) +#endif +#ifdef PERL_CORE #define do_seek(a,b,c) Perl_do_seek(aTHX_ a,b,c) +#endif #define do_sprintf(a,b,c) Perl_do_sprintf(aTHX_ a,b,c) +#ifdef PERL_CORE #define do_sysseek(a,b,c) Perl_do_sysseek(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define do_tell(a) Perl_do_tell(aTHX_ a) +#endif +#ifdef PERL_CORE #define do_trans(a) Perl_do_trans(aTHX_ a) +#endif +#ifdef PERL_CORE #define do_vecget(a,b,c) Perl_do_vecget(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define do_vecset(a) Perl_do_vecset(aTHX_ a) +#endif +#ifdef PERL_CORE #define do_vop(a,b,c,d) Perl_do_vop(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define dofile(a) Perl_dofile(aTHX_ a) +#endif #define dowantarray() Perl_dowantarray(aTHX) #define dump_all() Perl_dump_all(aTHX) #define dump_eval() Perl_dump_eval(aTHX) @@ -1739,15 +2724,25 @@ #define dump_sub(a) Perl_dump_sub(aTHX_ a) #define fbm_compile(a,b) Perl_fbm_compile(aTHX_ a,b) #define fbm_instr(a,b,c,d) Perl_fbm_instr(aTHX_ a,b,c,d) +#ifdef PERL_CORE #define find_script(a,b,c,d) Perl_find_script(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define force_list(a) Perl_force_list(aTHX_ a) +#endif +#ifdef PERL_CORE #define fold_constants(a) Perl_fold_constants(aTHX_ a) +#endif #define vform(a,b) Perl_vform(aTHX_ a,b) #define free_tmps() Perl_free_tmps(aTHX) +#ifdef PERL_CORE #define gen_constant_list(a) Perl_gen_constant_list(aTHX_ a) +#endif #if !defined(HAS_GETENV_LEN) +#ifdef PERL_CORE #define getenv_len(a,b) Perl_getenv_len(aTHX_ a,b) #endif +#endif #define gp_free(a) Perl_gp_free(aTHX_ a) #define gp_ref(a) Perl_gp_ref(aTHX_ a) #define gv_AVadd(a) Perl_gv_AVadd(aTHX_ a) @@ -1796,16 +2791,30 @@ #define ibcmp(a,b,c) Perl_ibcmp(aTHX_ a,b,c) #define ibcmp_locale(a,b,c) Perl_ibcmp_locale(aTHX_ a,b,c) #define ibcmp_utf8(a,b,c,d,e,f,g,h) Perl_ibcmp_utf8(aTHX_ a,b,c,d,e,f,g,h) +#ifdef PERL_CORE #define ingroup(a,b) Perl_ingroup(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define init_argv_symbols(a,b) Perl_init_argv_symbols(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define init_debugger() Perl_init_debugger(aTHX) +#endif #define init_stacks() Perl_init_stacks(aTHX) #define init_tm(a) Perl_init_tm(aTHX_ a) +#ifdef PERL_CORE #define intro_my() Perl_intro_my(aTHX) +#endif #define instr(a,b) Perl_instr(aTHX_ a,b) +#ifdef PERL_CORE #define io_close(a,b) Perl_io_close(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define invert(a) Perl_invert(aTHX_ a) +#endif +#ifdef PERL_CORE #define is_gv_magical(a,b,c) Perl_is_gv_magical(aTHX_ a,b,c) +#endif #define is_lvalue_sub() Perl_is_lvalue_sub(aTHX) #define to_uni_upper_lc(a) Perl_to_uni_upper_lc(aTHX_ a) #define to_uni_title_lc(a) Perl_to_uni_title_lc(aTHX_ a) @@ -1860,80 +2869,201 @@ #define is_utf8_punct(a) Perl_is_utf8_punct(aTHX_ a) #define is_utf8_xdigit(a) Perl_is_utf8_xdigit(aTHX_ a) #define is_utf8_mark(a) Perl_is_utf8_mark(aTHX_ a) +#ifdef PERL_CORE #define jmaybe(a) Perl_jmaybe(aTHX_ a) +#endif +#ifdef PERL_CORE #define keyword(a,b) Perl_keyword(aTHX_ a,b) +#endif #define leave_scope(a) Perl_leave_scope(aTHX_ a) +#ifdef PERL_CORE #define lex_end() Perl_lex_end(aTHX) +#endif +#ifdef PERL_CORE #define lex_start(a) Perl_lex_start(aTHX_ a) +#endif #define op_null(a) Perl_op_null(aTHX_ a) +#ifdef PERL_CORE #define op_clear(a) Perl_op_clear(aTHX_ a) +#endif +#ifdef PERL_CORE #define linklist(a) Perl_linklist(aTHX_ a) +#endif +#ifdef PERL_CORE #define list(a) Perl_list(aTHX_ a) +#endif +#ifdef PERL_CORE #define listkids(a) Perl_listkids(aTHX_ a) +#endif #define vload_module(a,b,c,d) Perl_vload_module(aTHX_ a,b,c,d) +#ifdef PERL_CORE #define localize(a,b) Perl_localize(aTHX_ a,b) +#endif #define looks_like_number(a) Perl_looks_like_number(aTHX_ a) #define grok_bin(a,b,c,d) Perl_grok_bin(aTHX_ a,b,c,d) #define grok_hex(a,b,c,d) Perl_grok_hex(aTHX_ a,b,c,d) #define grok_number(a,b,c) Perl_grok_number(aTHX_ a,b,c) #define grok_numeric_radix(a,b) Perl_grok_numeric_radix(aTHX_ a,b) #define grok_oct(a,b,c,d) Perl_grok_oct(aTHX_ a,b,c,d) +#ifdef PERL_CORE #define magic_clearenv(a,b) Perl_magic_clearenv(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_clear_all_env(a,b) Perl_magic_clear_all_env(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_clearpack(a,b) Perl_magic_clearpack(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_clearsig(a,b) Perl_magic_clearsig(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_existspack(a,b) Perl_magic_existspack(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_freeregexp(a,b) Perl_magic_freeregexp(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_freeovrld(a,b) Perl_magic_freeovrld(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_get(a,b) Perl_magic_get(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_getarylen(a,b) Perl_magic_getarylen(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_getdefelem(a,b) Perl_magic_getdefelem(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_getglob(a,b) Perl_magic_getglob(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_getnkeys(a,b) Perl_magic_getnkeys(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_getpack(a,b) Perl_magic_getpack(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_getpos(a,b) Perl_magic_getpos(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_getsig(a,b) Perl_magic_getsig(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_getsubstr(a,b) Perl_magic_getsubstr(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_gettaint(a,b) Perl_magic_gettaint(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_getuvar(a,b) Perl_magic_getuvar(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_getvec(a,b) Perl_magic_getvec(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_len(a,b) Perl_magic_len(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_nextpack(a,b,c) Perl_magic_nextpack(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define magic_regdata_cnt(a,b) Perl_magic_regdata_cnt(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_regdatum_get(a,b) Perl_magic_regdatum_get(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_regdatum_set(a,b) Perl_magic_regdatum_set(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_set(a,b) Perl_magic_set(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setamagic(a,b) Perl_magic_setamagic(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setarylen(a,b) Perl_magic_setarylen(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setbm(a,b) Perl_magic_setbm(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setdbline(a,b) Perl_magic_setdbline(aTHX_ a,b) +#endif #if defined(USE_LOCALE_COLLATE) +#ifdef PERL_CORE #define magic_setcollxfrm(a,b) Perl_magic_setcollxfrm(aTHX_ a,b) #endif +#endif +#ifdef PERL_CORE #define magic_setdefelem(a,b) Perl_magic_setdefelem(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setenv(a,b) Perl_magic_setenv(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setfm(a,b) Perl_magic_setfm(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setisa(a,b) Perl_magic_setisa(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setglob(a,b) Perl_magic_setglob(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setmglob(a,b) Perl_magic_setmglob(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setnkeys(a,b) Perl_magic_setnkeys(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setpack(a,b) Perl_magic_setpack(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setpos(a,b) Perl_magic_setpos(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setsig(a,b) Perl_magic_setsig(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setsubstr(a,b) Perl_magic_setsubstr(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_settaint(a,b) Perl_magic_settaint(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setuvar(a,b) Perl_magic_setuvar(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_setvec(a,b) Perl_magic_setvec(aTHX_ a,b) +#endif +#ifdef PERL_CORE +#define magic_setutf8(a,b) Perl_magic_setutf8(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_set_all_env(a,b) Perl_magic_set_all_env(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_sizepack(a,b) Perl_magic_sizepack(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_wipepack(a,b) Perl_magic_wipepack(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magicname(a,b,c) Perl_magicname(aTHX_ a,b,c) +#endif #define markstack_grow() Perl_markstack_grow(aTHX) #if defined(USE_LOCALE_COLLATE) +#ifdef PERL_CORE #define mem_collxfrm(a,b,c) Perl_mem_collxfrm(aTHX_ a,b,c) #endif +#endif #define vmess(a,b) Perl_vmess(aTHX_ a,b) +#ifdef PERL_CORE #define qerror(a) Perl_qerror(aTHX_ a) +#endif #define sortsv(a,b,c) Perl_sortsv(aTHX_ a,b,c) #define mg_clear(a) Perl_mg_clear(aTHX_ a) #define mg_copy(a,b,c,d) Perl_mg_copy(aTHX_ a,b,c,d) @@ -1945,10 +3075,16 @@ #define mg_set(a) Perl_mg_set(aTHX_ a) #define mg_size(a) Perl_mg_size(aTHX_ a) #define mini_mktime(a) Perl_mini_mktime(aTHX_ a) +#ifdef PERL_CORE #define mod(a,b) Perl_mod(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define mode_from_discipline(a) Perl_mode_from_discipline(aTHX_ a) +#endif #define moreswitches(a) Perl_moreswitches(aTHX_ a) +#ifdef PERL_CORE #define my(a) Perl_my(aTHX_ a) +#endif #define my_atof(a) Perl_my_atof(aTHX_ a) #if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY)) #define my_bcopy Perl_my_bcopy @@ -1980,7 +3116,9 @@ #define my_htonl(a) Perl_my_htonl(aTHX_ a) #define my_ntohl(a) Perl_my_ntohl(aTHX_ a) #endif +#ifdef PERL_CORE #define my_unexec() Perl_my_unexec(aTHX) +#endif #define newANONLIST(a) Perl_newANONLIST(aTHX_ a) #define newANONHASH(a) Perl_newANONHASH(aTHX_ a) #define newANONSUB(a,b,c) Perl_newANONSUB(aTHX_ a,b,c) @@ -2039,22 +3177,50 @@ #define vnumify(a) Perl_vnumify(aTHX_ a) #define vstringify(a) Perl_vstringify(aTHX_ a) #define vcmp(a,b) Perl_vcmp(aTHX_ a,b) +#ifdef PERL_CORE #define nextargv(a) Perl_nextargv(aTHX_ a) +#endif #define ninstr(a,b,c,d) Perl_ninstr(aTHX_ a,b,c,d) +#ifdef PERL_CORE #define oopsCV(a) Perl_oopsCV(aTHX_ a) +#endif #define op_free(a) Perl_op_free(aTHX_ a) +#ifdef PERL_CORE #define package(a) Perl_package(aTHX_ a) +#endif +#ifdef PERL_CORE #define pad_alloc(a,b) Perl_pad_alloc(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define allocmy(a) Perl_allocmy(aTHX_ a) +#endif +#ifdef PERL_CORE #define pad_findmy(a) Perl_pad_findmy(aTHX_ a) +#endif +#ifdef PERL_CORE #define oopsAV(a) Perl_oopsAV(aTHX_ a) +#endif +#ifdef PERL_CORE #define oopsHV(a) Perl_oopsHV(aTHX_ a) +#endif +#ifdef PERL_CORE #define pad_leavemy() Perl_pad_leavemy(aTHX) +#endif #define pad_sv(a) Perl_pad_sv(aTHX_ a) +#ifdef PERL_CORE #define pad_free(a) Perl_pad_free(aTHX_ a) +#endif +#ifdef PERL_CORE #define pad_reset() Perl_pad_reset(aTHX) +#endif +#ifdef PERL_CORE #define pad_swipe(a,b) Perl_pad_swipe(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define peep(a) Perl_peep(aTHX_ a) +#endif +#ifdef PERL_CORE +#endif #if defined(USE_REENTRANT_API) #define reentrant_size() Perl_reentrant_size(aTHX) #define reentrant_init() Perl_reentrant_init(aTHX) @@ -2082,17 +3248,33 @@ #define set_numeric_standard() Perl_set_numeric_standard(aTHX) #define require_pv(a) Perl_require_pv(aTHX_ a) #define pack_cat(a,b,c,d,e,f,g) Perl_pack_cat(aTHX_ a,b,c,d,e,f,g) +#ifdef PERL_CORE #define pidgone(a,b) Perl_pidgone(aTHX_ a,b) +#endif #define pmflag(a,b) Perl_pmflag(aTHX_ a,b) +#ifdef PERL_CORE #define pmruntime(a,b,c) Perl_pmruntime(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define pmtrans(a,b,c) Perl_pmtrans(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define pop_return() Perl_pop_return(aTHX) +#endif #define pop_scope() Perl_pop_scope(aTHX) +#ifdef PERL_CORE #define prepend_elem(a,b,c) Perl_prepend_elem(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define push_return(a) Perl_push_return(aTHX_ a) +#endif #define push_scope() Perl_push_scope(aTHX) +#ifdef PERL_CORE #define ref(a,b) Perl_ref(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define refkids(a,b) Perl_refkids(aTHX_ a,b) +#endif #define regdump(a) Perl_regdump(aTHX_ a) #define regclass_swash(a,b,c,d) Perl_regclass_swash(aTHX_ a,b,c,d) #define pregexec(a,b,c,d,e,f,g) Perl_pregexec(aTHX_ a,b,c,d,e,f,g) @@ -2102,19 +3284,33 @@ #define re_intuit_string(a) Perl_re_intuit_string(aTHX_ a) #define regexec_flags(a,b,c,d,e,f,g,h) Perl_regexec_flags(aTHX_ a,b,c,d,e,f,g,h) #define regnext(a) Perl_regnext(aTHX_ a) +#if defined(PERL_CORE) || defined(PERL_EXT) #define regprop(a,b) Perl_regprop(aTHX_ a,b) +#endif #define repeatcpy(a,b,c,d) Perl_repeatcpy(aTHX_ a,b,c,d) #define rninstr(a,b,c,d) Perl_rninstr(aTHX_ a,b,c,d) #define rsignal(a,b) Perl_rsignal(aTHX_ a,b) +#ifdef PERL_CORE #define rsignal_restore(a,b) Perl_rsignal_restore(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define rsignal_save(a,b,c) Perl_rsignal_save(aTHX_ a,b,c) +#endif #define rsignal_state(a) Perl_rsignal_state(aTHX_ a) +#ifdef PERL_CORE #define rxres_free(a) Perl_rxres_free(aTHX_ a) +#endif +#ifdef PERL_CORE #define rxres_restore(a,b) Perl_rxres_restore(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define rxres_save(a,b) Perl_rxres_save(aTHX_ a,b) +#endif #if !defined(HAS_RENAME) +#ifdef PERL_CORE #define same_dirent(a,b) Perl_same_dirent(aTHX_ a,b) #endif +#endif #define savepv(a) Perl_savepv(aTHX_ a) #define savesharedpv(a) Perl_savesharedpv(aTHX_ a) #define savepvn(a,b) Perl_savepvn(aTHX_ a,b) @@ -2129,7 +3325,9 @@ #define save_destructor(a,b) Perl_save_destructor(aTHX_ a,b) #define save_destructor_x(a,b) Perl_save_destructor_x(aTHX_ a,b) #define save_freesv(a) Perl_save_freesv(aTHX_ a) +#ifdef PERL_CORE #define save_freeop(a) Perl_save_freeop(aTHX_ a) +#endif #define save_freepv(a) Perl_save_freepv(aTHX_ a) #define save_generic_svref(a) Perl_save_generic_svref(aTHX_ a) #define save_generic_pvref(a) Perl_save_generic_pvref(aTHX_ a) @@ -2149,7 +3347,9 @@ #define save_long(a) Perl_save_long(aTHX_ a) #define save_mortalizesv(a) Perl_save_mortalizesv(aTHX_ a) #define save_nogv(a) Perl_save_nogv(aTHX_ a) +#ifdef PERL_CORE #define save_op() Perl_save_op(aTHX) +#endif #define save_scalar(a) Perl_save_scalar(aTHX_ a) #define save_pptr(a) Perl_save_pptr(aTHX_ a) #define save_vptr(a) Perl_save_vptr(aTHX_ a) @@ -2158,26 +3358,48 @@ #define save_sptr(a) Perl_save_sptr(aTHX_ a) #define save_svref(a) Perl_save_svref(aTHX_ a) #define save_threadsv(a) Perl_save_threadsv(aTHX_ a) +#ifdef PERL_CORE #define sawparens(a) Perl_sawparens(aTHX_ a) +#endif +#ifdef PERL_CORE #define scalar(a) Perl_scalar(aTHX_ a) +#endif +#ifdef PERL_CORE #define scalarkids(a) Perl_scalarkids(aTHX_ a) +#endif +#ifdef PERL_CORE #define scalarseq(a) Perl_scalarseq(aTHX_ a) +#endif +#ifdef PERL_CORE #define scalarvoid(a) Perl_scalarvoid(aTHX_ a) +#endif #define scan_bin(a,b,c) Perl_scan_bin(aTHX_ a,b,c) #define scan_hex(a,b,c) Perl_scan_hex(aTHX_ a,b,c) #define scan_num(a,b) Perl_scan_num(aTHX_ a,b) #define scan_oct(a,b,c) Perl_scan_oct(aTHX_ a,b,c) +#ifdef PERL_CORE #define scope(a) Perl_scope(aTHX_ a) +#endif #define screaminstr(a,b,c,d,e,f) Perl_screaminstr(aTHX_ a,b,c,d,e,f) #if !defined(VMS) +#ifdef PERL_CORE #define setenv_getix(a) Perl_setenv_getix(aTHX_ a) #endif +#endif +#ifdef PERL_CORE #define setdefout(a) Perl_setdefout(aTHX_ a) +#endif +#ifdef PERL_CORE #define share_hek(a,b,c) Perl_share_hek(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define sighandler Perl_sighandler +#endif #define stack_grow(a,b,c) Perl_stack_grow(aTHX_ a,b,c) #define start_subparse(a,b) Perl_start_subparse(aTHX_ a,b) +#ifdef PERL_CORE #define sub_crush_depth(a) Perl_sub_crush_depth(aTHX_ a) +#endif #define sv_2bool(a) Perl_sv_2bool(aTHX_ a) #define sv_2cv(a,b,c,d) Perl_sv_2cv(aTHX_ a,b,c,d) #define sv_2io(a) Perl_sv_2io(aTHX_ a) @@ -2195,14 +3417,20 @@ #define sv_pvutf8n(a,b) Perl_sv_pvutf8n(aTHX_ a,b) #define sv_pvbyten(a,b) Perl_sv_pvbyten(aTHX_ a,b) #define sv_true(a) Perl_sv_true(aTHX_ a) +#ifdef PERL_CORE #define sv_add_arena(a,b,c) Perl_sv_add_arena(aTHX_ a,b,c) +#endif #define sv_backoff(a) Perl_sv_backoff(aTHX_ a) #define sv_bless(a,b) Perl_sv_bless(aTHX_ a,b) #define sv_vcatpvf(a,b,c) Perl_sv_vcatpvf(aTHX_ a,b,c) #define sv_catpv(a,b) Perl_sv_catpv(aTHX_ a,b) #define sv_chop(a,b) Perl_sv_chop(aTHX_ a,b) +#ifdef PERL_CORE #define sv_clean_all() Perl_sv_clean_all(aTHX) +#endif +#ifdef PERL_CORE #define sv_clean_objs() Perl_sv_clean_objs(aTHX) +#endif #define sv_clear(a) Perl_sv_clear(aTHX_ a) #define sv_cmp(a,b) Perl_sv_cmp(aTHX_ a,b) #define sv_cmp_locale(a,b) Perl_sv_cmp_locale(aTHX_ a,b) @@ -2216,7 +3444,9 @@ #define sv_derived_from(a,b) Perl_sv_derived_from(aTHX_ a,b) #define sv_eq(a,b) Perl_sv_eq(aTHX_ a,b) #define sv_free(a) Perl_sv_free(aTHX_ a) +#ifdef PERL_CORE #define sv_free_arenas() Perl_sv_free_arenas(aTHX) +#endif #define sv_gets(a,b,c) Perl_sv_gets(aTHX_ a,b,c) #define sv_grow(a,b) Perl_sv_grow(aTHX_ a,b) #define sv_inc(a) Perl_sv_inc(aTHX_ a) @@ -2276,8 +3506,12 @@ #endif #define unpack_str(a,b,c,d,e,f,g,h) Perl_unpack_str(aTHX_ a,b,c,d,e,f,g,h) #define unsharepvn(a,b,c) Perl_unsharepvn(aTHX_ a,b,c) +#ifdef PERL_CORE #define unshare_hek(a) Perl_unshare_hek(aTHX_ a) +#endif +#ifdef PERL_CORE #define utilize(a,b,c,d,e) Perl_utilize(aTHX_ a,b,c,d,e) +#endif #define utf16_to_utf8(a,b,c,d) Perl_utf16_to_utf8(aTHX_ a,b,c,d) #define utf16_to_utf8_reversed(a,b,c,d) Perl_utf16_to_utf8_reversed(aTHX_ a,b,c,d) #define utf8_length(a,b) Perl_utf8_length(aTHX_ a,b) @@ -2296,22 +3530,44 @@ #define uvuni_to_utf8_flags(a,b,c) Perl_uvuni_to_utf8_flags(aTHX_ a,b,c) #define pv_uni_display(a,b,c,d,e) Perl_pv_uni_display(aTHX_ a,b,c,d,e) #define sv_uni_display(a,b,c,d) Perl_sv_uni_display(aTHX_ a,b,c,d) +#ifdef PERL_CORE #define vivify_defelem(a) Perl_vivify_defelem(aTHX_ a) +#endif +#ifdef PERL_CORE #define vivify_ref(a,b) Perl_vivify_ref(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define wait4pid(a,b,c) Perl_wait4pid(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define report_evil_fh(a,b,c) Perl_report_evil_fh(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define report_uninit() Perl_report_uninit(aTHX) +#endif #define vwarn(a,b) Perl_vwarn(aTHX_ a,b) #define vwarner(a,b,c) Perl_vwarner(aTHX_ a,b,c) +#ifdef PERL_CORE #define watch(a) Perl_watch(aTHX_ a) +#endif #define whichsig(a) Perl_whichsig(aTHX_ a) +#ifdef PERL_CORE #define yyerror(a) Perl_yyerror(aTHX_ a) +#endif #ifdef USE_PURE_BISON +#ifdef PERL_CORE #define yylex_r(a,b) Perl_yylex_r(aTHX_ a,b) #endif +#endif +#ifdef PERL_CORE #define yylex() Perl_yylex(aTHX) +#endif +#ifdef PERL_CORE #define yyparse() Perl_yyparse(aTHX) +#endif +#ifdef PERL_CORE #define yywarn(a) Perl_yywarn(aTHX_ a) +#endif #if defined(MYMALLOC) #define dump_mstats(a) Perl_dump_mstats(aTHX_ a) #define get_mstats(a,b,c) Perl_get_mstats(aTHX_ a,b,c) @@ -2362,12 +3618,18 @@ #define sv_force_normal_flags(a,b) Perl_sv_force_normal_flags(aTHX_ a,b) #define tmps_grow(a) Perl_tmps_grow(aTHX_ a) #define sv_rvweaken(a) Perl_sv_rvweaken(aTHX_ a) +#ifdef PERL_CORE #define magic_killbackrefs(a,b) Perl_magic_killbackrefs(aTHX_ a,b) +#endif #define newANONATTRSUB(a,b,c,d) Perl_newANONATTRSUB(aTHX_ a,b,c,d) #define newATTRSUB(a,b,c,d,e) Perl_newATTRSUB(aTHX_ a,b,c,d,e) #define newMYSUB(a,b,c,d,e) Perl_newMYSUB(aTHX_ a,b,c,d,e) +#ifdef PERL_CORE #define my_attrs(a,b) Perl_my_attrs(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define boot_core_xsutils() Perl_boot_core_xsutils(aTHX) +#endif #if defined(USE_ITHREADS) #define cx_dup(a,b,c,d) Perl_cx_dup(aTHX_ a,b,c,d) #define si_dup(a,b) Perl_si_dup(aTHX_ a,b) @@ -2397,314 +3659,796 @@ #define custom_op_name(a) Perl_custom_op_name(aTHX_ a) #define custom_op_desc(a) Perl_custom_op_desc(aTHX_ a) #if defined(PERL_COPY_ON_WRITE) +#ifdef PERL_CORE #define sv_release_IVX(a) Perl_sv_release_IVX(aTHX_ a) #endif +#endif #define sv_nosharing(a) Perl_sv_nosharing(aTHX_ a) #define sv_nolocking(a) Perl_sv_nolocking(aTHX_ a) #define sv_nounlocking(a) Perl_sv_nounlocking(aTHX_ a) #define nothreadhook() Perl_nothreadhook(aTHX) #if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define do_trans_simple(a) S_do_trans_simple(aTHX_ a) +#endif +#ifdef PERL_CORE #define do_trans_count(a) S_do_trans_count(aTHX_ a) +#endif +#ifdef PERL_CORE #define do_trans_complex(a) S_do_trans_complex(aTHX_ a) +#endif +#ifdef PERL_CORE #define do_trans_simple_utf8(a) S_do_trans_simple_utf8(aTHX_ a) +#endif +#ifdef PERL_CORE #define do_trans_count_utf8(a) S_do_trans_count_utf8(aTHX_ a) +#endif +#ifdef PERL_CORE #define do_trans_complex_utf8(a) S_do_trans_complex_utf8(aTHX_ a) #endif +#endif #if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define gv_init_sv(a,b) S_gv_init_sv(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define require_errno(a) S_require_errno(aTHX_ a) #endif +#endif #if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define hsplit(a) S_hsplit(aTHX_ a) +#endif +#ifdef PERL_CORE #define hfreeentries(a) S_hfreeentries(aTHX_ a) +#endif +#ifdef PERL_CORE #define more_he() S_more_he(aTHX) +#endif +#ifdef PERL_CORE #define new_he() S_new_he(aTHX) +#endif +#ifdef PERL_CORE #define del_he(a) S_del_he(aTHX_ a) +#endif +#ifdef PERL_CORE #define save_hek_flags(a,b,c,d) S_save_hek_flags(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define hv_magic_check(a,b,c) S_hv_magic_check(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define unshare_hek_or_pvn(a,b,c,d) S_unshare_hek_or_pvn(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define share_hek_flags(a,b,c,d) S_share_hek_flags(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define hv_fetch_flags(a,b,c,d,e) S_hv_fetch_flags(aTHX_ a,b,c,d,e) +#endif +#ifdef PERL_CORE #define hv_notallowed(a,b,c,d) S_hv_notallowed(aTHX_ a,b,c,d) #endif +#endif #if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define save_magic(a,b) S_save_magic(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define magic_methpack(a,b,c) S_magic_methpack(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define magic_methcall(a,b,c,d,e,f) S_magic_methcall(aTHX_ a,b,c,d,e,f) #endif +#endif #if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define list_assignment(a) S_list_assignment(aTHX_ a) +#endif +#ifdef PERL_CORE #define bad_type(a,b,c,d) S_bad_type(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define cop_free(a) S_cop_free(aTHX_ a) +#endif +#ifdef PERL_CORE #define modkids(a,b) S_modkids(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define no_bareword_allowed(a) S_no_bareword_allowed(aTHX_ a) +#endif +#ifdef PERL_CORE #define no_fh_allowed(a) S_no_fh_allowed(aTHX_ a) +#endif +#ifdef PERL_CORE #define scalarboolean(a) S_scalarboolean(aTHX_ a) +#endif +#ifdef PERL_CORE #define too_few_arguments(a,b) S_too_few_arguments(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define too_many_arguments(a,b) S_too_many_arguments(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define newDEFSVOP() S_newDEFSVOP(aTHX) +#endif +#ifdef PERL_CORE #define new_logop(a,b,c,d) S_new_logop(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define simplify_sort(a) S_simplify_sort(aTHX_ a) +#endif +#ifdef PERL_CORE #define is_handle_constructor(a,b) S_is_handle_constructor(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define gv_ename(a) S_gv_ename(aTHX_ a) +#endif +#ifdef PERL_CORE #define scalar_mod_type(a,b) S_scalar_mod_type(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define my_kid(a,b,c) S_my_kid(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define dup_attrlist(a) S_dup_attrlist(aTHX_ a) +#endif +#ifdef PERL_CORE #define apply_attrs(a,b,c,d) S_apply_attrs(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define apply_attrs_my(a,b,c,d) S_apply_attrs_my(aTHX_ a,b,c,d) +#endif # if defined(PL_OP_SLAB_ALLOC) +#ifdef PERL_CORE #define Slab_Alloc(a,b) S_Slab_Alloc(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define Slab_Free(a) S_Slab_Free(aTHX_ a) +#endif # endif #endif #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define find_beginning() S_find_beginning(aTHX) +#endif +#ifdef PERL_CORE #define forbid_setid(a) S_forbid_setid(aTHX_ a) +#endif +#ifdef PERL_CORE #define incpush(a,b,c,d) S_incpush(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define init_interp() S_init_interp(aTHX) +#endif +#ifdef PERL_CORE #define init_ids() S_init_ids(aTHX) +#endif +#ifdef PERL_CORE #define init_lexer() S_init_lexer(aTHX) +#endif +#ifdef PERL_CORE #define init_main_stash() S_init_main_stash(aTHX) +#endif +#ifdef PERL_CORE #define init_perllib() S_init_perllib(aTHX) +#endif +#ifdef PERL_CORE #define init_postdump_symbols(a,b,c) S_init_postdump_symbols(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define init_predump_symbols() S_init_predump_symbols(aTHX) +#endif +#ifdef PERL_CORE #define my_exit_jump() S_my_exit_jump(aTHX) +#endif +#ifdef PERL_CORE #define nuke_stacks() S_nuke_stacks(aTHX) +#endif +#ifdef PERL_CORE #define open_script(a,b,c,d) S_open_script(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define usage(a) S_usage(aTHX_ a) +#endif +#ifdef PERL_CORE #define validate_suid(a,b,c) S_validate_suid(aTHX_ a,b,c) +#endif # if defined(IAMSUID) +#ifdef PERL_CORE #define fd_on_nosuid_fs(a) S_fd_on_nosuid_fs(aTHX_ a) +#endif # endif +#ifdef PERL_CORE #define parse_body(a,b) S_parse_body(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define run_body(a) S_run_body(aTHX_ a) +#endif +#ifdef PERL_CORE #define call_body(a,b) S_call_body(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define call_list_body(a) S_call_list_body(aTHX_ a) +#endif #if defined(PERL_FLEXIBLE_EXCEPTIONS) +#ifdef PERL_CORE #define vparse_body(a) S_vparse_body(aTHX_ a) +#endif +#ifdef PERL_CORE #define vrun_body(a) S_vrun_body(aTHX_ a) +#endif +#ifdef PERL_CORE #define vcall_body(a) S_vcall_body(aTHX_ a) +#endif +#ifdef PERL_CORE #define vcall_list_body(a) S_vcall_list_body(aTHX_ a) #endif #endif +#endif #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define refto(a) S_refto(aTHX_ a) +#endif +#ifdef PERL_CORE #define seed() S_seed(aTHX) #endif +#endif #if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define doencodes(a,b,c) S_doencodes(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define mul128(a,b) S_mul128(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define is_an_int(a,b) S_is_an_int(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define div128(a,b) S_div128(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define next_symbol(a,b) S_next_symbol(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define find_count(a,b,c) S_find_count(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define group_end(a,b,c) S_group_end(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define measure_struct(a,b) S_measure_struct(aTHX_ a,b) #endif +#endif #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define docatch(a) S_docatch(aTHX_ a) +#endif +#ifdef PERL_CORE #define docatch_body() S_docatch_body(aTHX) +#endif #if defined(PERL_FLEXIBLE_EXCEPTIONS) +#ifdef PERL_CORE #define vdocatch_body(a) S_vdocatch_body(aTHX_ a) #endif +#endif +#ifdef PERL_CORE #define dofindlabel(a,b,c,d) S_dofindlabel(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define doparseform(a) S_doparseform(aTHX_ a) +#endif +#ifdef PERL_CORE #define dopoptoeval(a) S_dopoptoeval(aTHX_ a) +#endif +#ifdef PERL_CORE #define dopoptolabel(a) S_dopoptolabel(aTHX_ a) +#endif +#ifdef PERL_CORE #define dopoptoloop(a) S_dopoptoloop(aTHX_ a) +#endif +#ifdef PERL_CORE #define dopoptosub(a) S_dopoptosub(aTHX_ a) +#endif +#ifdef PERL_CORE #define dopoptosub_at(a,b) S_dopoptosub_at(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define save_lines(a,b) S_save_lines(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define doeval(a,b,c,d) S_doeval(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define doopen_pmc(a,b) S_doopen_pmc(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define path_is_absolute(a) S_path_is_absolute(aTHX_ a) #endif +#endif #if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define do_oddball(a,b,c) S_do_oddball(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define get_db_sub(a,b) S_get_db_sub(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define method_common(a,b) S_method_common(aTHX_ a,b) #endif +#endif #if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define doform(a,b,c) S_doform(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define emulate_eaccess(a,b) S_emulate_eaccess(aTHX_ a,b) +#endif # if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) +#ifdef PERL_CORE #define dooneliner(a,b) S_dooneliner(aTHX_ a,b) +#endif # endif #endif #if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT) +#if defined(PERL_CORE) || defined(PERL_EXT) #define reg(a,b,c) S_reg(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reganode(a,b,c) S_reganode(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regatom(a,b) S_regatom(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regbranch(a,b,c) S_regbranch(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reguni(a,b,c,d) S_reguni(aTHX_ a,b,c,d) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regclass(a) S_regclass(aTHX_ a) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcurly(a) S_regcurly(aTHX_ a) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reg_node(a,b) S_reg_node(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regpiece(a,b) S_regpiece(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reginsert(a,b,c) S_reginsert(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regoptail(a,b,c) S_regoptail(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regtail(a,b,c) S_regtail(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regwhite(a,b) S_regwhite(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define nextchar(a) S_nextchar(aTHX_ a) +#endif # ifdef DEBUGGING +#if defined(PERL_CORE) || defined(PERL_EXT) #define dumpuntil(a,b,c,d,e) S_dumpuntil(aTHX_ a,b,c,d,e) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define put_byte(a,b) S_put_byte(aTHX_ a,b) +#endif # endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define scan_commit(a,b) S_scan_commit(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_anything(a,b) S_cl_anything(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_is_anything(a) S_cl_is_anything(aTHX_ a) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_init(a,b) S_cl_init(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_init_zero(a,b) S_cl_init_zero(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_and(a,b) S_cl_and(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cl_or(a,b,c) S_cl_or(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define study_chunk(a,b,c,d,e,f) S_study_chunk(aTHX_ a,b,c,d,e,f) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define add_data(a,b,c) S_add_data(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regpposixcc(a,b) S_regpposixcc(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define checkposixcc(a) S_checkposixcc(aTHX_ a) #endif +#endif #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT) +#if defined(PERL_CORE) || defined(PERL_EXT) #define regmatch(a) S_regmatch(aTHX_ a) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regrepeat(a,b) S_regrepeat(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regrepeat_hard(a,b,c) S_regrepeat_hard(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regtry(a,b) S_regtry(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reginclass(a,b,c,d) S_reginclass(aTHX_ a,b,c,d) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcppush(a) S_regcppush(aTHX_ a) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcppop() S_regcppop(aTHX) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define regcp_set_to(a) S_regcp_set_to(aTHX_ a) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define cache_re(a) S_cache_re(aTHX_ a) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghop(a,b) S_reghop(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghop3(a,b,c) S_reghop3(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghopmaybe(a,b) S_reghopmaybe(aTHX_ a,b) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define reghopmaybe3(a,b,c) S_reghopmaybe3(aTHX_ a,b,c) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define find_byclass(a,b,c,d,e,f) S_find_byclass(aTHX_ a,b,c,d,e,f) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define to_utf8_substr(a) S_to_utf8_substr(aTHX_ a) +#endif +#if defined(PERL_CORE) || defined(PERL_EXT) #define to_byte_substr(a) S_to_byte_substr(aTHX_ a) #endif +#endif #if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define deb_curcv(a) S_deb_curcv(aTHX_ a) +#endif +#ifdef PERL_CORE #define debprof(a) S_debprof(aTHX_ a) #endif +#endif #if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define save_scalar_at(a) S_save_scalar_at(aTHX_ a) #endif +#endif #if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define asIV(a) S_asIV(aTHX_ a) +#endif +#ifdef PERL_CORE #define asUV(a) S_asUV(aTHX_ a) +#endif +#ifdef PERL_CORE #define more_sv() S_more_sv(aTHX) +#endif +#ifdef PERL_CORE #define more_xiv() S_more_xiv(aTHX) +#endif +#ifdef PERL_CORE #define more_xnv() S_more_xnv(aTHX) +#endif +#ifdef PERL_CORE #define more_xpv() S_more_xpv(aTHX) +#endif +#ifdef PERL_CORE #define more_xpviv() S_more_xpviv(aTHX) +#endif +#ifdef PERL_CORE #define more_xpvnv() S_more_xpvnv(aTHX) +#endif +#ifdef PERL_CORE #define more_xpvcv() S_more_xpvcv(aTHX) +#endif +#ifdef PERL_CORE #define more_xpvav() S_more_xpvav(aTHX) +#endif +#ifdef PERL_CORE #define more_xpvhv() S_more_xpvhv(aTHX) +#endif +#ifdef PERL_CORE #define more_xpvmg() S_more_xpvmg(aTHX) +#endif +#ifdef PERL_CORE #define more_xpvlv() S_more_xpvlv(aTHX) +#endif +#ifdef PERL_CORE #define more_xpvbm() S_more_xpvbm(aTHX) +#endif +#ifdef PERL_CORE #define more_xrv() S_more_xrv(aTHX) +#endif +#ifdef PERL_CORE #define new_xiv() S_new_xiv(aTHX) +#endif +#ifdef PERL_CORE #define new_xnv() S_new_xnv(aTHX) +#endif +#ifdef PERL_CORE #define new_xpv() S_new_xpv(aTHX) +#endif +#ifdef PERL_CORE #define new_xpviv() S_new_xpviv(aTHX) +#endif +#ifdef PERL_CORE #define new_xpvnv() S_new_xpvnv(aTHX) +#endif +#ifdef PERL_CORE #define new_xpvcv() S_new_xpvcv(aTHX) +#endif +#ifdef PERL_CORE #define new_xpvav() S_new_xpvav(aTHX) +#endif +#ifdef PERL_CORE #define new_xpvhv() S_new_xpvhv(aTHX) +#endif +#ifdef PERL_CORE #define new_xpvmg() S_new_xpvmg(aTHX) +#endif +#ifdef PERL_CORE #define new_xpvlv() S_new_xpvlv(aTHX) +#endif +#ifdef PERL_CORE #define new_xpvbm() S_new_xpvbm(aTHX) +#endif +#ifdef PERL_CORE #define new_xrv() S_new_xrv(aTHX) +#endif +#ifdef PERL_CORE #define del_xiv(a) S_del_xiv(aTHX_ a) +#endif +#ifdef PERL_CORE #define del_xnv(a) S_del_xnv(aTHX_ a) +#endif +#ifdef PERL_CORE #define del_xpv(a) S_del_xpv(aTHX_ a) +#endif +#ifdef PERL_CORE #define del_xpviv(a) S_del_xpviv(aTHX_ a) +#endif +#ifdef PERL_CORE #define del_xpvnv(a) S_del_xpvnv(aTHX_ a) +#endif +#ifdef PERL_CORE #define del_xpvcv(a) S_del_xpvcv(aTHX_ a) +#endif +#ifdef PERL_CORE #define del_xpvav(a) S_del_xpvav(aTHX_ a) +#endif +#ifdef PERL_CORE #define del_xpvhv(a) S_del_xpvhv(aTHX_ a) +#endif +#ifdef PERL_CORE #define del_xpvmg(a) S_del_xpvmg(aTHX_ a) +#endif +#ifdef PERL_CORE #define del_xpvlv(a) S_del_xpvlv(aTHX_ a) +#endif +#ifdef PERL_CORE #define del_xpvbm(a) S_del_xpvbm(aTHX_ a) +#endif +#ifdef PERL_CORE #define del_xrv(a) S_del_xrv(aTHX_ a) +#endif +#ifdef PERL_CORE #define sv_unglob(a) S_sv_unglob(aTHX_ a) +#endif +#ifdef PERL_CORE #define not_a_number(a) S_not_a_number(aTHX_ a) +#endif +#ifdef PERL_CORE #define visit(a) S_visit(aTHX_ a) +#endif +#ifdef PERL_CORE #define sv_add_backref(a,b) S_sv_add_backref(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define sv_del_backref(a) S_sv_del_backref(aTHX_ a) +#endif # ifdef DEBUGGING +#ifdef PERL_CORE #define del_sv(a) S_del_sv(aTHX_ a) +#endif # endif # if !defined(NV_PRESERVES_UV) +#ifdef PERL_CORE #define sv_2iuv_non_preserve(a,b) S_sv_2iuv_non_preserve(aTHX_ a,b) +#endif # endif +#ifdef PERL_CORE #define expect_number(a) S_expect_number(aTHX_ a) +#endif # if defined(USE_ITHREADS) +#ifdef PERL_CORE #define gv_share(a,b) S_gv_share(aTHX_ a,b) +#endif # endif +#ifdef PERL_CORE +#define utf8_mg_pos(a,b,c,d,e,f,g,h,i) S_utf8_mg_pos(aTHX_ a,b,c,d,e,f,g,h,i) +#endif +#ifdef PERL_CORE +#define utf8_mg_pos_init(a,b,c,d,e,f,g) S_utf8_mg_pos_init(aTHX_ a,b,c,d,e,f,g) +#endif #if defined(PERL_COPY_ON_WRITE) +#ifdef PERL_CORE #define sv_release_COW(a,b,c,d,e,f) S_sv_release_COW(aTHX_ a,b,c,d,e,f) #endif #endif +#endif #if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define check_uni() S_check_uni(aTHX) +#endif +#ifdef PERL_CORE #define force_next(a) S_force_next(aTHX_ a) +#endif +#ifdef PERL_CORE #define force_version(a,b) S_force_version(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define force_word(a,b,c,d,e) S_force_word(aTHX_ a,b,c,d,e) +#endif +#ifdef PERL_CORE #define tokeq(a) S_tokeq(aTHX_ a) +#endif +#ifdef PERL_CORE #define pending_ident() S_pending_ident(aTHX) +#endif +#ifdef PERL_CORE #define scan_const(a) S_scan_const(aTHX_ a) +#endif +#ifdef PERL_CORE #define scan_formline(a) S_scan_formline(aTHX_ a) +#endif +#ifdef PERL_CORE #define scan_heredoc(a) S_scan_heredoc(aTHX_ a) +#endif +#ifdef PERL_CORE #define scan_ident(a,b,c,d,e) S_scan_ident(aTHX_ a,b,c,d,e) +#endif +#ifdef PERL_CORE #define scan_inputsymbol(a) S_scan_inputsymbol(aTHX_ a) +#endif +#ifdef PERL_CORE #define scan_pat(a,b) S_scan_pat(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define scan_str(a,b,c) S_scan_str(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define scan_subst(a) S_scan_subst(aTHX_ a) +#endif +#ifdef PERL_CORE #define scan_trans(a) S_scan_trans(aTHX_ a) +#endif +#ifdef PERL_CORE #define scan_word(a,b,c,d,e) S_scan_word(aTHX_ a,b,c,d,e) +#endif +#ifdef PERL_CORE #define skipspace(a) S_skipspace(aTHX_ a) +#endif +#ifdef PERL_CORE #define swallow_bom(a) S_swallow_bom(aTHX_ a) +#endif +#ifdef PERL_CORE #define checkcomma(a,b,c) S_checkcomma(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define force_ident(a,b) S_force_ident(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define incline(a) S_incline(aTHX_ a) +#endif +#ifdef PERL_CORE #define intuit_method(a,b) S_intuit_method(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define intuit_more(a) S_intuit_more(aTHX_ a) +#endif +#ifdef PERL_CORE #define lop(a,b,c) S_lop(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define missingterm(a) S_missingterm(aTHX_ a) +#endif +#ifdef PERL_CORE #define no_op(a,b) S_no_op(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define set_csh() S_set_csh(aTHX) +#endif +#ifdef PERL_CORE #define sublex_done() S_sublex_done(aTHX) +#endif +#ifdef PERL_CORE #define sublex_push() S_sublex_push(aTHX) +#endif +#ifdef PERL_CORE #define sublex_start() S_sublex_start(aTHX) +#endif +#ifdef PERL_CORE #define filter_gets(a,b,c) S_filter_gets(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define find_in_my_stash(a,b) S_find_in_my_stash(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define new_constant(a,b,c,d,e,f) S_new_constant(aTHX_ a,b,c,d,e,f) +#endif # if defined(DEBUGGING) +#ifdef PERL_CORE #define tokereport(a,b,c) S_tokereport(aTHX_ a,b,c) +#endif # endif +#ifdef PERL_CORE #define ao(a) S_ao(aTHX_ a) +#endif +#ifdef PERL_CORE #define depcom() S_depcom(aTHX) +#endif +#ifdef PERL_CORE #define incl_perldb() S_incl_perldb(aTHX) +#endif #if 0 +#ifdef PERL_CORE #define utf16_textfilter(a,b,c) S_utf16_textfilter(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define utf16rev_textfilter(a,b,c) S_utf16rev_textfilter(aTHX_ a,b,c) #endif +#endif # if defined(PERL_CR_FILTER) +#ifdef PERL_CORE #define cr_textfilter(a,b,c) S_cr_textfilter(aTHX_ a,b,c) +#endif # endif #endif #if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define isa_lookup(a,b,c,d,e) S_isa_lookup(aTHX_ a,b,c,d,e) #endif +#endif #if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define stdize_locale(a) S_stdize_locale(aTHX_ a) #endif +#endif #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define closest_cop(a,b) S_closest_cop(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define mess_alloc() S_mess_alloc(aTHX) #endif +#endif #define sv_setsv_flags(a,b,c) Perl_sv_setsv_flags(aTHX_ a,b,c) #define sv_catpvn_flags(a,b,c,d) Perl_sv_catpvn_flags(aTHX_ a,b,c,d) #define sv_catsv_flags(a,b,c) Perl_sv_catsv_flags(aTHX_ a,b,c) @@ -2738,31 +4482,65 @@ #define PerlIO_stdout() Perl_PerlIO_stdout(aTHX) #define PerlIO_stderr() Perl_PerlIO_stderr(aTHX) #endif /* PERLIO_LAYERS */ +#ifdef PERL_CORE #define deb_stack_all() Perl_deb_stack_all(aTHX) +#endif #ifdef PERL_IN_DEB_C +#ifdef PERL_CORE #define deb_stack_n(a,b,c,d,e) S_deb_stack_n(aTHX_ a,b,c,d,e) #endif +#endif +#ifdef PERL_CORE #define pad_new(a) Perl_pad_new(aTHX_ a) +#endif +#ifdef PERL_CORE #define pad_undef(a) Perl_pad_undef(aTHX_ a) +#endif +#ifdef PERL_CORE #define pad_add_name(a,b,c,d) Perl_pad_add_name(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define pad_add_anon(a,b) Perl_pad_add_anon(aTHX_ a,b) +#endif +#ifdef PERL_CORE #define pad_check_dup(a,b,c) Perl_pad_check_dup(aTHX_ a,b,c) +#endif #ifdef DEBUGGING +#ifdef PERL_CORE #define pad_setsv(a,b) Perl_pad_setsv(aTHX_ a,b) #endif +#endif +#ifdef PERL_CORE #define pad_block_start(a) Perl_pad_block_start(aTHX_ a) +#endif +#ifdef PERL_CORE #define pad_tidy(a) Perl_pad_tidy(aTHX_ a) +#endif +#ifdef PERL_CORE #define do_dump_pad(a,b,c,d) Perl_do_dump_pad(aTHX_ a,b,c,d) +#endif +#ifdef PERL_CORE #define pad_fixup_inner_anons(a,b,c) Perl_pad_fixup_inner_anons(aTHX_ a,b,c) +#endif +#ifdef PERL_CORE #define pad_push(a,b,c) Perl_pad_push(aTHX_ a,b,c) +#endif #if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT) +#ifdef PERL_CORE #define pad_findlex(a,b,c) S_pad_findlex(aTHX_ a,b,c) +#endif # if defined(DEBUGGING) +#ifdef PERL_CORE #define cv_dump(a,b) S_cv_dump(aTHX_ a,b) +#endif # endif +#ifdef PERL_CORE #define cv_clone2(a,b) S_cv_clone2(aTHX_ a,b) #endif +#endif +#ifdef PERL_CORE #define find_runcv(a) Perl_find_runcv(aTHX_ a) +#endif #define ck_anoncode(a) Perl_ck_anoncode(aTHX_ a) #define ck_bitop(a) Perl_ck_bitop(aTHX_ a) #define ck_concat(a) Perl_ck_concat(aTHX_ a) @@ -340,6 +340,13 @@ walk_table { $ret .= hide($func,"Perl_$func"); } } + unless ($flags =~ /A/) { + if ($flags =~ /E/) { + $ret = "#if defined(PERL_CORE) || defined(PERL_EXT)\n$ret#endif\n"; + } else { + $ret = "#ifdef PERL_CORE\n$ret#endif\n"; + } + } } $ret; } \*EM, ""; @@ -393,6 +400,13 @@ walk_table { $ret .= $alist . ")\n"; } } + unless ($flags =~ /A/) { + if ($flags =~ /E/) { + $ret = "#if defined(PERL_CORE) || defined(PERL_EXT)\n$ret#endif\n"; + } else { + $ret = "#ifdef PERL_CORE\n$ret#endif\n"; + } + } } $ret; } \*EM, ""; diff --git a/ext/Data/Dumper/Dumper.xs b/ext/Data/Dumper/Dumper.xs index 6c9459e486..8bf9f75282 100644 --- a/ext/Data/Dumper/Dumper.xs +++ b/ext/Data/Dumper/Dumper.xs @@ -4,8 +4,11 @@ #include "XSUB.h" #ifndef PERL_VERSION -#include "patchlevel.h" -#define PERL_VERSION PATCHLEVEL +# include <patchlevel.h> +# ifndef PERL_VERSION +# include <could_not_find_Perl_patchlevel.h> +# endif +# define PERL_VERSION PATCHLEVEL #endif #if PERL_VERSION < 5 diff --git a/ext/Devel/DProf/Changes b/ext/Devel/DProf/Changes index 216498ba62..09b2250dc2 100644 --- a/ext/Devel/DProf/Changes +++ b/ext/Devel/DProf/Changes @@ -1,3 +1,12 @@ +2003 Jan 8 + + Blair Zajac: + DProf.xs: + - To avoid core dumps, increase stack size by 10 instead of 5. + - Assert that g_profstack is large enough when DEBUGGING is defined + DProf.pm: + - Bump VERSION. + 1999 Jan 8 Ilya Zakharevich: diff --git a/ext/Devel/DProf/DProf.pm b/ext/Devel/DProf/DProf.pm index d5d8a82a51..15fc93a34b 100644 --- a/ext/Devel/DProf/DProf.pm +++ b/ext/Devel/DProf/DProf.pm @@ -188,7 +188,7 @@ sub DB { use XSLoader (); # Underscore to allow older Perls to access older version from CPAN -$Devel::DProf::VERSION = '20000000.00_01'; # this version not authorized by +$Devel::DProf::VERSION = '20030108.00_00'; # this version not authorized by # Dean Roehrich. See "Changes" file. XSLoader::load 'Devel::DProf', $Devel::DProf::VERSION; diff --git a/ext/Devel/DProf/DProf.xs b/ext/Devel/DProf/DProf.xs index 78ea3c9e56..caa07293c1 100644 --- a/ext/Devel/DProf/DProf.xs +++ b/ext/Devel/DProf/DProf.xs @@ -9,6 +9,12 @@ /* define DBG_TIMER to cause a warning when the timer is turned on and off. */ /*#define DBG_TIMER 1 */ +#ifdef DEBUGGING +#define ASSERT(x) assert(x) +#else +#define ASSERT(x) +#endif + #ifdef DBG_SUB # define DBG_SUB_NOTIFY(A) dprof_dbg_sub_notify(A) void @@ -297,7 +303,7 @@ prof_mark(pTHX_ opcode ptype) SV *Sub = GvSV(PL_DBsub); /* name of current sub */ if (g_SAVE_STACK) { - if (g_profstack_ix + 5 > g_profstack_max) { + if (g_profstack_ix + 10 > g_profstack_max) { g_profstack_max = g_profstack_max * 3 / 2; Renew(g_profstack, g_profstack_max, PROFANY); } @@ -309,6 +315,7 @@ prof_mark(pTHX_ opcode ptype) sdelta = t.tms_stime - g_otms_stime; if (rdelta || udelta || sdelta) { if (g_SAVE_STACK) { + ASSERT(g_profstack_ix + 4 <= g_profstack_max); g_profstack[g_profstack_ix++].ptype = OP_TIME; g_profstack[g_profstack_ix++].tms_utime = udelta; g_profstack[g_profstack_ix++].tms_stime = sdelta; @@ -343,6 +350,7 @@ prof_mark(pTHX_ opcode ptype) if (CvXSUB(cv) == XS_Devel__DProf_END) return; if (g_SAVE_STACK) { /* Store it for later recording -JH */ + ASSERT(g_profstack_ix + 4 <= g_profstack_max); g_profstack[g_profstack_ix++].ptype = OP_GV; g_profstack[g_profstack_ix++].id = id; g_profstack[g_profstack_ix++].name = pname; @@ -365,6 +373,7 @@ prof_mark(pTHX_ opcode ptype) g_total++; if (g_SAVE_STACK) { /* Store it for later recording -JH */ + ASSERT(g_profstack_ix + 2 <= g_profstack_max); g_profstack[g_profstack_ix++].ptype = ptype; g_profstack[g_profstack_ix++].id = id; diff --git a/ext/Devel/DProf/Makefile.PL b/ext/Devel/DProf/Makefile.PL index 667cc52913..b3eb6c5cdc 100644 --- a/ext/Devel/DProf/Makefile.PL +++ b/ext/Devel/DProf/Makefile.PL @@ -1,3 +1,7 @@ +BEGIN { + require 5.006; +} + use ExtUtils::MakeMaker; WriteMakefile( diff --git a/ext/Devel/PPPort/PPPort.pm b/ext/Devel/PPPort/PPPort.pm index b426fd20ab..5f57ac6950 100644 --- a/ext/Devel/PPPort/PPPort.pm +++ b/ext/Devel/PPPort/PPPort.pm @@ -355,7 +355,10 @@ __DATA__ #ifndef PERL_REVISION # ifndef __PATCHLEVEL_H_INCLUDED__ -# include "patchlevel.h" +# include <patchlevel.h> +# endif +# ifndef PERL_VERSION +# include <could_not_find_Perl_patchlevel.h> # endif # ifndef PERL_REVISION # define PERL_REVISION (5) diff --git a/ext/Digest/MD5/MD5.xs b/ext/Digest/MD5/MD5.xs index abc1748044..b1f2a04cdf 100644 --- a/ext/Digest/MD5/MD5.xs +++ b/ext/Digest/MD5/MD5.xs @@ -44,7 +44,10 @@ extern "C" { } #endif -#include "patchlevel.h" +#include <patchlevel.h> +#ifndef PERL_VERSION +# include <could_not_find_Perl_patchlevel.h> +#endif #if PATCHLEVEL <= 4 && !defined(PL_dowarn) #define PL_dowarn dowarn #endif diff --git a/ext/Digest/MD5/t/files.t b/ext/Digest/MD5/t/files.t index 6351af525b..a1d567bd3b 100644 --- a/ext/Digest/MD5/t/files.t +++ b/ext/Digest/MD5/t/files.t @@ -23,7 +23,7 @@ if (ord "A" == 193) { # EBCDIC ed8efe2e2dbab62fcc9dea2df6682569 Changes 0565ec21b15c0f23f4c51fb327c8926d README 0fcdd6d6e33b8772bd4b4832043035cd MD5.pm -d7fd24455b9160aa8706635d15e6177e MD5.xs +4757a101ad5df97136a2fa8e910d9d6a MD5.xs 276da0aa4e9a08b7fe09430c9c5690aa rfc1321.txt EOT } elsif ("\n" eq "\015") { # MacOS @@ -31,7 +31,7 @@ EOT 2879619f967d5fc5a00ffe37b639f2ee Changes 6c950a0211a5a28f023bb482037698cd README 4e1043f0a7a266416d8408d6fa96f454 MD5.pm -6bff95ff70ba43a6c81e255c6510a865 MD5.xs +fc1b8007a6f5262561a0a76493759a55 MD5.xs 754b9db19f79dbc4992f7166eb0f37ce rfc1321.txt EOT } else { @@ -40,7 +40,7 @@ EOT 2879619f967d5fc5a00ffe37b639f2ee Changes 6c950a0211a5a28f023bb482037698cd README 4e1043f0a7a266416d8408d6fa96f454 MD5.pm -6bff95ff70ba43a6c81e255c6510a865 MD5.xs +fc1b8007a6f5262561a0a76493759a55 MD5.xs 754b9db19f79dbc4992f7166eb0f37ce rfc1321.txt EOT } diff --git a/ext/Encode/MANIFEST b/ext/Encode/MANIFEST index cb4a0d8fe7..4a8992ef01 100644 --- a/ext/Encode/MANIFEST +++ b/ext/Encode/MANIFEST @@ -61,6 +61,7 @@ t/big5-eten.enc test data t/big5-eten.utf test data t/big5-hkscs.enc test data t/big5-hkscs.utf test data +t/enc_eucjp.t test script t/enc_utf8.t test script t/encoding.t test script t/fallback.t test script diff --git a/ext/List/Util/Util.xs b/ext/List/Util/Util.xs index f96b45162b..db9ce1571a 100644 --- a/ext/List/Util/Util.xs +++ b/ext/List/Util/Util.xs @@ -8,7 +8,10 @@ #include <XSUB.h> #ifndef PERL_VERSION -# include "patchlevel.h" +# include <patchlevel.h> +# ifndef PERL_VERSION +# include <could_not_find_Perl_patchlevel.h> +# endif # define PERL_REVISION 5 # define PERL_VERSION PATCHLEVEL # define PERL_SUBVERSION SUBVERSION diff --git a/ext/Storable/Storable.xs b/ext/Storable/Storable.xs index 9c307a7fad..e59914acb3 100644 --- a/ext/Storable/Storable.xs +++ b/ext/Storable/Storable.xs @@ -11,6 +11,9 @@ #include <EXTERN.h> #include <perl.h> #include <patchlevel.h> /* Perl's one, needed since 5.6 */ +#ifndef PERL_VERSION +# include <could_not_find_Perl_patchlevel.h> +#endif #include <XSUB.h> #ifndef NETWARE diff --git a/ext/re/Makefile.PL b/ext/re/Makefile.PL index 51573af05c..f00f4122dd 100644 --- a/ext/re/Makefile.PL +++ b/ext/re/Makefile.PL @@ -4,7 +4,7 @@ use Config; my $object = 're_exec$(OBJ_EXT) re_comp$(OBJ_EXT) re$(OBJ_EXT)'; -my $defines = '-DPERL_EXT_RE_BUILD -DPERL_EXT_RE_DEBUG'; +my $defines = '-DPERL_EXT_RE_BUILD -DPERL_EXT_RE_DEBUG -DPERL_EXT'; WriteMakefile( NAME => 're', diff --git a/global.sym b/global.sym index 9e3ddcd37e..a4ad6849c3 100644 --- a/global.sym +++ b/global.sym @@ -79,6 +79,7 @@ Perl_filter_read Perl_get_op_descs Perl_get_op_names Perl_get_ppaddr +Perl_cxinc Perl_deb Perl_vdeb Perl_debprofdump diff --git a/lib/Digest.pm b/lib/Digest.pm index 4ad93ff40a..8ebf61a487 100644 --- a/lib/Digest.pm +++ b/lib/Digest.pm @@ -3,7 +3,7 @@ package Digest; use strict; use vars qw($VERSION %MMAP $AUTOLOAD); -$VERSION = "1.01"; +$VERSION = "1.02"; %MMAP = ( "SHA-1" => "Digest::SHA1", @@ -124,7 +124,7 @@ load the right module on first use. The second form allow you to use algorithm names which contains letters which are not legal perl identifiers, e.g. "SHA-1". -If new() is called as a instance method (i.e. $ctx->new) it will just +If new() is called as an instance method (i.e. $ctx->new) it will just reset the state the object to the state of a newly created object. No new object is created in this case, and the return value is the reference to the object (i.e. $ctx). diff --git a/lib/Digest.t b/lib/Digest.t index 5741b777fe..fbc2dac805 100644 --- a/lib/Digest.t +++ b/lib/Digest.t @@ -1,13 +1,9 @@ print "1..3\n"; -BEGIN { - chdir 't' if -d 't'; - @INC = '../lib'; -} - use Digest; -my $hexdigest = "900150983cd24fb0d6963f7d28e17f72"; +my $hexdigest = "900150983cd24fb0d6963f7d28e17f72"; # ASCII + if (ord('A') == 193) { # EBCDIC $hexdigest = "fe4ea0d98f9cd8d1d27f102a93cb0bb0"; # IBM-1047 } @@ -19,6 +15,7 @@ print "not " unless Digest->MD5->add("abc")->hexdigest eq $hexdigest; print "ok 2\n"; eval { + # Not yet EBCDICified. print "not " unless Digest->new("HMAC-MD5" => "Jefe")->add("what do ya want for nothing?")->hexdigest eq "750c783e6ab0b503eaa86e310a5db738"; print "ok 3\n"; }; diff --git a/lib/Pod/Perldoc.pm b/lib/Pod/Perldoc.pm index dd4f664425..931c415c1c 100644 --- a/lib/Pod/Perldoc.pm +++ b/lib/Pod/Perldoc.pm @@ -11,7 +11,7 @@ use File::Spec::Functions qw(catfile catdir splitdir); use vars qw($VERSION @Pagers $Bindir $Pod2man $Temp_Files_Created $Temp_File_Lifetime ); -$VERSION = '3.07'; +$VERSION = '3.08'; #.......................................................................... BEGIN { # Make a DEBUG constant very first thing... @@ -29,7 +29,7 @@ use Pod::Perldoc::GetOptsOO; # uses the DEBUG. #.......................................................................... { my $pager = $Config{'pager'}; - push @Pagers, $pager if -x (split /\\s+/, $pager)[0]; + push @Pagers, $pager if -x (split /\s+/, $pager)[0]; } $Bindir = $Config{'scriptdirexp'}; $Pod2man = "pod2man" . ( $Config{'versiononly'} ? $Config{'version'} : '' ); @@ -1626,10 +1626,8 @@ __END__ # is embedded in the perl installation tree. # #~~~~~~ -# Version 3.06: Sunday November 17 2002 -- 14:05:28 -# Sean M. Burke <sburke@cpan.org> -# Added -V to report version -# Restore -U as a no-op legacy switch. +# +# See ChangeLog in CPAN dist for Pod::Perldoc for later notes. # # Version 3.01: Sun Nov 10 21:38:09 MST 2002 # Sean M. Burke <sburke@cpan.org> @@ -1835,6 +1835,16 @@ Perl_magic_setcollxfrm(pTHX_ SV *sv, MAGIC *mg) } #endif /* USE_LOCALE_COLLATE */ +/* Just clear the UTF-8 cache data. */ +int +Perl_magic_setutf8(pTHX_ SV *sv, MAGIC *mg) +{ + Safefree(mg->mg_ptr); /* The mg_ptr holds the pos cache. */ + mg->mg_ptr = 0; + mg->mg_len = -1; /* The mg_len holds the len cache. */ + return 0; +} + int Perl_magic_set(pTHX_ SV *sv, MAGIC *mg) { @@ -216,12 +216,9 @@ perl_construct(pTHXx) *s = '\0'; SvCUR_set(PL_patchlevel, s - (U8*)SvPVX(PL_patchlevel)); SvPOK_on(PL_patchlevel); - SvNVX(PL_patchlevel) = (NV)PERL_REVISION - + ((NV)PERL_VERSION / (NV)1000) -#if defined(PERL_SUBVERSION) && PERL_SUBVERSION > 0 - + ((NV)PERL_SUBVERSION / (NV)1000000) -#endif - ; + SvNVX(PL_patchlevel) = (NV)PERL_REVISION + + ((NV)PERL_VERSION / (NV)1000) + + ((NV)PERL_SUBVERSION / (NV)1000000); SvNOK_on(PL_patchlevel); /* dual valued */ SvUTF8_on(PL_patchlevel); SvREADONLY_on(PL_patchlevel); @@ -2159,6 +2156,10 @@ Perl_moreswitches(pTHX_ char *s) case 'C': PL_wantutf8 = TRUE; /* Can be set earlier by $ENV{PERL_UTF8_LOCALE}. */ s++; + if (*s == ':') { + PL_wantutf8 = (bool) atoi(s + 1); + for (s++; isDIGIT(*s); s++) ; + } return s; case 'F': PL_minus_F = TRUE; @@ -2617,6 +2617,7 @@ Gid_t getegid (void); #define PERL_MAGIC_uvar_elem 'u' /* Reserved for use by extensions */ #define PERL_MAGIC_vec 'v' /* vec() lvalue */ #define PERL_MAGIC_vstring 'V' /* SV was vstring literal */ +#define PERL_MAGIC_utf8 'w' /* Cached UTF-8 information */ #define PERL_MAGIC_substr 'x' /* substr() lvalue */ #define PERL_MAGIC_defelem 'y' /* Shadow "foreach" iterator variable / smart parameter vivification */ @@ -3205,7 +3206,8 @@ enum { /* pass one of these to get_vtbl */ want_vtbl_amagicelem, want_vtbl_regdata, want_vtbl_regdatum, - want_vtbl_backref + want_vtbl_backref, + want_vtbl_utf8 }; /* Note: the lowest 8 bits are reserved for @@ -3503,6 +3505,10 @@ EXT MGVTBL PL_vtbl_backref = {0, 0, EXT MGVTBL PL_vtbl_ovrld = {0, 0, 0, 0, MEMBER_TO_FPTR(Perl_magic_freeovrld)}; +EXT MGVTBL PL_vtbl_utf8 = {0, + MEMBER_TO_FPTR(Perl_magic_setutf8), + 0, 0, 0}; + #else /* !DOINIT */ EXT MGVTBL PL_vtbl_sv; @@ -3541,6 +3547,7 @@ EXT MGVTBL PL_vtbl_amagic; EXT MGVTBL PL_vtbl_amagicelem; EXT MGVTBL PL_vtbl_backref; +EXT MGVTBL PL_vtbl_utf8; #endif /* !DOINIT */ @@ -4160,6 +4167,8 @@ extern void moncontrol(int); # define PIPESOCK_MODE #endif +#define PERL_MAGIC_UTF8_CACHESIZE 2 + /* and finally... */ #define PERL_PATCHLEVEL_H_IMPLICIT #include "patchlevel.h" @@ -2831,6 +2831,7 @@ PerlIOStdio_close(pTHX_ PerlIO *f) } return result; } + } SSize_t diff --git a/pod/perlapi.pod b/pod/perlapi.pod index 41068c84a6..695a44c987 100644 --- a/pod/perlapi.pod +++ b/pod/perlapi.pod @@ -1243,7 +1243,15 @@ NULL if the operation failed or if the value did not need to be actually stored within the hash (as in the case of tied hashes). Otherwise it can be dereferenced to get the original C<SV*>. Note that the caller is responsible for suitably incrementing the reference count of C<val> before -the call, and decrementing it if the function returned NULL. +the call, and decrementing it if the function returned NULL. Effectively +a successful hv_store takes ownership of one reference to C<val>. This is +usually what you want; a newly created SV has a reference count of one, so +if all your code does is create SVs then store them in a hash, hv_store +will own the only reference to the new SV, and your code doesn't need to do +anything further to tidy up. hv_store is not implemented as a call to +hv_store_ent, and does not create a temporary SV for the key, so if your +key data is not already in SV form then use hv_store in preference to +hv_store_ent. See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more information on how to use this function on tied hashes. @@ -1263,7 +1271,17 @@ stored within the hash (as in the case of tied hashes). Otherwise the contents of the return value can be accessed using the C<He?> macros described here. Note that the caller is responsible for suitably incrementing the reference count of C<val> before the call, and -decrementing it if the function returned NULL. +decrementing it if the function returned NULL. Effectively a successful +hv_store_ent takes ownership of one reference to C<val>. This is +usually what you want; a newly created SV has a reference count of one, so +if all your code does is create SVs then store them in a hash, hv_store +will own the only reference to the new SV, and your code doesn't need to do +anything further to tidy up. Note that hv_store_ent only reads the C<key>; +unlike C<val> it does not take ownership of it, so maintaining the correct +reference count on C<key> is entirely the caller's responsibility. hv_store +is not implemented as a call to hv_store_ent, and does not create a temporary +SV for the key, so if your key data is not already in SV form then use +hv_store in preference to hv_store_ent. See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more information on how to use this function on tied hashes. diff --git a/pod/perlrun.pod b/pod/perlrun.pod index 46e18493d4..9622b4d787 100644 --- a/pod/perlrun.pod +++ b/pod/perlrun.pod @@ -4,7 +4,7 @@ perlrun - how to execute the Perl interpreter =head1 SYNOPSIS -B<perl> S<[ B<-CsTtuUWX> ]> +B<perl> S<[ B<-sTtuUWX> ]> S<[ B<-hv> ] [ B<-V>[:I<configvar>] ]> S<[ B<-cw> ] [ B<-d>[:I<debugger>] ] [ B<-D>[I<number/list>] ]> S<[ B<-pna> ] [ B<-F>I<pattern> ] [ B<-l>[I<octal>] ] [ B<-0>[I<octal>] ]> @@ -14,6 +14,7 @@ B<perl> S<[ B<-CsTtuUWX> ]> S<[ B<-x>[I<dir>] ]> S<[ B<-i>[I<extension>] ]> S<[ B<-e> I<'command'> ] [ B<--> ] [ I<programfile> ] [ I<argument> ]...> + S<[ B<-C[:I<boolean>]> ]> =head1 DESCRIPTION @@ -264,9 +265,10 @@ is equivalent to An alternate delimiter may be specified using B<-F>. -=item B<-C> +=item B<-C[:boolean]> -enables Perl to use the Unicode APIs on the target system. +enables Perl to use the Unicode APIs on the target system. A bare C<-C> +enables, C<-C:1> also enables, and C<-C:0> disables. As of Perl 5.8.1, if C<-C> is used and the locale settings (the LC_ALL, LC_CTYPE, and LANG environment variables) indicate a UTF-8 locale, diff --git a/pod/perlsyn.pod b/pod/perlsyn.pod index c27933015c..0d81b241c1 100644 --- a/pod/perlsyn.pod +++ b/pod/perlsyn.pod @@ -183,8 +183,6 @@ refers to the innermost enclosing loop. This may include dynamically looking back your call-stack at run time to find the LABEL. Such desperate behavior triggers a warning if you use the C<use warnings> pragma or the B<-w> flag. -Unlike a C<foreach> statement, a C<while> statement never implicitly -localises any variables. If there is a C<continue> BLOCK, it is always executed just before the conditional is about to be evaluated again, just like the third part of a @@ -319,7 +317,8 @@ is therefore visible only within the loop. Otherwise, the variable is implicitly local to the loop and regains its former value upon exiting the loop. If the variable was previously declared with C<my>, it uses that variable instead of the global one, but it's still localized to -the loop. +the loop. This implicit localisation occurs I<only> in a C<foreach> +loop. The C<foreach> keyword is actually a synonym for the C<for> keyword, so you can use C<foreach> for readability or C<for> for brevity. (Or because @@ -2559,7 +2559,7 @@ Perl_sv_compile_2op(pTHX_ SV *sv, OP** startop, char *code, PAD** padp) char *tmpbuf = tbuf; char *safestr; int runtime; - CV* runcv; + CV* runcv = Nullcv; /* initialise to avoid compiler warnings */ ENTER; lex_start(sv); @@ -2129,7 +2129,8 @@ PP(pp_subst) sv_catpvn(dstr, s, strend - s); (void)SvOOK_off(TARG); - Safefree(SvPVX(TARG)); + if (SvLEN(TARG)) + Safefree(SvPVX(TARG)); SvPVX(TARG) = SvPVX(dstr); SvCUR_set(TARG, SvCUR(dstr)); SvLEN_set(TARG, SvLEN(dstr)); @@ -449,6 +449,7 @@ PERL_CALLCONV int Perl_magic_setsubstr(pTHX_ SV* sv, MAGIC* mg); PERL_CALLCONV int Perl_magic_settaint(pTHX_ SV* sv, MAGIC* mg); PERL_CALLCONV int Perl_magic_setuvar(pTHX_ SV* sv, MAGIC* mg); PERL_CALLCONV int Perl_magic_setvec(pTHX_ SV* sv, MAGIC* mg); +PERL_CALLCONV int Perl_magic_setutf8(pTHX_ SV* sv, MAGIC* mg); PERL_CALLCONV int Perl_magic_set_all_env(pTHX_ SV* sv, MAGIC* mg); PERL_CALLCONV U32 Perl_magic_sizepack(pTHX_ SV* sv, MAGIC* mg); PERL_CALLCONV int Perl_magic_wipepack(pTHX_ SV* sv, MAGIC* mg); @@ -1249,6 +1250,8 @@ STATIC I32 S_expect_number(pTHX_ char** pattern); # if defined(USE_ITHREADS) STATIC SV* S_gv_share(pTHX_ SV *sv, CLONE_PARAMS *param); # endif +STATIC bool S_utf8_mg_pos(pTHX_ SV *sv, MAGIC **mgp, STRLEN **cachep, I32 i, I32 *offsetp, I32 uoff, U8 **sp, U8 *start, U8 *send); +STATIC bool S_utf8_mg_pos_init(pTHX_ SV *sv, MAGIC **mgp, STRLEN **cachep, I32 i, I32 *offsetp, U8 *s, U8 *start); #if defined(PERL_COPY_ON_WRITE) STATIC void S_sv_release_COW(pTHX_ SV *sv, char *pvx, STRLEN cur, STRLEN len, U32 hash, SV *after); #endif @@ -541,6 +541,9 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos, start_shift + (s - strbeg), end_shift, pp, 0); else goto fail_finish; + /* we may be pointing at the wrong string */ + if (s && RX_MATCH_COPIED(prog)) + s = prog->subbeg + (s - SvPVX(sv)); if (data) *data->scream_olds = s; } @@ -959,25 +962,40 @@ S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, char *strend, char *sta /* We know what class it must start with. */ switch (OP(c)) { case ANYOF: - while (s < strend) { - STRLEN skip = do_utf8 ? UTF8SKIP(s) : 1; - - if (do_utf8 ? - reginclass(c, (U8*)s, 0, do_utf8) : - REGINCLASS(c, (U8*)s) || - (ANYOF_FOLD_SHARP_S(c, s, strend) && - /* The assignment of 2 is intentional: - * for the sharp s, the skip is 2. */ - (skip = SHARP_S_SKIP) - )) { - if (tmp && (norun || regtry(prog, s))) - goto got_it; - else - tmp = doevery; - } - else - tmp = 1; - s += skip; + if (do_utf8) { + while (s < strend) { + if ((ANYOF_FLAGS(c) & ANYOF_UNICODE) || + !UTF8_IS_INVARIANT((U8)s[0]) ? + reginclass(c, (U8*)s, 0, do_utf8) : + REGINCLASS(c, (U8*)s)) { + if (tmp && (norun || regtry(prog, s))) + goto got_it; + else + tmp = doevery; + } + else + tmp = 1; + s += UTF8SKIP(s); + } + } + else { + while (s < strend) { + STRLEN skip = 1; + + if (REGINCLASS(c, (U8*)s) || + (ANYOF_FOLD_SHARP_S(c, s, strend) && + /* The assignment of 2 is intentional: + * for the folded sharp s, the skip is 2. */ + (skip = SHARP_S_SKIP))) { + if (tmp && (norun || regtry(prog, s))) + goto got_it; + else + tmp = doevery; + } + else + tmp = 1; + s += skip; + } } break; case CANY: @@ -1843,6 +1861,9 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char * : (s = fbm_instr((unsigned char*)HOP3(s, back_min, strend), (unsigned char*)strend, must, PL_multiline ? FBMrf_MULTILINE : 0))) ) { + /* we may be pointing at the wrong string */ + if ((flags & REXEC_SCREAM) && RX_MATCH_COPIED(prog)) + s = prog->subbeg + (s - SvPVX(sv)); DEBUG_r( did_match = 1 ); if (HOPc(s, -back_max) > last1) { last1 = HOPc(s, -back_min); @@ -1929,6 +1950,9 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char * end_shift, &scream_pos, 1); /* last one */ if (!last) last = scream_olds; /* Only one occurrence. */ + /* we may be pointing at the wrong string */ + else if (RX_MATCH_COPIED(prog)) + s = prog->subbeg + (s - SvPVX(sv)); } else { STRLEN len; @@ -4053,8 +4077,26 @@ S_regrepeat(pTHX_ regnode *p, I32 max) case ANYOF: if (do_utf8) { loceol = PL_regeol; - while (hardcount < max && scan < loceol && - reginclass(p, (U8*)scan, 0, do_utf8)) { + while (hardcount < max && scan < loceol) { + bool cont = FALSE; + if (ANYOF_FLAGS(p) & ANYOF_UNICODE) { + if (reginclass(p, (U8*)scan, 0, do_utf8)) + cont = TRUE; + } + else { + U8 c = (U8)scan[0]; + + if (UTF8_IS_INVARIANT(c)) { + if (ANYOF_BITMAP_TEST(p, c)) + cont = TRUE; + } + else { + if (reginclass(p, (U8*)scan, 0, do_utf8)) + cont = TRUE; + } + } + if (!cont) + break; scan += UTF8SKIP(scan); hardcount++; } @@ -4824,6 +4824,9 @@ Perl_sv_magic(pTHX_ register SV *sv, SV *obj, int how, const char *name, I32 nam case PERL_MAGIC_vstring: vtable = 0; break; + case PERL_MAGIC_utf8: + vtable = &PL_vtbl_utf8; + break; case PERL_MAGIC_substr: vtable = &PL_vtbl_substr; break; @@ -4893,6 +4896,8 @@ Perl_sv_unmagic(pTHX_ SV *sv, int type) Safefree(mg->mg_ptr); else if (mg->mg_len == HEf_SVKEY) SvREFCNT_dec((SV*)mg->mg_ptr); + else if (mg->mg_type == PERL_MAGIC_utf8 && mg->mg_ptr) + Safefree(mg->mg_ptr); } if (mg->mg_flags & MGf_REFCOUNTED) SvREFCNT_dec(mg->mg_obj); @@ -5471,6 +5476,13 @@ UTF8 bytes as a single character. Handles magic and type coercion. =cut */ +/* + * The length is cached in PERL_UTF8_magic, in the mg_len field. Also the + * mg_ptr is used, by sv_pos_u2b(), see the comments of S_utf8_mg_pos_init(). + * (Note that the mg_len is not the length of the mg_ptr field.) + * + */ + STRLEN Perl_sv_len_utf8(pTHX_ register SV *sv) { @@ -5481,13 +5493,158 @@ Perl_sv_len_utf8(pTHX_ register SV *sv) return mg_length(sv); else { - STRLEN len; + STRLEN len, ulen; U8 *s = (U8*)SvPV(sv, len); + MAGIC *mg = SvMAGICAL(sv) ? mg_find(sv, PERL_MAGIC_utf8) : 0; - return Perl_utf8_length(aTHX_ s, s + len); + if (mg && mg->mg_len != -1 && (mg->mg_len > 0 || len == 0)) + ulen = mg->mg_len; + else { + ulen = Perl_utf8_length(aTHX_ s, s + len); + if (!mg && !SvREADONLY(sv)) { + sv_magic(sv, 0, PERL_MAGIC_utf8, 0, 0); + mg = mg_find(sv, PERL_MAGIC_utf8); + assert(mg); + } + if (mg) + mg->mg_len = ulen; + } + return ulen; } } +/* S_utf8_mg_pos_init() is used to initialize the mg_ptr field of + * a PERL_UTF8_magic. The mg_ptr is used to store the mapping + * between UTF-8 and byte offsets. There are two (substr offset and substr + * length, the i offset, PERL_MAGIC_UTF8_CACHESIZE) times two (UTF-8 offset + * and byte offset) cache positions. + * + * The mg_len field is used by sv_len_utf8(), see its comments. + * Note that the mg_len is not the length of the mg_ptr field. + * + */ +STATIC bool +S_utf8_mg_pos_init(pTHX_ SV *sv, MAGIC **mgp, STRLEN **cachep, I32 i, I32 *offsetp, U8 *s, U8 *start) +{ + bool found = FALSE; + + if (SvMAGICAL(sv) && !SvREADONLY(sv)) { + if (!*mgp) { + sv_magic(sv, 0, PERL_MAGIC_utf8, 0, 0); + *mgp = mg_find(sv, PERL_MAGIC_utf8); + } + assert(*mgp); + + if ((*mgp)->mg_ptr) + *cachep = (STRLEN *) (*mgp)->mg_ptr; + else { + Newz(0, *cachep, PERL_MAGIC_UTF8_CACHESIZE * 2, STRLEN); + (*mgp)->mg_ptr = (char *) *cachep; + } + assert(*cachep); + + (*cachep)[i] = *offsetp; + (*cachep)[i+1] = s - start; + found = TRUE; + } + + return found; +} + +/* + * S_utf8_mg_pos() is used to query and update mg_ptr field of + * a PERL_UTF8_magic. The mg_ptr is used to store the mapping + * between UTF-8 and byte offsets. See also the comments of + * S_utf8_mg_pos_init(). + * + */ +STATIC bool +S_utf8_mg_pos(pTHX_ SV *sv, MAGIC **mgp, STRLEN **cachep, I32 i, I32 *offsetp, I32 uoff, U8 **sp, U8 *start, U8 *send) +{ + bool found = FALSE; + + if (SvMAGICAL(sv) && !SvREADONLY(sv)) { + if (!*mgp) + *mgp = mg_find(sv, PERL_MAGIC_utf8); + if (*mgp && (*mgp)->mg_ptr) { + *cachep = (STRLEN *) (*mgp)->mg_ptr; + if ((*cachep)[i] == uoff) /* An exact match. */ + found = TRUE; + else { /* We will skip to the right spot. */ + STRLEN forw = 0; + STRLEN backw = 0; + U8* p = NULL; + + /* The assumption is that going backward is half + * the speed of going forward (that's where the + * 2 * backw in the below comes from). (The real + * figure of course depends on the UTF-8 data.) */ + + if ((*cachep)[i] > uoff) { + forw = uoff; + backw = (*cachep)[i] - uoff; + + if (forw < 2 * backw) + p = start; + else + p = start + (*cachep)[i+1]; + } + /* Try this only for the substr offset (i == 0), + * not for the substr length (i == 2). */ + else if (i == 0) { /* (*cachep)[i] < uoff */ + STRLEN ulen = sv_len_utf8(sv); + + if (uoff < ulen) { + forw = uoff - (*cachep)[i]; + backw = ulen - uoff; + + if (forw < 2 * backw) + p = start + (*cachep)[i+1]; + else + p = send; + } + + /* If the string is not long enough for uoff, + * we could extend it, but not at this low a level. */ + } + + if (p) { + if (forw < 2 * backw) { + while (forw--) + p += UTF8SKIP(p); + } + else { + while (backw--) { + p--; + while (UTF8_IS_CONTINUATION(*p)) + p--; + } + } + + /* Update the cache. */ + (*cachep)[i] = uoff; + (*cachep)[i+1] = p - start; + + found = TRUE; + } + } + if (found) { /* Setup the return values. */ + *offsetp = (*cachep)[i+1]; + *sp = start + *offsetp; + if (*sp >= send) { + *sp = send; + *offsetp = send - start; + } + else if (*sp < start) { + *sp = start; + *offsetp = 0; + } + } + } + } + return found; +} + /* =for apidoc sv_pos_u2b @@ -5500,33 +5657,67 @@ type coercion. =cut */ +/* + * sv_pos_u2b() uses, like sv_pos_b2u(), the mg_ptr of the potential + * PERL_UTF8_magic of the sv to store the mapping between UTF-8 and + * byte offsets. See also the comments of S_utf8_mg_pos(). + * + */ + void Perl_sv_pos_u2b(pTHX_ register SV *sv, I32* offsetp, I32* lenp) { U8 *start; U8 *s; - U8 *send; - I32 uoffset = *offsetp; STRLEN len; + STRLEN *cache = 0; + STRLEN boffset = 0; if (!sv) return; start = s = (U8*)SvPV(sv, len); - send = s + len; - while (s < send && uoffset--) - s += UTF8SKIP(s); - if (s >= send) - s = send; - *offsetp = s - start; - if (lenp) { - I32 ulen = *lenp; - start = s; - while (s < send && ulen--) - s += UTF8SKIP(s); - if (s >= send) - s = send; - *lenp = s - start; + if (len) { + I32 uoffset = *offsetp; + U8 *send = s + len; + MAGIC *mg = 0; + bool found = FALSE; + + if (utf8_mg_pos(sv, &mg, &cache, 0, offsetp, *offsetp, &s, start, send)) + found = TRUE; + if (!found && uoffset > 0) { + while (s < send && uoffset--) + s += UTF8SKIP(s); + if (s >= send) + s = send; + if (utf8_mg_pos_init(sv, &mg, &cache, 0, offsetp, s, start)) + boffset = cache[1]; + *offsetp = s - start; + } + if (lenp) { + found = FALSE; + start = s; + if (utf8_mg_pos(sv, &mg, &cache, 2, lenp, *lenp + *offsetp, &s, start, send)) { + *lenp -= boffset; + found = TRUE; + } + if (!found && *lenp > 0) { + I32 ulen = *lenp; + if (ulen > 0) + while (s < send && ulen--) + s += UTF8SKIP(s); + if (s >= send) + s = send; + if (utf8_mg_pos_init(sv, &mg, &cache, 2, lenp, s, start)) + cache[2] += *offsetp; + } + *lenp = s - start; + } + } + else { + *offsetp = 0; + if (lenp) + *lenp = 0; } return; } @@ -5541,11 +5732,17 @@ Handles magic and type coercion. =cut */ +/* + * sv_pos_b2u() uses, like sv_pos_u2b(), the mg_ptr of the potential + * PERL_UTF8_magic of the sv to store the mapping between UTF-8 and + * byte offsets. See also the comments of S_utf8_mg_pos(). + * + */ + void -Perl_sv_pos_b2u(pTHX_ register SV *sv, I32* offsetp) +Perl_sv_pos_b2u(pTHX_ register SV* sv, I32* offsetp) { - U8 *s; - U8 *send; + U8* s; STRLEN len; if (!sv) @@ -5554,22 +5751,92 @@ Perl_sv_pos_b2u(pTHX_ register SV *sv, I32* offsetp) s = (U8*)SvPV(sv, len); if ((I32)len < *offsetp) Perl_croak(aTHX_ "panic: sv_pos_b2u: bad byte offset"); - send = s + *offsetp; - len = 0; - while (s < send) { - STRLEN n = 1; - /* Call utf8n_to_uvchr() to validate the sequence - * (unless a simple non-UTF character) */ - if (!UTF8_IS_INVARIANT(*s)) - utf8n_to_uvchr(s, UTF8SKIP(s), &n, 0); - if (n > 0) { - s += n; - len++; + else { + U8* send = s + *offsetp; + MAGIC* mg = NULL; + STRLEN *cache = NULL; + + len = 0; + + if (SvMAGICAL(sv) && !SvREADONLY(sv)) { + mg = mg_find(sv, PERL_MAGIC_utf8); + if (mg && mg->mg_ptr) { + cache = (STRLEN *) mg->mg_ptr; + if (cache[1] == *offsetp) { + /* An exact match. */ + *offsetp = cache[0]; + + return; + } + else if (cache[1] < *offsetp) { + /* We already know part of the way. */ + len = cache[0]; + s += cache[1]; + /* Let the below loop do the rest. */ + } + else { /* cache[1] > *offsetp */ + /* We already know all of the way, now we may + * be able to walk back. The same assumption + * is made as in S_utf8_mg_pos(), namely that + * walking backward is twice slower than + * walking forward. */ + STRLEN forw = *offsetp; + STRLEN backw = cache[1] - *offsetp; + + if (!(forw < 2 * backw)) { + U8 *p = s + cache[1]; + STRLEN ubackw = 0; + + while (backw--) { + p--; + while (UTF8_IS_CONTINUATION(*p)) + p--; + ubackw++; + } + + cache[0] -= ubackw; + cache[1] -= backw; + + return; + } + } + } } - else - break; + + while (s < send) { + STRLEN n = 1; + + /* Call utf8n_to_uvchr() to validate the sequence + * (unless a simple non-UTF character) */ + if (!UTF8_IS_INVARIANT(*s)) + utf8n_to_uvchr(s, UTF8SKIP(s), &n, 0); + if (n > 0) { + s += n; + len++; + } + else + break; + } + + if (!SvREADONLY(sv)) { + if (!mg) { + sv_magic(sv, 0, PERL_MAGIC_utf8, 0, 0); + mg = mg_find(sv, PERL_MAGIC_utf8); + } + assert(mg); + + if (!mg->mg_ptr) { + Newz(0, cache, PERL_MAGIC_UTF8_CACHESIZE * 2, STRLEN); + mg->mg_ptr = (char *) cache; + } + assert(cache); + + cache[0] = len; + cache[1] = *offsetp; + } + + *offsetp = len; } - *offsetp = len; return; } diff --git a/t/op/subst.t b/t/op/subst.t index 797f24139b..59c3d21b8d 100755 --- a/t/op/subst.t +++ b/t/op/subst.t @@ -7,7 +7,7 @@ BEGIN { } require './test.pl'; -plan( tests => 125 ); +plan( tests => 126 ); $x = 'foo'; $_ = "x"; @@ -508,5 +508,11 @@ is("<$_> <$s>", "<> <4>", "[perl #7806]"); is($_, "\n", "[perl #19048]"); } - - +# [perl #17757] interaction between saw_ampersand and study +{ + my $f = eval q{ $& }; + $f = "xx"; + study $f; + $f =~ s/x/y/g; + is($f, "yy", "[perl #17757]"); +} @@ -2978,6 +2978,9 @@ Perl_get_vtbl(pTHX_ int vtbl_id) case want_vtbl_backref: result = &PL_vtbl_backref; break; + case want_vtbl_utf8: + result = &PL_vtbl_utf8; + break; } return result; } |