rv_2av, rv_2cv and rv_2hv also make use of OPf_SPECIAL, so update the
[p5sagit/p5-mst-13.2.git] / embed.fnc
index b420278..4d91c30 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -150,6 +150,7 @@ Afnp        |int    |printf_nocontext|NN const char* fmt|...
 #endif
 p      |void   |cv_ckproto     |NN const CV* cv|NULLOK const GV* gv|NULLOK const char* p
 pd     |CV*    |cv_clone       |NN CV* proto
+ApdR   |SV*    |gv_const_sv    |NN GV* gv
 ApdR   |SV*    |cv_const_sv    |NULLOK CV* cv
 pR     |SV*    |op_const_sv    |NULLOK const OP* o|NULLOK CV* cv
 Apd    |void   |cv_undef       |NN CV* cv
@@ -453,6 +454,7 @@ Afp |SV*    |mess           |NN const char* pat|...
 Ap     |SV*    |vmess          |NN const char* pat|NULLOK va_list* args
 p      |void   |qerror         |NN SV* err
 Apd    |void   |sortsv         |NN SV** array|size_t num_elts|SVCOMPARE_t cmp
+Apd    |void   |sortsv_flags   |NN SV** array|size_t num_elts|SVCOMPARE_t cmp|U32 flags
 Apd    |int    |mg_clear       |NN SV* sv
 Apd    |int    |mg_copy        |NN SV* sv|NN SV* nsv|NULLOK const char* key|I32 klen
 pd     |void   |mg_localize    |NN SV* sv|NN SV* nsv
@@ -509,6 +511,7 @@ Apd |CV*    |newCONSTSUB    |NULLOK HV* stash|NULLOK const char* name|NULLOK SV* sv
 Ap     |void   |newFORM        |I32 floor|NULLOK OP* o|NULLOK OP* block
 Apa    |OP*    |newFOROP       |I32 flags|NULLOK char* label|line_t forline \
                                |NULLOK OP* sv|NN OP* expr|NULLOK OP* block|NULLOK OP* cont
+Apa    |OP*    |newGIVENOP     |NN OP* cond|NN OP* block|PADOFFSET defsv_off
 Apa    |OP*    |newLOGOP       |I32 optype|I32 flags|NN OP* left|NN OP* right
 Apa    |OP*    |newLOOPEX      |I32 type|NN OP* label
 Apa    |OP*    |newLOOPOP      |I32 flags|I32 debuggable|NULLOK OP* expr|NULLOK OP* block
@@ -552,6 +555,7 @@ Apa |SV*    |vnewSVpvf      |NN const char* pat|NULLOK va_list* args
 Apda   |SV*    |newSVrv        |NN SV* rv|NULLOK const char* classname
 Apda   |SV*    |newSVsv        |NULLOK SV* old
 Apa    |OP*    |newUNOP        |I32 type|I32 flags|NULLOK OP* first
+Apa    |OP*    |newWHENOP      |NULLOK OP* cond|NN OP* block
 Apa    |OP*    |newWHILEOP     |I32 flags|I32 debuggable|NULLOK LOOP* loop \
                                |I32 whileline|NULLOK OP* expr|NULLOK OP* block|NULLOK OP* cont \
                                |I32 has_my
@@ -724,7 +728,7 @@ Anp |Signal_t |csighandler  |int sig|...
 np     |Signal_t |sighandler   |int sig
 Anp    |Signal_t |csighandler  |int sig
 #endif
-Ap     |SV**   |stack_grow     |NN SV** sp|NN SV**p|int n
+Ap     |SV**   |stack_grow     |NN SV** sp|NN SV** p|int n
 Ap     |I32    |start_subparse |I32 is_format|U32 flags
 p      |void   |sub_crush_depth|NN CV* cv
 Apd    |bool   |sv_2bool       |NN SV* sv
@@ -1005,9 +1009,9 @@ ApR       |char * |custom_op_desc |NN const OP* op
 pMX    |int    |sv_release_IVX |NN SV *sv
 #endif
 
-Adp    |void   |sv_nosharing   |NULLOK SV *
-Adpbm  |void   |sv_nolocking   |NULLOK SV *
-Adpbm  |void   |sv_nounlocking |NULLOK SV *
+Adp    |void   |sv_nosharing   |NULLOK SV *sv
+Adpbm  |void   |sv_nolocking   |NULLOK SV *sv
+Adpbm  |void   |sv_nounlocking |NULLOK SV *sv
 Adp    |int    |nothreadhook
 
 END_EXTERN_C
@@ -1084,6 +1088,7 @@ pR        |OP*    |ck_return      |NN OP *o
 pR     |OP*    |ck_rfun        |NN OP *o
 pR     |OP*    |ck_rvconst     |NN OP *o
 pR     |OP*    |ck_sassign     |NN OP *o
+pR     |OP*    |ck_say         |NN OP *o
 pR     |OP*    |ck_select      |NN OP *o
 pR     |OP*    |ck_shift       |NN OP *o
 pR     |OP*    |ck_sort        |NN OP *o
@@ -1113,6 +1118,11 @@ s        |void   |no_bareword_allowed|NN const OP *o
 sR     |OP*    |no_fh_allowed|NN OP *o
 sR     |OP*    |too_few_arguments|NN OP *o|NN const char* name
 sR     |OP*    |too_many_arguments|NN OP *o|NN const char* name
+s      |bool   |looks_like_bool|NN OP* o
+s      |OP*    |newGIVWHENOP   |NULLOK OP* cond|NN OP *block \
+                               |I32 enter_opcode|I32 leave_opcode \
+                               |PADOFFSET entertarg
+s      |OP*    |ref_array_or_hash|NULLOK OP* cond
 #endif
 #if defined(PL_OP_SLAB_ALLOC)
 Apa    |void*  |Slab_Alloc     |int m|size_t sz
@@ -1172,15 +1182,22 @@ sR      |OP*    |dofindlabel    |NN OP *o|NN const char *label|NN OP **opstack|NN OP **opli
 sR     |OP*    |doparseform    |NN SV *sv
 snR    |bool   |num_overflow   |NV value|I32 fldsize|I32 frcsize
 sR     |I32    |dopoptoeval    |I32 startingblock
+sR     |I32    |dopoptogiven   |I32 startingblock
 sR     |I32    |dopoptolabel   |NN const char *label
 sR     |I32    |dopoptoloop    |I32 startingblock
 sR     |I32    |dopoptosub     |I32 startingblock
 sR     |I32    |dopoptosub_at  |NN const PERL_CONTEXT* cxstk|I32 startingblock
+sR     |I32    |dopoptowhen    |I32 startingblock
 s      |void   |save_lines     |NULLOK AV *array|NN SV *sv
 sR     |OP*    |doeval         |int gimme|NULLOK OP** startop|NULLOK CV* outside|U32 seq
+sR     |PerlIO *|check_type_and_open|NN const char *name|NN const char *mode
 sR     |PerlIO *|doopen_pm     |NN const char *name|NN const char *mode
 sR     |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
+sR     |bool   |matcher_matches_sv|NN PMOP* matcher|NN SV* sv
+s      |void   |destroy_matcher|NN PMOP* matcher
+s      |OP*    |do_smartmatch  |NULLOK HV* seen_this|NULLOK HV* seen_other
 #endif
 
 #if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
@@ -1223,30 +1240,30 @@ Es      |void   |reginsert      |NN struct RExC_state_t *state|U8 op|NN regnode *opnd
 Es     |void   |regoptail      |NN struct RExC_state_t *state|NN regnode *p|NN regnode *val
 Es     |void   |regtail        |NN struct RExC_state_t *state|NN regnode *p|NN regnode *val
 Es     |char*  |regwhite       |NN char *p|NN const char *e
-Es     |char*  |nextchar       |NN struct RExC_state_t*
+Es     |char*  |nextchar       |NN struct RExC_state_t *state
 #  ifdef DEBUGGING
 Es     |regnode*|dumpuntil     |NN regnode *start|NN regnode *node \
                                |NULLOK regnode *last|NN SV* sv|I32 l
 Es     |void   |put_byte       |NN SV* sv|int c
 #  endif
-Es     |void   |scan_commit    |NN struct RExC_state_t*|NN struct scan_data_t *data
-Es     |void   |cl_anything    |NN struct RExC_state_t*|NN struct regnode_charclass_class *cl
+Es     |void   |scan_commit    |NN struct RExC_state_t* state|NN struct scan_data_t *data
+Es     |void   |cl_anything    |NN struct RExC_state_t* state|NN struct regnode_charclass_class *cl
 Es     |int    |cl_is_anything |NN const struct regnode_charclass_class *cl
-Es     |void   |cl_init        |NN struct RExC_state_t*|NN struct regnode_charclass_class *cl
-Es     |void   |cl_init_zero   |NN struct RExC_state_t*|NN struct regnode_charclass_class *cl
+Es     |void   |cl_init        |NN struct RExC_state_t* state|NN struct regnode_charclass_class *cl
+Es     |void   |cl_init_zero   |NN struct RExC_state_t* state|NN struct regnode_charclass_class *cl
 Es     |void   |cl_and         |NN struct regnode_charclass_class *cl \
                                |NN const struct regnode_charclass_class *and_with
-Es     |void   |cl_or          |NN struct RExC_state_t*|NN struct regnode_charclass_class *cl \
+Es     |void   |cl_or          |NN struct RExC_state_t* 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 \
+Es     |I32    |study_chunk    |NN struct RExC_state_t* state|NN regnode **scanp \
                                |NN I32 *deltap|NN regnode *last|NULLOK struct scan_data_t *data \
                                |U32 flags|U32 depth
-Es     |I32    |add_data       |NN struct RExC_state_t*|I32 n|NN const char *s
+Es     |I32    |add_data       |NN struct RExC_state_t* state|I32 n|NN const char *s
 rs     |void   |re_croak2      |NN const char* pat1|NN const char* pat2|...
-Es     |I32    |regpposixcc    |NN struct RExC_state_t*|I32 value
-Es     |void   |checkposixcc   |NN struct RExC_state_t*
+Es     |I32    |regpposixcc    |NN struct RExC_state_t* state|I32 value
+Es     |void   |checkposixcc   |NN struct RExC_state_t* state
 
-Es     |I32    |make_trie      |NN struct RExC_state_t*|NN regnode *startbranch \
+Es     |I32    |make_trie      |NN struct RExC_state_t* state|NN regnode *startbranch \
                                |NN regnode *first|NN regnode *last|NN regnode *tail \
                                |U32 flags
 #endif
@@ -1288,8 +1305,6 @@ po        |void   |sv_add_backref |NN SV *tsv|NN SV *sv
 
 #if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 nsR    |char * |uiv_2buf       |NN char *buf|IV iv|UV uv|int is_uv|NN char **peob
-sR     |IV     |asIV           |NN SV* sv
-sR     |UV     |asUV           |NN SV* sv
 s      |void   |sv_unglob      |NN SV* sv
 s      |void   |not_a_number   |NN SV *sv
 s      |I32    |visit          |NN SVFUNC_t f|U32 flags|U32 mask
@@ -1339,9 +1354,10 @@ s        |char*  |scan_word      |NN char *s|NN char *dest|STRLEN destlen \
 sR     |char*  |skipspace      |NN char *s
 sR     |char*  |swallow_bom    |NN U8 *s
 s      |void   |checkcomma     |NN char *s|NN const char *name|NN const char *what
+s      |bool   |feature_is_enabled|NN char* name|STRLEN namelen
 s      |void   |force_ident    |NN const char *s|int kind
 s      |void   |incline        |NN char *s
-s      |int    |intuit_method  |NN char *s|NULLOK GV *gv
+s      |int    |intuit_method  |NN char *s|NULLOK GV *gv|NULLOK CV *cv
 s      |int    |intuit_more    |NN char *s
 s      |I32    |lop            |I32 f|int x|NN char *s
 rs     |void   |missingterm    |NULLOK char *s
@@ -1352,7 +1368,7 @@ sR        |I32    |sublex_push
 sR     |I32    |sublex_start
 sR     |char * |filter_gets    |NN SV *sv|NN PerlIO *fp|STRLEN append
 sR     |HV *   |find_in_my_stash|NN const char *pkgname|I32 len
-sR     |char * |tokenize_use   |int is_use|NN char*
+sR     |char * |tokenize_use   |int is_use|NN char *s
 s      |SV*    |new_constant   |NULLOK const char *s|STRLEN len|NN const char *key|NN SV *sv \
                                |NULLOK SV *pv|NULLOK const char *type
 #  if defined(DEBUGGING)