This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
pp_subst: do SvUTF8_on next to the SvPOK_only_UTF8
[perl5.git] / proto.h
diff --git a/proto.h b/proto.h
index 4eabf66..8441ee8 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -23,12 +23,26 @@ PERL_CALLCONV int   Perl_Gv_AMupdate(pTHX_ HV* stash, bool destructing)
        assert(stash)
 
 PERL_CALLCONV const char *     Perl_PerlIO_context_layers(pTHX_ const char *mode);
-PERL_CALLCONV HV*      Perl__swash_inversion_hash(pTHX_ SV *swash)
+PERL_CALLCONV void     Perl__append_range_to_invlist(pTHX_ HV* const invlist, const UV start, const UV end)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST      \
+       assert(invlist)
+
+PERL_CALLCONV HV*      Perl__new_invlist(pTHX_ const IV initial_size)
+                       __attribute__warn_unused_result__;
+
+PERL_CALLCONV HV*      Perl__swash_inversion_hash(pTHX_ SV* const swash)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT__SWASH_INVERSION_HASH \
        assert(swash)
 
+PERL_CALLCONV HV*      Perl__swash_to_invlist(pTHX_ SV* const swash)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__SWASH_TO_INVLIST     \
+       assert(swash)
+
 PERL_CALLCONV PADOFFSET        Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_ALLOCMY       \
@@ -925,6 +939,11 @@ PERL_CALLCONV char*        Perl_fbm_instr(pTHX_ unsigned char* big, unsigned char* bige
 #define PERL_ARGS_ASSERT_FBM_INSTR     \
        assert(big); assert(bigend); assert(littlestr)
 
+PERL_CALLCONV bool     Perl_feature_is_enabled(pTHX_ const char *const name, STRLEN namelen)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_FEATURE_IS_ENABLED    \
+       assert(name)
+
 PERL_CALLCONV const char *     Perl_fetch_cop_label(pTHX_ COP *const cop, STRLEN *len, U32 *flags)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_FETCH_COP_LABEL       \
@@ -5174,6 +5193,15 @@ STATIC I32       S_do_trans_simple_utf8(pTHX_ SV * const sv)
        assert(sv)
 
 #endif
+#if defined(PERL_IN_DQUOTE_STATIC_C)
+PERL_STATIC_INLINE I32 S_regcurly(pTHX_ const char *s)
+                       __attribute__warn_unused_result__
+                       __attribute__pure__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_REGCURLY      \
+       assert(s)
+
+#endif
 #if defined(PERL_IN_DUMP_C)
 STATIC CV*     S_deb_curcv(pTHX_ const I32 ix);
 STATIC void    S_debprof(pTHX_ const OP *o)
@@ -5917,6 +5945,12 @@ STATIC U32       S_add_data(struct RExC_state_t *pRExC_state, U32 n, const char *s)
 #define PERL_ARGS_ASSERT_ADD_DATA      \
        assert(pRExC_state); assert(s)
 
+STATIC HV*     S_add_range_to_invlist(pTHX_ HV* const invlist, const UV start, const UV end)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_ADD_RANGE_TO_INVLIST  \
+       assert(invlist)
+
 STATIC void    S_checkposixcc(pTHX_ struct RExC_state_t *pRExC_state)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_CHECKPOSIXCC  \
@@ -5959,6 +5993,69 @@ STATIC void      S_cl_or(const struct RExC_state_t *pRExC_state, struct regnode_charc
 #define PERL_ARGS_ASSERT_CL_OR \
        assert(pRExC_state); assert(cl); assert(or_with)
 
+PERL_STATIC_INLINE UV* S_invlist_array(pTHX_ HV* const invlist)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_ARRAY \
+       assert(invlist)
+
+PERL_STATIC_INLINE void        S_invlist_destroy(pTHX_ HV* const invlist)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_DESTROY       \
+       assert(invlist)
+
+STATIC void    S_invlist_extend(pTHX_ HV* const invlist, const UV len)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_EXTEND        \
+       assert(invlist)
+
+STATIC HV*     S_invlist_intersection(pTHX_ HV* const a, HV* const b)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_INVLIST_INTERSECTION  \
+       assert(a); assert(b)
+
+PERL_STATIC_INLINE UV  S_invlist_len(pTHX_ HV* const invlist)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_LEN   \
+       assert(invlist)
+
+PERL_STATIC_INLINE UV  S_invlist_max(pTHX_ HV* const invlist)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_MAX   \
+       assert(invlist)
+
+PERL_STATIC_INLINE void        S_invlist_set_array(pTHX_ HV* const invlist, const UV* const array)
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_INVLIST_SET_ARRAY     \
+       assert(invlist); assert(array)
+
+PERL_STATIC_INLINE void        S_invlist_set_len(pTHX_ HV* const invlist, const UV len)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_SET_LEN       \
+       assert(invlist)
+
+PERL_STATIC_INLINE void        S_invlist_set_max(pTHX_ HV* const invlist, const UV max)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_SET_MAX       \
+       assert(invlist)
+
+PERL_STATIC_INLINE void        S_invlist_trim(pTHX_ HV* const invlist)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_TRIM  \
+       assert(invlist)
+
+STATIC HV*     S_invlist_union(pTHX_ HV* const a, HV* const b)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_INVLIST_UNION \
+       assert(a); assert(b)
+
 STATIC U32     S_join_exact(pTHX_ struct RExC_state_t *pRExC_state, regnode *scan, I32 *min, U32 flags, regnode *val, U32 depth)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
@@ -6378,11 +6475,6 @@ STATIC void      S_checkcomma(pTHX_ const char *s, const char *name, const char *what
        assert(s); assert(name); assert(what)
 
 STATIC int     S_deprecate_commaless_var_list(pTHX);
-STATIC bool    S_feature_is_enabled(pTHX_ const char *const name, STRLEN namelen)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FEATURE_IS_ENABLED    \
-       assert(name)
-
 STATIC char *  S_filter_gets(pTHX_ SV *sv, STRLEN append)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);