Integrate with Sarathy.
[p5sagit/p5-mst-13.2.git] / proto.h
diff --git a/proto.h b/proto.h
index 54d71e6..b02eb43 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -39,10 +39,10 @@ VIRTUAL int Perl_block_start(pTHX_ int full);
 VIRTUAL void   Perl_boot_core_UNIVERSAL(pTHX);
 VIRTUAL void   Perl_call_list(pTHX_ I32 oldscope, AV* av_list);
 VIRTUAL I32    Perl_cando(pTHX_ I32 bit, I32 effective, Stat_t* statbufp);
-VIRTUAL U32    Perl_cast_ulong(pTHX_ double f);
-VIRTUAL I32    Perl_cast_i32(pTHX_ double f);
-VIRTUAL IV     Perl_cast_iv(pTHX_ double f);
-VIRTUAL UV     Perl_cast_uv(pTHX_ double f);
+VIRTUAL U32    Perl_cast_ulong(pTHX_ NV f);
+VIRTUAL I32    Perl_cast_i32(pTHX_ NV f);
+VIRTUAL IV     Perl_cast_iv(pTHX_ NV f);
+VIRTUAL UV     Perl_cast_uv(pTHX_ NV f);
 #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
 VIRTUAL I32    Perl_my_chsize(pTHX_ int fd, Off_t length);
 #endif
@@ -196,35 +196,53 @@ VIRTUAL char*     Perl_instr(pTHX_ const char* big, const char* little);
 VIRTUAL bool   Perl_io_close(pTHX_ IO* io);
 VIRTUAL OP*    Perl_invert(pTHX_ OP* cmd);
 VIRTUAL bool   Perl_is_uni_alnum(pTHX_ U32 c);
+VIRTUAL bool   Perl_is_uni_alnumc(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_idfirst(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_alpha(pTHX_ U32 c);
+VIRTUAL bool   Perl_is_uni_ascii(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_space(pTHX_ U32 c);
+VIRTUAL bool   Perl_is_uni_cntrl(pTHX_ U32 c);
+VIRTUAL bool   Perl_is_uni_graph(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_digit(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_upper(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_lower(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_print(pTHX_ U32 c);
+VIRTUAL bool   Perl_is_uni_punct(pTHX_ U32 c);
+VIRTUAL bool   Perl_is_uni_xdigit(pTHX_ U32 c);
 VIRTUAL U32    Perl_to_uni_upper(pTHX_ U32 c);
 VIRTUAL U32    Perl_to_uni_title(pTHX_ U32 c);
 VIRTUAL U32    Perl_to_uni_lower(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_alnum_lc(pTHX_ U32 c);
+VIRTUAL bool   Perl_is_uni_alnumc_lc(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_idfirst_lc(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_alpha_lc(pTHX_ U32 c);
+VIRTUAL bool   Perl_is_uni_ascii_lc(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_space_lc(pTHX_ U32 c);
+VIRTUAL bool   Perl_is_uni_cntrl_lc(pTHX_ U32 c);
+VIRTUAL bool   Perl_is_uni_graph_lc(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_digit_lc(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_upper_lc(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_lower_lc(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_uni_print_lc(pTHX_ U32 c);
+VIRTUAL bool   Perl_is_uni_punct_lc(pTHX_ U32 c);
+VIRTUAL bool   Perl_is_uni_xdigit_lc(pTHX_ U32 c);
 VIRTUAL U32    Perl_to_uni_upper_lc(pTHX_ U32 c);
 VIRTUAL U32    Perl_to_uni_title_lc(pTHX_ U32 c);
 VIRTUAL U32    Perl_to_uni_lower_lc(pTHX_ U32 c);
 VIRTUAL bool   Perl_is_utf8_alnum(pTHX_ U8 *p);
+VIRTUAL bool   Perl_is_utf8_alnumc(pTHX_ U8 *p);
 VIRTUAL bool   Perl_is_utf8_idfirst(pTHX_ U8 *p);
 VIRTUAL bool   Perl_is_utf8_alpha(pTHX_ U8 *p);
+VIRTUAL bool   Perl_is_utf8_ascii(pTHX_ U8 *p);
 VIRTUAL bool   Perl_is_utf8_space(pTHX_ U8 *p);
+VIRTUAL bool   Perl_is_utf8_cntrl(pTHX_ U8 *p);
 VIRTUAL bool   Perl_is_utf8_digit(pTHX_ U8 *p);
+VIRTUAL bool   Perl_is_utf8_graph(pTHX_ U8 *p);
 VIRTUAL bool   Perl_is_utf8_upper(pTHX_ U8 *p);
 VIRTUAL bool   Perl_is_utf8_lower(pTHX_ U8 *p);
 VIRTUAL bool   Perl_is_utf8_print(pTHX_ U8 *p);
+VIRTUAL bool   Perl_is_utf8_punct(pTHX_ U8 *p);
+VIRTUAL bool   Perl_is_utf8_xdigit(pTHX_ U8 *p);
 VIRTUAL bool   Perl_is_utf8_mark(pTHX_ U8 *p);
 VIRTUAL OP*    Perl_jmaybe(pTHX_ OP* arg);
 VIRTUAL I32    Perl_keyword(pTHX_ char* d, I32 len);
@@ -307,9 +325,7 @@ VIRTUAL I32 Perl_mg_size(pTHX_ SV* sv);
 VIRTUAL OP*    Perl_mod(pTHX_ OP* o, I32 type);
 VIRTUAL char*  Perl_moreswitches(pTHX_ char* s);
 VIRTUAL OP*    Perl_my(pTHX_ OP* o);
-#ifdef USE_LOCALE_NUMERIC
-VIRTUAL double Perl_my_atof(pTHX_ const char *s);
-#endif
+VIRTUAL NV     Perl_my_atof(pTHX_ const char *s);
 #if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
 VIRTUAL char*  Perl_my_bcopy(pTHX_ const char* from, char* to, I32 len);
 #endif
@@ -377,7 +393,7 @@ VIRTUAL SV* Perl_newSV(pTHX_ STRLEN len);
 VIRTUAL OP*    Perl_newSVREF(pTHX_ OP* o);
 VIRTUAL OP*    Perl_newSVOP(pTHX_ I32 type, I32 flags, SV* sv);
 VIRTUAL SV*    Perl_newSViv(pTHX_ IV i);
-VIRTUAL SV*    Perl_newSVnv(pTHX_ double n);
+VIRTUAL SV*    Perl_newSVnv(pTHX_ NV n);
 VIRTUAL SV*    Perl_newSVpv(pTHX_ const char* s, STRLEN len);
 VIRTUAL SV*    Perl_newSVpvn(pTHX_ const char* s, STRLEN len);
 VIRTUAL SV*    Perl_newSVpvf(pTHX_ const char* pat, ...);
@@ -454,6 +470,8 @@ VIRTUAL void        Perl_regdump(pTHX_ regexp* r);
 VIRTUAL I32    Perl_pregexec(pTHX_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave);
 VIRTUAL void   Perl_pregfree(pTHX_ struct regexp* r);
 VIRTUAL regexp*        Perl_pregcomp(pTHX_ char* exp, char* xend, PMOP* pm);
+VIRTUAL char*  Perl_re_intuit_start(pTHX_ regexp* prog, SV* sv, char* strpos, char* strend, U32 flags, struct re_scream_pos_data_s *data);
+VIRTUAL SV*    Perl_re_intuit_string(pTHX_ regexp* prog);
 VIRTUAL I32    Perl_regexec_flags(pTHX_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags);
 VIRTUAL regnode*       Perl_regnext(pTHX_ regnode* p);
 VIRTUAL void   Perl_regprop(pTHX_ SV* sv, regnode* o);
@@ -529,12 +547,12 @@ VIRTUAL CV*       Perl_sv_2cv(pTHX_ SV* sv, HV** st, GV** gvp, I32 lref);
 VIRTUAL IO*    Perl_sv_2io(pTHX_ SV* sv);
 VIRTUAL IV     Perl_sv_2iv(pTHX_ SV* sv);
 VIRTUAL SV*    Perl_sv_2mortal(pTHX_ SV* sv);
-VIRTUAL double Perl_sv_2nv(pTHX_ SV* sv);
+VIRTUAL NV     Perl_sv_2nv(pTHX_ SV* sv);
 VIRTUAL char*  Perl_sv_2pv(pTHX_ SV* sv, STRLEN* lp);
 VIRTUAL UV     Perl_sv_2uv(pTHX_ SV* sv);
 VIRTUAL IV     Perl_sv_iv(pTHX_ SV* sv);
 VIRTUAL UV     Perl_sv_uv(pTHX_ SV* sv);
-VIRTUAL double Perl_sv_nv(pTHX_ SV* sv);
+VIRTUAL NV     Perl_sv_nv(pTHX_ SV* sv);
 VIRTUAL char*  Perl_sv_pvn(pTHX_ SV *sv, STRLEN *len);
 VIRTUAL I32    Perl_sv_true(pTHX_ SV *sv);
 VIRTUAL void   Perl_sv_add_arena(pTHX_ char* ptr, U32 size, U32 flags);
@@ -584,9 +602,9 @@ VIRTUAL void        Perl_sv_setpvf(pTHX_ SV* sv, const char* pat, ...);
 VIRTUAL void   Perl_sv_setiv(pTHX_ SV* sv, IV num);
 VIRTUAL void   Perl_sv_setpviv(pTHX_ SV* sv, IV num);
 VIRTUAL void   Perl_sv_setuv(pTHX_ SV* sv, UV num);
-VIRTUAL void   Perl_sv_setnv(pTHX_ SV* sv, double num);
+VIRTUAL void   Perl_sv_setnv(pTHX_ SV* sv, NV num);
 VIRTUAL SV*    Perl_sv_setref_iv(pTHX_ SV* rv, const char* classname, IV iv);
-VIRTUAL SV*    Perl_sv_setref_nv(pTHX_ SV* rv, const char* classname, double nv);
+VIRTUAL SV*    Perl_sv_setref_nv(pTHX_ SV* rv, const char* classname, NV nv);
 VIRTUAL SV*    Perl_sv_setref_pv(pTHX_ SV* rv, const char* classname, void* pv);
 VIRTUAL SV*    Perl_sv_setref_pvn(pTHX_ SV* rv, const char* classname, char* pv, STRLEN n);
 VIRTUAL void   Perl_sv_setpv(pTHX_ SV* sv, const char* ptr);
@@ -658,16 +676,8 @@ VIRTUAL void       Perl_safexfree(Malloc_t where);
 #if defined(PERL_GLOBAL_STRUCT)
 VIRTUAL struct perl_vars *     Perl_GetVars(pTHX);
 #endif
-VIRTUAL void   Perl_yydestruct(pTHX_ void *ptr);
 VIRTUAL int    Perl_runops_standard(pTHX);
 VIRTUAL int    Perl_runops_debug(pTHX);
-#if defined(WIN32)
-#if defined(PERL_OBJECT)
-VIRTUAL int&   Perl_ErrorNo(pTHX);
-#else
-VIRTUAL int*   Perl_ErrorNo(pTHX);
-#endif
-#endif
 VIRTUAL void   Perl_sv_catpvf_mg(pTHX_ SV *sv, const char* pat, ...);
 VIRTUAL void   Perl_sv_catpv_mg(pTHX_ SV *sv, const char *ptr);
 VIRTUAL void   Perl_sv_catpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len);
@@ -676,7 +686,7 @@ VIRTUAL void        Perl_sv_setpvf_mg(pTHX_ SV *sv, const char* pat, ...);
 VIRTUAL void   Perl_sv_setiv_mg(pTHX_ SV *sv, IV i);
 VIRTUAL void   Perl_sv_setpviv_mg(pTHX_ SV *sv, IV iv);
 VIRTUAL void   Perl_sv_setuv_mg(pTHX_ SV *sv, UV u);
-VIRTUAL void   Perl_sv_setnv_mg(pTHX_ SV *sv, double num);
+VIRTUAL void   Perl_sv_setnv_mg(pTHX_ SV *sv, NV num);
 VIRTUAL void   Perl_sv_setpv_mg(pTHX_ SV *sv, const char *ptr);
 VIRTUAL void   Perl_sv_setpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len);
 VIRTUAL void   Perl_sv_setsv_mg(pTHX_ SV *dstr, SV *sstr);
@@ -734,12 +744,11 @@ STATIC void       S_hv_magic_check(pTHX_ HV *hv, bool *needs_copy, bool *needs_store);
 STATIC void    S_save_magic(pTHX_ I32 mgs_ix, SV *sv);
 STATIC int     S_magic_methpack(pTHX_ SV *sv, MAGIC *mg, char *meth);
 STATIC int     S_magic_methcall(pTHX_ SV *sv, MAGIC *mg, char *meth, I32 f, int n, SV *val);
-STATIC void    S_unwind_handler_stack(pTHX_ void *p);
-STATIC void    S_restore_magic(pTHX_ void *p);
 #endif
 #if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 STATIC I32     S_list_assignment(pTHX_ OP *o);
 STATIC void    S_bad_type(pTHX_ I32 n, char *t, char *name, OP *kid);
+STATIC void    S_cop_free(pTHX_ COP *cop);
 STATIC OP*     S_modkids(pTHX_ OP *o, I32 type);
 STATIC void    S_no_bareword_allowed(pTHX_ OP *o);
 STATIC OP*     S_no_fh_allowed(pTHX_ OP *o);
@@ -811,19 +820,9 @@ STATIC void        S_save_lines(pTHX_ AV *array, SV *sv);
 STATIC OP*     S_doeval(pTHX_ int gimme, OP** startop);
 STATIC PerlIO *        S_doopen_pmc(pTHX_ const char *name, const char *mode);
 STATIC void    S_qsortsv(pTHX_ SV ** array, size_t num_elts, SVCOMPARE_t f);
-STATIC I32     S_sortcv(pTHX_ SV *a, SV *b);
-STATIC I32     S_sv_ncmp(pTHX_ SV *a, SV *b);
-STATIC I32     S_sv_i_ncmp(pTHX_ SV *a, SV *b);
-STATIC I32     S_amagic_ncmp(pTHX_ SV *a, SV *b);
-STATIC I32     S_amagic_i_ncmp(pTHX_ SV *a, SV *b);
-STATIC I32     S_amagic_cmp(pTHX_ SV *str1, SV *str2);
-STATIC I32     S_amagic_cmp_locale(pTHX_ SV *str1, SV *str2);
 #endif
 #if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
 STATIC CV*     S_get_db_sub(pTHX_ SV **svp, CV *cv);
-#  if defined(USE_THREADS)
-STATIC void    S_unset_cvowner(pTHX_ void *cvarg);
-#  endif
 #endif
 #if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
 STATIC OP*     S_doform(pTHX_ CV *cv, GV *gv, OP *retop);
@@ -854,8 +853,8 @@ STATIC void S_scan_commit(pTHX_ scan_data_t *data);
 STATIC I32     S_study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags);
 STATIC I32     S_add_data(pTHX_ I32 n, char *s);
 STATIC void    S_re_croak2(pTHX_ const char* pat1, const char* pat2, ...) __attribute__((noreturn));
-STATIC char*   S_regpposixcc(pTHX_ I32 value);
-STATIC void    S_clear_re(pTHX_ void *r);
+STATIC I32     S_regpposixcc(pTHX_ I32 value);
+STATIC void    S_checkposixcc(pTHX);
 #endif
 #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
 STATIC I32     S_regmatch(pTHX_ regnode *prog);
@@ -868,7 +867,6 @@ STATIC CHECKPOINT   S_regcppush(pTHX_ I32 parenfloor);
 STATIC char*   S_regcppop(pTHX);
 STATIC char*   S_regcp_set_to(pTHX_ I32 ss);
 STATIC void    S_cache_re(pTHX_ regexp *prog);
-STATIC void    S_restore_pos(pTHX_ void *arg);
 STATIC U8*     S_reghop(pTHX_ U8 *pos, I32 off);
 STATIC U8*     S_reghopmaybe(pTHX_ U8 *pos, I32 off);
 #endif
@@ -895,10 +893,6 @@ STATIC void        S_del_xnv(pTHX_ XPVNV* p);
 STATIC void    S_del_xpv(pTHX_ XPV* p);
 STATIC void    S_del_xrv(pTHX_ XRV* p);
 STATIC void    S_sv_unglob(pTHX_ SV* sv);
-STATIC void    S_do_report_used(pTHX_ SV *sv);
-STATIC void    S_do_clean_objs(pTHX_ SV *sv);
-STATIC void    S_do_clean_named_objs(pTHX_ SV *sv);
-STATIC void    S_do_clean_all(pTHX_ SV *sv);
 STATIC void    S_not_a_number(pTHX_ SV *sv);
 STATIC void    S_visit(pTHX_ SVFUNC_t f);
 #  if defined(PURIFY)
@@ -949,9 +943,6 @@ STATIC void S_depcom(pTHX);
 STATIC char*   S_incl_perldb(pTHX);
 STATIC I32     S_utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen);
 STATIC I32     S_utf16rev_textfilter(pTHX_ int idx, SV *sv, int maxlen);
-STATIC void    S_restore_rsfp(pTHX_ void *f);
-STATIC void    S_restore_expect(pTHX_ void *e);
-STATIC void    S_restore_lex_expect(pTHX_ void *e);
 #  if defined(CRIPPLED_CC)
 STATIC int     S_uni(pTHX_ I32 f, char *s);
 #  endif