From 928fae029c3e47b7d3ff05016584133c622565d4 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Thu, 12 May 2022 15:38:40 +0200 Subject: [PATCH] Upgrade to 1.31 --- Makefile.PL | 22 +++++++++------- Normalize.pm | 73 ++++++++++++++++++++++++++++++++++++++-------------- Normalize.xs | 71 ++++++++++++++++---------------------------------- mkheader | 20 +++----------- t/fcdc.t | 22 ++-------------- t/form.t | 20 +------------- t/func.t | 22 ++-------------- t/illegal.t | 22 ++-------------- t/norm.t | 24 +++-------------- t/null.t | 11 -------- t/partial1.t | 20 +------------- t/partial2.t | 24 +++-------------- t/proto.t | 20 +------------- t/split.t | 24 +++-------------- t/test.t | 24 +++-------------- t/tie.t | 20 +------------- 16 files changed, 113 insertions(+), 326 deletions(-) diff --git a/Makefile.PL b/Makefile.PL index 18bc2e2..a848b0d 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,4 +1,6 @@ -require 5.006001; +use strict; +use warnings; + use ExtUtils::MakeMaker; my $clean = {}; @@ -6,7 +8,7 @@ my $clean = {}; my $mm_ver = ExtUtils::MakeMaker->VERSION; if (-f "Normalize.xs") { - print STDERR "Making header files for XS...\n"; + print "Making header files for XS...\n"; do './mkheader' or die $@ || "mkheader: $!"; @@ -29,14 +31,14 @@ WriteMakefile( 'clean' => $clean, 'depend' => { 'Normalize.o' => '$(H_FILES)' }, 'PREREQ_PM' => { - Carp => 0, - constant => 0, - DynaLoader => 0, - Exporter => 0, - File::Spec => 0, - strict => 0, - warnings => 0, - SelectSaver => 0, + 'Carp' => 0, + 'constant' => 0, + 'DynaLoader' => 0, + 'Exporter' => 0, + 'File::Spec' => 0, + 'strict' => 0, + 'warnings' => 0, + 'SelectSaver' => 0, }, ($mm_ver < 6.48 ? () : MIN_PERL_VERSION => 5.6.0), ($mm_ver < 6.46 ? () : (META_MERGE => { diff --git a/Normalize.pm b/Normalize.pm index adf3db5..b67a293 100644 --- a/Normalize.pm +++ b/Normalize.pm @@ -1,14 +1,5 @@ package Unicode::Normalize; -BEGIN { - unless ('A' eq pack('U', 0x41)) { - die "Unicode::Normalize cannot stringify a Unicode code point\n"; - } - unless (0x41 == unpack('U', 'A')) { - die "Unicode::Normalize cannot get Unicode code point\n"; - } -} - use 5.006; use strict; use warnings; @@ -16,7 +7,7 @@ use Carp; no warnings 'utf8'; -our $VERSION = '1.26'; +our $VERSION = '1.31'; our $PACKAGE = __PACKAGE__; our @EXPORT = qw( NFC NFD NFKC NFKD ); @@ -40,16 +31,58 @@ our %EXPORT_TAGS = ( ## utilities for tests ## -sub pack_U { - return pack('U*', @_); + # No EBCDIC support on early perls +*to_native = ($::IS_ASCII || $] < 5.008) + ? sub { return shift } + : sub { utf8::unicode_to_native(shift) }; + +*from_native = ($::IS_ASCII || $] < 5.008) + ? sub { return shift } + : sub { utf8::native_to_unicode(shift) }; + +# The .t files are all in terms of Unicode, so xlate to/from native +sub dot_t_pack_U { + return pack('U*', map { to_native($_) } @_); } -sub unpack_U { +sub dot_t_unpack_U { # The empty pack returns an empty UTF-8 string, so the effect is to force # the shifted parameter into being UTF-8. This allows this to work on # Perl 5.6, where there is no utf8::upgrade(). - return unpack('U*', shift(@_).pack('U*')); + return map { from_native($_) } unpack('U*', shift(@_).pack('U*')); +} + +sub get_printable_string ($) { + use bytes; + my $s = shift; + + # DeMorgan's laws cause this to mean ascii printables + return $s if $s =~ /[^[:^ascii:][:^print:]]/; + + return join " ", map { sprintf "\\x%02x", ord $_ } split "", $s; +} + +sub ok ($$;$) { + my $count_ref = shift; # Test number in caller + my $p = my $r = shift; + my $x; + if (@_) { + $x = shift; + $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; + } + + print $p ? "ok" : "not ok", ' ', ++$$count_ref, "\n"; + + return if $p; + + my (undef, $file, $line) = caller(1); + print STDERR "# Failed test $$count_ref at $file line $line\n"; + + return unless defined $x; + + print STDERR "# got ", get_printable_string($r), "\n"; + print STDERR "# expected ", get_printable_string($x), "\n"; } require Exporter; @@ -606,27 +639,27 @@ and/or modify it under the same terms as Perl itself. =over 4 -=item http://www.unicode.org/reports/tr15/ +=item L Unicode Normalization Forms - UAX #15 -=item http://www.unicode.org/Public/UNIDATA/CompositionExclusions.txt +=item L Composition Exclusion Table -=item http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt +=item L Derived Normalization Properties -=item http://www.unicode.org/Public/UNIDATA/NormalizationCorrections.txt +=item L Normalization Corrections -=item http://www.unicode.org/review/pr-29.html +=item L Public Review Issue #29: Normalization Issue -=item http://www.unicode.org/notes/tn5/ +=item L Canonical Equivalence in Applications - UTN #5 diff --git a/Normalize.xs b/Normalize.xs index 4acff7f..210917e 100644 --- a/Normalize.xs +++ b/Normalize.xs @@ -13,6 +13,9 @@ #include "perl.h" #include "XSUB.h" +#define NEED_utf8_to_uvchr_buf +#include "ppport.h" + /* These 5 files are prepared by mkheader */ #include "unfcmb.h" #include "unfcan.h" @@ -23,45 +26,15 @@ /* The generated normalization tables since v5.20 are in native character set * terms. Prior to that, they were in Unicode terms. So we use 'uvchr' for * later perls, and redefine that to be 'uvuni' for earlier ones */ -#if PERL_VERSION < 20 +#if PERL_VERSION_LT(5,20,0) # undef uvchr_to_utf8 # ifdef uvuni_to_utf8 # define uvchr_to_utf8 uvuni_to_utf8 # else /* Perl 5.6.1 */ # define uvchr_to_utf8 uv_to_utf8 # endif - -# undef utf8n_to_uvchr -# ifdef utf8n_to_uvuni -# define utf8n_to_uvchr utf8n_to_uvuni -# else /* Perl 5.6.1 */ -# define utf8n_to_uvchr utf8_to_uv -# endif #endif -/* UTF8_ALLOW_BOM is used before Perl 5.8.0 */ -#ifndef UTF8_ALLOW_BOM -#define UTF8_ALLOW_BOM (0) -#endif /* UTF8_ALLOW_BOM */ - -#ifndef UTF8_ALLOW_SURROGATE -#define UTF8_ALLOW_SURROGATE (0) -#endif /* UTF8_ALLOW_SURROGATE */ - -#ifndef UTF8_ALLOW_FE_FF -#define UTF8_ALLOW_FE_FF (0) -#endif /* UTF8_ALLOW_FE_FF */ - -#ifndef UTF8_ALLOW_FFFF -#define UTF8_ALLOW_FFFF (0) -#endif /* UTF8_ALLOW_FFFF */ - -#ifndef PERL_UNUSED_VAR -# define PERL_UNUSED_VAR(x) ((void)sizeof(x)) -#endif - -#define AllowAnyUTF (UTF8_ALLOW_SURROGATE|UTF8_ALLOW_BOM|UTF8_ALLOW_FE_FF|UTF8_ALLOW_FFFF) - /* check if the string buffer is enough before uvchr_to_utf8(). */ /* dstart, d, and dlen should be defined outside before. */ #define Renew_d_if_not_enough_to(need) STRLEN curlen = d - dstart; \ @@ -71,7 +44,7 @@ d = dstart + curlen; \ } -/* if utf8n_to_uvchr() sets retlen to 0 (if broken?) */ +/* if utf8_to_uvchr_buf() sets retlen to 0 (if broken?) */ #define ErrRetlenIsZero "panic (Unicode::Normalize %s): zero-length character" /* utf8_hop() hops back before start. Maybe broken UTF-8 */ @@ -139,8 +112,8 @@ static U8* dec_canonical(UV uv) plane = (U8***)UNF_canon[uv >> 16]; if (! plane) return NULL; - row = plane[(uv >> 8) & 0xff]; - return row ? row[uv & 0xff] : NULL; + row = plane[(U8) (uv >> 8)]; + return row ? row[(U8) uv] : NULL; } static U8* dec_compat(UV uv) @@ -151,8 +124,8 @@ static U8* dec_compat(UV uv) plane = (U8***)UNF_compat[uv >> 16]; if (! plane) return NULL; - row = plane[(uv >> 8) & 0xff]; - return row ? row[uv & 0xff] : NULL; + row = plane[(U8) (uv >> 8)]; + return row ? row[(U8) uv] : NULL; } static UV composite_uv(UV uv, UV uv2) @@ -175,10 +148,10 @@ static UV composite_uv(UV uv, UV uv2) plane = UNF_compos[uv >> 16]; if (! plane) return 0; - row = plane[(uv >> 8) & 0xff]; + row = plane[(U8) (uv >> 8)]; if (! row) return 0; - cell = row[uv & 0xff]; + cell = row[(U8) uv]; if (! cell) return 0; for (i = cell; i->nextchar; i++) { @@ -196,8 +169,8 @@ static U8 getCombinClass(UV uv) plane = (U8**)UNF_combin[uv >> 16]; if (! plane) return 0; - row = plane[(uv >> 8) & 0xff]; - return row ? row[uv & 0xff] : 0; + row = plane[(U8) (uv >> 8)]; + return row ? row[(U8) uv] : 0; } static U8* pv_cat_decompHangul(pTHX_ U8* d, UV uv) @@ -244,7 +217,7 @@ U8* pv_utf8_decompose(pTHX_ U8* s, STRLEN slen, U8** dp, STRLEN dlen, bool iscom while (p < e) { STRLEN retlen; - UV uv = utf8n_to_uvchr(p, e - p, &retlen, AllowAnyUTF); + UV uv = utf8_to_uvchr_buf(p, e, &retlen); if (!retlen) croak(ErrRetlenIsZero, "decompose"); p += retlen; @@ -289,7 +262,7 @@ U8* pv_utf8_reorder(pTHX_ U8* s, STRLEN slen, U8** dp, STRLEN dlen) while (p < e) { U8 curCC; STRLEN retlen; - UV uv = utf8n_to_uvchr(p, e - p, &retlen, AllowAnyUTF); + UV uv = utf8_to_uvchr_buf(p, e, &retlen); if (!retlen) croak(ErrRetlenIsZero, "reorder"); p += retlen; @@ -366,7 +339,7 @@ U8* pv_utf8_compose(pTHX_ U8* s, STRLEN slen, U8** dp, STRLEN dlen, bool isconti while (p < e) { U8 curCC; STRLEN retlen; - UV uv = utf8n_to_uvchr(p, e - p, &retlen, AllowAnyUTF); + UV uv = utf8_to_uvchr_buf(p, e, &retlen); if (!retlen) croak(ErrRetlenIsZero, "compose"); p += retlen; @@ -636,7 +609,7 @@ checkNFD(src) preCC = 0; for (p = s; p < e; p += retlen) { - UV uv = utf8n_to_uvchr(p, e - p, &retlen, AllowAnyUTF); + UV uv = utf8_to_uvchr_buf(p, e, &retlen); if (!retlen) croak(ErrRetlenIsZero, "checkNFD or -NFKD"); @@ -673,7 +646,7 @@ checkNFC(src) preCC = 0; for (p = s; p < e; p += retlen) { - UV uv = utf8n_to_uvchr(p, e - p, &retlen, AllowAnyUTF); + UV uv = utf8_to_uvchr_buf(p, e, &retlen); if (!retlen) croak(ErrRetlenIsZero, "checkNFC or -NFKC"); @@ -731,7 +704,7 @@ checkFCD(src) U8 *sCan; UV uvLead; STRLEN canlen = 0; - UV uv = utf8n_to_uvchr(p, e - p, &retlen, AllowAnyUTF); + UV uv = utf8_to_uvchr_buf(p, e, &retlen); if (!retlen) croak(ErrRetlenIsZero, "checkFCD or -FCC"); @@ -740,7 +713,7 @@ checkFCD(src) if (sCan) { STRLEN canret; canlen = (STRLEN)strlen((char *) sCan); - uvLead = utf8n_to_uvchr(sCan, canlen, &canret, AllowAnyUTF); + uvLead = utf8_to_uvchr_buf(sCan, sCan + canlen, &canret); if (!canret) croak(ErrRetlenIsZero, "checkFCD or -FCC"); } @@ -771,7 +744,7 @@ checkFCD(src) U8* pCan = utf8_hop(eCan, -1); if (pCan < sCan) croak(ErrHopBeforeStart); - uvTrail = utf8n_to_uvchr(pCan, eCan - pCan, &canret, AllowAnyUTF); + uvTrail = utf8_to_uvchr_buf(pCan, eCan, &canret); if (!canret) croak(ErrRetlenIsZero, "checkFCD or -FCC"); preCC = getCombinClass(uvTrail); @@ -910,7 +883,7 @@ splitOnLastStarter(src) p = utf8_hop(p, -1); if (p < s) croak(ErrHopBeforeStart); - uv = utf8n_to_uvchr(p, e - p, NULL, AllowAnyUTF); + uv = utf8_to_uvchr_buf(p, e, NULL); if (getCombinClass(uv) == 0) /* Last Starter found */ break; } diff --git a/mkheader b/mkheader index 8d4c1b8..669a8a2 100644 --- a/mkheader +++ b/mkheader @@ -24,28 +24,16 @@ use Carp; use File::Spec; use SelectSaver; -BEGIN { - unless ('A' eq pack('U', 0x41)) { - die "Unicode::Normalize cannot stringify a Unicode code point\n"; - } - unless (0x41 == unpack('U', 'A')) { - die "Unicode::Normalize cannot get Unicode code point\n"; - } -} - our $PACKAGE = 'Unicode::Normalize, mkheader'; our $prefix = "UNF_"; our $structname = "${prefix}complist"; # Starting in v5.20, the tables in lib/unicore are built using the platform's -# native character set for code points 0-255. -*pack_U = ($] ge 5.020) - ? sub { return pack('W*', @_).pack('U*'); } # The empty pack returns - # an empty UTF-8 string, - # so the effect is to - # force the return into - # being UTF-8. +# native character set for code points 0-255. But in v5.35, pack U stopped +# trying to compensate +*pack_U = ($] ge 5.020 && $] lt 5.035) + ? sub { return pack('U*', map { utf8::unicode_to_native($_) } @_); } : sub { return pack('U*', @_); }; # %Canon and %Compat will be ($codepoint => $hexstring) after _U_stringify() diff --git a/t/fcdc.t b/t/fcdc.t index d2ef28b..b5dc195 100644 --- a/t/fcdc.t +++ b/t/fcdc.t @@ -1,15 +1,4 @@ -BEGIN { - unless ('A' eq pack('U', 0x41)) { - print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n"; - exit 0; - } - unless (0x41 == unpack('U', 'A')) { - print "1..0 # Unicode::Normalize cannot get a Unicode code point\n"; - exit 0; - } -} - BEGIN { if ($ENV{PERL_CORE}) { chdir('t') if -d 't'; @@ -23,20 +12,13 @@ use strict; use warnings; BEGIN { $| = 1; print "1..70\n"; } my $count = 0; -sub ok ($;$) { - my $p = my $r = shift; - if (@_) { - my $x = shift; - $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; - } - print $p ? "ok" : "not ok", ' ', ++$count, "\n"; -} +sub ok { Unicode::Normalize::ok(\$count, @_) } use Unicode::Normalize qw(:all); ok(1); -sub _pack_U { Unicode::Normalize::pack_U(@_) } +sub _pack_U { Unicode::Normalize::dot_t_pack_U(@_) } sub hexU { _pack_U map hex, split ' ', shift } sub answer { defined $_[0] ? $_[0] ? "YES" : "NO" : "MAYBE" } diff --git a/t/form.t b/t/form.t index 6bbfb08..9a0850c 100644 --- a/t/form.t +++ b/t/form.t @@ -1,15 +1,4 @@ -BEGIN { - unless ('A' eq pack('U', 0x41)) { - print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n"; - exit 0; - } - unless (0x41 == unpack('U', 'A')) { - print "1..0 # Unicode::Normalize cannot get a Unicode code point\n"; - exit 0; - } -} - BEGIN { if ($ENV{PERL_CORE}) { chdir('t') if -d 't'; @@ -23,14 +12,7 @@ use strict; use warnings; BEGIN { $| = 1; print "1..37\n"; } my $count = 0; -sub ok ($;$) { - my $p = my $r = shift; - if (@_) { - my $x = shift; - $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; - } - print $p ? "ok" : "not ok", ' ', ++$count, "\n"; -} +sub ok { Unicode::Normalize::ok(\$count, @_) } use Unicode::Normalize qw(:all); diff --git a/t/func.t b/t/func.t index 2bd6e50..a5eb0b3 100644 --- a/t/func.t +++ b/t/func.t @@ -1,15 +1,4 @@ -BEGIN { - unless ('A' eq pack('U', 0x41)) { - print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n"; - exit 0; - } - unless (0x41 == unpack('U', 'A')) { - print "1..0 # Unicode::Normalize cannot get a Unicode code point\n"; - exit 0; - } -} - BEGIN { if ($ENV{PERL_CORE}) { chdir('t') if -d 't'; @@ -23,20 +12,13 @@ use strict; use warnings; BEGIN { $| = 1; print "1..217\n"; } my $count = 0; -sub ok ($;$) { - my $p = my $r = shift; - if (@_) { - my $x = shift; - $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; - } - print $p ? "ok" : "not ok", ' ', ++$count, "\n"; -} +sub ok { Unicode::Normalize::ok(\$count, @_) } use Unicode::Normalize qw(:all); ok(1); -sub _pack_U { Unicode::Normalize::pack_U(@_) } +sub _pack_U { Unicode::Normalize::dot_t_pack_U(@_) } sub hexU { _pack_U map hex, split ' ', shift } # This won't work on EBCDIC platforms prior to v5.8.0, which is when this diff --git a/t/illegal.t b/t/illegal.t index ccf2b4a..6a1160c 100644 --- a/t/illegal.t +++ b/t/illegal.t @@ -1,15 +1,4 @@ -BEGIN { - unless ('A' eq pack('U', 0x41)) { - print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n"; - exit 0; - } - unless (0x41 == unpack('U', 'A')) { - print "1..0 # Unicode::Normalize cannot get a Unicode code point\n"; - exit 0; - } -} - BEGIN { if ($ENV{PERL_CORE}) { chdir('t') if -d 't'; @@ -43,14 +32,7 @@ use warnings; BEGIN { $| = 1; print "1..113\n"; } my $count = 0; -sub ok ($;$) { - my $p = my $r = shift; - if (@_) { - my $x = shift; - $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; - } - print $p ? "ok" : "not ok", ' ', ++$count, "\n"; -} +sub ok { Unicode::Normalize::ok(\$count, @_) } ok(1); @@ -77,7 +59,7 @@ for my $u (0xD800, 0xDFFF, 0xFDD0, 0xFDEF, 0xFEFF, 0xFFFE, 0xFFFF, our $proc; # before the last starter our $unproc; # the last starter and after -sub _pack_U { Unicode::Normalize::pack_U(@_) } +sub _pack_U { Unicode::Normalize::dot_t_pack_U(@_) } ($proc, $unproc) = splitOnLastStarter(_pack_U(0x41, 0x300, 0x327, 0xFFFF)); ok($proc eq _pack_U(0x41, 0x300, 0x327)); diff --git a/t/norm.t b/t/norm.t index d3cec3a..ffb7449 100644 --- a/t/norm.t +++ b/t/norm.t @@ -1,15 +1,4 @@ -BEGIN { - unless ('A' eq pack('U', 0x41)) { - print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n"; - exit 0; - } - unless (0x41 == unpack('U', 'A')) { - print "1..0 # Unicode::Normalize cannot get a Unicode code point\n"; - exit 0; - } -} - BEGIN { if ($ENV{PERL_CORE}) { chdir('t') if -d 't'; @@ -23,21 +12,14 @@ use strict; use warnings; BEGIN { $| = 1; print "1..64\n"; } my $count = 0; -sub ok ($;$) { - my $p = my $r = shift; - if (@_) { - my $x = shift; - $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; - } - print $p ? "ok" : "not ok", ' ', ++$count, "\n"; -} +sub ok { Unicode::Normalize::ok(\$count, @_) } use Unicode::Normalize qw(normalize); ok(1); -sub _pack_U { Unicode::Normalize::pack_U(@_) } -sub _unpack_U { Unicode::Normalize::unpack_U(@_) } +sub _pack_U { Unicode::Normalize::dot_t_pack_U(@_) } +sub _unpack_U { Unicode::Normalize::dot_t_unpack_U(@_) } ######################### diff --git a/t/null.t b/t/null.t index 9a00087..93d1bbc 100644 --- a/t/null.t +++ b/t/null.t @@ -1,15 +1,4 @@ -BEGIN { - unless ('A' eq pack('U', 0x41)) { - print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n"; - exit 0; - } - unless (0x41 == unpack('U', 'A')) { - print "1..0 # Unicode::Normalize cannot get a Unicode code point\n"; - exit 0; - } -} - BEGIN { if ($ENV{PERL_CORE}) { chdir('t') if -d 't'; diff --git a/t/partial1.t b/t/partial1.t index 3e44a63..97d8343 100644 --- a/t/partial1.t +++ b/t/partial1.t @@ -1,15 +1,4 @@ -BEGIN { - unless ('A' eq pack('U', 0x41)) { - print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n"; - exit 0; - } - unless (0x41 == unpack('U', 'A')) { - print "1..0 # Unicode::Normalize cannot get a Unicode code point\n"; - exit 0; - } -} - BEGIN { if ($ENV{PERL_CORE}) { chdir('t') if -d 't'; @@ -31,14 +20,7 @@ use strict; use warnings; BEGIN { $| = 1; print "1..26\n"; } my $count = 0; -sub ok ($;$) { - my $p = my $r = shift; - if (@_) { - my $x = shift; - $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; - } - print $p ? "ok" : "not ok", ' ', ++$count, "\n"; -} +sub ok { Unicode::Normalize::ok(\$count, @_) } use Unicode::Normalize qw(:all); diff --git a/t/partial2.t b/t/partial2.t index 7f19e93..1cf510d 100644 --- a/t/partial2.t +++ b/t/partial2.t @@ -1,15 +1,4 @@ -BEGIN { - unless ('A' eq pack('U', 0x41)) { - print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n"; - exit 0; - } - unless (0x41 == unpack('U', 'A')) { - print "1..0 # Unicode::Normalize cannot get a Unicode code point\n"; - exit 0; - } -} - BEGIN { if ($ENV{PERL_CORE}) { chdir('t') if -d 't'; @@ -31,21 +20,14 @@ use strict; use warnings; BEGIN { $| = 1; print "1..26\n"; } my $count = 0; -sub ok ($;$) { - my $p = my $r = shift; - if (@_) { - my $x = shift; - $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; - } - print $p ? "ok" : "not ok", ' ', ++$count, "\n"; -} +sub ok { Unicode::Normalize::ok(\$count, @_) } use Unicode::Normalize qw(:all); ok(1); -sub _pack_U { Unicode::Normalize::pack_U(@_) } -sub _unpack_U { Unicode::Normalize::unpack_U(@_) } +sub _pack_U { Unicode::Normalize::dot_t_pack_U(@_) } +sub _unpack_U { Unicode::Normalize::undot_t_pack_U(@_) } ######################### diff --git a/t/proto.t b/t/proto.t index 38c6985..f90777c 100644 --- a/t/proto.t +++ b/t/proto.t @@ -1,15 +1,4 @@ -BEGIN { - unless ('A' eq pack('U', 0x41)) { - print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n"; - exit 0; - } - unless (0x41 == unpack('U', 'A')) { - print "1..0 # Unicode::Normalize cannot get a Unicode code point\n"; - exit 0; - } -} - BEGIN { if ($ENV{PERL_CORE}) { chdir('t') if -d 't'; @@ -23,14 +12,7 @@ use strict; use warnings; BEGIN { $| = 1; print "1..48\n"; } my $count = 0; -sub ok ($;$) { - my $p = my $r = shift; - if (@_) { - my $x = shift; - $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; - } - print $p ? "ok" : "not ok", ' ', ++$count, "\n"; -} +sub ok { Unicode::Normalize::ok(\$count, @_) } use Unicode::Normalize qw(:all); diff --git a/t/split.t b/t/split.t index a92957c..ae166f4 100644 --- a/t/split.t +++ b/t/split.t @@ -1,15 +1,4 @@ -BEGIN { - unless ('A' eq pack('U', 0x41)) { - print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n"; - exit 0; - } - unless (0x41 == unpack('U', 'A')) { - print "1..0 # Unicode::Normalize cannot get a Unicode code point\n"; - exit 0; - } -} - BEGIN { if ($ENV{PERL_CORE}) { chdir('t') if -d 't'; @@ -31,21 +20,14 @@ use strict; use warnings; BEGIN { $| = 1; print "1..34\n"; } my $count = 0; -sub ok ($;$) { - my $p = my $r = shift; - if (@_) { - my $x = shift; - $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; - } - print $p ? "ok" : "not ok", ' ', ++$count, "\n"; -} +sub ok { Unicode::Normalize::ok(\$count, @_) } use Unicode::Normalize qw(:all); ok(1); -sub _pack_U { Unicode::Normalize::pack_U(@_) } -sub _unpack_U { Unicode::Normalize::unpack_U(@_) } +sub _pack_U { Unicode::Normalize::dot_t_pack_U(@_) } +sub _unpack_U { Unicode::Normalize::dot_t_unpack_U(@_) } ######################### diff --git a/t/test.t b/t/test.t index cb4b6ea..cec3ca7 100644 --- a/t/test.t +++ b/t/test.t @@ -1,15 +1,4 @@ -BEGIN { - unless ('A' eq pack('U', 0x41)) { - print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n"; - exit 0; - } - unless (0x41 == unpack('U', 'A')) { - print "1..0 # Unicode::Normalize cannot get a Unicode code point\n"; - exit 0; - } -} - BEGIN { if ($ENV{PERL_CORE}) { chdir('t') if -d 't'; @@ -23,21 +12,14 @@ use strict; use warnings; BEGIN { $| = 1; print "1..72\n"; } my $count = 0; -sub ok ($;$) { - my $p = my $r = shift; - if (@_) { - my $x = shift; - $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; - } - print $p ? "ok" : "not ok", ' ', ++$count, "\n"; -} +sub ok { Unicode::Normalize::ok(\$count, @_) } use Unicode::Normalize; ok(1); -sub _pack_U { Unicode::Normalize::pack_U(@_) } -sub _unpack_U { Unicode::Normalize::unpack_U(@_) } +sub _pack_U { Unicode::Normalize::dot_t_pack_U(@_) } +sub _unpack_U { Unicode::Normalize::dot_t_unpack_U(@_) } ######################### diff --git a/t/tie.t b/t/tie.t index 4fdd121..1282405 100644 --- a/t/tie.t +++ b/t/tie.t @@ -1,15 +1,4 @@ -BEGIN { - unless ('A' eq pack('U', 0x41)) { - print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n"; - exit 0; - } - unless (0x41 == unpack('U', 'A')) { - print "1..0 # Unicode::Normalize cannot get a Unicode code point\n"; - exit 0; - } -} - BEGIN { if ($ENV{PERL_CORE}) { chdir('t') if -d 't'; @@ -34,14 +23,7 @@ use strict; use warnings; BEGIN { $| = 1; print "1..17\n"; } my $count = 0; -sub ok ($;$) { - my $p = my $r = shift; - if (@_) { - my $x = shift; - $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; - } - print $p ? "ok" : "not ok", ' ', ++$count, "\n"; -} +sub ok { Unicode::Normalize::ok(\$count, @_) } ok(1); -- 2.34.3