Skip to content

Commit 77b3314

Browse files
committed
Add utf8_to_uv() flavors
One of these is a more explicit synonym for that function; the other two restrict what's acceptable to Unicode's legal interchange or their C9 legal interchange.
1 parent 137c0f0 commit 77b3314

File tree

4 files changed

+35
-0
lines changed

4 files changed

+35
-0
lines changed

embed.fnc

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -914,6 +914,11 @@ CTp |Signal_t|csighandler1 |int sig
914914
CTp |Signal_t|csighandler3 |int sig \
915915
|NULLOK Siginfo_t *info \
916916
|NULLOK void *uap
917+
ATmp |bool |c9strict_utf8_to_uv \
918+
|NN const U8 * const s \
919+
|NN const U8 * const e \
920+
|NN UV *cp_p \
921+
|NULLOK Size_t *advance_p
917922
EXp |regexp_engine const *|current_re_engine
918923
RXp |XOPRETANY|custom_op_get_field \
919924
|NN const OP *o \
@@ -1169,6 +1174,11 @@ AOdp |SV * |eval_pv |NN const char *p \
11691174
|I32 croak_on_error
11701175
AOdp |SSize_t|eval_sv |NN SV *sv \
11711176
|I32 flags
1177+
ATmp |bool |extended_utf8_to_uv \
1178+
|NN const U8 * const s \
1179+
|NN const U8 * const e \
1180+
|NN UV *cp_p \
1181+
|NULLOK Size_t *advance_p
11721182
Adfpv |void |fatal_warner |U32 err \
11731183
|NN const char *pat \
11741184
|...
@@ -3065,6 +3075,11 @@ dopx |PerlIO *|start_glob |NN SV *tmpglob \
30653075
|NN IO *io
30663076
Adp |I32 |start_subparse |I32 is_format \
30673077
|U32 flags
3078+
ATmp |bool |strict_utf8_to_uv \
3079+
|NN const U8 * const s \
3080+
|NN const U8 * const e \
3081+
|NN UV *cp_p \
3082+
|NULLOK Size_t *advance_p
30683083
CRp |NV |str_to_version |NN SV *sv
30693084
: Used in pp_ctl.c
30703085
p |void |sub_crush_depth|NN CV *cv

embed.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@
157157
# define bytes_cmp_utf8(a,b,c,d) Perl_bytes_cmp_utf8(aTHX_ a,b,c,d)
158158
# define bytes_from_utf8(a,b,c) Perl_bytes_from_utf8(aTHX_ a,b,c)
159159
# define bytes_to_utf8(a,b) Perl_bytes_to_utf8(aTHX_ a,b)
160+
# define c9strict_utf8_to_uv Perl_c9strict_utf8_to_uv
160161
# define call_argv(a,b,c) Perl_call_argv(aTHX_ a,b,c)
161162
# define call_atexit(a,b) Perl_call_atexit(aTHX_ a,b)
162163
# define call_list(a,b) Perl_call_list(aTHX_ a,b)
@@ -222,6 +223,7 @@
222223
# define dump_vindent(a,b,c,d) Perl_dump_vindent(aTHX_ a,b,c,d)
223224
# define eval_pv(a,b) Perl_eval_pv(aTHX_ a,b)
224225
# define eval_sv(a,b) Perl_eval_sv(aTHX_ a,b)
226+
# define extended_utf8_to_uv Perl_extended_utf8_to_uv
225227
# define fbm_compile(a,b) Perl_fbm_compile(aTHX_ a,b)
226228
# define fbm_instr(a,b,c,d) Perl_fbm_instr(aTHX_ a,b,c,d)
227229
# define filter_add(a,b) Perl_filter_add(aTHX_ a,b)
@@ -675,6 +677,7 @@
675677
# define stack_grow(a,b,c) Perl_stack_grow(aTHX_ a,b,c)
676678
# define start_subparse(a,b) Perl_start_subparse(aTHX_ a,b)
677679
# define str_to_version(a) Perl_str_to_version(aTHX_ a)
680+
# define strict_utf8_to_uv Perl_strict_utf8_to_uv
678681
# define suspend_compcv(a) Perl_suspend_compcv(aTHX_ a)
679682
# define sv_2bool(a) Perl_sv_2bool(aTHX,a)
680683
# define sv_2bool_flags(a,b) Perl_sv_2bool_flags(aTHX_ a,b)

proto.h

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

utf8.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,14 @@ typedef enum {
165165
Perl_utf8_to_uv_errors( s, e, cp_p, advance_p, flags, 0)
166166
#define Perl_utf8_to_uv_errors( s, e, cp_p, advance_p, flags, errors) \
167167
Perl_utf8_to_uv_msgs( s, e, cp_p, advance_p, flags, errors, 0)
168+
#define Perl_extended_utf8_to_uv(s, e, cp_p, advance_p) \
169+
Perl_utf8_to_uv(s, e, cp_p, advance_p)
170+
#define Perl_strict_utf8_to_uv( s, e, cp_p, advance_p) \
171+
Perl_utf8_to_uv_flags( s, e, cp_p, advance_p, \
172+
UTF8_DISALLOW_ILLEGAL_INTERCHANGE)
173+
#define Perl_c9strict_utf8_to_uv(s, e, cp_p, advance_p) \
174+
Perl_utf8_to_uv_flags( s, e, cp_p, advance_p, \
175+
UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE)
168176

169177
#define utf16_to_utf8(p, d, bytelen, newlen) \
170178
utf16_to_utf8_base(p, d, bytelen, newlen, 0, 1)

0 commit comments

Comments
 (0)