diff options
-rw-r--r-- | lib/utf8_heavy.pl | 1 | ||||
-rw-r--r-- | utf8.c | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/utf8_heavy.pl b/lib/utf8_heavy.pl index bbc082b1e0..fe286d986b 100644 --- a/lib/utf8_heavy.pl +++ b/lib/utf8_heavy.pl @@ -159,6 +159,7 @@ sub SWASHNEW { # NOTE: utf8.c:swash_init() assumes entries are never modified once generated. sub SWASHGET { + # See utf8.c:Perl_swash_fetch for problems with this interface. my ($self, $start, $len) = @_; local $^D = 0 if $^D; my $type = $self->{TYPE}; @@ -1281,6 +1281,12 @@ Perl_swash_init(pTHX_ char* pkg, char* name, SV *listsv, I32 minbits, I32 none) return retval; } + +/* This API is wrong for special case conversions since we may need to + * return several Unicode characters for a single Unicode character + * (see lib/unicore/SpecCase.txt) The SWASHGET in lib/utf8_heavy.pl is + * the lower-level routine, and it is similarly broken for returning + * multiple values. --jhi */ UV Perl_swash_fetch(pTHX_ SV *sv, U8 *ptr, bool do_utf8) { |