Add resource file and Windows application manifest (#4950)
This forces UTF-8 encoding by default on newer versions of Windows, which fixes issues with accessing files containing characters outside of the system's default locale/encoding.
Fix name extraction for Type3 fonts from pdfs (#4960)
* Fix font name for type3 extraction from pdfs * free name on failure * simplify free
cmake: Install fonttools (#4941)
Restore the files that were installed to fontforge-extras Debian package prior to the FontForge 2020 March Release. Co-authored-by: Anthony Fok <foka@debian.org>
* FAQ: Why is Element --> Build disabled (or gray)? * FAQ: When I use Element --> Overlap --> Remove Overlap the glymp gets inverted (or white) on the overlapping sections. Why? * Inform the reader that both components must be available. * Fix typo's * Fix typo's * Update doc/sphinx/faq.rst Co-authored-by: Jeremy Tan <jtanx@users.noreply.github.com> * Update doc/sphinx/faq.rst Co-authored-by: Jeremy Tan <jtanx@users.noreply.github.com> * Update doc/sphinx/faq.rst Co-authored-by: Jeremy Tan <jtanx@users.noreply.github.com> Co-authored-by: Jeremy Tan <jtanx@users.noreply.github.com>
Support setting SplineChar width from importOutlines. (#5005)
Add support for a "dimensions" flag in SplineChar.importOutlines in the Python bindings and in the import dialog box that sets the width of the glyph from an imported SVG. This works only for files with no units and absolute dimensions in the "width" and "height" attributes of the SVG.
Undefine "extended" macro temporarily on GNU Hurd
GNU Mach microkernel header files (gnumach-dev 1.8+git20201129) added to struct i386_xfp_save in /usr/include/i386-gnu/include/mach/i386/fp_reg.h a new "extended" field which happens to collide with the macro definition "#define extended double" in FontForge, leading to FTBFS on GNU Hurd. This issue may be circumvented by temporarily undefining the "extended" macro before loading `<gio/gio.h>` and friends, and redefining the "extended" macro right after.
Define PATH_MAX and MAXPATHLEN for GNU/Hurd compatibility
Special thanks to @henrich, @ucko and @kilobyte for reporting the issue and offering suggestions on a fix. See also https://bugs.debian.org/877795 Fixes #3119
Fix Ascent & Descent Importing (#5035)
Fixed sign error when importing the ascent and descent from an SVG font. Detailed explanation here: #5028
Prevent segfault due to null pointer when clicking below encoding gro…
…up list ending with an empty node (#5025)
Fix drawing outside of expose calls (#4949)
* Fix some calls to GDraw to only call draw functions from expose * Fill progress in expose only * Use expose calls to redraw updated glyphs in fontview * Fix drawing of guide lines on expose calls * combinations.c: Fix drawing on expose only * charview.c: fix another draw outside of expose * ggdkcdraw.c: enable warning and debug assert on auto-paint
Upgrade GitHub Actions (#5014)
* Upgrade GitHub Actions * Upgrade GitHub Actions * fix build Co-authored-by: Jeremy Tan <jtanx@outlook.com>
fsys.c: prevent out of bounds read in GFileMimeType (#5018)
Co-authored-by: Jeremy Tan <jtanx@outlook.com>
Shell-quote command sent to compressor in BDF
Fixes security issue in #5059.
* Fix typo in decodestr() The typo resulted in the generation of complete gibberish when decrypting glyph charstrings. * Fix decryption of binary eexec ciphertext A font's binary eexec ciphertext is followed by 512 clear text '0' characters which may be interspersed with white space characters. Typically, there is a newline character preceding the first '0'. The program was treating that newline as a final character of the ciphertext rather than as part of the white space.
Include SFDUTF7 functions in libfontforge.so
I understand that the API's there are not guaranteed stable, but this would help a lot with `sfdnormalize` project, as it givess me a way to actually test that my library `sfdutf7` returns correct results. See also <https://twitter.com/fr_brennan/status/1555879287840034817/>. cc: @alerque
splinefit.c: Improvements to merge/simplify (#5095)
* Prevent approximation from going back and forth * Calculate slope at the end based on to->prev, not from->next
RFE: [FEAT] When reference to non-existent glyphs are present in an O…
…penTy… (#4097) * Add option to ignore non-existent glyphs in substitution rules of OpenType feature file When reference to non-existent glyphs are present in an OpenType feature file, merging the feature fails. Add an option to skip the erroring out in merging feature file. This helps with feature files of Indic scripts with many hundreds of ligatures; some of the glyphs may not be present in all fonts, yet the feature file can be reused. TODO: handle the case when an entire lookup list is invalid. * Merge feature file: skip error with empty lookup lists when invalid substitutions to be ignored. The callchain is: 1 fea_ApplyLookupListPST featurefile.c 2 fea_ApplyLookupList featurefile.c 3 fea_ApplyFeatureList featurefile.c 4 fea_ApplyFile featurefile.c 5 SFApplyFeatureFile featurefile.c 6 SFApplyFeatureFilename featurefile.c 7 LoadKerningDataFromMetricsFile splinesaveafm.c * Fix python method 'mergeFeature' optional parameter passing * Add test for skipping invalid substitution rules when merging OpenType feature file * Update test 1017 to check 'sub <glyphclass> by glyph' case * Change the flag name to 'ignore_invalid_replacement'
docs: Python scripting - update font.mergeFeature with details of boo… (
#5107) Co-Authored-By: Fredrick Brennan <copypaste@kittens.ph>
Fix broken link on scripting page (#5135)
Link at https://fontforge.org/docs/scripting/scripting.html#scripting-example for testsuite scripts directs to https://github.com/fontforge/fontforge/tree/master/test it should use https://github.com/fontforge/fontforge/tree/master/tests
fontinfo.c: fix crash from uninitialised other_pos
Fixes #5162 Regression from #4889 2b15c0e#diff-d15a109191a6ac28861dafcc1e3ee5a96544c68911601ac42e6462cad71aa58eL2879