diff -Nru libfont-ttf-perl-1.04/buildutils/convert_tags_from_html.pl libfont-ttf-perl-1.05/buildutils/convert_tags_from_html.pl --- libfont-ttf-perl-1.04/buildutils/convert_tags_from_html.pl 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/buildutils/convert_tags_from_html.pl 2014-12-10 01:40:25.000000000 +0000 @@ -176,11 +176,11 @@ =head1 AUTHOR -Bob Hallissy L +Bob Hallissy L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This script is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/buildutils/convert_tags.pl libfont-ttf-perl-1.05/buildutils/convert_tags.pl --- libfont-ttf-perl-1.04/buildutils/convert_tags.pl 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/buildutils/convert_tags.pl 2014-12-10 01:40:25.000000000 +0000 @@ -84,11 +84,11 @@ =head1 AUTHOR -Bob Hallissy L +Bob Hallissy L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This script is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/Changes libfont-ttf-perl-1.05/Changes --- libfont-ttf-perl-1.04/Changes 2014-01-13 01:47:56.000000000 +0000 +++ libfont-ttf-perl-1.05/Changes 2015-01-26 09:20:04.000000000 +0000 @@ -1,3 +1,16 @@ +1.05 (r1069, 2015-01-26) + +* Add support for GSUB Type 8 Reverse-chaining substitution +* OpenType script/lang/feature tags now based on ISO/IEC 14496-22 +* Remove deprecated GDL_old.pm +* +* Bug fixes: +* Fix rt.cpan.org 92150, 93597 +* Force 0xFFFF sentry to be in a segment by itself in format 4 cmap subtables +* Less aggressive cmap format 4 optimization to eliminate USV holes +* Fix various issues reading WOFF-compressed font tables +* Fix reading DSIG + 1.04 (r994, 2014-01-09) * Bug fixes: diff -Nru libfont-ttf-perl-1.04/debian/changelog libfont-ttf-perl-1.05/debian/changelog --- libfont-ttf-perl-1.04/debian/changelog 2014-01-14 19:10:44.000000000 +0000 +++ libfont-ttf-perl-1.05/debian/changelog 2015-09-02 21:54:57.000000000 +0000 @@ -1,3 +1,25 @@ +libfont-ttf-perl (1.05-1) unstable; urgency=medium + + * Team upload. + + [ gregor herrmann ] + * Strip trailing slash from metacpan URLs. + + [ Salvatore Bonaccorso ] + * Update Vcs-Browser URL to cgit web frontend + + [ Lucas Kanashiro ] + * Add debian/upstream/metadata + * Import upstream version 1.05 + * Remove pod.patch (already applied by upstream) + * Bump debhelper compatibility level to 9 + * Declare compliance with Debian policy 3.9.6 + * Add autopkgtest-pkg-perl + * Create patch fixing spelling errors in manpage + * Update year of upstream copyright + + -- Lucas Kanashiro Tue, 01 Sep 2015 18:54:47 -0300 + libfont-ttf-perl (1.04-1) unstable; urgency=medium * New upstream release. diff -Nru libfont-ttf-perl-1.04/debian/compat libfont-ttf-perl-1.05/debian/compat --- libfont-ttf-perl-1.04/debian/compat 2014-01-14 19:10:44.000000000 +0000 +++ libfont-ttf-perl-1.05/debian/compat 2015-09-02 21:54:57.000000000 +0000 @@ -1 +1 @@ -8 +9 diff -Nru libfont-ttf-perl-1.04/debian/control libfont-ttf-perl-1.05/debian/control --- libfont-ttf-perl-1.04/debian/control 2014-01-14 19:10:44.000000000 +0000 +++ libfont-ttf-perl-1.05/debian/control 2015-09-02 21:54:57.000000000 +0000 @@ -6,12 +6,13 @@ Damyan Ivanov , gregor herrmann , Xavier Guimard -Build-Depends: debhelper (>= 8) +Build-Depends: debhelper (>= 9) Build-Depends-Indep: libio-string-perl -Standards-Version: 3.9.5 -Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-perl/packages/libfont-ttf-perl.git +Standards-Version: 3.9.6 +Vcs-Browser: https://anonscm.debian.org/cgit/pkg-perl/packages/libfont-ttf-perl.git Vcs-Git: git://anonscm.debian.org/pkg-perl/packages/libfont-ttf-perl.git -Homepage: https://metacpan.org/release/Font-TTF/ +Homepage: https://metacpan.org/release/Font-TTF +Testsuite: autopkgtest-pkg-perl Package: libfont-ttf-perl Architecture: all diff -Nru libfont-ttf-perl-1.04/debian/copyright libfont-ttf-perl-1.05/debian/copyright --- libfont-ttf-perl-1.04/debian/copyright 2014-01-14 19:10:44.000000000 +0000 +++ libfont-ttf-perl-1.05/debian/copyright 2015-09-02 21:54:57.000000000 +0000 @@ -1,10 +1,10 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Font-TTF -Source: https://metacpan.org/release/Font-TTF/ +Source: https://metacpan.org/release/Font-TTF Upstream-Contact: martin_hosken@sil.org Files: * -Copyright: 1998-2013, SIL International +Copyright: 1998-2014, SIL International License: Artistic-2.0 Files: t/testfont.ttf t/testfont.woff @@ -111,6 +111,7 @@ 2007, Martín Ferrari 2011, Ansgar Burchardt 2012-2013, Xavier Guimard + 2015, Lucas Kanashiro License: Artistic-2.0 Comment: It is assumed all contributors wanted to use a packaging license compatible with upstream. diff -Nru libfont-ttf-perl-1.04/debian/patches/fix-spelling-error-in-manpage.patch libfont-ttf-perl-1.05/debian/patches/fix-spelling-error-in-manpage.patch --- libfont-ttf-perl-1.04/debian/patches/fix-spelling-error-in-manpage.patch 1970-01-01 00:00:00.000000000 +0000 +++ libfont-ttf-perl-1.05/debian/patches/fix-spelling-error-in-manpage.patch 2015-09-02 21:54:57.000000000 +0000 @@ -0,0 +1,20 @@ +Description: Fix spelling errors in manpage +Author: Lucas Kanashiro +Last-Update: 2015-09-01 +Forwarded: https://rt.cpan.org/Ticket/Display.html?id=106816 +Bug: https://rt.cpan.org/Ticket/Display.html?id=106816 + +--- a/lib/Font/TTF/Glyph.pm ++++ b/lib/Font/TTF/Glyph.pm +@@ -842,9 +842,9 @@ Returns an array of all the glyph ids th + is all the compounds and their references and so on. If this glyph is not a + compound, then returns an empty array. + +-Please note the warning about bad fonts that reference nonexistant glyphs ++Please note the warning about bad fonts that reference nonexistent glyphs + under INSTANCE VARIABLES above. This function will not attempt to +-filter out nonexistant glyph numbers. ++filter out nonexistent glyph numbers. + + =cut + diff -Nru libfont-ttf-perl-1.04/debian/patches/pod.patch libfont-ttf-perl-1.05/debian/patches/pod.patch --- libfont-ttf-perl-1.04/debian/patches/pod.patch 2014-01-14 19:10:44.000000000 +0000 +++ libfont-ttf-perl-1.05/debian/patches/pod.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -Description: fix POD -Origin: vendor -Bug: https://rt.cpan.org/Ticket/Display.html?id=92150 -Forwarded: https://rt.cpan.org/Ticket/Display.html?id=92150 -Author: gregor herrmann -Last-Update: 2014-01-14 - ---- a/lib/Font/TTF/Glat.pm -+++ b/lib/Font/TTF/Glat.pm -@@ -1,6 +1,6 @@ - package Font::TTF::Glat; - --=head1 TITLE -+=head1 NAME - - Font::TTF::Glat - Hold glyph attributes - diff -Nru libfont-ttf-perl-1.04/debian/patches/series libfont-ttf-perl-1.05/debian/patches/series --- libfont-ttf-perl-1.04/debian/patches/series 2014-01-14 19:10:44.000000000 +0000 +++ libfont-ttf-perl-1.05/debian/patches/series 2015-09-02 21:54:57.000000000 +0000 @@ -1 +1 @@ -pod.patch +fix-spelling-error-in-manpage.patch diff -Nru libfont-ttf-perl-1.04/debian/upstream/metadata libfont-ttf-perl-1.05/debian/upstream/metadata --- libfont-ttf-perl-1.04/debian/upstream/metadata 1970-01-01 00:00:00.000000000 +0000 +++ libfont-ttf-perl-1.05/debian/upstream/metadata 2015-09-02 21:54:57.000000000 +0000 @@ -0,0 +1,4 @@ +--- +Archive: CPAN +Contact: martin_hosken@sil.org +Name: Font-TTF diff -Nru libfont-ttf-perl-1.04/debian/watch libfont-ttf-perl-1.05/debian/watch --- libfont-ttf-perl-1.04/debian/watch 2014-01-14 19:10:44.000000000 +0000 +++ libfont-ttf-perl-1.05/debian/watch 2015-09-02 21:54:57.000000000 +0000 @@ -1,2 +1,2 @@ version=3 -https://metacpan.org/release/Font-TTF/ .*/Font-TTF-v?(\d[\d.]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip) +https://metacpan.org/release/Font-TTF .*/Font-TTF-v?(\d[\d.]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip) diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/AATKern.pm libfont-ttf-perl-1.05/lib/Font/TTF/AATKern.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/AATKern.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/AATKern.pm 2014-12-10 01:40:25.000000000 +0000 @@ -133,12 +133,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/AATutils.pm libfont-ttf-perl-1.05/lib/Font/TTF/AATutils.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/AATutils.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/AATutils.pm 2014-12-10 01:40:25.000000000 +0000 @@ -696,12 +696,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Anchor.pm libfont-ttf-perl-1.05/lib/Font/TTF/Anchor.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Anchor.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Anchor.pm 2014-12-10 01:40:25.000000000 +0000 @@ -209,12 +209,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Bsln.pm libfont-ttf-perl-1.05/lib/Font/TTF/Bsln.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Bsln.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Bsln.pm 2014-12-10 01:40:25.000000000 +0000 @@ -160,12 +160,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Cmap.pm libfont-ttf-perl-1.05/lib/Font/TTF/Cmap.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Cmap.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Cmap.pm 2014-12-10 01:40:25.000000000 +0000 @@ -28,9 +28,7 @@ An array of subtables ([0..Num-1]) -=back - -Each subtables also has its own instance variables which are, again, not +Each subtable also has its own instance variables which are, again, not preceded by a space. =over 4 @@ -57,6 +55,21 @@ =back +=back + +The following cmap options are controlled by instance variables that start with a space: + +=over 4 + +=item allowholes + +By default, when generating format 4 cmap subtables character codes that point to glyph zero +(normally called .notdef) are not included in the subtable. In some cases including some of these +character codes can result in a smaller format 4 subtable. To enable this behavior, set allowholes +to non-zero. + +=back + =head1 METHODS =cut @@ -78,7 +91,7 @@ sub read { - my ($self) = @_; + my ($self, $keepzeros) = @_; $self->SUPER::read or return $self; my ($dat, $i, $j, $k, $id, @ids, $s); @@ -182,7 +195,7 @@ { $id = unpack("n", substr($dat, ($j << 1) + $num * 6 + 2 + ($k - $start) * 2 + $range, 2)) + $delta; } $id -= 65536 if $id >= 65536; - $s->{'val'}{$k} = $id if ($id); + $s->{'val'}{$k} = $id if ($id || $keepzeros); } } } elsif ($form == 8 || $form == 12 || $form == 13) @@ -416,7 +429,14 @@ { my (@starts, @ends, @deltas, @range); - push(@keys, 0xFFFF) unless ($keys[-1] == 0xFFFF); + # There appears to be a bug in Windows that requires the final 0xFFFF (sentry) + # to be in a segment by itself -- otherwise Windows 7 and 8 (at least) won't install + # or preview the font, complaining that it doesn't appear to be a valid font. + # Therefore we can't just add 0XFFFF to the USV list as we used to do: + # push(@keys, 0xFFFF) unless ($keys[-1] == 0xFFFF); + # Instead, for now *remove* 0xFFFF from the USV list, and add a segement + # for it after all the other segments are computed. + pop @keys if $keys[-1] == 0xFFFF; # Step 1: divide into maximal length idDelta runs @@ -444,7 +464,8 @@ next if $ends[$start] - $starts[$start] > 7; # if count > 8, we always treat this as a run unto itself for ($end = $start+1; $end <= $#starts; $end++) { - last if $starts[$end] - $ends[$end-1] > 4 || $ends[$end] - $starts[$end] > 7; # gap > 4 or count > 8 so $end is beyond end of macro-range + last if $starts[$end] - $ends[$end-1] > ($self->{' allowholes'} ? 5 : 1) + || $ends[$end] - $starts[$end] > 7; # gap > 4 or count > 8 so $end is beyond end of macro-range } $end--; #Ending index of this macro-range @@ -473,6 +494,12 @@ # Finished with this macro-range $start = $end; } + + # Ok, add the final segment containing the sentry value + push(@keys, 0xFFFF); + push @starts, 0xFFFF; + push @ends, 0xFFFF; + push @range, 0; # What is left is a collection of segments that will represent the cmap in mimimum-sized format 4 subtable @@ -703,12 +730,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Coverage.pm libfont-ttf-perl-1.05/lib/Font/TTF/Coverage.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Coverage.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Coverage.pm 2014-12-10 01:40:25.000000000 +0000 @@ -335,12 +335,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Cvt_.pm libfont-ttf-perl-1.05/lib/Font/TTF/Cvt_.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Cvt_.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Cvt_.pm 2014-12-10 01:40:25.000000000 +0000 @@ -74,12 +74,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Delta.pm libfont-ttf-perl-1.05/lib/Font/TTF/Delta.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Delta.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Delta.pm 2014-12-10 01:40:25.000000000 +0000 @@ -170,12 +170,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/DSIG.pm libfont-ttf-perl-1.05/lib/Font/TTF/DSIG.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/DSIG.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/DSIG.pm 2014-12-10 01:40:25.000000000 +0000 @@ -23,17 +23,17 @@ $self->SUPER::read || return $self; $self->{' INFILE'}->read($dat, 8); - ($self->{'version'}, $self->{'numtables'}, $self->{'perms'}) = unpack("LNN", $dat); + ($self->{'version'}, $self->{'numtables'}, $self->{'perms'}) = unpack("Nnn", $dat); for ($i = 0; $i < $self->{'numtables'}; $i++) { $self->{' INFILE'}->read($dat, 12); - push (@records, [unpack("L3", $dat)]); + push (@records, [unpack("N3", $dat)]); } foreach $r (@records) { if ($r->[0] == 1) { - $self->{' INFILE'}->seek($self->{' OFFSET'} + $r->[2]); + $self->{' INFILE'}->seek($self->{' OFFSET'} + $r->[2],0); $self->{' INFILE'}->read($dat, $r->[1]); push @{$self->{'records'}}, substr($dat, 8); } @@ -41,6 +41,11 @@ $self; } +sub isempty +{ + my ($self) = @_; + return $self->read->{'numtables'} == 0; +} sub out { @@ -48,16 +53,16 @@ my ($i, $curlen); return $self->SUPER::out($fh) unless $self->{' read'}; # this is never true - $fh->print(pack("LNN", $self->{'version'}, $self->{'numtables'}, $self->{'perms'})); + $fh->print(pack("Nnn", $self->{'version'}, $self->{'numtables'}, $self->{'perms'})); $curlen = 0; for ($i = 0; $i < $self->{'numtables'}; $i++) { - $fh->print(pack("L3", 1, length($self->{'records'}[$i]) + 8, $curlen + $self->{'numtables'} * 12 + 8)); + $fh->print(pack("N3", 1, length($self->{'records'}[$i]) + 8, $curlen + $self->{'numtables'} * 12 + 8)); $curlen += length($self->{'records'}[$i]) + 8; } for ($i = 0; $i < $self->{'numtables'}; $i++) { - $fh->print(pack("NNL", 0, 0, length($self->{'records'}[$i]))); + $fh->print(pack("nnN", 0, 0, length($self->{'records'}[$i]))); $fh->print($self->{'records'}[$i]); } $self; @@ -67,12 +72,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Dumper.pm libfont-ttf-perl-1.05/lib/Font/TTF/Dumper.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Dumper.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Dumper.pm 2014-12-10 01:40:25.000000000 +0000 @@ -75,12 +75,12 @@ =head1 AUTHOR -Bob Hallissy L +Bob Hallissy L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/EBDT.pm libfont-ttf-perl-1.05/lib/Font/TTF/EBDT.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/EBDT.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/EBDT.pm 2014-12-10 01:40:25.000000000 +0000 @@ -291,7 +291,7 @@ =head1 AUTHOR -NIIBE Yutaka L. +NIIBE Yutaka L. This was written at the CodeFest Akihabara 2006 hosted by FSIJ. ?? patch sent with licensing requirements or not? @@ -299,7 +299,7 @@ =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/EBLC.pm libfont-ttf-perl-1.05/lib/Font/TTF/EBLC.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/EBLC.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/EBLC.pm 2014-12-10 01:40:25.000000000 +0000 @@ -241,14 +241,14 @@ =head1 AUTHOR -NIIBE Yutaka L. +NIIBE Yutaka L. This was written at the CodeFest Akihabara 2006 hosted by FSIJ. Patch sent with licensing requirements?? =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Fdsc.pm libfont-ttf-perl-1.05/lib/Font/TTF/Fdsc.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Fdsc.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Fdsc.pm 2014-12-10 01:40:25.000000000 +0000 @@ -122,12 +122,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Feat.pm libfont-ttf-perl-1.05/lib/Font/TTF/Feat.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Feat.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Feat.pm 2014-12-10 01:40:25.000000000 +0000 @@ -198,12 +198,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Features/Cvar.pm libfont-ttf-perl-1.05/lib/Font/TTF/Features/Cvar.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Features/Cvar.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Features/Cvar.pm 2014-12-10 01:40:25.000000000 +0000 @@ -145,20 +145,21 @@ bless $self, $class; } +sub out_xml +{ +} + 1; =head1 AUTHOR -David Raymond L. - +David Raymond L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. - - =cut diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Features/Size.pm libfont-ttf-perl-1.05/lib/Font/TTF/Features/Size.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Features/Size.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Features/Size.pm 2014-12-10 01:40:25.000000000 +0000 @@ -110,21 +110,22 @@ bless $self, $class; } +sub out_xml +{ +} + 1; =head1 AUTHOR -David Raymond David_Raymond@sil.org. - +David Raymond L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. - - =cut diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Features/Sset.pm libfont-ttf-perl-1.05/lib/Font/TTF/Features/Sset.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Features/Sset.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Features/Sset.pm 2014-12-10 01:40:25.000000000 +0000 @@ -88,20 +88,21 @@ bless $self, $class; } +sub out_xml +{ +} + 1; =head1 AUTHOR -David Raymond L. - +David Raymond L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. - - =cut diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Fmtx.pm libfont-ttf-perl-1.05/lib/Font/TTF/Fmtx.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Fmtx.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Fmtx.pm 2014-12-10 01:40:25.000000000 +0000 @@ -102,12 +102,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Font.pm libfont-ttf-perl-1.05/lib/Font/TTF/Font.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Font.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Font.pm 2014-12-10 01:40:25.000000000 +0000 @@ -791,6 +791,7 @@ May optionally take a list of table names in which case func is called for each of them in the given order. + =cut sub tables_do @@ -873,10 +874,14 @@ Only type 0 & type 2 tables are supported (type 1 & type 3 yet to come). -=item TTC +=item TTC and WOFF The current Font::TTF::Font::out method does not support the writing of TrueType -Collections. +Collections or WOFF files. + +=item DSIG + +Haven't figured out how to correctly calculate and output digital signature (DSIG) table =back @@ -906,12 +911,12 @@ =head1 AUTHOR -Martin Hosken L +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Fpgm.pm libfont-ttf-perl-1.05/lib/Font/TTF/Fpgm.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Fpgm.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Fpgm.pm 2014-12-10 01:40:25.000000000 +0000 @@ -80,12 +80,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/GDEF.pm libfont-ttf-perl-1.05/lib/Font/TTF/GDEF.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/GDEF.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/GDEF.pm 2014-12-10 01:40:25.000000000 +0000 @@ -99,10 +99,10 @@ use vars qw(@ISA $new_gdef); @ISA = qw(Font::TTF::Table); -$new_gdef = 1; # Prior to 2012-07, this config variable did more than it does today. - # Currently all it does is force the GDEF to include a field in the - # header for the MARKS class definition. That is, it makes sure the - # font is compatible with at least the OT 1.2 specification. +$new_gdef = 1; # Prior to 2012-07, this config variable did more than it does today. + # Currently all it does is force the GDEF to include a field in the + # header for the MARKS class definition. That is, it makes sure the + # font is compatible with at least the OT 1.2 specification. =head2 $t->read @@ -135,37 +135,37 @@ if ($self->{'Version'} > 0x00010000) { - # Ok, header guaranteed to have both MarAttachClassDef MarkGlyphSetsDef + # Ok, header guaranteed to have both MarAttachClassDef MarkGlyphSetsDef $fh->read($dat, 4); ($macoff, $mgsoff) = TTF_Unpack('S2', $dat); } else { - # What I've seen in other code (examples: - # http://skia.googlecode.com/svn/trunk/third_party/harfbuzz/src/harfbuzz-gdef.c and - # http://doxygen.reactos.org/d0/d55/otvalid_8h_a0487daffceceb98ba425bbf2806fbaff.html - # ) is to read GPOS and GDEF and see if any lookups have a - # MarkAttachType in the upper byte of their flag word and if so then assume that the - # MarkAttachClassDef field is in the header. While this is probably the most - # reliable way to do it, it would require us to read GSUB and GPOS. - # Prior to 2012-07 what we did is depend on our $new_gdef class variable to tell us - # whether to assume a MarkAttachClassDef. - # What we do now is see if the header actually has room for the MarkAttachClassDef field. - - my $minOffset = $self->{' LENGTH'}; - foreach ($goff, $aoff, $loff) - { - $minOffset = $_ if $_ > 0 && $_ < $minOffset; - } - if ($minOffset >= 12) - { - # There is room for the field, so read it: - $fh->read($dat, 2); - ($macoff) = TTF_Unpack('S', $dat); - # Sanity check: - $macoff = 0 if $macoff >= $self->{' LENGTH'}; - } - } + # What I've seen in other code (examples: + # http://skia.googlecode.com/svn/trunk/third_party/harfbuzz/src/harfbuzz-gdef.c and + # http://doxygen.reactos.org/d0/d55/otvalid_8h_a0487daffceceb98ba425bbf2806fbaff.html + # ) is to read GPOS and GDEF and see if any lookups have a + # MarkAttachType in the upper byte of their flag word and if so then assume that the + # MarkAttachClassDef field is in the header. While this is probably the most + # reliable way to do it, it would require us to read GSUB and GPOS. + # Prior to 2012-07 what we did is depend on our $new_gdef class variable to tell us + # whether to assume a MarkAttachClassDef. + # What we do now is see if the header actually has room for the MarkAttachClassDef field. + + my $minOffset = $self->{' LENGTH'}; + foreach ($goff, $aoff, $loff) + { + $minOffset = $_ if $_ > 0 && $_ < $minOffset; + } + if ($minOffset >= 12) + { + # There is room for the field, so read it: + $fh->read($dat, 2); + ($macoff) = TTF_Unpack('S', $dat); + # Sanity check: + $macoff = 0 if $macoff >= $self->{' LENGTH'}; + } + } if ($goff > 0) { @@ -253,22 +253,22 @@ if ($mgsoff > 0) { - my ($fmt, $count, $off); - $fh->seek($mgsoff + $boff, 0); - $fh->read($dat, 4); - ($fmt, $count) = TTF_Unpack('SS', $dat); - # Sanity check opportunity: Could verify $fmt == 1, but I don't. - $self->{'MARKSETS'} = []; - $fh->read($dat, $count << 2); # NB: These offets are ULONGs! - foreach $off (TTF_Unpack('L*', $dat)) - { + my ($fmt, $count, $off); + $fh->seek($mgsoff + $boff, 0); + $fh->read($dat, 4); + ($fmt, $count) = TTF_Unpack('SS', $dat); + # Sanity check opportunity: Could verify $fmt == 1, but I don't. + $self->{'MARKSETS'} = []; + $fh->read($dat, $count << 2); # NB: These offets are ULONGs! + foreach $off (TTF_Unpack('L*', $dat)) + { unless (defined $self->{' CACHE'}{$off + $mgsoff}) { $fh->seek($off + $mgsoff + $boff, 0); $self->{' CACHE'}{$off + $mgsoff} = Font::TTF::Coverage->new(1)->read($fh); } push @{$self->{'MARKSETS'}}, $self->{' CACHE'}{$off + $mgsoff}; - } + } } $self; @@ -291,17 +291,17 @@ $loc = $fh->tell(); if (defined $self->{'MARKSETS'} && @{$self->{'MARKSETS'}} > 0) { - $self->{'Version'} = 0x00010002; - $fh->print(TTF_Pack('LSSSSS', $self->{'Version'}, 0, 0, 0, 0, 0)); + $self->{'Version'} = 0x00010002; + $fh->print(TTF_Pack('LSSSSS', $self->{'Version'}, 0, 0, 0, 0, 0)); } else { - $self->{'Version'} = 0x00010000; - if ($new_gdef || defined $self->{'MARKS'}) - { $fh->print(TTF_Pack('LSSSS', $self->{'Version'}, 0, 0, 0, 0)); } - else - { $fh->print(TTF_Pack('LSSS', $self->{'Version'}, 0, 0, 0)); } - } + $self->{'Version'} = 0x00010000; + if ($new_gdef || defined $self->{'MARKS'}) + { $fh->print(TTF_Pack('LSSSS', $self->{'Version'}, 0, 0, 0, 0)); } + else + { $fh->print(TTF_Pack('LSSS', $self->{'Version'}, 0, 0, 0)); } + } if (defined $self->{'GLYPH'}) { @@ -372,15 +372,15 @@ { my (@reftables, $ctables, $c, $out); - $ctables = {}; - $mgsoff = $fh->tell() - $loc; - $out = TTF_Pack('SS', 1, $#{$self->{'MARKSETS'}}+1); - foreach $c (@{$self->{'MARKSETS'}}) - { - $out .= pack('N', Font::TTF::Ttopen::ref_cache($c, $ctables, length($out), 'N')); - } - push (@reftables, [$ctables, 0]); - Font::TTF::Ttopen::out_final($fh, $out, \@reftables); + $ctables = {}; + $mgsoff = $fh->tell() - $loc; + $out = TTF_Pack('SS', 1, $#{$self->{'MARKSETS'}}+1); + foreach $c (@{$self->{'MARKSETS'}}) + { + $out .= pack('N', Font::TTF::Ttopen::ref_cache($c, $ctables, length($out), 'N')); + } + push (@reftables, [$ctables, 0]); + Font::TTF::Ttopen::out_final($fh, $out, \@reftables); } $loc1 = $fh->tell(); @@ -423,50 +423,50 @@ unless ($Font::TTF::Coverage::dontsort) { - if (defined $self->{'ATTACH'} and defined $self->{'ATTACH'}{'COVERAGE'} and !$self->{'ATTACH'}{'COVERAGE'}{'dontsort'} ) - { - my @map = $self->{'ATTACH'}{'COVERAGE'}->sort(); - if (defined $self->{'ATTACH'}{'POINTS'}) - { - # And also a POINTS array which now needs to be re-sorted + if (defined $self->{'ATTACH'} and defined $self->{'ATTACH'}{'COVERAGE'} and !$self->{'ATTACH'}{'COVERAGE'}{'dontsort'} ) + { + my @map = $self->{'ATTACH'}{'COVERAGE'}->sort(); + if (defined $self->{'ATTACH'}{'POINTS'}) + { + # And also a POINTS array which now needs to be re-sorted my $newpoints = []; foreach (0 .. $#map) { push @{$newpoints}, $self->{'ATTACH'}{'POINTS'}[$map[$_]]; } $self->{'ATTACH'}{'POINTS'} = $newpoints; } - } - if (defined $self->{'LIG'} and defined $self->{'LIG'}{'COVERAGE'} and !$self->{'LIG'}{'COVERAGE'}{'dontsort'} ) - { - my @map = $self->{'LIG'}{'COVERAGE'}->sort(); - if (defined $self->{'LIG'}{'LIGS'}) - { - # And also a LIGS array which now needs to be re-sorted + } + if (defined $self->{'LIG'} and defined $self->{'LIG'}{'COVERAGE'} and !$self->{'LIG'}{'COVERAGE'}{'dontsort'} ) + { + my @map = $self->{'LIG'}{'COVERAGE'}->sort(); + if (defined $self->{'LIG'}{'LIGS'}) + { + # And also a LIGS array which now needs to be re-sorted my $newligs = []; foreach (0 .. $#map) { push @{$newligs}, $self->{'LIG'}{'LIGS'}[$map[$_]]; } $self->{'LIG'}{'LIGS'} = $newligs; } - } - if (defined $self->{'MARKSETS'}) - { - foreach (@{$self->{'MARKSETS'}}) - {$_->sort();} # Don't care about map - } + } + if (defined $self->{'MARKSETS'}) + { + foreach (@{$self->{'MARKSETS'}}) + {$_->sort();} # Don't care about map + } } $self; } - + 1; =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Glat.pm libfont-ttf-perl-1.05/lib/Font/TTF/Glat.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Glat.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Glat.pm 2014-12-10 01:40:25.000000000 +0000 @@ -1,6 +1,6 @@ package Font::TTF::Glat; -=head1 TITLE +=head1 NAME Font::TTF::Glat - Hold glyph attributes @@ -30,13 +30,14 @@ sub read { my ($self) = @_; + $self->SUPER::read or return $self; + my ($gloc) = $self->{' PARENT'}{'Gloc'}; my ($fh) = $self->{' INFILE'}; my ($numGlyphs); my ($base) = $self->{' OFFSET'}; my ($dat, $i); - $self->SUPER::read or return $self; $gloc->read; $numGlyphs = $gloc->{'numGlyphs'}; $fh->seek($base, 0); @@ -130,12 +131,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Gloc.pm libfont-ttf-perl-1.05/lib/Font/TTF/Gloc.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Gloc.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Gloc.pm 2014-12-10 01:40:25.000000000 +0000 @@ -38,11 +38,12 @@ sub read { my ($self) = @_; + $self->SUPER::read or return $self; + my ($fh) = $self->{' INFILE'}; my ($numGlyphs); my ($dat, $flags); - $self->SUPER::read or return $self; $fh->read($dat, 4); ($self->{'Version'}) = TTF_Unpack("v", $dat); $fh->read($dat, 4); @@ -102,12 +103,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Glyf.pm libfont-ttf-perl-1.05/lib/Font/TTF/Glyf.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Glyf.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Glyf.pm 2014-12-10 01:40:25.000000000 +0000 @@ -163,12 +163,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Glyph.pm libfont-ttf-perl-1.05/lib/Font/TTF/Glyph.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Glyph.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Glyph.pm 2014-12-10 01:40:25.000000000 +0000 @@ -16,13 +16,27 @@ also all capital instance variables for holding working information, mostly from the location table. +=head2 Variables for all glyphs: + The standard attributes each glyph has are: - numberOfContours - xMin - yMin - xMax - yMax +=over 4 + +=item numberOfContours + +For simple glyphs this will be the count of contours. For compound glyphs this will be -1. + +=item xMin + +=item yMin + +=item xMax + +=item yMax + +These identify the bounding box of the glyph. + +=back There are also other, derived, instance variables for each glyph which are read when the whole glyph is read (via C): @@ -40,11 +54,7 @@ =back -In addition there are other attribute like instance variables for simple glyphs: - -=over 4 - -For each contour there is: +=head2 Variables for simple glyphs (numberOfContours E= 0): =over 4 @@ -54,9 +64,13 @@ C contours in a glyph. The number of points in a glyph is equal to the highest endpoint of a contour. +=item numPoints + +This is a generated value which contains the total number of points for this simple glyph. + =back -There are also a number of arrays indexed by point number +There are also a number of arrays indexed by point number: =over 4 @@ -77,9 +91,7 @@ =back -=back - -For composite glyphs there are other variables +=head2 Variables for compound glyphs (numberOfContours == -1): =over 4 @@ -128,7 +140,7 @@ =back -The private instance variables are: +=head2 Private instance variables: =over 4 @@ -545,26 +557,26 @@ } if ($i > 0 && $rflags[-1] == $flag && $repeat < 255) { - $repeat++; + $repeat++; } else { - if ($repeat) - { - $rflags[-1] |= 8; - push @rflags, $repeat; - } - push @rflags, $flag; - $repeat = 0; + if ($repeat) + { + $rflags[-1] |= 8; + push @rflags, $repeat; + } + push @rflags, $flag; + $repeat = 0; } $self->{'flags'}[$i] = $flag; } - # Add final repeat if needed, then pack up the flag bytes: - if ($repeat) - { - $rflags[-1] |= 8; - push @rflags, $repeat; - } - $self->{' DAT'} .= pack("C*", @rflags); + # Add final repeat if needed, then pack up the flag bytes: + if ($repeat) + { + $rflags[-1] |= 8; + push @rflags, $repeat; + } + $self->{' DAT'} .= pack("C*", @rflags); for ($i = 0; $i < $self->{'numPoints'}; $i++) { $flag = $self->{'flags'}[$i]; @@ -874,12 +886,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/GPOS.pm libfont-ttf-perl-1.05/lib/Font/TTF/GPOS.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/GPOS.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/GPOS.pm 2014-12-10 01:40:25.000000000 +0000 @@ -693,12 +693,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/GrFeat.pm libfont-ttf-perl-1.05/lib/Font/TTF/GrFeat.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/GrFeat.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/GrFeat.pm 2014-12-03 01:57:44.000000000 +0000 @@ -63,54 +63,54 @@ sub read { - my ($self) = @_; - my ($featureCount, $features); + my ($self) = @_; + my ($featureCount, $features); - return $self if $self->{' read'}; - $self->SUPER::read_dat or return $self; + return $self if $self->{' read'}; + $self->SUPER::read_dat or return $self; - ($self->{'version'}, $featureCount) = TTF_Unpack("vS", $self->{' dat'}); + ($self->{'version'}, $featureCount) = TTF_Unpack("vS", $self->{' dat'}); - $features = []; - foreach (1 .. $featureCount) { - my ($feature, $nSettings, $settingTable, $featureFlags, $nameIndex, $reserved); - if ($self->{'version'} == 1) - { - ($feature, $nSettings, $settingTable, $featureFlags, $nameIndex) - = TTF_Unpack("SSLSS", substr($self->{' dat'}, $_ * 12, 12)); - #The version 1 Feat table ends with a feature (id 1) named NoName - #with zero settings but with an offset to the last entry in the setting - #array. This last setting has id 0 and an invalid name id. This last - #feature is changed to have one setting. - if ($_ == $featureCount && $nSettings == 0) {$nSettings = 1;} - } - else #version == 2 - {($feature, $nSettings, $reserved, $settingTable, $featureFlags, $nameIndex) - = TTF_Unpack("LSSLSS", substr($self->{' dat'}, 12 + ($_ - 1) * 16, 16))}; - $feature = - { - 'feature' => $feature, - 'name' => $nameIndex, - }; - - #interpret the featureFlags & store settings - $feature->{'exclusive'} = (($featureFlags & 0x8000) != 0); - - my @settings = TTF_Unpack("S*", substr($self->{' dat'}, $settingTable, $nSettings * 4)); - if ($featureFlags & 0x4000) - {$feature->{'default'} = $featureFlags & 0x00FF;} - else - {$feature->{'default'} = $settings[0];} - $feature->{'settings'} = {@settings}; - - push(@$features, $feature); - } - - $self->{'features'} = $features; - - delete $self->{' dat'}; # no longer needed, and may become obsolete - $self->{' read'} = 1; - $self; + $features = []; + foreach (1 .. $featureCount) { + my ($feature, $nSettings, $settingTable, $featureFlags, $nameIndex, $reserved); + if ($self->{'version'} == 1) + { + ($feature, $nSettings, $settingTable, $featureFlags, $nameIndex) + = TTF_Unpack("SSLSS", substr($self->{' dat'}, $_ * 12, 12)); + #The version 1 Feat table ends with a feature (id 1) named NoName + #with zero settings but with an offset to the last entry in the setting + #array. This last setting has id 0 and an invalid name id. This last + #feature is changed to have one setting. + if ($_ == $featureCount && $nSettings == 0) {$nSettings = 1;} + } + else #version == 2 + {($feature, $nSettings, $reserved, $settingTable, $featureFlags, $nameIndex) + = TTF_Unpack("LSSLSS", substr($self->{' dat'}, 12 + ($_ - 1) * 16, 16))}; + $feature = + { + 'feature' => $feature, + 'name' => $nameIndex, + }; + + #interpret the featureFlags & store settings + $feature->{'exclusive'} = (($featureFlags & 0x8000) != 0); + + my @settings = TTF_Unpack("S*", substr($self->{' dat'}, $settingTable, $nSettings * 4)); + if ($featureFlags & 0x4000) + {$feature->{'default'} = $featureFlags & 0x00FF;} + else + {$feature->{'default'} = $settings[0];} + $feature->{'settings'} = {@settings}; + + push(@$features, $feature); + } + + $self->{'features'} = $features; + + delete $self->{' dat'}; # no longer needed, and may become obsolete + $self->{' read'} = 1; + $self; } =head2 $t->out($fh) @@ -121,58 +121,58 @@ sub out { - my ($self, $fh) = @_; - my ($features, $numFeatures, $settings, $featureFlags, $featuresData, $settingsData); - - return $self->SUPER::out($fh) unless $self->{' read'}; - - $features = $self->{'features'}; - $numFeatures = @$features; - $featuresData = $settingsData = ''; - - foreach (@$features) { - $settings = $_->{'settings'}; - $featureFlags = ($_->{'exclusive'} ? 0x8000 : 0x0000); - -# output default setting first instead of using the featureFlags (as done below) -# $featureFlags = ($_->{'exclusive'} ? 0x8000 : 0x0000) | -# ($_->{'default'} != 0 ? 0x4000 | ($_->{'default'} & 0x00FF) -# : 0x0000); - if ($self->{'version'} == 1) - { - $featuresData .= TTF_Pack("SSLSS", - $_->{'feature'}, - scalar keys %$settings, - 12 + 12 * $numFeatures + length $settingsData, - $featureFlags, - $_->{'name'}); - } - else #version == 2 - { - $featuresData .= TTF_Pack("LSSLSS", - $_->{'feature'}, - scalar keys %$settings, - 0, - 12 + 16 * $numFeatures + length $settingsData, - $featureFlags, - $_->{'name'}); - } - - #output default setting first - #the settings may not be in their original order - my $defaultSetting = $_->{'default'}; - $settingsData .= TTF_Pack("SS", $defaultSetting, $settings->{$defaultSetting}); - foreach (sort {$a <=> $b} keys %$settings) { - if ($_ == $defaultSetting) {next;} #skip default setting - $settingsData .= TTF_Pack("SS", $_, $settings->{$_}); - } - } - - $fh->print(TTF_Pack("vSSL", $self->{'version'}, $numFeatures, 0, 0)); - $fh->print($featuresData); - $fh->print($settingsData); + my ($self, $fh) = @_; + my ($features, $numFeatures, $settings, $featureFlags, $featuresData, $settingsData); + + return $self->SUPER::out($fh) unless $self->{' read'}; + + $features = $self->{'features'}; + $numFeatures = @$features; + $featuresData = $settingsData = ''; + + foreach (@$features) { + $settings = $_->{'settings'}; + $featureFlags = ($_->{'exclusive'} ? 0x8000 : 0x0000); + +# output default setting first instead of using the featureFlags (as done below) +# $featureFlags = ($_->{'exclusive'} ? 0x8000 : 0x0000) | +# ($_->{'default'} != 0 ? 0x4000 | ($_->{'default'} & 0x00FF) +# : 0x0000); + if ($self->{'version'} == 1) + { + $featuresData .= TTF_Pack("SSLSS", + $_->{'feature'}, + scalar keys %$settings, + 12 + 12 * $numFeatures + length $settingsData, + $featureFlags, + $_->{'name'}); + } + else #version == 2 + { + $featuresData .= TTF_Pack("LSSLSS", + $_->{'feature'}, + scalar keys %$settings, + 0, + 12 + 16 * $numFeatures + length $settingsData, + $featureFlags, + $_->{'name'}); + } + + #output default setting first + #the settings may not be in their original order + my $defaultSetting = $_->{'default'}; + $settingsData .= TTF_Pack("SS", $defaultSetting, $settings->{$defaultSetting}); + foreach (sort {$a <=> $b} keys %$settings) { + if ($_ == $defaultSetting) {next;} #skip default setting + $settingsData .= TTF_Pack("SS", $_, $settings->{$_}); + } + } + + $fh->print(TTF_Pack("vSSL", $self->{'version'}, $numFeatures, 0, 0)); + $fh->print($featuresData); + $fh->print($settingsData); - $self; + $self; } =head2 $t->minsize() @@ -195,52 +195,52 @@ sub print { - my ($self, $fh) = @_; - my ($names, $features, $settings); + my ($self, $fh) = @_; + my ($names, $features, $settings); - $self->read; + $self->read; - $names = $self->{' PARENT'}->{'name'}; - $names->read; + $names = $self->{' PARENT'}->{'name'}; + $names->read; - $fh = 'STDOUT' unless defined $fh; - - $features = $self->{'features'}; - foreach (@$features) { - $fh->printf("Feature %s, %s, default: %d name %d # '%s'\n", - $_->{'feature'} > 0x01000000 ? '"' . $self->num_to_tag($_->{'feature'}) . '"' : $_->{'feature'}, - ($_->{'exclusive'} ? "exclusive" : "additive"), - $_->{'default'}, - $_->{'name'}, - $names->{'strings'}[$_->{'name'}][3][1]{1033}); - $settings = $_->{'settings'}; - foreach (sort { $a <=> $b } keys %$settings) { - $fh->printf("\tSetting %d, name %d # '%s'\n", - $_, $settings->{$_}, $names->{'strings'}[$settings->{$_}][3][1]{1033}); - } - } - - $self; + $fh = 'STDOUT' unless defined $fh; + + $features = $self->{'features'}; + foreach (@$features) { + $fh->printf("Feature %s, %s, default: %d name %d # '%s'\n", + $_->{'feature'} > 0x01000000 ? '"' . $self->num_to_tag($_->{'feature'}) . '"' : $_->{'feature'}, + ($_->{'exclusive'} ? "exclusive" : "additive"), + $_->{'default'}, + $_->{'name'}, + $names->{'strings'}[$_->{'name'}][3][1]{1033}); + $settings = $_->{'settings'}; + foreach (sort { $a <=> $b } keys %$settings) { + $fh->printf("\tSetting %d, name %d # '%s'\n", + $_, $settings->{$_}, $names->{'strings'}[$settings->{$_}][3][1]{1033}); + } + } + + $self; } sub settingName { - my ($self, $feature, $setting) = @_; + my ($self, $feature, $setting) = @_; - $self->read; + $self->read; - my $names = $self->{' PARENT'}->{'name'}; - $names->read; - - my $features = $self->{'features'}; - my ($featureEntry) = grep { $_->{'feature'} == $feature } @$features; - my $featureName = $names->{'strings'}[$featureEntry->{'name'}][3][1]{1033}; - my $settingName = $featureEntry->{'exclusive'} - ? $names->{'strings'}[$featureEntry->{'settings'}->{$setting}][3][1]{1033} - : $names->{'strings'}[$featureEntry->{'settings'}->{$setting & ~1}][3][1]{1033} - . (($setting & 1) == 0 ? " On" : " Off"); + my $names = $self->{' PARENT'}->{'name'}; + $names->read; + + my $features = $self->{'features'}; + my ($featureEntry) = grep { $_->{'feature'} == $feature } @$features; + my $featureName = $names->{'strings'}[$featureEntry->{'name'}][3][1]{1033}; + my $settingName = $featureEntry->{'exclusive'} + ? $names->{'strings'}[$featureEntry->{'settings'}->{$setting}][3][1]{1033} + : $names->{'strings'}[$featureEntry->{'settings'}->{$setting & ~1}][3][1]{1033} + . (($setting & 1) == 0 ? " On" : " Off"); - ($featureName, $settingName); + ($featureName, $settingName); } =head2 $t->tag_to_num ($feat_str) @@ -253,18 +253,18 @@ sub tag_to_num { - my ($self, $feat_tag) = @_; - my $new_feat_num; - - if ($feat_tag > 0) - {$new_feat_num = $feat_tag;} # already a number, so just return it. - else - { - $feat_tag =~ s/[ \000]+$//o; # strip trailing nulls or space - $new_feat_num = unpack('N', pack('a4', $feat_tag)); #adds null padding on right if less than 4 chars - } - - return $new_feat_num; + my ($self, $feat_tag) = @_; + my $new_feat_num; + + if ($feat_tag > 0) + {$new_feat_num = $feat_tag;} # already a number, so just return it. + else + { + $feat_tag =~ s/[ \000]+$//o; # strip trailing nulls or space + $new_feat_num = unpack('N', pack('a4', $feat_tag)); #adds null padding on right if less than 4 chars + } + + return $new_feat_num; } =head2 $t->num_to_tag ($feat_num) @@ -278,18 +278,18 @@ sub num_to_tag { - my ($self, $feat_num) = @_; - my $new_feat_tag; - - if ($feat_num > 0x01000000) - { - $new_feat_tag = unpack('a4', pack('N', $feat_num)); - $new_feat_tag =~ s/[ \000]+$//o; # strip trailing nulls or space - } - else - {$new_feat_tag = $feat_num;} - - return $new_feat_tag; + my ($self, $feat_num) = @_; + my $new_feat_tag; + + if ($feat_num > 0x01000000) + { + $new_feat_tag = unpack('a4', pack('N', $feat_num)); + $new_feat_tag =~ s/[ \000]+$//o; # strip trailing nulls or space + } + else + {$new_feat_tag = $feat_num;} + + return $new_feat_tag; } 1; @@ -308,7 +308,7 @@ =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/GSUB.pm libfont-ttf-perl-1.05/lib/Font/TTF/GSUB.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/GSUB.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/GSUB.pm 2014-12-10 01:40:25.000000000 +0000 @@ -44,6 +44,12 @@ rule) and the ADJUST value should be added to the glyph id to find the replacement glyph id value +=item r + +The action array is a list of replacement glyphs in coverage order. This ACTION_TYPE +is used only for Type 8 Reverse Chaining lookups which, by design, are single glyph +substitution. + =back =item MATCH_TYPE @@ -73,11 +79,11 @@ =head1 CORRESPONDANCE TO LAYOUT TYPES The following table gives the values for ACTION_TYPE and MATCH_TYPE for each -of the 11 different lookup types found in the GSUB table definition I have: +of the 12 different lookup types found in the GSUB table definition: - 1.1 1.2 2 3 4 5.1 5.2 5.3 6.1 6.2 6.3 - ACTION_TYPE o g g a g l l l l l l - MATCH_TYPE g g c o g c o + 1.1 1.2 2 3 4 5.1 5.2 5.3 6.1 6.2 6.3 8 + ACTION_TYPE o g g a g l l l l l l r + MATCH_TYPE g g c o g c o o Hopefully, the rest of the uses of the variables should make sense from this table. @@ -173,6 +179,34 @@ } $lookup->{'ACTION_TYPE'} = 'g'; $lookup->{'MATCH_TYPE'} = 'g'; + } elsif ($type == 8) + { + $t = {}; + unless ($count == 0) + { + @subst = (); + $fh->read($dat, $count << 1); + foreach $s (TTF_Unpack('S*', $dat)) + { push(@subst, $self->read_cover($s, $loc, $lookup, $fh, 1)); } + $t->{'PRE'} = [@subst]; + } + $fh->read($dat, 2); + $count = TTF_Unpack('S', $dat); + unless ($count == 0) + { + @subst = (); + $fh->read($dat, $count << 1); + foreach $s (TTF_Unpack('S*', $dat)) + { push(@subst, $self->read_cover($s, $loc, $lookup, $fh, 1)); } + $t->{'POST'} = [@subst]; + } + $fh->read($dat, 2); + $count = TTF_Unpack('S', $dat); + $fh->read($dat, $count << 1); + $t->{'ACTION'} = [TTF_Unpack('S*', $dat)]; + $lookup->{'RULES'} = [[$t]]; + $lookup->{'ACTION_TYPE'} = 'r'; + $lookup->{'MATCH_TYPE'} = 'o'; } elsif ($type == 5 || $type == 6) { $self->read_context($lookup, $fh, $type, $fmt, $cover, $count, $loc); } $lookup; @@ -229,6 +263,17 @@ substr($out, ($i << 1) + 6, 2) = pack('n', $offc); $offc = length($out); } + } elsif ($type == 8) + { + $out = pack("nn", $fmt, Font::TTF::Ttopen::ref_cache($lookup->{'COVERAGE'}, $ctables, 2 + $base)); + $r = $lookup->{'RULES'}[0][0]; + $out .= pack('n', defined $r->{'PRE'} ? scalar @{$r->{'PRE'}} : 0); + foreach $t (@{$r->{'PRE'}}) + { $out .= pack('n', Font::TTF::Ttopen::ref_cache($t, $ctables, length($out) + $base)); } + $out .= pack('n', defined $r->{'POST'} ? scalar @{$r->{'POST'}} : 0); + foreach $t (@{$r->{'POST'}}) + { $out .= pack('n', Font::TTF::Ttopen::ref_cache($t, $ctables, length($out) + $base)); } + $out .= pack("n*", $#{$r->{'ACTION'}} + 1, @{$r->{'ACTION'}}); } elsif ($type == 4 || $type == 5 || $type == 6) { $out = $self->out_context($lookup, $fh, $type, $fmt, $ctables, $out, $num, $base); } # Font::TTF::Ttopen::out_final($fh, $out, [[$ctables, 0]]); @@ -237,18 +282,13 @@ 1; -=head1 BUGS - -Does not yet support lookup type 8 (Reverse Chaining Contextual Single Substitution) - =head1 AUTHOR -Martin Hosken L - +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Hdmx.pm libfont-ttf-perl-1.05/lib/Font/TTF/Hdmx.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Hdmx.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Hdmx.pm 2014-12-10 01:40:25.000000000 +0000 @@ -155,12 +155,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Head.pm libfont-ttf-perl-1.05/lib/Font/TTF/Head.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Head.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Head.pm 2014-12-10 01:40:25.000000000 +0000 @@ -256,12 +256,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Hhea.pm libfont-ttf-perl-1.05/lib/Font/TTF/Hhea.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Hhea.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Hhea.pm 2014-12-10 01:40:25.000000000 +0000 @@ -165,12 +165,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Hmtx.pm libfont-ttf-perl-1.05/lib/Font/TTF/Hmtx.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Hmtx.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Hmtx.pm 2014-12-10 01:40:25.000000000 +0000 @@ -207,12 +207,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Kern/ClassArray.pm libfont-ttf-perl-1.05/lib/Font/TTF/Kern/ClassArray.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Kern/ClassArray.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Kern/ClassArray.pm 2014-12-10 01:40:25.000000000 +0000 @@ -146,12 +146,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Kern/CompactClassArray.pm libfont-ttf-perl-1.05/lib/Font/TTF/Kern/CompactClassArray.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Kern/CompactClassArray.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Kern/CompactClassArray.pm 2014-12-10 01:40:25.000000000 +0000 @@ -86,12 +86,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Kern/OrderedList.pm libfont-ttf-perl-1.05/lib/Font/TTF/Kern/OrderedList.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Kern/OrderedList.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Kern/OrderedList.pm 2014-12-10 01:40:25.000000000 +0000 @@ -102,12 +102,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Kern/StateTable.pm libfont-ttf-perl-1.05/lib/Font/TTF/Kern/StateTable.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Kern/StateTable.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Kern/StateTable.pm 2014-12-10 01:40:25.000000000 +0000 @@ -136,12 +136,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Kern/Subtable.pm libfont-ttf-perl-1.05/lib/Font/TTF/Kern/Subtable.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Kern/Subtable.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Kern/Subtable.pm 2014-12-10 01:40:25.000000000 +0000 @@ -168,12 +168,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Kern.pm libfont-ttf-perl-1.05/lib/Font/TTF/Kern.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Kern.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Kern.pm 2014-12-10 01:40:25.000000000 +0000 @@ -160,9 +160,9 @@ $t->{'type'} = $cov >> 8; if ($t->{'Version'} == 0) { - # NB: Cambria is an example of a font that plays an unsual trick: The - # kern table is much larger than can be represented by the header $len - # would allow. So we use the number of pairs to figure out how much to read. + # NB: Cambria is an example of a font that plays an unsual trick: The + # kern table is much larger than can be represented by the header $len + # would allow. So we use the number of pairs to figure out how much to read. $fh->read($dat, 8); $t->{'Num'} = unpack("n", $dat); $fh->read($dat, $t->{'Num'} * 6); @@ -348,12 +348,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Loca.pm libfont-ttf-perl-1.05/lib/Font/TTF/Loca.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Loca.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Loca.pm 2014-12-10 01:40:25.000000000 +0000 @@ -71,7 +71,7 @@ { my ($self) = @_; - # Do this before $self->SUPER::read because this can alter the file pointer: + # Do this before $self->SUPER::read because this can alter the file pointer: my ($glyfLoc) = $self->{' PARENT'}{'glyf'}->_read->{' OFFSET'}; # May seek on $fh! $self->SUPER::read or return $self; @@ -180,12 +180,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/LTSH.pm libfont-ttf-perl-1.05/lib/Font/TTF/LTSH.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/LTSH.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/LTSH.pm 2014-12-10 01:40:25.000000000 +0000 @@ -93,12 +93,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Manual.pod libfont-ttf-perl-1.05/lib/Font/TTF/Manual.pod --- libfont-ttf-perl-1.04/lib/Font/TTF/Manual.pod 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Manual.pod 2014-12-10 01:40:25.000000000 +0000 @@ -62,7 +62,7 @@ methods it supports, which are relatively few, but also the instance variables it supports, which are many. Most of the variables directly reflect table attributes as specified in the OpenType specification, available from Microsoft -(L), Adobe and Apple. A list of the names +(L), Adobe and Apple. A list of the names used is also given in each module, but not necessarily with any further description. After all, this code is not a TrueType manual as well! @@ -174,7 +174,6 @@ name-- post-- - There is an important universal dependency which it is up to the user to keep up to date. This is C which is used to iterate over all the glyphs. Note that the glyphs themselves are not held in the C table @@ -206,14 +205,14 @@ =head1 AUTHOR -Martin Hosken L +Martin Hosken L. (see CONTRIBUTORS for other authors). =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Maxp.pm libfont-ttf-perl-1.05/lib/Font/TTF/Maxp.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Maxp.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Maxp.pm 2014-12-10 01:40:25.000000000 +0000 @@ -183,12 +183,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Chain.pm libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Chain.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Chain.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Chain.pm 2014-12-10 01:40:25.000000000 +0000 @@ -189,12 +189,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Contextual.pm libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Contextual.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Contextual.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Contextual.pm 2014-12-10 01:40:25.000000000 +0000 @@ -149,12 +149,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Insertion.pm libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Insertion.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Insertion.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Insertion.pm 2014-12-10 01:40:25.000000000 +0000 @@ -172,12 +172,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Ligature.pm libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Ligature.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Ligature.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Ligature.pm 2014-12-10 01:40:25.000000000 +0000 @@ -239,12 +239,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Noncontextual.pm libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Noncontextual.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Noncontextual.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Noncontextual.pm 2014-12-10 01:40:25.000000000 +0000 @@ -88,12 +88,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Rearrangement.pm libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Rearrangement.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Rearrangement.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Rearrangement.pm 2014-12-10 01:40:25.000000000 +0000 @@ -100,12 +100,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Subtable.pm libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Subtable.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Mort/Subtable.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Mort/Subtable.pm 2014-12-10 01:40:25.000000000 +0000 @@ -193,12 +193,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Mort.pm libfont-ttf-perl-1.05/lib/Font/TTF/Mort.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Mort.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Mort.pm 2014-12-10 01:40:25.000000000 +0000 @@ -113,12 +113,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Name.pm libfont-ttf-perl-1.05/lib/Font/TTF/Name.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Name.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Name.pm 2014-12-10 01:40:25.000000000 +0000 @@ -497,30 +497,30 @@ sub pe_list { - my ($self) = @_; - my (@cover, %ids); + my ($self) = @_; + my (@cover, %ids); - foreach my $nid (0 .. $#{$self->{'strings'}}) - { - if (defined $self->{'strings'}[$nid]) - { - foreach my $pid (0 .. $#{$self->{'strings'}[$nid]}) - { - if (defined $self->{'strings'}[$nid][$pid]) - { - foreach my $eid (0 .. $#{$self->{'strings'}[$nid][$pid]}) - { - if (defined $self->{'strings'}[$nid][$pid][$eid] && !$ids{$pid}{$eid}) - { - $ids{$pid}{$eid} = 1; - push @cover, [$pid, $eid]; - } - } - } - } - } + foreach my $nid (0 .. $#{$self->{'strings'}}) + { + if (defined $self->{'strings'}[$nid]) + { + foreach my $pid (0 .. $#{$self->{'strings'}[$nid]}) + { + if (defined $self->{'strings'}[$nid][$pid]) + { + foreach my $eid (0 .. $#{$self->{'strings'}[$nid][$pid]}) + { + if (defined $self->{'strings'}[$nid][$pid][$eid] && !$ids{$pid}{$eid}) + { + $ids{$pid}{$eid} = 1; + push @cover, [$pid, $eid]; + } + } + } + } + } } - return @cover; + return @cover; } @@ -900,12 +900,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/OldCmap.pm libfont-ttf-perl-1.05/lib/Font/TTF/OldCmap.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/OldCmap.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/OldCmap.pm 2014-12-10 01:40:25.000000000 +0000 @@ -158,7 +158,7 @@ else { $id = unpack("n", substr($dat, ($j << 1) + $num * 6 + 2 + ($k - $start) * 2 + $range, 2)) + $delta; } - $id -= 65536 if $id > 65536; + $id -= 65536 if $id > 65536; push (@ids, $id); } $s->{'val'}->fastadd_segment($start, 0, @ids); @@ -269,7 +269,7 @@ for ($j = 0; $j < $num; $j++) { $delta = $segs->[$j]{'VAL'}[0]; $flat = 1; - for ($k = $k < $segs->[$j]{'LEN'}; $k++) + for ($k = 1; $k < $segs->[$j]{'LEN'}; $k++) { if ($segs->[$j]{'VAL'}[$k] == 0) { $flat = 0; } @@ -353,12 +353,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/OldMort.pm libfont-ttf-perl-1.05/lib/Font/TTF/OldMort.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/OldMort.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/OldMort.pm 2014-12-10 01:40:25.000000000 +0000 @@ -707,12 +707,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/OS_2.pm libfont-ttf-perl-1.05/lib/Font/TTF/OS_2.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/OS_2.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/OS_2.pm 2014-12-10 01:40:25.000000000 +0000 @@ -1020,12 +1020,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/OTTags.pm libfont-ttf-perl-1.05/lib/Font/TTF/OTTags.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/OTTags.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/OTTags.pm 2014-12-10 01:40:25.000000000 +0000 @@ -1,3 +1,5 @@ +use utf8; # NB: This file includes non-ASCII string constants in UTF-8 encoding + package Font::TTF::OTTags; =head1 NAME @@ -12,10 +14,10 @@ $script_tag = $tttags{'SCRIPT'}{'Cypriot Syllabary'}; # returns 'cprt' $lang_name = $ttnames{'LANGUAGE'}{'ALT '}; # returns 'Altai' - # Map iso639 tag to/from OT lang tag + # Map iso639-2 tag to/from OT lang tag @isotags = $iso639{'ALT '}; # returns [ 'atv', 'alt' ] $lang_tag = $iso639{'atv'}; # returns 'ALT ' - + # Read latest tags file to add to built-in definitions readtagsfile ("C:\\Program Files\\Microsoft VOLT\\TAGS.txt"); @@ -37,9 +39,10 @@ =back -Built-in data has been derived from Microsofts tag registry at -L, -updated to draft v1.5 of the OpenType Spec. +Built-in data has been derived from the 2014-07-11 draft of the +3rd edition of ISO/IEC 14496-22 +(Information technology - Coding of audio-visual objects - Part 22: Open Font Format) +which, when finalized and approved, will replace the second edition (ISO/IEC 14496-22:2009). =head1 METHODS @@ -59,19 +62,24 @@ 'SCRIPT' => { "Arabic" => 'arab', "Armenian" => 'armn', + "Avestan" => 'avst', "Balinese" => 'bali', + "Bamum" => 'bamu', + "Batak" => 'batk', "Bengali" => 'beng', "Bengali v.2" => 'bng2', "Bopomofo" => 'bopo', + "Brahmi" => 'brah', "Braille" => 'brai', "Buginese" => 'bugi', "Buhid" => 'buhd', "Byzantine Music" => 'byzm', - "CJK Ideographic" => 'hani', "Canadian Syllabics" => 'cans', "Carian" => 'cari', + "Chakma" => 'cakm', "Cham" => 'cham', "Cherokee" => 'cher', + "CJK Ideographic" => 'hani', "Coptic" => 'copt', "Cypriot Syllabary" => 'cprt', "Cyrillic" => 'cyrl', @@ -79,6 +87,7 @@ "Deseret" => 'dsrt', "Devanagari" => 'deva', "Devanagari v.2" => 'dev2', + "Egyptian hieroglyphs" => 'egyp', "Ethiopic" => 'ethi', "Georgian" => 'geor', "Glagolitic" => 'glag', @@ -93,7 +102,11 @@ "Hanunoo" => 'hano', "Hebrew" => 'hebr', "Hiragana" => 'kana', + "Imperial Aramaic" => 'armi', + "Inscriptional Pahlavi" => 'phli', + "Inscriptional Parthian" => 'prti', "Javanese" => 'java', + "Kaithi" => 'kthi', "Kannada" => 'knda', "Kannada v.2" => 'knd2', "Katakana" => 'kana', @@ -105,30 +118,42 @@ "Lepcha" => 'lepc', "Limbu" => 'limb', "Linear B" => 'linb', + "Lisu (Fraser)" => 'lisu', "Lycian" => 'lyci', "Lydian" => 'lydi', "Malayalam" => 'mlym', "Malayalam v.2" => 'mlm2', + "Mandaic, Mandaean" => 'mand', "Mathematical Alphanumeric Symbols" => 'math', + "Meitei Mayek (Meithei, Meetei)" => 'mtei', + "Meroitic Cursive" => 'merc', + "Meroitic Hieroglyphs" => 'mero', + "Miao" => 'plrd', "Mongolian" => 'mong', "Musical Symbols" => 'musc', "Myanmar" => 'mymr', - "N'Ko" => 'nko ', + "Myanmar v.2" => 'mym2', "New Tai Lue" => 'talu', + "N'Ko" => 'nko ', "Ogham" => 'ogam', "Ol Chiki" => 'olck', "Old Italic" => 'ital', "Old Persian Cuneiform" => 'xpeo', - "Oriya" => 'orya', - "Oriya v.2" => 'ory2', + "Old South Arabian" => 'sarb', + "Old Turkic, Orkhon Runic" => 'orkh', + "Odia (formerly Oriya)" => 'orya', + "Odia (formerly Oriya) v.2" => 'ory2', "Osmanya" => 'osma', "Phags-pa" => 'phag', "Phoenician" => 'phnx', "Rejang" => 'rjng', "Runic" => 'runr', + "Samaritan" => 'samr', "Saurashtra" => 'saur', + "Sharada" => 'shrd', "Shavian" => 'shaw', "Sinhala" => 'sinh', + "Sora Sompeng" => 'sora', "Sumero-Akkadian Cuneiform" => 'xsux', "Sundanese" => 'sund', "Syloti Nagri" => 'sylo', @@ -136,6 +161,9 @@ "Tagalog" => 'tglg', "Tagbanwa" => 'tagb', "Tai Le" => 'tale', + "Tai Tham (Lanna)" => 'lana', + "Tai Viet" => 'tavt', + "Takri" => 'takr', "Tamil" => 'taml', "Tamil v.2" => 'tml2', "Telugu" => 'telu', @@ -153,35 +181,52 @@ "Aari" => 'ARI ', "Abaza" => 'ABA ', "Abkhazian" => 'ABK ', + "Achi" => 'ACR ', + "Acholi" => 'ACH ', "Adyghe" => 'ADY ', "Afar" => 'AFR ', "Afrikaans" => 'AFK ', "Agaw" => 'AGW ', + "Aiton" => 'AIO ', + "Akan" => 'AKA ', "Albanian" => 'SQI ', "Alsatian" => 'ALS ', "Altai" => 'ALT ', "Amharic" => 'AMH ', + "Anglo-Saxon" => 'ANG ', "Arabic" => 'ARA ', - "Arakanese" => 'ARK ', + "Aragonese" => 'ARG ', + "Arakwal" => 'RKW ', + "Armenian East" => 'HYE0', "Armenian" => 'HYE ', + "Aromanian" => 'RUP ', + "Arpitan" => 'FRP ', "Assamese" => 'ASM ', + "Asturian" => 'AST ', "Athapaskan" => 'ATH ', "Avar" => 'AVR ', "Awadhi" => 'AWA ', "Aymara" => 'AYM ', - "Azeri" => 'AZE ', + "Azerbaijani" => 'AZE ', "Badaga" => 'BAD ', "Baghelkhandi" => 'BAG ', + "Bagri" => 'BGQ ', "Balante" => 'BLN ', + "Balinese" => 'BAN ', "Balkar" => 'BAL ', - "Balochi" => 'BLI ', "Balti" => 'BLT ', - "Bambara" => 'BMB ', + "Baluchi" => 'BLI ', + "Bambara (Bamanankan)" => 'BMB ', "Bamileke" => 'BML ', + "Banda" => 'BAD0', + "Bandjalang" => 'BDY ', + "Baoulé" => 'BAU ', "Bashkir" => 'BSH ', "Basque" => 'EUQ ', - "Baule" => 'BAU ', - "Belarussian" => 'BEL ', + "Batak Simalungun" => 'BTS ', + "Batak Toba" => 'BBC ', + "Bavarian" => 'BAR ', + "Belarusian" => 'BEL ', "Bemba" => 'BEM ', "Bench" => 'BCH ', "Bengali" => 'BEN ', @@ -192,50 +237,75 @@ "Bible Cree" => 'BCR ', "Bikol" => 'BIK ', "Bilen" => 'BIL ', + "Bishnupriya Manipuri" => 'BPY ', + "Bislama" => 'BIS ', "Blackfoot" => 'BKF ', + "Bodo" => 'BRX ', "Bosnian" => 'BOS ', + "Bouyei" => 'PCC ', "Brahui" => 'BRH ', "Braj Bhasha" => 'BRI ', "Breton" => 'BRE ', + "Bugis" => 'BUG ', "Bulgarian" => 'BGR ', "Burmese" => 'BRM ', + "Cajun French" => 'FRC ', "Carrier" => 'CRR ', "Catalan" => 'CAT ', "Cebuano" => 'CEB ', + "Central Yupik" => 'ESU ', "Chaha Gurage" => 'CHG ', + "Chamorro" => 'CHA ', "Chattisgarhi" => 'CHH ', "Chechen" => 'CHE ', "Cherokee" => 'CHR ', - "Chichewa" => 'CHI ', + "Cheyenne" => 'CHY ', + "Chichewa (Chewa, Nyanja)" => 'CHI ', + "Chiga" => 'CGG ', "Chin" => 'QIN ', - "Chinese Hong Kong" => 'ZHH ', "Chinese Phonetic" => 'ZHP ', "Chinese Simplified" => 'ZHS ', "Chinese Traditional" => 'ZHT ', + "Chinese, Hong Kong SAR" => 'ZHH ', "Chipewyan" => 'CHP ', + "Chittagonian" => 'CTG ', + "Choctaw" => 'CHO ', "Chukchi" => 'CHK ', "Church Slavonic" => 'CSL ', + "Chuukese" => 'CHK0', "Chuvash" => 'CHU ', "Comorian" => 'CMR ', "Coptic" => 'COP ', + "Cornish" => 'COR ', "Corsican" => 'COS ', "Cree" => 'CRE ', + "Creoles" => 'CPP ', "Crimean Tatar" => 'CRT ', "Croatian" => 'HRV ', "Czech" => 'CSY ', + "Dan" => 'DNJ ', "Dangme" => 'DNG ', "Danish" => 'DAN ', "Dargwa" => 'DAR ', "Dari" => 'DRI ', - "Dhivehi" => 'DIV ', - "Dhivehi (deprecated)" => 'DHV ', + "Dayi" => 'DAX ', + "Dehong Dai" => 'TDD ', + "Dhangu" => 'DHG ', + "Dhuwal" => 'DUJ ', + "Dimli" => 'DIQ ', "Dinka" => 'DNK ', - "Djerma" => 'DJR ', + "Divehi (Dhivehi, Maldivian) (deprecated)" => 'DHV ', + "Divehi (Dhivehi, Maldivian)" => 'DIV ', + "Djambarrpuyngu" => 'DJR0', + "Dogri" => 'DGO ', "Dogri" => 'DGR ', "Dungan" => 'DUN ', + "Dutch (Flemish)" => 'FLE ', "Dutch" => 'NLD ', "Dzongkha" => 'DZN ', "Eastern Cree" => 'ECR ', + "Eastern Maninkakan" => 'EMK ', + "Eastern Pwo Karen" => 'KJP ', "Ebira" => 'EBI ', "Edo" => 'EDO ', "Efik" => 'EFI ', @@ -246,82 +316,108 @@ "Even" => 'EVN ', "Evenki" => 'EVK ', "Ewe" => 'EWE ', + "Fang" => 'FAN0', + "Fanti" => 'FAT ', "Faroese" => 'FOS ', - "Farsi" => 'FAR ', "Fijian" => 'FJI ', "Filipino" => 'PIL ', "Finnish" => 'FIN ', - "Flemish" => 'FLE ', "Fon" => 'FON ', "Forest Nenets" => 'FNE ', - "French" => 'FRA ', "French Antillean" => 'FAN ', + "French" => 'FRA ', "Frisian" => 'FRI ', "Friulian" => 'FRL ', - "Fulani" => 'FUL ', + "Fulah" => 'FUL ', "Futa" => 'FTA ', "Ga" => 'GAD ', - "Gaelic" => 'GAE ', "Gagauz" => 'GAG ', "Galician" => 'GAL ', + "Ganda" => 'LUG ', "Garhwali" => 'GAW ', "Garo" => 'GRO ', "Garshuni" => 'GAR ', "Ge'ez" => 'GEZ ', "Georgian" => 'KAT ', "German" => 'DEU ', + "Gilaki" => 'GLK ', "Gilyak" => 'GIL ', + "Githabul" => 'GIH ', + "Gogo" => 'GOG ', "Gondi" => 'GON ', "Greek" => 'ELL ', "Greenlandic" => 'GRN ', "Guarani" => 'GUA ', "Gujarati" => 'GUJ ', + "Gumatj" => 'GNN ', "Gumuz" => 'GMZ ', - "Haitian" => 'HAI ', + "Gupapuyngu" => 'GUF ', + "Gusii" => 'GUZ ', + "Haitian (Haitian Creole)" => 'HAI ', "Halam" => 'HAL ', "Hammer-Banna" => 'HBN ', "Harari" => 'HRI ', "Harauti" => 'HAR ', + "Haryanvi" => 'BGC ', "Hausa" => 'HAU ', - "Hawaiin" => 'HAW ', + "Hawaiian" => 'HAW ', + "Haya" => 'HAY ', + "Hazaragi" => 'HAZ ', "Hebrew" => 'IWR ', + "Herero" => 'HER ', "High Mari" => 'HMA ', "Hiligaynon" => 'HIL ', "Hindi" => 'HIN ', "Hindko" => 'HND ', + "Hiri Motu" => 'HMO ', + "Hmong Daw" => 'MWW ', + "Hmong" => 'HMN ', "Ho" => 'HO ', "Hungarian" => 'HUN ', + "Iban" => 'IBA ', + "Ibibio" => 'IBB ', "Icelandic" => 'ISL ', + "Ido" => 'IDO ', "Igbo" => 'IBO ', - "Ijo" => 'IJO ', + "Ijo languages" => 'IJO ', "Ilokano" => 'ILO ', "Inari Sami" => 'ISM ', "Indonesian" => 'IND ', "Ingush" => 'ING ', + "Interlingua" => 'INA ', + "Interlingue" => 'ILE ', "Inuktitut" => 'INU ', - "Irish" => 'IRI ', + "Inupiat" => 'IPK ', "Irish Traditional" => 'IRT ', + "Irish" => 'IRI ', "Italian" => 'ITA ', + "Jamaican Creole" => 'JAM ', "Japanese" => 'JAN ', "Javanese" => 'JAV ', - "Judezmo" => 'JUD ', "Jula" => 'JUL ', "Kabardian" => 'KAB ', + "Kabuverdianu (Crioulo)" => 'KEA ', + "Kabyle" => 'KAB0', "Kachchi" => 'KAC ', "Kalenjin" => 'KAL ', "Kalmyk" => 'KLM ', "Kamba" => 'KMB ', + "Kanauji" => 'BJJ ', "Kannada" => 'KAN ', "Kanuri" => 'KNR ', + "Kaqchikel" => 'CAK ', "Karachay" => 'KAR ', "Karaim" => 'KRM ', "Karakalpak" => 'KRK ', "Karelian" => 'KRL ', "Karen" => 'KRN ', "Kashmiri" => 'KSH ', + "Kashubian" => 'CSB ', "Kazakh" => 'KAZ ', "Kebena" => 'KEB ', + "Kekchi" => 'KEK ', "Khakass" => 'KHA ', + "Khamti Shan" => 'KHT ', "Khanty-Kazim" => 'KHK ', "Khanty-Shurishkar" => 'KHS ', "Khanty-Vakhi" => 'KHV ', @@ -330,23 +426,33 @@ "Khowar" => 'KHW ', "Khutsuri Georgian" => 'KGE ', "Kikongo" => 'KON ', - "Kikuyu" => 'KIK ', + "Kikuyu (Gikuyu)" => 'KIK ', "Kildin Sami" => 'KSM ', - "Kirghiz" => 'KIR ', + "Kinyarwanda" => 'RUA ', + "Kirghiz (Kyrgyz)" => 'KIR ', + "Kiribati (Gilbertese)" => 'GIL0', + "Kirmanjki" => 'KIU ', "Kisii" => 'KIS ', + "Kituba" => 'MKW ', "Kodagu" => 'KOD ', "Kokni" => 'KKN ', + "Komi" => 'KOM ', "Komi-Permyak" => 'KOP ', "Komi-Zyrian" => 'KOZ ', "Komo" => 'KMO ', "Komso" => 'KMS ', + "Kongo" => 'KON0', "Konkani" => 'KOK ', "Koorete" => 'KRT ', - "Korean" => 'KOR ', "Korean Old Hangul" => 'KOH ', + "Korean" => 'KOR ', "Koryak" => 'KYK ', + "Kosraean" => 'KOS ', + "Kpelle (Guinea)" => 'GKP ', + "Kpelle (Liberia)" => 'XPE ', "Kpelle" => 'KPL ', "Krio" => 'KRI ', + "Kuanyama" => 'KUA ', "Kui" => 'KUI ', "Kulvi" => 'KUL ', "Kumaoni" => 'KMN ', @@ -354,33 +460,50 @@ "Kurdish" => 'KUR ', "Kurukh" => 'KUU ', "Kuy" => 'KUY ', + "K'iche'" => 'QUC ', "L-Cree" => 'LCR ', "Ladakhi" => 'LDK ', "Ladin" => 'LAD ', + "Ladino" => 'JUD ', "Lahuli" => 'LAH ', "Lak" => 'LAK ', + "Laki" => 'LKI ', "Lambani" => 'LAM ', + "Lampung" => 'LJP ', "Lao" => 'LAO ', "Latin" => 'LAT ', "Latvian" => 'LVI ', "Laz" => 'LAZ ', "Lezgi" => 'LEZ ', + "Ligurian" => 'LIJ ', "Limbu" => 'LMB ', + "Limburgish" => 'LIM ', "Lingala" => 'LIN ', + "Lisu" => 'LIS ', "Lithuanian" => 'LTH ', + "Lojban" => 'JBO ', + "Loma" => 'LOM ', + "Lombard" => 'LMO ', "Lomwe" => 'LMW ', "Low Mari" => 'LMA ', + "Low Saxon" => 'NDS ', "Lower Sorbian" => 'LSB ', - "Luba" => 'LUB ', - "Luganda" => 'LUG ', - "Luhya" => 'LUH ', + "Luba-Katanga" => 'LUB ', + "Luba-Lulua" => 'LUA ', "Lule Sami" => 'LSM ', "Luo" => 'LUO ', + "Luri" => 'LRC ', "Luxembourgish" => 'LTZ ', + "Luyia" => 'LUH ', + "Lü" => 'XBD ', "Macedonian" => 'MKD ', + "Madura" => 'MAD ', + "Magahi" => 'MAG ', "Maithili" => 'MTH ', "Majang" => 'MAJ ', - "Makua" => 'MAK ', + "Makasar" => 'MKR ', + "Makhuwa" => 'MAK ', + "Makonde" => 'KDE ', "Malagasy" => 'MLG ', "Malay" => 'MLY ', "Malayalam Reformed" => 'MLR ', @@ -388,19 +511,29 @@ "Male" => 'MLE ', "Malinke" => 'MLN ', "Maltese" => 'MTS ', + "Mam" => 'MAM ', "Manchu" => 'MCH ', + "Mandar" => 'MDR ', "Mandinka" => 'MND ', "Maninka" => 'MNK ', "Manipuri" => 'MNI ', "Mansi" => 'MAN ', - "Manx Gaelic" => 'MNX ', + "Manx" => 'MNX ', "Maori" => 'MRI ', "Mapudungun" => 'MAP ', "Marathi" => 'MAR ', + "Marshallese" => 'MAH ', "Marwari" => 'MAW ', + "Mayan" => 'MYN ', + "Mazanderani" => 'MZN ', "Mbundu" => 'MBN ', "Me'en" => 'MEN ', "Mende" => 'MDE ', + "Meru" => 'MER ', + "Mewati" => 'WTM ', + "Minangkabau" => 'MIN ', + "Minjangbal" => 'XJB ', + "Mirandese" => 'MWL ', "Mizo" => 'MIZ ', "Mohawk" => 'MOH ', "Moksha" => 'MOK ', @@ -408,139 +541,227 @@ "Mon" => 'MON ', "Mongolian" => 'MNG ', "Moose Cree" => 'MCR ', + "Morisyen" => 'MFE ', "Moroccan" => 'MOR ', + "Mossi" => 'MOS ', "Mundari" => 'MUN ', + "Muscogee" => 'MUS ', "N'Ko" => 'NKO ', "N-Cree" => 'NCR ', "Naga-Assamese" => 'NAG ', "Nagari" => 'NGR ', + "Nahuatl" => 'NAH ', "Nanai" => 'NAN ', "Naskapi" => 'NAS ', + "Nauruan" => 'NAU ', + "Navajo" => 'NAV ', + "Ndau" => 'NDC ', "Ndebele" => 'NDB ', "Ndonga" => 'NDG ', + "Neapolitan" => 'NAP ', "Nepali" => 'NEP ', "Newari" => 'NEW ', + "Ngbaka" => 'NGA ', + "Nigerian Fulfulde" => 'FUV ', + "Nimadi" => 'NOE ', "Nisi" => 'NIS ', "Niuean" => 'NIU ', - "Nkole" => 'NKL ', "Nogai" => 'NOG ', + "Norfolk" => 'PIH ', "Northern Sami" => 'NSM ', - "Northern Tai" => 'NTA ', + "Northern Thai" => 'NTA ', "Norway House Cree" => 'NHC ', + "Norwegian Nynorsk (Nynorsk, Norwegian)" => 'NYN ', "Norwegian" => 'NOR ', - "Nynorsk" => 'NYN ', + "Novial" => 'NOV ', + "Nyamwezi" => 'NYM ', + "Nyankole" => 'NKL ', "Occitan" => 'OCI ', + "Odia (formerly Oriya)" => 'ORI ', "Oji-Cree" => 'OCR ', "Ojibway" => 'OJB ', - "Oriya" => 'ORI ', + "Old Irish" => 'SGA ', "Oromo" => 'ORO ', "Ossetian" => 'OSS ', + "Pa'o Karen" => 'BLK ', + "Palauan" => 'PAU ', "Palaung" => 'PLG ', "Palestinian Aramaic" => 'PAA ', "Pali" => 'PAL ', "Palpa" => 'PAP ', + "Pampangan" => 'PAM ', + "Pangasinan" => 'PAG ', + "Papiamentu" => 'PAP0', "Pashto" => 'PAS ', - "Phonetic transcription-Americanist conventions" => 'APPH', - "Phonetic transcription-IPA conventions" => 'IPPH', + "Pennsylvania German" => 'PDC ', + "Persian" => 'FAR ', + "Phake" => 'PHK ', + "Phonetic transcription - Americanist conventions" => 'APPH', + "Phonetic transcription - IPA conventions" => 'IPPH', + "Picard" => 'PCD ', + "Piemontese" => 'PMS ', + "Pocomchi" => 'POH ', + "Pohnpeian" => 'PON ', "Polish" => 'PLK ', "Polytonic Greek" => 'PGR ', "Portuguese" => 'PTG ', "Provencal" => 'PRO ', "Punjabi" => 'PAN ', + "Quechua (Bolivia)" => 'QUH ', + "Quechua (Ecuador)" => 'QVI ', + "Quechua (Peru)" => 'QWH ', + "Quechua" => 'QUZ ', "R-Cree" => 'RCR ', "Rajasthani" => 'RAJ ', - "Rhaeto-Romanic" => 'RMS ', + "Rakhine" => 'ARK ', + "Rarotongan" => 'RAR ', + "Rejang" => 'REJ ', "Riang" => 'RIA ', + "Ripuarian" => 'KSH0', + "Ritarungo" => 'RIT ', "Romanian" => 'ROM ', + "Romansh" => 'RMS ', "Romany" => 'ROY ', - "Ruanda" => 'RUA ', - "Russian" => 'RUS ', + "Rotuman" => 'RTM ', + "Rundi" => 'RUN ', "Russian Buriat" => 'RBU ', + "Russian" => 'RUS ', "Rusyn" => 'RSY ', "Sadri" => 'SAD ', + "Sakha" => 'YAK ', "Samoan" => 'SMO ', + "Samogitian" => 'SGS ', + "San Blas Kuna" => 'CUK ', "Sango" => 'SGO ', "Sanskrit" => 'SAN ', "Santali" => 'SAT ', - "Saraiki" => 'SRK ', + "Sardinian" => 'SRD ', + "Sasak" => 'SAS ', + "Saterland Frisian" => 'STQ ', "Sayisi" => 'SAY ', + "Scots" => 'SCO ', + "Scottish Gaelic (Gaelic)" => 'GAE ', "Sekota" => 'SEK ', "Selkup" => 'SEL ', "Sena" => 'SNA ', + "Seraiki" => 'SRK ', "Serbian" => 'SRB ', "Serer" => 'SRR ', "Shan" => 'SHN ', + "Shona" => 'SNA0', "Sibe" => 'SIB ', + "Sicilian" => 'SCN ', "Sidamo" => 'SID ', + "Silesian" => 'SZL ', "Silte Gurage" => 'SIG ', "Sindhi" => 'SND ', - "Sinhalese" => 'SNH ', + "Sinhala (Sinhalese)" => 'SNH ', "Skolt Sami" => 'SKS ', "Slavey" => 'SLA ', "Slovak" => 'SKY ', "Slovenian" => 'SLV ', "Sodo Gurage" => 'SOG ', + "Soga" => 'XOG ', "Somali" => 'SML ', + "Songe" => 'SOP ', "Soninke" => 'SNK ', - "Sotho" => 'SOT ', + "Sotho, Northern" => 'NSO ', + "Sotho, Southern" => 'SOT ', "South Slavey" => 'SSL ', + "Southern Kiwai" => 'KJD ', "Southern Sami" => 'SSM ', "Spanish" => 'ESP ', + "Standard Morrocan Tamazigh" => 'ZGH ', + "Sukuma" => 'SUK ', + "Sundanese" => 'SUN ', "Suri" => 'SUR ', "Sutu" => 'SXT ', "Svan" => 'SVA ', "Swadaya Aramaic" => 'SWA ', "Swahili" => 'SWK ', - "Swazi" => 'SWZ ', + "Swati" => 'SWZ ', "Swedish" => 'SVE ', + "Sylheti" => 'SYL ', "Syriac" => 'SYR ', + "S'gaw Karen" => 'KSW ', "TH-Cree" => 'TCR ', "Tabasaran" => 'TAB ', + "Tachelhit" => 'SHI ', + "Tagalog" => 'TGL ', "Tahitian" => 'THT ', - "Tai Lue" => 'XBD ', - "Tajiki" => 'TAJ ', + "Tajik" => 'TAJ ', + "Tamashek" => 'TMH ', + "Tamazight" => 'TZM ', "Tamil" => 'TAM ', + "Tarifit" => 'RIF ', "Tatar" => 'TAT ', "Telugu" => 'TEL ', "Temne" => 'TMN ', + "Tetum" => 'TET ', "Thai" => 'THA ', "Tibetan" => 'TIB ', "Tigre" => 'TGR ', "Tigrinya" => 'TGY ', + "Tiv" => 'TIV ', "Todo" => 'TOD ', + "Tok Pisin" => 'TPI ', + "Toma" => 'TOD0', "Tonga" => 'TNG ', "Tongan" => 'TGN ', + "Torki" => 'AZB ', "Tsonga" => 'TSG ', "Tswana" => 'TNA ', "Tulu" => 'TUL ', + "Tumbuka" => 'TUM ', "Tundra Nenets" => 'TNE ', "Turkish" => 'TRK ', "Turkmen" => 'TKM ', "Turoyo Aramaic" => 'TUA ', + "Tuvalu" => 'TVL ', "Tuvin" => 'TUV ', "Twi" => 'TWI ', + "Tzotzil" => 'TZO ', + "Tày" => 'TYZ ', "Udmurt" => 'UDM ', "Ukrainian" => 'UKR ', + "Umbundu" => 'UMB ', + "Upper Saxon" => 'SXU ', "Upper Sorbian" => 'USB ', "Urdu" => 'URD ', "Uyghur" => 'UYG ', "Uzbek" => 'UZB ', "Venda" => 'VEN ', + "Venetian" => 'VEC ', "Vietnamese" => 'VIT ', + "Vlax Romani" => 'RMY ', + "Volapük" => 'VOL ', + "Võro" => 'VRO ', "Wa" => 'WA ', "Wagdi" => 'WAG ', + "Walloon" => 'WLN ', + "Waray-Waray" => 'WAR ', + "Wayuu" => 'GUC ', "Welsh" => 'WEL ', "West-Cree" => 'WCR ', + "Western Kayah" => 'KYU ', + "Western Panjabi" => 'PNB ', + "Western Pwo Karen" => 'PWO ', "Wolof" => 'WLF ', "Woods Cree" => 'DCR ', "Xhosa" => 'XHS ', "Y-Cree" => 'YCR ', - "Yakut" => 'YAK ', + "Yao" => 'YAO ', + "Yapese" => 'YAP ', "Yi Classic" => 'YIC ', "Yi Modern" => 'YIM ', "Yiddish" => 'JII ', "Yoruba" => 'YBA ', + "Zamboanga Chavacano" => 'CBK ', "Zande" => 'ZND ', + "Zarma" => 'DJR ', + "Zazaki" => 'ZZA ', + "Zealandic" => 'ZEA ', + "Zhuang" => 'ZHA ', "Zulu" => 'ZUL ', }, @@ -669,8 +890,10 @@ "Denominators" => 'dnom', "Discretionary Ligatures" => 'dlig', "Distances" => 'dist', + "Dotless Forms" => 'dtls', "Expert Forms" => 'expt', "Final Glyph on Line Alternates" => 'falt', + "Flattened ascent forms" => 'flac', "Fractions" => 'frac', "Full Widths" => 'fwid', "Glyph Composition / Decomposition" => 'ccmp', @@ -693,16 +916,17 @@ "Kerning" => 'kern', "Leading Jamo Forms" => 'ljmo', "Left Bounds" => 'lfbd', - "Left-to-right alternates" => 'ltra', + "Left-to-right glyph alternates" => 'ltra', "Left-to-right mirrored forms" => 'ltrm', "Lining Figures" => 'lnum', "Localized Forms" => 'locl', - "Mark Positioning" => 'mark', "Mark Positioning via Substitution" => 'mset', + "Mark Positioning" => 'mark', "Mark to Mark Positioning" => 'mkmk', + "Math script style alternates" => 'ssty', "Mathematical Greek" => 'mgrk', - "Medial Forms" => 'medi', "Medial Forms #2" => 'med2', + "Medial Forms" => 'medi', "NLC Kanji Forms" => 'nlck', "Nukta Forms" => 'nukt', "Numerators" => 'numr', @@ -711,8 +935,8 @@ "Optical size" => 'size', "Ordinals" => 'ordn', "Ornaments" => 'ornm', - "Petite Capitals" => 'pcap', "Petite Capitals From Capitals" => 'c2pc', + "Petite Capitals" => 'pcap', "Post-base Forms" => 'pstf', "Post-base Substitutions" => 'psts', "Pre-Base Forms" => 'pref', @@ -726,6 +950,7 @@ "Rakar Forms" => 'rkrf', "Randomize" => 'rand', "Reph Forms" => 'rphf', + "Required Contextual Alternates" => 'rclt', "Required Ligatures" => 'rlig', "Right Bounds" => 'rtbd', "Right-to-left alternates" => 'rtla', @@ -734,9 +959,10 @@ "Scientific Inferiors" => 'sinf', "Simplified Forms" => 'smpl', "Slashed Zero" => 'zero', - "Small Capitals" => 'smcp', "Small Capitals From Capitals" => 'c2sc', + "Small Capitals" => 'smcp', "Standard Ligatures" => 'liga', + "Stretching Glyph Decomposition" => 'stch', "Stylistic Alternates" => 'salt', "Stylistic Set 1" => 'ss01', "Stylistic Set 10" => 'ss10', @@ -762,9 +988,9 @@ "Superscript" => 'sups', "Swash" => 'swsh', "Tabular Figures" => 'tnum', - "Terminal Forms" => 'fina', "Terminal Forms #2" => 'fin2', "Terminal Forms #3" => 'fin3', + "Terminal Forms" => 'fina', "Third Widths" => 'twid', "Titling" => 'titl', "Traditional Forms" => 'trad', @@ -784,76 +1010,117 @@ %iso639 = ( 'ABA ' => 'abq', 'ABK ' => 'abk', + 'ACH ' => 'ach', + 'ACR ' => 'acr', 'ADY ' => 'ady', 'AFK ' => 'afr', 'AFR ' => 'aar', 'AGW ' => 'ahg', + 'AIO ' => 'aio', + 'AKA ' => 'aka', 'ALS ' => 'gsw', 'ALT ' => 'atv alt', 'AMH ' => 'amh', + 'ANG ' => 'ang', 'ARA ' => 'ara', + 'ARG ' => 'arg', 'ARI ' => 'aiw', 'ARK ' => 'mhv rmz rki', 'ASM ' => 'asm', + 'AST ' => 'ast', 'ATH ' => 'apk apj apl apm apw nav bea sek bcr caf crx clc gwi haa chp dgr scs xsl srs ing hoi koy hup ktw mvb wlk coq ctc gce tol tuu kkz tgx tht aht tfn taa tau tcb kuu tce ttm txc', 'AVR ' => 'ava', 'AWA ' => 'awa', 'AYM ' => 'aym', + 'AZB ' => 'azb', 'AZE ' => 'aze', 'BAD ' => 'bfq', + 'BAD0' => 'bad', 'BAG ' => 'bfy', 'BAL ' => 'krc', + 'BAN ' => 'ban', + 'BAR ' => 'bar', 'BAU ' => 'bci', + 'BBC ' => 'bbc', 'BCH ' => 'bcq', + 'BDY ' => 'bdy', 'BEL ' => 'bel', 'BEM ' => 'bem', 'BEN ' => 'ben', + 'BGC ' => 'bgc', + 'BGQ ' => 'bgq', 'BGR ' => 'bul', 'BHI ' => 'bhi bhb', 'BHO ' => 'bho', - 'BIK ' => 'bik', + 'BIK ' => 'bik bhk bcl bto cts bln', 'BIL ' => 'byn', + 'BIS ' => 'bis', + 'BJJ ' => 'bjj', 'BKF ' => 'bla', 'BLI ' => 'bal', + 'BLK ' => 'blk', 'BLN ' => 'bjt ble', 'BLT ' => 'bft', 'BMB ' => 'bam', 'BOS ' => 'bos', + 'BPY ' => 'bpy', 'BRE ' => 'bre', 'BRH ' => 'brh', 'BRI ' => 'bra', 'BRM ' => 'mya', + 'BRX ' => 'brx', 'BSH ' => 'bak', 'BTI ' => 'btb', + 'BTS ' => 'bts', + 'BUG ' => 'bug', + 'CAK ' => 'cak', 'CAT ' => 'cat', + 'CBK ' => 'cbk', 'CEB ' => 'ceb', + 'CGG ' => 'cgg', + 'CHA ' => 'cha', 'CHE ' => 'che', 'CHG ' => 'sgw', 'CHH ' => 'hne', 'CHI ' => 'nya', 'CHK ' => 'ckt', + 'CHK0' => 'chk', + 'CHO ' => 'cho', 'CHP ' => 'chp', 'CHR ' => 'chr', 'CHU ' => 'chv', + 'CHY ' => 'chy', 'CMR ' => 'swb wlc wni zdj', 'COP ' => 'cop', + 'COR ' => 'cor', 'COS ' => 'cos', + 'CPP ' => 'cpp', 'CRE ' => 'cre', 'CRR ' => 'crx caf', 'CRT ' => 'crh', + 'CSB ' => 'csb', 'CSL ' => 'chu', 'CSY ' => 'ces', + 'CTG ' => 'ctg', + 'CUK ' => 'cuk', 'DAN ' => 'dan', 'DAR ' => 'dar', + 'DAX ' => 'dax', 'DCR ' => 'cwd', 'DEU ' => 'deu', + 'DGO ' => 'dgo', 'DGR ' => 'doi', + 'DHG ' => 'dhg', 'DHV ' => 'div', + 'DIQ ' => 'diq', 'DIV ' => 'div', 'DJR ' => 'dje', + 'DJR0' => 'djr', 'DNG ' => 'ada', + 'DNJ ' => 'dnj', 'DNK ' => 'din', 'DRI ' => 'prs', + 'DUJ ' => 'duj', 'DUN ' => 'dng', 'DZN ' => 'dzo', 'EBI ' => 'igb', @@ -861,16 +1128,20 @@ 'EDO ' => 'bin', 'EFI ' => 'efi', 'ELL ' => 'ell', + 'EMK ' => 'emk', 'ENG ' => 'eng', 'ERZ ' => 'myv', 'ESP ' => 'spa', + 'ESU ' => 'esu', 'ETI ' => 'est', 'EUQ ' => 'eus', 'EVK ' => 'evn', 'EVN ' => 'eve', 'EWE ' => 'ewe', 'FAN ' => 'acf', + 'FAN0' => 'fan', 'FAR ' => 'fas', + 'FAT ' => 'fat', 'FIN ' => 'fin', 'FJI ' => 'fij', 'FLE ' => 'vls', @@ -878,73 +1149,107 @@ 'FON ' => 'fon', 'FOS ' => 'fao', 'FRA ' => 'fra', + 'FRC ' => 'frc', 'FRI ' => 'fry', 'FRL ' => 'fur', + 'FRP ' => 'frp', 'FTA ' => 'fuf', 'FUL ' => 'ful', + 'FUV ' => 'fuv', 'GAD ' => 'gaa', 'GAE ' => 'gla', 'GAG ' => 'gag', 'GAL ' => 'glg', 'GAW ' => 'gbm', 'GEZ ' => 'gez', + 'GIH ' => 'gih', 'GIL ' => 'niv', + 'GIL0' => 'gil', + 'GKP ' => 'gkp', + 'GLK ' => 'glk', 'GMZ ' => 'guk', - 'GON ' => 'gon', + 'GNN ' => 'gnn', + 'GOG ' => 'gog', + 'GON ' => 'gon gno ggo', 'GRN ' => 'kal', 'GRO ' => 'grt', 'GUA ' => 'grn', + 'GUC ' => 'guc', + 'GUF ' => 'guf', 'GUJ ' => 'guj', + 'GUZ ' => 'guz', 'HAI ' => 'hat', 'HAL ' => 'flm', 'HAR ' => 'hoj', 'HAU ' => 'hau', 'HAW ' => 'haw', + 'HAY ' => 'hay', + 'HAZ ' => 'haz', 'HBN ' => 'amf', + 'HER ' => 'her', 'HIL ' => 'hil', 'HIN ' => 'hin', 'HMA ' => 'mrj', + 'HMN ' => 'hmn', + 'HMO ' => 'hmo', 'HND ' => 'hno hnd', 'HO ' => 'hoc', 'HRI ' => 'har', 'HRV ' => 'hrv', 'HUN ' => 'hun', 'HYE ' => 'hye', + 'HYE0' => 'hye', + 'IBA ' => 'iba', + 'IBB ' => 'ibb', 'IBO ' => 'ibo', + 'IDO ' => 'ido', 'IJO ' => 'ijc', + 'ILE ' => 'ile', 'ILO ' => 'ilo', + 'INA ' => 'ina', 'IND ' => 'ind', 'ING ' => 'inh', 'INU ' => 'iku', + 'IPK ' => 'ipk', 'IRI ' => 'gle', 'IRT ' => 'gle', 'ISL ' => 'isl', 'ISM ' => 'smn', 'ITA ' => 'ita', 'IWR ' => 'heb', + 'JAM ' => 'jam', 'JAN ' => 'jpn', 'JAV ' => 'jav', + 'JBO ' => 'jbo', 'JII ' => 'yid', 'JUD ' => 'lad', 'JUL ' => 'dyu', 'KAB ' => 'kbd', + 'KAB0' => 'kab', 'KAC ' => 'kfr', 'KAL ' => 'kln', 'KAN ' => 'kan', 'KAR ' => 'krc', 'KAT ' => 'kat', 'KAZ ' => 'kaz', + 'KDE ' => 'kde', + 'KEA ' => 'kea', 'KEB ' => 'ktb', + 'KEK ' => 'kek', 'KGE ' => 'kat', 'KHA ' => 'kjh', 'KHK ' => 'kca', 'KHM ' => 'khm', 'KHS ' => 'kca', + 'KHT ' => 'kht', 'KHV ' => 'kca', 'KHW ' => 'khw', 'KIK ' => 'kik', 'KIR ' => 'kir', 'KIS ' => 'kqs kss', + 'KIU ' => 'kiu', + 'KJD ' => 'kjd', + 'KJP ' => 'kjp', 'KKN ' => 'kex', 'KLM ' => 'xal', 'KMB ' => 'kam', @@ -955,9 +1260,12 @@ 'KOD ' => 'kfa', 'KOH ' => 'okm', 'KOK ' => 'kok', + 'KOM ' => 'kom', 'KON ' => 'ktu', + 'KON0' => 'kon', 'KOP ' => 'koi', 'KOR ' => 'kor', + 'KOS ' => 'kos', 'KOZ ' => 'kpv', 'KPL ' => 'kpe', 'KRI ' => 'kri', @@ -967,8 +1275,11 @@ 'KRN ' => 'kar', 'KRT ' => 'kqy', 'KSH ' => 'kas', + 'KSH0' => 'ksh', 'KSI ' => 'kha', 'KSM ' => 'sjd', + 'KSW ' => 'ksw', + 'KUA ' => 'kua', 'KUI ' => 'kxu', 'KUL ' => 'kfx', 'KUM ' => 'kum', @@ -976,6 +1287,7 @@ 'KUU ' => 'kru', 'KUY ' => 'kdt', 'KYK ' => 'kpy', + 'KYU ' => 'kyu', 'LAD ' => 'lld', 'LAH ' => 'bfu', 'LAK ' => 'lbe', @@ -986,33 +1298,52 @@ 'LCR ' => 'crm', 'LDK ' => 'lbj', 'LEZ ' => 'lez', + 'LIJ ' => 'lij', + 'LIM ' => 'lim', 'LIN ' => 'lin', + 'LIS ' => 'lis', + 'LJP ' => 'ljp', + 'LKI ' => 'lki', 'LMA ' => 'mhr', 'LMB ' => 'lif', + 'LMO ' => 'lmo', 'LMW ' => 'ngl', + 'LOM ' => 'lom', + 'LRC ' => 'lrc luz bqi zum', 'LSB ' => 'dsb', 'LSM ' => 'smj', 'LTH ' => 'lit', 'LTZ ' => 'ltz', - 'LUB ' => 'lua lub', + 'LUA ' => 'lua', + 'LUB ' => 'lub', 'LUG ' => 'lug', 'LUH ' => 'luy', 'LUO ' => 'luo', 'LVI ' => 'lav', + 'MAD ' => 'mad', + 'MAG ' => 'mag', + 'MAH ' => 'mah', 'MAJ ' => 'mpe', 'MAK ' => 'vmw', 'MAL ' => 'mal', + 'MAM ' => 'mam', 'MAN ' => 'mns', 'MAP ' => 'arn', 'MAR ' => 'mar', - 'MAW ' => 'mwr', + 'MAW ' => 'mwr dhd rwr mve wry mtr swv', 'MBN ' => 'kmb', 'MCH ' => 'mnc', 'MCR ' => 'crm', 'MDE ' => 'men', + 'MDR ' => 'mdr', 'MEN ' => 'mym', + 'MER ' => 'mer', + 'MFE ' => 'mfe', + 'MIN ' => 'min', 'MIZ ' => 'lus', 'MKD ' => 'mkd', + 'MKR ' => 'mak', + 'MKW ' => 'mkw', 'MLE ' => 'mdy', 'MLG ' => 'mlg', 'MLN ' => 'mlq', @@ -1021,35 +1352,52 @@ 'MND ' => 'mnk', 'MNG ' => 'mon', 'MNI ' => 'mni', - 'MNK ' => 'man', + 'MNK ' => 'man mnk myq mku msc emk mwk mlq', 'MNX ' => 'glv', - 'MOH ' => 'moh', + 'MOH ' => 'mho', 'MOK ' => 'mdf', 'MOL ' => 'mol', 'MON ' => 'mnw', + 'MOS ' => 'mos', 'MRI ' => 'mri', 'MTH ' => 'mai', 'MTS ' => 'mlt', 'MUN ' => 'unr', + 'MUS ' => 'mus', + 'MWL ' => 'mwl', + 'MWW ' => 'mww', + 'MYN ' => 'myn', + 'MZN ' => 'mzn', 'NAG ' => 'nag', + 'NAH ' => 'nah', 'NAN ' => 'gld', + 'NAP ' => 'nap', 'NAS ' => 'nsk', + 'NAU ' => 'nau', + 'NAV ' => 'nav', 'NCR ' => 'csw', 'NDB ' => 'nbl nde', + 'NDC ' => 'ndc', 'NDG ' => 'ndo', + 'NDS ' => 'nds', 'NEP ' => 'nep', 'NEW ' => 'new', + 'NGA ' => 'nga', 'NHC ' => 'csw', 'NIS ' => 'dap', 'NIU ' => 'niu', 'NKL ' => 'nyn', - 'NKO ' => 'nqo', + 'NKO ' => 'ngo', 'NLD ' => 'nld', + 'NOE ' => 'noe', 'NOG ' => 'nog', 'NOR ' => 'nob', + 'NOV ' => 'nov', 'NSM ' => 'sme', + 'NSO ' => 'nso', 'NTA ' => 'nod', 'NTO ' => 'epo', + 'NYM ' => 'nym', 'NYN ' => 'nno', 'OCI ' => 'oci', 'OCR ' => 'ojs', @@ -1058,34 +1406,68 @@ 'ORO ' => 'orm', 'OSS ' => 'oss', 'PAA ' => 'sam', + 'PAG ' => 'pag', 'PAL ' => 'pli', + 'PAM ' => 'pam', 'PAN ' => 'pan', 'PAP ' => 'plp', + 'PAP0' => 'pap', 'PAS ' => 'pus', + 'PAU ' => 'pau', + 'PCC ' => 'pcc', + 'PCD ' => 'pcd', + 'PDC ' => 'pdc', 'PGR ' => 'ell', + 'PHK ' => 'phk', + 'PIH ' => 'pih', 'PIL ' => 'fil', 'PLG ' => 'pce rbb pll', 'PLK ' => 'pol', + 'PMS ' => 'pms', + 'PNB ' => 'pnb', + 'POH ' => 'poh', + 'PON ' => 'pon', 'PRO ' => 'pro', 'PTG ' => 'por', + 'PWO ' => 'pwo', 'QIN ' => 'bgr cnh cnw czt sez tcp csy ctd flm pck tcz zom cmr dao hlt cka cnk mrh mwg cbl cnb csh', + 'QUC ' => 'quc', + 'QUH ' => 'quh', + 'QUZ ' => 'quz', + 'QVI ' => 'qvi', + 'QWH ' => 'qwh', 'RAJ ' => 'raj', + 'RAR ' => 'rar', 'RBU ' => 'bxr', 'RCR ' => 'atj', + 'REJ ' => 'rej', 'RIA ' => 'ria', + 'RIF ' => 'rif', + 'RIT ' => 'rit', + 'RKW ' => 'rkw', 'RMS ' => 'roh', + 'RMY ' => 'rmy', 'ROM ' => 'ron', 'ROY ' => 'rom', 'RSY ' => 'rue', + 'RTM ' => 'rtm', 'RUA ' => 'kin', + 'RUN ' => 'run', + 'RUP ' => 'rup', 'RUS ' => 'rus', 'SAD ' => 'sck', 'SAN ' => 'san', + 'SAS ' => 'sas', 'SAT ' => 'sat', 'SAY ' => 'chp', + 'SCN ' => 'scn', + 'SCO ' => 'sco', 'SEK ' => 'xan', 'SEL ' => 'sel', + 'SGA ' => 'sga', 'SGO ' => 'sag', + 'SGS ' => 'sgs', + 'SHI ' => 'shi', 'SHN ' => 'shn', 'SIB ' => 'sjo', 'SID ' => 'sid', @@ -1097,17 +1479,23 @@ 'SML ' => 'som', 'SMO ' => 'smo', 'SNA ' => 'she', + 'SNA0' => 'sna', 'SND ' => 'snd', 'SNH ' => 'sin', 'SNK ' => 'snk', 'SOG ' => 'gru', - 'SOT ' => 'nso sot', - 'SQI ' => 'sqi', + 'SOP ' => 'sop', + 'SOT ' => 'sot', + 'SQI ' => 'gsw', 'SRB ' => 'srp', + 'SRD ' => 'srd', 'SRK ' => 'skr', 'SRR ' => 'srr', 'SSL ' => 'xsl', 'SSM ' => 'sma', + 'STQ ' => 'stq', + 'SUK ' => 'suk', + 'SUN ' => 'sun', 'SUR ' => 'suq', 'SVA ' => 'sva', 'SVE ' => 'swe', @@ -1115,55 +1503,87 @@ 'SWK ' => 'swa', 'SWZ ' => 'ssw', 'SXT ' => 'ngo', + 'SXU ' => 'sxu', + 'SYL ' => 'syl', 'SYR ' => 'syr', + 'SZL ' => 'szl', 'TAB ' => 'tab', 'TAJ ' => 'tgk', 'TAM ' => 'tam', 'TAT ' => 'tat', 'TCR ' => 'cwd', + 'TDD ' => 'tdd', 'TEL ' => 'tel', + 'TET ' => 'tet', + 'TGL ' => 'tgl', 'TGN ' => 'ton', 'TGR ' => 'tig', 'TGY ' => 'tir', 'THA ' => 'tha', 'THT ' => 'tah', 'TIB ' => 'bod', + 'TIV ' => 'tiv', 'TKM ' => 'tuk', + 'TMH ' => 'tmh', 'TMN ' => 'tem', 'TNA ' => 'tsn', 'TNE ' => 'enh', 'TNG ' => 'toi', 'TOD ' => 'xal', + 'TOD0' => 'tod', + 'TPI ' => 'tpi', 'TRK ' => 'tur', 'TSG ' => 'tso', 'TUA ' => 'tru', 'TUL ' => 'tcy', + 'TUM ' => 'tum', 'TUV ' => 'tyv', - 'TWI ' => 'aka', + 'TVL ' => 'tvl', + 'TWI ' => 'twi', + 'TYZ ' => 'tyz', + 'TZM ' => 'tzm', + 'TZO ' => 'tzo', 'UDM ' => 'udm', 'UKR ' => 'ukr', + 'UMB ' => 'umb', 'URD ' => 'urd', 'USB ' => 'hsb', 'UYG ' => 'uig', - 'UZB ' => 'uzb', + 'UZB ' => 'uzb uzn uzs', + 'VEC ' => 'vec', 'VEN ' => 'ven', 'VIT ' => 'vie', + 'VOL ' => 'vol', + 'VRO ' => 'vro', 'WA ' => 'wbm', 'WAG ' => 'wbr', + 'WAR ' => 'war', 'WCR ' => 'crk', 'WEL ' => 'cym', 'WLF ' => 'wol', + 'WLN ' => 'wln', + 'WTM ' => 'wtm', 'XBD ' => 'khb', 'XHS ' => 'xho', + 'XJB ' => 'xjb', + 'XOG ' => 'xog', + 'XPE ' => 'xpe', 'YAK ' => 'sah', + 'YAO ' => 'yao', + 'YAP ' => 'yap', 'YBA ' => 'yor', + 'YCR ' => 'cre', 'YIM ' => 'iii', + 'ZEA ' => 'zea', + 'ZGH ' => 'zgh', + 'ZHA ' => 'zha', 'ZHH ' => 'zho', 'ZHP ' => 'zho', 'ZHS ' => 'zho', 'ZHT ' => 'zho', 'ZND ' => 'zne', 'ZUL ' => 'zul', + 'ZZA ' => 'zza', ); { @@ -1171,17 +1591,17 @@ { map { $ttnames{$s}{$tttags{$s}{$_}} = $_ } keys %{$tttags{$s}}; } - - # For ISO639 info, the raw data is a space-separated list of ISO639 - # language IDs. We convert that list to an array. - - foreach my $tag (keys %iso639) - { - my $list = $iso639{$tag}; - $iso639{$tag} = [ split(' ', $list) ]; - # Also set the reverse mapping: - map { $iso639{$_} = $tag } @{$iso639{$tag}}; - } + + # For ISO639 info, the raw data is a space-separated list of ISO639 + # language IDs. We convert that list to an array. + + foreach my $tag (keys %iso639) + { + my $list = $iso639{$tag}; + $iso639{$tag} = [ split(' ', $list) ]; + # Also set the reverse mapping: + map { $iso639{$_} = $tag } @{$iso639{$tag}}; + } } @@ -1197,27 +1617,27 @@ { my $fname = shift; open (TAGS, $fname) or return 0; - my ($what, $name, $tag); - while () - { - ($what, $name, $tag) = (m/"([^"]*)", "([^"]*)", "([^"]*)"/); #" - $ttnames{$what}{$tag} = $name; - $tttags{$what}{$name} = $tag; - } - close TAGS; - return 1; + my ($what, $name, $tag); + while () + { + ($what, $name, $tag) = (m/"([^"]*)", "([^"]*)", "([^"]*)"/); #" + $ttnames{$what}{$tag} = $name; + $tttags{$what}{$name} = $tag; + } + close TAGS; + return 1; } 1; =head1 AUTHOR -Bob Hallissy. L +Bob Hallissy. L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/PCLT.pm libfont-ttf-perl-1.05/lib/Font/TTF/PCLT.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/PCLT.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/PCLT.pm 2014-12-10 01:40:25.000000000 +0000 @@ -126,12 +126,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Post.pm libfont-ttf-perl-1.05/lib/Font/TTF/Post.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Post.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Post.pm 2014-12-10 01:40:25.000000000 +0000 @@ -312,12 +312,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Prep.pm libfont-ttf-perl-1.05/lib/Font/TTF/Prep.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Prep.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Prep.pm 2014-12-10 01:40:25.000000000 +0000 @@ -82,12 +82,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Prop.pm libfont-ttf-perl-1.05/lib/Font/TTF/Prop.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Prop.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Prop.pm 2014-12-10 01:40:25.000000000 +0000 @@ -163,12 +163,12 @@ =head1 AUTHOR -Jonathan Kew L. +Jonathan Kew L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/PSNames.pm libfont-ttf-perl-1.05/lib/Font/TTF/PSNames.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/PSNames.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/PSNames.pm 2014-12-10 01:40:25.000000000 +0000 @@ -4441,12 +4441,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Segarr.pm libfont-ttf-perl-1.05/lib/Font/TTF/Segarr.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Segarr.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Segarr.pm 2014-12-10 01:40:25.000000000 +0000 @@ -369,12 +369,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Silf.pm libfont-ttf-perl-1.05/lib/Font/TTF/Silf.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Silf.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Silf.pm 2014-12-10 01:40:25.000000000 +0000 @@ -315,12 +315,13 @@ sub read { my ($self) = @_; + $self->SUPER::read or return $self; + my ($dat, $d); my ($fh) = $self->{' INFILE'}; my ($moff) = $self->{' OFFSET'}; my ($numsilf, @silfo); - $self->SUPER::read or return $self; $fh->read($dat, 4); ($self->{'Version'}) = TTF_Unpack("v", $dat); if ($self->{'Version'} >= 3) @@ -872,12 +873,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Sill.pm libfont-ttf-perl-1.05/lib/Font/TTF/Sill.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Sill.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Sill.pm 2014-12-10 01:40:25.000000000 +0000 @@ -126,13 +126,13 @@ =head1 AUTHOR -Martin Hosken L +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Table.pm libfont-ttf-perl-1.05/lib/Font/TTF/Table.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Table.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Table.pm 2014-12-10 01:40:25.000000000 +0000 @@ -68,7 +68,7 @@ $VERSION = 0.0001; my $havezlib = eval {require Compress::Zlib}; - + =head2 Font::TTF::Table->new(%parms) Creates a new table or subclass. Table instance variables are passed in @@ -88,7 +88,6 @@ bless $self, $class; } - =head2 $t->read Reads the table from the input file. Acts as a superclass to all true tables. @@ -96,6 +95,11 @@ but does not read any data. If the table has already been read, then returns C else returns C<$self> +For WOFF-compressed tables, the table is first decompressed and a +replacement file handle is created for reading the decompressed data. In this +case ORIGINALOFFSET will preserve the original value of OFFSET for +applications that care. + =cut sub read @@ -107,12 +111,13 @@ $self->{' INFILE'}->seek($self->{' OFFSET'}, 0); if (0 < $self->{' ZLENGTH'} && $self->{' ZLENGTH'} < $self->{' LENGTH'}) { - # WOFF table is compressed. Uncompress it to memory and create new fh - die ("Cannot uncompress WOFF data: Compress::Zlib not present.\n") unless $havezlib; - my $dat; - $self->{' INFILE'}->read($dat, $self->{' ZLENGTH'}); - $dat = Compress::Zlib::uncompress($dat); - warn "$self->{' NAME'} table decompressed to wrong length" if $self->{' LENGTH'} != bytes::length($dat); + # WOFF table is compressed. Uncompress it to memory and create new fh + die ("Cannot uncompress WOFF data: Compress::Zlib not present.\n") unless $havezlib; + $self->{' ORIGINALOFFSET'} = $self->{' OFFSET'}; # Preserve this for those who care + my $dat; + $self->{' INFILE'}->read($dat, $self->{' ZLENGTH'}); + $dat = Compress::Zlib::uncompress($dat); + warn "$self->{' NAME'} table decompressed to wrong length" if $self->{' LENGTH'} != bytes::length($dat); $self->{' INFILE'} = IO::String->new($dat); binmode $self->{' INFILE'}; $self->{' OFFSET'} = 0; @@ -140,18 +145,18 @@ $self->{' INFILE'}->seek($self->{' OFFSET'}, 0); if (0 < $self->{' ZLENGTH'} && $self->{' ZLENGTH'} < $self->{' LENGTH'}) { - # WOFF table is compressed. Uncompress it directly to ' dat' - die ("Cannot uncompress WOFF data: Compress::Zlib not present.\n") unless $havezlib; - my $dat; - $self->{' INFILE'}->read($dat, $self->{' ZLENGTH'}); - $dat = Compress::Zlib::uncompress($dat); - warn "$self->{' NAME'} table decompressed to wrong length" if $self->{' LENGTH'} != bytes::length($dat); - $self->{' dat'} = $dat; - } - else - { - $self->{' INFILE'}->read($self->{' dat'}, $self->{' LENGTH'}); - } + # WOFF table is compressed. Uncompress it directly to ' dat' + die ("Cannot uncompress WOFF data: Compress::Zlib not present.\n") unless $havezlib; + my $dat; + $self->{' INFILE'}->read($dat, $self->{' ZLENGTH'}); + $dat = Compress::Zlib::uncompress($dat); + warn "$self->{' NAME'} table decompressed to wrong length" if $self->{' LENGTH'} != bytes::length($dat); + $self->{' dat'} = $dat; + } + else + { + $self->{' INFILE'}->read($self->{' dat'}, $self->{' LENGTH'}); + } $self; } @@ -175,6 +180,20 @@ } return undef unless defined $self->{' INFILE'}; + + if (0 < $self->{' ZLENGTH'} && $self->{' ZLENGTH'} < $self->{' LENGTH'}) + { + # WOFF table is compressed. Have to uncompress first + $self->read_dat; + $fh->print($self->{' dat'}); + return $self; + } + + # We don't really have to keep the following code... we could have + # just always done a full read_dat() on the table. But the following + # is more memory-friendly so I've kept it for the more common case + # of non-compressed tables. + $self->{' INFILE'}->seek($self->{' OFFSET'}, 0); $len = $self->{' LENGTH'}; while ($len > 0) @@ -428,12 +447,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Ttc.pm libfont-ttf-perl-1.05/lib/Font/TTF/Ttc.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Ttc.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Ttc.pm 2014-12-10 01:40:25.000000000 +0000 @@ -159,12 +159,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Ttopen.pm libfont-ttf-perl-1.05/lib/Font/TTF/Ttopen.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Ttopen.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Ttopen.pm 2014-12-10 01:40:25.000000000 +0000 @@ -177,8 +177,9 @@ =item RULES -The rules are a complex array. Each element of the array corresponds to an -element in the coverage table (governed by the coverage index). If there is +The rules are a complex array. In most cases, each element of the array +corresponds to an element in the coverage table (governed by the coverage index). +In a few caess, such as when there is no coverage table, then there is considered to be only one element in the rules array. Each element of the array is itself an array corresponding to the possibly multiple string matches which may follow the initial glyph. Each @@ -240,8 +241,6 @@ This is the offset to the class definition for the after match glyphs. -=back - =item ACTION_TYPE This string holds the type of information held in the ACTION variable of a RULE. @@ -272,6 +271,8 @@ =back +=back + =head1 METHODS =cut @@ -411,7 +412,7 @@ } foreach $lTag (@{$l->{$tag}{'LANG_TAGS'}}, 'DEFAULT') { - # Make copies of referenced languages for each reference. + # Make copies of referenced languages for each reference. next unless $l->{$tag}{$lTag}{' REFTAG'}; $temp = $l->{$tag}{$lTag}{' REFTAG'}; $l->{$tag}{$lTag} = ©($l->{$tag}{$temp}); @@ -1328,12 +1329,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Useall.pm libfont-ttf-perl-1.05/lib/Font/TTF/Useall.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Useall.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Useall.pm 2014-12-10 01:40:25.000000000 +0000 @@ -87,12 +87,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Utils.pm libfont-ttf-perl-1.05/lib/Font/TTF/Utils.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Utils.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Utils.pm 2014-12-10 01:40:25.000000000 +0000 @@ -623,12 +623,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Vhea.pm libfont-ttf-perl-1.05/lib/Font/TTF/Vhea.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Vhea.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Vhea.pm 2014-12-10 01:40:25.000000000 +0000 @@ -164,12 +164,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Vmtx.pm libfont-ttf-perl-1.05/lib/Font/TTF/Vmtx.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Vmtx.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Vmtx.pm 2014-12-10 01:40:25.000000000 +0000 @@ -79,12 +79,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Win32.pm libfont-ttf-perl-1.05/lib/Font/TTF/Win32.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Win32.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Win32.pm 2014-12-10 01:40:25.000000000 +0000 @@ -34,12 +34,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Woff/MetaData.pm libfont-ttf-perl-1.05/lib/Font/TTF/Woff/MetaData.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Woff/MetaData.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Woff/MetaData.pm 2014-12-10 01:40:25.000000000 +0000 @@ -8,12 +8,6 @@ Currently a stub, thus read() results in read_dat() -=head1 INSTANCE VARIABLES - -=over 4 - -=back - =cut use Font::TTF::Utils; @@ -25,16 +19,13 @@ =head1 AUTHOR -Bob Hallissy. L - +Bob Hallissy. L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. - - =cut diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Woff/PrivateData.pm libfont-ttf-perl-1.05/lib/Font/TTF/Woff/PrivateData.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Woff/PrivateData.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Woff/PrivateData.pm 2014-12-10 01:40:25.000000000 +0000 @@ -8,12 +8,6 @@ Currently a stub, thus read() results in read_dat() -=head1 INSTANCE VARIABLES - -=over 4 - -=back - =cut use Font::TTF::Utils; @@ -23,20 +17,16 @@ 1; - =head1 AUTHOR -Bob Hallissy. L - +Bob Hallissy. L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. - - =cut diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/Woff.pm libfont-ttf-perl-1.05/lib/Font/TTF/Woff.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/Woff.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/Woff.pm 2014-12-10 01:40:25.000000000 +0000 @@ -46,12 +46,12 @@ =head1 AUTHOR -Bob Hallissy. L +Bob Hallissy. L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF/XMLparse.pm libfont-ttf-perl-1.05/lib/Font/TTF/XMLparse.pm --- libfont-ttf-perl-1.04/lib/Font/TTF/XMLparse.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF/XMLparse.pm 2014-12-10 01:40:25.000000000 +0000 @@ -177,12 +177,12 @@ =head1 AUTHOR -Martin Hosken L. +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/lib/Font/TTF.pm libfont-ttf-perl-1.05/lib/Font/TTF.pm --- libfont-ttf-perl-1.04/lib/Font/TTF.pm 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/Font/TTF.pm 2015-01-26 09:20:04.000000000 +0000 @@ -1,6 +1,7 @@ package Font::TTF; -$VERSION = '1.04'; # MJPH 8-Jan-2014 License, POD, and perl -w tidying; bug fixes +$VERSION = '1.05'; # MJPH 19-Jan-2015 Bug fixes; updated OT tags; GSUB Lookup Type 8 support +# $VERSION = '1.04'; # MJPH 8-Jan-2014 License, POD, and perl -w tidying; bug fixes # $VERSION = '1.03'; # MJPH 5-Sep-2013 Add $t->minsize() # $VERSION = '1.02'; # MJPH 30-Aug-2012 Fix case typo in Useall # $VERSION = '1.01'; # MJPH 30-Aug-2012 add IO::String prerequisite @@ -31,16 +32,16 @@ =head1 AUTHOR -Martin Hosken L +Martin Hosken L. (see CONTRIBUTORS for other authors). =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2015, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. . -=cut \ No newline at end of file +=cut diff -Nru libfont-ttf-perl-1.04/lib/ttfmod.pl libfont-ttf-perl-1.05/lib/ttfmod.pl --- libfont-ttf-perl-1.04/lib/ttfmod.pl 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/lib/ttfmod.pl 2014-12-10 01:40:25.000000000 +0000 @@ -175,11 +175,11 @@ =head1 AUTHOR -Martin Hosken L +Martin Hosken L. =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This script is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/MANIFEST libfont-ttf-perl-1.05/MANIFEST --- libfont-ttf-perl-1.04/MANIFEST 2014-01-13 02:02:00.000000000 +0000 +++ libfont-ttf-perl-1.05/MANIFEST 2015-01-26 09:20:17.000000000 +0000 @@ -84,7 +84,6 @@ Makefile.PL MANIFEST This list of files MANIFEST.SKIP -MYMETA.yml README.TXT t/OFL.txt t/tags.t @@ -92,4 +91,5 @@ t/testfont.woff t/ttfcopy.t TODO -META.yml Module meta-data (added by MakeMaker) +META.yml Module YAML meta-data (added by MakeMaker) +META.json Module JSON meta-data (added by MakeMaker) diff -Nru libfont-ttf-perl-1.04/MANIFEST.SKIP libfont-ttf-perl-1.05/MANIFEST.SKIP --- libfont-ttf-perl-1.04/MANIFEST.SKIP 2014-01-10 02:12:12.000000000 +0000 +++ libfont-ttf-perl-1.05/MANIFEST.SKIP 2015-01-26 09:20:04.000000000 +0000 @@ -31,3 +31,4 @@ ^doc-pak \.swp ^\.hg/ +^MYMETA\..*$ diff -Nru libfont-ttf-perl-1.04/META.json libfont-ttf-perl-1.05/META.json --- libfont-ttf-perl-1.04/META.json 1970-01-01 00:00:00.000000000 +0000 +++ libfont-ttf-perl-1.05/META.json 2015-01-26 09:20:17.000000000 +0000 @@ -0,0 +1,41 @@ +{ + "abstract" : "TTF font support for Perl", + "author" : [ + "martin_hosken@sil.org" + ], + "dynamic_config" : 1, + "generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.120921", + "license" : [ + "artistic_2" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "Font-TTF", + "no_index" : { + "directory" : [ + "t", + "inc" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "runtime" : { + "requires" : { + "IO::String" : "0" + } + } + }, + "release_status" : "stable", + "version" : "1.05" +} diff -Nru libfont-ttf-perl-1.04/META.yml libfont-ttf-perl-1.05/META.yml --- libfont-ttf-perl-1.04/META.yml 2014-01-13 02:02:00.000000000 +0000 +++ libfont-ttf-perl-1.05/META.yml 2015-01-26 09:20:17.000000000 +0000 @@ -1,22 +1,22 @@ ---- #YAML:1.0 -name: Font-TTF -version: 1.04 -abstract: TTF font support for Perl +--- +abstract: 'TTF font support for Perl' author: - - martin_hosken@sil.org -license: artistic_2 -distribution_type: module -configure_requires: - ExtUtils::MakeMaker: 0 + - martin_hosken@sil.org build_requires: - ExtUtils::MakeMaker: 0 -requires: - IO::String: 0 -no_index: - directory: - - t - - inc -generated_by: ExtUtils::MakeMaker version 6.57_05 + ExtUtils::MakeMaker: 0 +configure_requires: + ExtUtils::MakeMaker: 0 +dynamic_config: 1 +generated_by: 'ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.120921' +license: artistic_2 meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: 1.4 + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: 1.4 +name: Font-TTF +no_index: + directory: + - t + - inc +requires: + IO::String: 0 +version: 1.05 diff -Nru libfont-ttf-perl-1.04/MYMETA.yml libfont-ttf-perl-1.05/MYMETA.yml --- libfont-ttf-perl-1.04/MYMETA.yml 2014-01-10 02:14:18.000000000 +0000 +++ libfont-ttf-perl-1.05/MYMETA.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ ---- -abstract: 'TTF font support for Perl' -author: - - martin_hosken@sil.org -build_requires: - ExtUtils::MakeMaker: 0 -configure_requires: - ExtUtils::MakeMaker: 0 -distribution_type: module -dynamic_config: 0 -generated_by: 'ExtUtils::MakeMaker version 6.57_05' -license: artistic_2 -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: 1.4 -name: Font-TTF -no_index: - directory: - - t - - inc -requires: - IO::String: 0 -version: 1.04 diff -Nru libfont-ttf-perl-1.04/README.TXT libfont-ttf-perl-1.05/README.TXT --- libfont-ttf-perl-1.04/README.TXT 2014-01-10 02:09:34.000000000 +0000 +++ libfont-ttf-perl-1.05/README.TXT 2014-12-10 01:40:25.000000000 +0000 @@ -87,12 +87,12 @@ =head1 AUTHOR -Martin Hosken L +Martin Hosken L. (see CONTRIBUTORS for other authors). =head1 LICENSING -Copyright (c) 1998-2013, SIL International (http://www.sil.org) +Copyright (c) 1998-2014, SIL International (http://www.sil.org) This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE. diff -Nru libfont-ttf-perl-1.04/t/tags.t libfont-ttf-perl-1.05/t/tags.t --- libfont-ttf-perl-1.04/t/tags.t 2013-09-05 07:36:34.000000000 +0000 +++ libfont-ttf-perl-1.05/t/tags.t 2014-12-03 01:57:44.000000000 +0000 @@ -8,7 +8,7 @@ ok($ttnames{'LANGUAGE'}{'AFK '} eq 'Afrikaans', 'ttnames{LANGUAGE}'); -ok($ttnames{'LANGUAGE'}{'DHV '} eq 'Dhivehi (deprecated)' && $ttnames{'LANGUAGE'}{'DIV '} eq 'Dhivehi', 'ttnames{LANGUAGE} Dhivehi'); +ok($ttnames{'LANGUAGE'}{'DHV '} eq 'Divehi (Dhivehi, Maldivian) (deprecated)' && $ttnames{'LANGUAGE'}{'DIV '} eq 'Divehi (Dhivehi, Maldivian)', 'ttnames{LANGUAGE} Dhivehi'); ok($ttnames{'FEATURE'}{'cv01'} eq 'Character Variants 01', 'ttnames{FEATURE}');