summaryrefslogtreecommitdiff
path: root/fonts/utilities/fontools/bin/autoinst
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/utilities/fontools/bin/autoinst')
-rwxr-xr-xfonts/utilities/fontools/bin/autoinst51
1 files changed, 32 insertions, 19 deletions
diff --git a/fonts/utilities/fontools/bin/autoinst b/fonts/utilities/fontools/bin/autoinst
index c8ce5a3c2e..30a6a0f0ed 100755
--- a/fonts/utilities/fontools/bin/autoinst
+++ b/fonts/utilities/fontools/bin/autoinst
@@ -40,7 +40,7 @@ use Getopt::Long ();
use Pod::Usage ();
use POSIX ();
-my $VERSION = '20191029';
+my $VERSION = '20191118';
my ($d, $m, $y) = (localtime time)[3 .. 5];
my $TODAY = sprintf "%04d/%02d/%02d", $y + 1900, $m + 1, $d;
@@ -150,16 +150,16 @@ for my $full (keys %ABBREV) {
=cut
my @NFSS_WEIGHT = (
- ul => [ qw( ultralight thin hairline eight four two ) ],
- el => [ qw( extralight ) ],
- l => [ qw( light ) ],
+ ul => [ qw( ultralight thin 100 hairline eight four two ) ],
+ el => [ qw( extralight 200 ) ],
+ l => [ qw( light 300 ) ],
sl => [ qw( semilight blond ) ],
- '' => [ qw( regular text book ) ],
- sb => [ qw( semibold demibold medium ) ],
- b => [ qw( bold ) ],
- eb => [ qw( extrabold ) ],
- ub => [ qw( ultrabold black heavy extrablack ultrablack
- ultraheavy poster super ) ],
+ '' => [ qw( regular text book 400 ) ],
+ sb => [ qw( semibold demibold 600 medium 500 ) ],
+ b => [ qw( bold 700 ) ],
+ eb => [ qw( extrabold 800 ) ],
+ ub => [ qw( ultrabold black heavy extrablack ultrablack 900
+ ultraheavy poster super 1000 ) ],
);
my %NFSS_WEIGHT = @NFSS_WEIGHT;
@NFSS_WEIGHT = grep { !ref } @NFSS_WEIGHT;
@@ -709,10 +709,13 @@ sub decide_nfss_mappings {
# Special case: if we don't have Regular but we *do* have Medium,
# move Medium from the "sb" list to the "m" (i.e., Regular) one.
- if ( !@{$NFSS_WEIGHT{''}} and $weight{medium} ) {
- $NFSS_WEIGHT{''} = [ 'medium' ];
- $NFSS_WEIGHT{sb}
- = [ grep { $_ ne 'medium' } @{$NFSS_WEIGHT{medium}} ];
+ if ( !@{$NFSS_WEIGHT{''}} ) {
+ my $alternate = ( grep { $weight{$_} } qw(medium 500) )[0];
+ if ($alternate) {
+ $NFSS_WEIGHT{''} = [ $alternate ];
+ $NFSS_WEIGHT{sb}
+ = [ grep { $_ ne $alternate } @{$NFSS_WEIGHT{sb}} ];
+ }
}
# Some more trickery to map the sl code to Book or Text (but of course
@@ -1292,9 +1295,11 @@ sub parse_options {
END_WARNING_TARGET_UPDMAP
}
elsif (!$ARGV{target}) {
- my $kpsepath = eval {
- qx( kpsewhich -expand-var='\$TEXMFLOCAL:\$TEXMFHOME' );
- };
+ my $is_windows_os = ( $^O =~ /^MSWin/i );
+ my $kpsepath = $is_windows_os
+ ? eval { qx( kpsewhich -expand-var=\$TEXMFLOCAL;\$TEXMFHOME ) }
+ : eval { qx( kpsewhich -expand-var='\$TEXMFLOCAL:\$TEXMFHOME' ) }
+ ;
if (!$kpsepath) {
warn <<"END_WARNING_KPSEWHICH";
[WARNING] Call to "kpsewhich" failed.
@@ -1305,7 +1310,8 @@ END_WARNING_TARGET_UPDMAP
END_WARNING_KPSEWHICH
}
else {
- for my $dir ( split m/[:;]/xms, substr $kpsepath, 0, -1 ) {
+ my $pathsep = $is_windows_os ? ';' : ':';
+ for my $dir ( split m/$pathsep/xms, substr $kpsepath, 0, -1 ) {
if (-w $dir) { $ARGV{target} = $dir; last }
if (-e $dir) { next }
my $par = File::Spec->catdir( $dir, File::Spec->updir() );
@@ -1787,6 +1793,7 @@ sub write_stylefile {
$fn = File::Spec->catfile($dir, $fn);
open my $STY, '>', $fn
or die "[ERROR] Can't create '$fn': $!";
+ binmode $STY;
print {$STY} <<"END_STY_HEADER";
%% Generated by autoinst on $TODAY
@@ -1995,6 +2002,7 @@ sub write_fdfile {
$fn = File::Spec->catfile($dir, $fn);
open my $FD, '>', $fn
or die "[ERROR] Can't create '$fn': $!";
+ binmode $FD;
print {$FD} <<"END_FD_HEADER";
%% Generated by autoinst on $TODAY
@@ -2825,7 +2833,7 @@ GNU General Public License for more details.
=head1 VERSION
-This document describes B<autoinst> version 20191029.
+This document describes B<autoinst> version 20191118.
=head1 RECENT CHANGES
@@ -2834,6 +2842,11 @@ This document describes B<autoinst> version 20191029.
=over 12
+=item I<2019-11-18>
+
+Fine-tuned calling of F<kpsewhich> on Windows (patch by Akira Kakuto).
+The font info parsing now also recognises numerical weights, e.g. in Museo.
+
=item I<2019-10-29>
The generated style files now use T1 as the default text encoding.