This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
#11739 was incomplete.
[perl5.git] / perlapi.c
index f0016d5..ec2ee38 100644 (file)
--- a/perlapi.c
+++ b/perlapi.c
@@ -480,6 +480,8 @@ Perl_sv_setpvf_mg_nocontext(SV* sv, const char* pat, ...)
 }
 
 #undef  Perl_fprintf_nocontext
+
+#undef  Perl_printf_nocontext
 #endif
 
 #undef  Perl_cv_const_sv
@@ -1095,6 +1097,13 @@ Perl_init_stacks(pTHXo)
     ((CPerlObj*)pPerl)->Perl_init_stacks();
 }
 
+#undef  Perl_init_tm
+void
+Perl_init_tm(pTHXo_ struct tm *ptm)
+{
+    ((CPerlObj*)pPerl)->Perl_init_tm(ptm);
+}
+
 #undef  Perl_instr
 char*
 Perl_instr(pTHXo_ const char* big, const char* little)
@@ -1466,6 +1475,13 @@ Perl_leave_scope(pTHXo_ I32 base)
     ((CPerlObj*)pPerl)->Perl_leave_scope(base);
 }
 
+#undef  Perl_op_null
+void
+Perl_op_null(pTHXo_ OP* o)
+{
+    ((CPerlObj*)pPerl)->Perl_op_null(o);
+}
+
 #undef  Perl_load_module
 void
 Perl_load_module(pTHXo_ U32 flags, SV* name, SV* ver, ...)
@@ -1489,6 +1505,20 @@ Perl_looks_like_number(pTHXo_ SV* sv)
 {
     return ((CPerlObj*)pPerl)->Perl_looks_like_number(sv);
 }
+
+#undef  Perl_grok_number
+int
+Perl_grok_number(pTHXo_ const char *pv, STRLEN len, UV *valuep)
+{
+    return ((CPerlObj*)pPerl)->Perl_grok_number(pv, len, valuep);
+}
+
+#undef  Perl_grok_numeric_radix
+bool
+Perl_grok_numeric_radix(pTHXo_ const char **sp, const char *send)
+{
+    return ((CPerlObj*)pPerl)->Perl_grok_numeric_radix(sp, send);
+}
 #if defined(USE_THREADS)
 #endif
 #if defined(USE_LOCALE_COLLATE)
@@ -1586,6 +1616,13 @@ Perl_mg_size(pTHXo_ SV* sv)
     return ((CPerlObj*)pPerl)->Perl_mg_size(sv);
 }
 
+#undef  Perl_mini_mktime
+void
+Perl_mini_mktime(pTHXo_ struct tm *pm)
+{
+    ((CPerlObj*)pPerl)->Perl_mini_mktime(pm);
+}
+
 #undef  Perl_moreswitches
 char*
 Perl_moreswitches(pTHXo_ char* s)
@@ -1599,7 +1636,7 @@ Perl_my_atof(pTHXo_ const char *s)
 {
     return ((CPerlObj*)pPerl)->Perl_my_atof(s);
 }
-#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
+#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
 
 #undef  Perl_my_bcopy
 char*
@@ -1641,6 +1678,30 @@ Perl_my_fflush_all(pTHXo)
     return ((CPerlObj*)pPerl)->Perl_my_fflush_all();
 }
 
+#undef  Perl_my_fork
+Pid_t
+Perl_my_fork()
+{
+    dTHXo;
+    return ((CPerlObj*)pPerl)->Perl_my_fork();
+}
+
+#undef  Perl_atfork_lock
+void
+Perl_atfork_lock()
+{
+    dTHXo;
+    ((CPerlObj*)pPerl)->Perl_atfork_lock();
+}
+
+#undef  Perl_atfork_unlock
+void
+Perl_atfork_unlock()
+{
+    dTHXo;
+    ((CPerlObj*)pPerl)->Perl_atfork_unlock();
+}
+
 #undef  Perl_my_lstat
 I32
 Perl_my_lstat(pTHXo)
@@ -1682,6 +1743,13 @@ Perl_my_popen(pTHXo_ char* cmd, char* mode)
 {
     return ((CPerlObj*)pPerl)->Perl_my_popen(cmd, mode);
 }
+
+#undef  Perl_my_popen_list
+PerlIO*
+Perl_my_popen_list(pTHXo_ char* mode, int n, SV ** args)
+{
+    return ((CPerlObj*)pPerl)->Perl_my_popen_list(mode, n, args);
+}
 #endif
 
 #undef  Perl_my_setenv
@@ -1697,6 +1765,13 @@ Perl_my_stat(pTHXo)
 {
     return ((CPerlObj*)pPerl)->Perl_my_stat();
 }
+
+#undef  Perl_my_strftime
+char *
+Perl_my_strftime(pTHXo_ char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst)
+{
+    return ((CPerlObj*)pPerl)->Perl_my_strftime(fmt, sec, min, hour, mday, mon, year, wday, yday, isdst);
+}
 #if defined(MYSWAP)
 
 #undef  Perl_my_swap
@@ -2402,6 +2477,13 @@ Perl_rsignal(pTHXo_ int i, Sighandler_t t)
 {
     return ((CPerlObj*)pPerl)->Perl_rsignal(i, t);
 }
+
+#undef  Perl_rsignal_state
+Sighandler_t
+Perl_rsignal_state(pTHXo_ int i)
+{
+    return ((CPerlObj*)pPerl)->Perl_rsignal_state(i);
+}
 #if !defined(HAS_RENAME)
 #endif
 
@@ -2601,6 +2683,13 @@ Perl_save_long(pTHXo_ long* longp)
     ((CPerlObj*)pPerl)->Perl_save_long(longp);
 }
 
+#undef  Perl_save_mortalizesv
+void
+Perl_save_mortalizesv(pTHXo_ SV* sv)
+{
+    ((CPerlObj*)pPerl)->Perl_save_mortalizesv(sv);
+}
+
 #undef  Perl_save_nogv
 void
 Perl_save_nogv(pTHXo_ GV* gv)
@@ -2937,6 +3026,13 @@ Perl_sv_compile_2op(pTHXo_ SV* sv, OP** startp, char* code, AV** avp)
     return ((CPerlObj*)pPerl)->Perl_sv_compile_2op(sv, startp, code, avp);
 }
 
+#undef  Perl_getcwd_sv
+int
+Perl_getcwd_sv(pTHXo_ SV* sv)
+{
+    return ((CPerlObj*)pPerl)->Perl_getcwd_sv(sv);
+}
+
 #undef  Perl_sv_dec
 void
 Perl_sv_dec(pTHXo_ SV* sv)
@@ -3178,6 +3274,13 @@ Perl_sv_setref_iv(pTHXo_ SV* rv, const char* classname, IV iv)
     return ((CPerlObj*)pPerl)->Perl_sv_setref_iv(rv, classname, iv);
 }
 
+#undef  Perl_sv_setref_uv
+SV*
+Perl_sv_setref_uv(pTHXo_ SV* rv, const char* classname, UV uv)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_setref_uv(rv, classname, uv);
+}
+
 #undef  Perl_sv_setref_nv
 SV*
 Perl_sv_setref_nv(pTHXo_ SV* rv, const char* classname, NV nv)
@@ -3306,9 +3409,9 @@ Perl_swash_init(pTHXo_ char* pkg, char* name, SV* listsv, I32 minbits, I32 none)
 
 #undef  Perl_swash_fetch
 UV
-Perl_swash_fetch(pTHXo_ SV *sv, U8 *ptr)
+Perl_swash_fetch(pTHXo_ SV *sv, U8 *ptr, bool do_utf8)
 {
-    return ((CPerlObj*)pPerl)->Perl_swash_fetch(sv, ptr);
+    return ((CPerlObj*)pPerl)->Perl_swash_fetch(sv, ptr, do_utf8);
 }
 
 #undef  Perl_taint_env
@@ -3413,6 +3516,13 @@ Perl_utf8_to_bytes(pTHXo_ U8 *s, STRLEN *len)
     return ((CPerlObj*)pPerl)->Perl_utf8_to_bytes(s, len);
 }
 
+#undef  Perl_bytes_from_utf8
+U8*
+Perl_bytes_from_utf8(pTHXo_ U8 *s, STRLEN *len, bool *is_utf8)
+{
+    return ((CPerlObj*)pPerl)->Perl_bytes_from_utf8(s, len, is_utf8);
+}
+
 #undef  Perl_bytes_to_utf8
 U8*
 Perl_bytes_to_utf8(pTHXo_ U8 *s, STRLEN *len)
@@ -3420,25 +3530,46 @@ Perl_bytes_to_utf8(pTHXo_ U8 *s, STRLEN *len)
     return ((CPerlObj*)pPerl)->Perl_bytes_to_utf8(s, len);
 }
 
-#undef  Perl_utf8_to_uv_simple
+#undef  Perl_utf8_to_uvchr
+UV
+Perl_utf8_to_uvchr(pTHXo_ U8 *s, STRLEN* retlen)
+{
+    return ((CPerlObj*)pPerl)->Perl_utf8_to_uvchr(s, retlen);
+}
+
+#undef  Perl_utf8_to_uvuni
 UV
-Perl_utf8_to_uv_simple(pTHXo_ U8 *s, STRLEN* retlen)
+Perl_utf8_to_uvuni(pTHXo_ U8 *s, STRLEN* retlen)
 {
-    return ((CPerlObj*)pPerl)->Perl_utf8_to_uv_simple(s, retlen);
+    return ((CPerlObj*)pPerl)->Perl_utf8_to_uvuni(s, retlen);
 }
 
-#undef  Perl_utf8_to_uv
+#undef  Perl_utf8n_to_uvchr
 UV
-Perl_utf8_to_uv(pTHXo_ U8 *s, STRLEN curlen, STRLEN* retlen, U32 flags)
+Perl_utf8n_to_uvchr(pTHXo_ U8 *s, STRLEN curlen, STRLEN* retlen, U32 flags)
 {
-    return ((CPerlObj*)pPerl)->Perl_utf8_to_uv(s, curlen, retlen, flags);
+    return ((CPerlObj*)pPerl)->Perl_utf8n_to_uvchr(s, curlen, retlen, flags);
 }
 
-#undef  Perl_uv_to_utf8
+#undef  Perl_utf8n_to_uvuni
+UV
+Perl_utf8n_to_uvuni(pTHXo_ U8 *s, STRLEN curlen, STRLEN* retlen, U32 flags)
+{
+    return ((CPerlObj*)pPerl)->Perl_utf8n_to_uvuni(s, curlen, retlen, flags);
+}
+
+#undef  Perl_uvchr_to_utf8
 U8*
-Perl_uv_to_utf8(pTHXo_ U8 *d, UV uv)
+Perl_uvchr_to_utf8(pTHXo_ U8 *d, UV uv)
 {
-    return ((CPerlObj*)pPerl)->Perl_uv_to_utf8(d, uv);
+    return ((CPerlObj*)pPerl)->Perl_uvchr_to_utf8(d, uv);
+}
+
+#undef  Perl_uvuni_to_utf8
+U8*
+Perl_uvuni_to_utf8(pTHXo_ U8 *d, UV uv)
+{
+    return ((CPerlObj*)pPerl)->Perl_uvuni_to_utf8(d, uv);
 }
 
 #undef  Perl_warn
@@ -3861,10 +3992,10 @@ Perl_sv_pvbyte(pTHXo_ SV *sv)
 }
 
 #undef  Perl_sv_utf8_upgrade
-void
+STRLEN
 Perl_sv_utf8_upgrade(pTHXo_ SV *sv)
 {
-    ((CPerlObj*)pPerl)->Perl_sv_utf8_upgrade(sv);
+    return ((CPerlObj*)pPerl)->Perl_sv_utf8_upgrade(sv);
 }
 
 #undef  Perl_sv_utf8_downgrade
@@ -3940,23 +4071,23 @@ Perl_newMYSUB(pTHXo_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
 
 #undef  Perl_cx_dup
 PERL_CONTEXT*
-Perl_cx_dup(pTHXo_ PERL_CONTEXT* cx, I32 ix, I32 max)
+Perl_cx_dup(pTHXo_ PERL_CONTEXT* cx, I32 ix, I32 max, clone_params* param)
 {
-    return ((CPerlObj*)pPerl)->Perl_cx_dup(cx, ix, max);
+    return ((CPerlObj*)pPerl)->Perl_cx_dup(cx, ix, max, param);
 }
 
 #undef  Perl_si_dup
 PERL_SI*
-Perl_si_dup(pTHXo_ PERL_SI* si)
+Perl_si_dup(pTHXo_ PERL_SI* si, clone_params* param)
 {
-    return ((CPerlObj*)pPerl)->Perl_si_dup(si);
+    return ((CPerlObj*)pPerl)->Perl_si_dup(si, param);
 }
 
 #undef  Perl_ss_dup
 ANY*
-Perl_ss_dup(pTHXo_ PerlInterpreter* proto_perl)
+Perl_ss_dup(pTHXo_ PerlInterpreter* proto_perl, clone_params* param)
 {
-    return ((CPerlObj*)pPerl)->Perl_ss_dup(proto_perl);
+    return ((CPerlObj*)pPerl)->Perl_ss_dup(proto_perl, param);
 }
 
 #undef  Perl_any_dup
@@ -3968,16 +4099,16 @@ Perl_any_dup(pTHXo_ void* v, PerlInterpreter* proto_perl)
 
 #undef  Perl_he_dup
 HE*
-Perl_he_dup(pTHXo_ HE* e, bool shared)
+Perl_he_dup(pTHXo_ HE* e, bool shared, clone_params* param)
 {
-    return ((CPerlObj*)pPerl)->Perl_he_dup(e, shared);
+    return ((CPerlObj*)pPerl)->Perl_he_dup(e, shared, param);
 }
 
 #undef  Perl_re_dup
 REGEXP*
-Perl_re_dup(pTHXo_ REGEXP* r)
+Perl_re_dup(pTHXo_ REGEXP* r, clone_params* param)
 {
-    return ((CPerlObj*)pPerl)->Perl_re_dup(r);
+    return ((CPerlObj*)pPerl)->Perl_re_dup(r, param);
 }
 
 #undef  Perl_fp_dup
@@ -3996,23 +4127,23 @@ Perl_dirp_dup(pTHXo_ DIR* dp)
 
 #undef  Perl_gp_dup
 GP*
-Perl_gp_dup(pTHXo_ GP* gp)
+Perl_gp_dup(pTHXo_ GP* gp, clone_params* param)
 {
-    return ((CPerlObj*)pPerl)->Perl_gp_dup(gp);
+    return ((CPerlObj*)pPerl)->Perl_gp_dup(gp, param);
 }
 
 #undef  Perl_mg_dup
 MAGIC*
-Perl_mg_dup(pTHXo_ MAGIC* mg)
+Perl_mg_dup(pTHXo_ MAGIC* mg, clone_params* param)
 {
-    return ((CPerlObj*)pPerl)->Perl_mg_dup(mg);
+    return ((CPerlObj*)pPerl)->Perl_mg_dup(mg, param);
 }
 
 #undef  Perl_sv_dup
 SV*
-Perl_sv_dup(pTHXo_ SV* sstr)
+Perl_sv_dup(pTHXo_ SV* sstr, clone_params* param)
 {
-    return ((CPerlObj*)pPerl)->Perl_sv_dup(sstr);
+    return ((CPerlObj*)pPerl)->Perl_sv_dup(sstr, param);
 }
 #if defined(HAVE_INTERP_INTERN)
 
@@ -4051,6 +4182,20 @@ Perl_ptr_table_split(pTHXo_ PTR_TBL_t *tbl)
 {
     ((CPerlObj*)pPerl)->Perl_ptr_table_split(tbl);
 }
+
+#undef  Perl_ptr_table_clear
+void
+Perl_ptr_table_clear(pTHXo_ PTR_TBL_t *tbl)
+{
+    ((CPerlObj*)pPerl)->Perl_ptr_table_clear(tbl);
+}
+
+#undef  Perl_ptr_table_free
+void
+Perl_ptr_table_free(pTHXo_ PTR_TBL_t *tbl)
+{
+    ((CPerlObj*)pPerl)->Perl_ptr_table_free(tbl);
+}
 #endif
 #if defined(HAVE_INTERP_INTERN)
 
@@ -4082,6 +4227,8 @@ Perl_sys_intern_init(pTHXo)
 #if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
 #endif
 #if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
+#  if defined(DEBUG_CLOSURES)
+#  endif
 #  if defined(PL_OP_SLAB_ALLOC)
 #  endif
 #endif
@@ -4095,6 +4242,8 @@ Perl_sys_intern_init(pTHXo)
 #endif
 #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
 #endif
+#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
+#endif
 #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
 #if defined(PERL_FLEXIBLE_EXCEPTIONS)
 #endif
@@ -4106,20 +4255,79 @@ Perl_sys_intern_init(pTHXo)
 #  endif
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
+#  ifdef DEBUGGING
+#  endif
 #endif
 #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
 #endif
 #if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
+#   ifdef DEBUGGING
+#   endif
 #endif
 #if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
 #endif
+#if defined(USE_ITHREADS) && (defined(PERL_IN_SHAREDSV_C) || defined(PERL_DECL_PROT))
+
+#undef  Perl_sharedsv_init
+void
+Perl_sharedsv_init(pTHXo)
+{
+    ((CPerlObj*)pPerl)->Perl_sharedsv_init();
+}
+
+#undef  Perl_sharedsv_new
+shared_sv*
+Perl_sharedsv_new(pTHXo)
+{
+    return ((CPerlObj*)pPerl)->Perl_sharedsv_new();
+}
+
+#undef  Perl_sharedsv_find
+shared_sv*
+Perl_sharedsv_find(pTHXo_ SV* sv)
+{
+    return ((CPerlObj*)pPerl)->Perl_sharedsv_find(sv);
+}
+
+#undef  Perl_sharedsv_lock
+void
+Perl_sharedsv_lock(pTHXo_ shared_sv* ssv)
+{
+    ((CPerlObj*)pPerl)->Perl_sharedsv_lock(ssv);
+}
+
+#undef  Perl_sharedsv_unlock
+void
+Perl_sharedsv_unlock(pTHXo_ shared_sv* ssv)
+{
+    ((CPerlObj*)pPerl)->Perl_sharedsv_unlock(ssv);
+}
+
+#undef  Perl_sharedsv_thrcnt_inc
+void
+Perl_sharedsv_thrcnt_inc(pTHXo_ shared_sv* ssv)
+{
+    ((CPerlObj*)pPerl)->Perl_sharedsv_thrcnt_inc(ssv);
+}
+
+#undef  Perl_sharedsv_thrcnt_dec
+void
+Perl_sharedsv_thrcnt_dec(pTHXo_ shared_sv* ssv)
+{
+    ((CPerlObj*)pPerl)->Perl_sharedsv_thrcnt_dec(ssv);
+}
+#endif
 #if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#  if defined(DEBUGGING)
+#  ifdef DEBUGGING
 #  endif
 #  if !defined(NV_PRESERVES_UV)
 #  endif
+#  if defined(USE_ITHREADS)
+#  endif
 #endif
 #if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
+#  if defined(DEBUGGING)
+#  endif
 #if 0
 #endif
 #  if defined(CRIPPLED_CC)
@@ -4129,6 +4337,8 @@ Perl_sys_intern_init(pTHXo)
 #endif
 #if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
 #endif
+#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
+#endif
 #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
 #  if defined(LEAKTEST)
 #  endif
@@ -4136,6 +4346,55 @@ Perl_sys_intern_init(pTHXo)
 #if defined(PERL_OBJECT)
 #endif
 
+#undef  Perl_sv_setsv_flags
+void
+Perl_sv_setsv_flags(pTHXo_ SV* dsv, SV* ssv, I32 flags)
+{
+    ((CPerlObj*)pPerl)->Perl_sv_setsv_flags(dsv, ssv, flags);
+}
+
+#undef  Perl_sv_catpvn_flags
+void
+Perl_sv_catpvn_flags(pTHXo_ SV* sv, const char* ptr, STRLEN len, I32 flags)
+{
+    ((CPerlObj*)pPerl)->Perl_sv_catpvn_flags(sv, ptr, len, flags);
+}
+
+#undef  Perl_sv_catsv_flags
+void
+Perl_sv_catsv_flags(pTHXo_ SV* dsv, SV* ssv, I32 flags)
+{
+    ((CPerlObj*)pPerl)->Perl_sv_catsv_flags(dsv, ssv, flags);
+}
+
+#undef  Perl_sv_utf8_upgrade_flags
+STRLEN
+Perl_sv_utf8_upgrade_flags(pTHXo_ SV *sv, I32 flags)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_utf8_upgrade_flags(sv, flags);
+}
+
+#undef  Perl_sv_pvn_force_flags
+char*
+Perl_sv_pvn_force_flags(pTHXo_ SV* sv, STRLEN* lp, I32 flags)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_pvn_force_flags(sv, lp, flags);
+}
+
+#undef  Perl_sv_2pv_flags
+char*
+Perl_sv_2pv_flags(pTHXo_ SV* sv, STRLEN* lp, I32 flags)
+{
+    return ((CPerlObj*)pPerl)->Perl_sv_2pv_flags(sv, lp, flags);
+}
+
+#undef  Perl_my_atof2
+char*
+Perl_my_atof2(pTHXo_ const char *s, NV* value)
+{
+    return ((CPerlObj*)pPerl)->Perl_my_atof2(s, value);
+}
+
 #undef Perl_fprintf_nocontext
 int
 Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
@@ -4146,6 +4405,16 @@ Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
     return (*PL_StdIO->pVprintf)(PL_StdIO, stream, format, arglist);
 }
 
+#undef Perl_printf_nocontext
+int
+Perl_printf_nocontext(const char *format, ...)
+{
+    dTHXo;
+    va_list(arglist);
+    va_start(arglist, format);
+    return (*PL_StdIO->pVprintf)(PL_StdIO, PerlIO_stdout(), format, arglist);
+}
+
 END_EXTERN_C
 
 #endif /* PERL_OBJECT */