This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Stop buildtoc from generating trailing whitespace
[perl5.git] / embed.fnc
index 1a0c437..ec97105 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -346,6 +346,8 @@ p   |I32    |do_shmio       |I32 optype|NN SV** mark|NN SV** sp
 Ap     |void   |do_join        |NN SV *sv|NN SV *delim|NN SV **mark|NN SV **sp
 : Used in pp.c and pp_hot.c, prototype generated by regen/opcode.pl
 : p    |OP*    |do_kv
+: used in pp.c, pp_hot.c
+pR     |I32    |do_ncmp        |NN SV *const left|NN SV *const right
 Apmb   |bool   |do_open        |NN GV* gv|NN const char* name|I32 len|int as_raw \
                                |int rawmode|int rawperm|NULLOK PerlIO* supplied_fp
 Ap     |bool   |do_open9       |NN GV *gv|NN const char *name|I32 len|int as_raw \
@@ -543,6 +545,8 @@ p   |bool   |io_close       |NN IO* io|bool not_implicit
 : Used in perly.y
 pR     |OP*    |invert         |NULLOK OP* cmd
 ApR    |I32    |is_lvalue_sub
+: Used in cop.h
+ApR    |I32    |was_lvalue_sub
 ApPR   |U32    |to_uni_upper_lc|U32 c
 ApPR   |U32    |to_uni_title_lc|U32 c
 ApPR   |U32    |to_uni_lower_lc|U32 c
@@ -562,7 +566,8 @@ ApPR        |bool   |is_uni_xdigit  |UV c
 Ap     |UV     |to_uni_upper   |UV c|NN U8 *p|NN STRLEN *lenp
 Ap     |UV     |to_uni_title   |UV c|NN U8 *p|NN STRLEN *lenp
 Ap     |UV     |to_uni_lower   |UV c|NN U8 *p|NN STRLEN *lenp
-Ap     |UV     |to_uni_fold    |UV c|NN U8 *p|NN STRLEN *lenp
+Amp    |UV     |to_uni_fold    |UV c|NN U8 *p|NN STRLEN *lenp
+AMp    |UV     |_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|U8 flags
 ApPR   |bool   |is_uni_alnum_lc|UV c
 ApPR   |bool   |is_uni_idfirst_lc|UV c
 ApPR   |bool   |is_uni_alpha_lc|UV c
@@ -750,7 +755,8 @@ Apd |void   |mg_magical     |NN SV* sv
 Apd    |int    |mg_set         |NN SV* sv
 Ap     |I32    |mg_size        |NN SV* sv
 Ap     |void   |mini_mktime    |NN struct tm *ptm
-AMpd   |OP*    |op_lvalue      |NULLOK OP* o|I32 type
+AMmd   |OP*    |op_lvalue      |NULLOK OP* o|I32 type
+poX    |OP*    |op_lvalue_flags|NULLOK OP* o|I32 type|U32 flags
 : To be removed after 5.14 (see [perl #78908]):
 EXp    |OP*    |mod            |NULLOK OP* o|I32 type
 : Used in op.c and pp_sys.c
@@ -979,8 +985,8 @@ Ap  |SV*    |regclass_swash |NULLOK const regexp *prog \
                                |NN const struct regnode *node|bool doinit \
                                |NULLOK SV **listsvp|NULLOK SV **altsvp
 #ifdef PERL_IN_REGCOMP_C
-EMi    |U8     |set_regclass_bit|NN struct RExC_state_t* pRExC_state|NN regnode* node|const U8 value|NN HV** invlist_ptr|NN AV** alternate_ptr
-EMs    |U8     |set_regclass_bit_fold|NN struct RExC_state_t *pRExC_state|NN regnode* node|const U8 value|NN HV** invlist_ptr|NN AV** alternate_ptr
+EMi    |U8     |set_regclass_bit|NN struct RExC_state_t* pRExC_state|NN regnode* node|const U8 value|NN SV** invlist_ptr|NN AV** alternate_ptr
+EMs    |U8     |set_regclass_bit_fold|NN struct RExC_state_t *pRExC_state|NN regnode* node|const U8 value|NN SV** invlist_ptr|NN AV** alternate_ptr
 EMs    |void   |add_alternate  |NN AV** alternate_ptr|NN U8* string|STRLEN len
 #endif
 Ap     |I32    |pregexec       |NN REGEXP * const prog|NN char* stringarg \
@@ -1296,33 +1302,42 @@ Apd     |void   |sv_vsetpvfn    |NN SV *const sv|NN const char *const pat|const STRLEN pa
 ApR    |NV     |str_to_version |NN SV *sv
 Ap     |SV*    |swash_init     |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none
 Ap     |UV     |swash_fetch    |NN SV *swash|NN const U8 *ptr|bool do_utf8
-EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
-EXMpR  |HV*    |_new_invlist   |IV initial_size
-EXMpR  |HV*    |_swash_to_invlist      |NN SV* const swash
-EXMp   |void   |_append_range_to_invlist   |NN HV* const invlist|const UV start|const UV end
 #ifdef PERL_IN_REGCOMP_C
-EiMR   |HV*    |add_cp_to_invlist      |NULLOK HV* invlist|const UV cp
-EsMR   |HV*    |add_range_to_invlist   |NULLOK HV* invlist|const UV start|const UV end
-EiMR   |UV*    |invlist_array  |NN HV* const invlist
-EiM    |void   |invlist_destroy        |NN HV* const invlist
-EsM    |void   |invlist_extend    |NN HV* const invlist|const UV len
-EsMR   |HV*    |invlist_intersection   |NN HV* const a|NN HV* const b
-EiMR   |UV     |invlist_len    |NN HV* const invlist
-EiMR   |UV     |invlist_max    |NN HV* const invlist
-EiM    |void   |invlist_set_array      |NN HV* const invlist|NN const UV* const array
-EiM    |void   |invlist_set_len        |NN HV* const invlist|const UV len
-EiM    |void   |invlist_set_max        |NN HV* const invlist|const UV max
-EiM    |void   |invlist_trim   |NN HV* const invlist
-EsMR   |HV*    |invlist_union  |NN HV* const a|NN HV* const b
+EiMR   |SV*    |add_cp_to_invlist      |NULLOK SV* invlist|const UV cp
+EsMR   |SV*    |add_range_to_invlist   |NULLOK SV* invlist|const UV start|const UV end
+EiMR   |UV*    |_invlist_array_init    |NN SV* const invlist|const bool will_have_0
+EiMR   |UV*    |invlist_array  |NN SV* const invlist
+EsM    |void   |invlist_extend    |NN SV* const invlist|const UV len
+EiMR   |UV*    |get_invlist_len_addr   |NN SV* invlist
+EiMR   |UV*    |get_invlist_zero_addr  |NN SV* invlist
+EiMR   |UV     |invlist_len    |NN SV* const invlist
+EiMR   |UV     |invlist_max    |NN SV* const invlist
+EiM    |void   |invlist_set_len        |NN SV* const invlist|const UV len
+EiM    |void   |invlist_trim   |NN SV* const invlist
+EiMR   |SV*    |invlist_clone  |NN SV* const invlist
+EiMR   |UV*    |get_invlist_iter_addr  |NN SV* invlist
+EiM    |void   |invlist_iterinit|NN SV* invlist
+EsMR   |bool   |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
+EpM    |void   |_invlist_intersection  |NN SV* const a|NN SV* const b|NN SV** i
+EpM    |void   |_invlist_union |NN SV* const a|NN SV* const b|NN SV** output
+EpM    |void   |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
+EpM    |void   |_invlist_invert|NN SV* const invlist
+EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
+EXMpR  |SV*    |_new_invlist   |IV initial_size
+EXMpR  |SV*    |_swash_to_invlist      |NN SV* const swash
+EXMp   |void   |_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
 #endif
 Ap     |void   |taint_env
 Ap     |void   |taint_proper   |NULLOK const char* f|NN const char *const s
 Apd    |UV     |to_utf8_case   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp \
-                               |NN SV **swashp|NN const char *normal|NN const char *special
+                               |NN SV **swashp|NN const char *normal|NULLOK const char *special
 Apd    |UV     |to_utf8_lower  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
 Apd    |UV     |to_utf8_upper  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
 Apd    |UV     |to_utf8_title  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-Apd    |UV     |to_utf8_fold   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
+Ampd   |UV     |to_utf8_fold   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
+AMp    |UV     |_to_utf8_fold_flags|NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp|U8 flags
 #if defined(UNLINK_ALL_VERSIONS)
 Ap     |I32    |unlnk          |NN const char* f
 #endif
@@ -1581,9 +1596,14 @@ s        |HV*    |require_tie_mod|NN GV *gv|NN const char *varpv|NN SV* namesv \
                                |NN const char *methpv|const U32 flags
 #endif
 
+#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
+po     |SV*    |hfree_next_entry       |NN HV *hv|NN STRLEN *indexp
+#endif
+
 #if defined(PERL_IN_HV_C)
 s      |void   |hsplit         |NN HV *hv
 s      |void   |hfreeentries   |NN HV *hv
+s      |SV*    |hv_free_ent_ret|NN HV *hv|NULLOK HE *entryK
 sa     |HE*    |new_he
 sanR   |HEK*   |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
 sn     |void   |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
@@ -1719,7 +1739,7 @@ snR       |char * |bytes_to_uni   |NN const U8 *start|STRLEN len|NN char *dest
 #if defined(PERL_IN_PP_CTL_C)
 sR     |OP*    |docatch        |NULLOK OP *o
 sR     |OP*    |dofindlabel    |NN OP *o|NN const char *label|NN OP **opstack|NN OP **oplimit
-sR     |OP*    |doparseform    |NN SV *sv
+s      |MAGIC *|doparseform    |NN SV *sv
 snR    |bool   |num_overflow   |NV value|I32 fldsize|I32 frcsize
 sR     |I32    |dopoptoeval    |I32 startingblock
 sR     |I32    |dopoptogiven   |I32 startingblock
@@ -1733,6 +1753,7 @@ 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
 sRn    |bool   |path_is_absolute|NN const char *name
 sR     |I32    |run_user_filter|int idx|NN SV *buf_sv|int maxlen
 sR     |PMOP*  |make_matcher   |NN REGEXP* re
@@ -1787,7 +1808,7 @@ Es        |UV     |reg_recode     |const char value|NN SV **encp
 Es     |regnode*|regpiece      |NN struct RExC_state_t *pRExC_state \
                                |NN I32 *flagp|U32 depth
 Es     |regnode*|reg_namedseq  |NN struct RExC_state_t *pRExC_state \
-                               |NULLOK UV *valuep|NULLOK I32 *flagp
+                               |NULLOK UV *valuep|NULLOK I32 *flagp|U32 depth
 Es     |void   |reginsert      |NN struct RExC_state_t *pRExC_state \
                                |U8 op|NN regnode *opnd|U32 depth
 Es     |void   |regtail        |NN struct RExC_state_t *pRExC_state \
@@ -1803,13 +1824,15 @@ Es      |bool   |reg_skipcomment|NN struct RExC_state_t *pRExC_state
 Es     |void   |scan_commit    |NN const struct RExC_state_t *pRExC_state \
                                |NN struct scan_data_t *data|NN I32 *minlenp \
                                |int is_inf
-Esn    |void   |cl_anything    |NN struct regnode_charclass_class *cl
+Esn    |void   |cl_anything    |NN const struct RExC_state_t *pRExC_state \
+                               |NN struct regnode_charclass_class *cl
 EsRn   |int    |cl_is_anything |NN const struct regnode_charclass_class *cl
 Esn    |void   |cl_init        |NN const struct RExC_state_t *pRExC_state \
                                |NN struct regnode_charclass_class *cl
 Esn    |void   |cl_and         |NN struct regnode_charclass_class *cl \
                                |NN const struct regnode_charclass_class *and_with
-Esn    |void   |cl_or          |NN struct regnode_charclass_class *cl \
+Esn    |void   |cl_or          |NN const struct RExC_state_t *pRExC_state \
+                               |NN struct regnode_charclass_class *cl \
                                |NN const struct regnode_charclass_class *or_with
 Es     |I32    |study_chunk    |NN struct RExC_state_t *pRExC_state \
                                |NN regnode **scanp|NN I32 *minlenp \