switch unfcmb.h to employ 'STDCHAR' in place of char
[p5sagit/p5-mst-13.2.git] / ext / Unicode / Normalize / Normalize.pm
CommitLineData
ac5ea531 1package Unicode::Normalize;
2
3use 5.006;
4use strict;
5use warnings;
6use Carp;
7
8our $VERSION = '0.10';
9our $PACKAGE = __PACKAGE__;
10
11require Exporter;
12require DynaLoader;
13require AutoLoader;
14
15our @ISA = qw(Exporter DynaLoader);
16our @EXPORT = qw( NFC NFD NFKC NFKD );
17our @EXPORT_OK = qw( normalize decompose reorder compose
18 getCanon getCompat getComposite getCombinClass getExclusion);
19our %EXPORT_TAGS = ( all => [ @EXPORT, @EXPORT_OK ] );
20
21bootstrap Unicode::Normalize $VERSION;
22
23use constant CANON => 0;
24use constant COMPAT => 1;
25
26sub NFD ($) { reorder(decompose($_[0], CANON)) }
27
28sub NFKD ($) { reorder(decompose($_[0], COMPAT)) }
29
30sub NFC ($) { compose(reorder(decompose($_[0], CANON))) }
31
32sub NFKC ($) { compose(reorder(decompose($_[0], COMPAT))) }
33
34sub normalize($$)
35{
36 my $form = shift;
37 $form eq 'D' || $form eq 'NFD' ? NFD ($_[0]) :
38 $form eq 'C' || $form eq 'NFC' ? NFC ($_[0]) :
39 $form eq 'KD' || $form eq 'NFKD' ? NFKD($_[0]) :
40 $form eq 'KC' || $form eq 'NFKC' ? NFKC($_[0]) :
41 croak $PACKAGE."::normalize: invalid form name: $form";
42}
43
441;
45__END__