Compare commits
No commits in common. "c8-stream-5.3" and "c10s" have entirely different histories.
c8-stream-
...
c10s
1
.fmf/version
Normal file
1
.fmf/version
Normal file
@ -0,0 +1 @@
|
||||
1
|
8
.gitignore
vendored
8
.gitignore
vendored
@ -1 +1,7 @@
|
||||
SOURCES/Unicode-Normalize-1.25.tar.gz
|
||||
/Unicode-Normalize-1.18.tar.gz
|
||||
/Unicode-Normalize-1.19.tar.gz
|
||||
/Unicode-Normalize-1.21.tar.gz
|
||||
/Unicode-Normalize-1.23.tar.gz
|
||||
/Unicode-Normalize-1.24.tar.gz
|
||||
/Unicode-Normalize-1.25.tar.gz
|
||||
/Unicode-Normalize-1.26.tar.gz
|
||||
|
@ -1 +0,0 @@
|
||||
607ada7ef05bc1644f7f08d8899fc60988ea4f7e SOURCES/Unicode-Normalize-1.25.tar.gz
|
@ -1,111 +0,0 @@
|
||||
From 5ee924afc3aff6f8030a3a5523bb7d3f7f69fc52 Mon Sep 17 00:00:00 2001
|
||||
From: Jitka Plesnikova <jplesnik@redhat.com>
|
||||
Date: Thu, 24 May 2018 12:07:22 +0200
|
||||
Subject: [PATCH] Upgrade to 1.26
|
||||
|
||||
---
|
||||
Changes | 3 +++
|
||||
Makefile.PL | 2 +-
|
||||
Normalize.pm | 22 +++++++++++-----------
|
||||
3 files changed, 15 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/Changes b/Changes
|
||||
index ead5b3e..22ec16e 100644
|
||||
--- a/Changes
|
||||
+++ b/Changes
|
||||
@@ -1,5 +1,8 @@
|
||||
Revision history for Perl extension Unicode::Normalize.
|
||||
|
||||
+1.26 *** RELEASE DATE HERE ***
|
||||
+ - Switch to XSLoader from Dynaloader
|
||||
+
|
||||
1.25 Wed Dec 16 03:05:57 UTC 2015
|
||||
- Fix Normalize.xs to work on releases earlier than 5.8. The problem was
|
||||
introduced in this module's version 1.24
|
||||
diff --git a/Makefile.PL b/Makefile.PL
|
||||
index 44a4b8d..18bc2e2 100644
|
||||
--- a/Makefile.PL
|
||||
+++ b/Makefile.PL
|
||||
@@ -8,7 +8,7 @@ my $mm_ver = ExtUtils::MakeMaker->VERSION;
|
||||
if (-f "Normalize.xs") {
|
||||
print STDERR "Making header files for XS...\n";
|
||||
|
||||
- do 'mkheader' or die $@ || "mkheader: $!";
|
||||
+ do './mkheader' or die $@ || "mkheader: $!";
|
||||
|
||||
$clean = { FILES => 'unfcan.h unfcmb.h unfcmp.h unfcpt.h unfexc.h' };
|
||||
}
|
||||
diff --git a/Normalize.pm b/Normalize.pm
|
||||
index ff6c0f0..adf3db5 100644
|
||||
--- a/Normalize.pm
|
||||
+++ b/Normalize.pm
|
||||
@@ -16,7 +16,7 @@ use Carp;
|
||||
|
||||
no warnings 'utf8';
|
||||
|
||||
-our $VERSION = '1.25';
|
||||
+our $VERSION = '1.26';
|
||||
our $PACKAGE = __PACKAGE__;
|
||||
|
||||
our @EXPORT = qw( NFC NFD NFKC NFKD );
|
||||
@@ -56,9 +56,9 @@ require Exporter;
|
||||
|
||||
##### The above part is common to XS and PP #####
|
||||
|
||||
-our @ISA = qw(Exporter DynaLoader);
|
||||
-require DynaLoader;
|
||||
-bootstrap Unicode::Normalize $VERSION;
|
||||
+our @ISA = qw(Exporter);
|
||||
+use XSLoader ();
|
||||
+XSLoader::load( 'Unicode::Normalize', $VERSION );
|
||||
|
||||
##### The below part is common to XS and PP #####
|
||||
|
||||
@@ -161,7 +161,7 @@ Unicode::Normalize - Unicode Normalization Forms
|
||||
|
||||
Parameters:
|
||||
|
||||
-C<$string> is used as a string under character semantics (see F<perlunicode>).
|
||||
+C<$string> is used as a string under character semantics (see L<perlunicode>).
|
||||
|
||||
C<$code_point> should be an unsigned integer representing a Unicode code point.
|
||||
|
||||
@@ -238,8 +238,8 @@ the decomposition is compatibility decomposition.
|
||||
|
||||
The string returned is not always in NFD/NFKD. Reordering may be required.
|
||||
|
||||
- $NFD_string = reorder(decompose($string)); # eq. to NFD()
|
||||
- $NFKD_string = reorder(decompose($string, TRUE)); # eq. to NFKD()
|
||||
+ $NFD_string = reorder(decompose($string)); # eq. to NFD()
|
||||
+ $NFKD_string = reorder(decompose($string, TRUE)); # eq. to NFKD()
|
||||
|
||||
=item C<$reordered_string = reorder($string)>
|
||||
|
||||
@@ -277,12 +277,12 @@ should be equal to the entire C<$normalized>.
|
||||
When you have a C<$normalized> string and an C<$unnormalized> string
|
||||
following it, a simple concatenation is wrong:
|
||||
|
||||
- $concat = $normalized . normalize($form, $unnormalized); # wrong!
|
||||
+ $concat = $normalized . normalize($form, $unnormalized); # wrong!
|
||||
|
||||
Instead of it, do like this:
|
||||
|
||||
- ($processed, $unprocessed) = splitOnLastStarter($normalized);
|
||||
- $concat = $processed . normalize($form, $unprocessed.$unnormalized);
|
||||
+ ($processed, $unprocessed) = splitOnLastStarter($normalized);
|
||||
+ $concat = $processed . normalize($form,$unprocessed.$unnormalized);
|
||||
|
||||
C<splitOnLastStarter()> should be called with a pre-normalized parameter
|
||||
C<$normalized>, that is in the same form as C<$form> you want.
|
||||
@@ -548,7 +548,7 @@ compiled into your perl. The following table lists the default Unicode
|
||||
version that comes with various perl versions. (It is possible to change
|
||||
the Unicode version in any perl version to be any earlier Unicode version,
|
||||
so one could cause Unicode 3.2 to be used in any perl version starting with
|
||||
-5.8.0. See C<$Config{privlib}>/F<unicore/README.perl>.
|
||||
+5.8.0. Read F<C<$Config{privlib}>/unicore/README.perl> for details.
|
||||
|
||||
perl's version implemented Unicode version
|
||||
5.6.1 3.0.1
|
||||
--
|
||||
2.14.3
|
||||
|
@ -1,122 +0,0 @@
|
||||
%global base_version 1.25
|
||||
Name: perl-Unicode-Normalize
|
||||
Version: 1.26
|
||||
Release: 439%{?dist}
|
||||
Summary: Unicode Normalization Forms
|
||||
License: GPL+ or Artistic
|
||||
URL: https://metacpan.org/release/Unicode-Normalize
|
||||
Source0: https://cpan.metacpan.org/authors/id/K/KH/KHW/Unicode-Normalize-%{base_version}.tar.gz
|
||||
# Unbundled from perl 5.28.0-RC1
|
||||
Patch0: Unicode-Normalize-1.25-Upgrade-to-1.26.patch
|
||||
BuildRequires: findutils
|
||||
BuildRequires: gcc
|
||||
BuildRequires: make
|
||||
BuildRequires: perl-devel
|
||||
BuildRequires: perl-generators
|
||||
BuildRequires: perl-interpreter
|
||||
# unicore/CombiningClass.pl and unicore/Decomposition.pl from perl-libs
|
||||
BuildRequires: perl-libs
|
||||
BuildRequires: perl(bytes)
|
||||
BuildRequires: perl(Carp)
|
||||
BuildRequires: perl(constant)
|
||||
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76
|
||||
BuildRequires: perl(File::Spec)
|
||||
BuildRequires: perl(SelectSaver)
|
||||
BuildRequires: perl(strict)
|
||||
BuildRequires: perl(warnings)
|
||||
# Run-time:
|
||||
BuildRequires: perl(Exporter)
|
||||
BuildRequires: perl(XSLoader)
|
||||
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
|
||||
Conflicts: perl < 4:5.22.0-347
|
||||
|
||||
%description
|
||||
This package provides Perl functions that can convert strings into various
|
||||
Unicode normalization forms as defined in Unicode Standard Annex #15.
|
||||
|
||||
%prep
|
||||
%setup -q -n Unicode-Normalize-%{base_version}
|
||||
%patch0 -p1
|
||||
|
||||
%build
|
||||
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 OPTIMIZE="%{optflags}"
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
make pure_install DESTDIR=$RPM_BUILD_ROOT
|
||||
find $RPM_BUILD_ROOT -type f -name '*.bs' -size 0 -delete
|
||||
%{_fixperms} $RPM_BUILD_ROOT/*
|
||||
|
||||
%check
|
||||
make test
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc Changes README
|
||||
%{perl_vendorarch}/auto/*
|
||||
%{perl_vendorarch}/Unicode
|
||||
%{_mandir}/man3/*
|
||||
|
||||
%changelog
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.26-439
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Thu May 30 2019 Jitka Plesnikova <jplesnik@redhat.com> - 1.26-438
|
||||
- Increase release to favour standalone package
|
||||
|
||||
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.26-418
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.26-417
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Wed Jun 27 2018 Jitka Plesnikova <jplesnik@redhat.com> - 1.26-416
|
||||
- Increase release to favour standalone package
|
||||
|
||||
* Thu May 24 2018 Jitka Plesnikova <jplesnik@redhat.com> - 1.26-1
|
||||
- Upgrade to 1.26 as provided in perl-5.28.0-RC1
|
||||
|
||||
* Wed Mar 07 2018 Petr Pisar <ppisar@redhat.com> - 1.25-397
|
||||
- Modernize spec file
|
||||
|
||||
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.25-396
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.25-395
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.25-394
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Sat Jun 03 2017 Jitka Plesnikova <jplesnik@redhat.com> - 1.25-393
|
||||
- Perl 5.26 rebuild
|
||||
|
||||
* Mon May 15 2017 Jitka Plesnikova <jplesnik@redhat.com> - 1.25-367
|
||||
- Fixes for removal '.' from @INC in Perl 5.26
|
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.25-366
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Sat May 14 2016 Jitka Plesnikova <jplesnik@redhat.com> - 1.25-365
|
||||
- Increase release to favour standalone package
|
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.25-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Fri Dec 18 2015 Petr Šabata <contyk@redhat.com> - 1.25-1
|
||||
- 1.25 bump
|
||||
|
||||
* Thu Dec 03 2015 Petr Pisar <ppisar@redhat.com> - 1.24-1
|
||||
- 1.24 bump
|
||||
|
||||
* Tue Oct 27 2015 Petr Pisar <ppisar@redhat.com> - 1.23-1
|
||||
- 1.23 bump
|
||||
|
||||
* Fri Oct 09 2015 Petr Pisar <ppisar@redhat.com> - 1.21-1
|
||||
- 1.21 bump
|
||||
|
||||
* Mon Jul 13 2015 Petr Pisar <ppisar@redhat.com> - 1.19-1
|
||||
- 1.19 bump
|
||||
|
||||
* Thu Jul 02 2015 Petr Pisar <ppisar@redhat.com> 1.18-348
|
||||
- Specfile autogenerated by cpanspec 1.78.
|
927
Unicode-Normalize-1.26-Upgrade-to-1.32.patch
Normal file
927
Unicode-Normalize-1.26-Upgrade-to-1.32.patch
Normal file
@ -0,0 +1,927 @@
|
||||
From 0850dba96e3cb8ee37fe405b0cf76d7f910e90e4 Mon Sep 17 00:00:00 2001
|
||||
From: Jitka Plesnikova <jplesnik@redhat.com>
|
||||
Date: Thu, 18 May 2023 21:02:00 +0200
|
||||
Subject: [PATCH] Upgrade to 1.32
|
||||
|
||||
---
|
||||
Makefile.PL | 22 +++++++-------
|
||||
Normalize.pm | 81 +++++++++++++++++++++++++++++++++++++---------------
|
||||
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, 118 insertions(+), 329 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..c8053f7 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.32';
|
||||
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;
|
||||
@@ -343,7 +376,7 @@ Note that C<$unprocessed> will be modified as a side-effect.
|
||||
|
||||
=head2 Quick Check
|
||||
|
||||
-(see Annex 8, UAX #15; and F<DerivedNormalizationProps.txt>)
|
||||
+(see Annex 8, UAX #15; and F<lib/unicore/DerivedNormalizationProps.txt>)
|
||||
|
||||
The following functions check whether the string is in that normalization form.
|
||||
|
||||
@@ -571,8 +604,10 @@ so one could cause Unicode 3.2 to be used in any perl version starting with
|
||||
|
||||
In older Unicode versions, a small number of characters (all of which are
|
||||
CJK compatibility ideographs as far as they have been found) may have
|
||||
-an erroneous decomposition mapping (see F<NormalizationCorrections.txt>).
|
||||
-Anyhow, this module will neither refer to F<NormalizationCorrections.txt>
|
||||
+an erroneous decomposition mapping (see
|
||||
+F<lib/unicore/NormalizationCorrections.txt>).
|
||||
+Anyhow, this module will neither refer to
|
||||
+F<lib/unicore/NormalizationCorrections.txt>
|
||||
nor provide any specific version of normalization. Therefore this module
|
||||
running on an older perl with an older Unicode database may use
|
||||
the erroneous decomposition mapping blindly conforming to the Unicode database.
|
||||
@@ -606,27 +641,27 @@ and/or modify it under the same terms as Perl itself.
|
||||
|
||||
=over 4
|
||||
|
||||
-=item http://www.unicode.org/reports/tr15/
|
||||
+=item L<http://www.unicode.org/reports/tr15/>
|
||||
|
||||
Unicode Normalization Forms - UAX #15
|
||||
|
||||
-=item http://www.unicode.org/Public/UNIDATA/CompositionExclusions.txt
|
||||
+=item L<http://www.unicode.org/Public/UNIDATA/CompositionExclusions.txt>
|
||||
|
||||
Composition Exclusion Table
|
||||
|
||||
-=item http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt
|
||||
+=item L<http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt>
|
||||
|
||||
Derived Normalization Properties
|
||||
|
||||
-=item http://www.unicode.org/Public/UNIDATA/NormalizationCorrections.txt
|
||||
+=item L<http://www.unicode.org/Public/UNIDATA/NormalizationCorrections.txt>
|
||||
|
||||
Normalization Corrections
|
||||
|
||||
-=item http://www.unicode.org/review/pr-29.html
|
||||
+=item L<http://www.unicode.org/review/pr-29.html>
|
||||
|
||||
Public Review Issue #29: Normalization Issue
|
||||
|
||||
-=item http://www.unicode.org/notes/tn5/
|
||||
+=item L<http://www.unicode.org/notes/tn5/>
|
||||
|
||||
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.40.1
|
||||
|
19
gating.yaml
Normal file
19
gating.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
# Fedora
|
||||
--- !Policy
|
||||
id: fedora_policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_contexts:
|
||||
- bodhi_update_push_testing
|
||||
- bodhi_update_push_stable
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
||||
|
||||
# RHEL
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-*
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
218
perl-Unicode-Normalize.spec
Normal file
218
perl-Unicode-Normalize.spec
Normal file
@ -0,0 +1,218 @@
|
||||
%global base_version 1.26
|
||||
Name: perl-Unicode-Normalize
|
||||
Version: 1.32
|
||||
Release: 511%{?dist}
|
||||
Summary: Unicode Normalization Forms
|
||||
License: GPL-1.0-or-later OR Artistic-1.0-Perl
|
||||
URL: https://metacpan.org/release/Unicode-Normalize
|
||||
Source0: https://cpan.metacpan.org/authors/id/K/KH/KHW/Unicode-Normalize-%{base_version}.tar.gz
|
||||
# Unbundled from perl 5.37.11
|
||||
Patch0: Unicode-Normalize-1.26-Upgrade-to-1.32.patch
|
||||
BuildRequires: coreutils
|
||||
BuildRequires: findutils
|
||||
BuildRequires: gcc
|
||||
BuildRequires: make
|
||||
BuildRequires: perl-devel
|
||||
BuildRequires: perl-generators
|
||||
BuildRequires: perl-interpreter
|
||||
# unicore/CombiningClass.pl and unicore/Decomposition.pl from perl-libs
|
||||
BuildRequires: perl-libs
|
||||
BuildRequires: perl(bytes)
|
||||
BuildRequires: perl(Carp)
|
||||
BuildRequires: perl(constant)
|
||||
BuildRequires: perl(Devel::PPPort)
|
||||
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76
|
||||
BuildRequires: perl(File::Spec)
|
||||
BuildRequires: perl(SelectSaver)
|
||||
BuildRequires: perl(strict)
|
||||
BuildRequires: perl(warnings)
|
||||
# Run-time:
|
||||
BuildRequires: perl(Exporter)
|
||||
BuildRequires: perl(XSLoader)
|
||||
Conflicts: perl < 4:5.22.0-347
|
||||
|
||||
%description
|
||||
This package provides Perl functions that can convert strings into various
|
||||
Unicode normalization forms as defined in Unicode Standard Annex #15.
|
||||
|
||||
%package tests
|
||||
Summary: Tests for %{name}
|
||||
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires: perl-Test-Harness
|
||||
|
||||
%description tests
|
||||
Tests from %{name}. Execute them
|
||||
with "%{_libexecdir}/%{name}/test".
|
||||
|
||||
%prep
|
||||
%setup -q -n Unicode-Normalize-%{base_version}
|
||||
%patch -P0 -p1
|
||||
|
||||
# Generate ppport.h which is used since 1.32
|
||||
perl -MDevel::PPPort \
|
||||
-e 'Devel::PPPort::WriteFile() or die "Could not generate ppport.h: $!"'
|
||||
|
||||
# Help generators to recognize Perl scripts
|
||||
for F in t/*.t; do
|
||||
perl -i -MConfig -ple 'print $Config{startperl} if $. == 1 && !s{\A#!.*perl\b}{$Config{startperl}}' "$F"
|
||||
chmod +x "$F"
|
||||
done
|
||||
|
||||
%build
|
||||
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 OPTIMIZE="%{optflags}"
|
||||
%{make_build}
|
||||
|
||||
%install
|
||||
%{make_install}
|
||||
find %{buildroot} -type f -name '*.bs' -size 0 -delete
|
||||
%{_fixperms} %{buildroot}/*
|
||||
|
||||
# Install tests
|
||||
mkdir -p %{buildroot}%{_libexecdir}/%{name}
|
||||
cp -a t %{buildroot}%{_libexecdir}/%{name}
|
||||
cat > %{buildroot}%{_libexecdir}/%{name}/test << 'EOF'
|
||||
#!/bin/sh
|
||||
cd %{_libexecdir}/%{name} && exec prove -I . -j "$(getconf _NPROCESSORS_ONLN)"
|
||||
EOF
|
||||
chmod +x %{buildroot}%{_libexecdir}/%{name}/test
|
||||
|
||||
%check
|
||||
make test
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc Changes README
|
||||
%{perl_vendorarch}/auto/*
|
||||
%{perl_vendorarch}/Unicode
|
||||
%{_mandir}/man3/Unicode::Normalize*
|
||||
|
||||
%files tests
|
||||
%{_libexecdir}/%{name}
|
||||
|
||||
%changelog
|
||||
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 1.32-511
|
||||
- Bump release for October 2024 mass rebuild:
|
||||
Resolves: RHEL-64018
|
||||
|
||||
* Thu Jul 18 2024 Jitka Plesnikova <jplesnik@redhat.com> - 1.32-510
|
||||
- Increase release to favour standalone package
|
||||
|
||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1.32-503
|
||||
- Bump release for June 2024 mass rebuild
|
||||
|
||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.32-502
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.32-501
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.32-500
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 1.32-499
|
||||
- Increase release to favour standalone package
|
||||
|
||||
* Thu May 18 2023 Jitka Plesnikova <jplesnik@redhat.com> - 1.32-1
|
||||
- Upgrade to 1.32 as provided in perl-5.37.11
|
||||
- Package tests
|
||||
|
||||
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.31-490
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.31-489
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Mon May 30 2022 Jitka Plesnikova <jplesnik@redhat.com> - 1.31-488
|
||||
- Increase release to favour standalone package
|
||||
|
||||
* Thu May 12 2022 Jitka Plesnikova <jplesnik@redhat.com> - 1.31-1
|
||||
- Upgrade to 1.31 as provided in perl-5.35.11
|
||||
|
||||
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.28-479
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Tue Jul 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.28-478
|
||||
- Second attempt - Rebuilt for
|
||||
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1.28-477
|
||||
- Upgrade to 1.28 as provided in perl-5.34.0
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.27-459
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.27-458
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Tue Jul 21 2020 Petr Pisar <ppisar@redhat.com> - 1.27-457
|
||||
- Modernize a spec file
|
||||
- Apply a forgotten Unicode-Normalize-1.25-Upgrade-to-1.27.patch patch
|
||||
|
||||
* Mon Jun 22 2020 Jitka Plesnikova <jplesnik@redhat.com> - 1.27-456
|
||||
- Upgrade to 1.27 as provided in perl-5.32.0
|
||||
|
||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.26-440
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.26-439
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Thu May 30 2019 Jitka Plesnikova <jplesnik@redhat.com> - 1.26-438
|
||||
- Increase release to favour standalone package
|
||||
|
||||
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.26-418
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.26-417
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Wed Jun 27 2018 Jitka Plesnikova <jplesnik@redhat.com> - 1.26-416
|
||||
- Increase release to favour standalone package
|
||||
|
||||
* Thu May 24 2018 Jitka Plesnikova <jplesnik@redhat.com> - 1.26-1
|
||||
- Upgrade to 1.26 as provided in perl-5.28.0-RC1
|
||||
|
||||
* Wed Mar 07 2018 Petr Pisar <ppisar@redhat.com> - 1.25-397
|
||||
- Modernize spec file
|
||||
|
||||
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.25-396
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.25-395
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.25-394
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Sat Jun 03 2017 Jitka Plesnikova <jplesnik@redhat.com> - 1.25-393
|
||||
- Perl 5.26 rebuild
|
||||
|
||||
* Mon May 15 2017 Jitka Plesnikova <jplesnik@redhat.com> - 1.25-367
|
||||
- Fixes for removal '.' from @INC in Perl 5.26
|
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.25-366
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Sat May 14 2016 Jitka Plesnikova <jplesnik@redhat.com> - 1.25-365
|
||||
- Increase release to favour standalone package
|
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.25-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Fri Dec 18 2015 Petr Šabata <contyk@redhat.com> - 1.25-1
|
||||
- 1.25 bump
|
||||
|
||||
* Thu Dec 03 2015 Petr Pisar <ppisar@redhat.com> - 1.24-1
|
||||
- 1.24 bump
|
||||
|
||||
* Tue Oct 27 2015 Petr Pisar <ppisar@redhat.com> - 1.23-1
|
||||
- 1.23 bump
|
||||
|
||||
* Fri Oct 09 2015 Petr Pisar <ppisar@redhat.com> - 1.21-1
|
||||
- 1.21 bump
|
||||
|
||||
* Mon Jul 13 2015 Petr Pisar <ppisar@redhat.com> - 1.19-1
|
||||
- 1.19 bump
|
||||
|
||||
* Thu Jul 02 2015 Petr Pisar <ppisar@redhat.com> 1.18-348
|
||||
- Specfile autogenerated by cpanspec 1.78.
|
5
plans/sanity.fmf
Normal file
5
plans/sanity.fmf
Normal file
@ -0,0 +1,5 @@
|
||||
summary: Sanity tests
|
||||
discover:
|
||||
how: fmf
|
||||
execute:
|
||||
how: tmt
|
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
||||
SHA512 (Unicode-Normalize-1.26.tar.gz) = 7f624d2e3dd6fd7412b537898100e1cc96ea3c704b2ee6adcbbc5a0a67ac3f36a56cbc262bc79e7792af08c07153d855f651301797f29a85a8bb51a8ba077e0d
|
11
tests/upstream-tests.fmf
Normal file
11
tests/upstream-tests.fmf
Normal file
@ -0,0 +1,11 @@
|
||||
summary: Upstream tests
|
||||
component: perl-Unicode-Normalize
|
||||
require: perl-Unicode-Normalize-tests
|
||||
test: /usr/libexec/perl-Unicode-Normalize/test
|
||||
enabled: true
|
||||
tag:
|
||||
- rhel-buildroot
|
||||
adjust:
|
||||
- enabled: false
|
||||
when: distro < rhel-10 or distro < centos-stream-10
|
||||
continue: false
|
Loading…
Reference in New Issue
Block a user