Afdko

Latest version: v4.0.2

Safety actively analyzes 690721 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 8 of 18

2.6.25

----------------------------

This release fixes the following issues:

- [CheckOutlinesUFO] Skip glyphs whose names are referenced in the
UFO's lib but do not exist
([228](https://github.com/adobe-type-tools/afdko/issues/228))
- Partial Python 3 support in `BezTools.py`, `ConvertFontToCID.py`,
`FDKUtils.py`, `MakeOTF.py`, `StemHist.py`, `autohint.py`,
`buildMasterOTFs.py` and `ufoTools.py`
([231](https://github.com/adobe-type-tools/afdko/issues/231),
232, 233)
- [makeotfexe] Fixed parsing of Character Variant (cvXX) feature
number
([237](https://github.com/adobe-type-tools/afdko/issues/237))
- [pip] Fixed `pip uninstall afdko`
([241](https://github.com/adobe-type-tools/afdko/issues/241))

2.6.22

----------------------------

The **afdko** has been restructured so that it can be installed as a
Python package. It now depends on the user's Python interpreter, and no
longer contains its own Python interpreter.

In order to do this, the two Adobe-owned, non-opensource programs were
dropped: `IS` and `checkOutlines`. If these turn out to be sorely
missed, an installer for them will be added to the old Adobe afdko
website. The current intent is to migrate the many tests in
checkOutlines to the newer `checkOutlinesUFO` (which does work with
OpenType and Type 1 fonts, but currently does only overlap detection and
removal, and a few basic path checks).

Older releases can be downloaded from the [repository's Releases
page](https://github.com/adobe-type-tools/afdko/releases?after=2.6.22).

2.5.66097

-------------------------------

This only lists the major bug fixes since the last release. For a
complete list see:
<https://github.com/adobe-type-tools/afdko/commits/master>

- [buildCFF2VF] Add version check for fontTools module: only
starting with version 3.19.0 does fontTools.cffLib build correct
PrivateDict BlueValues when there are master source fonts not at the
ends of the axes.
- [makeotfexe] Support mapping a glyph to several Unicode values.
This can now be done by providing the the UV values as a
comma-separated list in the third field of the GlyphOrderAndAliasDB
file, in the 'uniXXXXX' format.
- [makeotfexe] Fixed a crashing bug that can happen when the
features file contains duplicate class kern pairs. Reported by
Andreas Seidel in email.
- [makeotfexe] Add fatal messages if a feature file 'cvParameters'
block is used in anything other than a Character Variant (cvXX)
feature, or if a 'featureNames' block is used in anything other
than a Stylistic Set (ssXX) feature.
- [makeotfexe] Relaxed restrictions on name table name IDs. Only 2
and 6 are now reserved for the implementation.
- [makeotfexe] Fixed bug where use of the 'size' feature in
conjunction with named stylistic alternates would cause the last
stylistic alternate name to be replaced by the size feature menu
name. Incidentally removed old patent notices.
- [makeotfexe] Restored old check for the fatal error of two
different glyphs being mapped to the same character encoding.
- [makeotfexe] If the last line of a GOADB file did not end in a
new-line, makeotf quit, saying the line was too long.
- [otf2otc] Can now take a single font as input, and can take an OTC
font as input.
- [sfntdiff] Fixed old bug: it used to crash if no file path or only
one file path was provided.
- [sfntdiff] Changed behavior: it now returns non-zero only if a
real error occurs; it used to return non-zero when there was a
difference between the fonts.
- [spot] Fixed old bug: a PrivateDict must exist, but it is legal
for it to have a length of 0.
- [tx *et al.*] Add support for reading and writing blended hints
from/to CFF2.

2.5.65811

-------------------------------

- [makeInstancesUFO] Preserve public.postscriptNames lib key.
- [makeInstancesUFO] Do not use postscriptFontName attribute.
- [makeotf] New option -V to print MakeOTF.py script version.
- [tx] Added new option '-maxs', to set the maximum number of
subroutines allowed. The default is now 32K, as some legacy systems
cannot support more than this.
- [tx] Add improved CFF2 support: tx can now use the option -cff2 to
write from a CFF2 font (in a complete OpenType font) to a file
containing the output CFF2 table, with full charstring optimization
and subroutinization. This last option is still work in progress: it
has not been extensively tested, and does yet support blended hints.
- [tx] Several bug fixes for overlap removal.
- [tx] Fixed bug in subroutinization that could leave a small number
of unused subroutines in the font. This cleanup is optional, as it
requires 3x the processing speed with the option than without, and
typically reduces the font size by less than 0.5 percent.
- [ttxn] Option '-nv' will now print name IDs 3 and 5, but with
the actual version number replaced by the string "VERSION
SUPPRESSED".
- [ufoTools] FIx autohint bug with UFO fonts: if edit a glyph and
re-hint, autohint uses old processed layer glyph.

2.5.65781

-------------------------------

- [variable fonts] **buildMasterOTFs** new script to build OTF font
files from UFO sources, when building variable fonts.
- [variable fonts] **buildCFF2VF** new command to build a CFF2
variable font from the master OTF fonts.
- [autohint] Fixed bug introduced by typo on Dec 1 2015. Caused
BlueFuzz to always be set to 1. Rarely causes problems, but found it
with font that sets BlueFuzz to zero; with BlueFuzz set to 1, some
of the alignment zones were filtered out as being closer than
BlueFuzz\*3.
- [autohint] Fixed long-standing bug with UFO fonts where if a glyph
was edited after being hinted, running autohint would process and
output only the old version of the glyph from the processed layer.
- [CheckOutlinesUFO] Added "quiet mode" option.
- [CheckOutlinesUFO] Fixed a bug where logic could try and set an
off-curve point as a start point.
- [CheckOutlinesUFO] Changed the logic for assigning contour order
and start point. The overlap removal changes both, and
checkOutlinesUFO makes some attempt to restore the original state
when possible. These changes will result in different contour order
and start points than before the change, but fixes a bug, and will
usually produce the same contour order and start point in fonts that
are generated as instances from a set of master designs. There will
always be cases where there will be some differences.
- [MakeOTF] Replace old logic for deriving relative paths with
python function for the same.
- [MakeOTF] When converting Type 1 to CID in makeotf, the logic in
mergeFonts and ConvertFontToCID.py was requiring the FDArray
FontDicts to have keys, like FullName, that are not in fact
required, and are often not present in the source fonts. Fixed both
mergeFonts and ConvertFontToCID.py.
- [MakeOTF] By default, makeotf will add a minimal stub DSIG table
in release mode. The new options '-addDSIG' and '-omitDSIG' will
force makeotf to either add or omit the stub DSIG table. This
function was added because the Adobe Type group is discontinuing
signing font files.
- [makeotfexe] Fixed bug in processing UVS input file for makeotf
for non-CID fonts.
- [makeotfexe] Fixed bug where makeotf would reject a nameID 25
record when specified in a feature file. This nameID value used to
be reserved, but is now used for overriding the postscript family
named used with arbitrary instances in variable fonts.
- [mergeFonts] Removed requirement for mergeFonts that each FontDict
have a FullName, Weight, and Family Name. This fixes a bug in using
mergeFonts with UFO sources and converting to CID-keyed output font.
Developers should not have to put these fields in the source fonts,
since they are not required.
- [spot] Fixed bug in name table dump: Microsoft platform language
tags for Big5 and PRC were swapped.
- [stemHist] Removed debug print line, that caused a lot of annoying
output, and was left in the last update by accident.
- [tx] When getting Unicode values for output, the presence of UVS
cmap meant that no UV values were read from any other cmap subtable.
I fixed this bug, but 'tx' still does not support reading and
showing UVS values. Doing so will be a significant amount of work,
so I am deferring that to my next round of FDK work.
- [tx] Added support for CFF2 variable fonts as source fonts: when
using -t1 or -cff, these will be snapshotted to an instance. If no
user design vector (UDV) argument is supplied, then the output will
be the default data. If a UDV argument is supplied with the option
-U, then the instance is built at the specified point in the design
space.
- [tx] Added new option +V/-V to remove overlaps in output Type 1
fonts (mode -t1) and CFF fonts (mode -cff). This is still
experimental.
- [tx] Made the subroutinizer a lot faster; the speed bump is quite
noticeable with CJK fonts. (by Ariza Michiharu)
- [tx] Added new option (+V/-V) to remove overlaps. (by Ariza
Michiharu)
- [ttx] Updated to version 3.9.1 of the fontTools module from master
branch on GitHub.

2.5.65322

-------------------------------

- [CMAP files] Updated UniCNS-UTF32-H to v1.14
- [build] Made changes to allow compiling under Xcode 7.x and OSX
10.11
- [documentation] Fixed a bunch of errors in the Feature File spec.
My thanks to Sascha Brawer, who has been reviewing it carefully. See
the issues at
<https://github.com/adobe-type-tools/afdko/issues/created_by/brawer>.
- [autohint] Fixed support for history file, which can be used with
non-UFO fonts only. This has been broken since UFO support was
added.
- [autohintexe] Fixed really old bug: ascenders and descenders get
dropped from the alignment zone report if they are a) not in an
alignment zone and b) there is an overlapping smaller stem hint.
This happened with a lot of descenders.
- [checkOutlines] Fixed bug in ufoTools.py that kept checkOutlines
(NOT checkOutlinesUFO) from working with a UFO font.
- [checkOutlines] Fixed bug which misidentified orientation of path
which is very thin and in part convex. I am a bit concerned about
the solution, as what I did was to delete some logic that was used
to double-check the default rules for determining orientation.
However, the default logic is the standard way to determine
orientation and should always be correct. The backup logic was
definitely not always correct as it was applied only to a single
point, and was correct only if the curve associated with the point
is concave. It is in fact applied at several different points on a
path, with the majority vote winning. Since the backup logic is used
only when a path is very thin, I suspect that it was a sloppy
solution to fix a specific case. The change was tested with several
large fonts, and found no false positives.
- [makeInstances] Fixed bug which produced distorted shapes for
those glyphs which were written with the Type 1 'seac' operator,
a.k.a. Type 1 composite glyphs.
- [makeotfexe] Fixed bug where using both kern format A and B in a
single lookup caused random values to be assigned.
- [makeotfexe] Fixed bug where a format A kern value (a single
value) would be applied to X positioning rather than Y positioning
for the features 'vkrn'. Applied same logic to vpal, valt, and
vhal.
- [makeotfexe] Finally integrated Georg Seifert's code for
supporting hyphen in development glyph names. This version differs
from Georg's branch in that it does not allow any of the special
characters in final names (i.e. the left side names in the
GlyphAliasAndOrderDB). However, allowing this is a smaller tweak
than it used to be: just use the same arguments in
`cb.c:gnameFinalScan()` as in `gnameDevScan()`. This update also
includes Georg's changes for allow source fonts to have CID names
in the form 'cidNNNN'.
- [ConvertToCID] Fixed bug that the script expected in several
places that the fontinfo file would contain at least one user
defined FontDict.
- [ConvertToCID] Fixed bug that the script expected that the source
font would have Weight and Adobe Copyright fields in the font dict.
- [makeotf] Fixed a bug that kept the '-nS' option for having any
effect when the '-cn' option is used.
- [makeotfexe] Remove use of 'strsep()'; function is not defined
in the Windows C library.
- [makeotf] Fixed bug in removing duplicate and conflicting entries.
Changed logic to leave the first pair defined out of a set of
duplicate or conflicting entries.
- [makeotfexe] Fixed bug in processing GDEF glyph class statements:
if multiple GlyphClass statements were used; the additional glyphs
were added to a new set of 4 glyph classes, rather than merged with
the allowed 4 glyph classes.
- [makeotfexe] Fixed issue in GDEF definition processing. Made it an
error to specify both LigCaretByPosition and LigCaretByIndex for a
glyph.
- [makeotfexe] Corrected error message: language and system
statements are allowed in named lookups within a feature definition,
but are not allowed in stand-alone lookups.
- [makeotf] Corrected typo in MakeOTF.py help text about what the
default source font path.
- [makeotfexe] Fixed an old bug in makeotf. If a mark-to-base or
mark-to-mark lookup has statements that do not all reference the
same mark classes, makeotfexe used to write a 'default' anchor
attachment point of (0.0) for any mark class that was not referenced
by a given statement. Fixed this bug by reporting a fatal error: the
feature file must be re-written so that all the statements in a
lookup must all reference the same set of mark classes.
- [makeotf] Suppressed warning about not using GOADB file when
building a CID font. Some of the changes I made a few weeks ago to
allow building fonts with CIDs specified as glyphs names with the
form 'cidNNNNN' allowed this warning to be be shown, but it is not
appropriate for CID-keyed fonts.
- [makeotf] Fixed old bug where using option -'cn' to convert a
non-CID source font to CID would cause a mismatch between the maxp
table number of glyphs and the number of glyph actually in the output
font, because the conversion used the source font data rather than
the first pass name-keyed OTF which had been subject to glyph
subsetting with the GOADB file.
- [makeotf] Fixed bug in reading UVS files for non\_CID fonts.
- Fixed copyright statements that are incompatible with the open
source license. Thanks to Dmitry Smirnov for pointing these out.
These were in some make files, an example Adobe CMAP file, and some
of the technical documentation.
- Fixed typos in help text in ProofPDF.py. Thank you Arno Enslin.
- [ttxn] Fixed bug in ttxn.py that broke it when dumping some
tables, when used with latest fontTools library.
- [tx] Fixed bug in rounding fractional values when flattening
library elements, used in design of CJK fonts.
- [tx] Fixed bug in handling FontDict FontMatrix array values: not
enough precision was used, so that 1/2048 was written as 1/2049 in
some cases.
- [tx] Fixed bug in reading UFO fonts, so that glyphs with no
`<outline>` element and with a `<lib>` element would be skipped.
- [tx] Minor code changes to allow 'tx' to compile as a 64 bit
program.
- [tx] Fixed bug in dumping AFM format data, introduced when tx was
updated to be 64 bit.
- [tx] Fixed bug in processing seac, introduced in work on rounding
fractional values.
- [tx] Fixed bug in writing AFM files: -1 value would be written as
4294967295 instead of -1.
- [tx] Added option -noOpt, renamed blend operator from 'reserved'
to 'blend'. This was done in order to support experiments with
multiple master fonts.
- [tx] When reading a UFO font: if it has no Postscript version
entry, set the version to 1.0.
- [tx] When writing a UFO font: if StemSnap[H,V] are missing, but
Std[H,V]W are present, use the Std[H,V]W values to supply the
UFO's postscript StemSnap[H,V] values.
- [tx] Fixed old bug with rounding decimal values for BlueScale is
one of the few Postscript values with several places of decimal
precision. It is stored as an ASCII text decimal point number in T1,
T2, and UFO files, but is stored internally as a C 'float' value
in some programs. Real values in C cannot exactly represent all
decimal values. For example, the closest that a C 'float' value
can come to "0.375" is "0.03750000149".When writing output
fonts, tx was writing out the latter value in ASCII text, rather
than rounding back to 0.0375. Fixed by rounding to 8 decimal places
on writing the value out. This bug had no practical consequences, as
0.0375 and 0.03750000149 both convert to exactly the same float
value, but was annoying, and could cause rounding differences in any
programs that use higher precision fields to hold the BlueScale
value.

Page 8 of 18

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.