FDKReleaseNotes.txt
===============================================================================
FDK. v2.5 Dec 1 2017 change number 66097.

	This lists only 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.
	
	Fixed a crashing bug that can happen when the features file contains duplicate class kern pairs. Reported by Andreas Seidel in email.
	
	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.
	
	Relaxed restrictions on name table name IDs. Only 2 and 6 are now reserved for the implementation.
	
	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.
	
	restored old check for the fatal error of two different glyphs being mapped to the same character encoding.
	
	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. 
	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 and family.
	Add support for reading and writing blended hints from/to CFF2. 
		
FDK. v2.5 April 27 2017 change number 65781.

	makeInstancesUFO.
	Preserve public.postscriptNames lib key.
	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.
	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.	
	Several bug fixes for overlap removal.
	Fixed bug in subroutinization that could leave a small number of unused subroutines in the font. This clean-up 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 ID's 3, and 5, but with the actual version number replaced by the string "VERSION SUPPRESSED".

FDK. v2.5 April 3 2017 change number 65781.

	Variable fonts.
	buildMasterOTFs. new command to build OTF font files from UFO sources, when building variable fonts.
	buildCFF2VF. New command  to build a CFF2 Variable font from the master OTF fonts.


	autohint.
	Fix 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.
	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.
	Fixed a bug where logic could try and set an off-curve point as a start point.
	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.py
	Replace old logic for deriving relative paths with python function for the same.
	When converting Type1 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 and are often not present in the source fonts. Fixed both mergeFonts and ConvertFontToCID.py.
	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.
	fix bug in processing UVS input file for makeotf for non-CID fonts.
	Fixed bug where makeotf would reject a name ID 25 record when specified in a feature file. This name id value used to be reserved, but is now used for 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 shouldn't 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 the my round of FDK work.
	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 design space.
	Added new option +V/-V to remove overlaps in output Type 1 fonts ( mode -t1) and CFF fonts (mode -cff). This is still experimental: please report any bugs.
	Updated subroutinizer to much faster with larger fonts. (by Ariza Michiharu)
	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.
	
FDK. v2.5 May 27 2016 change number 65322.

	Adobe CMAP files for CJK fonts.
	Updated UniCNS-UTF32-H to v1.14

	Build issues.
	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 this carefully. See the issues raised by him in Jan
	and Feb 2016 on https://github.com/adobe-type-tools/afdko.
	
	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. Fixed bug which mis-identified 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 back-up 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, aka Type 1 composite glyphs.
	
	makeotf.
	Fixed bug where using both kern format A and B in a single lookup caused
	random values to be assigned.
	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.
	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, 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 Geeorg Seifert's changes for allow
	source fonts to have CID names in the form 'cidNNNN'.
	Fixed bugs in ConvertToCID.py module, that kept the -cn option from working
	with a simple source font.
	- fixed bug that the script expected in several places that the fontinfo file
	would contain at least one user defined FontDict.
	- fixed bug that the script expected that the src font would have Weight and
	AdobeCopyright fields in the font dict.
	- fixed a bug that kept the ‘-nS’ option for having any effect when the ‘-cn’ option is used.
	Remove use of 'strsep()': function is not defined in the Windows C library
	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.
	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.
	Fixed issue in GDEF definition processing. Made it an error to specify both LigCaretByPosition
	and LigCaretByIndex for a glyph.
	Corrected error message: language and system statements are allowed in named lookups within
	a feature definition, but are not allowed in stand-alone lookups.
	Corrected typo in MakeOTF.py help text about what the default source font path.
	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, makeotf 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.
	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 CID's
	specified as glyphs names with the form 'cidNNNNN' allowed this warning to
	be be shown, but it is not appropriate for CID-keyed fonts.
	Fixed old bug where using option -'cn' to convert a nonCID source font to
	CID would cause a mis-match between the maxp table  number of glyphs and the
	numver 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.
	Fixed bug in reading UVS files for non_CID fonts.
	
	misc.
	Fix copyright statements that are incompatible with the OpenSource 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 PrrofPDF.py. Thank you Arno Enslin.
	
	ttxn
	Fix bug in ttxn.py that broke it when dumping some tables, when used with
	latest font tools library on github.

	tx.
	Fixed bug in rounding fractional values when flattening library elements,
	used in design of CJK fonts.
	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.
	Fixed bug in reading UFO fonts, so that glyphs with no <outline> element and
	with a <lib> element would be skipped.
	Minor code changes to allow 'tx' to compile as a 64 bit program.
	Fixed bug in dumping afm format data, introduced when tx was updated to be 64 bit.
	Fixed bug in processing seac, introduced in work on rounding fractional values.
	Fixed bug in writing AFM files: -1 value would be written as 4294967295	instead of -1.
	Add option -noOpt, rename blend operator from 'reserved' to 'blend'. This was done in
	order to support experiments with  multiple master fonts.
	When reading a UFO font: if it has no Postscript version entry, set the version to
	1.0.
	When writing a UFO font: If StemSnap[H,V] are missing, but Std[H,V]W are
	present, then use the Std[H,V]W values to supply the UFO postscript
	StemSnap[H,V] values.
	Fixed old bug in 'tx' 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.
	
FDK. v2.5 Dec 1 2015 change number 65012.

	makeotf.
	Fixed bug in MakeOTF.py that kept makeotf from building fonts with spaces in the path.
	Fixed bug in ConvertFontToCID module that kept makeotf from converting UFO fonts to CID.
	Changed support for Unicode Variation Sequence file ( option -ci) so that
	when used with name-keyed fonts, the Region-Order field is omitted, and the
	glyph name may be either a final name or developer glyph name. Added warning
	when glyph in the UVS entry is not found in font. See MakeOTF User's Guide.
	Fixed bug in makeotfexe: it now always makes a cmap table subtable MS
	platform, Unicode, format 4 for CID fonts: this is required by Windows. If
	there are no BMP unicode values, then it makes a stub subtable, mapping GID 0
	to UVS 0.
	
	tx and related programs.
	When reading a UFO source font, do not complain if the fontinfo.plistentry
	"styleName" is present but has is an empty string. This is valid, and is
	common when the style is "Regular".
	
FDK. v2.5 Nov 22 2015 change number 64958.

	autohint and tx.
	Switched to using new text format that is plist-compatible for T1 hint data in UFO fonts.
	See header of FDK/Tools/SharedData/FDKScripts/ufoTools.py for format.
	
	autohint
	Finally fixed excessive generation of flex hints. This has been an issue for
	decades, but never got fixed because it didn't show up anywhere as a
    problem. The last version of makeotf turned on parsing warnings, and so now
	we notice.
	
	checkOutlinesUFO
	Fixed bug where abutting paths didn't get merged if there were no changes in the set of points.
	Fixed bug where a .glif file without an <outline> element was treated as
	fatal error. It is valid for the <outline> element to be missing.
	
	checkOutlines
	Changed -I option so that it also turns off checking for tiny paths. Added
	new option -5 to turn this check back on again.
	Increased max number of paths in a glyph from 64 to 128, per request from a developer.
	
	CompareFamily.py
	Fix old bug in applying ligature width tests for CID fonts, and fixed issue
	with fonts that do not have Mac name table names. The logic now reports
	missing Mac name table names only if there actually are some: if there are
	none, these messages are suppressed.

	
	fontplot/waterfallplot/hintplot/fontsetplot
	Fix bugs that prevented these from being used with CID-keyed fonts and ufo
	fonts. Since the third party library that generates the PDF files is very
	limited, I did this by simply converting the source files to a name-keyed
	Type 1 temporary font file, and then applying the tools the temporary file.
	
	makeInstancesUFO:
	Added a call to the ufonormalizer tool for each instance. Also added a call
	to the defcon library to remove all private lib keys from lib.py and each
	glyph in the default layer, excepting only "public.glyphOrder".
	
	MakeOTF User Guide.
	Fix typos reported by Gustavo Ferreira
	
	MakeOTF.py.
	Increased max number of directories to look upwards when searching for
	GOADB/FontMenuNameDB from 2 to 3.
	Added three new options.
	-omitMacNames/useMacNames   Write only Windows platform menu names in name table,
                        apart from the names specified in the feature file.
                        -useMacNames writes Mac as well as Windows names.

	-overrideMenuNames      Allow feature file name table entries to override
                        default values and the values from the font menu name DB
                        for name IDs. Name ID's 2 and 6 cannot be overridden.
                        Use this with caution, and make sure you have provided
                        feature file name table entries for all platforms.

	-skco/nskco             do/do not suppress kern class optimization by using left
                        side class 0 for non-zero kern values. Optimizing saves a few
                        hundred to thousand bytes, but confuses some programs.
                        Optimizing is the default behavior, and previously was the only option.
	Allow building an OTF from a UFO font only. The internal features.fea file
	will be used if there is no "features" file in the font's parent directory.
	If the GlyphAliasAndOrderDB file is missing, only a warning will be issued.
	If the FontMenuNameDB is missing, makeotf will attempt to build the font
	menu names from the UFO fontinfo file, using the first of the following keys
	found: "openTypeNamePreferredFamilyName", "familyName", the family name part
	of the PostScriptName,  and finally the value "NoFamilyName". For style, the
	keys are: "openTypeNamePreferredSubfamilyName", "styleName", the style name
	part of the PostScriptName, and finally the value "Regular".
	Fixed bug where MakeOTF allowed the input file path and the output file path
	to be the same.
	
	makeotfexe.
	Extended the set of characters allowed in glyph names to include + * : ~ ^ !
	Allow developer glyph names to start with numbers: final names must still
	follow the PS spec.
	Fixed crashing bug with more than 32K glyphs in a name-keyed font, reported
	by Gustavo Ferreira. Merged changes from Kahled Hosny, to remove requirement
	that 'size' feature menu names have Mac platform names.
	Added three new options: see above.
	Code maintenance in generation of the feature file parser. Rebuilt the
	'antler' parser generator to get rid of a compile-time warning for
	zzerraction, and changed featgram,g so that it would generate the current
	featgram.c, rather than having to edit the latter directly. Deleted the
	object files for the 'antler' parser generator, and updated the read-me for
	the parser generator.
	Fixed really old bug: relative include file references in feature files
	haven't worked right since the FDK moved from Mac OS 9 to OSX. They are now
	relative to the parent directory of the including feature file. If that is
	not found, then makeotf tries to apply the reference as relative to the main
	feature file.
	Changed glyph name parsing rules so that ‘friendly’ glyph names can start
	with a sequence of numbers. Final glyph names still cannot start with a
	number.

	spot.
	Fixed bug in dumping stylistic feature names.
	Fixed bug proofing vertical features: needed to use vkern values. Fix contributed by Hiroki Kanou.
	
	tx family
	Fix crash when using '-gx' option with source UFO fonts for 'tx' family of tools.
	Fix crash when a UFO glyph point has a name attribute with an empty string.
	Fix crash when a UFO font has no public.glyphOrder dict in the lib.plist file.
	Fix really old bug in reading TTF fonts, reported by Belleve Invis. TrueType
	glyphs with nested component references and x/y offsets or translation get
	shifted.
	Added new option '-fdx' to select glyphs by excluding all glyphs with the
	specified FDArray indicies. This and the '-fd' option now take lists and
	ranges of indices, as well as a single index value.
	 
	ufonormalizer
	Added a command to call the ufonormalizer tool.
	
	Misc
	Updated to latest modules for booleanOperatons, defcon (ufo3 branch),
	fontMath (ufo3 branch), fontTools, mutatorMath, and robofab (ufo3 branch).
	The FDK no longer contains any private branches of third party modules.
	Rebuilt the Mac OSX, Linux and Windows Python interpreters in the AFDKO,
	bringing the Python version up to 2.7.10. The python interpreters are now
	built for 64 bite systems, and will not run on 32 bit systems.
	

FDK. v2.5 Aug 4 2015 change number 64700.

	autohint.
	Fixed bug in ufoTools.py that was harmless but annoying. Everytime that
	'autohint -all' was run, it added a new program name entry to the history
	list in the hash map for each processed glyph. You saw this only if you
	opened the hashmap file with a text editor, and perhaps eventually in
	slightly slower performance.
	
	checkOutlinesUFO. 
	Fixed bug where presence of outlines with only one or two points caused a stack dump.

	makeotf.
	Fixed bug reported by Paul van der Laan: failed to build ttf file when
	the output file name contains spaces.
	
	spot.
	Fixed new bug that caused spot to crash when dumping GPOS 'size' feature in 
	feature file format.
	
FDK. v2.5 July 17 2015 change number 64655.

	autohint.
	Fixed bug in ufoFontTools.py which placed a new hint block after a flex
	operator, when it should be before.
	Fixed new bug in hinting non-UFO fonts, introduced by switch to absolute
	coordinates in the bez file interchange format.
	Fixed bugs in using hashmap to detect previously hinted glyphs.
	Fixed bugs in handling the issue that checkOutlinesUFO.py, which uses the
	defcon library to write UFO glif files, will in some cases write glif files
	with different file names than they had in the default glyph layer.

	makeotf. Fixed bug with Unicode values in the absolute path to to the font
	home directory.
	Add support for Character Variant (cvXX) feature params.
	Fixed bug where setting Italic style forced OS/2 version to be 4.
	
	spot. Added support for cvXX feature params. 
	Fixed in crash in dumping long contextual substitution strings, such as in
	'GentiumPlus-R.ttf'.
	
	tx, IS, mergeFonts rotateFont:
	fixed bug in handling CID glyph ID greater than 32K.
	Changed to write widths and FontBBox as integer values
	Changed to write SVG, UFO, and dump coordinates with 2 places of precision
	when there is a fractional part.
	Fixed bugs in handling the '-gx' option to exclude glyphs. Fixed problem
	with CID > 32K. Fixed problem when font has 65536 glyphs: all glyphs after
	first last would be excluded.
	Fixed rounding errors in writing out decimal values to cff and t1 fonts
	Increased interpreter stack depth to allow for CUBE operators (Library
	elements) with up to 9 blend axes.
	
	misc
	Fixed windows builds: had to provide a roundf() function, and more includes for
	the _tmpFile function. Fixed a few compile errors.
	Fix bug in documentation for makeInstancesUFO
	Fix bug in BezTools.py on Windows, when having to use a temp file


FDK. v2.5 May 26 2015 change number 64261.

	autohintexe. Worked through a lot of problems with fractional coordinates.
	In the previous release, autohintexe was changed to read and write
	fractional values. However, internal value storage used a Fixed format with
	only 7 bits of precision for the value. This meant that underflow errors
	occurred with 2 decimal places, leading to incorrect coordinates. I was able
	to fix this by changing the code to use 8 bits of precision, which supports
	2 decimal places (but not more!) without rounding errors, but this required
	many changes. The current autohint output will match the output of the
	previous version for integer input values, with two exceptions. Fractional
	stem values will (rarely) differ in the second decimal place. The new
	version will also choose different hints in glyphs which have coordinate
	values outside of the range -16256 to +16256; the previous version had a bug
	in calculating weights for stems.
	
	autohint. Changed logic for writing bez files to write absolute coordinate
	values instead of relative coordinate values. Fixed bug where truncation of
	decimal values lead to cumulative errors in positions adding up to more than
	1 design unit over the length of a path.
	
	tx. Fixed bugs in handling fractional values. tx had a bug with writing
	fractional values that are very near an integer value for the modes -dump.
	-svg, and -ufo. 'tx' also always applied the logic for applying a user
	transform matrix, even though the default transform is the identity
	transform. This has the side-effect of rounding to integer values.
	
FDK. v2.5 April 8 2015 change number 64043.

	checkOutlinesUFO.
	Added  new logic to delete any glyphs from the processed layer which are
	not in the ‘glyphs’ layer.

	makeotf.
	When building CID font, some error messages were printed twice. 
	Add new option -stubCmap4. This causes makeotf to build only a stub cmap 4
	subtable, with just two segments. Needed only for special cases like
	AdobeBlank, where every byte is an issue. Windows requires a cmap format 4
	subtable, but not that it be useful.

	makeCIDFont.
	Output FontDict was sized incorrectly. A function at the end adds some FontInfo keys, but did not increment the size of the dict. Legacy logic is to make the FontInfo dict be 3 larger than the current number of keys.

	makeInstanceUFO:
	Changed FDK branch of mutatorMath so that kern values, glyph widths, and the
	BlueValues family of global hint values are all rounded to integer even when
	the –decimal option is used.
	makeInstanceUFO now deletes the default ‘glyphs’  layer of the target
	instance font before generating the instance. This solves the problem that
	when glyphs are removed from the master instances, the instance font still
	has them.
	Added a new logic to delete any glyphs from the processed layer which are
	not in the ‘glyphs’ layer.
	Removed the ‘-all’ option: even though mutatorMath rewrites all the glyphs,
	the hash values are still valid for glyphs which have not been edited. This
	means that if the developer edits only a few glyphs in the master designs,
	only those glyphs in the instances will get processed by checkOutlinesUFO
	and autohint .

	Support decimal coordinate values in fonts in UFO workflow.

	checkOutlinesUFUO (but not checkOutlines), autohint, and makeInstancesUFO
	will now all pass through decinal coordinates without rounding, if you use
	the new option "-decimal". 'tx' will dump decinal values with 3 decimal places.

	'tx' already reported fractional values, but needed to be modified to report
	only 3 decimal places when writing UFO glif files, and in PDF output mode -
	Acrobat won't read PDF files with 9 decimal places in position values.
	
	This allows a developer to use a much higher precision of point positioning
	without using a large em-square. The Adobe Type group found that using an
	em-square of other than 1000 design units still causes problems in layout
	and text selection line height in many apps, despite it being legal by the
	Type 1 and CFF specifications. 
	
	Note that code design issues in 'autohint'currently limit the decimal
	precision and accuracy to 2 decimal places. 1.01 is works, 1.001 will be
	rounded to 0.
	
	
	
FDK. v2.5 March 3 2015 change number 63782.

	tx.
	Fix bug in reading ttf's. Font version was taken from the name table, which
	can include a good deal more than just the font version. Changed to read
	fontRevision from the head table.
	
	detype1.
	Changed to wrap line only after an operator name, so that the coordinates
	for a command and the command name would stay on one line.
	
	Misc.
	otf2otc.py. Pad table data with 0's so as to align tables on a 4 boundary. Submitted by Cosimo Lupo.
	
FDK v2.5 Feb 21 2015 change number 63718.

	autohint
	Fixed a bug with processing flex hints in ufoTools.py, that caused outline distortion.
	
	compareFamily.
	Fixed bug in processing hints: it would miss fractional hints, and so
	falsely report a glyph as having no hints.
	Fixed so that it would survive a CFF font with a missing Full Name key.
	

	checkOutlinesUFO
	Coordinates are written as integers, as well as being rounded.
	Changed save function so that only the processed glyph layer is saved, and
	the default layer is not touched.
	Changed so that XML type is written as 'UTF-8' rather than 'utf-8'. This was
	actually a change in the FontTools xmlWriter.py module.
	Fixed typos in usage and help text.
	Fixed hash dictionary handling so that it will work with autohint, when
	skipping already processed glyphs.
	Fixed false report of overlap removal when only change was removing flat curve
	Fixed stack dump when new glyph is seen which is not in hash map of
	previously processed glyphs.
	Added logic to make a reasonable effort to sort the new glyph contours in
	the same order as the source glyph contours, so the final contour order will
	not depend on (x,y) position. This was needed because the pyClipper library
	(which is used to remove overlaps) otherwise sorts the contours in (x,y)
	position order, which can result in different contour order in different
	instance fonts from the same set of master fonts.
	
	makeInstancesUFO.
	Changed so that the option -i (selection of  which instances to build) actually works.
	Removed dependence on existence of instance.txt file.
	Changed to call checkOutlinesUFO rather than checkOutlines
	Removed hack of converting all file paths to absolute file paths: this was a
	work-around for a bug in robofab-ufo3k that is now fixed.
	Removed all references to old instances.txt meta data file.
	Fixed so that current dir does not have to be the parent dir of the design space file.
	
	Misc
	Merged fixes from the Github AFDKO OpenSource depot.
	Updated to latest modules for defcon, fontMath, robofab, and mutatorMath.
	Fix for Yosemite (Mac OSX 10.10) in FDK/Tools/setFDKPaths. When an FDK script 
	is run from another Python interpreter, such as the one in Robofont, the parent
	Python interpreter may set the Unix environment variables PYTHONHOME and
	PYTHONPATH. This can cause the AFDKO Python interpreter to load some modules
	from its own library, and others from the parent interpreters library. If these
	are incompatible, a crash ensues.  The fix is to unset the variables PYTHONHOME
	and PYTHONPATH before the AFDKO interpreter is called. 
	Note: AS a separate issue, under Mac OSX 10.10, Python calls to FDK commands
	will  only  work  if  the calling app is run from the command-line (e.g:
	“open /Applications/RoboFont.app“), and the argument "shell="True" is added
	to the subprocess module call to open a system command. I favor also adding
	the argument "stderr=subprocess.STDOUT", else you will not see error
	messages from the Unix shell. Example:
	"log = subprocess.check_output("makeotf -u" , stderr=subprocess.STDOUT , shell=True)".

FDK v2.5 Dec 02 2014 change number 63408.

	spot.
	Fixed error message in GSUB chain contextual 3 proof file output. spot was
	adding it as a shell comment to the proof output, cuasing conversion to PDF
	to fail.

	makeotf.
	Increase limit for glyph name length from 31 to 63 characters. This is not
	encouraged in shipping fonts, as there may be text engines that will not
	accept glyphs with more than 31 characters. This was done to allow building
	test fonts to look for such cases.
	
FDK v2.5 Sep 18 2014 change number 63209.

	makeInstancesUFO.
	Added new script to build instance fonts from UFO master design fonts. This
	uses the design space XML file exported by Superpolator 3 in order  to
	define the design space, and the location of the masters and instance fonts
	in the design space. The definition of the format of this file, and the
	library to use the design space file data, is in the OpenSource mutatorMath
	library on GitHub, and maintained by Erik van Blokland. There are several
	advantages of the Superpolator design space over the previous makeInstances
	script, which uses the Type1 Multiple Master font format to hold the master
	designs. The new version:
	 - allows different master designs and locations for each glyph
	 - allows master designs to be arbitrarily placed in the design space, and
	 hence allows intermediate masters.
	 In order to use the mutatorMath library, the FDK-supplied Python now
	 contains the robofab, fontMath, and defcon libraries, as well as
	 mutatorMath.

	ttx. Updated to the latest branch of the fontTools library as maintained by
	Behdad Esfahbod on GitHub. Added a patch to cffLib.py to fix a minor problem
	with choosing charset format with large glyph sets.
	
	Misc.
	Updated four Adobe-CNS1-* ordering files.

FDK v2.5 Sep 8 2014 change number 63164.

	makeotf.
	Fixed MakeOTF.py to detect "IsOS/2WidthWeightSlopeOnly" as well as the
	misspelled "IsOS/2WidthWeigthSlopeOnly", when processing the fontinfo file.

	Changed behavior when 'subtable' keyword is used in a lookup other than
	class kerning. This condition now triggers only a warning, not a fatal
	error. Requested by FontForge developers.
	
	Fixed bug which preventing making TTF fonts under Windows. This was a
	problem in quoting paths used with the 'ttx' program.
	
	Installation.
	Fixed installation issues. Removed old Windows install files from the
	Windows AFDKOPython directory. This was causing installation of a new FDK
	version under Windows to fail when the user's PATH environment variable
	contained the path to the AFDKOPython directory. Also fixed command file for
	invoking ttx.py.
	
	Misc.
	Updated files used for building ideographic fonts with Unicode IVS
	sequences: FDK/Tools/SharedData/Adobe
	Cmaps/Adobe-CNS1/Adobe-CNS1_sequences.txt and Adobe-Korea1_sequences.txt
	
FDK v2.5 May 14 2014 change number 62754.
	IS, addGlobalColor. When using the -'bc' option, fixed bug with overlow for CID value
	in dumping glyph header. Fixed bug in IS to avoid crash when logic for glyphs > 72 points is used.

	makeotfexe.
	Fixed bug that  applied '-gs' option as default behavior, subsetting the source font to the 
	list of glyphs in the GOADB.
	
FDK v2.5 April 30 2014 change number 62690.

	makeotf
	When building output TTF font from an input TTF font, will now suppress
	warnings that hints are missing. Added a new option "-shw" to suppress
	these warnings for other fonts that with unhinted glyphs. These warnings
	are shown only when the font is built in release mode.
	If the cmap format 4 UTF16 subtable is too large to write, then makeotfexe 
	writes a stub subtable with just the first two segments.
	The last two versions allowed using '-' in glyph names. Removed this, as it
	breaks using glyph tag ranges in feature files.
	
	misc.
	Updated copyright, and removed
	patent references. Made extensive changes to the source code tree
	and build process, to make it easier to build the OpenSource FDK.
	Unfortunately, the source code for the IS and checkOutlines programs
	cannot be OpenSourced.
	
	tx, mergeFonts, rotateFonts
	Removed "-bc" option support, as this includes patents that cannot be shared
	in OpenSource.
	All tx-related tools now report when a font exceeds the max allowed
	subroutine recursion depth.
	
	mergeFonts, rotateFont, tx
	Added common options to all when possible: all now support ufo and svg fonts,
	the '-gx' option to exclude fonts, the '-std' option for cff output, 
	and the '-b' option for cff output.
	
FDK v2.5 April 5 2014 change number 61944.
	makeotf.
	Added new option '-gs'. If the '-ga' or '-r' option is used, then '-gs'
	will omit from the font any glyphs which are not named in the GOADB file.
	
	Linux.
	Replaced the previous build (which worked only on 64-bit systems)
	with a 32 bit version, and rebuilt checkOutlines with debug messages turned off.
	
	ttx.
	Fixed FDK/Tools/win/ttx.cmd file so that the 'ttx' command works again.
	
FDK v2.5 Mar 25 2014 change number 61911.

	makeotf.
	Add support for two new 'features' file keywords, for the OS/2 table.
	Specifying 'LowerOpSize' and 'UpperOpSize' now sets the values
	'usLowerOpticalPointSize' and 'usUpperOpticalPointSize' in the OS/2
	table, and set the table version to 5.
	Fixed the "-newNameID4" option so that if the style name is
	"Regular", it is omitted for the Windows platform name ID 4, as well
	as in the Mac platform version. See change in build 61250.
	
	tx.
	When the user does not specify an output destination file path ( in
	which case tx tries to write to stdout), tx now reports a fatal
	error if the output is a UFO font, rather than crashing.
	tx no longer crashes when encountering an empty "<dict/>" XML
	element.
	
	spot.
	Added logic to dump the new fields in OS/2 table version 5,
	usLowerOpticalPointSize and usUpperOpticalPointSize. An example of
	these values can be seen in the Windows 8 system font Sitka.ttc.
	
	UFO workflow.
	Fixed autohint and checkOutlines so that the '-o" option works, by
	copying the source ufo font to the destination ufo font name, and
	then running the program on the destination ufo font.
	Fixed tools that the PostScript font name is not required.

	Added Linux build.

FDK v2.5 Feb 17 2014 change number 61250.
	tx.
	Fixed rare crashing bug in reading a font file, where a charstring
	ends exactly on a refill buffer boundary.
	Fixed rare crashing bug in subroutinzation.
	Fixed bug in 'tx' where it reported values for wrong glyph with more
	than 32K glyphs in the font.
	Fixed bug where 'tx' wouldn't dump a TrueType Collection font file
	that contained OpenType/CFF fonts.
	Fixed issue where it failed to read a UFO font if the UFO font lacked
	a fontinfo.plist file, or a psFontName entry.
	
	IS.
	Fixed IS so that it no longer scales the fontDict FontMatrix, when a
	scale factor is supplied, unless you provide an argument to request
	this.
	
	makeotf.
	The option '-newNameID4' now builds both Mac and Win name ID 4 using
	name ID 1 and 2, as specified in the OpenType spec. The style name
	is omitted from name ID 4 it is "Regular".
	Changed logic for specifying ValueFormat for PosPair value
	records. Previous logic always used the minimum ValueFormat.
	Since changing ValueFormat between one PosPair record and the
	next requires starting a new subtable, feature files that used
	more than one position adjustment in a PosPair value record
	often got more subtable breaks then necessary, especially when
	specifying a PairPos statement with an all zero Value Record
	value after a Pair Pos statement with a non-zero Value Record.
	With the new logic, if the minimum ValueFormat for the new
	ValueRecord is different than the ValueFormat used with the
	ValueRecord for the previous PairPos statement, and the previous
	ValueFormat permits expressing all the values in the current
	ValueRecord, then the previous ValueFormat is used for the new
	ValueRecord.
	
	otc2otf'and 'otf2otc.
	Added commands 'otc2otf'and 'otf2otc' to build OpenType collection
	files from a OpenType font files, and vice-versa.
	
	ttx.
	Updated the FontTools library to the latest build on the GitHub branch
	maintained by Behdad Esfahbod, as of Jan 14 2014.

	UFO workflow.
	Fixed bugs in ufoTools.py. The glyph list was being returned in
	alphabetic order, even when the public.glyphOrder key was present in
	lib.py. Failed when the glyphOrder key was missing.
	
	
FDK v2.5 Oct 21 2013 change number 60908.

	Added some support for UFO workflow.
	
	tx. 
	tx can now take UFO font as a source font file for all outputs excpet rasterization.
	It prefers GLIF file from the layer
	'glyphs.com.adobe.type.processedGlyphs'. You can select another
	preferred layer with the option '-altLayer <layer name>'. Use 'None'
	for the layer name in order to have tx ignore the preferred layer
	and read GLIF files only from the default layer.
	
	tx can now write to a UFO with the option "-ufo". Note that it is
	NOT a full UFO writer. It writes only the information from the
	Postscript font data. If the source is an OTF or TTF font, it will
	not copy any of the meta data from outside the font program table.
	Also, if the destination is an already existing UFO font, tx will
	overwrite it with the new data: it will not merge the new font data
	with the old.
	
	Fixed bugs with CID values > 32K: use to write these as negative numbers
	when dumping to text formats such as AFM.
	
	autohint
	checkOutlines.
	
	These programs can now be used with UFO fonts. When the source is a
	UFO font, the option '-o" to write to another font is not permitted.
	The changed GLIF files are written to the layer
	'glyphs.com.adobe.type.processedGlyphs'. Each script maintains a hash
	of the width and marking path operators in order to be able to tell
	if the glyph data in the default layer has changed since the script
	was last run. This allows the scripts to process only those glyphs
	which have changed since the last run. The first run of autohint can
	take two minutes for a 2000 glyph font; the second run takes less then a
	second, as it does not need to process the unchanged glyphs.
	
	stemHist
	makeotf
	Can now take ufo fonts as source fonts.


FDK v2.5 Feb 26 2013 change number 60418.

	autohint
	Fixed bug: autohint did not skip commented-out lines in fontinfo file.
	
	makeOTF
	Add support for source font files in the 'detype1' plain text format.
	Added logic for "Language" keyword in fontinfo file. If present, 
	will attempt to set the CID font makeotf option -"cs" to set he Mac script value.
	
	compareFamily.
	
	Added check in Family Test 10 that font really is monospaced or not when either
	the FontDict isFixedPitch value or the Panose value says that it is monospaced.
	
	spot.
	
	Fixed bug that kept 'palt'/'vpal' features from being applied when proofing kerning.
	
FDK v2.5 Sept 4 2012 change number 58732.

	checkOutlines.
	
	Fixed bug where checkOutline would falsely identify the arms of an X as coincident paths,
	when the arms are formed by only two paths with identical bounding boxes.
	

FDK v2.5 Oct 31 2012 change number 59149.

	makeotf.

	When building OpenType/TTF files, changed logic to copy the OS/2 table usWinAscent/Descent
	values over the head table yMax/yMin values, if different. Ths was because:
	- both pairs are supposed to represent the real font bounding box top and bottom,and should be equal.
	- the TTF fonts we use as sources for maketof are built by FontLab
	- FontLab defines the font bounding for TrueType fonts
	box by using off-curve points as well as on-curve points.
	If a path does not have on-curve points at the top and bottom extremes,
	the font bounding box will end up too large. The  OS/2 table usWinAscent/Descent values,
	however, are set by makeotf useing the converted T1 paths, and are more accurate. Note that
	I do not try to fix the head table xMin and xMax. These are much less important, as the
	head table yMin and yMax values are used for line layout by many apps on the
	Mac, and I know of no applicaton for the xMin and yMin values.
	-changed default Unicode H CMAP file for Adobe-Japan1 CID fonts to use the UniJIS2004-UTF32-H file.
	
	misc.
	
	Added the CID font vertical layout files used with KozMinPr6N and KozGoPr6N:
	AJ16-J16.VertLayout.KozGo and AJ16-J16.VertLayout.KozMin
	Updated several Unicode CMAP files, used only with CID fonts.
	
	Added new Perl script, glyph-list.pl, used in building CID fonts. This replaces the 
	three scripts extract-cids.pl, extract-gids.pl, and extract-names.pl, which
	have been removed from the FDK.
	
	
FDK v2.5 Sept 13 2012 change number 58807.

	makeotf.
	
	Discovered that when building TTF fonts, the GDEF table wasn't being copied
	to the final TTF font file. Fixed.
		
FDK v2.5 Sept 4 2012 change number 58732.

	autohint.

	Added new feature to support sets of glyphs with different
	baselines. You can now specify several different sets of global
	alignment zones and stem widths, and apply them to particular sets
	of glyphs within a font when hinting. See option "-hfd" for
	documentation.

	Fix bug: allow AC to handle fonts with no BlueValues, aka alignment zones.

	Fix bug: respect BlueFuzz value in font.

	Fix bug: the options to suppress hint substitution and to allow changes now work.
	
	When hinting a font with no alignment zones or invalid alignment zones (and
	with the '-nb' option), set the arbitrary alignment zone outside the FontBBox,
	rather than the em-square.
	
	checkOutlines.
	
	Fixed bug where very thin elements would get identified as a tiny
	sub path, and get deleted.
	
	Fixed bug in determining path orientation. Logic was just following
	the on-path points, and could get confused by narrow concave inner
	paths, like parentheses with an inner contour following the outer
	contour, as in the Cheltenham Std HandTooled faces.

	Fixed bugs in determining path orientation. Previous logic did not
	handle multiple inner paths, or multiple contained outer paths.
	Logic was also dependent on correctly sorting paths by max Y of path
	bounding box. Replaced approximations with real bezier math
	to determine path bounding box accurately.
	
	Changed test for suspiciously large bounding box for an outline.
	Previous test checked for glyph bounding box outside of fixed limits
	that were based on a 1000 em square. The new test looks only for
	paths that are entirely outside a rectangle based on the font's em
	square, and only reports them: it does not ever delete them. Added
	new option '-b' to set the size of the design square used for the
	test.
	
	Fixed bug where it would leave a temp file on disk when processing a
	Type1 font.
	
	Removed test for coincident control points. This has not been an
	issue for decades. It is frequently found in fonts because designers
	may choose to not use one of the two control points on a curve. The
	unused control point then has the same coordinates as its nearest
	end-point, and would to cause checkOutlines to complain.

	compareFamily.
	
	Single Test 6. Report error if there is a patent number in the copyright.
	Adobe discovered that a company can be sued for lots of money if it ships
	any product with an expired patent number.
	
	Single Test 22 (check RSB and LSB of ligature vs the left and right
	ligature components) did not parse contextual ligature substitution
	rules correctly. Now fixed.
	
	Family Test 18. Survive OTF fonts with no blue values.
	
	Family Test 2 ( Check that the Compatible Family group has same name ID's in all languages except...)
	Added the WPF name ID's 21 and 22 to the exception list, which may not exist in all faces of a family.
	
	fontsetplot.
	Fixed so it works with CID fonts. Also fixed so that widow line
	control works right. Added new low level option for controlling
	point size of group header.
	
	Fixed syntax of assert statements. Produced error messages on first use of
	the *plot commands.
	
	kernCheck.
	
	Fix so that it survives fonts with contextual kerning. It does not, however,
	process the kern pairs in contextual kerning.
	
	makeotf.
	
	Fixed bug in mark to ligature. You can now use an <anchor NULL> element
	without having to follow it by a dummy mark class reference.
	
	Fixed bug which limited source CID fonts to a maximum of 254 FDArray elements,
	rather than the limit of 255 FDArray elements that is imposed by the CFF spec.
	
	Fixed bugs in automatic GDEF generation. When now GDEF is defined,
	all conflicting class assignments in the GlyphClass are filtered
	out. If a glyph is assigned to a make class, that assignment
	overrides any other class assignment. Otherwise, the first
	assignment encountered will override a later assignment. For
	example, since the BASE class is assigned first, assignment to the
	BASE class will override later assignments to LIGATURE or COMPONENT
	classes.
	
	Fix bug in validating GDEF mark attachment rules. This now validates
	the rules, rather than random memory. Had now effect on the output font,
	but did sometimes produce spurious error messages.
	
	Fix crashing bug when trying to report that a glyph being added to a mark
	class is already in the mark class.
	
	If the OS/2 code page bit 29 ( Macintosh encoding) is set, then also
	set bit 0 (Latin (1252). Under Windows XP and Windows 7, if only the
	Mac bit is set, then the font is treated as having no encoding, and
	you can't apply the font to even basic latin text.
		
	By default, set Windows name ID 4 (Full Name) same as Mac named ID
	4, instead of setting it to the PostScript name. This is in order to
	match the current definition of the name ID 4 in the latest OpenType
	spec. A new option to makeotf ("-useOldNameID4" ), and a new key in
	the fontinfo file ("UseOldNameID4"), will cause makeotf to still
	write the PS name to Windows name ID 4.
	
	Add support for WPF names, name ID 21 and 22.
	
	Fixed attachment order of marks to bug in generating Mark to
	Ligature ( GPOS lookup type 4). The component glyphs could be
	reversed.
	
	Fixed bug in auto-generating GDEF table when Mark to Mark ( GPOS
	lookup Type 4) feature statements are used. The target mark glyphs
	were registered as both GDEF GlyphClass Base and Mark glyphs, and
	the former took precedence. makeotfexe now emits a warning when a
	glyph gets assigned to more than one class when auto-generating a
	GDEF table GlyphClass, and glyphs named in mark to mark lookups are
	assigned only to the Mark GDEF glyph class,
	
	Fixed bugs in generating ttf fonts from ttf input. It now merges
	data from the head and hhea tables, and does a better job of dealing
	with the post table. The previous logic made incorrect glyph names
	when the glyphs with names from the Mac Std Encoding weren't all
	contiguous and at the start of the font.

	Added new option "-cn" for non-CID source fonts, to allow reading
	multiple global font alignment zones and stem widths from the
	fontinfo file, and using this to build a CID-keyed CFF table with an
	identity CMAP. This is experimental only; such fonts may not work in
	many apps.
	
	Fixed bug where the coverage table for an element in the match
	string for a chaining contextual statement could have duplicate
	glyphs. This happens when a glyph is specified more than once in the
	class definition for the element. The result is that the format 2
	coverage table has successive ranges that overlap: the end of one
	range is the same glyph ID as the start of the next range. Harmless,
	but triggers complaints in font validators.
	
	Updated to latest Adobe CMAP files for ideographic fonts. Changed name
	of CMAP directories in the FDK, and logic for finding the files.
		
	When providing a GDEF feature file definition, class assignments now may be empty:
		table GDEF {
			 GlyphClassDef ,,,;
		} GDEF;
	is a valid statement. You just need to provide all three commas and the final
	colon to define the four classes.
	The following statement builds a GDEF GlyphClass with an empty Components class.
		table GDEF {
			 GlyphClassDef [B], [L], [M], ;
		} GDEF;
	
	The glyph alias file now defines order in which glyphs are added to the
	end of the target font, as well as defining the subset and renaming.
	
	The "-cid <cidfontinfo>" option for converting a font to CID can now
	be used without a glyph alias file, if the source font glyphs have
	names in the form "cidXXXX", as is output when mergeFonts is used to
	convert from CID to name-keyed. If the "-cid <cidfontinfo>" option
	is used, and there is no  glyph alias file, then any glyphs in the
	font without a name in the form "cidXXXX" will be ignored.
	
	spot. 
	
	Added error message for duplicate glyph ID's in coverage tables with format 2,
	a problem caused by a bug in makeotf with some Adobe fonts that use chaining
	contextual substitution. Note: error message is written only if level 7 GSUB/GPOS
	dump is requested.
	
	Minor formatting changes to the GSUB/GPOS level 7 dump, to make it easier to 
	edit this into a real feature file. 
	
	When writing out feature file syntax for GPOS 'ignore pos' rules, the rule name
	is now written as 'ignore pos', not just 'ignore'.
	
	can now output glyph names up to 128 chars (note: these are not legal
	PostScript glyph names, and should be encountered only in development fonts.)
	
	Has new option "-ngid" which suppresses output of the trailing glyph ID "@<gid>"
	for TTF fonts.
	
	No longer dumps the DefaultLangSys entry when there is none.
	
	Changed dump logic for contextual and chain contextual lookups so
	that spot will not  dump the lookups referenced by the substitution
	or position rules in the contextual lookups. The previous logic led
	to some lookups getting dumped many times, and also to infinite
	loops in  cases where a contextual lookup referenced other
	contextual lookups.
	
	Added support for Apple kern subtable format 3. Fixed old bug
	causing crash when dumping font with Apple kern table from Windows
	OS.
	
	Fixed error when dumping Apple kern table subtable format 0, when
	kern table is at end of font file.
	
	Fixed crashing bug seen in DejaVuSansMono.ttf: spot didn't expect an anchor offset
	to be zero in a Base Array base Record.
	
	Removed comma from lookupflag dump, to match feature file spec.
	
	Added logic to support name table format 1, but it probably doesn't
	work, since I have been unable to find a font to test with this
	format.
	
	Fixed spelling error for "Canadian" in OS/2 code page fields.
	
	Changed dump of cmap subtable 14: hex values are uppercased, and base + UVS
	values are written in the order [ base, uvs].

	
	
	stemHist.
	
	Always set the alignment zones outside the font BBox, so as to avoid having the source
	font alignment zones affect collection of stem widths.
	
	Fix bug where the glyph names reported in the stem and alignment reports were off by 
	1 GID if the list of glyphs included the '.notdef' glyph.
	

	tx.
	
	Added support for option "-n" to remove hints for writing Type1 and CFF output fonts.

	Added new option "+b" to the cff output mode, to force glyph order in the output font
	to be the same as in the input font.

	Fixed bug in flattening 'seac' operator. If the glyph components were not in the first 256 glyphs, 
	then the wrong glyph would be selected.
	
	Added new library to read in svg fonts as a source. tx can now read
	all the svg formats that it can write. Handles only the path
	operators:
	M, m, L, L, C, c, Z, z,
	and the font and glyph attributes:
	'font-family', 'unicode', 'horiz-adv-x', 'glyph-name', 'missing-glyph'.

	Fixed bug in converting TTF to OpenType/CFF. It flipped the sign of
	the ItalicAngle in the 'post' table, which in turn flipped the sign
	of the OS/2 table fields ySubscriptXOffset and ySuperscriptXOffset.
	This bug showed up in TTF fonts built by makeotf, as makeotf uses
	'tx' to build a temporary Type 1 font from the source TTF.
		
	Fixed bug where '-usefd' option wasn't respected, when converting from CID to name-keyed fonts.
	
	
	Miscellaneous.
	
	Updated the internal Python interpreter to version 2.7.

		Adobe Cmaps/Adobe-Japan1:
		 Updated files
		   Adobe-Japan1_sequences.txt
		   UniJIS-UTF32-H
		   UniJIS2004-UTF32-H
		   UniJISX0213-UTF32-H
		   UniJISX02132004-UTF32-H
		
		FDKScripts:
		Added several scripts relarted to CID font production.
			cmap-tool.pl
			extract-cids.pl
			extract-gids.pl
			extract-names.pl
			fdarray-check.pl
			fix-fontbbox.pl
			hintcidfont.pl
			subr-check.pl
	
FDK v2.5 March 4 2010 change number 25466.

	charplot.
	This was non-functional in the build 21898. Now fixed.
	
	checkOutlines.
	Changed so that the test for nearly vertical or horizontal lines is invoked only if
	the user specifies the options "-i" or "-4", instead of always. It turns out that this
	test, when fixed automatically, causes more problems than it cures in CJK fonts.
	
	compareFamily.
	Changed so that the default is to check stem widths and positions for bogus hints.
	Used 'tx' rather than Python code for parsing charstring in order to speed up hint check.
	Updated script tags and language tags according to OpenType specification version 1.6.

	
	Documentation. In feature file syntax reference, fixed some errors and bumped the document version to 1.10.
	Fixed  typo in example in section 4.d: lookFlag values are separated by spaces, not commas.
	Fixed  typo in example in section 8.c on stylistic names; examples: quotes around name string need to be matching double quotes.
	Reported by Karsten Luecke.
	Changed agfln.txt copyright notice to BSD license.
	
	makeInstances.
	Fixed bug where a space character in any of the path arguments caused it to fail.
	Fixed bug that can make the FontBBox come out wrong when using Extra glyphs.
	Fixed rounding bug that could (rarely) cause makeInstances to think that a
	composite glyph is being scaled ( which is not supported by this script) when it isn't.
	
	makeotf.
	Fixed bug in generating ttf fonts from ttf input. Previous version simply didn't work.

	spot.
	Added support for "Small" fonts, an Adobe internal Postscript variant used for
	CJK fonts.
	Added support for large kern tables, such as in  the Vista font
	Cambria,  where the size of the kern subtable exceeds the value that
	can be held in the subtable "length" field. In this case, the
	"length" filed must be ignored.
	Fixed proof option to show GPOS records in GID order by default, and in
	lookup order only with the -f" option. It had always been proofing the
	GPOS rules in lookup order since 2003.
	Fixed double memory deallocation when dumping ttc files; this could cause a crash.
	When deccompiling GSUB table to feature file format (-t GSUB=7) and reporting skipped lookups.
	identify lookups which are referenced by a chaining contextual rule.
	
	sfntedit.
	Changed final "done" message to be sent to stdout instead of stderr. Reported by Adam Twardoch.
	
	stemHist.
	Fixed typo in help text, reported by Lee Digidea
	"-all" option wasn't working - now fixed.
	
	tx.
	Added new option '-std' to force StdEncoding in output CFF fonts.

FDK v2.5 May 1 2009 change number 21898.

	autohint
	- Fixed rare case when an rrcurveto is preceded by such a long list of
	rlineto's that the stack limit is passed.
	- Fixed to restore font.pfa output file to StandardEncoding Encoding
	vector. Since requirements of CFF StandardEncoding differs from
	Type1 StandardEncoding, a StandardEncoding  Encoding vector in a
	Type 1 font was sometimes getting converted to a custom Encoding
	vector when being round-tripped through the CFF format which
	autohint does internally.
	
	checkOutlines.
	- Fixed random crash on Windows due to buffer overrun.
	- Fixed rare case when an rrcurveto is preceded by such a long list of
	rlineto's that the stack limit is passed.
	 - changed default logging mode to not report glyph names when there is no
	 error report for the glyph.
	- Fixed to restore font.pfa output file to StandardEncoding Encoding
	vector.  Since requirements of CFF StandardEncoding differs from
	Type1 StandardEncoding, a StandardEncoding  Encoding vector in a
	Type 1 font was sometimes getting converted to a custom Encoding
	vector when being round-tripped through the CFF format which
	autohint does internally.
	 
	CompareFamily. 
	- added "ring" to the list of accent names used to find (accented glyph,
	base glyph) pairs for "Single Face Test 23: Warn if any accented glyphs have
	a width different than the base glyph." Reported by David Agg.
	
	showfont/fontplot2
	- Renamed showfont to fontplot2 to avoid conflict with the Mac OSX showfont tool.
	- Fixed problem with showing vertical origin and advance: was not using VORG
	and vmtx table correctly.
	
	Instance Generator/FontLab scripts. Generating instance fonts from MM fonts.
	- Added logic to support eliminating "working" glyphs from instances, to
	substitute alternate glyph designs for specific instances, and to update
	more Font Dict fields in the instance fonts. Added help.
	- add command line equivalent, "makeInstances' which does the same thing, but
	which uses the IS tool for making the snapshot. See the 'IS' entry.
	
	IS.
	- Added new tool for "intelligent scaling". This uses the hinting in an MM
	font to keep glyph paths aligned when snapshotting from MM fonts. The
	improvement is most visible in glyphs with several elements that need to
	maintain alignment, such as percent and perthousand. It is also useful for
	the same reason when scaling fonts from a large em-square size to a smaller
	size. To be effective, the source MM font must be hinted and must have global
	alignment zones defined. The new font must be re-hinted. For instances from
	MM fonts especially, it is a good idea to re-do the alignment zones, as the
	blending of the MM base designs usually does not produce the best alignment
	zones or stem widths for the instance fonts. makeInstances and "Instance
	Generator" scripts allow you to preserve these modifications when re-doing
	the MM instance snapshot.

	makeotf
	- Fixed generation of version 1.2 GDEF table to match the final OpenType
	spec version 1.6. This version is generated only when the new lookup flag
	'UseMarkFilteringSet" is used.
	- Fixed generation of names for stylistic alternates features. There
	was a bug such that in some circumstances, the feature table entry
	for the stylistic alternate feature would point to the wrong lookup
	table.
	- Fixed generation of the reverse substitution lookup type. This was
	unintentionally disabled just before the previous release.
	- Fixed bugs in memory management of glyph objects. If the font built,
	it was correct, but this bug could cause the font to fail to build.
	
	spot.
	- Fixed to dump GDEF table version 1.2 according to the final OpenType spec
	version 1.6.
	- Fixed feature-format dump of the lookupflags MarkAttachmentType
	and UseMarkFilteringSet to give a class name as an argument, rather
	than a class index.
	- Extended the GDEF table dump to provide a more readable form.
	- added dump formats for htmx and vtmx to show the advance and side
	bearing metrics for all glyphs.
	
FDK v2.5 Jan 22 2009 change number 21340.
	AGLFN. Adobe Glyph List for New Fonts. Created new version 1.7.
	- Reverted to the AGLFN v1.4 name and Unicode
	assignments for Delta, Omega, and mu. The v1.6 versions were better from a
	designer's point of view, but we can't use name-to-Unicode value mappings
	that conflict with the historic usage in the Adobe Glyph List 2.0. Also
	removed afii and commaaccent names. See
	http://www.adobe.com/devnet/opentype/archives/glyph.html.
	-Dropped all the AFII names from the list: "uni" names are actually more
	descriptive, and map to the right Unicode values under Mac OSX.
	-Dropped all the commaccent names from the list: "uni" names map to the
	right Unicode values under Mac OSX before 10.4.x.
	
	autohint.
	 -converted AC.py script to call a command-line program rather than
	 a Python extension module, same way makeotf works, to avoid 
	 continuing Python version problems.
	- fixed so autohint will actually emit vstem3 and hstem3 hint operators
	(counter control hints, which work to keep the space between three stems
	open and equal, as in an 'm') - this has been broken since the first FDK. It
	will now also look in the same directory as the source font for a file named
	"fontinfo", and will attempt to add stem3 hints to the glyph which are
	listed by name in the name list for the keys "HCounterChars" or
	"VCounterChars".
	- fixed old bug where autohint would only pay attention to the bottom four
	of the top zone specified in the Font Dict BlueValues list. This results in
	more edge hints in tall glyphs.
	- fixed special case when adding flex operator which could result in an endless loop 
	-added 'logOnly' option, to allow collecting report without
	changing the font.
	- added option to specify which glyphs to exclude from autohinting
	- suppressed generation and use of <font-name>.plist file, unless it is 
	specifically requested.
	- Fixed bug where an extremely complex glyph would overflow a buffer of the list of hints.

	checkOutlines
	- improve overlap detection and path orientation. checkOutlines will
	now work with outlines formed by overlapping many stroke elements,
	as is sometimes done in developing CJK fonts.
	- added new test for nearly vertical or horizontal lines. Fixed bug
	in this new code, reported by Erik van Blokland.
	
	CompareFamily.
	- For the warning that the Full Family name in the CFF table differs from
	that in the name table, changed it to a "Warning" rather than "Error", and
	explained that there is no functional consequence.
	- Removed check that Mac names ID 16 and 17 do not exist, as makeotf now
	does make them. See notes in MakeOTF User Guide about this.
	- Fixed so it works with ttf fonts again.

    makeotf.
    - removed code that added a default Adobe copyright to the name table if
    n copyright is specified, and removed code to add a default trademark.
	- added support for the lookupflag UseMarkFilteringSet. This is
	defined in the proposed changes for OpenType spec 1.6, and is
	subject to change in definition.
	- Dropped restriction that vmtx/VORG/vhea tables will only be written
	for CID-keyed fonts. The presence in the feature file of either a 'vrt2' feature
	of of vmtx table overrides will now cause these tables to be written for both 
	CID-keyed and name-keyed fonts.
	- Added warning when a feature is referenced in the aalt feature definition,
	but either does not exist or does not contribute any rules to the aalt
	feature. The aalt feature can take only single and alternate substitution
	rules.
	- Added support for the following lookup types:
	   GSUB type 2 Multiple Substitution
	   GSUB type 8 Reverse Chaining Single Substitution
	   GPOS type 3 Cursive Adjustment
	   GPOS type 4 Mark-to-Base Attachment
	   GPOS type 5 Mark-to-Ligature Attachment
	   GPOS type 6 Mark-to-Mark Attachment
	- Added support for explicit definition of the GDEF table, and
	automatic creation of the GDEF when any of the lookup flag settings
	for ignoring a glyph class is used, or any mark classes are defined.
	- Support using TTF fonts as input, to build an OpenType/TTF font,
	with the limitation that glyph order and glyph names cannot be
	changed. This is rather ugly under the hood, but it works. The
	MakeOTF.py Python script uses the tx tool to convert the TTF font to
	CFF data without changing glyph order or names. It then builds an
	OpenType/CFF font. It then uses the sfntedit tool to copy the TTF
	glyph data to the OpenType font, and to delete the CFF table.
	- Added support for building in Unicode Variation Selectors for CID-keyed fonts,
	using the new cmap subtable type 14.
	- fixed bug with inheritance of default rules by scripts and languages
	in feature file feature definitions. Explicitly defined languages were
	only getting default rules defined after the last script  statement, and
	when a script is named, languages of the script which are not named got no
	rules at all.
	- fixed bug where you couldn't run makeotf when the current directory is not
	the same is the source font's home directory.
	- set OS/2.lastChar field to U+FFFF when using mappings beyond the BMP.
	- Create the Mac platform name table font menu names by the same rules
	as used for the Windows menu names. Add new keywords to the FontMenuNameDB file
	syntax. If you use the old keywords, you get the old format; if you use the new syntax, you get 
	name ID's 1,2 and 16 and 17 just like for the Windows platform.
	- Fixed bug in name table font menu names; if you entered a non-English
	Preferred name ("f=") and not a compatible family name ("c="), you would end
	up with a name ID 16 but no name ID 17.
	- fixed bogus " deprecated "except" syntax" message under Windows
	- fixed makeotf bug where contextual pos statements without backtrack or
	lookahead context is writing as a non-contextual rule. Karsten Luecke
	10/15/2007
	- add new option to make stub GSUB table when no GSUB rules are preset.
	- added warning if the aalt feature definition references any feature tags
	that either do not exist in the font, or do not contribute any rules that
	the aalt feature can use.
	
	
	sfntdiff.
	- fixed so that only error messages are written to stderr; all others now written
	to stdout
	- fixed bug in dump of name tale; when processing directories rather than individual files,
	the name name table text was never updated after the first file for the second directory.
	
	spot.
	- fixed option "F to show the contextual rule sub-lookup indices, and to flag those which have already been used by another lookup.
	- if a left side class 0 is empty, dont report it.
	- For GSUB/GPOS=7 feature-file-format dump, give each class a unique name in the entire font by appending the lookup ID to the class names.
	It was just LEFTCLASS_<class index>_<subtable index>, but these names are repeated in every lookup.
	It is now:
LEFTCLASS_c<class index>_s<subtable index>_l<lookup index>,
	- When a positioning value record has more than one value, print the full 4 item value record.  Previously, it would just print non-zero values. This was confusing when dumping Adobe Arabic, as you would see tow identical values at the end of some pos rules. In fact, each of these pos rule does have two adjustment values, one for x and one for y advance adjustment, that happen to be the same numeric value.
	- fixed to write backtrack context glyphs in the right order.
	
	tx.
	- Added option to NOT clamp design coordinates to within the design space when snapshotting
	MM fonts.
	- Add option to subroutinize the font when writing to CFF. This option is
	derived from the same code used by makeotfexe, but takes only about 10% the
	memory and runs much faster. This should allow subroutinizing large CJK
	fonts that makeotfexe couldn't handle. This is new code, so please test results
	carefully, i.e. if you use it, always check that the flattened glyphs
	outlines from the output font are identical to the flattened glyph outlines
	from the input font.
	
	ttxn
	- Added options to suppress hinting in the font program, and version and build numbers.
	
FDK v2.0 Nov 10 2007 build 27.

     compareFamily
     - Fixed Single Test3 bug, reported by Mark Simonson and others.
     CompareFamily should be comparing the Mac platform name ID 4  (name
     ID 1 + space + name ID 2, Style) with the target value, but was
     actually using the value of the nameid 18, Compatible Full Name
    - Fixed Family Test 2 to print a report that lets you figure out
    which {platform, script, language, name ID} is present in some fonts
    but not others.
    
    IS.
    Fixed a bug where applying hint-based scaling can cause an
    off-by-1 error when the the closepath position is supposed to
    coincide with the original moveto, leading to an effective final
    1-unit lineto, that may overlap the initial path. In the old MM
    design world, we worked around this issue by designing the MM's so
    that there was always a one unit difference between a final curveto
    point and the original moveto. FontLab doesn't support doing that
    automatically, so instead when making an instance, IS will simply
    look for cases where the moveto and closepath positions differ by
    one unit, and move the moveto position to coincide with the
    closepath position.
    
    makeotf.
    -Fixed bug reported by Adam Twardoch, where specifying thousands
    of singleton kern pairs could silently overflow offsets, and makeotf
    would build a bad font without any warning
    Added support for Unicode Variation Sequences. See MakeOTF User's Guide.
    - Fixed bug reported by Andreas Seidel, who pointed out that makeotf can
    use relative file paths only when the current dir is the source font
    directory. Project files can now be saved to directories other than the
    source font directory. Note that paths stored in project file are
    relative to the project file's directory.
    
    spot.
    Added support for Unicode Variation Sequences. See MakeOTF User's Guide, and
    Unicode Technical Standard #37 at: 
    http://unicode.org/reports/tr37/
    Fixed bug where contents of 'size' GPOS feature would be printed for
    all dump levels.
    Fixed bug where would fail on post table format 4.0. which occurs in some
    Apple TT fonts, such as Osaka.dfont
    
    Misc.
    Updated Adobe-Japan-1 CMAP files for building CID fonts
    

FDK v2.0 May 5 2007 build 26.

     Misc.
     - added "featurefile.plist" for BBedit. Install this in the location shown
     at the top of the file, and it adds limited coloring and function block
     selection support for BBedit. This fie is in FDK/Tools/SharedData
     - Added "MSFontValidatorIssues.html" to FDK/Technical Documentation. This lists
     the error messages from the MS FontValidator tool that can be ignored for
     OpenType/CFF fonts.

     FontLab macros
     - Added InstanceGenerator. Another script for making instances from a
     FontLab MM font VFB file. Simpler than MakeInstances, InstanceGenerator was
     written by the Adobe Type editors, and is actually used.
     - Fixed a bug in Set Start Points, reported by George Ryan. I had left a
     debug statement such it operated only on the first 50 glyphs.
    - added explanation of CheckOutlines errors to help dialog
 
     checkOutlines
     - add option -he to print explanation of error messages.

     compareFamily
     - Added error if font contains a CFF table Type 2  seac operator.
     This is very bad as the CFF spec does not support this operator.
     Some very old tools allow this to happen.
     
     makeotf
     - Fixed a bug in decomposing glyphs that are defined as composite glyphs in
     the Type 1 source font. This bug caused the base component to be shifted
     when then left side bearing of the composite glyph differs from that of
     the base glyph. This could be consequential, as FontLab has an option to
     not decompose composite glyphs when generating a Type 1 font.
     - Fixed a bug in MakeOTF.py in recognizing the order "Korea1" when trying
     to pick a default Mac cmap script ID from a CID-keyed font's Registry-Order-
     Supplement field.
     
     tx
      - fixed a bug in decomposing pretty much all composite glyphs from
      Type1 and CFF source fonts. This happened only when a Type 1 or
      CFF font was being subset, i.e. converted into a font with fewer
      glyphs. tx now has an option "+Z" to force this to occur.

FDK v2.0 March 30 2007 build 25.

    autohint.
    - Added a new option to allow extending the list of glyph names for which
    autohint will try to make  counter hints.
    - Fixed bug where T2 operator stack limit could be exceeded when 
   optimizing T2 charstring during conversion from bez format.
    - fixed bug in setting OtherBlues alignment zone values.
    
    FontLab Autohint.
    - the autohinting module behaves quite differently when adding flex is turned off;
    it makes more hint substitutions, since these are not allowed within the segment
    of the outline that contributes the 'flex' stem.
    Turned it on, so that hint results will be the same as the commnand-line tool.
    This does not affect the outline data.
    
    checkOutlines
    Fixed bug that kept checkOutlines from reporting two succesive points on top of
    each other. The code to convert from the source outline data to bez format
    was suppressing zero-length line segments, so the checkOutlines module never
    saw the problem.
    
    compareFamily. 
    - added new options '-st n1,n2.." and "-ft n1,n2.." to allow executing
    only one or a few single and family face tests.
    - Fixed Family Blues Test2. Warn if  a style-linked family group does not
    have FamilyBlues. When reporting error if FamilyBlues differ in a
    style-linked family group (where at least one font does have real
    FamilyBlues), use BlueValues as implied FamilyBlues when the latter
    attribute is missing from a font. Same for FamilyOtherBlues.
    - Fixed Family Blues Test2.  warn about zone outside of font BBox only if
    the entire zone is outside of the font BBox, not just one edge, and warn
    only for BlueValue zones, not FamilyBlueValue zones.
    - fixed fsType check. Complain if fsType is not 8 only when it is an Adobe
    font, determined by checking if the name table trademark string is empty or
    contains Adobe.
    Fixed Single Face Test 3 to compare the CFF Full Name with the name table
    Preferred Full Name (id 18) rather than the "Full Name" (id 4).
    - fixed new bug where it failed with CID fonts, because it referenced the
    "Private" dict attribute of the font's topDict, which doesn't exist in CID fonts.
    - fix new 'size' test to that it works right if the size feature is used only to
    indicate intended design size, and no range is supplied.
    - fixed ligature width check to also check that left and right side bearings
    match those of the left and right components, and to use the "liga' feature
    to identify ligatures and their components, instead of heuristics based  on
    glyph names.
    
    makeotf
    - Fixed makeotf to not allow negative values in the feature file for the
    OS/2 table winAscent and winDescent fields.
    - Fixed problem in previous FDKv2.0 builds: a lookup excluded with the
    exclude_dflt keyword was nevertheless included if the script/language was
    specified with a languagesystem statement.
    - Fixed problem under Windows where user would see a debug assert dialog
    when the OS/2 vendorID was not specified in the feature file, and the
    Copyright string contained an 8-bit ASCII character, like the 'copyright'
    character.
    - Fixed problem where name id 17 would be garbage if no FontMeuNameDB was
    supplied, and the PostScript name did not contain a hyphen, under Windows
    only.
    - added warning for Mac OSX pre 10.5 compatibility: total size of glyphs
    names plus 2 bytes padding per glyph must be less than 32K, or OSX will crash.
    - fix newly added bug where makeotf would crash if the feature file did not have
    a languagesystem statement.
    - fixed very old bug where the subroutinzer would allow a subroutine stack
    depth of up to 10, but the Type 1 and Type 2 specs allow only 9. This caused
    most rasterizers to declare the font invalid.
    - Removed -cv option; the CJK font vertical Unicode CMAP hasn't actually been used
    in the code for since FDK 1.6
    
    spot/otfproof
    - added support for low-lvel and feature file style text dumps for the GPOS
    Attachment formats 3,4,5 and 6.
    - added dump of lookup flag value to the feature-file style report
    - added MarkAndAttachmentClassDef record to report on GDEF table
    - added support for GSUB lookup type 2 (Multiple) within contextual
    substitution.
    - fixed bug in GSUB lookup 5, causing crash in dumping trado.ttf.
    - fixed bug in level 7 (feature-file syntax) dump of GPOS table; was
    omitting the value record for extension lookup types.
    - fixed  bug where crashed on Windows when proofing contextual substitution 
    statements. 
    - fixed Windows spot to behave like Mac spot when proofing: PostScript file
    data is always sent to standard output, and must be re-directed to a file.
    See usage from "-u' option.
    - fixed usage text to better explain proofing output and -P option.
    - fixed so that it reports the DSIG table for TTC fonts with the version 2 TTC
    header, even if the header reports it is version 1, like meiryo.ttc
    - Fixed so that it can actually proof TTC fonts that don't have glyph names in
    the post table.
    - Fixed origin offset of bounding box for TTF fonts. 
    - fixed crash in proofing TTF fonts when the last glyph is non-marking, like trado.ttf
    in LongHorn.
    
FDK v2.0 Nov 6 2006 build 24. Public release of FDK 2.0.

    autohint, checkOutlines, proof-to-PDF scripts:
    Fix glyph name handling: avoid stack dump when glyph is not in font, and
    don't require that CID values be zero-padded to 5 hex digits.

    autohint
    - Fixed bug where edge hints would generated rather than regular hints
    across the baseline, when there were fewer than 8 pairs of BlueValues.
    
    checkOutlines.
    - Fixed bug where it would not report an overlap if there were an even
    number of overlapping contours
    
    compareFamily.
    - Fixed Italic angle Single Test 12 to look at the middle third of the test
    glyph stems, rather than the top and bottom of the glyph bounding box, when
    guessing the font's italic angle.
    - Fixed Single Test 15 to allow a difference of 1 unit in the font BBox, to
    allow for rounding differences.
    - Fixed Single Test 26 to identify uXXXX names as valid Unicode names; had
    bug in the regular expression that required 5 digits.
    - Fixed Single Test 22 to treat glyphs in the combining mark Unicode range
    u300-u036F range as accent glyphs; require that they have the same width as
    the base glyph.
    - changed report from Error to Warning for check that only the first four
    Panose values are non-zero.
    - fix bug that causes a stack dump in Single Test 16 and 22
    - added tests for Mac OSX pre 10.4 compatibility: no charstring is  < 32K,
    total size of glyphs names plus padding is less than 32K.
    - added test that known shipping font does not have OS/2 table version 4,
    and that new fonts do.
    - fixed Single Test 11: allow BASE offset to differ from calculated offset
    by up to 10 design units before it complains.

   compareFamily, makeotf
    - fix failure when tools path contains a space
    
    Documentation
    - in Overview.html, add warning about 'languagesystem Dflt dflt' and FDK 1.6
    feature files.
    - in MakeOTFUserGuide.pdf, expand discussion of fontinfo file,
    updated documentation of OS/2 v 4 table bits with
    Adobe's practices for the next library release.
    - added two new tech notes on using rotateFont and mergeFonts
    - in "OT Feature File Syntax.html", fixed incorrect sign for winAscent
    keyword, extended discussion of DFLT script tag and useExtension keyword,
    and fixed minor typos.

    kernCheck
    - added this new tool. This looks for kern GPOS rules that conflict,
    and also looks for glyph pairs that overlap.
    - added option to allow running only the check of GPOS subtables for 
    kerning rules that mask each other.
    
     makeotf
    - Fix so -adds option works.
    - add new option "-fi' to specify path to fontinfo file.
    - add new option '-rev' to increment the fontRevision field.
    - if the (cid)fontinfo file contains the keyword/value for FSType, will
    check that the value is the same as the OS/2 fsType field in the final OTF
    font. This has to do with historic Adobe CJK font development practices.
    - added support for setting some of the Plane 1+ bits in the OS/2
    ulUnicodeRange fields
    
    mergeFonts.
    - Will now apply to the output font the values for the fields Weight and
    XUID, from the cidfontinfo file.
    
    spot
    - added support for showing some of the Plane 1+ bits in the OS/2
    ulUnicodeRange fields

    stemHist: 
    - when requiring that reports not already exist, don't delete older stem reports
    when asking for new alignment zone reports, and vice-versa.
    
    setsnap.pl. 
    - Added new tool to pick standard stem hint values. This PERL script program
    takes in the report from stemHist, and recommends a set of values to use for
    the Type 1 font standard stem arrays. This is not as good as choosing the
    most relevant values yourself, but better than not providing any values.
    
FDK v2.0 Sept 12 2006 build 22.

    compareFamily.
    - added test that Mac name ID  4 starts with Preferred Family name, and is
    the same as the CFF table Full Name, in Single Test 3.
    - added test for existence and validation of BASE table in Single Test 11.
    - fixed bug where failed when reporting font BBox error. - added test that
    some specific glyph names were not changed from previous version of font, in
    Single Test 26.
    - added "Single Face Test 27: Check strikeout/subscript/superscript
    positions". Checks values against default calculations based on the em-box
    size.
    - added "Single Face Test 28: Check font OS/2 code pages for the a common
    set of code page bits". Checks code OS/2 ulCodePageRange and ulUnicodeRange
    blocks against the default makeotf heuristics.
    - added in Single Test 12 a rough calculation of the italic angle. Warns if
    this is more than 3 degrees different than the post table Italic angle
    value.
    - added in Family Test 15 a check that all fonts in a preferred family have
    the same hhea table underline size and position values.
    - Added  "Family Test 16: Check that for all faces in a preferred family
    group, that the width of any glyph is not more than 3 times the width of the
    same glyph in any other face"
    - fix Family Test 3 so that it works right. I think it worked before, but
    was very inefficient.
    
    makeotf.v2.0.22, makeotfexe 2.0.14973
    - added a new option '-maxs <integer>' to limit the number of subroutines
    generated by subroutinization to the number. Used only when building test
    fonts to explore possible errors in processing the subroutines.
    - allow working names to be longer than 31 characters; complain, but don't
    quit, if final names are longer than 31 characters.
    

    
FDK v2.0 Aug 31 2006 build 21.
    makeotf.
   - Fixed bug where 'size' feature is built incorrectly when it is the only
   GPOS feature in a  font.
    
    spot.
   - Better error messages for 'size' feature problems.
    
    compareFamily.
   -  Added dependency on environment variables: CF_DEFAULT_URL  Should be set to
   standard foundry URL; is compared with name ID 11 CF_DEFAULT_FOUNDRY_CODE
   Should be set to default 4-letter foundry
    code, is compared with OS.2 table achVendID field.
    - CFF PostScript name is same as Mac and Windows name table name ID 6.
    - named ID 9 and 11 ( foundry design note and URL) exist.
    - SingleTest 4 extended to verify that version string is in correct format
    "(Version|OTF) n.nnn'. - added to Panose test that values are not all 0, and
    than the CFF font dict 'isFixedPitch field matches Panose monospace value.
    - added check that Unicode cmap sub table exists
    - added check the latn/dflt and DFLT/dflt script/languages are present, if
    there are any GPOS or GSUB rules. Also checks that script and language tags
    are in registered lists, and that all faces have the same set of language
    and script tags, and feature list under each language and script pair.
    - added check that all faces in the family have the same OS/2 table fsType
    embedding permission values.
    - added check that if font has Bold style bit, that the CFF forceBold flag
    is on. Also vice-versa, if the font weight is less than 700.
    - added check that the font does not have a UniqueID or XUID, if not
    CID-keyed.
    - added glyph name checks: OS/2 default char is notdef, and that there are
    "null" and "cr" glyphs in TrueType fonts, and that names conform to the
    current Adobe Glyph Dictionary. Note that latest usage uses 'uni' names for
    final names for all the 'afii' glyphs.
    - fixed family BlueValue tests to compare within Compatible family Name
    groups
    - changed Family Test 2 to check if all name ID's except 16,17,18, are all
    present with the same language/script values within all faces of a preferred
    family.
    - Changed Single Test 3, which didn't do at all what it said, to a new test
    
    FontLab proofing scripts. 
    - Fixed bug introduced when changing modules shared with command-line
    scripts in build 19.

FDK v2.0 Aug 14  2006 build 20.
    ProofPDF.py
    - Fixed bug in waterfallplot mode, where Acrobat would report the output
    pdf file as being damaged. 
    
    makeotf. 
    - Fixed bug where couldn't build CID fonts
    in release mode, introduced in build 19.
    
    
FDK v2.0 Aug 4 2006 build 19.

    compareFamily.
    - added to Family Test 13  to report error if two fonts in the same
    preferred family have the same OS/2 weight, width and Italic settings, and
    the OS/2 version is greater than 3. Also reports an error if the fsSelection
    field bit 8 "WEIGHT_WIDTH_SLOPE_ONLY" is set differently in different faces
    of the same preferred family name group.
    - Fixed Family Test 12 to not fail when the font has a script/language with
    no DefaultLangSys entry.
    
    makeotf. 
    - Will now set the new fsSlection bits if the following key/value pairs are
    in the 'fontinfo' file.
    PreferOS/2TypoMetrics 1
    IsOS/2WidthWeigthSlopeOnly 1
    IsOS/2OBLIQUE 1
    - If a font file with the requested output file name already exists, will
    delete it before running makeotfexe, so can tell if it failed.
    
    digiplot.
    - add new option to specify the font base-line, so the base-line can be set
    correctly when proofing a font file without a BASE table.
    - allow using a CID layout file to supply meta info when proofing name-keyed
    font.
    
    ProofPDF.py.
    - Added two new proof-to-PDF functions, waterfallplot, fontsetplot.
    waterfallplot does not yet work with TrueType or CID-keyed fonts.

FDK v2.0 May 15 2006 build 17.
    Multiple tools: fixed so the FDK can be installed under Windows on a path
    with spaces.
    
    autohint. 
    -Added option to suppress hint substitution.
    -Added option to allow processing of fonts without std stem widths set.
    -Fixed help and message to refer to 'autohint' tool name, rather
    than to the AC script file name.
    - fixed bug in processing hint masks: bytes with no bits set were
    being omitted.
    - added option to allow it to hint fonts without StdHW or StdVW
    entries in the font Private font-dictionary.
    checkOutlines. 
    - Fixed this so the script really would write out the changes when
    fixing outlines.
    - Fixed bug that mangled outlines when three alternating
    perpendicular lines or vh/hv/vv/hh curveto's followed each other
    - WIll now write report to a log file as well as to screen. Added
    option to set log file path, and added numeric suffix to name so as
    to avoid overwriting existing log files.

    compareFamily.
    - fixed bug: it would fail when looking through the directory for
    font files, when encountering a file for which the user does not
    have read permission.
    - added SingleTest24; check that 'size' feature Design Size is
    within the design range specified for the font.
    
    fontplot/charplot/digiplot/hintplot/showfont
    - extend to work with Type 1 font files as well as OTF and TTF files
    - add showfont command to show how to customize a command file to
    produce a different page layout
    - fixed so fonts with em-squares of other then 1000 would work.
    
    makeotf.
    - Fixed MakeOTF to survive being given a font path with spaces.
    - the -S and -r options now work.
    - Added new option '-osv n' to write arbitrary version to the OS/2 table
    version number.
    - Added new option '-osbOn n' to set arbitrary bitfields in OS/2 table
    fsSelection to on. May be repeated more than once to set more than one bit.
    - Added new option '-osbOff n' to clear arbitrary bitfields in OS/2 table
    fsSelection to on. May be repeated more than once to clear more than one
    bit.
    - if neither the -b nor the -i options are used, check for a file "fontinfo"
    in the same directory as the source font file, and set the style bits if the
    key/values are found: "IsBoldStyle true" and "IsItalicStyle true".

    FontLab Macros.
    - Built the autohint and checkOutline libraries (PyAC and focusdll) linked
    with Python2.3 so that they will work with FontLab 5.

    mergeFonts.
    - Added option to copy only font metrics from first source font.
    - allow empty lines and "#" comment lines in glyph alias and in cidfontinfo
    files.

    rotateFont
    - fixed bug where it did not allow negative numbers.
    - allow empty lines and "#" comment lines in rotation info file

    sfntedit
    - Fixed so that it will not leave the temp file behind on a fatal error, nor
    quit because one already exists.

    spot.
    - Fixed order of backtrack glyphs in dump of chaining contextual sub and pos
    statements. Now assumes that these are built in the correct order.
    - removed date-time from page title. v3.5.13354

    detype1/type1. Added two new tools that decompile/compile a Type 1 font
    to/from a plain text representation.


    FDK 2.0 Feb 14 2006 build 5 comparefamily.
    - Added warning if sum of OS/2 table sTypoLineGap, sTypoAscender, and
    sTypoDescender is not equal to the sum of usWinAscent and usWinDescent
    - updated test for allowable weights in style-linked faces to reflect
    current behaviour of Windows XP.
    - added check that for OpenType/CFF, name table name ID 4 "Full Name" for
    Windows is the same as the PostScript Name.
    - added report on sets of features in different language systems, and an
    error message if they are not the same in all faces of the font.
    - fixed incorrect message about real error when menu names are not correctly
    built.
    - fixed test for improbable FontBBOX to use em-square rather than assume
    1000 em.
    - added warning if widths of ligatures are not larger than the width of the
    first glyph
    - added warning if accented glyphs have a width different than their base
    glyph.
    - added error message if two faces in the same family have the same OS/2
    width and weight class and italic style setting, and are not optical size
    variants. Optical size rule is crude: I compare PS names after removing the
    Adobe standard optical size names from the PS name string: "Caption, Capt,
    Disp, Ds, Subh, Six. If the PS names are then the same, then they were
    optical size variants.
    - Added check that no hint is outside the FontBBox, for CJK fonts only.

    spot/otfproof.
    - Added "Korean" to list of tags for OS/2 code page range.
    - fixed dump of 'size' feature to support correct and old versions
    - added dump/proof of contextual chaining positioning format 3.
    - added warnings that only low-level dump of other contextual lookups is
    supported.

    makeotf.
    - program is now a stand-alone C executable.
    - removed option to write contextual positioning rules in the "old"
    incorrect format.
    - MakeOTF no longer assigns Unicode Private Use Area values to glyphs for
    which it cannot identify. If you want to use these values, you must
    explicitly assign them in the GlyphOrderAndAlias file.
    - Fixed bug in name table name ID "Version": if version decimal value is
    x.000, then the value in the Version name ID string was x.001.
    - fixed bug in handling of DFLT language script: you can now use this tag.
    - fixed feature file parsing bug bug where ''dflt' lookups in one feature
    were applied to the following feature if the following feature started with
    a language statement other than 'dflt'.
    - Fixed serious bug  where wrong width is calculated for glyphs where\ the
    CFF font Type 2  charstring for the glyph starts with a width value. This is
    then followed by the value pairs for the coordinates for the vertical hint,
    and then these are followed by a hint mask or control mask operator.  The
    bug  is that when MakeOTF reads in the charstring in order to derive the
    hmtx width, it discards the data before the control mask operator, leading
    the parser to use the CFF default width for the glyph.
    - vhea.caretSlopeRise and vhea.caretSlopeRun is now set to 0 and 1, rather
    than reverse.
    - MakeOTF will now set the OS/2 table 'type' field to: the feature file
    override. If not supplied, then: the value of the environment variable
    FDK_FSTYPE. If no set then: 4 (EDIT_EMBED)
    - support contextual chaining positioning for positioning only; mark and
    anchors not yet supported.
    - fixes the bug in the 'size' feature: the feature param offset is now set
    to the offset from the start of the feature table, not from from the start
    of the FeatureList table.
    - allow size feature point sizes to be specified as decimal points, as well
    as in integer decipoints.
    - OS/2 table version is now set to 3.
    - added OS/2 overrides for winAscent and winDescent
    - added hhea overrides for Ascender/Descender/LineGap
    - set OS/2 Unicode coverage bits only if the font has a reasonable number of
    glyphs in the Unicode block; it was setting the bits if the font had even
    one glyph in the block.
    - MakeOTF will now set the "Macintosh" code page bit in the OS/2
    corePageRange fields.

    feature file documentation.
    - fixed incorrect range example in section '2.g.ii. Named glyph classes"
    - changed rule to allow lookup definitions outside of feature definitions in
    FDK 2.0.
    - fixed incorrect uses of 'DFLT' rather than 'dflt' for a language tag.
    - minor typos

   

FDK 8139 Aug 30 2004
    OTFProof.py. Fixed error in dumping GSUB table: GSUB lookup 5, context
    lookup assumed that there was both a look-ahead and a backtrack sequence.

    Updated SING META table tags to latest set.

FDK 7974 Aug 30 2004
    MakeOTF.py Fixed rule in building CJK font. When looking for Adobe CMAP files, will
    no longer use a hard-coded max supplement value when building paths to try.

FDK 7393 Jan 14 2004
    CompareFamily. 
    Fix stack dump when family has no BlueValues (thanks to House Industries)
    Fix stack dump when CFF-CID font has glyph with no subr calls.

FDK 7359 Jan 14 2004

    OTFProof. Corrected error in last release, where spaces between ligature match string
    names were omitted.

    FontLab Scripts. Add scripts to test if joins in connecting script font are good.

FDK 7307 Jan 6 2004

    OTFProof. Fix crash on proofing or dumping feature file syntax for GSUB lookup 5, context
    lookup. Also fixed rule-generating logic: results were previously wrong for proof and
    for feature-file syntax formats. Text dump has always been correct.

    Fixed crash when dumping cmap subtables that reference virtual GID's not in the font.

    Fixed crash on dumping GSUB lookup type 6 chaining context subtable format 2. This has never worked before.

    Added dumo for SING glphlet tables, SING and META.

    FontLab Composites Scripts. Added FontLab scripts for creating and reading in
    an external composites definition text file

    FontLab Scripts. Added FontLab scripts for working with MM fonts

FDK 6864 Oct 8 2003
    OTFProof. Fix crash after dumping contents of ttc fonts, a bug added in changelist  6792.

FDK 6815 Oct 2 2003
    OTFProof. Fix to cmap subtable 4 and 2 dumps. Cmap subtable 2 could
    show encoding values for single byte codes which were really the
    first byte of two byte character codes. In Format 4, idDelta values
    were not being added when the glyphindex was derived from the glyph
    index array. These show issues show up in some TTF CJKV fonts.

FDK 6792 Sept 24 2003
    OTFProof. Fixed crash when proofing fonts with *many* glyphs
    Restored "skipping lookup because already seen in script/language/feature" messages
    to proof file, which was lost in build 6604.
    Added ability to proof resource fork sfnt fonts from Mac OSX command line. You must
    still use the SplitForks tool to make a data-fork only resource file, but spot/otfproof
    can now navigate in the resulting AppleDouble formatted resource file.
    Added support for a text dump of the GDEF table.
    Changed title in size feature dump from "Common Characters" to:
    "name table name ID for common Subfamily name for size group"
    
    AGL. Fixed some minor errors in the Adobe Glyph List For New Fonts.
    
FDK 6629
    OTFProof. Fixed bug in dumping KERN table from Mac sfnt-wrapped resource fork Type 1 MM font.
    
FDK 6604
    OTFProof. Changed the AFM-format dump of kern pairs to list all kern pairs
    for each  lang/script combination in separate blocks, and to eliminate all class kern pairs
    that are masked by a singleton kern pair. The temp buffer file path is now taken from the
    system C library function tmpnam(), and is not necessarily in the current directory.
    
FDK 6568
    OTFProof. 1) fixed command-line tool to write proof files in same location as font, and
    with font-name prefix, when not auto-spooled for printing.
    2) fixed bug in UI version where proofing GSUB features and then GPOS features would cause
    the GPOS feature proof files to be empty.
    
    MakeOTF/coretype/ Fixed heuristics for picking OS/2 weight/width so that a font name
    containing "ultracondensed" would trigger only setting the width, and not also the weight.
    
    Updated Mac OS project files to CodeWarrior 8.
    
FDK 6564
    OTFProof. 1) When dumping data from TTF fonts, now add "@<gid>" to all glyph names. This
    is because the rules for deriving names can lead to two glyphs being given the same name.
    2) Fix bug in proofing GPOS class kernpairs: was  generating bogus kern pairs
    and duplicate kern pairs when the coverage format was type 2. Affects proof file only, not
    AFM or feature-format dump. 
    
FDK build 6358
    Fixed memory overwrite bug encountered by Goichi and cleaned up various memory leaks in the process.

FDK 6324
    ExtractShowRoomData.py. Fixed bugs for ornament and ligature tags, in script
    which extracts data about an OpenType font in order to set the attribute
    icons in the Adobe Type web-site.
FDK 6324
    ExtractShowRoomData.py. Fixed bugs for ornament and ligature tags, in script
    which extracts data about an OpenType font in order to set the attribute
    icons in the Adobe Type web-site.

FDK build 6324
    CompareFamily.py    Added report on whether face contains known std charset.
    Stub implementation - still need list of std charsets
    
    AFM2Feat. Finally made script to convert a AFM file to a file kern
    feature pos rules
    
FDK build 6148
    Final rebuild of all libraries for v1.6 release 3/10/2003.

FDK build 6048
    Updated FinishInstall.py to reflect Python 2.2 requirements 
    Picked up last MakeOTF.pdf editing changes 
    Fixed bug in GOADB 
    Updated CID font data in example fonts 

FDK build 6036
    Documentation. Updated release notes and installation instructions.
    
    GlyphOrderAndAliasDB. Updated to use the file developed while converting the
    Adobe Type Library. Maps all the old glyph names to AGL compatible names.
    
FDK build 6020
    OTFProof: Fixed crash in handling of VORG with no entries. (V#574752)

FDK build 6014 
    MakeOTF. Updated the MakeOTF documentation. Added a description of how 
    all three columns of the Glyph Order and Alias DB file are used. Added a new 
    section on the key-value pairs of the font project file. Updated 
    the description of the Font Menu Name DB file entries. Added minor 
    clarifications throughout. 
 
    Documentation. Updated digital_signature_guide.htm to match current Verisign 
    web site. 
    
    Example Fonts. Changed the incorrect language keyword TUR to TRK. Removed the
    many key/value pairs in the fontinfo files that are not used by MakeOTF.
    
    FDK tools. Added new file selector for TTF files when choosing a target font file.
     
FDK build 5988
    Fixed 3-column handling of GOAADB in OTFProof/spot per Vantive 569681

FDK build 5978
    Created the new FDK Image on Type Server

FDK V1.6 build 5959
    MakeOTF. Suppressed the "repeat hint substitution discarded" message from the
    source file parsing library. These are so common that they obscure more useful
    messages.
    
    MakeOTF. Set as default the option to build chaining contextual substitution rules
    with the incorrect format  used by InDesign 2.0 and earlier. 
    
    MakeOTF. If the option above is set, then MakeOTF will write a name id (1,0,0,5)
    name string ID "Version" which will contain the text string which triggers
    special case code in future Adobe apps so that it will process the 
    chaining contextual substitution rules as they were intended. If this option
    is NOT set, the name string ID "Version" will be written so as to not 
    trigger this special case code. The special case treats specially
    any font where the name table name id (1,0,0,5) exists and either matches:
        "OTF[^;]+;PS[^;]+;Core 1\.0\.[23][0-9].*"
        example: "OTF 1.006;PS 1.004;Core 1.0.35"
    or contains:
        "Core[^;]*;makeotf\.lib" 
        example: "Core 1.0.38;makeotf.lib1.5.4898" or just  "Core;makeotf.lib"
        
    MakeOTF. Set off by default the option to force that the .notdef glyph
    in the output OTF font bean X'd rectangle with an advance width of 500.

    MakeOTF. Added rule to force the OS/2 WeightClass to always be at least 250.
    Shows error message if set or calculated WeightClass was less than this.
    
    MakeOTF. Add test that FSType is set the same in the feature file as in 
    source CID font files.
    
    FDK UI tools. Fixed font file browsing options to show TTF fonts as well as 
    OTF fonts by default.
    
    OTFProof. page layout for CJKV font vertical layout: now writes the vertical columns
    right to left.
    
    OTFProof. When writing vertical features, now shows the advance width sign as negative.
    
    OTFProof. When making PostScript proof file, now writes DSC tags with correct
    header and page info.
    
    FDK. Added OTF FileTyper to Programs directory
    
    FDK. Added "Unicode and Glyph Name" documentation to the FDK "Technical Documentation"
    directory, to allow access to this info under the FDK license.
    
    MakeOTF. Added some bug fixes to the typecomp library, copied from CoreTech. 
    Bumped typecomp library version number to 2.0.33.
        o The BaseFontBlend operator was never output even if the key was present in
          the source font because of a bug in the loop that wrote DICT operators.
        o It was possible for pre-defined charset to be selected for a CID-keyed font
        o Charstring-encrypted CID-keyed fonts having one set of subroutines referenced
          from multiple dictionaries failed due to the subr charstrings being decrypted
        o Duplicate values in a CID subset specification could cause multiple glyphs
          with the same CID to be included in the subset or worse still to cause a
          fatal error when parsing the CID font. This possibility is now averted by
          weeding out duplicates from the client-supplied subset.
        o Fixed flex optimization bug which caused the hflex operator to be incorrectly
          selected for certain fonts.
    Increased Core/hotconv library revision number from 1.0.36 to 1.0.37
    

V1.6 build 4908

    MakeOTF/feature file syntax. Added new vmtx table overrides, in order to
    permit setting vertical metrics for pre-rotated proportional glyphs that are
    specifically designed and are not simply rotated forms of proportional
    glyphs.

    MakeOTF/feature file syntax. Added new OS/2 overrides to set the Unicode and
    Windows code page range fields: UnicodeRange CodePageRange

    MakeOTF/feature file syntax. Updated language keywords to be consistent with
    OpenType spec, i.e using "dflt" instead of "DFLT". Expanded section
    explaining use of language and script default keywords. Old keywords still
    work, but cause a warning to be emitted.

    feature file syntax. Expanded explanation of kern class pairs and subtable
    breaks.

V1.6 build 4908
    MakeOTF. Updated the MakeOTF.py search rules for CID font CMAP files to support Adobe-Japan2-0,
    and to look first for UTF-32 CMAP files.
    
V1.5 build 4987
    Release to Adobe web site Sept 2002
    
V1.5 build 4908
    MakeOTF. Changed the name table version string to match OT spec 1.4.
    
    CompareFamily. made it *really* work with Sept 10th 2002 release of 
    Just von Rossum's FontTools library.
    
v1.5 build 4492
    MakeOTF. (hotlib 1.0.35) Fixed the error in processing GSUB contextual
    chaining substitution format 3. This was originally done according to the
    OpenType spec spec 1.4, which is in error by the established implementation
    of VOLT and Uniscribe. Added new flag = "-fc " to cause the library to use
    the incorrect implementation, according to OT spec v 1.4.  Without flag,
    MakeOTF builds the correct contextual format per spec v1.5.

    MakeOTF. (hotlib 1.0.35) Fixed Unicode cmap bug in assigning the OS/2 table
    field usLastCharIndex. This is supposed to be the highest uv value in the
    BMP-16 cmap tables. The problem was in the logic by which alternates of
    supplemental plane glyph names were being assigned an EUS code, but not
    added to the BMP-16 Unicode cmap tables, eg u1D269.alt. When one of these
    alternates was assigned an EUS value, the usLastCharIndex was getting bumped
    even though the glyph was not being added to the BMP-16 cmap tables. Fixed
    by not incrementing usLastCharIndex in this case.

    MakeOTF. Fixed bug in applying client-supplied uv override values. These
    were omitted if the glyph names in the font were different than the final
    glyph names, as can happen when the client uses the getFinalGlyphName call
    back to supply a glyph production name which is different than the final
    glyph name.

v1.5 build 4479
    OTFProof. Fixed crash when proofing liga feature in CID font. Also fixed
    crash when proofing charstring with only one operand, e.g h/r/vmoveto.

v1.5 build 4345
    CompareFamily. Updated to use the latest version of Just von Rossum's FontTools 
    library, added support for TrueType fonts. Now requires Python 2.2
v1.5 build 4141
    CompareFamily. Added family test 11: verify that for base font in style-linked
    group, Mac and Windows menu names are the same, and that for other fonts in the
    style linked group, the Mac and Windows menu names  differ.
    
v1.5 build 4099 
    *** External release of FDK 1.5 on Adobe web site. 
    Updated release notes and documentation.

v1.5 build 3849
CompareFamily: Fixed tabular glyph  and isFixedPitch test so that they are now useful
- used to generate far too many false errors.

v1.5 build 3848
MakeOTF: Fixed bug in setting Panose values from a feature file override. If any 
value in the Panose value string is 0, all subsequent values were also set to 0.

v1.5 build 3828
MakeOTF: Fixed bug where glyphs that got renamed were not subjected to the
ordering specified by the GlyphOrderAndAliasDb file.

v1.5 build 3762
    Added FDK.py file to integrate all tools into a common UI
v1.5 build 3761
    OTFCompare: Added use of CFFChecker library for CFF table
v1.5 build 3759
    EOM: Release 1.1.4 with minor bug fix
v1.5 build 3635
    CFFChecker: Added resource fork handling on OSX
v1.5 build 3633
    CompareFamily. Added family test 10: if any face in family has a real panose value,
    report derived panose values as an error. Also fixed bug in comparing copyright notices 
    in  family test 7: will now really report error only if differs in other than years
v1.5 build 3480
    CFFChecker: Added support for multiple input file
v1.5 build 3319
    CFFChecker 1.5.1: Added support for resource fork fonts under MacOS 9
v1.5 build 3204
    Added CFFChecker interface to makeotf
v1.5 build 3196
    OFTCompare: Added OSX prompt-based support
v1.5 build 3145
    Fix R-O-S mapping for CMAP files.
v1.5 build 3144
    Fixed getunicodeCmap() to not hard-wire Adobe-Japan1-3 when processing J fonts.
v1.5 build 2940
    CFFChecker: MacOS 9 version created
v1.5 build 2606
    Adding CFFChecker
v1.5 build 2583
    Fixed CompareFamily.py to not die on font menu names with non-std ASCII
v1.5 build 2576
    OTFProof: Fixed vertical metrics proofing
v1.5 build 1821
    Added warning when truncating OS/2 TypoAscender to
    force it + TypoDescender to be equal to the embox
v1.5 build 1561
    FDK, Fix Makeotf to allow fractional synthetic weight values. These are rounded to an integer.
v1.5 build 1511
    Changed XUID adding algorithm to NOT add the revision number to the XUID array.
v1.5 build 1304
    MakeOTF In release mode, add current year to copyright, suppress (c) string, and fix spaces
    around the phrase 'All Rights Reserved'
v1.5 build 1106
    MakeOTF. Fixed to permit building a font in release mode with no unique ID at all
v1.5 build 1086
    makeotf. bad cmap entry offset calculation. 
v1.5 build 1085
    makeotf. Fix for bad cmap table entry.
v1.5 build 1023
    makeotf:
    1) change algorithm for adjusting advance width/lsb/rsb of non-slanted synthetic
    glyphs when adding to italic fonts
    2) fix failure of re-ordering when NOT forcing use of marking notdef.
    3) fix ITC PS name prefixes from "Itc" to "ITC", and fix a PS name-too-long 
    problem with Univers-LightCondensedOblique
v1.5 build 1010
    fixed interaction between Sigma and synthetic summation and Pi and product.
v1.5 build 978
    spot added the option to select which feature to dump in GPOS or GSUB=7 dumps
v1.5 build 955
    OTFProof Added support of TT instructions in compound glyphs
v1.5 build 938
    Fixed CompareFamily.py. Was incorrectly unwrapping T2 charstring subroutines.
    All previous reports on whether glyphs were hinted should be doubted.
v1.5 build 927
    Makeotf - tweaked horizontal spacing of upright glyphs in oblique fonts
v1.5 build 903
    makeotf added support for "italicangle", "width" and "weight
    keywords in fontMenuNameDB
v1.5 build 769
    SCM makeotf typecomp. 1) Fixed Euro-adding bug 
v1.5 build 604 - 696
    OTFProof
    Removed header note "1000 units/em" from proofs.
    Added support for cmap version 12.
    Removed zero padding of CID values from text reports
    Reduced number of warnings about missing characters.
    Removed warning when GPOS and GSUB table may be too big, as no tools make this error.
    any more, and it is triggered inappropriately when font uses the extension lookup.
v1.5 build 604
    OTFProof: Fixed different spacing problem reported as Vantive 420313

v1.5 build 602
    Makeotf: Fixed problem with unspecified CMAP files

v1.5 build 601
    OTFProof: Fixed so that vertical proofs write from right to left.

v1.5 build 600
    OTFProof: Fixed so that glyph names for CID fonts print properly.
    Fixed problems with compile under SUNOS.

    MakeOTF
    
    Added MakeOTFScript.py as an example file to edited, in order to allow scripting 
    of makeOTF on the Mac (or any other platform). Minor changes to MakeOTF.py to fix this.
    
    Added options to allow user to specify options to:
     - remove deprecated Type 1 operands from output font ( e.g. seac and dotsection)
     - add new glyphs, using a built-in sans and serif multiple master substitution font,
     if the source font has a 'zero' and a capital "O", and it the option to add std glyphs is chosen.
     The glyphs added are:
        Euro
        Delta
        Omega
        approxequal
        asciicircum
        asciitilde
        at
        backslash
        bar
        brokenbar
        currency
        dagger
        daggerdbl
        degree
        divide
        equal
        estimated
        fraction
        greater
        greaterequal
        infinity
        integral
        less
        lessequal
        litre
        logicalnot
        lozenge
        minus
        multiply
        notequal
        numbersign
        onehalf
        onequarter
        paragraph
        partialdiff
        perthousand
        pi
        plus
        plusminus
        product
        quotedbl
        quotesingle
        radical
        section
        summation
        threequarters
        zero

v1.5 build 592
    CompareFamily.py. Fixed so that it will not error out when one of the Blues
    arrays is not present.
=================================================================================== 
v1.4 build 583
Oct 24,2000 Read Roberts, Antoine Picard

*** All components

1) Began tracking files by Perforce changelist label, from the Perforce source code management system.

2) Updated compilers to Mac/CodeWarrior 6 Pro, Windows Visual C++ 6.0

3) Re-organized build directories to have mac/win/sun4 subdirectories

4) Re-organized shared include files to all be under /Programs/api, with non-conflicting names.

*** Example fonts.
1) Updated MinionPro-Capt: now had correct frac and size features.
2) added KozMinPro to samples.

*** MakeOTF.
1) Fixed bug in makeotf where fontinfo keyword IsStyleBold was ignored for CID fonts.
2) Fixed Mac build project to load debug and release libraries by different names.
3) coretype library changes, from 1.0.27 to v1.0.28:
o Added feature file support for the "languagesystem" statement. Note that this
  entailed removing support for script, language, and named lookup statements
  in the size feature, and removing support for script and language statements
  in the aalt feature. See feature file spec for details.

o More descriptive wording in offset overflow error messages. Feature file
  error handling improved: multiple error messages are emitted before failing
  if possible, instead of just one; final glyph name as well as glyph alias (if
  applicable) reported if not found in font.

o Changed the 14 Corporate Use subarea Unicode values for Zapf Dingbats to the
  proposed UVs in anticipation of their being incorporated into the Unicode
  standard.

o Added FontWorks ('FWKS') to vendor ID list.

o Increased the maximum number of named lookups allowed to 8192.

o Now makes kern and vert features from kern data passed in by clients and from
  V CMap (respectively) only when the HOT_CONVERSION bit is set. (Previously,
  these features were made from the sources mentioned above if they weren't
  already defined in a feature file.)

o Fixed an obscure bug in OS/2.ulUnicodeRange computation: if the largest UV in
  the font were not in any Unicode range recognized by hotlib then it was
  counted as being in the next recognized Unicode range after the UV. (No fonts
  I know of are affected by this.)

o [rroberts] Force the OS/2 codepage range bits for Chinese to either
  Simplified or Traditional, based on the Mac cmap script, if it is defined as
  either Simplified or Traditional, and will fall back on the heuristics if the
  script is undefined. If the mac.script is something other than a Chinese
  script, then the OS/2 codepage range bits for Chinese will not get set.*** OTFProof.
4) Reduced some of the recursion in the subroutinization code to reduce stack space 
   requirements
5) Fixed support for included feature files in parent folder on the Mac


*** OTFCompare
1) The Python sys.path variable must now contain the path to the directory
containing the OTFProof library (usually
"FDK/Tools/Programs/otfproof/exe"). This replaces the hard-coded path
reference in the OTFCompare.py script. On all platforms, this is done by
adding the file "otfproof.pth", containing the path, to the Python installation.
2) Fixed a bug that was causing tables smaller than 16 bytes to be reported as different

*** OTFProof.
1) Added a new proofing mode to CFF_ to print one glyph per page
2) Added a new proofing option to suppress file-specific header info to facilitate diff-ing
   of multiple proofs.
3) Added alphabetical sorting of AFM-style dump
4) Fixed bug causing GPOS/GSUB features with digits in their names to not appear in the
   proofing list
5) Added support for glyphsize option in CFF_ dumps
) Fixed conflicting include file names; must now specify include paths in project file.
 


===============================================================================
v1.3.2
Oct 24,2000 Read Roberts, Antoine Picard

*** OTFProof.
- fixed bug where would report error opening Mac TTF suitcase font, because data fork was of size 0.

- fixed bug where feature tags containing numbers were filtered out of the feature list for proofing.

- fixed bug where base-line was shown incorrectly for CJK fonts with base-lines other than 120.

- fixed bug where y-placement changes were not shown correctly in vertical writing mode proofs.


===============================================================================
v1.3.1
Aug 15,2000 Read Roberts

*** MakeOT
1) Fixed problem with heuristics for OS/2 code page range settings, for Chinese Simplified vs Traditional.
2) Added macro to define MakeOTF version number.
3) updated makeotflib help/usage messages: shown when args are  incorrectly formatted.

Files changed in makeotf:
makeotf/exe/makeotfutils.py
- in getfontinfo()
    - added fontinfo list entry for "Language"
    - added 'parameter' variable entry for same
    - increased num values to from 34 to 35
    - changed initialization of 'parameter' so can more easily figure out which index matches which fontinfo field.

makeotf/exe/makeotf.py
    - updated version numbers to 1.3.1
    - added -cs and -cl options to help
    - added processing of Language field, to set script and language ID's with -cs and -cl options.



makeotf/source/main.c
- added macro to define MakeOTF version number, used in help message, and in client name string for name id 5 "Version"
- added mac_script and mac_language fields to global static 'convert' structure
- added processing of -cs and -cl arguments to parse_args()
- added  mac_script and mac_language arguments to call to cbconvert()
- updated print_usage to match that of makeotf.py
- updated the ReadFontInfo() to process new Language field

makeotf/source/cb.c
- moved initialization ( as type unknown) of mac.encoding, mac.script and mac.language from cbconvert to cbnew()
- added setting of mac.script and mac.language to cbconvert(), from arguments.
- added  mac_script and mac_language arguments to call to cbconvert()

source/includes/cb.h
- added  mac_script and mac_language arguments to call to cbconvert()

Files changed in hotconvlib:
coretype/source/map.c
- changed logic for setting OS/2 codepage range to set code page to Simplified or Traditional Chinese based on mac.script setting; fall back on heuristics only if mac.script is not set.

===============================================================================
Copyright 2014 Adobe Systems, Incorproated. All rights reserved.   
