/*
* embed.h
*
- * Copyright (c) 1997-2002, Larry Wall
+ * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ * 2000, 2001, 2002, 2003, by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
/* (Doing namespace management portably in C is really gross.) */
-/* NO_EMBED is no longer supported. i.e. EMBED is always active. */
+/* By defining PERL_NO_SHORT_NAMES (not done by default) the short forms
+ * (like warn instead of Perl_warn) for the API are not defined.
+ * Not defining the short forms is a good thing for cleaner embedding. */
+
+#ifndef PERL_NO_SHORT_NAMES
/* Hide global symbols */
#define get_opargs Perl_get_opargs
#endif
#define get_ppaddr Perl_get_ppaddr
+#if defined(PERL_CORE) || defined(PERL_EXT)
#define cxinc Perl_cxinc
+#endif
#define deb Perl_deb
#define vdeb Perl_vdeb
#define debprofdump Perl_debprofdump
#define magic_setpos Perl_magic_setpos
#endif
#ifdef PERL_CORE
+#define magic_setregexp Perl_magic_setregexp
+#endif
+#ifdef PERL_CORE
#define magic_setsig Perl_magic_setsig
#endif
#ifdef PERL_CORE
#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
#define set_numeric_standard Perl_set_numeric_standard
#define require_pv Perl_require_pv
#define pack_cat Perl_pack_cat
+#define packlist Perl_packlist
#ifdef PERL_CORE
#define pidgone Perl_pidgone
#endif
#define savesharedpv Perl_savesharedpv
#define savepvn Perl_savepvn
#define savestack_grow Perl_savestack_grow
+#define savestack_grow_cnt Perl_savestack_grow_cnt
#define save_aelem Perl_save_aelem
#define save_alloc Perl_save_alloc
#define save_aptr Perl_save_aptr
#define sv_pvutf8n_force Perl_sv_pvutf8n_force
#define sv_pvbyten_force Perl_sv_pvbyten_force
#define sv_recode_to_utf8 Perl_sv_recode_to_utf8
+#define sv_cat_decode Perl_sv_cat_decode
#define sv_reftype Perl_sv_reftype
#define sv_replace Perl_sv_replace
#define sv_report_used Perl_sv_report_used
#define sv_setpvf Perl_sv_setpvf
#define sv_vsetpvf Perl_sv_vsetpvf
#define sv_setiv Perl_sv_setiv
+#define sv_setpviv Perl_sv_setpviv
#define sv_setuv Perl_sv_setuv
#define sv_setnv Perl_sv_setnv
#define sv_setref_iv Perl_sv_setref_iv
#define unlnk Perl_unlnk
#endif
#define unpack_str Perl_unpack_str
+#define unpackstring Perl_unpackstring
#define unsharepvn Perl_unsharepvn
#ifdef PERL_CORE
#define unshare_hek Perl_unshare_hek
#define wait4pid Perl_wait4pid
#endif
#ifdef PERL_CORE
+#define parse_unicode_opts Perl_parse_unicode_opts
+#endif
+#ifdef PERL_CORE
#define report_evil_fh Perl_report_evil_fh
#endif
#ifdef PERL_CORE
#define sv_setpvf_mg Perl_sv_setpvf_mg
#define sv_vsetpvf_mg Perl_sv_vsetpvf_mg
#define sv_setiv_mg Perl_sv_setiv_mg
+#define sv_setpviv_mg Perl_sv_setpviv_mg
#define sv_setuv_mg Perl_sv_setuv_mg
#define sv_setnv_mg Perl_sv_setnv_mg
#define sv_setpv_mg Perl_sv_setpv_mg
#endif
#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
#ifdef PERL_CORE
-#define doencodes S_doencodes
+#define unpack_rec S_unpack_rec
+#endif
+#ifdef PERL_CORE
+#define pack_rec S_pack_rec
#endif
#ifdef PERL_CORE
#define mul128 S_mul128
#endif
#ifdef PERL_CORE
-#define is_an_int S_is_an_int
+#define measure_struct S_measure_struct
#endif
#ifdef PERL_CORE
-#define div128 S_div128
+#define group_end S_group_end
+#endif
+#ifdef PERL_CORE
+#define get_num S_get_num
#endif
#ifdef PERL_CORE
#define next_symbol S_next_symbol
#endif
#ifdef PERL_CORE
-#define find_count S_find_count
+#define doencodes S_doencodes
#endif
#ifdef PERL_CORE
-#define group_end S_group_end
+#define is_an_int S_is_an_int
#endif
#ifdef PERL_CORE
-#define measure_struct S_measure_struct
+#define div128 S_div128
#endif
#endif
#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
#define doeval S_doeval
#endif
#ifdef PERL_CORE
-#define doopen_pmc S_doopen_pmc
+#define doopen_pm S_doopen_pm
#endif
#ifdef PERL_CORE
#define path_is_absolute S_path_is_absolute
#define mess_alloc S_mess_alloc
#endif
#endif
+#if defined(PERL_IN_NUMERIC_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define mulexp10 S_mulexp10
+#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
#define sv_copypv Perl_sv_copypv
#define my_atof2 Perl_my_atof2
#define my_socketpair Perl_my_socketpair
+#ifdef PERL_COPY_ON_WRITE
+#ifdef PERL_CORE
+#define sv_setsv_cow Perl_sv_setsv_cow
+#endif
+#endif
#if defined(USE_PERLIO) && !defined(USE_SFIO)
#define PerlIO_close Perl_PerlIO_close
#define PerlIO_fill Perl_PerlIO_fill
#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
+#ifdef PERL_CORE
+#define free_tied_hv_pool Perl_free_tied_hv_pool
+#endif
#define ck_anoncode Perl_ck_anoncode
#define ck_bitop Perl_ck_bitop
#define ck_concat Perl_ck_concat
#define get_opargs() Perl_get_opargs(aTHX)
#endif
#define get_ppaddr() Perl_get_ppaddr(aTHX)
+#if defined(PERL_CORE) || defined(PERL_EXT)
#define cxinc() Perl_cxinc(aTHX)
+#endif
#define vdeb(a,b) Perl_vdeb(aTHX_ a,b)
#define debprofdump() Perl_debprofdump(aTHX)
#define debop(a) Perl_debop(aTHX_ a)
#define magic_setpos(a,b) Perl_magic_setpos(aTHX_ a,b)
#endif
#ifdef PERL_CORE
+#define magic_setregexp(a,b) Perl_magic_setregexp(aTHX_ a,b)
+#endif
+#ifdef PERL_CORE
#define magic_setsig(a,b) Perl_magic_setsig(aTHX_ a,b)
#endif
#ifdef PERL_CORE
#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)
+#define packlist(a,b,c,d,e) Perl_packlist(aTHX_ a,b,c,d,e)
#ifdef PERL_CORE
#define pidgone(a,b) Perl_pidgone(aTHX_ a,b)
#endif
#define savesharedpv(a) Perl_savesharedpv(aTHX_ a)
#define savepvn(a,b) Perl_savepvn(aTHX_ a,b)
#define savestack_grow() Perl_savestack_grow(aTHX)
+#define savestack_grow_cnt(a) Perl_savestack_grow_cnt(aTHX_ a)
#define save_aelem(a,b,c) Perl_save_aelem(aTHX_ a,b,c)
#define save_alloc(a,b) Perl_save_alloc(aTHX_ a,b)
#define save_aptr(a) Perl_save_aptr(aTHX_ a)
#define sv_eq(a,b) Perl_sv_eq(aTHX_ a,b)
#define sv_free(a) Perl_sv_free(aTHX_ a)
#ifdef PERL_CORE
+#endif
+#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_pvutf8n_force(a,b) Perl_sv_pvutf8n_force(aTHX_ a,b)
#define sv_pvbyten_force(a,b) Perl_sv_pvbyten_force(aTHX_ a,b)
#define sv_recode_to_utf8(a,b) Perl_sv_recode_to_utf8(aTHX_ a,b)
+#define sv_cat_decode(a,b,c,d,e,f) Perl_sv_cat_decode(aTHX_ a,b,c,d,e,f)
#define sv_reftype(a,b) Perl_sv_reftype(aTHX_ a,b)
#define sv_replace(a,b) Perl_sv_replace(aTHX_ a,b)
#define sv_report_used() Perl_sv_report_used(aTHX)
#define sv_reset(a,b) Perl_sv_reset(aTHX_ a,b)
#define sv_vsetpvf(a,b,c) Perl_sv_vsetpvf(aTHX_ a,b,c)
#define sv_setiv(a,b) Perl_sv_setiv(aTHX_ a,b)
+#define sv_setpviv(a,b) Perl_sv_setpviv(aTHX_ a,b)
#define sv_setuv(a,b) Perl_sv_setuv(aTHX_ a,b)
#define sv_setnv(a,b) Perl_sv_setnv(aTHX_ a,b)
#define sv_setref_iv(a,b,c) Perl_sv_setref_iv(aTHX_ a,b,c)
#define unlnk(a) Perl_unlnk(aTHX_ a)
#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 unpackstring(a,b,c,d,e) Perl_unpackstring(aTHX_ a,b,c,d,e)
#define unsharepvn(a,b,c) Perl_unsharepvn(aTHX_ a,b,c)
#ifdef PERL_CORE
#define unshare_hek(a) Perl_unshare_hek(aTHX_ a)
#define wait4pid(a,b,c) Perl_wait4pid(aTHX_ a,b,c)
#endif
#ifdef PERL_CORE
+#define parse_unicode_opts(a) Perl_parse_unicode_opts(aTHX_ a)
+#endif
+#ifdef PERL_CORE
#define report_evil_fh(a,b,c) Perl_report_evil_fh(aTHX_ a,b,c)
#endif
#ifdef PERL_CORE
#define sv_catsv_mg(a,b) Perl_sv_catsv_mg(aTHX_ a,b)
#define sv_vsetpvf_mg(a,b,c) Perl_sv_vsetpvf_mg(aTHX_ a,b,c)
#define sv_setiv_mg(a,b) Perl_sv_setiv_mg(aTHX_ a,b)
+#define sv_setpviv_mg(a,b) Perl_sv_setpviv_mg(aTHX_ a,b)
#define sv_setuv_mg(a,b) Perl_sv_setuv_mg(aTHX_ a,b)
#define sv_setnv_mg(a,b) Perl_sv_setnv_mg(aTHX_ a,b)
#define sv_setpv_mg(a,b) Perl_sv_setpv_mg(aTHX_ a,b)
#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)
+#define unpack_rec(a,b,c,d,e) S_unpack_rec(aTHX_ a,b,c,d,e)
+#endif
+#ifdef PERL_CORE
+#define pack_rec(a,b,c,d) S_pack_rec(aTHX_ a,b,c,d)
#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)
+#define measure_struct(a) S_measure_struct(aTHX_ a)
#endif
#ifdef PERL_CORE
-#define div128(a,b) S_div128(aTHX_ a,b)
+#define group_end(a,b,c) S_group_end(aTHX_ a,b,c)
#endif
#ifdef PERL_CORE
-#define next_symbol(a,b) S_next_symbol(aTHX_ a,b)
+#define get_num(a,b) S_get_num(aTHX_ a,b)
#endif
#ifdef PERL_CORE
-#define find_count(a,b,c) S_find_count(aTHX_ a,b,c)
+#define next_symbol(a) S_next_symbol(aTHX_ a)
#endif
#ifdef PERL_CORE
-#define group_end(a,b,c) S_group_end(aTHX_ a,b,c)
+#define doencodes(a,b,c) S_doencodes(aTHX_ a,b,c)
#endif
#ifdef PERL_CORE
-#define measure_struct(a,b) S_measure_struct(aTHX_ a,b)
+#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
#endif
#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
#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)
+#define doopen_pm(a,b) S_doopen_pm(aTHX_ a,b)
#endif
#ifdef PERL_CORE
#define path_is_absolute(a) S_path_is_absolute(aTHX_ a)
#define mess_alloc() S_mess_alloc(aTHX)
#endif
#endif
+#if defined(PERL_IN_NUMERIC_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define mulexp10 S_mulexp10
+#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)
#define sv_copypv(a,b) Perl_sv_copypv(aTHX_ a,b)
#define my_atof2(a,b) Perl_my_atof2(aTHX_ a,b)
#define my_socketpair Perl_my_socketpair
+#ifdef PERL_COPY_ON_WRITE
+#ifdef PERL_CORE
+#define sv_setsv_cow(a,b) Perl_sv_setsv_cow(aTHX_ a,b)
+#endif
+#endif
#if defined(USE_PERLIO) && !defined(USE_SFIO)
#define PerlIO_close(a) Perl_PerlIO_close(aTHX_ a)
#define PerlIO_fill(a) Perl_PerlIO_fill(aTHX_ a)
#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)
+#define pad_findlex(a,b,c,d,e,f,g) S_pad_findlex(aTHX_ a,b,c,d,e,f,g)
#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
+#ifdef PERL_CORE
+#define free_tied_hv_pool() Perl_free_tied_hv_pool(aTHX)
+#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)
#endif /* PERL_IMPLICIT_CONTEXT */
+#endif /* #ifndef PERL_NO_SHORT_NAMES */
+
/* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to
disable them.
an extra argument but grab the context pointer using the macro
dTHX.
*/
-#if defined(PERL_IMPLICIT_CONTEXT)
+#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_NO_SHORT_NAMES)
# define croak Perl_croak_nocontext
# define deb Perl_deb_nocontext
# define die Perl_die_nocontext