X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=proto.h;h=a770485b069d7c8d22099e67c31a992c27a17e95;hb=c6af7a1aaf1f569eeb51c976b436561fdc569904;hp=933942f0054bd1a59004eb487322efcbdfc2da16;hpb=5081475eefaf24307ce7eaf4c87aafd588b37e98;p=p5sagit%2Fp5-mst-13.2.git diff --git a/proto.h b/proto.h index 933942f..a770485 100644 --- a/proto.h +++ b/proto.h @@ -1,10 +1,19 @@ +#ifndef PERL_CALLCONV +# define PERL_CALLCONV +#endif + #ifdef PERL_OBJECT -#define VIRTUAL virtual +#define VIRTUAL virtual PERL_CALLCONV #else -#define VIRTUAL +#define VIRTUAL PERL_CALLCONV START_EXTERN_C #endif +/* NOTE!!! When new virtual functions are added, they must be added at + * the end of this file to maintain binary compatibility with PERL_OBJECT + */ + + #ifndef NEXT30_NO_ATTRIBUTE #ifndef HASATTRIBUTE /* disable GNU-cc attribute checking? */ #ifdef __attribute__ /* Avoid possible redefinition errors */ @@ -47,14 +56,14 @@ VIRTUAL int block_start _((int full)); VIRTUAL void boot_core_UNIVERSAL _((void)); VIRTUAL void call_list _((I32 oldscope, AV* av_list)); VIRTUAL I32 cando _((I32 bit, I32 effective, Stat_t* statbufp)); -#ifndef CASTNEGFLOAT VIRTUAL U32 cast_ulong _((double f)); -#endif +VIRTUAL I32 cast_i32 _((double f)); +VIRTUAL IV cast_iv _((double f)); +VIRTUAL UV cast_uv _((double f)); #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) VIRTUAL I32 my_chsize _((int fd, Off_t length)); #endif -VIRTUAL OP* ck_gvconst _((OP* o)); -VIRTUAL OP* ck_retarget _((OP* o)); + #ifdef USE_THREADS VIRTUAL MAGIC * condpair_magic _((SV *sv)); #endif @@ -74,7 +83,7 @@ VIRTUAL char ** get_op_names _((void)); VIRTUAL char * get_no_modify _((void)); VIRTUAL U32 * get_opargs _((void)); VIRTUAL I32 cxinc _((void)); -VIRTUAL void deb _((const char* pat,...)) __attribute__((format(printf,1,2))); +VIRTUAL void deb _((const char* pat,...)); VIRTUAL void deb_growlevel _((void)); VIRTUAL void debprofdump _((void)); VIRTUAL I32 debop _((OP* o)); @@ -109,17 +118,18 @@ VIRTUAL void do_pipe _((SV* sv, GV* rgv, GV* wgv)); VIRTUAL bool do_print _((SV* sv, PerlIO* fp)); VIRTUAL OP* do_readline _((void)); VIRTUAL I32 do_chomp _((SV* sv)); -VIRTUAL bool do_seek _((GV* gv, long pos, int whence)); +VIRTUAL bool do_seek _((GV* gv, Off_t pos, int whence)); #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) I32 do_semop _((SV** mark, SV** sp)); I32 do_shmio _((I32 optype, SV** mark, SV** sp)); #endif VIRTUAL void do_sprintf _((SV* sv, I32 len, SV** sarg)); -VIRTUAL long do_sysseek _((GV* gv, long pos, int whence)); -VIRTUAL long do_tell _((GV* gv)); -VIRTUAL I32 do_trans _((SV* sv, OP* arg)); +VIRTUAL Off_t do_sysseek _((GV* gv, Off_t pos, int whence)); +VIRTUAL Off_t do_tell _((GV* gv)); +VIRTUAL I32 do_trans _((SV* sv)); VIRTUAL void do_vecset _((SV* sv)); VIRTUAL void do_vop _((I32 optype, SV* sv, SV* left, SV* right)); +VIRTUAL OP* dofile _((OP* term)); VIRTUAL I32 dowantarray _((void)); VIRTUAL void dump_all _((void)); VIRTUAL void dump_eval _((void)); @@ -194,6 +204,37 @@ VIRTUAL U32 intro_my _((void)); VIRTUAL char* instr _((char* big, char* little)); VIRTUAL bool io_close _((IO* io)); VIRTUAL OP* invert _((OP* cmd)); +VIRTUAL bool is_uni_alnum _((U32 c)); +VIRTUAL bool is_uni_idfirst _((U32 c)); +VIRTUAL bool is_uni_alpha _((U32 c)); +VIRTUAL bool is_uni_space _((U32 c)); +VIRTUAL bool is_uni_digit _((U32 c)); +VIRTUAL bool is_uni_upper _((U32 c)); +VIRTUAL bool is_uni_lower _((U32 c)); +VIRTUAL bool is_uni_print _((U32 c)); +VIRTUAL U32 to_uni_upper _((U32 c)); +VIRTUAL U32 to_uni_title _((U32 c)); +VIRTUAL U32 to_uni_lower _((U32 c)); +VIRTUAL bool is_uni_alnum_lc _((U32 c)); +VIRTUAL bool is_uni_idfirst_lc _((U32 c)); +VIRTUAL bool is_uni_alpha_lc _((U32 c)); +VIRTUAL bool is_uni_space_lc _((U32 c)); +VIRTUAL bool is_uni_digit_lc _((U32 c)); +VIRTUAL bool is_uni_upper_lc _((U32 c)); +VIRTUAL bool is_uni_lower_lc _((U32 c)); +VIRTUAL bool is_uni_print_lc _((U32 c)); +VIRTUAL U32 to_uni_upper_lc _((U32 c)); +VIRTUAL U32 to_uni_title_lc _((U32 c)); +VIRTUAL U32 to_uni_lower_lc _((U32 c)); +VIRTUAL bool is_utf8_alnum _((U8 *p)); +VIRTUAL bool is_utf8_idfirst _((U8 *p)); +VIRTUAL bool is_utf8_alpha _((U8 *p)); +VIRTUAL bool is_utf8_space _((U8 *p)); +VIRTUAL bool is_utf8_digit _((U8 *p)); +VIRTUAL bool is_utf8_upper _((U8 *p)); +VIRTUAL bool is_utf8_lower _((U8 *p)); +VIRTUAL bool is_utf8_print _((U8 *p)); +VIRTUAL bool is_utf8_mark _((U8 *p)); VIRTUAL OP* jmaybe _((OP* arg)); VIRTUAL I32 keyword _((char* d, I32 len)); VIRTUAL void leave_scope _((I32 base)); @@ -209,7 +250,6 @@ VIRTUAL int magic_clear_all_env _((SV* sv, MAGIC* mg)); VIRTUAL int magic_clearpack _((SV* sv, MAGIC* mg)); VIRTUAL int magic_clearsig _((SV* sv, MAGIC* mg)); VIRTUAL int magic_existspack _((SV* sv, MAGIC* mg)); -VIRTUAL int magic_freedefelem _((SV* sv, MAGIC* mg)); VIRTUAL int magic_freeregexp _((SV* sv, MAGIC* mg)); VIRTUAL int magic_get _((SV* sv, MAGIC* mg)); VIRTUAL int magic_getarylen _((SV* sv, MAGIC* mg)); @@ -228,6 +268,8 @@ VIRTUAL U32 magic_len _((SV* sv, MAGIC* mg)); VIRTUAL int magic_mutexfree _((SV* sv, MAGIC* mg)); #endif /* USE_THREADS */ VIRTUAL int magic_nextpack _((SV* sv, MAGIC* mg, SV* key)); +VIRTUAL U32 magic_regdata_cnt _((SV* sv, MAGIC* mg)); +VIRTUAL int magic_regdatum_get _((SV* sv, MAGIC* mg)); VIRTUAL int magic_set _((SV* sv, MAGIC* mg)); #ifdef OVERLOAD VIRTUAL int magic_setamagic _((SV* sv, MAGIC* mg)); @@ -319,7 +361,7 @@ VIRTUAL OP* newNULLLIST _((void)); VIRTUAL OP* newOP _((I32 optype, I32 flags)); VIRTUAL void newPROG _((OP* o)); VIRTUAL OP* newRANGE _((I32 flags, OP* left, OP* right)); -VIRTUAL OP* newSLICEOP _((I32 flags, OP* subscript, OP* list)); +VIRTUAL OP* newSLICEOP _((I32 flags, OP* subscript, OP* listop)); VIRTUAL OP* newSTATEOP _((I32 flags, char* label, OP* o)); VIRTUAL CV* newSUB _((I32 floor, OP* o, OP* proto, OP* block)); VIRTUAL CV* newXS _((char* name, void (*subaddr)(CV* cv _CPERLproto), char* filename)); @@ -430,13 +472,15 @@ VIRTUAL void pop_scope _((void)); VIRTUAL OP* prepend_elem _((I32 optype, OP* head, OP* tail)); VIRTUAL void push_return _((OP* o)); VIRTUAL void push_scope _((void)); -VIRTUAL regexp* pregcomp _((char* exp, char* xend, PMOP* pm)); VIRTUAL OP* ref _((OP* o, I32 type)); VIRTUAL OP* refkids _((OP* o, I32 type)); VIRTUAL void regdump _((regexp* r)); VIRTUAL I32 pregexec _((regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave)); -VIRTUAL I32 regexec_flags _((regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags)); VIRTUAL void pregfree _((struct regexp* r)); +VIRTUAL regexp* pregcomp _((char* exp, char* xend, PMOP* pm)); +VIRTUAL I32 regexec_flags _((regexp* prog, char* stringarg, char* strend, + char* strbeg, I32 minend, SV* screamer, + void* data, U32 flags)); VIRTUAL regnode* regnext _((regnode* p)); VIRTUAL void regprop _((SV* sv, regnode* o)); VIRTUAL void repeatcpy _((char* to, char* from, I32 len, I32 count)); @@ -455,6 +499,7 @@ VIRTUAL char* savepv _((char* sv)); VIRTUAL char* savepvn _((char* sv, I32 len)); VIRTUAL void savestack_grow _((void)); VIRTUAL void save_aelem _((AV* av, I32 idx, SV **sptr)); +VIRTUAL I32 save_alloc _((I32 size, I32 pad)); VIRTUAL void save_aptr _((AV** aptr)); VIRTUAL AV* save_ary _((GV* gv)); VIRTUAL void save_clearsv _((SV** svp)); @@ -470,6 +515,7 @@ void save_destructor _((void (*f)(void*), void* p)); VIRTUAL void save_freesv _((SV* sv)); VIRTUAL void save_freeop _((OP* o)); VIRTUAL void save_freepv _((char* pv)); +VIRTUAL void save_generic_svref _((SV** sptr)); VIRTUAL void save_gp _((GV* gv, I32 empty)); VIRTUAL HV* save_hash _((GV* gv)); VIRTUAL void save_helem _((HV* hv, SV *key, SV **sptr)); @@ -486,6 +532,7 @@ VIRTUAL void save_nogv _((GV* gv)); VIRTUAL void save_op _((void)); VIRTUAL SV* save_scalar _((GV* gv)); VIRTUAL void save_pptr _((char** pptr)); +VIRTUAL void save_re_context _((void)); VIRTUAL void save_sptr _((SV** sptr)); VIRTUAL SV* save_svref _((SV** sptr)); VIRTUAL SV** save_threadsv _((PADOFFSET i)); @@ -546,21 +593,20 @@ VIRTUAL I32 sv_eq _((SV* sv1, SV* sv2)); VIRTUAL void sv_free _((SV* sv)); VIRTUAL void sv_free_arenas _((void)); VIRTUAL char* sv_gets _((SV* sv, PerlIO* fp, I32 append)); -#ifndef DOSISH -VIRTUAL char* sv_grow _((SV* sv, I32 newlen)); -#else -VIRTUAL char* sv_grow _((SV* sv, unsigned long newlen)); -#endif +VIRTUAL char* sv_grow _((SV* sv, STRLEN newlen)); VIRTUAL void sv_inc _((SV* sv)); VIRTUAL void sv_insert _((SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen)); VIRTUAL int sv_isa _((SV* sv, char* name)); VIRTUAL int sv_isobject _((SV* sv)); VIRTUAL STRLEN sv_len _((SV* sv)); +VIRTUAL STRLEN sv_len_utf8 _((SV* sv)); VIRTUAL void sv_magic _((SV* sv, SV* obj, int how, char* name, I32 namlen)); VIRTUAL SV* sv_mortalcopy _((SV* oldsv)); VIRTUAL SV* sv_newmortal _((void)); VIRTUAL SV* sv_newref _((SV* sv)); VIRTUAL char* sv_peek _((SV* sv)); +VIRTUAL void sv_pos_u2b _((SV* sv, I32* offsetp, I32* lenp)); +VIRTUAL void sv_pos_b2u _((SV* sv, I32* offsetp)); VIRTUAL char* sv_pvn_force _((SV* sv, STRLEN* lp)); VIRTUAL char* sv_reftype _((SV* sv, int ob)); VIRTUAL void sv_replace _((SV* sv, SV* nsv)); @@ -591,8 +637,13 @@ VIRTUAL void sv_vcatpvfn _((SV* sv, const char* pat, STRLEN patlen, VIRTUAL void sv_vsetpvfn _((SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale)); +VIRTUAL SV* swash_init _((char* pkg, char* name, SV* listsv, I32 minbits, I32 none)); +VIRTUAL UV swash_fetch _((SV *sv, U8 *ptr)); VIRTUAL void taint_env _((void)); VIRTUAL void taint_proper _((const char* f, char* s)); +VIRTUAL UV to_utf8_lower _((U8 *p)); +VIRTUAL UV to_utf8_upper _((U8 *p)); +VIRTUAL UV to_utf8_title _((U8 *p)); #ifdef UNLINK_ALL_VERSIONS VIRTUAL I32 unlnk _((char* f)); #endif @@ -602,14 +653,26 @@ VIRTUAL void unlock_condpair _((void* svv)); VIRTUAL void unsharepvn _((char* sv, I32 len, U32 hash)); VIRTUAL void unshare_hek _((HEK* hek)); VIRTUAL void utilize _((int aver, I32 floor, OP* version, OP* id, OP* arg)); +VIRTUAL U8* utf16_to_utf8 _((U16* p, U8 *d, I32 bytelen)); +VIRTUAL U8* utf16_to_utf8_reversed _((U16* p, U8 *d, I32 bytelen)); +VIRTUAL I32 utf8_distance _((U8 *a, U8 *b)); +VIRTUAL U8* utf8_hop _((U8 *s, I32 off)); +VIRTUAL UV utf8_to_uv _((U8 *s, I32* retlen)); +VIRTUAL U8* uv_to_utf8 _((U8 *d, UV uv)); VIRTUAL void vivify_defelem _((SV* sv)); VIRTUAL void vivify_ref _((SV* sv, U32 to_what)); VIRTUAL I32 wait4pid _((int pid, int* statusp, int flags)); VIRTUAL void warn _((const char* pat,...)); +VIRTUAL void warner _((U32 err, const char* pat,...)); VIRTUAL void watch _((char** addr)); VIRTUAL I32 whichsig _((char* sig)); VIRTUAL int yyerror _((char* s)); -VIRTUAL int yylex _((void)); +#ifdef USE_PURE_BISON +# define PERL_YYLEX_PARAM_DECL YYSTYPE *lvalp, int *lcharp +#else +# define PERL_YYLEX_PARAM_DECL void +#endif +VIRTUAL int yylex _((PERL_YYLEX_PARAM_DECL)); VIRTUAL int yyparse _((void)); VIRTUAL int yywarn _((char* s)); @@ -635,7 +698,7 @@ VIRTUAL struct perl_vars *Perl_GetVars _((void)); protected: void hsplit _((HV *hv)); void hfreeentries _((HV *hv)); -HE* more_he _((void)); +void more_he _((void)); HE* new_he _((void)); void del_he _((HE *p)); HEK *save_hek _((char *str, I32 len, U32 hash)); @@ -645,10 +708,10 @@ SV *save_scalar_at _((SV **sptr)); IV asIV _((SV* sv)); UV asUV _((SV* sv)); SV *more_sv _((void)); -XPVIV *more_xiv _((void)); -XPVNV *more_xnv _((void)); -XPV *more_xpv _((void)); -XRV *more_xrv _((void)); +void more_xiv _((void)); +void more_xnv _((void)); +void more_xpv _((void)); +void more_xrv _((void)); XPVIV *new_xiv _((void)); XPVNV *new_xnv _((void)); XPV *new_xpv _((void)); @@ -662,20 +725,6 @@ void sv_unglob _((SV* sv)); void sv_check_thinkfirst _((SV *sv)); I32 avhv_index_sv _((SV* sv)); -void sv_catpv_mg _((SV *sv, char *ptr)); -void sv_catpvf_mg _((SV *sv, const char* pat, ...)); -void sv_catpvn_mg _((SV *sv, char *ptr, STRLEN len)); -void sv_catsv_mg _((SV *dstr, SV *sstr)); -void sv_setiv_mg _((SV *sv, IV i)); -void sv_setnv_mg _((SV *sv, double num)); -void sv_setsv_mg _((SV *dstr, SV *sstr)); -void sv_setuv_mg _((SV *sv, UV u)); -void sv_setpv_mg _((SV *sv, const char *ptr)); -void sv_setpvf_mg _((SV *sv, const char* pat, ...)); -void sv_setpviv_mg _((SV *sv, IV iv)); -void sv_setpvn_mg _((SV *sv, const char *ptr, STRLEN len)); -void sv_usepvn_mg _((SV *sv, char *ptr, STRLEN len)); - void do_report_used _((SV *sv)); void do_clean_objs _((SV *sv)); void do_clean_named_objs _((SV *sv)); @@ -689,8 +738,9 @@ void visit _((SVFUNC f)); typedef I32 (CPerlObj::*SVCOMPARE) _((SV*, SV*)); void qsortsv _((SV ** array, size_t num_elts, SVCOMPARE f)); I32 sortcv _((SV *a, SV *b)); -void save_magic _((MGS *mgs, SV *sv)); +void save_magic _((I32 mgs_ix, SV *sv)); int magic_methpack _((SV *sv, MAGIC *mg, char *meth)); +int magic_methcall _((SV *sv, MAGIC *mg, char *meth, I32 f, int n, SV *val)); int magic_methcall _((MAGIC *mg, char *meth, I32 flags, int n, SV *val)); OP * doform _((CV *cv, GV *gv, OP *retop)); void doencodes _((SV* sv, char* s, I32 len)); @@ -703,14 +753,19 @@ I32 dopoptoeval _((I32 startingblock)); I32 dopoptolabel _((char *label)); I32 dopoptoloop _((I32 startingblock)); I32 dopoptosub _((I32 startingblock)); +I32 dopoptosub_at _((PERL_CONTEXT* cxstk, I32 startingblock)); void save_lines _((AV *array, SV *sv)); OP *doeval _((int gimme, OP** startop)); +I32 amagic_cmp _((SV *str1, SV *str2)); +I32 amagic_cmp_locale _((SV *str1, SV *str2)); + SV *mul128 _((SV *sv, U8 m)); SV *is_an_int _((char *s, STRLEN l)); int div128 _((SV *pnum, bool *done)); int runops_standard _((void)); int runops_debug _((void)); + void check_uni _((void)); void force_next _((I32 type)); char *force_version _((char *start)); @@ -721,7 +776,7 @@ char *scan_formline _((char *s)); char *scan_heredoc _((char *s)); char *scan_ident _((char *s, char *send, char *dest, STRLEN destlen, I32 ck_uni)); char *scan_inputsymbol _((char *start)); -char *scan_pat _((char *start)); +char *scan_pat _((char *start, I32 type)); char *scan_str _((char *start)); char *scan_subst _((char *start)); char *scan_trans _((char *start)); @@ -760,7 +815,7 @@ OP *scalarboolean _((OP *o)); OP *too_few_arguments _((OP *o, char* name)); OP *too_many_arguments _((OP *o, char* name)); void null _((OP* o)); -PADOFFSET pad_findlex _((char* name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix)); +PADOFFSET pad_findlex _((char* name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval)); OP *newDEFSVOP _((void)); char* gv_ename _((GV *gv)); CV *cv_clone2 _((CV *proto, CV *outside)); @@ -784,13 +839,16 @@ void nuke_stacks _((void)); void open_script _((char *, bool, SV *, int *fd)); void usage _((char *)); void validate_suid _((char *, char*, int)); +int emulate_eaccess _((const char* path, int mode)); regnode *reg _((I32, I32 *)); regnode *reganode _((U8, U32)); regnode *regatom _((I32 *)); regnode *regbranch _((I32 *, I32)); void regc _((U8, char *)); +void reguni _((UV, char *, I32*)); regnode *regclass _((void)); +regnode *regclassutf8 _((void)); I32 regcurly _((char *)); regnode *reg_node _((U8)); regnode *regpiece _((I32 *)); @@ -810,8 +868,13 @@ I32 regrepeat _((regnode *p, I32 max)); I32 regrepeat_hard _((regnode *p, I32 max, I32 *lp)); I32 regtry _((regexp *prog, char *startpos)); bool reginclass _((char *p, I32 c)); +bool reginclassutf8 _((regnode *f, U8* p)); CHECKPOINT regcppush _((I32 parenfloor)); char * regcppop _((void)); +char * regcp_set_to _((I32 ss)); +void cache_re _((regexp *prog)); +U8 * reghop _((U8 *pos, I32 off)); +U8 * reghopmaybe _((U8 *pos, I32 off)); void dump _((char *pat,...)); #ifdef WIN32 int do_aspawn _((void *vreally, void **vmark, void **vsp)); @@ -825,388 +888,25 @@ void debprof _((OP *o)); void *bset_obj_store _((void *obj, I32 ix)); OP *new_logop _((I32 type, I32 flags, OP **firstp, OP **otherp)); -#define PPDEF(s) OP* CPerlObj::s _((ARGSproto)); +I32 do_trans_CC_simple _((SV *sv)); +I32 do_trans_CC_count _((SV *sv)); +I32 do_trans_CC_complex _((SV *sv)); +I32 do_trans_UU_simple _((SV *sv)); +I32 do_trans_UU_count _((SV *sv)); +I32 do_trans_UU_complex _((SV *sv)); +I32 do_trans_UC_simple _((SV *sv)); +I32 do_trans_CU_simple _((SV *sv)); +I32 do_trans_UC_trivial _((SV *sv)); +I32 do_trans_CU_trivial _((SV *sv)); + +#undef PERL_CKDEF +#undef PERL_PPDEF +#define PERL_CKDEF(s) OP* s _((OP *o)); +#define PERL_PPDEF(s) OP* s _((ARGSproto)); public: -PPDEF(pp_aassign) -PPDEF(pp_abs) -PPDEF(pp_accept) -PPDEF(pp_add) -PPDEF(pp_aelem) -PPDEF(pp_aelemfast) -PPDEF(pp_alarm) -PPDEF(pp_and) -PPDEF(pp_andassign) -PPDEF(pp_anoncode) -PPDEF(pp_anonhash) -PPDEF(pp_anonlist) -PPDEF(pp_aslice) -PPDEF(pp_atan2) -PPDEF(pp_av2arylen) -PPDEF(pp_backtick) -PPDEF(pp_bind) -PPDEF(pp_binmode) -PPDEF(pp_bit_and) -PPDEF(pp_bit_or) -PPDEF(pp_bit_xor) -PPDEF(pp_bless) -PPDEF(pp_caller) -PPDEF(pp_chdir) -PPDEF(pp_chmod) -PPDEF(pp_chomp) -PPDEF(pp_chop) -PPDEF(pp_chown) -PPDEF(pp_chr) -PPDEF(pp_chroot) -PPDEF(pp_close) -PPDEF(pp_closedir) -PPDEF(pp_complement) -PPDEF(pp_concat) -PPDEF(pp_cond_expr) -PPDEF(pp_connect) -PPDEF(pp_const) -PPDEF(pp_cos) -PPDEF(pp_crypt) -PPDEF(pp_cswitch) -PPDEF(pp_dbmclose) -PPDEF(pp_dbmopen) -PPDEF(pp_dbstate) -PPDEF(pp_defined) -PPDEF(pp_delete) -PPDEF(pp_die) -PPDEF(pp_divide) -PPDEF(pp_dofile) -PPDEF(pp_dump) -PPDEF(pp_each) -PPDEF(pp_egrent) -PPDEF(pp_ehostent) -PPDEF(pp_enetent) -PPDEF(pp_enter) -PPDEF(pp_entereval) -PPDEF(pp_enteriter) -PPDEF(pp_enterloop) -PPDEF(pp_entersub) -PPDEF(pp_entertry) -PPDEF(pp_enterwrite) -PPDEF(pp_eof) -PPDEF(pp_eprotoent) -PPDEF(pp_epwent) -PPDEF(pp_eq) -PPDEF(pp_eservent) -PPDEF(pp_exec) -PPDEF(pp_exists) -PPDEF(pp_exit) -PPDEF(pp_exp) -PPDEF(pp_fcntl) -PPDEF(pp_fileno) -PPDEF(pp_flip) -PPDEF(pp_flock) -PPDEF(pp_flop) -PPDEF(pp_fork) -PPDEF(pp_formline) -PPDEF(pp_ftatime) -PPDEF(pp_ftbinary) -PPDEF(pp_ftblk) -PPDEF(pp_ftchr) -PPDEF(pp_ftctime) -PPDEF(pp_ftdir) -PPDEF(pp_fteexec) -PPDEF(pp_fteowned) -PPDEF(pp_fteread) -PPDEF(pp_ftewrite) -PPDEF(pp_ftfile) -PPDEF(pp_ftis) -PPDEF(pp_ftlink) -PPDEF(pp_ftmtime) -PPDEF(pp_ftpipe) -PPDEF(pp_ftrexec) -PPDEF(pp_ftrowned) -PPDEF(pp_ftrread) -PPDEF(pp_ftrwrite) -PPDEF(pp_ftsgid) -PPDEF(pp_ftsize) -PPDEF(pp_ftsock) -PPDEF(pp_ftsuid) -PPDEF(pp_ftsvtx) -PPDEF(pp_fttext) -PPDEF(pp_fttty) -PPDEF(pp_ftzero) -PPDEF(pp_ge) -PPDEF(pp_gelem) -PPDEF(pp_getc) -PPDEF(pp_getlogin) -PPDEF(pp_getpeername) -PPDEF(pp_getpgrp) -PPDEF(pp_getppid) -PPDEF(pp_getpriority) -PPDEF(pp_getsockname) -PPDEF(pp_ggrent) -PPDEF(pp_ggrgid) -PPDEF(pp_ggrnam) -PPDEF(pp_ghbyaddr) -PPDEF(pp_ghbyname) -PPDEF(pp_ghostent) -PPDEF(pp_glob) -PPDEF(pp_gmtime) -PPDEF(pp_gnbyaddr) -PPDEF(pp_gnbyname) -PPDEF(pp_gnetent) -PPDEF(pp_goto) -PPDEF(pp_gpbyname) -PPDEF(pp_gpbynumber) -PPDEF(pp_gprotoent) -PPDEF(pp_gpwent) -PPDEF(pp_gpwnam) -PPDEF(pp_gpwuid) -PPDEF(pp_grepstart) -PPDEF(pp_grepwhile) -PPDEF(pp_gsbyname) -PPDEF(pp_gsbyport) -PPDEF(pp_gservent) -PPDEF(pp_gsockopt) -PPDEF(pp_gt) -PPDEF(pp_gv) -PPDEF(pp_gvsv) -PPDEF(pp_helem) -PPDEF(pp_hex) -PPDEF(pp_hslice) -PPDEF(pp_i_add) -PPDEF(pp_i_divide) -PPDEF(pp_i_eq) -PPDEF(pp_i_ge) -PPDEF(pp_i_gt) -PPDEF(pp_i_le) -PPDEF(pp_i_lt) -PPDEF(pp_i_modulo) -PPDEF(pp_i_multiply) -PPDEF(pp_i_ncmp) -PPDEF(pp_i_ne) -PPDEF(pp_i_negate) -PPDEF(pp_i_subtract) -PPDEF(pp_index) -PPDEF(pp_indread) -PPDEF(pp_int) -PPDEF(pp_ioctl) -PPDEF(pp_iter) -PPDEF(pp_join) -PPDEF(pp_keys) -PPDEF(pp_kill) -PPDEF(pp_last) -PPDEF(pp_lc) -PPDEF(pp_lcfirst) -PPDEF(pp_le) -PPDEF(pp_leave) -PPDEF(pp_leaveeval) -PPDEF(pp_leaveloop) -PPDEF(pp_leavesub) -PPDEF(pp_leavetry) -PPDEF(pp_leavewrite) -PPDEF(pp_left_shift) -PPDEF(pp_length) -PPDEF(pp_lineseq) -PPDEF(pp_link) -PPDEF(pp_list) -PPDEF(pp_listen) -PPDEF(pp_localtime) -PPDEF(pp_lock) -PPDEF(pp_log) -PPDEF(pp_lslice) -PPDEF(pp_lstat) -PPDEF(pp_lt) -PPDEF(pp_mapstart) -PPDEF(pp_mapwhile) -PPDEF(pp_match) -PPDEF(pp_method) -PPDEF(pp_mkdir) -PPDEF(pp_modulo) -PPDEF(pp_msgctl) -PPDEF(pp_msgget) -PPDEF(pp_msgrcv) -PPDEF(pp_msgsnd) -PPDEF(pp_multiply) -PPDEF(pp_ncmp) -PPDEF(pp_ne) -PPDEF(pp_negate) -PPDEF(pp_next) -PPDEF(pp_nextstate) -PPDEF(pp_not) -PPDEF(pp_nswitch) -PPDEF(pp_null) -PPDEF(pp_oct) -PPDEF(pp_open) -PPDEF(pp_open_dir) -PPDEF(pp_or) -PPDEF(pp_orassign) -PPDEF(pp_ord) -PPDEF(pp_pack) -PPDEF(pp_padany) -PPDEF(pp_padav) -PPDEF(pp_padhv) -PPDEF(pp_padsv) -PPDEF(pp_pipe_op) -PPDEF(pp_pop) -PPDEF(pp_pos) -PPDEF(pp_postdec) -PPDEF(pp_postinc) -PPDEF(pp_pow) -PPDEF(pp_predec) -PPDEF(pp_preinc) -PPDEF(pp_print) -PPDEF(pp_prototype) -PPDEF(pp_prtf) -PPDEF(pp_push) -PPDEF(pp_pushmark) -PPDEF(pp_pushre) -PPDEF(pp_quotemeta) -PPDEF(pp_rand) -PPDEF(pp_range) -PPDEF(pp_rcatline) -PPDEF(pp_read) -PPDEF(pp_readdir) -PPDEF(pp_readline) -PPDEF(pp_readlink) -PPDEF(pp_recv) -PPDEF(pp_redo) -PPDEF(pp_ref) -PPDEF(pp_refgen) -PPDEF(pp_regcmaybe) -PPDEF(pp_regcomp) -PPDEF(pp_rename) -PPDEF(pp_repeat) -PPDEF(pp_require) -PPDEF(pp_reset) -PPDEF(pp_return) -PPDEF(pp_reverse) -PPDEF(pp_rewinddir) -PPDEF(pp_right_shift) -PPDEF(pp_rindex) -PPDEF(pp_rmdir) -PPDEF(pp_rv2av) -PPDEF(pp_rv2cv) -PPDEF(pp_rv2gv) -PPDEF(pp_rv2hv) -PPDEF(pp_rv2sv) -PPDEF(pp_sassign) -PPDEF(pp_scalar) -PPDEF(pp_schomp) -PPDEF(pp_schop) -PPDEF(pp_scmp) -PPDEF(pp_scope) -PPDEF(pp_seek) -PPDEF(pp_seekdir) -PPDEF(pp_select) -PPDEF(pp_semctl) -PPDEF(pp_semget) -PPDEF(pp_semop) -PPDEF(pp_send) -PPDEF(pp_seq) -PPDEF(pp_setpgrp) -PPDEF(pp_setpriority) -PPDEF(pp_sge) -PPDEF(pp_sgrent) -PPDEF(pp_sgt) -PPDEF(pp_shift) -PPDEF(pp_shmctl) -PPDEF(pp_shmget) -PPDEF(pp_shmread) -PPDEF(pp_shmwrite) -PPDEF(pp_shostent) -PPDEF(pp_shutdown) -PPDEF(pp_sin) -PPDEF(pp_sle) -PPDEF(pp_sleep) -PPDEF(pp_slt) -PPDEF(pp_sne) -PPDEF(pp_snetent) -PPDEF(pp_socket) -PPDEF(pp_sockpair) -PPDEF(pp_sort) -PPDEF(pp_splice) -PPDEF(pp_split) -PPDEF(pp_sprintf) -PPDEF(pp_sprotoent) -PPDEF(pp_spwent) -PPDEF(pp_sqrt) -PPDEF(pp_srand) -PPDEF(pp_srefgen) -PPDEF(pp_sselect) -PPDEF(pp_sservent) -PPDEF(pp_ssockopt) -PPDEF(pp_stat) -PPDEF(pp_stringify) -PPDEF(pp_stub) -PPDEF(pp_study) -PPDEF(pp_subst) -PPDEF(pp_substcont) -PPDEF(pp_substr) -PPDEF(pp_subtract) -PPDEF(pp_symlink) -PPDEF(pp_syscall) -PPDEF(pp_sysopen) -PPDEF(pp_sysread) -PPDEF(pp_sysseek) -PPDEF(pp_system) -PPDEF(pp_syswrite) -PPDEF(pp_tell) -PPDEF(pp_telldir) -PPDEF(pp_threadsv) -PPDEF(pp_tie) -PPDEF(pp_tied) -PPDEF(pp_time) -PPDEF(pp_tms) -PPDEF(pp_trans) -PPDEF(pp_truncate) -PPDEF(pp_uc) -PPDEF(pp_ucfirst) -PPDEF(pp_umask) -PPDEF(pp_undef) -PPDEF(pp_unlink) -PPDEF(pp_unpack) -PPDEF(pp_unshift) -PPDEF(pp_unstack) -PPDEF(pp_untie) -PPDEF(pp_utime) -PPDEF(pp_values) -PPDEF(pp_vec) -PPDEF(pp_wait) -PPDEF(pp_waitpid) -PPDEF(pp_wantarray) -PPDEF(pp_warn) -PPDEF(pp_xor) +#include "pp_proto.h" -OP * ck_ftst _((OP *o)); -OP *ck_anoncode _((OP *o)); -OP *ck_bitop _((OP *o)); -OP *ck_concat _((OP *o)); -OP *ck_spair _((OP *o)); -OP *ck_delete _((OP *o)); -OP *ck_eof _((OP *o)); -OP *ck_eval _((OP *o)); -OP *ck_exec _((OP *o)); -OP *ck_exists _((OP *o)); -OP *ck_rvconst _((OP *o)); -OP *ck_fun _((OP *o)); -OP *ck_glob _((OP *o)); -OP *ck_grep _((OP *o)); -OP *ck_index _((OP *o)); -OP *ck_lengthconst _((OP *o)); -OP *ck_lfun _((OP *o)); -OP *ck_rfun _((OP *o)); -OP *ck_listiob _((OP *o)); -OP *ck_fun_locale _((OP *o)); -OP *ck_scmp _((OP *o)); -OP *ck_match _((OP *o)); -OP *ck_null _((OP *o)); -OP *ck_repeat _((OP *o)); -OP *ck_require _((OP *o)); -OP *ck_select _((OP *o)); -OP *ck_shift _((OP *o)); -OP *ck_sort _((OP *o)); -OP *ck_split _((OP *o)); -OP *ck_subr _((OP *o)); -OP *ck_svconst _((OP *o)); -OP *ck_sysread _((OP *o)); -OP *ck_trunc _((OP *o)); void unwind_handler_stack _((void *p)); void restore_magic _((void *p)); void restore_rsfp _((void *f)); @@ -1229,3 +929,23 @@ VIRTUAL void byterun _((struct bytestream bs)); VIRTUAL void byterun _((PerlIO *fp)); #endif /* INDIRECT_BGET_MACROS */ +VIRTUAL void sv_catpvf_mg _((SV *sv, const char* pat, ...)); +VIRTUAL void sv_catpv_mg _((SV *sv, char *ptr)); +VIRTUAL void sv_catpvn_mg _((SV *sv, char *ptr, STRLEN len)); +VIRTUAL void sv_catsv_mg _((SV *dstr, SV *sstr)); +VIRTUAL void sv_setpvf_mg _((SV *sv, const char* pat, ...)); +VIRTUAL void sv_setiv_mg _((SV *sv, IV i)); +VIRTUAL void sv_setpviv_mg _((SV *sv, IV iv)); +VIRTUAL void sv_setuv_mg _((SV *sv, UV u)); +VIRTUAL void sv_setnv_mg _((SV *sv, double num)); +VIRTUAL void sv_setpv_mg _((SV *sv, const char *ptr)); +VIRTUAL void sv_setpvn_mg _((SV *sv, const char *ptr, STRLEN len)); +VIRTUAL void sv_setsv_mg _((SV *dstr, SV *sstr)); +VIRTUAL void sv_usepvn_mg _((SV *sv, char *ptr, STRLEN len)); + +VIRTUAL MGVTBL* get_vtbl _((int vtbl_id)); + +/* New virtual functions must be added here to maintain binary + * compatablity with PERL_OBJECT + */ +