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 4bd6bdc..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 \
@@ -517,9 +519,12 @@ AnpP       |I32    |foldEQ_locale  |NN const char* a|NN const char* b|I32 len
 Am     |I32    |ibcmp_utf8     |NN const char *s1|NULLOK char **pe1|UV l1 \
                                |bool u1|NN const char *s2|NULLOK char **pe2 \
                                |UV l2|bool u2
-Apd    |I32    |foldEQ_utf8    |NN const char *s1|NULLOK char **pe1|UV l1 \
+Amd    |I32    |foldEQ_utf8    |NN const char *s1|NULLOK char **pe1|UV l1 \
                                |bool u1|NN const char *s2|NULLOK char **pe2 \
                                |UV l2|bool u2
+AMp    |I32    |foldEQ_utf8_flags |NN const char *s1|NULLOK char **pe1|UV l1 \
+                               |bool u1|NN const char *s2|NULLOK char **pe2 \
+                               |UV l2|bool u2|U32 flags
 AnpP   |I32    |foldEQ_latin1  |NN const char* a|NN const char* b|I32 len
 #if defined(PERL_IN_DOIO_C)
 sR     |bool   |ingroup        |Gid_t testgid|bool effective
@@ -540,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
@@ -559,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
@@ -580,7 +588,9 @@ Anpdmb      |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **p
 Anpd   |bool   |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el
 ApR    |bool   |is_utf8_alnum  |NN const U8 *p
 ApR    |bool   |is_utf8_idfirst|NN const U8 *p
+ApR    |bool   |is_utf8_xidfirst|NN const U8 *p
 ApR    |bool   |is_utf8_idcont |NN const U8 *p
+ApR    |bool   |is_utf8_xidcont        |NN const U8 *p
 ApR    |bool   |is_utf8_alpha  |NN const U8 *p
 ApR    |bool   |is_utf8_ascii  |NN const U8 *p
 ApR    |bool   |is_utf8_space  |NN const U8 *p
@@ -656,8 +666,10 @@ Ap |void   |vload_module|U32 flags|NN SV* name|NULLOK SV* ver|NULLOK va_list* args
 p      |OP*    |localize       |NN OP *o|I32 lex
 ApdR   |I32    |looks_like_number|NN SV *const sv
 Apd    |UV     |grok_bin       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-EXMpR  |char   |grok_bslash_c  |const char source|const bool output_warning
-EXMpR  |bool   |grok_bslash_o  |NN const char* s|NN UV* uv|NN STRLEN* len|NN const char** error_msg|const bool output_warning
+#ifdef PERL_IN_DQUOTE_STATIC_C
+EMsR   |char   |grok_bslash_c  |const char source|const bool utf8|const bool output_warning
+EMsR   |bool   |grok_bslash_o  |NN const char* s|NN UV* uv|NN STRLEN* len|NN const char** error_msg|const bool output_warning
+#endif
 Apd    |UV     |grok_hex       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
 Apd    |int    |grok_number    |NN const char *pv|STRLEN len|NULLOK UV *valuep
 ApdR   |bool   |grok_numeric_radix|NN const char **sp|NN const char *send
@@ -743,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
@@ -971,6 +984,11 @@ Ap |void   |regdump        |NN const regexp* r
 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 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 \
                                |NN char* strend|NN char* strbeg|I32 minend \
                                |NN SV* screamer|U32 nosave
@@ -1284,32 +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
-EMpR   |HV*    |_new_invlist   |const IV initial_size
-EXMpR  |HV*    |_swash_to_invlist      |NN SV* const swash
-EMp    |void   |_append_range_to_invlist   |NN HV* const invlist|const UV start|const UV end
 #ifdef PERL_IN_REGCOMP_C
-EsMR   |HV*    |add_range_to_invlist   |NN HV* const 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
@@ -1568,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
@@ -1669,7 +1702,9 @@ so        |void   |validate_suid  |NN PerlIO *rsfp
 
 s      |void*  |parse_body     |NULLOK char **env|XSINIT_t xsinit
 rs     |void   |run_body       |I32 oldscope
+#  ifndef PERL_IS_MINIPERL
 s      |SV *   |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem
+#  endif
 #endif
 
 #if defined(PERL_IN_PP_C)
@@ -1704,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
@@ -1718,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
@@ -1772,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 \
@@ -1793,8 +1829,6 @@ Esn       |void   |cl_anything    |NN const struct RExC_state_t *pRExC_state \
 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_init_zero   |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 const struct RExC_state_t *pRExC_state \