summaryrefslogtreecommitdiff
path: root/embed.fnc
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2018-08-20 18:31:04 -0600
committerKarl Williamson <khw@cpan.org>2019-02-14 22:12:44 -0700
commit73b95840bb1b55d761ec2dd075d2a8c37fa94bf4 (patch)
tree62173297f7046b6354f4a4275ed45ceb3d81c86c /embed.fnc
parentdd52e3cc434f4c6a495379f06a99d35da217eecb (diff)
downloadperl-73b95840bb1b55d761ec2dd075d2a8c37fa94bf4.tar.gz
Move \p{user-defined} to core from utf8_heavy.pl
This large commit moves the handling of user-defined properties to C code. This should speed it up, but the main reason to do this is to stop using swashes in this case, leaving only tr/// using them. Once that too is converted, all swash handling can be ripped out of perl. Doing this in perl has caused some nasty interactions that will now be fixed automatically. The change is not entirely transparent, however (besides speed and the possibility of removing these interactions). perldelta in this commit details these.
Diffstat (limited to 'embed.fnc')
-rw-r--r--embed.fnc21
1 files changed, 17 insertions, 4 deletions
diff --git a/embed.fnc b/embed.fnc
index 9d4a8461f5..9b34cfa2e3 100644
--- a/embed.fnc
+++ b/embed.fnc
@@ -2513,10 +2513,23 @@ EnsR |int |edit_distance |NN const UV *src \
|const STRLEN x \
|const STRLEN y \
|const SSize_t maxDistance
-EXp |SV * |parse_uniprop_string|NN const char * const name \
- |const Size_t name_len \
- |const bool to_fold \
- |NN bool * invert
+EpX |SV * |parse_uniprop_string|NN const char * const name \
+ |const Size_t name_len \
+ |const bool is_utf8 \
+ |const bool to_fold \
+ |const bool runtime \
+ |NN bool * user_defined_ptr \
+ |NN SV * msg \
+ |const STRLEN level
+EXp |SV * |handle_user_defined_property|NN const char * name \
+ |const STRLEN name_len \
+ |const bool is_utf8 \
+ |const bool to_fold \
+ |const bool runtime \
+ |NN SV* contents \
+ |NN bool *user_defined_ptr \
+ |NN SV * msg \
+ |const STRLEN level
# ifdef DEBUGGING
Ep |int |re_indentf |NN const char *fmt|U32 depth|...
Es |void |regdump_intflags|NULLOK const char *lead| const U32 flags