This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Perl_doing_taint must be public, for programs that embed perl
[perl5.git] / embed.h
diff --git a/embed.h b/embed.h
index 1881499..e872a31 100644 (file)
--- a/embed.h
+++ b/embed.h
@@ -1,7 +1,8 @@
 /*
  *    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--
- * but you can define PERL_HIDE_SHORT_NAMES to achieve the same. */
+/* 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_HIDE_SHORT_NAMES
+#ifndef PERL_NO_SHORT_NAMES
 
 /* Hide global symbols */
 
@@ -27,6 +29,7 @@
 
 #if defined(PERL_IMPLICIT_SYS)
 #endif
+#define doing_taint            Perl_doing_taint
 #if defined(USE_ITHREADS)
 #  if defined(PERL_IMPLICIT_SYS)
 #  endif
 #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_eq                  Perl_sv_eq
 #define sv_free                        Perl_sv_free
 #ifdef PERL_CORE
-#endif
-#ifdef PERL_CORE
 #define sv_free_arenas         Perl_sv_free_arenas
 #endif
 #define sv_gets                        Perl_sv_gets
 #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 parse_unicode_opts     Perl_parse_unicode_opts
 #endif
 #ifdef PERL_CORE
+#define seed                   Perl_seed
+#endif
+#ifdef PERL_CORE
 #define report_evil_fh         Perl_report_evil_fh
 #endif
 #ifdef PERL_CORE
 #endif
 #define whichsig               Perl_whichsig
 #ifdef PERL_CORE
+#define write_to_stderr                Perl_write_to_stderr
+#endif
+#ifdef PERL_CORE
 #define yyerror                        Perl_yyerror
 #endif
 #ifdef USE_PURE_BISON
 #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
 #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
+#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
+#endif
 #ifdef PERL_CORE
-#define cv_clone2              S_cv_clone2
+#define find_runcv             Perl_find_runcv
 #endif
+#ifdef PERL_CORE
+#define free_tied_hv_pool      Perl_free_tied_hv_pool
 #endif
+#if defined(DEBUGGING)
 #ifdef PERL_CORE
-#define find_runcv             Perl_find_runcv
+#define get_debug_opts         Perl_get_debug_opts
+#endif
 #endif
 #define ck_anoncode            Perl_ck_anoncode
 #define ck_bitop               Perl_ck_bitop
 
 #if defined(PERL_IMPLICIT_SYS)
 #endif
+#define doing_taint            Perl_doing_taint
 #if defined(USE_ITHREADS)
 #  if defined(PERL_IMPLICIT_SYS)
 #  endif
 #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_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 parse_unicode_opts(a)  Perl_parse_unicode_opts(aTHX_ a)
 #endif
 #ifdef PERL_CORE
+#define seed()                 Perl_seed(aTHX)
+#endif
+#ifdef PERL_CORE
 #define report_evil_fh(a,b,c)  Perl_report_evil_fh(aTHX_ a,b,c)
 #endif
 #ifdef PERL_CORE
 #endif
 #define whichsig(a)            Perl_whichsig(aTHX_ a)
 #ifdef PERL_CORE
+#define write_to_stderr(a,b)   Perl_write_to_stderr(aTHX_ a,b)
+#endif
+#ifdef PERL_CORE
 #define yyerror(a)             Perl_yyerror(aTHX_ a)
 #endif
 #ifdef USE_PURE_BISON
 #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)
 #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)
+#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
+#endif
 #ifdef PERL_CORE
-#define cv_clone2(a,b)         S_cv_clone2(aTHX_ a,b)
+#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
+#if defined(DEBUGGING)
 #ifdef PERL_CORE
-#define find_runcv(a)          Perl_find_runcv(aTHX_ a)
+#define get_debug_opts(a)      Perl_get_debug_opts(aTHX_ a)
+#endif
 #endif
 #define ck_anoncode(a)         Perl_ck_anoncode(aTHX_ a)
 #define ck_bitop(a)            Perl_ck_bitop(aTHX_ a)
 
 #endif /* PERL_IMPLICIT_CONTEXT */
 
-#endif /* #ifndef PERL_HIDE_SHORT_NAMES */
+#endif /* #ifndef PERL_NO_SHORT_NAMES */
 
 
 /* Compatibility stubs.  Compile extensions with -DPERL_NOCOMPAT to
    an extra argument but grab the context pointer using the macro
    dTHX.
  */
-#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_HIDE_SHORT_NAMES)
+#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