This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Standardize subroutine definitions between tests.
[perl5.git] / embed.fnc
index 5717f4c..422f6d1 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
 :        1) must be static to its containing file ("i" or "s" flag); or
 :         2) be combined with the "X" flag.
 :
-:   f  Function takes printf style format string, varargs (hence any entry that
-:      would otherwise go in embed.h is suppressed):
+:   f  Function takes a format string. If the function name /strftime/
+:      then its assumed to take a strftime-style format string as 1st arg;
+:      otherwise it's assumed to be a printf style format string, varargs
+:      (hence any entry that would otherwise go in embed.h is suppressed):
 :
 :         proto.h: add __attribute__format__ (or ...null_ok__)
 :
@@ -300,7 +302,7 @@ p   |SV *   |core_prototype |NULLOK SV *sv|NN const char *name \
 p      |OP *   |coresub_op     |NN SV *const coreargssv|const int code \
                                |const int opnum
 : Used in sv.c
-p      |void   |cv_ckproto_len_flags   |NN const CV* cv|NULLOK const GV* gv\
+EMXp   |void   |cv_ckproto_len_flags   |NN const CV* cv|NULLOK const GV* gv\
                                |NULLOK const char* p|const STRLEN len \
                                 |const U32 flags
 : Used in pp.c and pp_sys.c
@@ -514,6 +516,8 @@ Ap  |void   |gv_init_pv     |NN GV* gv|NULLOK HV* stash|NN const char* name \
 Ap     |void   |gv_init_pvn    |NN GV* gv|NULLOK HV* stash|NN const char* name \
                                 |STRLEN len|U32 flags
 Ap     |void   |gv_name_set    |NN GV* gv|NN const char *name|U32 len|U32 flags
+px     |GV *   |gv_override    |NN const char * const name \
+                               |const STRLEN len
 XMpd   |void   |gv_try_downgrade|NN GV* gv
 Apd    |HV*    |gv_stashpv     |NN const char* name|I32 flags
 Apd    |HV*    |gv_stashpvn    |NN const char* name|U32 namelen|I32 flags
@@ -862,6 +866,7 @@ poX |OP*    |op_lvalue_flags|NULLOK OP* o|I32 type|U32 flags
 p      |void   |finalize_optree                |NN OP* o
 #if defined(PERL_IN_OP_C)
 s      |void   |finalize_op    |NN OP* o
+s      |void   |move_proto_attr|NN OP **proto|NN OP **attrs|NN const GV *name
 #endif
 : Used in op.c and pp_sys.c
 p      |int    |mode_from_discipline|NULLOK const char* s|STRLEN len
@@ -895,7 +900,7 @@ Ap  |PerlIO*|my_popen_list  |NN const char* mode|int n|NN SV ** args
 Ap     |void   |my_setenv      |NULLOK const char* nam|NULLOK const char* val
 Apmb   |I32    |my_stat
 pX     |I32    |my_stat_flags  |NULLOK const U32 flags
-A    |char * |my_strftime    |NN const char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
+Afp    |char * |my_strftime    |NN const char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
 : Used in pp_ctl.c
 p      |void   |my_unexec
 ADMnoPR        |UV     |NATIVE_TO_NEED |const UV enc|const UV ch
@@ -1260,6 +1265,8 @@ Apd       |NV     |scan_oct       |NN const char* start|STRLEN len|NN STRLEN* retlen
 AMpd   |OP*    |op_scope       |NULLOK OP* o
 Ap     |char*  |screaminstr    |NN SV *bigstr|NN SV *littlestr|I32 start_shift \
                                |I32 end_shift|NN I32 *old_posp|I32 last
+: Only used by perl.c/miniperl.c, but defined in caretx.c
+px     |void   |set_caret_X
 Apd    |void   |setdefout      |NN GV* gv
 Ap     |HEK*   |share_hek      |NN const char* str|I32 len|U32 hash
 #if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
@@ -1275,26 +1282,26 @@ Ap      |I32    |start_subparse |I32 is_format|U32 flags
 : Used in pp_ctl.c
 p      |void   |sub_crush_depth|NN CV* cv
 Amd    |bool   |sv_2bool       |NN SV *const sv
-Apd    |bool   |sv_2bool_flags |NN SV *const sv|const I32 flags
+Apd    |bool   |sv_2bool_flags |NN SV *sv|I32 flags
 Apd    |CV*    |sv_2cv         |NULLOK SV* sv|NN HV **const st|NN GV **const gvp \
                                |const I32 lref
 Apd    |IO*    |sv_2io         |NN SV *const sv
 #if defined(PERL_IN_SV_C)
 s      |bool   |glob_2number   |NN GV* const gv
 #endif
-Amb    |IV     |sv_2iv         |NULLOK SV *sv
-Apd    |IV     |sv_2iv_flags   |NULLOK SV *const sv|const I32 flags
+Amb    |IV     |sv_2iv         |NN SV *sv
+Apd    |IV     |sv_2iv_flags   |NN SV *const sv|const I32 flags
 Apd    |SV*    |sv_2mortal     |NULLOK SV *const sv
-Apd    |NV     |sv_2nv_flags   |NULLOK SV *const sv|const I32 flags
+Apd    |NV     |sv_2nv_flags   |NN SV *const sv|const I32 flags
 : Used in pp.c, pp_hot.c, sv.c
 pMd    |SV*    |sv_2num        |NN SV *const sv
-Amb    |char*  |sv_2pv         |NULLOK SV *sv|NULLOK STRLEN *lp
-Apd    |char*  |sv_2pv_flags   |NULLOK SV *const sv|NULLOK STRLEN *const lp|const I32 flags
+Amb    |char*  |sv_2pv         |NN SV *sv|NULLOK STRLEN *lp
+Apd    |char*  |sv_2pv_flags   |NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags
 Apd    |char*  |sv_2pvutf8     |NN SV *sv|NULLOK STRLEN *const lp
 Apd    |char*  |sv_2pvbyte     |NN SV *sv|NULLOK STRLEN *const lp
 Ap     |char*  |sv_pvn_nomg    |NN SV* sv|NULLOK STRLEN* lp
-Amb    |UV     |sv_2uv         |NULLOK SV *sv
-Apd    |UV     |sv_2uv_flags   |NULLOK SV *const sv|const I32 flags
+Amb    |UV     |sv_2uv         |NN SV *sv
+Apd    |UV     |sv_2uv_flags   |NN SV *const sv|const I32 flags
 Apd    |IV     |sv_iv          |NN SV* sv
 Apd    |UV     |sv_uv          |NN SV* sv
 Apd    |NV     |sv_nv          |NN SV* sv
@@ -1747,9 +1754,10 @@ Ap       |void   |sys_intern_dup |NN struct interp_intern* src|NN struct interp_intern*
 #  endif
 #endif
 
-AopP   |const XOP *    |custom_op_xop  |NN const OP *o
+AmopP  |const XOP *    |custom_op_xop  |NN const OP *o
 ApR    |const char *   |custom_op_name |NN const OP *o
 ApR    |const char *   |custom_op_desc |NN const OP *o
+pRX    |XOPRETANY      |custom_op_get_field    |NN const OP *o|const xop_flags_enum field
 Aop    |void   |custom_op_register     |NN Perl_ppaddr_t ppaddr \
                        |NN const XOP *xop
 
@@ -1823,6 +1831,7 @@ s |SV*    |magic_methcall1|NN SV *sv|NN const MAGIC *mg \
                                |int n|NULLOK SV *val
 s      |void   |restore_magic  |NULLOK const void *p
 s      |void   |unwind_handler_stack|NULLOK const void *p
+s      |void   |fixup_errno_string|NN SV* sv
 
 #endif
 
@@ -1954,7 +1963,8 @@ sR        |PerlIO *|check_type_and_open|NN SV *name
 #ifndef PERL_DISABLE_PMC
 sR     |PerlIO *|doopen_pm     |NN SV *name
 #endif
-s      |SV **  |adjust_stack_on_leave|NN SV **newsp|NN SV **sp|NN SV **mark|I32 gimme|U32 flags
+s      |SV **  |adjust_stack_on_leave|NN SV **newsp|NN SV **sp|NN SV **mark|I32 gimme \
+                                     |U32 flags|bool lvalue
 iRn    |bool   |path_is_searchable|NN const char *name
 sR     |I32    |run_user_filter|int idx|NN SV *buf_sv|int maxlen
 sR     |PMOP*  |make_matcher   |NN REGEXP* re
@@ -2054,26 +2064,42 @@ Es      |void   |scan_commit    |NN const RExC_state_t *pRExC_state \
                                |NN SSize_t *minlenp                \
                                |int is_inf
 Es     |void   |populate_ANYOF_from_invlist|NN regnode *node|NN SV** invlist_ptr
-Esn    |void   |ssc_anything   |NN const RExC_state_t *pRExC_state \
-                               |NN regnode_ssc *ssc
-EsRn   |int    |ssc_is_anything|NN const regnode_ssc *ssc
-Esn    |void   |ssc_init       |NN const RExC_state_t *pRExC_state \
+Es     |void   |ssc_anything   |NN regnode_ssc *ssc
+EsR    |int    |ssc_is_anything|NN const regnode_ssc *ssc
+Es     |void   |ssc_init       |NN const RExC_state_t *pRExC_state \
                                |NN regnode_ssc *ssc
+EsR    |int    |ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \
+                               |NN const regnode_ssc *ssc
 Es     |void   |ssc_and        |NN const RExC_state_t *pRExC_state \
                                |NN regnode_ssc *ssc                \
                                |NN const regnode_ssc *and_with
-Esn    |void   |ssc_or         |NN const RExC_state_t *pRExC_state \
+Esn    |void   |ssc_flags_and  |NN regnode_ssc *ssc|const U8 and_with
+Es     |void   |ssc_or         |NN const RExC_state_t *pRExC_state \
                                |NN regnode_ssc *ssc \
                                |NN const regnode_ssc *or_with
+Es     |SV*    |get_ANYOF_cp_list_for_ssc                                 \
+                               |NN const RExC_state_t *pRExC_state \
+                               |NN const regnode_charclass_posixl* const node
+Ei     |void   |ssc_intersection|NN regnode_ssc *ssc \
+                               |NN SV* const invlist|const bool invert_2nd
+Ei     |void   |ssc_union      |NN regnode_ssc *ssc \
+                               |NN SV* const invlist|const bool invert_2nd
+Ei     |void   |ssc_add_range  |NN regnode_ssc *ssc \
+                               |UV const start|UV const end
+Ei     |void   |ssc_cp_and     |NN regnode_ssc *ssc \
+                               |UV const cp
+Ei     |void   |ssc_clear_locale|NN regnode_ssc *ssc
+Es     |void   |ssc_finalize   |NN RExC_state_t *pRExC_state \
+                               |NN regnode_ssc *ssc
 Es     |SSize_t|study_chunk    |NN RExC_state_t *pRExC_state \
                                |NN regnode **scanp|NN SSize_t *minlenp \
                                |NN SSize_t *deltap|NN regnode *last \
                                |NULLOK struct scan_data_t *data \
-                               |I32 stopparen|NULLOK U8* recursed \
+                                |I32 stopparen|U32 recursed_depth \
                                |NULLOK regnode_ssc *and_withp \
                                |U32 flags|U32 depth
 EsRn   |U32    |add_data       |NN RExC_state_t* const pRExC_state \
-                               |const U32 n|NN const char* const s
+                               |NN const char* const s|const U32 n
 rs     |void   |re_croak2      |bool utf8|NN const char* pat1|NN const char* pat2|...
 Ei     |I32    |regpposixcc    |NN RExC_state_t *pRExC_state \
                                |I32 value|const bool strict
@@ -2236,7 +2262,6 @@ s |char*  |force_strict_version   |NN char *s
 s      |char*  |force_word     |NN char *start|int token|int check_keyword \
                                |int allow_pack
 s      |SV*    |tokeq          |NN SV *sv
-s      |void   |readpipe_override|
 sR     |char*  |scan_const     |NN char *start
 iR     |SV*    |get_and_check_backslash_N_name|NN const char* s \
                                |NN const char* const e
@@ -2248,7 +2273,8 @@ sR        |char*  |scan_inputsymbol|NN char *start
 sR     |char*  |scan_pat       |NN char *start|I32 type
 sR     |char*  |scan_str       |NN char *start|int keep_quoted \
                                |int keep_delims|int re_reparse \
-                               |bool deprecate_escaped_matching
+                               |bool deprecate_escaped_matching \
+                               |NULLOK char **delimp
 sR     |char*  |scan_subst     |NN char *start
 sR     |char*  |scan_trans     |NN char *start
 s      |char*  |scan_word      |NN char *s|NN char *dest|STRLEN destlen \
@@ -2293,7 +2319,7 @@ s |void   |strip_return   |NN SV *sv
 #  endif
 #  if defined(DEBUGGING)
 s      |int    |tokereport     |I32 rv|NN const YYSTYPE* lvalp
-s      |void   |printbuf       |NN const char *const fmt|NN const char *const s
+sf     |void   |printbuf       |NN const char *const fmt|NN const char *const s
 #  endif
 #endif
 EXMp   |bool   |validate_proto |NN SV *name|NULLOK SV *proto|bool warn
@@ -2646,7 +2672,8 @@ sd        |AV*    |mro_get_linear_isa_dfs|NN HV* stash|U32 level
 s      |void   |mro_clean_isarev|NN HV * const isa   \
                                 |NN const char * const name \
                                 |const STRLEN len \
-                                |NULLOK HV * const exceptions|U32 flags
+                                |NULLOK HV * const exceptions \
+                                |U32 hash|U32 flags
 s      |void   |mro_gather_and_rename|NN HV * const stashes \
                                      |NN HV * const seen_stashes \
                                      |NULLOK HV *stash \