From 1f4ce97ecd5fa47eead41e1408d2d26ce50749fa Mon Sep 17 00:00:00 2001 From: janekptacijarabaci Date: Sun, 1 Apr 2018 19:32:49 +0200 Subject: moebius#90: CSS - implement text-justify property --- modules/libpref/init/all.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index ff47dc8e3..689ef31c6 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -2502,6 +2502,9 @@ pref("layout.css.convertFromNode.enabled", true); // Is support for CSS "text-align: unsafe X" enabled? pref("layout.css.text-align-unsafe-value.enabled", false); +// Is support for CSS text-justify property enabled? +pref("layout.css.text-justify.enabled", true); + // Is support for CSS "float: inline-{start,end}" and // "clear: inline-{start,end}" enabled? #if defined(MOZ_B2G) || !defined(RELEASE_OR_BETA) -- cgit v1.2.3 From c55addfa6422cd6fd3886f914b71139c4dd0edcc Mon Sep 17 00:00:00 2001 From: janekptacijarabaci Date: Sun, 15 Apr 2018 14:52:09 +0200 Subject: Bug 1344642 - Part 2: Add a new pref for input type=week, month and datetime-local --- modules/libpref/init/all.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 59f8de9ac..e3e23550a 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -1179,10 +1179,13 @@ pref("dom.forms.number", true); // platforms which don't have a color picker implemented yet. pref("dom.forms.color", true); -// Support for input type=date, time, month, week and datetime-local. By -// default, disabled. +// Support for input type=date and type=time. By default, disabled. pref("dom.forms.datetime", false); +// Support for input type=month, type=week and type=datetime-local. By default, +// disabled. +pref("dom.forms.datetime.others", false); + // Enable time picker UI. By default, disabled. pref("dom.forms.datetime.timepicker", false); -- cgit v1.2.3 From 8bfaf15e559a23b10566762c19c17862a7f5e949 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Wed, 18 Apr 2018 21:00:09 +0200 Subject: Use tried-and-proven backends for content rendering and reserve the use of Skia for canvas only. This should prevent anemic, poorly-spaced and/or cut glyphs in content text. --- modules/libpref/init/all.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index e3e23550a..530d1e3e9 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -777,16 +777,17 @@ pref("gfx.font_rendering.opentype_svg.enabled", true); // comma separated list of backends to use in order of preference // e.g., pref("gfx.canvas.azure.backends", "direct2d,skia,cairo"); pref("gfx.canvas.azure.backends", "direct2d1.1,skia,cairo"); -pref("gfx.content.azure.backends", "direct2d1.1,skia,cairo"); +pref("gfx.content.azure.backends", "direct2d1.1,cairo"); #else #ifdef XP_MACOSX -pref("gfx.content.azure.backends", "skia"); -pref("gfx.canvas.azure.backends", "skia"); +pref("gfx.content.azure.backends", "cg"); +pref("gfx.canvas.azure.backends", "skia,cg"); // Accelerated cg canvas where available (10.7+) pref("gfx.canvas.azure.accelerated", true); #else -pref("gfx.canvas.azure.backends", "skia"); -pref("gfx.content.azure.backends", "skia"); +// Linux etc. +pref("gfx.canvas.azure.backends", "skia,cairo"); +pref("gfx.content.azure.backends", "cairo"); #endif #endif -- cgit v1.2.3 From e3d08de2d29be507fcd5c73c328572167fe43af7 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Thu, 19 Apr 2018 13:37:51 +0200 Subject: Enable requestIdleCallback API This resolves #209. --- modules/libpref/init/all.js | 4 ---- 1 file changed, 4 deletions(-) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 530d1e3e9..385694783 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -192,11 +192,7 @@ pref("dom.enable_performance_observer", false); #endif // Enable requestIdleCallback API -#ifdef NIGHTLY_BUILD pref("dom.requestIdleCallback.enabled", true); -#else -pref("dom.requestIdleCallback.enabled", false); -#endif // Whether the Gamepad API is enabled pref("dom.gamepad.enabled", true); -- cgit v1.2.3 From 20a3f8c006445b176fa8559f6529c2cf3cb75b0d Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Fri, 20 Apr 2018 16:13:21 +0200 Subject: Move the Mark of the Web pref to GRE pref file. --- modules/libpref/init/all.js | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 385694783..182de4a11 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -118,6 +118,14 @@ pref("browser.cache.compression_level", 0); // Don't show "Open with" option on download dialog if true. pref("browser.download.forbid_open_with", false); +#ifdef XP_WIN +// Save internet zone information on downloaded files: +// 0 => Never +// 1 => Always +// 2 => Use system setting +pref("browser.download.saveZoneInformation", 2); +#endif + // Whether or not testing features are enabled. pref("dom.quotaManager.testing", false); -- cgit v1.2.3 From 1b4c4256ee7705724b02919b4d432b2a391bcd04 Mon Sep 17 00:00:00 2001 From: janekptacijarabaci Date: Sun, 22 Apr 2018 18:51:38 +0200 Subject: moebius#223: Consider blocking top level window data: URIs (part 1/3 without tests) https://github.com/MoonchildProductions/moebius/pull/223 --- modules/libpref/init/all.js | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 182de4a11..ccc59269b 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -5564,6 +5564,12 @@ pref("security.mixed_content.use_hsts", true); // Approximately 1 week default cache for HSTS priming failures pref ("security.mixed_content.hsts_priming_cache_timeout", 10080); +// TODO: Bug 1380959: Block toplevel data: URI navigations +// If true, all toplevel data: URI navigations will be blocked. +// Please note that manually entering a data: URI in the +// URL-Bar will not be blocked when flipping this pref. +pref("security.data_uri.block_toplevel_data_uri_navigations", false); + // Disable Storage api in release builds. #ifdef NIGHTLY_BUILD pref("dom.storageManager.enabled", true); -- cgit v1.2.3 From dbfad99a51062e663da19266219191c0dc3521be Mon Sep 17 00:00:00 2001 From: janekptacijarabaci Date: Sun, 22 Apr 2018 21:20:53 +0200 Subject: Bug 1323683 - Fold nsIURIWithQuery into nsIURI native in moebius --- modules/libjar/nsJARURI.cpp | 1 - modules/libjar/nsJARURI.h | 1 - 2 files changed, 2 deletions(-) (limited to 'modules') diff --git a/modules/libjar/nsJARURI.cpp b/modules/libjar/nsJARURI.cpp index e46e51467..d1e4b5a59 100644 --- a/modules/libjar/nsJARURI.cpp +++ b/modules/libjar/nsJARURI.cpp @@ -41,7 +41,6 @@ NS_IMPL_RELEASE(nsJARURI) NS_INTERFACE_MAP_BEGIN(nsJARURI) NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIJARURI) NS_INTERFACE_MAP_ENTRY(nsIURI) - NS_INTERFACE_MAP_ENTRY(nsIURIWithQuery) NS_INTERFACE_MAP_ENTRY(nsIURL) NS_INTERFACE_MAP_ENTRY(nsIJARURI) NS_INTERFACE_MAP_ENTRY(nsISerializable) diff --git a/modules/libjar/nsJARURI.h b/modules/libjar/nsJARURI.h index 31271e4ac..d2608a5c6 100644 --- a/modules/libjar/nsJARURI.h +++ b/modules/libjar/nsJARURI.h @@ -41,7 +41,6 @@ class nsJARURI final : public nsIJARURI, public: NS_DECL_THREADSAFE_ISUPPORTS NS_DECL_NSIURI - NS_DECL_NSIURIWITHQUERY NS_DECL_NSIURL NS_DECL_NSIJARURI NS_DECL_NSISERIALIZABLE -- cgit v1.2.3 From d9d3b687b7c892b400e781dd5c57897efd7173aa Mon Sep 17 00:00:00 2001 From: janekptacijarabaci Date: Mon, 23 Apr 2018 11:54:06 +0200 Subject: moebius#195: DOM - PointerEvent - improvements https://github.com/MoonchildProductions/moebius/pull/195 --- modules/libpref/init/all.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index ccc59269b..f2f628324 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -1161,7 +1161,7 @@ pref("dom.require_user_interaction_for_beforeunload", true); pref("dom.disable_open_during_load", false); pref("dom.popup_maximum", 20); -pref("dom.popup_allowed_events", "change click dblclick mouseup notificationclick reset submit touchend"); +pref("dom.popup_allowed_events", "change click dblclick mouseup pointerup notificationclick reset submit touchend"); pref("dom.disable_open_click_delay", 1000); pref("dom.storage.enabled", true); -- cgit v1.2.3 From acd4eee44eb04fe01b0063818b492390f463ccec Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Tue, 24 Apr 2018 23:12:55 +0200 Subject: Tweak fullscreen API --- modules/libpref/init/all.js | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index f2f628324..903665ff8 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -4753,23 +4753,16 @@ pref("alerts.showFavicons", false); // DOM full-screen API. pref("full-screen-api.enabled", false); -#ifdef RELEASE_OR_BETA -pref("full-screen-api.unprefix.enabled", false); -#else pref("full-screen-api.unprefix.enabled", true); -#endif pref("full-screen-api.allow-trusted-requests-only", true); pref("full-screen-api.pointer-lock.enabled", true); + // transition duration of fade-to-black and fade-from-black, unit: ms -#ifndef MOZ_WIDGET_GTK -pref("full-screen-api.transition-duration.enter", "200 200"); -pref("full-screen-api.transition-duration.leave", "200 200"); -#else pref("full-screen-api.transition-duration.enter", "0 0"); pref("full-screen-api.transition-duration.leave", "0 0"); -#endif + // timeout for black screen in fullscreen transition, unit: ms -pref("full-screen-api.transition.timeout", 1000); +pref("full-screen-api.transition.timeout", 500); // time for the warning box stays on the screen before sliding out, unit: ms pref("full-screen-api.warning.timeout", 3000); // delay for the warning box to show when pointer stays on the top, unit: ms -- cgit v1.2.3 From 306db80410e802b0fe9a3b5273d4cf29586a1b17 Mon Sep 17 00:00:00 2001 From: janekptacijarabaci Date: Sun, 29 Apr 2018 14:15:18 +0200 Subject: moebius#161: The Performance Resource Timing (make timestamps be relative to startTime) https://github.com/MoonchildProductions/moebius/pull/161 --- modules/libpref/init/all.js | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 903665ff8..4239c83bd 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -183,6 +183,9 @@ pref("dom.enable_resource_timing", true); // Enable high-resolution timing markers for users pref("dom.enable_user_timing", true); +// Whether performance.GetEntries* will contain an entry for the active document +pref("dom.enable_performance_navigation_timing", true); + // Enable printing performance marks/measures to log pref("dom.performance.enable_user_timing_logging", false); @@ -192,6 +195,9 @@ pref("dom.performance.enable_notify_performance_timing", false); // Enable Permission API's .revoke() method pref("dom.permissions.revoke.enable", false); +// Enable exposing timeToNonBlankPaint +pref("dom.performance.time_to_non_blank_paint.enabled", false); + // Enable Performance Observer API #ifdef NIGHTLY_BUILD pref("dom.enable_performance_observer", true); -- cgit v1.2.3 From e1490c07e29f5e4715f73088b7ca7aab4ada90a6 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Wed, 2 May 2018 23:30:36 +0200 Subject: Remove GMP sandbox code. --- modules/libpref/init/all.js | 7 ------- 1 file changed, 7 deletions(-) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index bf7626391..88a9af2da 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -5432,13 +5432,6 @@ pref("narrate.voice", " { \"default\": \"automatic\" }"); // Only make voices that match content language available. pref("narrate.filter-voices", true); -#if defined(XP_LINUX) && defined(MOZ_GMP_SANDBOX) -// Whether to allow, on a Linux system that doesn't support the necessary sandboxing -// features, loading Gecko Media Plugins unsandboxed. However, EME CDMs will not be -// loaded without sandboxing even if this pref is changed. -pref("media.gmp.insecure.allow", false); -#endif - pref("dom.audiochannel.mutedByDefault", false); // Enable
and tags. -- cgit v1.2.3 From 7c2dd4fed5b90f11af7cf5c20011a5c3fb3a5193 Mon Sep 17 00:00:00 2001 From: janekptacijarabaci Date: Wed, 9 May 2018 15:28:44 +0200 Subject: Add UTF-8 as a default fallback encoding for unknown encodings Issue #315 --- modules/libpref/init/all.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 88a9af2da..2bf07eb91 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -2046,7 +2046,7 @@ pref("intl.accept_languages", "chrome://global/locale/intl.propert pref("intl.menuitems.alwaysappendaccesskeys","chrome://global/locale/intl.properties"); pref("intl.menuitems.insertseparatorbeforeaccesskeys","chrome://global/locale/intl.properties"); pref("intl.charset.detector", "chrome://global/locale/intl.properties"); -pref("intl.charset.fallback.override", ""); +pref("intl.charset.fallback.override", "*"); // '*' to make sure the UI selects the proper entry for 'auto' pref("intl.charset.fallback.tld", true); pref("intl.ellipsis", "chrome://global-platform/locale/intl.properties"); pref("intl.locale.matchOS", false); -- cgit v1.2.3 From 149b09027c3948bcea24a082615ac63e90d53ddb Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Wed, 9 May 2018 15:43:04 +0200 Subject: Set font.name-list.emoji for some platforms. - Twemoji Mozilla for Windows. Can be prefixed with Segoe UI emoji for native Win8+ emoji, but reduces uniformity. - Apple Color Emoji for OSX - Twemoji Mozilla for GTK (Linux). fontconfig doesn't support emoji as family name. - Noto Color Emoji for Android --- modules/libpref/init/all.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 88a9af2da..6506d4bce 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -3171,6 +3171,10 @@ pref("ui.mouse.radius.inputSource.touchOnly", true); #ifdef XP_WIN +// Be as uniform as possible, use Twemoji everywhere. +// Optional: prefix with `Segoe UI Emoji` to use Win8+ Segoe UI font emoji where available. +pref("font.name-list.emoji", "Twemoji Mozilla"); + pref("font.name.serif.ar", "Times New Roman"); pref("font.name.sans-serif.ar", "Segoe UI"); pref("font.name-list.sans-serif.ar", "Segoe UI, Tahoma, Arial"); @@ -3596,6 +3600,8 @@ pref("ui.osk.debug.keyboardDisplayReason", ""); pref("browser.drag_out_of_frame_style", 1); pref("ui.key.saveLink.shift", false); // true = shift, false = meta +pref("font.name-list.emoji", "Apple Color Emoji"); + // default fonts (in UTF8 and using canonical names) // to determine canonical font names, use a debug build and // enable NSPR logging for module fontInfoLog:5 @@ -4018,6 +4024,10 @@ pref("print.print_extra_margin", 0); // twips // font names +// fontconfig doesn't support emoji yet +// https://lists.freedesktop.org/archives/fontconfig/2016-October/005842.html +pref("font.name-list.emoji", "Twemoji Mozilla"); + pref("font.name.serif.ar", "serif"); pref("font.name.sans-serif.ar", "sans-serif"); pref("font.name.monospace.ar", "monospace"); @@ -4262,6 +4272,8 @@ pref("font.name.monospace.x-math", "Fira Mono"); #elif defined(ANDROID) // We use the bundled fonts for Firefox for Android +pref("font.name-list.emoji", "Noto Color Emoji"); + // ar pref("font.name.serif.el", "Droid Serif"); // not Charis SIL Compact, only has a few Greek chars -- cgit v1.2.3 From 28cf922aa9af4d4b8e0a3ce91dc1270a55986909 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Thu, 10 May 2018 22:21:47 +0200 Subject: Enable xrender by default. Resolves perf regressions over remote X, and makes sense for our content back-ends. Resolves #341. --- modules/libpref/init/all.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index b8039009d..225ba2447 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -4671,7 +4671,7 @@ pref("gfx.apitrace.enabled",false); #ifdef MOZ_X11 pref("gfx.content.use-native-pushlayer", true); #ifdef MOZ_WIDGET_GTK -pref("gfx.xrender.enabled",false); +pref("gfx.xrender.enabled", true); #endif #endif -- cgit v1.2.3 From b7d9dad58e5a3f87a6c767412941700bc8010044 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Sat, 12 May 2018 14:32:03 +0200 Subject: Remove MOZ_B2G leftovers and some dead B2G-only components. --- modules/libpref/Preferences.cpp | 2 - modules/libpref/init/all.js | 81 +++-------------------------------------- modules/libpref/prefapi.cpp | 8 ---- 3 files changed, 5 insertions(+), 86 deletions(-) (limited to 'modules') diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp index f36819236..31867ca0a 100644 --- a/modules/libpref/Preferences.cpp +++ b/modules/libpref/Preferences.cpp @@ -466,9 +466,7 @@ Preferences::IsServiceAvailable() bool Preferences::InitStaticMembers() { -#ifndef MOZ_B2G MOZ_ASSERT(NS_IsMainThread()); -#endif if (!sShutdown && !sPreferences) { nsCOMPtr prefService = diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 225ba2447..59476b9de 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -1260,7 +1260,7 @@ pref("javascript.options.wasm", false); pref("javascript.options.wasm_baselinejit", false); pref("javascript.options.native_regexp", true); pref("javascript.options.parallel_parsing", true); -#if !defined(RELEASE_OR_BETA) && !defined(ANDROID) && !defined(MOZ_B2G) && !defined(XP_IOS) +#if !defined(RELEASE_OR_BETA) && !defined(ANDROID) && !defined(XP_IOS) pref("javascript.options.asyncstack", true); #else pref("javascript.options.asyncstack", false); @@ -2144,14 +2144,6 @@ pref("font.name.monospace.x-math", "monospace"); // These fonts are ignored the underline offset, instead of it, the underline is lowered to bottom of its em descent. pref("font.blacklist.underline_offset", "FangSong,Gulim,GulimChe,MingLiU,MingLiU-ExtB,MingLiU_HKSCS,MingLiU-HKSCS-ExtB,MS Gothic,MS Mincho,MS PGothic,MS PMincho,MS UI Gothic,PMingLiU,PMingLiU-ExtB,SimHei,SimSun,SimSun-ExtB,Hei,Kai,Apple LiGothic,Apple LiSung,Osaka"); -#ifdef MOZ_B2G -// Whitelist of fonts that ship with B2G that do not include space lookups in -// default features. This allows us to skip analyzing the GSUB/GPOS tables -// unless features are explicitly enabled. -// Use NSPR_LOG_MODULES=fontinit:5 to dump out details of space lookups -pref("font.whitelist.skip_default_features_space_check", "Fira Sans,Fira Mono"); -#endif - pref("images.dither", "auto"); pref("security.directory", ""); @@ -2521,7 +2513,7 @@ pref("layout.css.text-justify.enabled", true); // Is support for CSS "float: inline-{start,end}" and // "clear: inline-{start,end}" enabled? -#if defined(MOZ_B2G) || !defined(RELEASE_OR_BETA) +#if !defined(RELEASE_OR_BETA) pref("layout.css.float-logical-values.enabled", true); #else pref("layout.css.float-logical-values.enabled", false); @@ -4185,7 +4177,7 @@ pref("gfx.font_rendering.fontconfig.max_generic_substitutions", 3); #endif #endif -#if defined(ANDROID) || defined(MOZ_B2G) +#if defined(ANDROID) pref("font.size.fixed.ar", 12); @@ -4203,73 +4195,10 @@ pref("font.size.fixed.x-unicode", 12); pref("font.default.x-western", "sans-serif"); pref("font.size.fixed.x-western", 12); -# ANDROID || MOZ_B2G +# ANDROID #endif -#if defined(MOZ_B2G) -// Gonk, FxOS Simulator, B2G Desktop and Mulet. - -// TODO: some entries could probably be cleaned up. - -// ar - -pref("font.name.serif.el", "Droid Serif"); // not Charis SIL Compact, only has a few Greek chars -pref("font.name.sans-serif.el", "Fira Sans"); -pref("font.name.monospace.el", "Fira Mono"); - -pref("font.name.serif.he", "Charis SIL Compact"); -pref("font.name.sans-serif.he", "Fira Sans"); -pref("font.name.monospace.he", "Fira Mono"); -pref("font.name-list.sans-serif.he", "Droid Sans Hebrew, Fira Sans"); - -pref("font.name.serif.ja", "Charis SIL Compact"); -pref("font.name.sans-serif.ja", "Fira Sans"); -pref("font.name.monospace.ja", "MotoyaLMaru"); -pref("font.name-list.sans-serif.ja", "Fira Sans, MotoyaLMaru, MotoyaLCedar, Droid Sans Japanese"); -pref("font.name-list.monospace.ja", "MotoyaLMaru, MotoyaLCedar, Fira Mono"); - -pref("font.name.serif.ko", "Charis SIL Compact"); -pref("font.name.sans-serif.ko", "Fira Sans"); -pref("font.name.monospace.ko", "Fira Mono"); - -pref("font.name.serif.th", "Charis SIL Compact"); -pref("font.name.sans-serif.th", "Fira Sans"); -pref("font.name.monospace.th", "Fira Mono"); -pref("font.name-list.sans-serif.th", "Fira Sans, Noto Sans Thai, Droid Sans Thai"); - -pref("font.name.serif.x-cyrillic", "Charis SIL Compact"); -pref("font.name.sans-serif.x-cyrillic", "Fira Sans"); -pref("font.name.monospace.x-cyrillic", "Fira Mono"); - -pref("font.name.serif.x-unicode", "Charis SIL Compact"); -pref("font.name.sans-serif.x-unicode", "Fira Sans"); -pref("font.name.monospace.x-unicode", "Fira Mono"); - -pref("font.name.serif.x-western", "Charis SIL Compact"); -pref("font.name.sans-serif.x-western", "Fira Sans"); -pref("font.name.monospace.x-western", "Fira Mono"); - -pref("font.name.serif.zh-CN", "Charis SIL Compact"); -pref("font.name.sans-serif.zh-CN", "Fira Sans"); -pref("font.name.monospace.zh-CN", "Fira Mono"); -pref("font.name-list.sans-serif.zh-CN", "Fira Sans,Droid Sans Fallback"); - -pref("font.name.serif.zh-HK", "Charis SIL Compact"); -pref("font.name.sans-serif.zh-HK", "Fira Sans"); -pref("font.name.monospace.zh-HK", "Fira Mono"); -pref("font.name-list.sans-serif.zh-HK", "Fira Sans,Droid Sans Fallback"); - -pref("font.name.serif.zh-TW", "Charis SIL Compact"); -pref("font.name.sans-serif.zh-TW", "Fira Sans"); -pref("font.name.monospace.zh-TW", "Fira Mono"); -pref("font.name-list.sans-serif.zh-TW", "Fira Sans,Droid Sans Fallback"); - -pref("font.name.serif.x-math", "Latin Modern Math"); -pref("font.name-list.serif.x-math", "Latin Modern Math, XITS Math, Cambria Math, Libertinus Math, DejaVu Math TeX Gyre, TeX Gyre Bonum Math, TeX Gyre Pagella Math, TeX Gyre Schola, TeX Gyre Termes Math, STIX Math, Asana Math, STIXGeneral, DejaVu Serif, DejaVu Sans, Charis SIL Compact"); -pref("font.name.sans-serif.x-math", "Fira Sans"); -pref("font.name.monospace.x-math", "Fira Mono"); - -#elif defined(ANDROID) +#if defined(ANDROID) // We use the bundled fonts for Firefox for Android pref("font.name-list.emoji", "Noto Color Emoji"); diff --git a/modules/libpref/prefapi.cpp b/modules/libpref/prefapi.cpp index 046a69419..8aaf4077b 100644 --- a/modules/libpref/prefapi.cpp +++ b/modules/libpref/prefapi.cpp @@ -573,9 +573,7 @@ nsresult PREF_GetBoolPref(const char *pref_name, bool * return_value, bool get_d nsresult PREF_DeleteBranch(const char *branch_name) { -#ifndef MOZ_B2G MOZ_ASSERT(NS_IsMainThread()); -#endif int len = (int)strlen(branch_name); @@ -636,9 +634,7 @@ PREF_ClearUserPref(const char *pref_name) nsresult PREF_ClearAllUserPrefs() { -#ifndef MOZ_B2G MOZ_ASSERT(NS_IsMainThread()); -#endif if (!gHashTable) return NS_ERROR_NOT_INITIALIZED; @@ -739,18 +735,14 @@ static PrefTypeFlags pref_SetValue(PrefValue* existingValue, PrefTypeFlags flags PrefHashEntry* pref_HashTableLookup(const char *key) { -#ifndef MOZ_B2G MOZ_ASSERT(NS_IsMainThread()); -#endif return static_cast(gHashTable->Search(key)); } nsresult pref_HashPref(const char *key, PrefValue value, PrefType type, uint32_t flags) { -#ifndef MOZ_B2G MOZ_ASSERT(NS_IsMainThread()); -#endif if (!gHashTable) return NS_ERROR_OUT_OF_MEMORY; -- cgit v1.2.3 From 41d68e3f70b0aabc01cf9a49c43cf1aab0f4bdce Mon Sep 17 00:00:00 2001 From: trav90 Date: Sat, 12 May 2018 08:32:13 -0500 Subject: Make safebrowsing optional at build time - Part 5: preferences --- modules/libpref/init/all.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 59476b9de..f901462b4 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -5010,6 +5010,7 @@ pref("dom.flyweb.enabled", false); // Enable mapped array buffer by default. pref("dom.mapped_arraybuffer.enabled", true); +#ifdef MOZ_SAFE_BROWSING // The tables used for Safebrowsing phishing and malware checks. pref("urlclassifier.malwareTable", "goog-malware-shavar,goog-unwanted-shavar,test-malware-simple,test-unwanted-simple"); @@ -5117,6 +5118,7 @@ pref("browser.safebrowsing.id", "navclient-auto-ffox"); #else pref("browser.safebrowsing.id", "Firefox"); #endif +#endif // Turn off Spatial navigation by default. pref("snav.enabled", false); -- cgit v1.2.3 From e16bcd08aae85a7d9c2de5a4b1c733280cb81112 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Sun, 13 May 2018 00:08:52 +0200 Subject: Remove MOZ_WIDGET_GONK [2/2] Tag #288 --- modules/libpref/init/all.js | 54 +++++++-------------------------------------- 1 file changed, 8 insertions(+), 46 deletions(-) (limited to 'modules') diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 59476b9de..a1016a820 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -451,20 +451,6 @@ pref("media.webrtc.debug.aec_log_dir", ""); pref("media.webrtc.debug.log_file", ""); pref("media.webrtc.debug.aec_dump_max_size", 4194304); // 4MB -#ifdef MOZ_WIDGET_GONK -pref("media.navigator.video.default_width", 320); -pref("media.navigator.video.default_height", 240); -pref("media.peerconnection.enabled", true); -pref("media.peerconnection.video.enabled", true); -pref("media.navigator.video.max_fs", 1200); // 640x480 == 1200mb -pref("media.navigator.video.max_fr", 30); -pref("media.navigator.video.h264.level", 12); // 0x42E00C - level 1.2 -pref("media.navigator.video.h264.max_br", 700); // 8x10 -pref("media.navigator.video.h264.max_mbps", 11880); // CIF@30fps -pref("media.peerconnection.video.h264_enabled", false); -pref("media.peerconnection.video.vp9_enabled", false); -pref("media.getusermedia.aec", 4); -#else pref("media.navigator.video.default_width",0); // adaptive default pref("media.navigator.video.default_height",0); // adaptive default pref("media.peerconnection.enabled", true); @@ -478,9 +464,7 @@ pref("media.peerconnection.video.h264_enabled", false); pref("media.peerconnection.video.vp9_enabled", true); pref("media.getusermedia.aec", 1); pref("media.getusermedia.browser.enabled", true); -#endif -// Gonk typically captures at QVGA, and so min resolution is QQVGA or -// 160x120; 100Kbps is plenty for that. + // Desktop is typically VGA capture or more; and qm_select will not drop resolution // below 1/2 in each dimension (or so), so QVGA (320x200) is the lowest here usually. pref("media.peerconnection.video.min_bitrate", 0); @@ -580,7 +564,7 @@ pref("media.mediasource.enabled", true); pref("media.mediasource.mp4.enabled", true); -#if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_GONK) || defined(MOZ_WIDGET_ANDROID) +#if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_ANDROID) pref("media.mediasource.webm.enabled", false); #else pref("media.mediasource.webm.enabled", true); @@ -700,7 +684,7 @@ pref("apz.y_stationary_size_multiplier", "3.5"); pref("apz.zoom_animation_duration_ms", 250); pref("apz.scale_repaint_delay_ms", 500); -#if defined(MOZ_WIDGET_GONK) || defined(MOZ_WIDGET_ANDROID) +#if defined(MOZ_WIDGET_ANDROID) // Mobile prefs pref("apz.allow_zooming", true); pref("apz.enlarge_displayport_when_clipped", true); @@ -716,7 +700,7 @@ pref("apz.y_stationary_size_multiplier", "1.5"); pref("gfx.hidpi.enabled", 2); #endif -#if !defined(MOZ_WIDGET_GONK) && !defined(MOZ_WIDGET_ANDROID) +#if !defined(MOZ_WIDGET_ANDROID) // Use containerless scrolling for now on desktop. pref("layout.scroll.root-frame-containers", false); #endif @@ -4469,10 +4453,6 @@ pref("webgl.dxgl.needs-finish", false); pref("gfx.offscreencanvas.enabled", false); -#ifdef MOZ_WIDGET_GONK -pref("gfx.gralloc.fence-with-readpixels", false); -#endif - // Stagefright prefs pref("stagefright.force-enabled", false); pref("stagefright.disabled", false); @@ -4524,7 +4504,7 @@ pref("layers.acceleration.force-enabled", false); pref("layers.acceleration.draw-fps", false); // Enable DEAA antialiasing for transformed layers in the compositor -#if !defined(MOZ_WIDGET_GONK) && !defined(MOZ_WIDGET_ANDROID) +#if !defined(MOZ_WIDGET_ANDROID) // Desktop prefs pref("layers.deaa.enabled", true); #else @@ -4828,7 +4808,7 @@ pref("layout.css.expensive-style-struct-assertions.enabled", false); // enable JS dump() function. pref("browser.dom.window.dump.enabled", false); -#if defined(MOZ_WIDGET_GONK) || defined(MOZ_WIDGET_ANDROID) +#if defined(MOZ_WIDGET_ANDROID) // Network Information API pref("dom.netinfo.enabled", true); #else @@ -5192,15 +5172,6 @@ pref("camera.control.face_detection.enabled", true); // SW Cache API pref("dom.caches.enabled", true); -#ifdef MOZ_WIDGET_GONK -// Empirically, this is the value returned by hal::GetTotalSystemMemory() -// when Flame's memory is limited to 512MiB. If the camera stack determines -// it is running on a low memory platform, features that can be reliably -// supported will be disabled. This threshold can be adjusted to suit other -// platforms; and set to 0 to disable the low-memory check altogether. -pref("camera.control.low_memory_thresholdMB", 404); -#endif - // SystemUpdate API pref("dom.system_update.enabled", false); pref("dom.system_update.debug", false); @@ -5280,7 +5251,6 @@ pref("browser.search.geoip.timeout", 3000); pref("browser.search.official", true); #endif -#ifndef MOZ_WIDGET_GONK // GMPInstallManager prefs // User-settable override to media.gmp-manager.url for testing purposes. @@ -5316,7 +5286,6 @@ pref("media.gmp-manager.certs.1.issuerName", "CN=DigiCert SHA2 Secure Server CA, pref("media.gmp-manager.certs.1.commonName", "aus5.mozilla.org"); pref("media.gmp-manager.certs.2.issuerName", "CN=thawte SSL CA - G2,O=\"thawte, Inc.\",C=US"); pref("media.gmp-manager.certs.2.commonName", "aus5.mozilla.org"); -#endif // Whether or not to perform reader mode article parsing on page load. // If this pref is disabled, we will never show a reader mode icon in the toolbar. @@ -5390,15 +5359,8 @@ pref("dom.secureelement.enabled", false); // and compositionend events. pref("dom.compositionevent.allow_control_characters", false); -#ifdef MOZ_WIDGET_GONK -// Bug 1154053: Serialize B2G memory reports; smaller devices are -// usually overcommitted on memory by using zRAM, so memory reporting -// causes memory pressure from uncompressing cold heap memory. -pref("memory.report_concurrency", 1); -#else -// Desktop probably doesn't have swapped-out children like that. +// Desktop probably doesn't have swapped-out children. pref("memory.report_concurrency", 10); -#endif // Add Mozilla AudioChannel APIs. pref("media.useAudioChannelAPI", false); @@ -5467,7 +5429,7 @@ pref("dom.maxHardwareConcurrency", 16); pref("osfile.reset_worker_delay", 30000); #endif -#if !defined(MOZ_WIDGET_GONK) && !defined(MOZ_WIDGET_ANDROID) +#if !defined(MOZ_WIDGET_ANDROID) pref("dom.webkitBlink.dirPicker.enabled", true); pref("dom.webkitBlink.filesystem.enabled", true); #endif -- cgit v1.2.3 From 9c075dc4cdaeef79bc570ed2219bb757cb325c47 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Tue, 15 May 2018 20:21:34 +0200 Subject: Update in-tree freetype2 lib (unused) to 2.9.1 --- modules/freetype2/CMakeLists.txt | 397 +- modules/freetype2/ChangeLog | 2816 ++--- modules/freetype2/ChangeLog.20 | 8 +- modules/freetype2/ChangeLog.21 | 57 +- modules/freetype2/ChangeLog.22 | 20 +- modules/freetype2/ChangeLog.23 | 86 +- modules/freetype2/ChangeLog.24 | 96 +- modules/freetype2/ChangeLog.25 | 24 +- modules/freetype2/ChangeLog.26 | 48 +- modules/freetype2/ChangeLog.27 | 2106 ++++ modules/freetype2/ChangeLog.28 | 3136 ++++++ modules/freetype2/Jamfile | 4 +- modules/freetype2/Jamrules | 2 +- modules/freetype2/Makefile | 2 +- modules/freetype2/README | 18 +- modules/freetype2/README.git | 2 +- modules/freetype2/README.moz-patches | 2 +- modules/freetype2/autogen.sh | 2 +- modules/freetype2/builds/amiga/README | 2 +- .../builds/amiga/include/config/ftconfig.h | 2 +- .../builds/amiga/include/config/ftmodule.h | 2 +- modules/freetype2/builds/amiga/makefile | 12 +- modules/freetype2/builds/amiga/makefile.os4 | 12 +- modules/freetype2/builds/amiga/smakefile | 10 +- modules/freetype2/builds/amiga/src/base/ftdebug.c | 2 +- modules/freetype2/builds/amiga/src/base/ftsystem.c | 2 +- modules/freetype2/builds/ansi/ansi-def.mk | 2 +- modules/freetype2/builds/ansi/ansi.mk | 2 +- modules/freetype2/builds/beos/beos-def.mk | 2 +- modules/freetype2/builds/beos/beos.mk | 2 +- modules/freetype2/builds/beos/detect.mk | 2 +- modules/freetype2/builds/cmake/FindHarfBuzz.cmake | 57 +- modules/freetype2/builds/cmake/iOS.cmake | 2 +- modules/freetype2/builds/cmake/testbuild.sh | 2 +- modules/freetype2/builds/compiler/ansi-cc.mk | 2 +- modules/freetype2/builds/compiler/bcc-dev.mk | 2 +- modules/freetype2/builds/compiler/bcc.mk | 2 +- modules/freetype2/builds/compiler/emx.mk | 2 +- modules/freetype2/builds/compiler/gcc-dev.mk | 2 +- modules/freetype2/builds/compiler/gcc.mk | 2 +- modules/freetype2/builds/compiler/intelc.mk | 2 +- modules/freetype2/builds/compiler/unix-lcc.mk | 2 +- modules/freetype2/builds/compiler/visualage.mk | 2 +- modules/freetype2/builds/compiler/visualc.mk | 2 +- modules/freetype2/builds/compiler/watcom.mk | 2 +- modules/freetype2/builds/compiler/win-lcc.mk | 2 +- modules/freetype2/builds/detect.mk | 66 +- modules/freetype2/builds/dos/detect.mk | 4 +- modules/freetype2/builds/dos/dos-def.mk | 2 +- modules/freetype2/builds/dos/dos-emx.mk | 2 +- modules/freetype2/builds/dos/dos-gcc.mk | 2 +- modules/freetype2/builds/dos/dos-wat.mk | 2 +- modules/freetype2/builds/exports.mk | 2 +- modules/freetype2/builds/freetype.mk | 28 +- modules/freetype2/builds/link_dos.mk | 2 +- modules/freetype2/builds/link_std.mk | 2 +- .../builds/mac/FreeType.m68k_cfm.make.txt | 3 - .../builds/mac/FreeType.m68k_far.make.txt | 3 - .../builds/mac/FreeType.ppc_carbon.make.txt | 3 - .../builds/mac/FreeType.ppc_classic.make.txt | 3 - modules/freetype2/builds/mac/ftmac.c | 6 +- modules/freetype2/builds/modules.mk | 6 +- modules/freetype2/builds/newline | 1 - modules/freetype2/builds/os2/detect.mk | 4 +- modules/freetype2/builds/os2/os2-def.mk | 2 +- modules/freetype2/builds/os2/os2-dev.mk | 2 +- modules/freetype2/builds/os2/os2-gcc.mk | 2 +- modules/freetype2/builds/symbian/bld.inf | 12 +- modules/freetype2/builds/symbian/freetype.mmp | 14 +- modules/freetype2/builds/toplevel.mk | 5 +- modules/freetype2/builds/unix/config.guess | 580 +- modules/freetype2/builds/unix/config.sub | 265 +- modules/freetype2/builds/unix/configure | 591 +- modules/freetype2/builds/unix/configure.ac | 105 +- modules/freetype2/builds/unix/configure.raw | 103 +- modules/freetype2/builds/unix/detect.mk | 2 +- modules/freetype2/builds/unix/freetype-config.in | 106 +- modules/freetype2/builds/unix/freetype2.in | 2 +- modules/freetype2/builds/unix/freetype2.m4 | 2 +- modules/freetype2/builds/unix/ft-munmap.m4 | 2 +- modules/freetype2/builds/unix/ftconfig.in | 94 +- modules/freetype2/builds/unix/ftsystem.c | 2 +- modules/freetype2/builds/unix/install.mk | 37 +- modules/freetype2/builds/unix/pkg.m4 | 2 +- modules/freetype2/builds/unix/unix-cc.in | 15 +- modules/freetype2/builds/unix/unix-def.in | 10 +- modules/freetype2/builds/unix/unix-dev.mk | 2 +- modules/freetype2/builds/unix/unix-lcc.mk | 2 +- modules/freetype2/builds/unix/unix.mk | 2 +- modules/freetype2/builds/unix/unixddef.mk | 2 +- modules/freetype2/builds/vms/ftconfig.h | 121 +- modules/freetype2/builds/vms/ftsystem.c | 2 +- modules/freetype2/builds/wince/ftdebug.c | 4 +- .../builds/wince/vc2005-ce/freetype.vcproj | 3047 +----- .../freetype2/builds/wince/vc2005-ce/index.html | 10 +- .../builds/wince/vc2008-ce/freetype.vcproj | 10159 +----------------- .../freetype2/builds/wince/vc2008-ce/index.html | 10 +- modules/freetype2/builds/windows/detect.mk | 28 +- modules/freetype2/builds/windows/ftdebug.c | 4 +- .../builds/windows/vc2005/freetype.vcproj | 453 +- modules/freetype2/builds/windows/vc2005/index.html | 10 +- .../builds/windows/vc2008/freetype.vcproj | 1536 +-- modules/freetype2/builds/windows/vc2008/index.html | 10 +- .../freetype2/builds/windows/vc2010/freetype.sln | 36 +- .../builds/windows/vc2010/freetype.vcxproj | 1504 +-- .../builds/windows/vc2010/freetype.vcxproj.filters | 88 +- modules/freetype2/builds/windows/vc2010/index.html | 42 +- .../freetype2/builds/windows/visualc/freetype.dsp | 47 +- .../builds/windows/visualc/freetype.vcproj | 1536 +-- .../freetype2/builds/windows/visualc/index.html | 10 +- .../freetype2/builds/windows/visualce/freetype.dsp | 47 +- .../builds/windows/visualce/freetype.vcproj | 10378 +------------------ .../freetype2/builds/windows/visualce/index.html | 10 +- modules/freetype2/builds/windows/w32-bcc.mk | 2 +- modules/freetype2/builds/windows/w32-bccd.mk | 2 +- modules/freetype2/builds/windows/w32-dev.mk | 2 +- modules/freetype2/builds/windows/w32-gcc.mk | 2 +- modules/freetype2/builds/windows/w32-icc.mk | 2 +- modules/freetype2/builds/windows/w32-intl.mk | 2 +- modules/freetype2/builds/windows/w32-lcc.mk | 2 +- modules/freetype2/builds/windows/w32-mingw32.mk | 2 +- modules/freetype2/builds/windows/w32-vcc.mk | 2 +- modules/freetype2/builds/windows/w32-wat.mk | 2 +- modules/freetype2/builds/windows/win32-def.mk | 2 +- modules/freetype2/configure | 6 +- modules/freetype2/devel/ft2build.h | 2 +- modules/freetype2/devel/ftoption.h | 114 +- modules/freetype2/docs/CHANGES | 403 +- modules/freetype2/docs/CUSTOMIZE | 2 +- modules/freetype2/docs/DEBUG | 4 +- modules/freetype2/docs/FTL.TXT | 2 +- modules/freetype2/docs/INSTALL | 8 +- modules/freetype2/docs/INSTALL.ANY | 4 +- modules/freetype2/docs/INSTALL.CROSS | 4 +- modules/freetype2/docs/INSTALL.GNU | 6 +- modules/freetype2/docs/INSTALL.MAC | 42 +- modules/freetype2/docs/INSTALL.UNIX | 7 +- modules/freetype2/docs/INSTALL.VMS | 14 +- modules/freetype2/docs/MAKEPP | 2 +- modules/freetype2/docs/TODO | 2 +- modules/freetype2/docs/VERSIONS.TXT | 8 +- modules/freetype2/docs/formats.txt | 31 +- modules/freetype2/docs/freetype-config.1 | 50 +- modules/freetype2/docs/raster.txt | 2 +- .../freetype2/docs/reference/ft2-auto_hinter.html | 316 +- .../docs/reference/ft2-base_interface.html | 642 +- .../freetype2/docs/reference/ft2-basic_types.html | 12 +- .../freetype2/docs/reference/ft2-bdf_fonts.html | 6 +- .../docs/reference/ft2-bitmap_handling.html | 8 +- modules/freetype2/docs/reference/ft2-bzip2.html | 6 +- .../docs/reference/ft2-cache_subsystem.html | 6 +- .../freetype2/docs/reference/ft2-cff_driver.html | 125 +- .../freetype2/docs/reference/ft2-cid_fonts.html | 8 +- .../freetype2/docs/reference/ft2-computations.html | 27 +- .../docs/reference/ft2-error_code_values.html | 10 +- .../docs/reference/ft2-error_enumerations.html | 10 +- .../freetype2/docs/reference/ft2-font_formats.html | 6 +- .../freetype2/docs/reference/ft2-gasp_table.html | 13 +- .../docs/reference/ft2-glyph_management.html | 13 +- .../docs/reference/ft2-glyph_stroker.html | 18 +- .../docs/reference/ft2-glyph_variants.html | 40 +- .../docs/reference/ft2-gx_validation.html | 8 +- modules/freetype2/docs/reference/ft2-gzip.html | 9 +- .../docs/reference/ft2-header_file_macros.html | 151 +- .../docs/reference/ft2-header_inclusion.html | 6 +- .../freetype2/docs/reference/ft2-incremental.html | 24 +- modules/freetype2/docs/reference/ft2-index.html | 550 +- .../docs/reference/ft2-lcd_filtering.html | 28 +- .../docs/reference/ft2-list_processing.html | 6 +- modules/freetype2/docs/reference/ft2-lzw.html | 6 +- .../freetype2/docs/reference/ft2-mac_specific.html | 6 +- .../docs/reference/ft2-module_management.html | 85 +- .../docs/reference/ft2-multiple_masters.html | 241 +- .../docs/reference/ft2-ot_validation.html | 6 +- .../docs/reference/ft2-outline_processing.html | 36 +- .../docs/reference/ft2-parameter_tags.html | 232 + .../freetype2/docs/reference/ft2-pcf_driver.html | 111 + .../freetype2/docs/reference/ft2-pfr_fonts.html | 12 +- .../freetype2/docs/reference/ft2-properties.html | 704 ++ .../docs/reference/ft2-quick_advance.html | 6 +- modules/freetype2/docs/reference/ft2-raster.html | 16 +- .../freetype2/docs/reference/ft2-sfnt_names.html | 98 +- .../docs/reference/ft2-sizes_management.html | 6 +- .../docs/reference/ft2-system_interface.html | 6 +- .../docs/reference/ft2-t1_cid_driver.html | 114 + modules/freetype2/docs/reference/ft2-toc.html | 24 +- .../docs/reference/ft2-truetype_engine.html | 6 +- .../docs/reference/ft2-truetype_tables.html | 1129 +- .../freetype2/docs/reference/ft2-tt_driver.html | 143 +- .../freetype2/docs/reference/ft2-type1_tables.html | 15 +- .../docs/reference/ft2-user_allocation.html | 6 +- modules/freetype2/docs/reference/ft2-version.html | 8 +- .../freetype2/docs/reference/ft2-winfnt_fonts.html | 8 +- modules/freetype2/docs/release | 2 +- .../freetype2/include/freetype/config/ftconfig.h | 117 +- .../freetype2/include/freetype/config/ftheader.h | 139 +- .../freetype2/include/freetype/config/ftoption.h | 188 +- .../freetype2/include/freetype/config/ftstdlib.h | 2 +- modules/freetype2/include/freetype/freetype.h | 1166 ++- modules/freetype2/include/freetype/ftadvanc.h | 2 +- modules/freetype2/include/freetype/ftautoh.h | 511 - modules/freetype2/include/freetype/ftbbox.h | 4 +- modules/freetype2/include/freetype/ftbdf.h | 2 +- modules/freetype2/include/freetype/ftbitmap.h | 4 +- modules/freetype2/include/freetype/ftbzip2.h | 2 +- modules/freetype2/include/freetype/ftcache.h | 17 +- modules/freetype2/include/freetype/ftcffdrv.h | 275 - modules/freetype2/include/freetype/ftchapters.h | 4 + modules/freetype2/include/freetype/ftcid.h | 4 +- modules/freetype2/include/freetype/ftdriver.h | 1225 +++ modules/freetype2/include/freetype/fterrdef.h | 6 +- modules/freetype2/include/freetype/fterrors.h | 10 +- modules/freetype2/include/freetype/ftfntfmt.h | 2 +- modules/freetype2/include/freetype/ftgasp.h | 21 +- modules/freetype2/include/freetype/ftglyph.h | 17 +- modules/freetype2/include/freetype/ftgxval.h | 10 +- modules/freetype2/include/freetype/ftgzip.h | 5 +- modules/freetype2/include/freetype/ftimage.h | 58 +- modules/freetype2/include/freetype/ftincrem.h | 15 +- modules/freetype2/include/freetype/ftlcdfil.h | 43 +- modules/freetype2/include/freetype/ftlist.h | 2 +- modules/freetype2/include/freetype/ftlzw.h | 2 +- modules/freetype2/include/freetype/ftmac.h | 11 +- modules/freetype2/include/freetype/ftmm.h | 295 +- modules/freetype2/include/freetype/ftmodapi.h | 66 +- modules/freetype2/include/freetype/ftmoderr.h | 2 +- modules/freetype2/include/freetype/ftotval.h | 2 +- modules/freetype2/include/freetype/ftoutln.h | 14 +- modules/freetype2/include/freetype/ftparams.h | 205 + modules/freetype2/include/freetype/ftpfr.h | 8 +- modules/freetype2/include/freetype/ftrender.h | 4 +- modules/freetype2/include/freetype/ftsizes.h | 2 +- modules/freetype2/include/freetype/ftsnames.h | 145 +- modules/freetype2/include/freetype/ftstroke.h | 14 +- modules/freetype2/include/freetype/ftsynth.h | 2 +- modules/freetype2/include/freetype/ftsystem.h | 2 +- modules/freetype2/include/freetype/fttrigon.h | 2 +- modules/freetype2/include/freetype/ftttdrv.h | 329 - modules/freetype2/include/freetype/fttypes.h | 4 +- modules/freetype2/include/freetype/ftwinfnt.h | 4 +- .../freetype2/include/freetype/internal/autohint.h | 2 +- .../include/freetype/internal/cffotypes.h | 108 + .../freetype2/include/freetype/internal/cfftypes.h | 412 + .../freetype2/include/freetype/internal/ftcalc.h | 38 +- .../freetype2/include/freetype/internal/ftdebug.h | 2 +- .../freetype2/include/freetype/internal/ftdriver.h | 400 - .../freetype2/include/freetype/internal/ftdrv.h | 400 + .../freetype2/include/freetype/internal/ftgloadr.h | 2 +- .../freetype2/include/freetype/internal/ftmemory.h | 4 +- .../freetype2/include/freetype/internal/ftobjs.h | 157 +- .../freetype2/include/freetype/internal/ftpic.h | 2 +- .../freetype2/include/freetype/internal/ftpsprop.h | 48 + .../freetype2/include/freetype/internal/ftrfork.h | 2 +- .../freetype2/include/freetype/internal/ftserv.h | 187 +- .../freetype2/include/freetype/internal/ftstream.h | 8 +- .../freetype2/include/freetype/internal/fttrace.h | 9 +- .../freetype2/include/freetype/internal/ftvalid.h | 2 +- .../freetype2/include/freetype/internal/internal.h | 8 +- .../freetype2/include/freetype/internal/psaux.h | 503 +- .../freetype2/include/freetype/internal/pshints.h | 2 +- .../include/freetype/internal/services/svbdf.h | 2 +- .../include/freetype/internal/services/svcfftl.h | 112 + .../include/freetype/internal/services/svcid.h | 2 +- .../include/freetype/internal/services/svfntfmt.h | 2 +- .../include/freetype/internal/services/svgldict.h | 6 +- .../include/freetype/internal/services/svgxval.h | 2 +- .../include/freetype/internal/services/svkern.h | 2 +- .../include/freetype/internal/services/svmetric.h | 10 +- .../include/freetype/internal/services/svmm.h | 58 +- .../include/freetype/internal/services/svotval.h | 2 +- .../include/freetype/internal/services/svpfr.h | 2 +- .../include/freetype/internal/services/svpostnm.h | 2 +- .../include/freetype/internal/services/svprop.h | 2 +- .../include/freetype/internal/services/svpscmap.h | 2 +- .../include/freetype/internal/services/svpsinfo.h | 2 +- .../include/freetype/internal/services/svsfnt.h | 2 +- .../include/freetype/internal/services/svttcmap.h | 2 +- .../include/freetype/internal/services/svtteng.h | 2 +- .../include/freetype/internal/services/svttglyf.h | 2 +- .../include/freetype/internal/services/svwinfnt.h | 2 +- modules/freetype2/include/freetype/internal/sfnt.h | 42 +- .../freetype2/include/freetype/internal/t1types.h | 2 +- .../freetype2/include/freetype/internal/tttypes.h | 148 +- modules/freetype2/include/freetype/t1tables.h | 15 +- modules/freetype2/include/freetype/ttnameid.h | 627 +- modules/freetype2/include/freetype/tttables.h | 363 +- modules/freetype2/include/freetype/tttags.h | 8 +- modules/freetype2/include/freetype/ttunpat.h | 63 - modules/freetype2/include/ft2build.h | 2 +- modules/freetype2/modules.cfg | 31 +- modules/freetype2/src/Jamfile | 2 +- modules/freetype2/src/autofit/Jamfile | 2 +- modules/freetype2/src/autofit/afangles.c | 2 +- modules/freetype2/src/autofit/afblue.c | 294 +- modules/freetype2/src/autofit/afblue.cin | 2 +- modules/freetype2/src/autofit/afblue.dat | 374 +- modules/freetype2/src/autofit/afblue.h | 372 +- modules/freetype2/src/autofit/afblue.hin | 2 +- modules/freetype2/src/autofit/afcjk.c | 26 +- modules/freetype2/src/autofit/afcjk.h | 2 +- modules/freetype2/src/autofit/afcover.h | 2 +- modules/freetype2/src/autofit/afdummy.c | 2 +- modules/freetype2/src/autofit/afdummy.h | 2 +- modules/freetype2/src/autofit/aferrors.h | 2 +- modules/freetype2/src/autofit/afglobal.c | 5 +- modules/freetype2/src/autofit/afglobal.h | 2 +- modules/freetype2/src/autofit/afhints.c | 21 +- modules/freetype2/src/autofit/afhints.h | 4 +- modules/freetype2/src/autofit/afindic.c | 4 +- modules/freetype2/src/autofit/afindic.h | 2 +- modules/freetype2/src/autofit/aflatin.c | 148 +- modules/freetype2/src/autofit/aflatin.h | 2 +- modules/freetype2/src/autofit/aflatin2.c | 34 +- modules/freetype2/src/autofit/aflatin2.h | 2 +- modules/freetype2/src/autofit/afloader.c | 125 +- modules/freetype2/src/autofit/afloader.h | 2 +- modules/freetype2/src/autofit/afmodule.c | 25 +- modules/freetype2/src/autofit/afmodule.h | 2 +- modules/freetype2/src/autofit/afpic.c | 2 +- modules/freetype2/src/autofit/afpic.h | 4 +- modules/freetype2/src/autofit/afranges.c | 407 +- modules/freetype2/src/autofit/afranges.h | 2 +- modules/freetype2/src/autofit/afscript.h | 169 +- modules/freetype2/src/autofit/afshaper.c | 34 +- modules/freetype2/src/autofit/afshaper.h | 2 +- modules/freetype2/src/autofit/afstyles.h | 186 +- modules/freetype2/src/autofit/aftypes.h | 9 +- modules/freetype2/src/autofit/afwarp.c | 3 +- modules/freetype2/src/autofit/afwarp.h | 2 +- modules/freetype2/src/autofit/afwrtsys.h | 2 +- modules/freetype2/src/autofit/autofit.c | 25 +- modules/freetype2/src/autofit/module.mk | 2 +- modules/freetype2/src/autofit/rules.mk | 2 +- modules/freetype2/src/base/Jamfile | 7 +- modules/freetype2/src/base/basepic.c | 2 +- modules/freetype2/src/base/basepic.h | 2 +- modules/freetype2/src/base/ftadvanc.c | 16 +- modules/freetype2/src/base/ftapi.c | 4 +- modules/freetype2/src/base/ftbase.c | 12 +- modules/freetype2/src/base/ftbase.h | 8 +- modules/freetype2/src/base/ftbbox.c | 2 +- modules/freetype2/src/base/ftbdf.c | 2 +- modules/freetype2/src/base/ftbitmap.c | 82 +- modules/freetype2/src/base/ftcalc.c | 152 +- modules/freetype2/src/base/ftcid.c | 2 +- modules/freetype2/src/base/ftdbgmem.c | 10 +- modules/freetype2/src/base/ftdebug.c | 4 +- modules/freetype2/src/base/ftfntfmt.c | 2 +- modules/freetype2/src/base/ftfstype.c | 2 +- modules/freetype2/src/base/ftgasp.c | 2 +- modules/freetype2/src/base/ftgloadr.c | 2 +- modules/freetype2/src/base/ftglyph.c | 18 +- modules/freetype2/src/base/ftgxval.c | 4 +- modules/freetype2/src/base/ftinit.c | 37 +- modules/freetype2/src/base/ftlcdfil.c | 298 +- modules/freetype2/src/base/ftmac.c | 16 +- modules/freetype2/src/base/ftmm.c | 199 +- modules/freetype2/src/base/ftobjs.c | 628 +- modules/freetype2/src/base/ftotval.c | 2 +- modules/freetype2/src/base/ftoutln.c | 18 +- modules/freetype2/src/base/ftpatent.c | 4 +- modules/freetype2/src/base/ftpfr.c | 2 +- modules/freetype2/src/base/ftpic.c | 2 +- modules/freetype2/src/base/ftpsprop.c | 285 + modules/freetype2/src/base/ftrfork.c | 14 +- modules/freetype2/src/base/ftsnames.c | 58 +- modules/freetype2/src/base/ftstream.c | 2 +- modules/freetype2/src/base/ftstroke.c | 2 +- modules/freetype2/src/base/ftsynth.c | 6 +- modules/freetype2/src/base/ftsystem.c | 2 +- modules/freetype2/src/base/fttrigon.c | 2 +- modules/freetype2/src/base/fttype1.c | 2 +- modules/freetype2/src/base/ftutil.c | 12 +- modules/freetype2/src/base/ftver.rc | 61 + modules/freetype2/src/base/ftwinfnt.c | 2 +- modules/freetype2/src/base/rules.mk | 5 +- modules/freetype2/src/bdf/Jamfile | 2 +- modules/freetype2/src/bdf/README | 2 +- modules/freetype2/src/bdf/bdf.c | 3 +- modules/freetype2/src/bdf/bdfdrivr.c | 146 +- modules/freetype2/src/bdf/bdflib.c | 40 +- modules/freetype2/src/bzip2/Jamfile | 2 +- modules/freetype2/src/bzip2/ftbzip2.c | 2 +- modules/freetype2/src/bzip2/rules.mk | 2 +- modules/freetype2/src/cache/Jamfile | 2 +- modules/freetype2/src/cache/ftcache.c | 11 +- modules/freetype2/src/cache/ftcbasic.c | 40 +- modules/freetype2/src/cache/ftccache.c | 2 +- modules/freetype2/src/cache/ftccache.h | 2 +- modules/freetype2/src/cache/ftccback.h | 2 +- modules/freetype2/src/cache/ftccmap.c | 2 +- modules/freetype2/src/cache/ftcerror.h | 2 +- modules/freetype2/src/cache/ftcglyph.c | 2 +- modules/freetype2/src/cache/ftcglyph.h | 2 +- modules/freetype2/src/cache/ftcimage.c | 2 +- modules/freetype2/src/cache/ftcimage.h | 2 +- modules/freetype2/src/cache/ftcmanag.c | 2 +- modules/freetype2/src/cache/ftcmanag.h | 2 +- modules/freetype2/src/cache/ftcmru.c | 2 +- modules/freetype2/src/cache/ftcmru.h | 2 +- modules/freetype2/src/cache/ftcsbits.c | 2 +- modules/freetype2/src/cache/ftcsbits.h | 2 +- modules/freetype2/src/cache/rules.mk | 2 +- modules/freetype2/src/cff/Jamfile | 11 +- modules/freetype2/src/cff/cf2arrst.c | 241 - modules/freetype2/src/cff/cf2arrst.h | 100 - modules/freetype2/src/cff/cf2blues.c | 579 -- modules/freetype2/src/cff/cf2blues.h | 185 - modules/freetype2/src/cff/cf2error.c | 52 - modules/freetype2/src/cff/cf2error.h | 119 - modules/freetype2/src/cff/cf2fixed.h | 95 - modules/freetype2/src/cff/cf2font.c | 562 - modules/freetype2/src/cff/cf2font.h | 130 - modules/freetype2/src/cff/cf2ft.c | 748 -- modules/freetype2/src/cff/cf2ft.h | 159 - modules/freetype2/src/cff/cf2glue.h | 144 - modules/freetype2/src/cff/cf2hints.c | 1848 ---- modules/freetype2/src/cff/cf2hints.h | 289 - modules/freetype2/src/cff/cf2intrp.c | 1913 ---- modules/freetype2/src/cff/cf2intrp.h | 83 - modules/freetype2/src/cff/cf2read.c | 112 - modules/freetype2/src/cff/cf2read.h | 68 - modules/freetype2/src/cff/cf2stack.c | 328 - modules/freetype2/src/cff/cf2stack.h | 121 - modules/freetype2/src/cff/cf2types.h | 78 - modules/freetype2/src/cff/cff.c | 19 +- modules/freetype2/src/cff/cffcmap.c | 2 +- modules/freetype2/src/cff/cffcmap.h | 4 +- modules/freetype2/src/cff/cffdrivr.c | 404 +- modules/freetype2/src/cff/cffdrivr.h | 2 +- modules/freetype2/src/cff/cfferrs.h | 2 +- modules/freetype2/src/cff/cffgload.c | 2711 +---- modules/freetype2/src/cff/cffgload.h | 187 +- modules/freetype2/src/cff/cffload.c | 206 +- modules/freetype2/src/cff/cffload.h | 8 +- modules/freetype2/src/cff/cffobjs.c | 173 +- modules/freetype2/src/cff/cffobjs.h | 106 +- modules/freetype2/src/cff/cffparse.c | 99 +- modules/freetype2/src/cff/cffparse.h | 14 +- modules/freetype2/src/cff/cffpic.c | 2 +- modules/freetype2/src/cff/cffpic.h | 36 +- modules/freetype2/src/cff/cfftoken.h | 2 +- modules/freetype2/src/cff/cfftypes.h | 402 - modules/freetype2/src/cff/module.mk | 2 +- modules/freetype2/src/cff/rules.mk | 19 +- modules/freetype2/src/cid/Jamfile | 2 +- modules/freetype2/src/cid/ciderrs.h | 2 +- modules/freetype2/src/cid/cidgload.c | 87 +- modules/freetype2/src/cid/cidgload.h | 2 +- modules/freetype2/src/cid/cidload.c | 5 +- modules/freetype2/src/cid/cidload.h | 2 +- modules/freetype2/src/cid/cidobjs.c | 50 +- modules/freetype2/src/cid/cidobjs.h | 2 +- modules/freetype2/src/cid/cidparse.c | 2 +- modules/freetype2/src/cid/cidparse.h | 2 +- modules/freetype2/src/cid/cidriver.c | 22 +- modules/freetype2/src/cid/cidriver.h | 2 +- modules/freetype2/src/cid/cidtoken.h | 2 +- modules/freetype2/src/cid/module.mk | 2 +- modules/freetype2/src/cid/rules.mk | 2 +- modules/freetype2/src/cid/type1cid.c | 8 +- modules/freetype2/src/gxvalid/Jamfile | 2 +- modules/freetype2/src/gxvalid/README | 16 +- modules/freetype2/src/gxvalid/gxvalid.c | 16 +- modules/freetype2/src/gxvalid/gxvalid.h | 4 +- modules/freetype2/src/gxvalid/gxvbsln.c | 2 +- modules/freetype2/src/gxvalid/gxvcommn.c | 4 +- modules/freetype2/src/gxvalid/gxvcommn.h | 2 +- modules/freetype2/src/gxvalid/gxverror.h | 2 +- modules/freetype2/src/gxvalid/gxvfeat.c | 2 +- modules/freetype2/src/gxvalid/gxvfeat.h | 2 +- modules/freetype2/src/gxvalid/gxvfgen.c | 4 +- modules/freetype2/src/gxvalid/gxvjust.c | 2 +- modules/freetype2/src/gxvalid/gxvkern.c | 2 +- modules/freetype2/src/gxvalid/gxvlcar.c | 2 +- modules/freetype2/src/gxvalid/gxvmod.c | 2 +- modules/freetype2/src/gxvalid/gxvmod.h | 2 +- modules/freetype2/src/gxvalid/gxvmort.c | 2 +- modules/freetype2/src/gxvalid/gxvmort.h | 2 +- modules/freetype2/src/gxvalid/gxvmort0.c | 2 +- modules/freetype2/src/gxvalid/gxvmort1.c | 2 +- modules/freetype2/src/gxvalid/gxvmort2.c | 2 +- modules/freetype2/src/gxvalid/gxvmort4.c | 2 +- modules/freetype2/src/gxvalid/gxvmort5.c | 2 +- modules/freetype2/src/gxvalid/gxvmorx.c | 2 +- modules/freetype2/src/gxvalid/gxvmorx.h | 2 +- modules/freetype2/src/gxvalid/gxvmorx0.c | 2 +- modules/freetype2/src/gxvalid/gxvmorx1.c | 2 +- modules/freetype2/src/gxvalid/gxvmorx2.c | 2 +- modules/freetype2/src/gxvalid/gxvmorx4.c | 2 +- modules/freetype2/src/gxvalid/gxvmorx5.c | 2 +- modules/freetype2/src/gxvalid/gxvopbd.c | 2 +- modules/freetype2/src/gxvalid/gxvprop.c | 2 +- modules/freetype2/src/gxvalid/gxvtrak.c | 2 +- modules/freetype2/src/gxvalid/module.mk | 2 +- modules/freetype2/src/gxvalid/rules.mk | 2 +- modules/freetype2/src/gzip/Jamfile | 2 +- modules/freetype2/src/gzip/ftgzip.c | 2 +- modules/freetype2/src/gzip/rules.mk | 6 +- modules/freetype2/src/lzw/Jamfile | 2 +- modules/freetype2/src/lzw/ftlzw.c | 2 +- modules/freetype2/src/lzw/ftzopen.c | 2 +- modules/freetype2/src/lzw/ftzopen.h | 2 +- modules/freetype2/src/lzw/rules.mk | 2 +- modules/freetype2/src/otvalid/Jamfile | 2 +- modules/freetype2/src/otvalid/module.mk | 2 +- modules/freetype2/src/otvalid/otvalid.c | 5 +- modules/freetype2/src/otvalid/otvalid.h | 2 +- modules/freetype2/src/otvalid/otvbase.c | 35 +- modules/freetype2/src/otvalid/otvcommn.c | 30 +- modules/freetype2/src/otvalid/otvcommn.h | 54 +- modules/freetype2/src/otvalid/otverror.h | 2 +- modules/freetype2/src/otvalid/otvgdef.c | 113 +- modules/freetype2/src/otvalid/otvgpos.c | 56 +- modules/freetype2/src/otvalid/otvgpos.h | 2 +- modules/freetype2/src/otvalid/otvgsub.c | 36 +- modules/freetype2/src/otvalid/otvjstf.c | 2 +- modules/freetype2/src/otvalid/otvmath.c | 2 +- modules/freetype2/src/otvalid/otvmod.c | 2 +- modules/freetype2/src/otvalid/otvmod.h | 2 +- modules/freetype2/src/otvalid/rules.mk | 2 +- modules/freetype2/src/pcf/Jamfile | 2 +- modules/freetype2/src/pcf/README | 4 +- modules/freetype2/src/pcf/pcf.c | 8 +- modules/freetype2/src/pcf/pcf.h | 9 + modules/freetype2/src/pcf/pcfdrivr.c | 184 +- modules/freetype2/src/pcf/pcfread.c | 450 +- modules/freetype2/src/pfr/Jamfile | 2 +- modules/freetype2/src/pfr/module.mk | 2 +- modules/freetype2/src/pfr/pfr.c | 11 +- modules/freetype2/src/pfr/pfrcmap.c | 2 +- modules/freetype2/src/pfr/pfrcmap.h | 2 +- modules/freetype2/src/pfr/pfrdrivr.c | 2 +- modules/freetype2/src/pfr/pfrdrivr.h | 2 +- modules/freetype2/src/pfr/pfrerror.h | 2 +- modules/freetype2/src/pfr/pfrgload.c | 12 +- modules/freetype2/src/pfr/pfrgload.h | 2 +- modules/freetype2/src/pfr/pfrload.c | 2 +- modules/freetype2/src/pfr/pfrload.h | 2 +- modules/freetype2/src/pfr/pfrobjs.c | 8 +- modules/freetype2/src/pfr/pfrobjs.h | 2 +- modules/freetype2/src/pfr/pfrsbit.c | 2 +- modules/freetype2/src/pfr/pfrsbit.h | 2 +- modules/freetype2/src/pfr/pfrtypes.h | 2 +- modules/freetype2/src/pfr/rules.mk | 2 +- modules/freetype2/src/psaux/Jamfile | 12 +- modules/freetype2/src/psaux/afmparse.c | 11 +- modules/freetype2/src/psaux/afmparse.h | 2 +- modules/freetype2/src/psaux/cffdecode.c | 2370 +++++ modules/freetype2/src/psaux/cffdecode.h | 64 + modules/freetype2/src/psaux/module.mk | 2 +- modules/freetype2/src/psaux/psarrst.c | 241 + modules/freetype2/src/psaux/psarrst.h | 100 + modules/freetype2/src/psaux/psaux.c | 25 +- modules/freetype2/src/psaux/psauxerr.h | 2 +- modules/freetype2/src/psaux/psauxmod.c | 56 +- modules/freetype2/src/psaux/psauxmod.h | 11 +- modules/freetype2/src/psaux/psblues.c | 582 ++ modules/freetype2/src/psaux/psblues.h | 185 + modules/freetype2/src/psaux/psconv.c | 10 +- modules/freetype2/src/psaux/psconv.h | 2 +- modules/freetype2/src/psaux/pserror.c | 52 + modules/freetype2/src/psaux/pserror.h | 119 + modules/freetype2/src/psaux/psfixed.h | 95 + modules/freetype2/src/psaux/psfont.c | 567 + modules/freetype2/src/psaux/psfont.h | 134 + modules/freetype2/src/psaux/psft.c | 890 ++ modules/freetype2/src/psaux/psft.h | 167 + modules/freetype2/src/psaux/psglue.h | 144 + modules/freetype2/src/psaux/pshints.c | 1939 ++++ modules/freetype2/src/psaux/pshints.h | 288 + modules/freetype2/src/psaux/psintrp.c | 3040 ++++++ modules/freetype2/src/psaux/psintrp.h | 83 + modules/freetype2/src/psaux/psobjs.c | 763 +- modules/freetype2/src/psaux/psobjs.h | 103 +- modules/freetype2/src/psaux/psread.c | 112 + modules/freetype2/src/psaux/psread.h | 68 + modules/freetype2/src/psaux/psstack.c | 328 + modules/freetype2/src/psaux/psstack.h | 121 + modules/freetype2/src/psaux/pstypes.h | 78 + modules/freetype2/src/psaux/rules.mk | 19 +- modules/freetype2/src/psaux/t1cmap.c | 2 +- modules/freetype2/src/psaux/t1cmap.h | 2 +- modules/freetype2/src/psaux/t1decode.c | 455 +- modules/freetype2/src/psaux/t1decode.h | 12 +- modules/freetype2/src/pshinter/Jamfile | 2 +- modules/freetype2/src/pshinter/module.mk | 2 +- modules/freetype2/src/pshinter/pshalgo.c | 4 +- modules/freetype2/src/pshinter/pshalgo.h | 2 +- modules/freetype2/src/pshinter/pshglob.c | 6 +- modules/freetype2/src/pshinter/pshglob.h | 2 +- modules/freetype2/src/pshinter/pshinter.c | 10 +- modules/freetype2/src/pshinter/pshmod.c | 2 +- modules/freetype2/src/pshinter/pshmod.h | 2 +- modules/freetype2/src/pshinter/pshnterr.h | 2 +- modules/freetype2/src/pshinter/pshpic.c | 2 +- modules/freetype2/src/pshinter/pshpic.h | 2 +- modules/freetype2/src/pshinter/pshrec.c | 2 +- modules/freetype2/src/pshinter/pshrec.h | 2 +- modules/freetype2/src/pshinter/rules.mk | 2 +- modules/freetype2/src/psnames/Jamfile | 2 +- modules/freetype2/src/psnames/module.mk | 2 +- modules/freetype2/src/psnames/psmodule.c | 16 +- modules/freetype2/src/psnames/psmodule.h | 2 +- modules/freetype2/src/psnames/psnamerr.h | 2 +- modules/freetype2/src/psnames/psnames.c | 6 +- modules/freetype2/src/psnames/pspic.c | 2 +- modules/freetype2/src/psnames/pspic.h | 2 +- modules/freetype2/src/psnames/pstables.h | 40 +- modules/freetype2/src/psnames/rules.mk | 2 +- modules/freetype2/src/raster/Jamfile | 2 +- modules/freetype2/src/raster/ftmisc.h | 2 +- modules/freetype2/src/raster/ftraster.c | 2 +- modules/freetype2/src/raster/ftraster.h | 2 +- modules/freetype2/src/raster/ftrend1.c | 118 +- modules/freetype2/src/raster/ftrend1.h | 2 +- modules/freetype2/src/raster/module.mk | 2 +- modules/freetype2/src/raster/raster.c | 6 +- modules/freetype2/src/raster/rasterrs.h | 2 +- modules/freetype2/src/raster/rastpic.c | 2 +- modules/freetype2/src/raster/rastpic.h | 2 +- modules/freetype2/src/raster/rules.mk | 2 +- modules/freetype2/src/sfnt/Jamfile | 2 +- modules/freetype2/src/sfnt/module.mk | 2 +- modules/freetype2/src/sfnt/pngshim.c | 91 +- modules/freetype2/src/sfnt/pngshim.h | 2 +- modules/freetype2/src/sfnt/rules.mk | 2 +- modules/freetype2/src/sfnt/sfdriver.c | 867 +- modules/freetype2/src/sfnt/sfdriver.h | 2 +- modules/freetype2/src/sfnt/sferrors.h | 2 +- modules/freetype2/src/sfnt/sfnt.c | 26 +- modules/freetype2/src/sfnt/sfntpic.c | 2 +- modules/freetype2/src/sfnt/sfntpic.h | 2 +- modules/freetype2/src/sfnt/sfobjs.c | 270 +- modules/freetype2/src/sfnt/sfobjs.h | 2 +- modules/freetype2/src/sfnt/ttbdf.c | 9 +- modules/freetype2/src/sfnt/ttbdf.h | 6 +- modules/freetype2/src/sfnt/ttcmap.c | 159 +- modules/freetype2/src/sfnt/ttcmap.h | 4 +- modules/freetype2/src/sfnt/ttcmapc.h | 2 +- modules/freetype2/src/sfnt/ttkern.c | 17 +- modules/freetype2/src/sfnt/ttkern.h | 2 +- modules/freetype2/src/sfnt/ttload.c | 147 +- modules/freetype2/src/sfnt/ttload.h | 2 +- modules/freetype2/src/sfnt/ttmtx.c | 10 +- modules/freetype2/src/sfnt/ttmtx.h | 2 +- modules/freetype2/src/sfnt/ttpost.c | 24 +- modules/freetype2/src/sfnt/ttpost.h | 2 +- modules/freetype2/src/sfnt/ttsbit.c | 45 +- modules/freetype2/src/sfnt/ttsbit.h | 2 +- modules/freetype2/src/smooth/Jamfile | 2 +- modules/freetype2/src/smooth/ftgrays.c | 193 +- modules/freetype2/src/smooth/ftgrays.h | 2 +- modules/freetype2/src/smooth/ftsmerrs.h | 2 +- modules/freetype2/src/smooth/ftsmooth.c | 308 +- modules/freetype2/src/smooth/ftsmooth.h | 11 +- modules/freetype2/src/smooth/ftspic.c | 2 +- modules/freetype2/src/smooth/ftspic.h | 2 +- modules/freetype2/src/smooth/module.mk | 2 +- modules/freetype2/src/smooth/rules.mk | 2 +- modules/freetype2/src/smooth/smooth.c | 6 +- modules/freetype2/src/tools/afblue.pl | 2 +- modules/freetype2/src/tools/apinames.c | 19 +- modules/freetype2/src/tools/docmaker/content.py | 45 +- modules/freetype2/src/tools/docmaker/docbeauty.py | 18 +- modules/freetype2/src/tools/docmaker/docmaker.py | 26 +- modules/freetype2/src/tools/docmaker/formatter.py | 2 +- modules/freetype2/src/tools/docmaker/sources.py | 14 +- modules/freetype2/src/tools/docmaker/tohtml.py | 104 +- modules/freetype2/src/tools/docmaker/utils.py | 2 +- modules/freetype2/src/tools/ftfuzzer/README | 12 +- modules/freetype2/src/tools/ftfuzzer/ftfuzzer.cc | 100 +- modules/freetype2/src/tools/ftfuzzer/ftmutator.cc | 2 +- .../freetype2/src/tools/ftfuzzer/rasterfuzzer.cc | 2 +- modules/freetype2/src/tools/ftfuzzer/runinput.cc | 2 +- modules/freetype2/src/tools/glnames.py | 34 +- modules/freetype2/src/tools/update-copyright-year | 2 +- modules/freetype2/src/truetype/Jamfile | 2 +- modules/freetype2/src/truetype/module.mk | 2 +- modules/freetype2/src/truetype/rules.mk | 2 +- modules/freetype2/src/truetype/truetype.c | 18 +- modules/freetype2/src/truetype/ttdriver.c | 43 +- modules/freetype2/src/truetype/ttdriver.h | 2 +- modules/freetype2/src/truetype/tterrors.h | 2 +- modules/freetype2/src/truetype/ttgload.c | 404 +- modules/freetype2/src/truetype/ttgload.h | 2 +- modules/freetype2/src/truetype/ttgxvar.c | 2348 +++-- modules/freetype2/src/truetype/ttgxvar.h | 247 +- modules/freetype2/src/truetype/ttinterp.c | 573 +- modules/freetype2/src/truetype/ttinterp.h | 62 +- modules/freetype2/src/truetype/ttobjs.c | 289 +- modules/freetype2/src/truetype/ttobjs.h | 8 +- modules/freetype2/src/truetype/ttpic.c | 2 +- modules/freetype2/src/truetype/ttpic.h | 2 +- modules/freetype2/src/truetype/ttpload.c | 10 +- modules/freetype2/src/truetype/ttpload.h | 2 +- modules/freetype2/src/truetype/ttsubpix.c | 39 +- modules/freetype2/src/truetype/ttsubpix.h | 2 +- modules/freetype2/src/type1/Jamfile | 2 +- modules/freetype2/src/type1/module.mk | 2 +- modules/freetype2/src/type1/rules.mk | 2 +- modules/freetype2/src/type1/t1afm.c | 11 +- modules/freetype2/src/type1/t1afm.h | 2 +- modules/freetype2/src/type1/t1driver.c | 21 +- modules/freetype2/src/type1/t1driver.h | 2 +- modules/freetype2/src/type1/t1errors.h | 2 +- modules/freetype2/src/type1/t1gload.c | 118 +- modules/freetype2/src/type1/t1gload.h | 2 +- modules/freetype2/src/type1/t1load.c | 117 +- modules/freetype2/src/type1/t1load.h | 6 +- modules/freetype2/src/type1/t1objs.c | 61 +- modules/freetype2/src/type1/t1objs.h | 8 +- modules/freetype2/src/type1/t1parse.c | 2 +- modules/freetype2/src/type1/t1parse.h | 2 +- modules/freetype2/src/type1/t1tokens.h | 2 +- modules/freetype2/src/type1/type1.c | 15 +- modules/freetype2/src/type42/Jamfile | 2 +- modules/freetype2/src/type42/module.mk | 2 +- modules/freetype2/src/type42/rules.mk | 2 +- modules/freetype2/src/type42/t42drivr.c | 2 +- modules/freetype2/src/type42/t42drivr.h | 2 +- modules/freetype2/src/type42/t42error.h | 2 +- modules/freetype2/src/type42/t42objs.c | 8 +- modules/freetype2/src/type42/t42objs.h | 2 +- modules/freetype2/src/type42/t42parse.c | 2 +- modules/freetype2/src/type42/t42parse.h | 2 +- modules/freetype2/src/type42/t42types.h | 2 +- modules/freetype2/src/type42/type42.c | 8 +- modules/freetype2/src/winfonts/Jamfile | 2 +- modules/freetype2/src/winfonts/fnterrs.h | 2 +- modules/freetype2/src/winfonts/module.mk | 2 +- modules/freetype2/src/winfonts/rules.mk | 2 +- modules/freetype2/src/winfonts/winfnt.c | 10 +- modules/freetype2/src/winfonts/winfnt.h | 2 +- modules/freetype2/vms_make.com | 20 +- 735 files changed, 42632 insertions(+), 51117 deletions(-) create mode 100644 modules/freetype2/ChangeLog.27 create mode 100644 modules/freetype2/ChangeLog.28 delete mode 100644 modules/freetype2/builds/newline create mode 100644 modules/freetype2/docs/reference/ft2-parameter_tags.html create mode 100644 modules/freetype2/docs/reference/ft2-pcf_driver.html create mode 100644 modules/freetype2/docs/reference/ft2-properties.html create mode 100644 modules/freetype2/docs/reference/ft2-t1_cid_driver.html delete mode 100644 modules/freetype2/include/freetype/ftautoh.h delete mode 100644 modules/freetype2/include/freetype/ftcffdrv.h create mode 100644 modules/freetype2/include/freetype/ftdriver.h create mode 100644 modules/freetype2/include/freetype/ftparams.h delete mode 100644 modules/freetype2/include/freetype/ftttdrv.h create mode 100644 modules/freetype2/include/freetype/internal/cffotypes.h create mode 100644 modules/freetype2/include/freetype/internal/cfftypes.h delete mode 100644 modules/freetype2/include/freetype/internal/ftdriver.h create mode 100644 modules/freetype2/include/freetype/internal/ftdrv.h create mode 100644 modules/freetype2/include/freetype/internal/ftpsprop.h create mode 100644 modules/freetype2/include/freetype/internal/services/svcfftl.h delete mode 100644 modules/freetype2/include/freetype/ttunpat.h create mode 100644 modules/freetype2/src/base/ftpsprop.c create mode 100644 modules/freetype2/src/base/ftver.rc delete mode 100644 modules/freetype2/src/cff/cf2arrst.c delete mode 100644 modules/freetype2/src/cff/cf2arrst.h delete mode 100644 modules/freetype2/src/cff/cf2blues.c delete mode 100644 modules/freetype2/src/cff/cf2blues.h delete mode 100644 modules/freetype2/src/cff/cf2error.c delete mode 100644 modules/freetype2/src/cff/cf2error.h delete mode 100644 modules/freetype2/src/cff/cf2fixed.h delete mode 100644 modules/freetype2/src/cff/cf2font.c delete mode 100644 modules/freetype2/src/cff/cf2font.h delete mode 100644 modules/freetype2/src/cff/cf2ft.c delete mode 100644 modules/freetype2/src/cff/cf2ft.h delete mode 100644 modules/freetype2/src/cff/cf2glue.h delete mode 100644 modules/freetype2/src/cff/cf2hints.c delete mode 100644 modules/freetype2/src/cff/cf2hints.h delete mode 100644 modules/freetype2/src/cff/cf2intrp.c delete mode 100644 modules/freetype2/src/cff/cf2intrp.h delete mode 100644 modules/freetype2/src/cff/cf2read.c delete mode 100644 modules/freetype2/src/cff/cf2read.h delete mode 100644 modules/freetype2/src/cff/cf2stack.c delete mode 100644 modules/freetype2/src/cff/cf2stack.h delete mode 100644 modules/freetype2/src/cff/cf2types.h delete mode 100644 modules/freetype2/src/cff/cfftypes.h create mode 100644 modules/freetype2/src/psaux/cffdecode.c create mode 100644 modules/freetype2/src/psaux/cffdecode.h create mode 100644 modules/freetype2/src/psaux/psarrst.c create mode 100644 modules/freetype2/src/psaux/psarrst.h create mode 100644 modules/freetype2/src/psaux/psblues.c create mode 100644 modules/freetype2/src/psaux/psblues.h create mode 100644 modules/freetype2/src/psaux/pserror.c create mode 100644 modules/freetype2/src/psaux/pserror.h create mode 100644 modules/freetype2/src/psaux/psfixed.h create mode 100644 modules/freetype2/src/psaux/psfont.c create mode 100644 modules/freetype2/src/psaux/psfont.h create mode 100644 modules/freetype2/src/psaux/psft.c create mode 100644 modules/freetype2/src/psaux/psft.h create mode 100644 modules/freetype2/src/psaux/psglue.h create mode 100644 modules/freetype2/src/psaux/pshints.c create mode 100644 modules/freetype2/src/psaux/pshints.h create mode 100644 modules/freetype2/src/psaux/psintrp.c create mode 100644 modules/freetype2/src/psaux/psintrp.h create mode 100644 modules/freetype2/src/psaux/psread.c create mode 100644 modules/freetype2/src/psaux/psread.h create mode 100644 modules/freetype2/src/psaux/psstack.c create mode 100644 modules/freetype2/src/psaux/psstack.h create mode 100644 modules/freetype2/src/psaux/pstypes.h (limited to 'modules') diff --git a/modules/freetype2/CMakeLists.txt b/modules/freetype2/CMakeLists.txt index 7c2243b3b..ad8ded0bb 100644 --- a/modules/freetype2/CMakeLists.txt +++ b/modules/freetype2/CMakeLists.txt @@ -1,6 +1,6 @@ # CMakeLists.txt # -# Copyright 2013-2016 by +# Copyright 2013-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # Written originally by John Cary @@ -12,35 +12,40 @@ # fully. # # -# As a preliminary, create a compilation directory and change into it, for -# example +# The following will 1. create a build directory and 2. change into it and +# call cmake to configure the build with default parameters as a static +# library. # -# mkdir ~/freetype2.compiled -# cd ~/freetype2.compiled -# -# Now you can say -# -# cmake -# -# to create a Makefile that builds a static version of the library. +# cmake -E make_directory build +# cmake -E chdir build cmake .. # # For a dynamic library, use # -# cmake -D BUILD_SHARED_LIBS:BOOL=true +# cmake -E chdir build cmake -D BUILD_SHARED_LIBS:BOOL=true .. # # For a framework on OS X, use # -# cmake -D BUILD_FRAMEWORK:BOOL=true -G Xcode -# -# instead. +# cmake -E chdir build cmake -G Xcode -D BUILD_FRAMEWORK:BOOL=true .. # # For an iOS static library, use # -# cmake -D IOS_PLATFORM=OS -G Xcode +# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=OS .. # # or # -# cmake -D IOS_PLATFORM=SIMULATOR -G Xcode +# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=SIMULATOR .. +# +# Finally, build the project with: +# +# cmake --build build +# +# Install it with +# +# (sudo) cmake --build build --target install +# +# A binary distribution can be made with +# +# cmake --build build --config Release --target package # # Please refer to the cmake manual for further options, in particular, how # to modify compilation and linking parameters. @@ -59,28 +64,33 @@ # . `CMakeLists.txt' is provided as-is since it is normally not used by the # developer team. # -# . If you want to disable the automatic generation of the distribution -# targets, add the `-D FREETYPE_NO_DIST=true' command line argument. -# -# . Set the `WITH_ZLIB', `WITH_BZip2', `WITH_PNG', and `WITH_HarfBuzz' -# CMake variables to `ON' or `OFF' to force or skip using a dependency. +# . Set the `FT_WITH_ZLIB', `FT_WITH_BZIP2', `FT_WITH_PNG', and +# `FT_WITH_HARFBUZZ' CMake variables to `ON' to force using a dependency. # Leave a variable undefined (which is the default) to use the dependency -# only if it is available. Example: +# only if it is available. Set `CMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE' to +# disable a dependency completely (CMake package name, so `BZip2' instead of +# `BZIP2'). Example: # -# cmake ... -DWITH_ZLIB=ON -DWITH_HarfBuzz=OFF ... +# cmake -DFT_WITH_ZLIB=ON -DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE [...] # # . Installation of FreeType can be controlled with the CMake variables # `SKIP_INSTALL_HEADERS', `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL' # (this is compatible with the same CMake variables in zlib's CMake # support). +# FreeType explicitly marks the API to be exported and relies on the compiler +# to hide all other symbols. CMake supports a C_VISBILITY_PRESET property +# starting with 2.8.12. +cmake_minimum_required(VERSION 2.8.12) -cmake_minimum_required(VERSION 2.6) - +if (NOT CMAKE_VERSION VERSION_LESS 3.3) + # Allow symbol visibility settings also on static libraries. CMake < 3.3 + # only sets the propery on a shared library build. + cmake_policy(SET CMP0063 NEW) +endif () include(CheckIncludeFile) - # CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which # configures the base build environment and references the toolchain file if (APPLE) @@ -116,30 +126,47 @@ else () endif () -project(freetype) +project(freetype C) +set(VERSION_MAJOR "2") +set(VERSION_MINOR "9") +set(VERSION_PATCH "1") + +# SOVERSION scheme: CURRENT.AGE.REVISION +# If there was an incompatible interface change: +# Increment CURRENT. Set AGE and REVISION to 0 +# If there was a compatible interface change: +# Increment AGE. Set REVISION to 0 +# If the source code was changed, but there were no interface changes: +# Increment REVISION. +set(LIBRARY_VERSION "6.16.0") +set(LIBRARY_SOVERSION "6") + +# These options mean "require x and complain if not found". They'll get +# optionally found anyway. Use `-DCMAKE_DISABLE_FIND_PACKAGE_x=TRUE` to disable +# searching for a packge entirely (x is the CMake package name, so "BZip2" +# instead of "BZIP2"). +option(FT_WITH_ZLIB "Use system zlib instead of internal library." OFF) +option(FT_WITH_BZIP2 "Support bzip2 compressed fonts." OFF) +option(FT_WITH_PNG "Support PNG compressed OpenType embedded bitmaps." OFF) +option(FT_WITH_HARFBUZZ "Improve auto-hinting of OpenType fonts." OFF) -if (WIN32 AND NOT MINGW AND BUILD_SHARED_LIBS) - message(FATAL_ERROR "Building shared libraries on Windows needs MinGW") -endif () # Disallow in-source builds if ("${PROJECT_BINARY_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}") message(FATAL_ERROR - " -In-source builds are not permitted! Make a separate folder for" - " building, e.g.," - " - mkdir build; cd build; cmake .." - " -Before that, remove the files created by this failed run with" - " - rm -rf CMakeCache.txt CMakeFiles") + "In-source builds are not permitted! Make a separate folder for" + " building, e.g.,\n" + " cmake -E make_directory build\n" + " cmake -E chdir build cmake ..\n" + "Before that, remove the files created by this failed run with\n" + " cmake -E remove CMakeCache.txt\n" + " cmake -E remove_directory CMakeFiles") endif () # Add local cmake modules -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/builds/cmake) +list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/builds/cmake) if (BUILD_FRAMEWORK) @@ -152,45 +179,32 @@ if (BUILD_FRAMEWORK) endif () -set(VERSION_MAJOR "2") -set(VERSION_MINOR "7") -set(VERSION_PATCH "1") - -set(PROJECT_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}) -set(SHARED_LIBRARY_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}) - - -# Compiler definitions for building the library -add_definitions(-DFT2_BUILD_LIBRARY) - - # Find dependencies -foreach (d ZLIB BZip2 PNG HarfBuzz) - string(TOUPPER "${d}" D) - - if (DEFINED WITH_${d} OR DEFINED WITH_${D}) - if (WITH_${d} OR WITH_${D}) - find_package(${d} QUIET REQUIRED) - endif () - else () - find_package(${d} QUIET) - endif () - - if (${d}_FOUND OR ${D}_FOUND) - message(STATUS "Building with ${d}") - endif () -endforeach () +if (FT_WITH_HARFBUZZ) + find_package(HarfBuzz 1.3.0 REQUIRED) +else () + find_package(HarfBuzz 1.3.0) +endif () +if (FT_WITH_PNG) + find_package(PNG REQUIRED) +else () + find_package(PNG) +endif () -message(STATUS - "Creating directory ${PROJECT_BINARY_DIR}/include/freetype/config") -file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/include/freetype/config") +if (FT_WITH_ZLIB) + find_package(ZLIB REQUIRED) +else () + find_package(ZLIB) +endif () +if (FT_WITH_BZIP2) + find_package(BZip2 REQUIRED) +else () + find_package(BZip2) +endif () # Create the configuration file -message(STATUS - "Creating file ${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h") - if (UNIX) check_include_file("unistd.h" HAVE_UNISTD_H) check_include_file("fcntl.h" HAVE_FCNTL_H) @@ -200,38 +214,27 @@ if (UNIX) FTCONFIG_H) if (HAVE_UNISTD_H) string(REGEX REPLACE - "#undef +(HAVE_UNISTD_H)" "#define \\1" + "#undef +(HAVE_UNISTD_H)" "#define \\1 1" FTCONFIG_H "${FTCONFIG_H}") endif () if (HAVE_FCNTL_H) string(REGEX REPLACE - "#undef +(HAVE_FCNTL_H)" "#define \\1" + "#undef +(HAVE_FCNTL_H)" "#define \\1 1" FTCONFIG_H "${FTCONFIG_H}") endif () if (HAVE_STDINT_H) string(REGEX REPLACE - "#undef +(HAVE_STDINT_H)" "#define \\1" + "#undef +(HAVE_STDINT_H)" "#define \\1 1" FTCONFIG_H "${FTCONFIG_H}") endif () string(REPLACE "/undef " "#undef " FTCONFIG_H "${FTCONFIG_H}") - file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h-new" - "${FTCONFIG_H}") -else () - file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h" - FTCONFIG_H) - file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h-new" + file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h" "${FTCONFIG_H}") endif () -execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different - "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h-new" - "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h") # Create the options file -message(STATUS - "Creating file ${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h") - file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftoption.h" FTOPTION_H) if (ZLIB_FOUND) @@ -254,16 +257,8 @@ if (HARFBUZZ_FOUND) "/\\* +(#define +FT_CONFIG_OPTION_USE_HARFBUZZ) +\\*/" "\\1" FTOPTION_H "${FTOPTION_H}") endif () -file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h-new" +file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h" "${FTOPTION_H}") -execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different - "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h-new" - "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h") - - -# Specify library include directories -include_directories("${PROJECT_SOURCE_DIR}/include") -include_directories(BEFORE "${PROJECT_BINARY_DIR}/include") file(GLOB PUBLIC_HEADERS "include/ft2build.h" "include/freetype/*.h") @@ -278,13 +273,11 @@ set(BASE_SRCS src/base/ftbdf.c src/base/ftbitmap.c src/base/ftcid.c - src/base/ftfntfmt.c src/base/ftfstype.c src/base/ftgasp.c src/base/ftglyph.c src/base/ftgxval.c src/base/ftinit.c - src/base/ftlcdfil.c src/base/ftmm.c src/base/ftotval.c src/base/ftpatent.c @@ -316,22 +309,24 @@ set(BASE_SRCS ) if (WIN32) - set(BASE_SRCS ${BASE_SRCS} builds/windows/ftdebug.c) + enable_language(RC) + list(APPEND BASE_SRCS builds/windows/ftdebug.c + src/base/ftver.rc) elseif (WINCE) - set(BASE_SRCS ${BASE_SRCS} builds/wince/ftdebug.c) + list(APPEND BASE_SRCS builds/wince/ftdebug.c) else () - set(BASE_SRCS ${BASE_SRCS} src/base/ftdebug.c) + list(APPEND BASE_SRCS src/base/ftdebug.c) endif () - if (BUILD_FRAMEWORK) - set(BASE_SRCS - ${BASE_SRCS} - builds/mac/freetype-Info.plist - ) + list(APPEND BASE_SRCS builds/mac/freetype-Info.plist) endif () -set(CMAKE_DEBUG_POSTFIX d) + +if (NOT DISABLE_FORCE_DEBUG_POSTFIX) + set(CMAKE_DEBUG_POSTFIX d) +endif() + add_library(freetype ${PUBLIC_HEADERS} @@ -340,15 +335,35 @@ add_library(freetype ${BASE_SRCS} ) +set_target_properties( + freetype PROPERTIES + C_VISIBILITY_PRESET hidden) + +target_compile_definitions( + freetype PRIVATE FT2_BUILD_LIBRARY) + +if (WIN32) + target_compile_definitions( + freetype PRIVATE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS) +endif () if (BUILD_SHARED_LIBS) set_target_properties(freetype PROPERTIES - VERSION ${PROJECT_VERSION} - SOVERSION ${SHARED_LIBRARY_VERSION} - COMPILE_DEFINITIONS freetype_EXPORTS - ) + VERSION ${LIBRARY_VERSION} + SOVERSION ${LIBRARY_SOVERSION}) endif () +target_include_directories( + freetype BEFORE # Pick up ftconfig.h and ftoption.h generated above. + PRIVATE "${PROJECT_BINARY_DIR}/include") + +target_include_directories( + freetype + PRIVATE "${PROJECT_SOURCE_DIR}/include") + +target_include_directories( + freetype + PUBLIC $) if (BUILD_FRAMEWORK) set_property(SOURCE ${PUBLIC_CONFIG_HEADERS} @@ -362,91 +377,121 @@ if (BUILD_FRAMEWORK) ) endif () -if (NOT CMAKE_VERSION VERSION_LESS 2.8.12) - target_include_directories(freetype - PUBLIC $) -endif () -if (CMAKE_VERSION VERSION_LESS 2.8.12) - set(MAYBE_PRIVATE "") -else () - set(MAYBE_PRIVATE "PRIVATE") -endif () +set(PKG_CONFIG_REQUIRED_PRIVATE "") if (ZLIB_FOUND) - target_link_libraries(freetype ${MAYBE_PRIVATE} ${ZLIB_LIBRARIES}) - include_directories(${ZLIB_INCLUDE_DIRS}) + target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES}) + target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS}) + list(APPEND PKG_CONFIG_REQUIRED_PRIVATE zlib) endif () if (BZIP2_FOUND) - target_link_libraries(freetype ${MAYBE_PRIVATE} ${BZIP2_LIBRARIES}) - include_directories(${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS + target_link_libraries(freetype PRIVATE ${BZIP2_LIBRARIES}) + target_include_directories(freetype PRIVATE ${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS + list(APPEND PKG_CONFIG_REQUIRED_PRIVATE bzip2) endif () if (PNG_FOUND) - add_definitions(${PNG_DEFINITIONS}) - target_link_libraries(freetype ${MAYBE_PRIVATE} ${PNG_LIBRARIES}) - include_directories(${PNG_INCLUDE_DIRS}) + target_link_libraries(freetype PRIVATE ${PNG_LIBRARIES}) + target_compile_definitions(freetype PRIVATE ${PNG_DEFINITIONS}) + target_include_directories(freetype PRIVATE ${PNG_INCLUDE_DIRS}) + list(APPEND PKG_CONFIG_REQUIRED_PRIVATE libpng) endif () if (HARFBUZZ_FOUND) - target_link_libraries(freetype ${MAYBE_PRIVATE} ${HARFBUZZ_LIBRARIES}) - include_directories(${HARFBUZZ_INCLUDE_DIRS}) + target_link_libraries(freetype PRIVATE ${HARFBUZZ_LIBRARIES}) + target_include_directories(freetype PRIVATE ${HARFBUZZ_INCLUDE_DIRS}) + list(APPEND PKG_CONFIG_REQUIRED_PRIVATE harfbuzz) endif () -# Installations -# Note the trailing slash in the argument to the `DIRECTORY' directive +# Installation +include(GNUInstallDirs) + if (NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL) - install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/ - DESTINATION include/freetype2 - PATTERN "internal" EXCLUDE - PATTERN "ftconfig.h" EXCLUDE - PATTERN "ftoption.h" EXCLUDE - ) - install(FILES - ${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h - ${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h - DESTINATION include/freetype2/freetype/config - ) + install( + # Note the trailing slash in the argument to `DIRECTORY'! + DIRECTORY ${PROJECT_SOURCE_DIR}/include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/freetype2 + COMPONENT headers + PATTERN "internal" EXCLUDE + PATTERN "ftconfig.h" EXCLUDE + PATTERN "ftoption.h" EXCLUDE) + install( + FILES ${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h + ${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/freetype2/freetype/config + COMPONENT headers) endif () if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) - install(TARGETS freetype + # Generate the pkg-config file + if (UNIX) + file(READ ${PROJECT_SOURCE_DIR}/builds/unix/freetype2.in FREETYPE2_PC_IN) + + string(REPLACE ";" ", " PKG_CONFIG_REQUIRED_PRIVATE "${PKG_CONFIG_REQUIRED_PRIVATE}") + + string(REPLACE "%prefix%" ${CMAKE_INSTALL_PREFIX} + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + string(REPLACE "%exec_prefix%" "\${prefix}" + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + string(REPLACE "%libdir%" "\${prefix}/${CMAKE_INSTALL_LIBDIR}" + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + string(REPLACE "%includedir%" "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}" + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + string(REPLACE "%ft_version%" "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + string(REPLACE "%REQUIRES_PRIVATE%" "${PKG_CONFIG_REQUIRED_PRIVATE}" + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + string(REPLACE "%LIBS_PRIVATE%" "" # All libs support pkg-config + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + + file(WRITE ${PROJECT_BINARY_DIR}/freetype2.pc ${FREETYPE2_PC_IN}) + + install( + FILES ${PROJECT_BINARY_DIR}/freetype2.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT pkgconfig) + endif () + + install( + TARGETS freetype + EXPORT freetype-targets + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + FRAMEWORK DESTINATION Library/Frameworks + COMPONENT libraries) + install( EXPORT freetype-targets - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - FRAMEWORK DESTINATION Library/Frameworks - ) - install(EXPORT freetype-targets - DESTINATION lib/cmake/freetype - FILE freetype-config.cmake - ) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype + FILE freetype-config.cmake + COMPONENT headers) endif () # Packaging -# CPack version numbers for release tarball name. +set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME}) +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The FreeType font rendering library.") +set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/docs/LICENSE.TXT") + set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR}) set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR}) -set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH}}) -if (NOT DEFINED CPACK_PACKAGE_DESCRIPTION_SUMMARY) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${CMAKE_PROJECT_NAME}") -endif () -if (NOT DEFINED CPACK_SOURCE_PACKAGE_FILE_NAME) - set(CPACK_SOURCE_PACKAGE_FILE_NAME - "${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}-r${PROJECT_REV}" - CACHE INTERNAL "tarball basename" - ) -endif () -set(CPACK_SOURCE_GENERATOR TGZ) -set(CPACK_SOURCE_IGNORE_FILES - "/CVS/;/.svn/;.swp$;.#;/#;/build/;/serial/;/ser/;/parallel/;/par/;~;/preconfig.out;/autom4te.cache/;/.config") -set(CPACK_GENERATOR TGZ) -include(CPack) +set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH}) +set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") +if (WIN32) + set(CPACK_GENERATOR ZIP) +else() + set(CPACK_GENERATOR TGZ) +endif() + +set(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries") +set(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C/C++ Headers") +set(CPACK_COMPONENT_LIBRARIES_DESCRIPTION + "Library used to build programs which use FreeType") +set(CPACK_COMPONENT_HEADERS_DESCRIPTION + "C/C++ header files for use with FreeType") +set(CPACK_COMPONENT_HEADERS_DEPENDS libraries) +set(CPACK_COMPONENT_LIBRARIES_GROUP "Development") +set(CPACK_COMPONENT_HEADERS_GROUP "Development") -# Add `make dist' target if FREETYPE_DIST is set (which is the default) -if (NOT DEFINED FREETYPE_NO_DIST) - add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source) -endif () - -# eof +include(CPack) diff --git a/modules/freetype2/ChangeLog b/modules/freetype2/ChangeLog index 23f574823..806b8354a 100644 --- a/modules/freetype2/ChangeLog +++ b/modules/freetype2/ChangeLog @@ -1,15 +1,16 @@ -2016-09-08 Werner Lemberg +2018-05-01 Werner Lemberg - * Version 2.7.1 released. + * Version 2.9.1 released. ========================= - Tag sources with `VER-2-7-1'. + Tag sources with `VER-2-9-1'. - * docs/VERSION.TXT: Add entry for version 2.7.1. + * docs/VERSION.TXT: Add entry for version 2.9.1. + * docs/CHANGES: Updated. * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, - builds/windows/vc2005/index.html, + src/base/ftver.rc, builds/windows/vc2005/index.html, builds/windows/vc2008/freetype.vcproj, builds/windows/vc2008/index.html, builds/windows/vc2010/freetype.vcxproj, @@ -23,2074 +24,2319 @@ builds/wince/vc2005-ce/freetype.vcproj, builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/freetype.vcproj, - builds/wince/vc2008-ce/index.html: s/2.7/2.7.1/, s/27/271/. + builds/wince/vc2008-ce/index.html: s/2.9/2.9.1/, s/29/291/. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. - * builds/unix/configure.raw (version_info): Set to 19:0:13. + * builds/unix/configure.raw (version_info): Set to 22:1:16. * CMakeLists.txt (VERSION_PATCH): Set to 1. -2016-12-30 Werner Lemberg + * include/freetype/ftgasp.h: Use FT_BEGIN_HEADER and FT_END_HEADER. + +2018-04-26 Werner Lemberg - [ftfuzzer] Replace `rand' with an xorshift algorithm. + Another fix for handling invalid format 2 cmaps. - * src/tools/ftfuzzer/ftfuzzer.cc: Don't include `stdlib.h'. - (Random): Implement and use a 32bit `xorshift' algorithm. + Sigh. -2016-12-30 Werner Lemberg + Reported as - [ftfuzzer] Restrict number of tested bitmap strikes. + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8003 - Malformed fonts often have large values for the number of bitmap - strikes, and FreeType doesn't check the validity of all bitmap - strikes in advance. + * src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid + an endless loop. - Reported as +2018-04-24 Ben Wagner + + [base] Avoid undefined behaviour in lcd filtering code (#53727). - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=353 + * src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy): + Ensure `height > 0'. - * src/tools/ftfuzzer/ftfuzzer.cc: Include `stdlib.h' for `rand'. - (Random): Small class to provide n randomly selected numbers - (without repitition) out of the value set [1,N]. - (LLVMFuzzerTestOneInput): Use it to test only up to 10 bitmap - strikes. +2018-04-22 Werner Lemberg -2016-12-29 Werner Lemberg + * src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing. - [truetype] Variation font API stability issues. +2018-04-22 Alexei Podtelezhnikov - Make some functions work before a call to `TT_Set_MM_Blend'. + [base] Fix bitmap emboldening. - * src/truetype/ttgxvar.c (tt_hadvance_adjust): Exit immediately if - we don't blend. - (TT_Get_MM_Blend, TT_Get_Var_Design): Return default values if we - don't blend. + Bug introduced after release 2.8. -2016-12-29 Werner Lemberg + * src/base/ftbitmap.c (ft_bitmap_assure_buffer): We use + `FT_QALLOC_MULT', which doesn't zero out the buffer. Adjust the + bitmap copying code to take care of this fact. - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis data. +2018-04-22 Werner Lemberg + + Another fix for handling invalid format 2 cmaps. + + The previous commit was incomplete. Reported as - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=348 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7928 + + * src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid + an endless loop. -2016-12-29 Werner Lemberg +2018-04-19 Werner Lemberg + * src/autofit/afblue.dat: Add blue zone data for Mtavruli. + * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - */*: Use `0.5f' for tracing 16.16 numbers. + * src/autofit/afscript.h: Add Mtavruli standard character. -2016-12-29 Werner Lemberg +2018-04-18 Werner Lemberg - [pcf] Protect against gzip bombs. + Fix handling of invalid format 2 cmaps. - Fix suggested by Kostya; reported as + The problem was introduced after the last release. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=345 + Reported as - * src/pcf/pcfread.c (pcf_read_TOC): Limit number of TOC entries to - 1024. + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7828 -2016-12-28 Werner Lemberg + * src/sfnt/ttcmap.c (tt_cmap2_char_next): Avoid endless loop. - [psnames] Only declare, not define, data in `pstables.h' (#49949). +2018-04-17 Werner Lemberg - Pdfium includes `pstables.h' a second time; moving the definition - from `pstables.h' to `psmodule.c' saves more than 60kByte data - segment space for this case. + [truetype] Integer overflow issues. - * src/tools/glnames.py (StringTable::dump, - StringTable::dump_sublist, dump_encoding, dump_array): Emit - additional code to only define tables if `DEFINE_PS_TABLES' is set. + Reported as - * src/psnames/pstables.h: Regenerated. - * src/psnames/psmodule.c (DEFINE_PS_TABLES): Define. + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7739 -2016-12-28 Werner Lemberg + * src/truetype/ttinterp.c (Ins_CEILING): Use FT_PIX_CEIL_LONG. - [cff] Catch `blend' op in non-variant fonts. +2018-04-16 Werner Lemberg + + [truetype] Integer overflow issues. Reported as - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=334 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7718 - * src/cff/cf2intrp.c (cf2_interpT2CharString) : Don't - allow `blend' op for non-variant fonts. + * src/truetype/ttinterp.c (Ins_MIRP): Use ADD_LONG. -2016-12-28 Werner Lemberg +2018-04-15 Alexei Podtelezhnikov - [cff] Better check of number of blends. + [build] Use `info' function of make 3.81. - * src/cff/cf2intrp.c (cf2_interpT2CharString) , - src/cff/cffparse.c (cff_parse_blend): Compare number of blends with - stack size. + * configure, docs/INSTALL, docs/INSTALL.CROSS, docs/INSTALL.GNU, + docs/INSTALL.UNIX, docs/MAKEPP: Bump make version requirements. -2016-12-27 Werner Lemberg + * builds/detect.mk (std_setup): Replace `echo' with `info'. + (dos_setup): Removed. + * builds/unix/install.mk, builds/modules.mk, builds/dos/detect.mk, + builds/windows/detect.mk, builds/os2/detect.mk: Updated. + * builds/newline: No longer needed. - Documentation updates. +2018-04-15 Werner Lemberg - * docs/CHANGES: Add missing information. + [truetype]: Limit `SLOOP' bytecode argument to 16 bits. - * docs/formats.txt: Rewritten and updated. + This fixes -2016-12-27 Werner Lemberg + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7707 - [truetype, type1] Implement `FT_Get_Var_Design_Coordinates'. + * src/truetype/ttinterp.c (Ins_SLOOP): Do it. - * src/truetype/ttgxvar.c (TT_Get_Var_Design): Implement. - (TT_Set_Var_Design): Fix tracing. +2018-04-14 Werner Lemberg - * src/type1/t1load.c (T1_Get_Var_Design): Implement. + [truetype] Integer overflow issues. -2016-12-24 Werner Lemberg + Reported as - * src/truetype/ttpload.c (tt_face_load_hdmx): Ignore `version'. + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7652 - Problem reported by å¼µä¿ŠèŠ <418092625@qq.com>. + * src/truetype/ttinterp.c (Ins_MDAP): Use SUB_LONG. -2016-12-24 Werner Lemberg +2018-04-14 Werner Lemberg - * src/sfnt/ttsbit.c (tt_face_load_sbit): Allow more version values. + [autofit] Update to Unicode 11.0.0. - Some fonts seem to have the `version' field in the wrong byte order. + But no support new scripts (volunteers welcomed). - Problem reported by å¼µä¿ŠèŠ <418092625@qq.com>. + * src/autofit/afranges.c (af_arab_nonbase_uniranges, + af_beng_nonbase_uniranges, af_cakm_nonbase_uniranges, + af_deva_nonbase_uniranges, af_geor_uniranges, + af_gujr_nonbase_uniranges, af_mlym_nonbase_uniranges, + af_nkoo_nonbase_uniranges, af_telu_nonbase_uniranges, + af_hani_uniranges): Add new data. -2016-12-24 Werner Lemberg +2018-04-10 Nikolaus Waxweiler - * src/truetype/ttpload.c (tt_face_load_loca): Sanitize table length. + * CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Extensive + modernization measures. - This trivial fix allows us to accept more fonts. + This brings up the minimum required CMake version to 2.8.12. - Problem reported by å¼µä¿ŠèŠ <418092625@qq.com>. + The installation paths follow the GNU defaults now, e.g. installing on a + 64 bit host will place binaries into the lib64/ folder on e.g. Fedora. -2016-12-24 Werner Lemberg + Symbols are hidden by default (e.g. `-fvisibility=hidden' on GCC). - * src/sfnt/sfobjs.c (sfnt_init_face): Fix tracing. + CMake will no longer look for a C++ compiler. -2016-12-22 Werner Lemberg + Library and .so version now match the Autotools build. - * CMakeLists.txt: Make it work with cmake 2.8.11.2 (#49909). + Comments in the build file and informational messages now use platform + agnostic example commands. -2016-12-22 Werner Lemberg + ftoption.h and ftconfig.h are written directly without a redundant `-new' + copy. - Ensure used preprocessor symbols are defined (#49790). + External dependencies are expressed as option()s and will turn up as such + in cmake-gui. - * builds/unix/ftconfig.in, builds/vms/ftconfig.h, - include/freetype/config/ftconfig.h: Check `__GNUC__', `__IBMC__', - and `__SUNPRO_C' correctly. + Internal: Properties such as dependencies and include directories are now + privately set on the freetype library instead of globally. + + The CPack definitions have been cleaned up, the `make dist' has been + removed. Source packages generated with CPack don't contain Autotools + files and aren't used by the maintainters anyway. + + On Windows, src/base/ftver.rc is compiled to decorate the library with + version and copyright information. + + A pkg-config file is now generated and installed. -2016-12-22 Werner Lemberg +2018-04-09 Werner Lemberg - * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Check `count'. + [truetype] Integer overflow issues. Reported as - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=308 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7453 -2016-12-22 Werner Lemberg + * src/truetype/ttinterp.c (Round_Super, Round_Super_45): Use + ADD_LONG and SUB_LONG. - [cff] Protect against invalid `vsindex' and `blend' values. +2018-04-06 Alexei Podtelezhnikov + + [windows, wince] Clean up legacy project files. + + * builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2008-ce/freetype.vcproj, + builds/windows/vc2005/freetype.vcproj, + builds/windows/vc2008/freetype.vcproj, + builds/windows/visualce/freetype.vcproj, + builds/windows/visualce/freetype.dsp, + builds/windows/visualc/freetype.vcproj, + builds/windows/visualc/freetype.dsp: Remove per-file compile flags. + +2018-04-04 Werner Lemberg + + [cff, type1] Sanitize `BlueFuzz' and `BlueShift'. Reported as - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=305 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7371 + + * src/cff/cffload.c (cff_load_private_dict): Sanitize + `priv->blue_shift' and `priv->blue_fuzz' to avoid overflows later + on. + + * src/type1/t1load.c (T1_Open_Face): Ditto. + +2018-04-04 Ben Wagner + + * src/truetype/ttobjs.c (trick_names): Add 3 tricky fonts (#53554), + `DFHei-Md-HK-BF', `DFKaiShu-Md-HK-BF' and `DFMing-Bd-HK-BF'. + (tt_check_trickyness_sfnt_ids): Add checksums for 3 tricky fonts + in above. + +2018-04-01 Werner Lemberg + + * builds/toplevel.mk (work): Use $(SEP). + + This fixes the `make refdoc' using Cygwin: $(CAT) is `type' on this + platform, and this program only understands backslashes in paths. - * src/cff/cf2intrp.c (cf2_interpT2CharString) : Implement it. + Reported by Nikhil Ramakrishnan . -2016-12-22 Werner Lemberg +2018-03-30 Werner Lemberg - [ftfuzzer] Always use Adobe CFF engine. + [truetype] Fix memory leak (only if tracing is on). - * src/tools/ftfuzzer/ftfuzzer.cc (FT_Global::FT_Global): Implement + * src/truetype/ttgxvar.c (TT_Get_MM_Var) [FT_DEBUG_LEVEL_TRACE}: Fix it. -2016-12-21 Werner Lemberg +2018-03-23 Ben Wagner - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Thinko. + [sfnt] Correctly handle missing bitmaps in sbix format (#53404). - I should really stop coding late in the evening... + * src/sfnt/ttfsbit.c (tt_face_load_sbix_image): Fix return value. - Thanks again to Ben for checking. +2018-03-23 Ben Wagner -2016-12-21 Werner Lemberg + [truetype] Fix advance of empty glyphs in bitmap fonts (#53393). - [autofit] Support variation fonts. + * src/truetype/ttgload.c (TT_Load_Glyph): Apply scaling to metrics + for empty bitmaps. - (This ChangeLog entry was added later on.) +2018-03-22 Werner Lemberg - * src/autofit/afglobal.c (af_face_globals_free): Remove useless - code. + Remove `ftlcdfil.c' and `ftfntfmt.c' from build files (#53415). - * src/base/ftmm.c (FT_Set_MM_Design_Coordinates, - * FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates, - FT_Set_Var_Blend_Coordinates): Finalize - auto-hinter data to enforce recomputation. Note that this is a - brute-force method which should be improved. + builds/amiga/makefile, builds/amiga/makefile.os4, + builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt, + builds/mac/FreeType.m68k_far.make.txt, + builds/mac/FreeType.ppc_carbon.make.txt, + builds/mac/FreeType.ppc_classic.make.txt, + builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2008-ce/freetype.vcproj, + builds/windows/vc2005/freetype.vcproj, + builds/windows/vc2008/freetype.vcproj, + builds/windows/vc2010/freetype.vcxproj, + builds/windows/vc2010/freetype.vcxproj.filters, + builds/windows/visualc/freetype.dsp, + builds/windows/visualc/freetype.vcproj, + builds/windows/visualce/freetype.dsp, + builds/windows/visualce/freetype.vcproj, vms_make.com: Do it. + +2018-03-13 Werner Lemberg -2016-12-21 Werner Lemberg + * src/sfnt/ttcmap.c (tt_cmap2_validate): Fix potential numeric + overflow. - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Thinko. +2018-03-13 Werner Lemberg - Don't apply deltas twice for non-phantom points. + Fix cmap format 2 handling (#53320). - Spotted by Ben Wagner. + The patch introduced for #52646 was not correct. -2016-12-21 Werner Lemberg + * src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition. - [cff, truetype] Another try for #49829. +2018-03-10 Nikolaus Waxweiler - * src/cff/cffdrivr.c: Don't include - `FT_SERVICE_METRICS_VARIATIONS_H'. - (cff_get_advances): Use `ttface->variation_support'. + * CMakeLists.txt (BASE_SRCS): Update to changes from 2018-03-05. - * src/truetype/ttdriver.c (tt_get_advances): Use - `ttface->variation_support'. +2018-03-09 Chun-wei Fan - * src/truetype/ttgload.c (TT_Process_Simple_Glyph, - load_truetype_glyph): Use `ttface->variation_support'. + * CMakeLists.txt [win32]: Allow MSVC DLL builds (#53287). -2016-12-21 Werner Lemberg + Do not limit DLL builds to MinGW, since we already have + `__declspec(dllexport)' directives in `ftconfig.h'. + Also suppress more warnings for POSIX functions. - [truetype, sfnt] Introduce font variation flags to `TT_Face'. +2018-03-08 Hugh McMaster - * include/freetype/internal/tttypes.h (TT_FACE_FLAG_VAR_XXX): - New macros describing available functionality of various OpenType - tables related to font variation. - (TT_Face): New fields `variation_support' and `mvar_support', - replacing and extending `use_fvar'. + Make installation of `freetype-config' optional (#53093). - * src/sfnt/sfobjs.c (sfnt_init_face, sfnt_load_face): Use - `variation_support'. + * builds/unix/configure.raw: Add option `--enable-freetype-config' + and set `INSTALL_FT2_CONFIG'. + * builds/unix/unix-def.in (INSTALL_FT2_CONFIG): Define. + * builds/unix/install.mk (install): Handle it. - * src/truetype/ttgxvar.c (ft_var_load_hvar): Set `variation_support' - field. - (TT_Vary_Apply_Glyph_Deltas): Updated. +2018-03-05 Werner Lemberg -2016-12-21 Werner Lemberg + Make `ftlcdfil.c' part of the `base' module. - [base] Improve sanity check for Mac resources (#49888). + `ftobjs.c' needs `ft_lcd_padding'. - * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Abort if `rlen' is not - positive. + Problem reported by duhuanpeng <548708880@qq.com>. -2016-12-20 Werner Lemberg + * modules.cfg (BASE_EXTENSIONS): Don't include `ftlcdfil.c'. - [base] More sanity checks for Mac resources. + * src/base/ftbase.c: Include `ftlcdfil.c'. + * src/base/rules.mk (BASE_SRC): Add `ftlcdfil.c'. + * src/base/Jamfile (_sources): Adjusted. - We use + * docs/INSTALL.ANY: Updated. - https://github.com/kreativekorp/ksfl/wiki/Macintosh-Resource-File-Format +2018-03-05 Werner Lemberg - and + Make `ftfntfmt.c' part of the `base' module. - https://developer.apple.com/legacy/library/documentation/mac/pdf/MoreMacintoshToolbox.pdf#page=151 + `ftobjs.c' needs `FT_Get_Font_Format'. - as references. + Problem reported by duhuanpeng <548708880@qq.com>. - * include/freetype/internal/ftrfork.h (FT_RFork_Ref): Use FT_Short - for `res_id'. + * modules.cfg (BASE_EXTENSIONS): Don't include `ftfntfmt.c'. - * src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Extract map length - and use it to improve sanity checks. - Follow the specification more closely;in particular, all data types - are signed, not unsigned. - (FT_Raccess_Get_DataOffsets): Follow the specification more closely; - in particular, all data types are signed, not unsigned. - Add some sanity checks. + * src/base/ftbase.c: Include `ftfntfmt.c'. + * src/base/rules.mk (BASE_SRC): Add `ftfntfmt.c'. + * src/base/Jamfile (_sources): Adjusted. -2016-12-20 Werner Lemberg + * docs/INSTALL.ANY: Updated. - [truetype] Improve logic for getting fast advance widths. +2018-03-01 Werner Lemberg - * src/cff/cffdrivr.c (cff_get_advances), src/truetype/ttdriver.c - (tt_get_advances): Use `is_default_instance' for test; this gets - recomputed after changing blend coordinates. + * src/truetype/ttinterp.c (TT_RunIns): Fix tracing arguments. -2016-12-20 Ben Wagner - Werner Lemberg +2018-02-23 Werner Lemberg - [truetype] Fix linear metrics of GX variation fonts (#49829). + * builds/unix/configure.raw: Need HarfBuzz 1.3.0 or newer. - When asking for an unhinted non-default variations, - `linearVertAdvance' is currently the value from the `hmtx' table - instead of the actual value after applying the variation. `HVAR' - support fixes this, but fonts will exist without that table and will - need sane fallback. + Problem reported by Alan Coopersmith . - Problem also reported as +2018-02-17 Werner Lemberg - https://bugs.chromium.org/p/skia/issues/detail?id=5917 + [sfnt] Prefer `CBDT'/`CBLC' over `glyf' table (#53154). - * src/truetype/ttgload.c (TT_Process_Simple_Glyph, - load_truetype_glyph): Implement linear advance adjustments if `HVAR' - or `VVAR' tables are missing. +2018-02-06 Werner Lemberg -2016-12-20 Werner Lemberg + [truetype] Integer overflow issues. - [cff, truetype] Fast advance width retrieval for fonts with HVAR. + Reported as - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6027 - * src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Don't handle MM. + * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIAP, Ins_MIRP): Use + SUB_LONG; avoid FT_ABS. - * src/cff/cffdrivr.c: Include FT_SERVICE_METRICS_VARIATIONS_H. - (cff_get_advances): Test for HVAR and VVAR. +2018-02-04 Alexei Podtelezhnikov - * src/truetype/ttdriver.c (tt_get_advances): Test for HVAR and VVAR. + [unix] Use -fvisibility=hidden. -2016-12-18 Werner Lemberg + It is now widely recommended that ELF shared libraries hide symbols + except those with explicit __attribute__((visibility("default"))). + This is supported by all major compilers and should rather be an + option in libtool. + + * builds/unix/configure.raw: Add -fvisibility=hidden to CFLAGS. + * builds/unix/ftconfig.in, builds/vms/ftconfig.h, + include/freetype/config/ftconfig.h (FT_EXPORT): Use visibility + attribute. - [base] Fix invalid mac font recursion. +2018-01-27 Werner Lemberg + + [truetype] Better protection against invalid VF data. Reported as - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=304 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5739 - * src/base/ftobjs.c (FT_Open_Face): Code moved to... - (ft_open_face_internal): ... this function. - Add a parameter to control whether we try special Mac font handling - in case of failure. - (FT_Open_Face, FT_New_Face, FT_New_Memory_Face, - open_face_from_buffer): Use `ft_open_face_internal'. + Bug introduced in commit 08cd62deedefe217f2ea50e392923ce8b5bc7ac7. -2016-12-18 Werner Lemberg + * src/truetype/ttgxvar.c (TT_Set_Var_Design): Always initialize + `normalizedcoords'. - * src/cff/cffobjs.c (cff_face_init): Make named instances work. +2018-01-27 Werner Lemberg -2016-12-18 Werner Lemberg + * src/truetype/ttinterp.c (Ins_GETVARIATION): Avoid NULL reference. - [truetype, cff] Extend `get_var_blend' function of MM service. + Reported as - In particular, we need access to named instance data. + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5736 - * include/freetype/internal/services/svmm.h (FT_Get_Var_Blend_Func): - Add argument for `FT_MM_Var'. +2018-01-27 Werner Lemberg - * src/cff/cffload.c (cff_get_var_blend): Updated. - * src/cff/cffload.h: Updated. + * src/truetype/ttgxvar.c (tt_set_mm_blend): Minor. - * src/cff/cf2ft.c (cf2_getNormalizedVector): Updated. +2018-01-27 Werner Lemberg - * src/truetype/ttgxvar.c (tt_get_var_blend): Updated. - Accept value `NULL' for arguments. - * src/truetype/ttgxvar.h: Updated. + [truetype] Better trace VF instances. -2016-12-18 Werner Lemberg + * src/truetype/ttgxvar.c (ft_var_to_normalized): Don't emit number + of coordinates. + (TT_Get_MM_Var): Trace instance indices names. + (TT_Set_Var_Design): Updated. - [sfnt] Handle `fvar' with zero axes as a non-MM font. +2018-01-27 Werner Lemberg - This is better behaviour than exiting with an error. + [truetype] Beautify tracing of VF axis records. - * include/freetype/internal/tttypes.h (TT_Face): Add `use_fvar' - field. + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Show axis records in a + table-like manner. - * src/sfnt/sfobjs.c (sfnt_init_face): Compute `use_fvar', also - updating the validation code. - Use `use_fvar' to compute FT_FACE_FLAG_MULTIPLE_MASTERS. +2018-01-26 Ben Wagner - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Remove `fvar' validation - code. + [truetype] Fix multiple calls of `FT_Get_MM_Var' (#52955). -2016-12-18 Werner Lemberg + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Set + `face->blend->num_axis' in case we have to initialize the + `face->blend'. - Minor GX code shuffling. +2018-01-23 Alexei Podtelezhnikov - * include/freetype/internal/tttypes.h (TT_Face): Move - `is_default_instance' into TT_CONFIG_OPTION_GX_VAR_SUPPORT - block. + [apinames] Anonymous version map for GNU linker. - * src/sfnt/sfobjs.c (sfnt_init_face): Updated. - * src/truetype/ttgload.c (IS_DEFAULT_INSTANCE): New macro. - (TT_Load_Glyph): Use it. + * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.3. + (OutputFormat): Add `OUTPUT_GNU_VERMAP'. + (names_dump): Handle it. + (usage): Updated. + (main): Handle new command line flag `-wL'. -2016-12-18 Werner Lemberg +2018-01-21 Alexei Podtelezhnikov - [cff] Better handling of non-CFF font formats. + [unix] Call libtool to clean up. - * src/cff/cffload.c (cff_font_load): Pure CFFs don't have a - signature, so return `FT_Err_Unknown_File_Format' more often. + * builds/unix/install.mk (clean_project_unix, distclean_project_unix): + Use libtool. + * builds/freetype.mk: Minor. -2016-12-17 Werner Lemberg +2018-01-18 Alexei Podtelezhnikov - * src/cff/cffload.c (cff_build_blend_vector): Remove redundant code. + * src/base/ftver.rc: Fix mingw-w64 compilation. -2016-12-17 Werner Lemberg +2018-01-18 Alexei Podtelezhnikov - * src/truetype/ttobjs.c (tt_face_init): Simplify conditional code. + [build] Enable VERSIONINFO resource for Cygwin/MinGW. -2016-12-17 Werner Lemberg + * builds/unix/configure.raw: Check for resource compiler. + * builds/unix/unix-cc.in: Conditionally set up resource compiler. + * builds/freetype.mk: Add conditional rule for `ftver.rc'. + * src/base/ftver.rc: Copyright notice and year update. - [sfnt, truetype] Various sanitizing fixes. +2018-01-18 Alexei Podtelezhnikov - * src/sfnt/sfobjs.c (sfnt_init_face): If the axis count in `fvar' is - zero, set `num_instances' to zero. + [build] Move VERSIONINFO resource. - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Handle `fvar' table with - zero axes as invalid. + * builds/windows/vc2010/freetype.vcxproj: Updated. + * builds/windows/ftver.rc: Move file from here... + * src/base/ftver.rc: ... to here. - * src/truetype/ttobjs.c (tt_face_init): Improve logic of loading - `loca', `cvt', `fpgm', and `prep' table. +2018-01-12 Alexei Podtelezhnikov -2016-12-17 Werner Lemberg + [build] Expand dllexport/dllimport to Cygwin/MinGW. - Improve tracing of `FT_Open_Face'. + * include/freetype/config/ftconfig.h: Respect DLL_EXPORT, + s/_MSC_VER/_WIN32/. + * builds/unix/ftconfig.in: Replicate here. + * builds/vms/ftconfig.h: Replicate here. - * src/base/ftobjs.c (FT_Open_Face): Return info on number of - available faces and numbered instances, or the indices of the - requested face and numbered instance. +2018-01-12 Alexei Podtelezhnikov - * src/sfnt/sfobjs. (sfnt_open_font): Trace number of subfonts. + [build] Improve and document MSVC build. -2016-12-17 Werner Lemberg + * include/freetype/config/ftconfig.h: Guard dllexport/dllimport + attributes with _DLL and FT2_DLLIMPORT. + * builds/windows/vc2010/index.html: Update documentation. - * src/cff/cffload.c (cff_load_private_dict): Always init `blend'. +2018-01-10 Steve Robinson - Reported as + * CMakeLists.txt [win32]: Suppress warnings for POSIX functions. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=295 +2018-01-10 Ewald Hew -2016-12-16 Werner Lemberg + [psaux] Correctly handle Flex features (#52846). - [truetype] Fix `cvar' sanity test. + * src/psaux/psintrp.c (cf2_interpT2CharString) : Do not move if doing Flex. - Reported by Dave Arnold. +2018-01-09 Alexei Podtelezhnikov - * src/truetype/ttgxvar.c (tt_face_vary_cvt): Use tuple count mask. + * builds/windows/vc2010/freetype.sln: Synchronize with the project. -2016-12-16 Werner Lemberg +2018-01-08 Werner Lemberg - [cff, truetype] Remove compiler warnings; fix `make multi'. + * Version 2.9 released. + ======================= - * src/cff/cf2font.h: Include `cffload.h'. - * src/cff/cffload.c: Include FT_MULTIPLE_MASTERS_H and - FT_SERVICE_MULTIPLE_MASTERS_H. - (cff_vstore_load): Eliminate `vsSize'. - (cff_load_private_dict): Tag as `FT_LOCAL_DEF'. + Tag sources with `VER-2-9'. - * src/cff/cffload.h: Include `cffobjs.h'. - Provide declaration for `cff_load_private_dict'. + * docs/VERSION.TXT: Add entry for version 2.9. + + * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, + builds/windows/vc2005/index.html, + builds/windows/vc2008/freetype.vcproj, + builds/windows/vc2008/index.html, + builds/windows/vc2010/freetype.vcxproj, + builds/windows/vc2010/index.html, + builds/windows/visualc/freetype.dsp, + builds/windows/visualc/freetype.vcproj, + builds/windows/visualc/index.html, + builds/windows/visualce/freetype.dsp, + builds/windows/visualce/freetype.vcproj, + builds/windows/visualce/index.html, + builds/windows/ftver.rc, + builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2005-ce/index.html, + builds/wince/vc2008-ce/freetype.vcproj, + builds/wince/vc2008-ce/index.html: s/2.8.1/2.9/, s/281/29/. - * src/truetype/ttgxvar.c (ft_var_load_hvar): Eliminate - `minorVersion' and `map_offset'. + * include/freetype/freetype.h (FREETYPE_MINOR): Set to 9. + (FREETYPE_PATCH): Set to 0. -2016-12-16 Werner Lemberg + * builds/unix/configure.raw (version_info): Set to 22:0:16. + * CMakeLists.txt (VERSION_PATCH): Set to 0. - [cff] Fix heap buffer overflow (#49858). +2018-01-07 Werner Lemberg - * src/cff/cffparse.c (cff_parser_run): Add one more stack size - check. + Add check for librt, needed for `ftbench' (#52824). -2016-12-15 Werner Lemberg + * builds/unix/configure.raw (LIB_CLOCK_GETTIME): Define; this will + hold `-lrt' if necessary. - Fix clang warnings. + * builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): New variable. - * src/cff/cffload.c (cff_blend_doBlend): Add cast. - (cff_subfont_load): Set `error' correctly. +2018-01-07 Ewald Hew - * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo. + [psaux] Fix Type 1 glyphs with too many stem hints. -2016-12-15 Dave Arnold - Werner Lemberg + According to the CFF specification, charstrings can have up to 96 stem + hints. Due to hint replacement routines in Type 1 charstrings, some + glyphs are rejected by the Adobe engine, which implements the above + limit. This fix turns off hinting for such glyphs. - [cff] Implement CFF2 support (2/2). + * src/psaux/pshints.c (cf2_hintmap_build): Reset the error from calling + `cf2_hintmask_setAll' on a problematic Type 1 charstring and turn off + hinting. - The font variation code. All parts dependent on the GX code in the - `truetype' module are guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. - In other words, you can still compile the `cff' module without - defining TT_CONFIG_OPTION_GX_VAR_SUPPORT (which brings you CFF2 - support without font variation). +2018-01-06 Werner Lemberg - * src/cff/cf2font.c (cf2_font_setup): Add support for font - variation. - * src/cff/cf2font.h (CF2_Font): Add fields for variation data. + Add `FT_Done_MM_Var'. - * src/cff/cf2ft.c (cf2_free_instance): Free blend data. - (cf2_getVStore, cf2_getNormalizedVector): New functions. - * src/cff/cf2ft.h: Updated. + This is necessary in case the application's memory routines differ + from FreeType. A typical example is a Python application on Windows + that calls FreeType compiled as a DLL via the `ctypes' interface. - * src/cff/cf2intrp.c: Include `cffload.h'. - (cf2_cmdRESERVED_15, cf2_cmdRESERVED_16): Replace with... - (cf2_cmdVSINDEX, cf2_cmdBLEND): ... this new enum values. - (cf2_doBlend): New function. - (cf2_interpT2CharString): Handle `vsindex' and `blend' opcodes. + * include/freetype/ftmm.h, src/base/ftmm.c (FT_Done_MM_Var): Declare + and define. - * src/cff/cffload.c (FT_fdot14ToFixed): New macro. - (cff_vstore_done, cff_vstore_load): New functions. - (cff_blend_clear, cff_blend_doBlend, cff_blend_build_vector, - cff_blend_check_vector): New functions. - (cff_load_private_dict): Add arguments for blend vector. - Handle blend data. - (cff_subfont_load, cff_subfont_done): Updated. - (cff_font_load): Handle CFF2 variation store data. - (cff_font_done): Updated. - * src/cff/cffload.h: Include `cffparse.h'. - Updated. + * docs/CHANGES: Updated. - * src/cff/cffobjs.c (cff_face_done): Updated. +2018-01-03 Werner Lemberg - * src/cff/cffparse.c: Include `cffload.h'. - (cff_parse_num): Handle internal value 255. - (cff_parse_vsindex, cff_parse_blend): New functions. - (CFF_FIELD_BLEND): New macro. - (cff_parser_run): Updated. - * src/cff/cffparse.h (cff_kind_blend): New enum value. + [truetype] Round offsets of glyph components only if hinting is on. - * src/cff/cfftoken.h: Handle `vstore', `vsindex', and `blend' - dictionary values. + * src/truetype/ttgload.c (TT_Process_Composite_Component): Implement + it. - * src/cff/cfftypes.h (CFF_VarData, CFF_AxisCoords, CFF_VarRegion, - CFF_VStore, CFF_Blend): New structures. - (CFF_FontRecDict): Add `vstore_offset' field. - (CFF_Private): Add `vsindex' field. - (CFF_SubFont): Add fields for blend data. - (CFF_Font): Add `vstore' field. +2018-01-03 Werner Lemberg - * src/truetype/ttgxvar.c (TT_Get_MM_Var): `CFF2' is equal to `gvar', - since glyph variation data is directly embedded. - (TT_Set_MM_Blend): Don't load `gvar' table for CFF2 fonts. + * src/truetype/ttgxvar.c (ft_var_to_design): Remove dead code. -2016-12-15 Dave Arnold - Werner Lemberg + This is a better fix than the previous commit, which is now + reverted. - [cff] Implement CFF2 support (1/2). +2018-01-03 Alexei Podtelezhnikov - This commit does not contain the blend code for font variation - support, which follows in another commit. + Move internal LCD-related declarations. - You should ignore whitespace while inspecting this commit. + * include/freetype/ftlcdfil.h (ft_lcd_padding, ft_lcd_filter_fir): + Move from here... + * include/freetype/internal/ftobjs.h: ... to here. - * include/freetype/internal/tttypes.h (TT_Face): Add `isCFF2' - member. +2018-01-03 Alexei Podtelezhnikov - * src/cff/cf2font.h (CF2_Font): Add `isCFF2' member. + * include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF) + [_MSC_VER]: Limit Visual C++ attributes. - * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Handle `isCFF2' - flag. - (cf2_getMaxstack): New function. - * src/cff/cf2ft.h: Updated. +2018-01-03 Werner Lemberg - * src/cff/cf2intrp.c (cf2_escRESERVED_38): New enum. - (cf2_interpT2CharString): Handle CFF2 differences. - Add tracing message for errors. + [truetype] Make blend/design coordinate round-tripping work. - * src/cff/cffdrivr.c (cff_get_glyph_name, cff_get_name_index): - Update for CFF2. + Behdad reported that setting blend coordinates, then getting design + coordinates did incorrectly return the default instance's + coordinates. - * src/cff/cffload.c (FT_FIXED_ONE): New macro. - (cff_index_init, cff_index_load_offsets, cff_index_access_element, - cff_index_get_name, cff_ft_select_get, cff_load_private_dict, - cff_subfont_load, cff_font_load): Handle CFF2. - * src/cff/cffload.h: Updated. + * src/truetype/ttgxvar.c (tt_set_mm_blend): Fix it. - * src/cff/cffobjs.c (cff_face_init): Handle CFF2. +2017-12-31 Werner Lemberg - * src/cff/cffparse.c (cff_parse_maxstack): New function. - (CFFCODE_TOPDICT, CFFCODE_PRIVATE): Removed - * src/cff/cffparse.h (CFF2_MAX_STACK, CFF2_DEFAULT_STACK): New - macros. - (CFF2_CODE_TOPDICT, CFF2_CODE_FONTDICT, CFF2_CODE_PRIVATE): New - macros. + * src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix endless loop. - * src/cff/cfftoken.h: Add fields for CFF2 dictionaries (but no blend - stuff). + Reported as - * src/cff/cfftypes.h (CFF_Index): Add `hdr_size' field. - (CFF_FontRecDict): Add `maxstack' field. - (CFF_Private): Add `subfont' field. - (CFF_Font): Add `top_dict_length' and `cff2' fields. + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4838 - * src/sfnt/sfobjs.c (sfnt_load_face): Handle `CFF2' table. +2017-12-31 Werner Lemberg -2016-12-15 Werner Lemberg - Dave Arnold + Synchronize other Windows project files. - [truetype] Provide HVAR advance width variation as a service. + * builds/windows/*: Add missing files. - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. +2017-12-31 Werner Lemberg - * src/truetype/ttdriver.c (tt_service_metrics_variations): Updated. + Update Visual C 2010 project files. - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Prevent - double adjustment of advance width. + Problem reported by Hin-Tak. - * src/sfnt/ttmtx.c: Include FT_SERVICE_METRICS_VARIATIONS_H. - (tt_face_get_metrics): Apply metrics variations. + * builds/windows/vc2010/freetype.vcxproj: Add files `ftbdf.c' and + `ftcid.c'. + Sort entries. + * builds/windows/vc2010/freetype.vcxproj.filter: Ditto. + Fix members of `FT_MODULE' group. -2016-12-15 Dave Arnold - Werner Lemberg +2017-12-30 Werner Lemberg - [truetype] Provide function to apply `HVAR' advance width variation. + * builds/vms/ftconfig.h: Synchronize with unix `ftconfig.in' file. - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. +2017-12-28 Werner Lemberg - * src/truetype/ttgxvar.c (tt_hadvance_adjust): New function. - * src/truetype/ttgxvar.h: Updated. + * builds/unix/ftconfig.in: Synchronize with main `ftconfig.h' file. -2016-12-15 Dave Arnold - Werner Lemberg + Reported by Nikolaus. - [truetype] Add `HVAR' table parsing. +2017-12-27 Werner Lemberg - Note that this is not complete yet; it only handles advance width - variation. + Fix compiler warnings. - Activation of the code follows in another commit. + * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Make `pitch' and + `new_pitch' unsigned. - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. + * src/base/ftpsprop.c: Include FT_INTERNAL_POSTSCRIPT_PROPS_H. - * include/freetype/ftmm.h (FT_Var_Named_Style): Add `psid' member. +2017-12-27 Werner Lemberg - * src/truetype/ttgxvar.h (GX_HVarData, GX_AxisCoords, GX_HVarRegion, - GX_HVStore, GX_WidthMap): New auxiliary structures for... - (GX_HVarTable): ... HVAR main structure. - (GX_BlendRec): Add data for HVAR loading. + Fixes for `make multi'. - * src/truetype/ttgxvar.c (FT_FIXED_ONE, FT_fdot14ToFixed, - FT_intToFixed, FT_fixedToInt): New macros. - (ft_var_load_hvar): New function. - (TT_Get_MM_Var): Updated. - (tt_done_blend): Deallocate HVAR data. + * include/freetype/internal/ftpsprop.h: Use `FT_BASE_CALLBACK'. + (ps_property_get): Harmonize declaration with corresponding + function typedef. -2016-12-15 Dave Arnold + * include/freety[e/internal/fttrace.h: Add `trace_psprops'. - [cff] Extend number parsing. + * src/base/ftpsprop.c: Include necessary header files. + (FT_COMPONENT): Define. + (ps_property_set): Tag with `FT_BASE_CALLBACK_DEF'. + (ps_property_get): Tag with `FT_BASE_CALLBACK_DEF'. + Harmonize declaration with corresponding function typedef. - The forthcoming CFF2 support needs a dynamic parsing limit. +2017-12-27 Werner Lemberg - * src/cff/cffparse.c (cff_parse_num, do_fixed, cff_parse_fixed, - cff_parse_fixed_scaled, cff_parse_fixed_dynamic): Add argument for - parser. - (cff_parse_font_matrix, cff_parse_font_bbox, cff_parse_private_dict, - cff_parse_multiple_master, cff_parse_cid_ros, cff_parser_run): Updated. + Provide support for intra-module callback functions. - * src/cff/cffparse.h (cff_parse_num): Export locally. + This is needed especially for `make multi' with C++. -2016-12-15 Dave Arnold + * include/freetype/config/ftconfig.h (FT_BASE_CALLBACK, + FT_BASE_CALLBACK_DEF): New macros. - [cff] Implement dynamic stack size for Adobe engine. +2017-12-25 Ewald Hew - This also adds `cf2_stack_setReal' and `cf2_stack_pop', needed for - the forthcoming CFF2 support. + Move PostScript drivers' property handlers to `base'. - * src/cff/cf2stack.c (cf2_stack_init): Add argument for stack size. - (cf2_stack_free): Deallocate stack. - (cf2_stack_count, cf2_stack_pushInt, cf2_stack_pushFixed, - cf2_stack_popInt, cf2_stack_popFixed, cf2_stack_getReal, - cf2_stack_clear): Updated. - (cf2_stack_setReal, cf2_stack_pop): New functions. + This reduces the amount of duplicated code across PostScript + drivers. - * src/cff/cf2stack.h (CF2_Stack): Add `stackSize' member. - Update function declarations. + * src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c + ({cff,cid,t1}_property_{get,set}): Moved to... + * include/freetype/internal/ftpsprop.h: ...this new file. + (ps_property_{get,set}): New functions to replace moved ones. - * src/cff/cf2intrp.c (cf2_interpT2CharString): Updated. + * src/base/ftpsprop.c: New file that implements above functions. - * src/cff/cffparse.c (cff_parser_init): Add parameter for stack - size; return error code. - (cff_parser_done): New function. - (cff_parser_run): Updated. + * include/freetype/internal/internal.h + (FT_INTERNAL_POSTSCRIPT_PROPS_H): New macro. - * src/cff/cffparse.h (CFF_Parser): Add `stackSize' member and make - `stack' a pointer. - Update function declarations. + * src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: + Updated. - * src/cff/cffload.c (cff_load_private_dict, cff_subfont_load): + * src/base/Jamfile, src/base/rules.mk (BASE_SRC), src/base/ftbase.c: Updated. -2016-12-15 Dave Arnold - Werner Lemberg +2017-12-20 Werner Lemberg - [cff] Code shuffling. + Speed up FT_Set_Var_{Design,Blend}_Coordinates if curr == new. - * src/cff/cfftypes.h (CFF_Font): Add `library' and `base_offset' - fields. + We exit early if the current design or blend coordinates are + identical to the new ones. - * src/cff/cffload.c (cff_subfont_load): Change last argument to - `CFF_Font' - Split off parsing of private dictionary into... - (cff_load_private_dict): ...this new function. - (cff_font_load): Updated. + * src/truetype/ttgxvar.c (tt_set_mm_blend, TT_Set_Var_Design): + Implement it, returning internal error code -1 if there will be no + variation change. -2016-12-14 Werner Lemberg + * src/type1/t1load.c (t1_set_mm_blend): Ditto. - [sfnt, truetype] Add framework for Metrics Variations service. + * src/base/ftmm.c (FT_Set_Var_Design_Coordinates, + FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Updated. - No effect yet; service functions will be implemented later on. +2017-12-18 Werner Lemberg - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. + [sfnt] Fix charmap type 2 iterator (#52646). - * include/freetype/internal/services/svmetric.h: New file. + The subsetted demo font of the report that exhibits the bug has a + very unusual type 2 cmap for Unicode(!): It contains only two + sub-headers, one for one-byte characters (covering the range 0x20 to + 0xFA), and a second one for higher byte 0x01 (just for character + code U+0131). - * include/freetype/internal/ftserv.h - (FT_SERVICE_METRICS_VARIATIONS_H): New macro. + Before this commit, the iterator wasn't able to correctly handle a + sub-header for higher byte 0x01. - * include/freetype/internal/tttypes.h (TT_Face): New field `var'. + * src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix character increment + for outer loop. - * src/sfnt/sfobjs.c: Include FT_SERVICE_METRICS_VARIATIONS_H. - (sfnt_init_face): Initialize `face->var'. +2017-12-18 Matthias Clasen - * src/truetype/ttdriver.c: Include FT_SERVICE_METRICS_VARIATIONS_H. - (tt_service_metrics_variations): New service. - (tt_services): Updated. + [truetype] Fix clamping, minor tracing code beautification. - * src/truetype/ttpic.h: Updated. + * src/truetype/ttgxvar.c (ft_var_to_normalized): Trace number of + design coordinates. + Use clamped value. -2016-12-14 Werner Lemberg +2017-12-18 Werner Lemberg - [cff] Add Multiple Masters service. + * src/*/*: Only use `ft_' and `FT_' variants of stdc library stuff. - The code simply uses the MM functions from the `truetype' module. +2017-12-18 Werner Lemberg - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. + * src/truetype/ttgxvar.c (tt_face_vary_cvt): Add size guard (#52688). - * include/freetype/internal/tttypes.h (TT_Face): New field `mm'. +2017-12-18 Werner Lemberg - * src/cff/cffdrivr.c: Include FT_SERVICE_MULTIPLE_MASTERS_H. - (cff_set_mm_blend, cff_get_mm_blend, cff_get_mm_var, - cff_set_var_design, cff_get_var_design): New functions. - (cff_service_multi_masters): New service. - (cff_services): Updated. + [truetype] Fix previous commit. - * src/cff/cffload.c (cff_get_var_blend, cff_done_blend): New - functions. - * src/cff/cffload.h: Updated. + * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Correctly handle + unhinted phantom points, which must be properly scaled. + +2017-12-18 Werner Lemberg + + [truetype] Don't apply HVAR and VVAR deltas twice (#52683). + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Always adjust + `pp1' to `pp4', except if we have an HVAR and/or VVAR table. + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Handle + alternative code branch identically w.r.t. presence of an HVAR + and/or VVAR table. + +2017-12-17 Jonathan Kew + + [truetype] Correctly handle variation font phantom points (#52683). + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix phantom + point indices. + +2017-12-17 Jonathan Kew + + Fix incorrect advance width scaling (#52683). + + * src/base/ftadvance.c (FT_Get_Advances): Always respect the + FT_LOAD_NO_SCALE flag if present. + +2017-12-16 Alexei Podtelezhnikov + + * builds/windows/vc2010/freetype.vcxproj: AfterBuild copy. + * objs/.gitignore: Ignore almost everything. + +2017-12-11 Werner Lemberg - * src/cff/cffpic.h (CFF_SERVICE_MULTI_MASTERS_GET): New macro. + Fix compiler warning (#52640). - * src/sfnt/sfobjs.c: Include FT_SERVICE_MULTIPLE_MASTERS_H. - (sfnt_init_face): Initialize `face->mm'. + * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Remove unused + variable. -2016-12-14 Werner Lemberg +2017-12-08 Azzuro - Extend functionality of `ft_module_get_service'. + * builds/windows/vc2010/freetype.vcxproj: Adjust output directory. - It can now differentiate between local and global searches. + This allows builds with different configurations in parallel. - * src/base/ftobjs.c (ft_module_get_service): Add `global' argument. - (FT_Get_TrueType_Engine_Type): Updated. +2017-12-08 Werner Lemberg - * src/cff/cffdrivr.c (cff_get_ps_name, cff_get_cmap_info): Updated. + Fix `make setup dos', second try (#52622). - * include/freetype/internal/ftobjs.h: Updated. - * include/freetype/internal/ftserv.h (FT_FACE_FIND_GLOBAL_SERVICE): + * builds/detect.mk (dos_setup): Don't use literal `>' character at + all. Mixing the different escaping rules from make, dos, and + windows is too fragile. + +2017-12-08 Werner Lemberg + + [docmaker] Fix code section parsing. + + Stuff like + + { + + } + + confused the parser, which incorrectly treated `' as a markup + tag. + + * src/tools/docmaker/content.py (ContentProcessor::process_content): + Apply `re_markup_tags' only outside of code sections. + +2017-12-08 Werner Lemberg + + New `ftdriver.h' file, covering all driver modules. + + This reduces redundancy and increases synergy; it also reduces the + number of header files. + + * include/freetype/config/ftheader.h (FT_DRIVER_H): New macro. + (FT_AUTOHINTER_H, FT_CFF_DRIVER_H, FT_TRUETYPE_DRIVER_H, + FT_PCF_DRIVER_H, FT_TYPE1_DRIVER_H): Make them aliases to + FT_DRIVER_H. + + * include/freetype/ftautoh.h, include/freetype/ftcffdrv.h, + include/freetype/ftpcfdrv.h, include/freetype/ftt1drv.h, + include/freetype/ftttdrv.h: Replaced with... + * include/freetype/ftdriver.h: ...this new file. + (FT_CFF_HINTING_ADOBE, FT_T1_HINTING_ADOBE): Renamed to... + (FT_HINTING_ADOBE): ... this new macro. + (FT_CFF_HINTING_FREETYPE, FT_T1_HINTING_FREETYPE): Renamed to... + (FT_HINTING_FREETYPE): ... this new macro. + + * src/*/*: Updated accordingly. + +2017-12-08 Werner Lemberg + + Move `ftdriver.h' to `ftdrv.h'. + + * include/freetype/internal/ftdriver.h: Renamed to... + * include/freetype/internal/ftdrv.h: ... this name. + + * include/freetype/internal/internal.h (FT_INTERNAL_DRIVER_H): Updated. -2016-12-14 Werner Lemberg +2017-12-08 Werner Lemberg - * src/truetype/ttgxvar.c (tt_get_var_blend): Fix compiler warning. + Fix access to uninitalized memory (#52613). -2016-12-14 Dave Arnold - Werner Lemberg + Also reported as - [sfnt, cff] Minor preparations. + https://bugs.chromium.org/p/chromium/issues/detail?id=791317 - * include/freetype/tttags.h (TTAG_CFF2, TTAG_HVAR, TTAG_MVAR, - TTAG_VVAR): New SFNT table tags. + * src/base/ftbitmap.c (ft_bitmap_assure_buffer): If increasing the + bitmap size needs a larger bitmap buffer, assure that the new memory + areas are initialized also. - * src/cff/cf2fixed.h (CF2_FIXED_ONE, CF2_FIXED_EPSILON): Add cast. +2017-12-08 Werner Lemberg -2016-12-10 Werner Lemberg + Fix `make setup dos' (#52622). - [truetype, type1] Add `get_var_blend' to MM service. + * builds/detect.mk (dos_setup): Properly escape literal `>' + character. - For internal use; we want to share code between the forthcoming CFF2 - support and TrueType. +2017-12-07 Werner Lemberg - * include/freetype/internal/services/svmm.h (FT_Get_Var_Blend_Func): - New typedef. - (MultiMasters): Add `get_var_blend'. - (FT_Service_MultiMasters): Updated. + Fix C++ compilation. - * src/truetype/ttgxvar.c (tt_get_var_blend): New function. - * src/truetype/ttgxvar.h: Updated. + * src/psaux/psauxmod.h: Use FT_CALLBACK_TABLE macro where necessary. - * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated. - * src/type1/t1driver.c (t1_service_multi_masters): Updated. + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix warning. -2016-12-10 Werner Lemberg +2017-12-07 Werner Lemberg - [truetype, type1] Add `done_blend' to MM service. + Fix `make multi'. - For internal use; we want to share code between the forthcoming CFF2 - support and TrueType. + * include/freetype/internal/fttrace.h: Remove unused tracing macros. + s/pshalgo2/pshalgo/. + Add `trace_cffdecode'. + * src/pshinter/pshalgo.c (FT_COMPONENT): Updated. - * include/freetype/internal/services/svmm.h (FT_Done_Blend_Func): - New typedef. - (MultiMasters): Add `done_blend'. - (FT_Service_MultiMasters): Updated. + * src/cff/cffload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H. + * src/cff/cffobjs.c: Include FT_SERVICE_METRICS_VARIATIONS_H and + FT_SERVICE_CFF_TABLE_LOAD_H. - * src/truetype/ttgxvar.c (tt_done_blend): Use `TT_Face' as argument. - * src/truetype/ttgxvar.h: Updated. + * src/cid/cidriver.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H. - * src/truetype/ttobjs.c (TT_Face_Done): Updated. + * src/psaux/cffdecode.c: Include FT_FREETYPE_H and + FT_INTERNAL_DEBUG_H. + (FT_COMPONENT): Define. + * src/psaux/cffdecode.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H. + * src/psaux/psauxmod.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H. + Declare `cff_builder_funcs' and `ps_builder_funcs'. + * src/psaux/psft.c: Include `psobjs.h' and `cffdecode.h'. + * src/psaux/psobjs.c : Include `psauxmod.h'. - * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated. - * src/type1/t1driver.c (t1_service_multi_masters): Updated. +2017-12-07 Werner Lemberg -2016-12-09 Werner Lemberg + * include/freetype/config/ftheader.h: Some clean-up. - [sfnt] Revert change from 2016-12-08. + This commit removes documentation of deprecated macros and does some + minor streamlining. - I missed the functionality of `ft_module_get_service', which makes - the change unnecessary. +2017-12-06 Werner Lemberg -2016-12-08 Werner Lemberg + * builds/symbian/bld.inf: Updated. - Add framework to support services with 8 functions. +2017-12-06 Werner Lemberg - We will need this for CFF variation font support. + New header file `ftparams.h' that collects all parameter tags. - * include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC8): - New macro. + * include/freetype/config/ftheader.h (FT_PARAMETER_TAGS_H): New + macro. + (FT_TRUETYPE_UNPATENTED_H, FT_UNPATENTED_HINTING_H): Define it to + `ftparams.h'. -2016-12-08 Werner Lemberg + * include/freetype/ftautoh.h, include/freetype/ftcffdrv.h, + include/freetype/ftincrem.h, include/freetype/ftlcdfil.h, + include/freetype/ftsnames.h, include/freetype/ftt1drv.h: Include + FT_PARAMETER_TAGS_H. + Move FT_PARAM_TAG_XXX definitions to... + * include/freetype/ftparams.h: ...this new file. - [sfnt] Add `get_glyph_name' and `get_name_index' to SFNT interface. + * include/freetype/ttunpat.h: Remove. No longer needed. - CFF2 fonts will need access to those two functions. +2017-12-05 Werner Lemberg - * include/freetype/internal/sfnt.h: Include FT_SERVICE_GLYPH_DICT_H. - (SFNT_Interface): Add `get_glyph_name' and `get_name_index' members. - (FT_DEFINE_SFNT_INTERFACE): Updated. + Improve tracing messages by using singular and plural forms. - * src/sfnt/sfdriver.c (sfnt_get_glyph_name, sfnt_get_name_index): - Fix signatures to exactly correspond to the glyph dict service - function typedefs. - (sfnt_interface): Updated. + * src/*/*.c: Implement it. -2016-12-06 Dave Arnold +2017-12-04 Werner Lemberg - Add `FT_Get_Var_Design_Coordinates' function. + [truetype] Allow shared points in `cvar' table (#52532). - Note that the low-level functions aren't implemented yet. + * src/truetype/ttgxvar.c (tt_face_vary_cvt): Implement it by copying + and adjusting the corresponding code from + `TT_Vary_Apply_Glyph_Deltas'. - * include/freetype/ftmm.h: Declare. +2017-11-28 Werner Lemberg - * include/freetype/internal/services/svmm.h - (FT_Get_Var_Design_Func): New typedef. - (MultiMasters): New MM service function `get_var_design'. - (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. - Update all callers. + [truetype] Improving tracing of composite glyphs. - * src/base/ftmm.c (FT_Get_Var_Design_Coordinates): Implement. + * src/truetype/ttgload.c (TT_Load_Composite_Glyph) + [FT_DEBUG_LEVEL_TRACE]: Show composite glyph information. - * src/truetype/ttdriver.c: Updated. +2017-11-27 Werner Lemberg - * src/truetype/ttgxvar.c (TT_Get_Var_Design): New dummy function to - handle `get_var_design' service. - * src/truetype/ttgxvar.h: Updated. + [type1] Allow (again) `/Encoding' with >256 elements (#52464). - * src/type1/t1driver.c: Updated. + In version 2.6.1, this has been disallowed to better reject + malformed fonts; however, this restriction was too strong. This + time, we only take the first 256 elements into account, since + encoding arrays are always accessed with a 8bit integer, according + to the PostScript Language Reference. - * src/type1/t1load.c (T1_Get_Var_Design): New dummp function to - handle `get_var_design' service. - * src/type1/t1load.h: Updated. + * src/type1/t1load.c (parse_encoding): Implement it. -2016-12-06 Werner Lemberg +2017-11-27 Jan Alexander Steffens (heftig) - * src/type1/t1load.c (parse_subrs): Fix memory leak. + Fix last commit (#52522). - The `subrs' keyword might erroneously occur multiple times. + * builds/freetype.mk: Set `FT_OPTION_H' and `FTOPTION_FLAG' + properly if we have `ftoption.h' in `BUILD_DIR'. - Reported as +2017-11-24 Werner Lemberg - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=231 + [unix] Install a massaged `ftoption.h' file (#51780). -2016-12-01 Werner Lemberg + * builds/unix/configure.raw (ftoption_set, ftoption_unset): New + auxiliary functions to construct... + (FTOPTION_H_SED): ... this new variable. + Apply it as a sed argument while copying `ftoption.h' to the + `builds/unix' directory (using `AC_CONFIG_FILES'). + Simplify code of test that checks cpp's computation of bit length + (the test previously created an empty `ftoption.h' file and deleted + it immediately afterwards); without this change, it can happen on my + GNU/Linux box that `configure's execution of `config.status' doesn't + create `ftoption.h' (no idea why this happens). - [gzip] Improve building with external zlib (#49673). + * builds/unix/install.mk (install): Install + `builds/unix/ftoption.h'. - Building FreeType with external zlib 1.2.8 makes msvc 14 stop with - the following error. + * builds/unix/unix-def.in (DISTCLEAN): Updated. - ftgzip.c - zlib-1.2.8\zlib.h(86): error C2061: - syntax error: identifier 'z_const' - zlib-1.2.8\zlib.h(94): error C2054: - expected '(' to follow 'z_const' - zlib-1.2.8\zlib.h(94): error C2085: - 'msg': not in formal parameter list - ... - zlib-1.2.8\zlib.h(877): fatal error C1003: - error count exceeds 100; stopping compilation + * builds/unix/.gitignore: Updated. - The error happens because FreeType keeps an own copy of zlib-1.1.4 - under `src/gzip'. When building `src/gzip/ftgzip.c' with - FT_CONFIG_OPTION_SYSTEM_ZLIB defined, it uses +2017-11-23 Tor Andersson - #include + Silence unused function warnings (#52465). - which correctly finds an external `zlib.h', but `zlib.h' itself has - a line + Some static function declarations cause unused function warnings if + certain config options are turned off via `ftoption.h'. - #include "zconf.h" + * src/base/ftbase.h, src/base/ftrfork.c, src/sfnt/ttbdf.h, + src/truetype/ttgxvar.h: Add #ifdef guards around these sections. - which makes Visual Studio 2015 find `src/gzip/zconf.h' while - compiling the files in `src/gzip'. +2017-11-22 Ewald Hew - * src/gzip/zconf.h: Rename to... - * src/gzip/ftzconf.h: ... this. - * src/gzip/zlib.h, src/gzip/rules.mk (GZIP_DRV_SRCS): Updated. + * src/psaux/psft.c (cf2_setGlyphWidth): Check format before setting. -2016-12-01 Oleksandr Chekhovskyi + Reported as - [autofit] Fix Emscripten crash (patch #9180). + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4377 - Function calls through pointers must use a matching signature to - work on Emscripten, since such calls are dispatched through lookup - tables grouped by signature. +2017-11-22 Ewald Hew - * src/autofit/aftypes.h (AF_WritingSystem_ApplyHintsFunc): Fix - typedef. + [psaux] Fix CFF advance widths. (#52466) -2016-11-29 Werner Lemberg + Glyph advance widths were being written to the new `PS_Decoder' but not + saved to the underlying format specific decoder. This caused pure CFF + fonts to have bad advance width. - [smooth] Revert previous commit. Already fixed with 6ca54c64. + * include/freetype/internal/psaux.h (PS_Decoder): Change `glyph_width' + field to pointer. + Remove unused fields. + * src/psaux/psobjs.c (ps_decoder_init): Change `glyph_width' from copy + to reference. + Remove unused. + * src/psaux/psft.c (cf2_setGlyphWidth): Update code. -2016-11-29 Werner Lemberg +2017-11-15 Vlad Tsyrklevich - [smooth] Avoid conditional jump on uninitialized value (#49711). + * include/freetype/ftrender.h: Fix `FT_Renderer_RenderFunc' type. - * src/smooth/ftgrays.c (gray_raster_render): Initialize `worker'. +2017-11-14 Nikolaus Waxweiler -2016-11-27 Nikolaus Waxweiler + Use Adobe hinting engine for `light' hinting of both CFF and Type 1. - [autofit] Code shuffling. + Since Ewald Hew factored the Adobe hinting engine out of the CFF + driver code, we can now use it on Type 1 (and CID) font formats, as + both have the same hinting philosophy. - Also improve some comments and remove unused code. + This change activates the Adobe hinter when in LIGHT mode, and + therefore always unless explicitly asking for the auto-hinter. This + makes LIGHT behavior consistent with CFF fonts. As of this commit, + the hinting engine table looks as follows. - No functional change. + LIGHT NORMAL + ------------------------- + TrueType Auto v40 + CFF Adobe Adobe + Type 1 Adobe Adobe - * src/autofit/afloader.c (af_loader_load_g): Merged with... - (af_loader_load_glyph): ...this function. - Split off emboldening code into... - (af_loader_embolden_glyph_in_slot): ... this function. +2017-11-10 Yuri Levchenko -2016-11-17 Werner Lemberg + * CMakeLists.txt: Add `DISABLE_FORCE_DEBUG_PREFIX' option. - Better support of LLP64 systems with gcc (and clang). +2017-11-06 Alexei Podtelezhnikov - * builds/unix/configure.raw: Call `AC_TYPE_LONG_LONG_INT'. + * src/base/ftobjs.c (FT_Load_Glyph): Relocate condition. - * builds/unix/ftconfig.in (FT_LONG64): Enable for LLP64 systems (and - suppress warnings) even without `FT_CONFIG_OPTION_FORCE_INT64'. +2017-11-06 Alexei Podtelezhnikov -2016-11-10 Werner Lemberg + * src/smooth/ftgrays.c (gray_set_cell): Fix uninitialized variables. - Fix `lcd_weights' array size. +2017-11-03 Ewald Hew - * include/freetype/internal/ftobjs.h (FT_LibraryRec): Do it. + [psaux] Fix PostScript interpreter rewinding in Type 1 mode. (#52251) - Reported by Nikolaus. + The interpreter in Type 1 mode rewinds the charstring after collecting + all hints for building the initial hintmap (commit d52dd7f). However, + some charstrings use `endchar' in a final subroutine call, rewinding to + the start of that subroutine, and only a small section of the actual + glyph is drawn. -2016-11-06 Werner Lemberg + * src/psaux/psintrp.c (cf2_interpT2CharString) : + Ensure we are on the top level charstring before rewinding. - * src/base/ftobjs.c (FT_Render_Glyph_Internal): Fix tracing. +2017-11-03 suzuki toshiya -2016-11-06 Werner Lemberg + [truetype] Add more tricky fonts. - [sfnt] Improve FT_LOAD_BITMAP_METRICS_ONLY for `sbix' format. + See the report by Yang Yinsen. + https://lists.gnu.org/archive/html/freetype-devel/2017-11/msg00000.html - It's unavoidable to call the PNG engine, but to get the metrics it - is sufficient to read the PNG image's header only. + * src/truetype/ttobjs.c (trick_names): Add `DFGothic-EB', + `DFGyoSho-Lt', `DFHSGothic-W5', `DFHSMincho-W3' and `DFHSMincho-W7'. + (tt_check_trickyness_sfnt_ids): Add checksums for DFGothic-EB, + DFGyoSho-Lt, DFHSGothic-W5, DFHSMincho-W3 and DFHSMincho-W7. Also + add checksums for DLCLiShu and DLCHayBold which their family names + were already listed but their checksums were previously unknown. - * src/sfnt/pngshim.c (Load_SBit_Png): Add argument to control the - allocation of the glyph slot. - * src/sfnt/pngshim.h: Updated. - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_png, - tt_face_load_sbix_image, tt_face_load_sbit_image): Updated. +2017-11-01 Alexei Podtelezhnikov -2016-11-06 Werner Lemberg + [smooth] Fix complex rendering at high ppem. - [sfnt] Speed up `sbix' lookup. + We used to split large glyphs into horizontal bands and continue + bisecting them still horizontally if that was not enough. This is + guaranteed to fail when a single scanline cannot fit into the + rendering memory pool. Now we bisect the bands vertically so that + the smallest unit is a column of the band height, which is guranteed + to fit into memory. - This also fixes a bug introduced in 2016-10-01 which prevents - display of embedded bitmap fonts that use the `sbix' format. + * src/smooth/ftgrays.c (gray_convert_glyph): Implement it. - * src/sfnt/ttsbit.c (tt_face_load_sbit): Store `sbix' size and - offset also in `ebdt_size' and `ebdt_start', respectively. This - makes the test for an embedded bitmap data table succeed for this - format. +2017-10-20 Alexei Podtelezhnikov - (tt_face_load_strike_metrics) : Use - `ebdt_size' and `ebdt_start' - (tt_face_load_sbix_image): Ditto. + [smooth] Improve complex rendering at high ppem. -2016-11-06 Seigo Nonaka - Werner Lemberg + At large sizes almost but not exactly horizontal segments can quickly + drain the rendering pool. This patch at least avoids filling the pool + with trivial cells. Beyond this, we can only increase the pool size. - Introduce a way of quickly retrieving (embedded) bitmap metrics. + Reported, analyzed, and tested by Colin Fahey. - `FT_Load_Glyph' doesn't generate a bitmap for a non-bitmap glyph - until the user calls `FT_Render_Glyph'. However, it always - allocates memory for bitmaps and copies or decodes the contents of a - bitmap glyph, which can be quite slow for PNG data. + * src/smooth/ftgrays.c (gray_set_cell): Do not record trivial cells. - * include/freetype/freetype.h (FT_LOAD_BITMAP_METRICS_ONLY): New - macro. +2017-10-20 Alexei Podtelezhnikov - * src/base/ftobjs.c (FT_Load_Glyph): Unset FT_LOAD_RENDER if - FT_LOAD_BITMAP_METRICS_ONLY is used. + [base] Improve tracing in FT_Load_Glyph, FT_*_Size. - * src/sfnt/ttsbit.c (tt_sbit_decoder_alloc_bitmap, - tt_sbit_decoder_load_bitmap): Add argument to control allocation of - the glyph slot. - (tt_sbit_decoder_load_image, tt_sbit_decoder_load_compound, - tt_face_load_sbit_image): Updated. + * src/base/ftobjs.c (FT_Load_Glyph): Tag tracing messages with + function name, glyph index, and load flags. + (FT_Select_Metrics, FT_Request_Metrics): Remove all tracing. + (FT_Select_Size, FT_Request_Size): Improve tracing. - * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Quickly exit if - `FT_LOAD_BITMAP_METRICS_ONLY' is set. +2017-10-18 Alexei Podtelezhnikov - * src/pfr/pfrsbit.c, src/pfr/pfrsbit.h (pfr_slot_load_bitmap): Add - argument to control allocation of the glyph slot. - * src/pfr/pfrobjs (pfr_slot_load): Updated. + [base] Improve tracing in FT_Render_Glyph. - * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto. + * src/base/ftobjs.c (FT_Render_Glyph_Internal): Add total coverage + calculations and downgrade Netpbm dump to bitmap:7. - * docs/CHANGES: Updated. +2017-10-15 Ewald Hew -2016-11-06 Werner Lemberg + [cff] Fix segfault on missing `psaux' (#52218) - Synchronize with gnulib (#49448). + * src/cff/cffload.c (cff_done_blend): Add a check for possible nullptr. - * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in, - builds/vms/ftconfig.h (FT_TYPEOF): Update code to use definition in - current version of `intprops.h'. - Other minor synchronization to reduce code differences between the - three files. + * modules.cfg: Update dependency list. -2016-11-03 Behdad Esfahbod +2017-10-15 Alexei Podtelezhnikov - [truetype] Clamp variation requests to valid range. + [base, cff] Fix MSVC warnings. - This is required by OpenType 1.8; it also avoids rounding surprises. + * src/base/ftobjs.c (FT_New_Library): C4702: unreachable code. + (ft_glyphslot_preset_bitmap): C4244: possible loss of data. + * src/cff/cffload.c (cff_blend_doBlend): C4244: possible loss of data. + Turn `sum' into unsigned. - * src/truetype/ttgxvar.c (TT_Set_Var_Design): Clamp design coordinates - outside of the allowed range to always stay within the range instead - of producing an error. +2017-10-14 Alexei Podtelezhnikov -2016-10-29 Werner Lemberg + [base] Netpbm image tracing. - [truetype] Remove clang warnings. + * src/base/ftobjs.c (FT_Load_Glyph): Trace bitmap size. + (FT_Render_Glyph_Internal): Trace bitmap in Netpbm format. - * src/truetype/ttinterp.h (TT_ExecContextRec): Using `FT_ULong' for - loop counter handling. + * src/smooth/ftgrays.c (gray_sweep): Sweep remnants of span tracing. - * src/truetype/ttinterp.c: Updated. - (Ins_SCANTYPE): Use signed constant. - (TT_RunIns): Ensure `num_twilight_points' is 16bit. +2017-10-14 Alexei Podtelezhnikov -2016-10-27 Werner Lemberg + * builds/windows/ftdebug.c (FT_Message): Print to stderr. + * builds/wince/ftdebug.c (FT_Message): Ditto. - [truetype] Fix commit from 2014-11-24. +2017-10-14 Behdad Esfahbod - Problem reported by Hin-Tak Leung . + [afshaper] Delay creating `hb_set' objects until needed. - * src/truetype/ttpload.c (tt_face_load_hdmx): Fix file checking - logic. + In runs on Noto Naskh Arabic, this results in 89 sets created + instead of 340 before. Makes auto-hinter setup with HarfBuzz + enabled 20% to 30% faster. -2016-10-26 Werner Lemberg + * src/autofit/afshaper.c (af_shaper_get_coverage): Implement it. - Add `FT_Get_{MM,Var}_Blend_Coordinates' functions. +2017-10-12 Ewald Hew - * include/freetype/ftmm.h: Declare. + [type1, cid] Add hinting engine switch. - * include/freetype/internal/services/svmm.h (FT_Get_MM_Blend_Func): - New typedef. - (MultiMasters): New MM service function `get_mm_blend'. - (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. - Update all callers. + Implement property service in `type1' and `cid' drivers to allow + switching between FreeType or Adobe hinting engine when both are + available. - * src/base/ftmm.c (FT_Get_MM_Blend_Coordinates, - FT_Get_Var_Blend_Coordinates): Implement. + * src/cid/cidriver.c (cid_property_{set,get}, cid_services), + src/type1/t1driver.c (t1_property_{set,get}, t1_services): Add + Properties service. - * src/truetype/ttdriver.c: Updated. + * src/cid/cidobjs.c (cid_driver_init), src/type1/t1objs.c + (T1_Driver_Init): Add default property values. - * src/truetype/ttgxvar.c (TT_Get_MM_Blend): New function to handle - `get_mm_blend' service. - * src/truetype/ttgxvar.h: Updated. +2017-10-12 Ewald Hew - * src/type1/t1driver.c: Updated. + Add T1_CONFIG_OPTION_OLD_ENGINE configuration option. - * src/type1/t1load.c (T1_Get_MM_Blend): New function to handle - `get_mm_blend' service. - * src/type1/t1load.h: Updated. + This controls whether the old Type 1 engine gets compiled into FreeType. + It is disabled by default. + + * devel/ftoption.h, include/freetype/config/ftoption.h + (T1_CONFIG_OPTION_OLD_ENGINE): New macro. + + * include/freetype/internal/psaux.h (PS_Decoder): Remove unused field. + * include/freetype/internal/psaux.h, src/cid/cidgload.c + (cid_load_glyph), src/psaux/psauxmod.c, src/psaux/psobjs.c + (ps_builder_add_point), src/psaux/t1decode.c + (t1_lookup_glyph_by_stdcharcode, t1_decoder_parse_glyph, + t1operator_seac, t1_decoder_parse_charstrings), src/psaux/t1decode.h, + src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Surround + relevant code with macro. + Minor code changes. + +2017-10-12 Ewald Hew + + Extract width parsing from Type 1 parser. - * docs/CHANGES: Document. + Duplicate the fast advance width calculations from the old parser. + This is to facilitate adding options for compiling out the old parser. -2016-10-26 Werner Lemberg + * src/psaux/t1decode.{c,h} (t1_decoder_parse_metrics): New function. + * include/freetype/internal/psaux.h (T1_Decoder_Funcs): New entry + `parse_metrics'. + * src/psaux/psauxmod.c: Set the new entry. - * src/type1/t1load.c (parse_subrs): Fix limit check. + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String), + src/cid/cidgload.c (cid_load_glyph): Separate + conditional for selecting engine. + +2017-10-09 Werner Lemberg + + * src/base/ftoutln.c (FT_Outline_Translate): Fix integer overflow. Reported as - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=81 + https://bugs.chromium.org/p/chromium/issues/detail?id=772775 -2016-10-25 Alexei Podtelezhnikov +2017-10-08 Werner Lemberg - [cff] Correct cmap format reporting (#24819). + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Integer overflows. - * src/cff/cffdrivr.c (cff_get_cmap_info): Throw an error on synthetic - charmap instead of guessing its format and language. + Reported as -2016-10-22 Werner Lemberg + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3579 - [truetype] Fix SCANTYPE instruction (#49394). +2017-10-07 Werner Lemberg - * src/truetype/ttinterp.c (Ins_SCANTYPE): Only use lower 16bits. + [sfnt] Adjust behaviour of PS font names for variation fonts. -2016-10-22 Werner Lemberg + * src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Use a named instance's + PS name only if no variation is applied. - [sfnt] Improve handling of invalid post 2.5 tables [#49393]. +2017-10-07 Werner Lemberg - * src/sfnt/ttpost.c (load_format_25): We need at least a single - table entry. + [cff, truetype] Adjust behaviour of named instances. -2016-10-14 Werner Lemberg + This commit completely separates the interaction between named + instances and variation functions. In particular, resetting the + variation returns to the current named instance (if set) and not to + the base font. - [truetype] Fix handling of `cvar' table data. + As a side effect, variation functions no longer change the named + instance index. - Reported as + * src/cff/cffobjs.c (cff_face_init): Use MM service's `set_instance' + function. + Also apply `MVAR' table to named instances. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53 + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Add cast. + (tt_set_mm_blend): No longer check whether requested variation + coincides with a named instance. + (TT_Set_Var_Design): Use current named instance for default + coordinates. + * src/truetype/ttobjs.c (tt_face_init): Use `TT_Set_Named_Instance'. - * src/truetype/ttgxvar.c (tt_face_vary_cvt): Ignore invalid CVT - indices. +2017-10-07 Werner Lemberg -2016-10-11 Werner Lemberg + Make `FT_Set_Named_Instance' work. - [psaux] Fix handling of invalid flex subrs. + * src/cff/cffdrivr.c (cff_set_instance): New function. + (cff_service_multi_masters): Register it. - Problem reported as + * src/truetype/ttgxvar.c (TT_Set_Named_Instance): New function. + * src/truetype/ttgxvar.h: Updated. + * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Register + it. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52 + * src/type1/t1load.c (T1_Reset_MM_Blend): New function. + * src/type1/t1load.h: Updated. + * src/type1/t1driver.c (t1_service_multi_masters): Register it. - * src/psaux/t1decode.c (t1_decoder_parse_charstrings) - : Set `flex_state' after error checking. +2017-10-07 Werner Lemberg -2016-10-11 Werner Lemberg + Make `FT_FACE_FLAG_VARIATION' work. - * src/truetype/ttgxvar.c (tt_done_blend): Fix deallocation. + * include/freetype/internal/tttypes.h (TT_Face): Remove + `is_default_instance'; this can be replaced with a combination of + `FT_IS_VARIATION' and `FT_IS_INSTANCE'. -2016-10-08 Werner Lemberg + * src/cff/cffdrivr.c (cff_get_advances): Updated. - * src/cid/cidload.c (cid_face_open): Properly propagate `error'. + * src/sfnt/sfdriver.c (sfnt_get_ps_name), src/sfnt/sfobjs.c + (sfnt_init_face): Updated. -2016-10-08 Werner Lemberg + * src/truetype/ttdriver.c (tt_get_advances), src/truetype/ttgload.c + (TT_Process_Simple_Glyph, load_truetype_glyph, IS_DEFAULT_INSTANCE), + src/truetype/ttgxvar.c (tt_set_mm_blend): Updated. + * src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design): + Handle `FT_FACE_FLAG_VARIATION'. - [cid] Fix parsing of subr offsets. + * src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Handle + `FT_FACE_FLAG_VARIATION'. - Bug introduced 2016-05-16. +2017-10-07 Werner Lemberg - * src/cid/cidparse.c (cid_parser_new): Fix off-by-one error. + New function `FT_Set_Named_Instance'. -2016-10-01 Werner Lemberg + No effect yet. - [sfnt] Disable bitmap strikes if we don't have a bitmap data table. + * src/base/ftmm.c (FT_Set_Named_Instance): New function. - * src/sfnt/ttsbit.c (tt_face_load_sbit): Check whether we have - a bitmap data table. + * include/freetype/ftmm.h: Updated. -2016-10-01 Alexei Podtelezhnikov +2017-10-07 Werner Lemberg - [smooth] Remove impossibility. + Add macros for checking whether a font variation is active. - * src/smooth/ftgrays.c (TWorker): Rearrange fields. - (gray_convert_glyph): Remove impossible condition and clean up. + * include/freetype/freetype.h (FT_FACE_FLAG_VARIATION, + FT_IS_VARIATION): New macros. + No effect yet. -2016-09-29 Werner Lemberg +2017-10-07 Werner Lemberg - [pcf] Enrich family name with foundry name and glyph width info. + Add framework for setting named instance in MM service. - This is a very old patch from openSuSE (from 2006, submitted to - FreeType in 2011) that I forgot to apply. + * include/freetype/internal/services/svmm.h (FT_Set_Instance_Func): + New function typedef. + (MultiMasters): Add `set_instance' member. + (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. - https://build.opensuse.org/package/view_file/openSUSE:Factory/freetype2/freetype2-bitmap-foundry.patch + * src/cff/cffdrivr.c (cff_service_multi_masters), + src/truetype/ttdriver (tt_service_gx_multi_masters), + src/type1/t1driver.c (t1_service_multi_masters): Updated. - Prepend the foundry name plus a space to the family name. There are - many fonts just called `Fixed' which look completely different, and - which have nothing to do with each other. When selecting `Fixed' in - KDE or Gnome one gets results that appear rather random, the style - changes often if one changes the size and one cannot select some - fonts at all. +2017-10-07 Werner Lemberg - We also check whether we have `wide' characters; all put together, - we get family names like `Sony Fixed' or `Misc Fixed Wide'. + [type1] Minor code shuffling. - * src/pcf/pcfread.c (pcf_load_font): Implement it. + * src/type1/t1load.c (T1_Set_MM_Blend): Make it a wrapper of... + (t1_set_mm_blend): ...this new function. + (T1_Set_MM_Design): Use `t1_set_mm_blend'. - * docs/CHANGES: Document it. +2017-10-05 Werner Lemberg -2016-09-29 Werner Lemberg + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Fix integer + overflow. - [ftfuzzer] Speed up. + Reported as - * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Don't - check for embedded bitmaps if we have a non-default instance. + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3539 -2016-09-29 Werner Lemberg +2017-10-05 Werner Lemberg - [truetype] Disallow bitmap strokes for non-default instances. + Fix compiler warnings. - Also speed up access of default instances if GX variations are - active. + * src/cff/cffdrivr.c (cff_ps_get_font_extra): Avoid code that relies + on numeric overflow. + Add cast. - * include/freetype/internal/tttypes.h (TT_FaceRec): Add - `is_default_instance' member. + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix variable + types, add cast. - * src/sfnt/sfobjs.c (sfnt_init_face): Initialize - `is_default_instance'. +2017-10-04 John Tytgat - * src/truetype/ttgload.c (TT_Process_Simple_Glyph, - load_truetype_glyph): Add test for default instance. - (TT_Load_Glyph): Load embedded bitmaps for default instance only. + [cff] Add support for `FSType'. - * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Compute - `is_default_instance'. + * include/freetype/internal/cfftypes.h (CFF_FontRec): Add + `font_extra' entry. -2016-09-29 Werner Lemberg + * src/cff/cffdrivr.c (cff_ps_get_font_extra): New function to + retrieve FSType info from the embedded PostScript data. + (cff_service_ps_info): Register function. - [truetype] Clean up `TT_Face' structure. + * src/cff/cffload.c (cff_font_done): Free `font_extra'. - * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused - fields `horz_metrics' and `vert_metrics'. - Update documentation. +2017-09-30 Alexei Podtelezhnikov - * src/sfnt/sfobjs.c (sfnt_done_face): Updated. + Signedness fixes in bitmap presetting. -2016-09-28 Werner Lemberg + Reported as - More FT_ZERO usage. + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3514. - * src/gxvalid/gxvcommn.c (gxv_ClassTable_validate): - s/ft_memset/FT_MEM_ZERO/. + * src/raster/ftrend1.c (ft_raster1_render): Exlicitly signed height. + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Explicitly unsigned + subtraction. - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): - s/ft_memset/FT_ARRAY_ZERO/. +2017-09-29 Alexei Podtelezhnikov - * src/raster/ftraster.c (FT_ZERO): Define. - (ft_black_new): Use it. - * src/raster/ftrend1.c (ft_raster1_get_cbox): - s/FT_MEM_ZERO/FT_ZERO/. + Bitmap metrics presetting [2/2]. - * src/smooth/ftgrays.c (FT_ZERO): Define. - (gray_raster_new): Use it. - * src/smooth/ftsmooth.c (ft_smooth_get_cbox): - s/FT_MEM_ZERO/FT_ZERO/. + * src/base/ftobjs.c (FT_Load_Glyph): Preset the bitmap metrics when + appropriate but `FT_Render_Glyph' is not called. + * include/freetype/freetype.h (FT_GlyphSlotRec): Document the change. -2016-09-28 Werner Lemberg +2017-09-28 Alexei Podtelezhnikov - */*: s/FT_MEM_ZERO/FT_ZERO/ where appropriate. + [smooth, raster] Miscellaneous cleanups. -2016-09-27 Werner Lemberg + * src/raster/ftrend1.c (ft_raster1_render): Clean up the exit. + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Reduce + translations and clean up the exit. + (ft_smooth_render_lcd, ft_smooth_render_lcd): Remove unused `error'. - [truetype] Trace number of executed opcodes. +2017-09-28 Ben Wagner - * src/truetype/ttinterp.c (TT_RunIns): Implement it. + [truetype] Really, really fix #52082. -2016-09-27 Werner Lemberg + * src/truetype/ttinterp.c (Ins_MDRP): Correct conditional. - [truetype] Speed up `TT_Load_Glyph'. +2017-09-28 Werner Lemberg - This avoids additional calls to `tt_face_lookup_table' for the - `glyf' table, which can be expensive. + * src/psaux/psintrp.c (cf2_doStems): Fix integer overflow. - * include/freetype/internal/tttypes.h (TT_LoaderRec): Move - `glyf_offset' field to ... - (TT_FaceRec): ... this structure. - * src/truetype/ttgload.c (load_truetype_glyph): Updated. - (tt_loader_init): Move initialization of `glyf_offset' to ... - * src/truetype/ttpload.c (tt_face_load_loca): ... this function. + Reported as -2016-09-27 Werner Lemberg + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3510 - [truetype] Introduce dynamic limits for some bytecode opcodes. +2017-09-28 Ewald Hew - This speeds up FreeType's handling of malformed fonts. + * src/cid/cidgload.c (cid_slot_load_glyph): Fix memory leak. - * src/truetype/ttinterp.c (TT_RunIns): Set up limits for the number - of twilight points, the total number of negative jumps, and the - total number of loops in LOOPCALL opcodes. The values are based on - the number of points and entries in the CVT table. - (Ins_JMPR): Test negative jump counter. - (Ins_LOOPCALL): Test loopcall counter. + Reported as - * src/truetype/ttinterp.h (TT_ExecContext): Updated. + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3489 - * docs/CHANGES: Updated. +2017-09-28 Alexei Podtelezhnikov -2016-09-25 Werner Lemberg + Bitmap metrics presetting [1/2]. - [truetype] Sanitize only last entry of `loca' table. + This mainly just extracts the code for presetting the bitmap metrics + from the monochrome, grayscale, and LCD renderers into a separate + function. - Without this patch, a loca sequence like `0 100000 0 100000 ...', - where value 100000 is larger than the `glyf' table size, makes - FreeType handle the whole `glyf' table as a single glyph again and - again, which is certainly invalid (and can be very slow, too). + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): New function that + calculates prospective bitmap metrics for the given rendering mode. + * include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap): + Declare it. - * src/truetype/ttpload.c (tt_face_get_location): Implement. - Improve tracing messages. + * src/base/ftlcdfil.c (ft_lcd_padding): New helper function that adds + padding to CBox taking into account pecularities of LCD rendering. + * include/freetype/ftlcdfil.h (ft_lcd_padding): Declare it. -2016-09-25 Werner Lemberg + * src/raster/ftrend1.c (ft_raster1_render): Reworked to use + `ft_glyphslot_preset_bitmap'. + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. + (ft_smooth_render_lcd, ft_smooth_render_lcd): The pixel_mode setting + is moved to `ft_glyphslot_preset_bitmap'. - * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Fix typo. +2017-09-28 Ewald Hew -2016-09-24 Werner Lemberg + [psaux] Fix compiler warning. - [autofit] Tracing fixes. + * src/psaux/pshints.c (cf2_hintmap_dump): Add switch for tracing + code. - * src/autofit/afmodule.c (af_autofitter_load_glyph): Call dumping - functions only if we actually do tracing. +2017-09-27 Werner Lemberg -2016-09-22 Alexei Podtelezhnikov + * src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning. - [smooth] Reduce divisions in the line renderer. +2017-09-25 Werner Lemberg - We don't need some divisions if a line segments stays within a single - row or a single column of pixels. + [psaux] Fix compiler warnings. - * src/smooth/ftgrays.c (gray_render_line) [FT_LONG64]: Make divisions - conditional. + * src/psaux/psft.c (cf2_initLocalRegionBuffer): Remove redundant + test. -2016-09-15 Alexei Podtelezhnikov + * src/psaux/psintrp.c (cf2_interpT2CharString) + : Add casts. - * src/smooth/ftgrays.c (gray_sweep): Remove check for empty table. + * src/psaux/psobjs.c (ps_decoder_init): Add cast. -2016-09-14 Alexei Podtelezhnikov +2017-09-25 Ewald Hew - [smooth] Another tiny speed-up. + [psaux] Minor fixes. - * src/smooth/ftgrays.c (gray_find_cell): Merge into... - (gray_record_cell): ... this function. + * include/freetype/internal/psaux.h, src/psaux/psobjs.{c,h}: + Rearrange `ps_builder_init' arguments to conventional order. -2016-09-11 Alexei Podtelezhnikov + * src/psaux/psft.c (cf2_decoder_parse_charstrings): Add a check and + notice for `SubFont' in Type 1 mode. - * src/smooth/ftgrays.c (gray_{find,set}_cell): Remove dubious code. +2017-09-25 Ewald Hew -2016-09-11 Alexei Podtelezhnikov + [psaux] Move `psdecode' into `psobjs'. - [smooth] Fix valgrind warning and reoptimize. + As the former only contains a single procedure, move it into + `psobjs' for simplicity. Also change the parameter order to the + conventional one. - The algorithm calls `gray_set_cell' at the start of each new contour - or when the contours cross the cell boundaries. Double-checking for - that is wasteful. + * src/psaux/psdecode.c (ps_decoder_init): Moved to... + * src/psaux/psobjs.c: ...Here. + * src/psaux/psdecode.h, src/psaux/psobjs.h: Ditto. - * src/smooth/ftgrays.c (gray_set_cell): Remove check for a new cell. - (gray_convert_glyph): Remove initialization introduced by 44b172e88. + * include/freetype/internal/psaux.h (PSAux_ServiceRec): Update + `ps_decoder_init' function signature. -2016-09-10 Werner Lemberg + * src/cff/cffgload.c, src/cid/cidgload.c, src/type1/t1gload.c: + Update calls. - [sfnt] Fix previous commit. + * src/psaux/psaux.c, src/psaux/psauxmod.c: Update includes. - Problems reported as + * src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRV_SRC): + Update file references. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40 +2017-09-25 Ewald Hew - We now map the strike index right before accessing the physical - data, not earlier. + [psaux] Fix Type 1 hinting. - * src/sfnt/sfobjs.c (sfnt_load_face): Set `face->sbit_strike_map' - after creating the map so that... + Type 1 hinting breaks sometimes when mid-charstring hints should + have been in the initial hintmap. This fix adds a preprocessing + pass that reads all hints and builds the correct initial hintmap + first, before proceeding to build the glyph outline. - * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): ... this function - can be used before and after setting up `sbit_strike_map'. - (tt_face_set_sbit_strike): Revert change. - (tt_sbit_decoder_init, tt_face_load_sbix_image): Map strike index. + * src/psaux/psintrp.c (cf2_interpT2CharString): New + `initial_map_ready' boolean flag. + Ignore outline commands and hint changes on first pass. + : Add section to build hintmap and rewind. - * src/truetype/ttdriver.c (tt_size_select): Revert change. +2017-09-25 Ewald Hew -2016-09-09 Werner Lemberg + [psaux] Add tracing for hints. - [ftfuzzer] Minor improvements. + * src/psaux/pshints.c (cf2_hintmap_dump): New function. + (cf2_hintmap_insertHint): Trace incoming and inserted hints. + (cf2_hintmap_build): Dump hintmap before and after hint adjustment. - * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Ignore - invalid strikes. - Use better values for call to `FT_Set_Char_Size'. +2017-09-25 Ewald Hew -2016-09-09 Werner Lemberg + [psaux] Minor fixes. - [sfnt] Don't provide (completely) broken strike data. + * src/psaux/psintrp.c (cf2_interpT2CharString): Fix check for pop + results. + s/font->decoder/decoder/ where necessary. + : Use + offset parameter in `cf2_doStems' instead of doing correction for + left-sidebearing. - FreeType tries to sanitize strike header data; we now reject - completely broken ones. +2017-09-25 Ewald Hew - * include/freetype/internal/tttypes.h (TT_FaceRec): New - `sbit_strike_map' array pointer. + [cid] Use the new engine. - * src/base/ftobjs.c (FT_Match_Size): Reject matches where either - width or height would be zero. - Add tracing message in case of error. + * src/cid/cidgload.c: Update includes. + (cid_load_glyph, cid_slot_load_glyph): Implement changes to glyph + loading code as with `type1' module. - * src/sfnt/sfobjs.c (sfnt_load_face): Populate `sbit_strike_map', - only using (more or less) valid strike header data for - FT_Face's `available_sizes' array. - (sfnt_done_face): Updated. +2017-09-25 Ewald Hew - * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use - `sbit_strike_map'. - (tt_face_load_strike_metrics): Improve tracing. + [cid] Add Adobe engine configuration. - * src/truetype/ttdriver.c (tt_size_select): Use `sbit_strike_map'. + This is similar to what was done in the `type1' module. -2016-09-08 Werner Lemberg + * src/cid/cidriver.c (t1cid_driver_class): Update declaration. + * src/cid/cidobjs.c: Include FT_TYPE1_DRIVER_H. + (cid_driver_init): Update code. - * Version 2.7 released. - ======================= +2017-09-25 Ewald Hew + [psaux] Change subfont synthesis for CID fonts. - Tag sources with `VER-2-7'. + Change `t1_make_subfont' to take in the Private dict record as an + argument. This is because Type 1 and CID font records in FreeType + have this in different places. - * docs/VERSION.TXT: Add entry for version 2.7. + * src/psaux/psobjs.c (t1_make_subfont): Change `T1_Face' to + `FT_Face' so that CID is also accepted. + Take `PS_Private' as an argument and let caller figure out where the + Private dict actually is. + Update references. - * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, - builds/windows/vc2005/index.html, - builds/windows/vc2008/freetype.vcproj, - builds/windows/vc2008/index.html, - builds/windows/vc2010/freetype.vcxproj, - builds/windows/vc2010/index.html, - builds/windows/visualc/freetype.dsp, - builds/windows/visualc/freetype.vcproj, - builds/windows/visualc/index.html, - builds/windows/visualce/freetype.dsp, - builds/windows/visualce/freetype.vcproj, - builds/windows/visualce/index.html, - builds/wince/vc2005-ce/freetype.vcproj, - builds/wince/vc2005-ce/index.html, - builds/wince/vc2008-ce/freetype.vcproj, - builds/wince/vc2008-ce/index.html: s/2.6.5/2.7/, s/265/27/. + * include/freetype/internal/psaux.h, src/psaux/psobjs.h: Update + declaration. - * include/freetype/freetype.h (FREETYPE_MINOR): Set to 7. - (FREETYPE_PATCH): Set to 0. + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Update + call. - * builds/unix/configure.raw (version_info): Set to 18:6:12. - * CMakeLists.txt (VERSION_MINOR): Set to 7. - (VERSION_PATCH): Set to 0. +2017-09-25 Ewald Hew - * docs/CHANGES: Updated. + [type1] Switch to Adobe engine. -2016-09-08 Werner Lemberg + * src/type1/t1objs.c (T1_Driver_Init): Set default to Adobe engine. - * src/truetype/ttinterp.c: Include `ttgxvar.h'. +2017-09-25 Ewald Hew - This fixes the `multi' build. + [psaux] Extend Adobe interpreter (seac). -2016-09-08 Werner Lemberg + This concludes the changes needed to add Type 1 support. - [autofit] Another improvement to Armenian support. + * src/psaux/psintrp.c: Update includes. + (cf2_interpT2CharString) : Implement this similarly to + implied seac for CFF. - Suggested by Hrant H Papazian . + * src/psaux/t1decode.c (t1_lookup_glyph_by_stdcharcode_ps): New + function to look up the glyph index. - * src/autofit/afscript.h: Use better suited characters to derive - default stem widths. + * src/psaux/psft.c (cf2_getT1SeacComponent, + cf2_freeT1SeacComponent): New functions to get the charstrings for + seac components. -2016-09-07 Alexei Podtelezhnikov + * src/psaux/t1decode.h, src/psaux/psft.h: Update declarations. - * src/smooth/ftgrays.c (gray_hline): Microptimize. +2017-09-25 Ewald Hew -2016-09-06 Alexei Podtelezhnikov + [psaux] Extend Adobe interpreter (flex in callothersubr). - [smooth] Operate in absolute bitmap coordinates. + * src/psaux/psintrp.c (cf2_interpT2CharString) + : Fix Flex feature handling (OtherSubrs 0, 1, + 2). + : Do not actually move the `glyphPath' while doing + flex. This is to avoid closing the current contour. - Simpler bitmap addressing improves performance by 1.5%. +2017-09-25 Ewald Hew - * src/smooth/ftgrays.c (gray_TWorker): Remove count fields. - (gray_dump_cells, gray_find_cell, gray_set_cell, gray_hline, - gray_sweep, gray_convert_glyph, gray_raster_render): Updated. + [psaux] Extend Adobe interpreter (callothersubr). -2016-09-06 Alexei Podtelezhnikov + * src/psaux/psintrp.c (cf2_interpT2CharString) + : Copy code from + `t1_decoder_parse_charstrings' (in `t1decode.c'). + OtherSubr 3 (change hints) should reset the hintmask, so that the + new hints are applied. + Fix function calls and stack access. - [smooth] Improve contour start (take 2). +2017-09-25 Ewald Hew - * src/smooth/ftgrays.c (gray_move_to): Call `gray_set_cell' directly - instead of... - (gray_start_cell): ... this function, which is removed. - (gray_convert_glyph): Make initial y-coordinate invalid. + [psaux] Extend Adobe interpreter (pop). -2016-09-06 Werner Lemberg + * src/psaux/psintrp.c (cf2_interpT2CharString): Change how unhandled + OtherSubr results are stored. Implement the PostScript stack using + an array. + : Ensure that the stack is not cleared after getting + `OtherSubr' results. + Fix stack access. - [type1] MM fonts support exactly zero named instances (#48748). +2017-09-25 Ewald Hew - * src/type1/t1load.c (T1_Get_MM_Var): Set `num_namedstyles' to zero. + [psaux] Extend Adobe interpreter (callsubr). -2016-09-06 Jonathan Kew + * src/psaux/psintrp.c (cf2_interpT2CharString) : + Type 1 mode. - [cff] Fix uninitialized memory. + * src/psaux/psft.c (cf2_initLocalRegionBuffer): Add Type 1 mode. - Problem reported as +2017-09-25 Ewald Hew - https://bugzilla.mozilla.org/show_bug.cgi?id=1270288 + [psaux] Extend Adobe interpreter (div, four-byte numbers). - * src/cff/cf2interp.c (cf2_interpT2CharString): Initialize `storage' - array to handle a `get' opcode without a previous `put'. + * src/psaux/psintrp.c (cf2_interpT2CharString) : Add + Type 1 mode. Type 1 requires large integers to be followed by + `div'; cf. `Adobe Type 1 Font Format', section 6.2. + : Push Type 1 four-byte numbers as `Int' always. This is + to ensure `div' and `callsubr' get values they can use. -2016-09-05 Alexei Podtelezhnikov +2017-09-25 Ewald Hew - * src/smooth/ftgrays.c (gray_move_to, gray_start_cell): Revert. + [psaux] Extend Adobe interpreter (hints). -2016-09-05 Alexei Podtelezhnikov + * src/psaux/psintrp.c (cf2_interpT2CharString) : Add correction for left sidebearing in Type 1 mode. + Allow adding hints mid-charstring. + : Translate into equivalent commands + for three normal stem hints. This requires some recalculation of + stem positions. + Correction for left sidebearing. - [smooth] Improve contour start. +2017-09-25 Ewald Hew - * src/smooth/ftgrays.c (gray_move_to): Call `gray_set_cell' directly - instead of... - (gray_start_cell): ... this function, which is removed. + [psaux] Extend Adobe interpreter (hsbw, sbw). -2016-09-05 Werner Lemberg + * src/psaux/psintrp.c (cf2_doStems): `hsbw' or `sbw' must be the + first operation in a Type 1 charstring. + (cf2_interpT2CharString): Remove unused variables. + : `hsbw' or `sbw' + must be the first operation in a Type 1 charstring. + : Fix data access and add correction for + left sidebearing. - [cff] Fix memory initialization. +2017-09-25 Ewald Hew - * src/cff/cf2stack.c (cf2_stack_init): Use `FT_NEW'. The `Q' - variants of FreeType's memory allocation macros don't do zeroing. + [psaux] Extend Adobe interpreter (setcurrentpoint). -2016-09-05 Werner Lemberg + * src/psaux/psintrp.c (cf2_interpT2CharString) + : Fix stack access. - [ftrandom] Minor improvements. +2017-09-25 Ewald Hew - * src/tools/ftrandom/ftrandom.c (_XOPEN_SOURCE): New macro, set to - 500. + [psaux] Extend Adobe interpreter (closepath). - * src/tools/ftrandom/Makefile (CFLAGS): Split off include - directories to ... - (INCLUDES): ... this new variable. - (LDFLAGS): New variable. - (ftrandom.o, ftrandom): Updated. + * src/psaux/psintrp.c (cf2_interpT2CharString) : + Use the right builder function. We can use the `haveWidth' boolean + already present, instead of implementing `parse_state'. -2016-09-05 Werner Lemberg +2017-09-25 Ewald Hew - [autofit] Improve Armenian support. + [psaux] Add Type 1 operations to Adobe CFF interpreter. - Thanks to Hrant H Papazian for help. + The following Type 1 specific ops have been added (copied from + `t1decode'): - * src/autofit/afblue.dat (AF_BLUE_STRING_ARMENIAN_*): Improve - selection of characters. + closepath + vstem3 + hstem3 + seac + sbw + callothersubr + pop + setcurrentpoint + hsbw - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. + The following require a Type 1 mode, because of differences in + specification: -2016-09-04 Werner Lemberg + hstem + vstem + vmoveto + callsubr + div + rmoveto + hmoveto + Numbers - [ftrandom] Improve Makefile. + The subsequent commits will implement these changes and adapt + accesses of data and objects to the new interpreter. - It now supports both a normal build (`./configure && make') and a - development build (`make devel'). + NOTE: Will not compile in the meantime! - * src/tools/ftrandom/Makefile (VPATH): Set it so that - `libfreetype.a' gets searched in both `objs' (for the development - build) and `objs/.libs' (for a normal build which uses libtool). - (LIBS): Add missing libraries. - (ftrandom.o): New rule. - (ftrandom): Use automatic variables. + * src/psaux/psintrp.c: Add opcodes to enum. + (cf2_interpT2CharString): Copy relevant code over from + `t1_decoder_parse_charstrings' (in `t1decode.c'). -2016-09-03 Werner Lemberg +2017-09-25 Ewald Hew - [truetype] More fixes for handling of GX deltas. + [type1] Fixes for rendering. - Problems reported by Bob Taylor . + The Type 1 advance width calculation passes null for glyph slot, + etc, which can cause null pointer access in the new interpreter. + Fall back to the old one for now. - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix rough - sanity test for glyph variation array header size. - Always set stream position before reading packed x and y deltas. - Fix thinko w.r.t. `localpoints' array. + Fix the large glyph retry code and ensure hinting and scaling flags + are set properly. -2016-09-03 Werner Lemberg + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add a + check for metrics_only. + Set the `force_scaling' flag. + (T1_Parse_Glyph): Updated. + (T1_Load_Glyph): Add `hinting' and `scaled' flags. - [ftrandom] Various fixes. +2017-09-25 Ewald Hew - * src/tools/ftrandom/ftrandom.c (GOOD_FONTS_DIR): Provide better - default. - (error_fraction): Make it of type `double' to work as advertized – - this was completely broken. - Update all related code. - (error_count, fcnt): Make it unsigned to fix compiler warnings. - Update all related code. - (fontlist): Change `len' member to `long' to fix compiler warnings. - (FT_MoveTo, FT_LineTo, FT_ConicTo, FT_CubicTo, abort_test): Tag - unused variables. - (TestFace, FindFonts, copyfont, do_test): Fix compiler warnings. - (ExecuteTest): Ditto. - Call `FT_Done_FreeType'. - (getErrorCnt): Replace `ceil' with an ordinary cast to `unsigned - int'. - (usage): Improve output. - (main): Fix compiler warnings. + [psaux] Add missing objects (2/2). - * src/tools/ftrandom/README: Updated. + Synthesize a `SubFont' object for Type 1 fonts. This is used in the + interpreter to access Private dict data, which are stored in + different places for Type 1 and CFF. This allows the same data to + be used in either mode. -2016-09-03 Werner Lemberg + * src/psaux/psobjs.c (t1_make_subfont): New procedure to copy + required values to a dummy `CFF_SubFont' object. This is similar to + `cff_make_private_dict'. + * src/psaux/psobjs.h: Add the new declaration. - [base] Avoid negative bitmap stroke dimensions (#48985). + * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Ditto. + Add this to the PSAux Service for future use with CID fonts. - * src/base/ftobjs.c (FT_Open_Face): Check whether negation was - actually successful. For example, this can fail for value - -32768 if the type is `signed short'. If there are problems, - disable the stroke. + * src/type1/t1gload.c: Include FT_INTERNAL_CFF_TYPES_H. + (T1_Parse_Glyph_And_Get_Char_String): Add the call. -2016-09-03 Werner Lemberg +2017-09-25 Ewald Hew - [cff] Avoid null pointer passed to FT_MEM_COPY (#48984). + [psaux] Add missing objects for Type 1 (1/2). - * src/cff/cffload.c (cff_index_get_name): Check `byte_len'. + Move `CF2_Font' instance to `PS_Decoder'. This is the context for + the interpreter and since it is currently stored in `CFF_Font', is + unavailable in Type 1 mode. -2016-09-02 Werner Lemberg + * include/freetype/internal/psaux.h (T1_Decoder, PS_Decoder): New + `cf2_instance' field. - [unix] Enable 64bit support in file system access (#48962). + * src/psaux/psdecode.c (ps_decoder_init): Copy `cf2_instance' to + `PS_Decoder'. - * builds/unix/configure.raw: Call `AC_SYS_LARGEFILE'. + * src/psaux/t1decode.c (t1_decoder_done): Add finalization code. -2016-09-02 Werner Lemberg + * src/psaux/psft.c (cf2_decoder_parse_charstrings): Update accesses. - [sfnt] Avoid left shift of negative value (#48980). +2017-09-25 Ewald Hew - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bit_aligned): Use unsigned - constant. + Allow `type1' module to use the Adobe engine. -2016-09-02 Werner Lemberg + Add the callback and some conditionals to switch between the two + engines. - * src/smooth/ftgrays.c (gray_hline): Fix clang compiler warnings. + * include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Change + function declarations. + * src/psaux/psauxmod.c (T1_Decoder_FuncsRec): Register the + callbacks. -2016-09-02 Werner Lemberg + * src/psaux/psobjs.c (ps_builder_add_point): Add conditionals for + number conversion. - Some preparations for the next release. + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add code + to choose which renderer to use. - * include/freetype/config/ftoption.h - (TT_CONFIG_OPTION_SUBPIXEL_HINTING): Enable. + * src/cid/cidgload.c (cid_load_glyph): Update call. + * src/base/ftobjs.c, src/psaux/psobjs.c, src/type1/t1gload.c: Update + includes. - * docs/CHANGES: Updated. +2017-09-25 Ewald Hew -2016-09-01 Alexei Podtelezhnikov + [type1] Add Adobe engine configuration. - [smooth] Simplify span rendering more. + Use the previously changed PS_Driver in type1 module to store + hinting engine configuration. - It turns out that there is significant cost associated with `FT_Span' - creation and calls to `gray_render_span' because it happerns so - frequently. This removes these steps from our internal use but leaves - it alone for `FT_RASTER_FLAG_DIRECT" to preserve API. The speed gain - is about 5%. + * include/freetype/ftt1drv.h: New file. + Duplicate and rename config options from CFF. + * include/freetype/config/ftheader.h (FT_TYPE1_DRIVER_H): New macro. - * src/smooth/ftgrays.c (gray_render_span): Removed. The code is - migrated to... - (gray_hline): ... here. + * src/type1/t1driver.c (t1_driver_class): Update declaration. + * src/type1/t1objs.c: Include FT_TYPE1_DRIVER_H. + (T1_Driver_Init): Update code. -2016-08-30 Alexei Podtelezhnikov +2017-09-25 Ewald Hew - [smooth] Streamline pixmap drawing a bit more. + [cff] Move and rename `CFF_Driver'. - Zero coverage is unlikely (1 out of 256) to warrant checking. This - gives 0.5% speed improvement in rendering simple glyphs. + This is so that we can use the same hinting engine parameters for + Type 1. - * src/smooth/ftgrays.c (gray_hline, gray_render_span): Remove checks. + * include/freetype/internal/cffotypes.h (CFF_Driver): Rename and + move to... + * include/freetype/internal/psaux.h (PS_Driver): ...here. -2016-08-29 Alexei Podtelezhnikov + * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffload.c, + src/cff/cffobjs.c, src/cff/cffobjs.h, src/psaux/psft.c, + src/psaux/psobjs.c: Update references. - [smooth] Streamline pixmap drawing. +2017-09-25 Ewald Hew - This gives 2% speed improvement in rendering simple glyphs. + [psaux, type1] Reorganize object fields. - * src/smooth/ftgrays.c (TPixmap): Reduced pixmap descriptor with a - pointer to its bottom-left and pitch to be used in... - (gray_TWorker): ... here. - (gray_render_span): Move pixmap flow check from here... - (gray_raster_render): .. to here. + Make some fields more generic, so that we can access them the same + way regardless of Type 1 or CFF. -2016-08-27 Alexei Podtelezhnikov + * include/freetype/internal/psaux.h (PS_Builder): Change `TT_Face' + to `FT_Face'. + Remove unused fields. - [smooth] Reduce stack of band boundaries. + * src/psaux/psft.c: Update all accesses of `PS_Builder.face'. + Add some asserts to guard against casting `T1_Face' as `TT_Face'. - * src/smooth/ftgrays.c (gray_TBand): Removed. - (gray_convert_glyph): Updated to stack band boundaries concisely. + * src/type1/t1objs.h (T1_GlyphSlot): Reorder fields to follow + `CFF_GlyphSlot', so that we can pretend they are the same in the + interpreter. -2016-08-26 Werner Lemberg + * src/psaux/psobjs.c (ps_builder_init, ps_builder_add_point): + Updated with above changes. - * src/cid/cidload.c (cid_face_open): Improve handling of `SDBytes'. +2017-09-25 Ewald Hew -2016-08-26 Werner Lemberg + [psaux] Prepare for Type 1 mode. - [cid] Fix commit from 2016-05-16. + Add some checks for Type 1 data passing through. - * src/cid/cidparse.c (cid_parser_new): Fix off-by-one errors. + * src/psaux/psfont.h (CF2_Font): Add `isT1' flag. + * src/psaux/psfont.c (cf2_font_setup): Skip the variations and blend + code which is not applicable for Type 1. -2016-08-26 Werner Lemberg + * src/psaux/psft.c (cf2_decoder_parse_charstrings): Avoid accessing + `decoder->cff' in Type 1 mode. + Copy `is_t1' flag to `CF2_Font'. - [sfnt] Cache offset and size to bitmap data table. +2017-09-25 Ewald Hew - This commit avoids `EBDT' and friends being looked up again and - again while loading a single embedded bitmap. + [psaux, cff] Use the new objects. - * include/freetype/internal/tttypes.h (TT_FaceRec) - [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: New fields `ebdt_start' and - `ebdt_size'. + * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Fix + switching between new and old engines. - * src/sfnt/ttsbit.c (tt_sbit_decoder_init): Move table lookup to ... - (tt_face_load_sbit): ... this function; also store the table size - and offset. + * src/cff/cffgload.c, src/cff/cffparse.c: Update calls. -2016-08-26 Alexei Podtelezhnikov + * src/psaux/psblues.c, src/psaux/psfont.c, src/psaux/psfont.h, + src/psaux/psft.c, src/psaux/psft.h, src/psaux/psintrp.c: Update all + to use new objects. - * src/smooth/ftgrays.c (gray_raster_render): Minor tweaks. +2017-09-24 Ewald Hew -2016-08-26 Werner Lemberg + [psaux] Objects for new interpreter (part 2). - [type1] Fix heap buffer overflow. + Make the new objects copy over values. They are essentially wrapper + types for the different decoders/builders. - Reported as + * include/freetype/internal/psaux.h: Update declarations. + (PS_Builder): Add `is_t1' flag. + (PS_Decoder_{Get,Free}_Glyph_Callback): Renamed to... + (CFF_Decoder_{Get,Free}_Glyph_Callback: ... this. + (PS_Decoder): Updated. + Add `t1_parse_callback' member. + (PSAux_ServiceRec): Add `ps_decoder_init' member. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36 + * src/psaux/psdecode.h, src/psaux/psobjs.h: Update declarations. - * src/type1/t1load.c (parse_charstrings): Reject fonts that don't - contain glyph names. + * src/psaux/psdecode.c, src/psaux/psobjs.c: Implement copy with two + modes. -2016-08-25 Werner Lemberg + * src/psaux/psauxmod.c: Add builder and decoder functions to `PSAux' + service. - [sfnt] Fix previous commit (#48901). +2017-09-24 Ewald Hew - * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Thinkos. + [psaux] Add objects for new interpreter. -2016-08-25 Werner Lemberg + Introduce `PS_Decoder' and `PS_Builder' which include all fields + from either Type 1 or CFF decoders/builders. - [sfnt] Speed up handling of invalid format 4 cmaps. + * include/freetype/internal/psaux.h (PS_Builder, PS_Decoder): New + structs. - * src/sfnt/ttcmap.c (tt_cmap4_next, tt_cmap4_char_map_binary): Add - tests for `num_glyph' from `tt_cmap4_char_map_linear'. + * src/psaux/psobjs.c, src/psaux/psobjs.h: Add `PS_Builder' + functions. -2016-08-25 Werner Lemberg + * src/psaux/psdecode.c, src/psaux/psdecode.h: New files to hold + `PS_Decoder' initialization functions. - * include/freetype/internal/ftdriver.h: Remove unused typedefs. + * src/psaux/psaux.c, src/psaux/Jamfile (_sources), + src/psaux/rules.mk (PSAUX_DRV_SRC): Updated. -2016-08-22 Alexei Podtelezhnikov +2017-09-24 Ewald Hew - [smooth] Simplify span rendering. + [psaux] Rename files. - This removes unnecessary complexity of span merging and buffering. - Instead, the spans are rendered as they come, speeding up the - rendering by about 5% as a result. + Replace the `cf2' file name prefix with `ps' as the Adobe engine + will be used for both PostScript Types 1 and 2 (CFF) instead of just + CFF. - * src/smooth/ftgrays.c [FT_MAX_GRAY_SPANS]: Macro removed. - (gray_TWorker): Remove span buffer and related fields. - (gray_sweep, gray_hline): Updated. + s/cf2/ps/ for all following. - * include/freetype/ftimage.h: Remove documentation note about - `FT_MAX_GRAY_SPANS', which was never in `ftoption.h' and is now gone. + * src/psaux/cf2*: Rename files. + * src/psaux/*: Update includes. -2016-08-16 Werner Lemberg + * src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRC_SRC, + PSAUX_DRV_H): Update file references. - [truetype] Fix `MPS' instruction. +2017-09-24 Ewald Hew - According to Greg Hitchcock, MPS in DWrite really returns the point - size. + [psaux] Minor fix. - * src/truetype/ttobjs.h (TT_SizeRec): Add `point_size' member. + Use `MultiMasters' service in `psaux' instead of a call to `cff'. + The project builds if CFF_CONFIG_OPTION_OLD_ENGINE is not defined. - * src/truetype/ttdriver.c (tt_size_request): Set `point_size'. + * src/psaux/cf2ft.c: Update includes. + (cf2_getNormalizedVector): Use `mm->get_var_blend' instead of + `cff_get_var_blend'. - * src/truetype/ttinterp.h (TT_ExecContextRec): Add `pointSize' - member. +2017-09-24 Ewald Hew - * src/truetype/ttinterp.c (TT_Load_Context): Updated. - (Ins_MPS): Fix instruction. + [psaux, cff] Move `cff_random' into `psaux' service. -2016-08-16 Werner Lemberg + NOTE: Does not compile! - [lzw] Optimize last commit. + Minor fix to allow both `cff' and `psaux' to use `cff_random'. - * src/lzw/ftzopen.c (ft_lzwstate_get_code): Move check into - conditional clause. + * src/cff/cffload.c (cff_random): Move to... + * src/psaux/psobjs.c: Here. + * src/cff/cffload.h: Move corresponding declaration to + `src/psaux/psobjs.h'. -2016-08-16 Werner Lemberg + * include/freetype/internal/psaux.h (PSAux_ServiceRec): Register the + function here... + * src/psaux/psauxmod.c: And here. - [lzw] Avoid invalid left shift. + * src/cff/cffload.c, src/psaux/cf2intrp.c: Update code. - Reported as +2017-09-24 Ewald Hew - https://bugzilla.mozilla.org/show_bug.cgi?id=1295366 + [cff] Move struct declarations to `freetype/internal'. - * src/lzw/ftzopen.c (ft_lzwstate_get_code): Limit `num_bits'. + NOTE: Does not compile! -2016-08-16 Werner Lemberg + This is so that the CFF functions moved to `psaux' can access the + same structs that they need. - [lzw] Avoid buffer overrun. + * src/cff/cfftypes.h: Moved to... + * include/freetype/internal/cfftypes.h: ...Here. - Reported as + * src/cff/cffobjs.h: Moved the struct declarations to... + * include/freetype/internal/cffotypes.h: ... this new file. - https://bugzilla.mozilla.org/show_bug.cgi?id=1273283 + * include/freetype/internal/internal.h (FT_INTERNAL_CFF_TYPES_H, + FT_INTERNAL_CFF_OBJECT_TYPES_H): New macros. - * src/lzw/ftzopen.c (ft_lzwstate_refill): Ensure `buf_size' doesn't - underflow. + * src/cff/cffcmap.h, src/cff/cffdrivr.c, src/cff/cffgload.c, + src/cff/cffgload.h, src/cff/cffload.h, src/cff/cffobjs.c, + src/cff/cffobjs.h, src/cff/cffparse.h, src/psaux/psobjs.h, + include/freetype/internal/psaux.h, + include/freetype/internal/services/svcfftl.h: Update includes. -2016-08-16 Werner Lemberg + * src/cff/rules.mk (CFF_DRV_H): Updated. - [truetype] Fix compiler warning. +2017-09-24 Ewald Hew - * src/truetype/ttgload.c (load_truetype_glyph): Add cast. + [psaux, cff] Add new service for inter-module calls. -2016-08-13 Werner Lemberg + NOTE: Does not compile! - [winfonts] Avoid zero bitmap width and height. + This is to allow CFF functions moved to `psaux' to call functions + declared in `src/cff/cffload.h'. - Reported as + * include/freetype/internal/services/svcfftl.h: New file, setting up + a `CFFLoad' service. - https://bugzilla.mozilla.org/show_bug.cgi?id=1272173 + * include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC10, + FT_DEFINE_SERVICEDESCREC): New macros. + (FT_SERVICE_CFF_TABLE_LOAD_H): New macro. - * src/winfonts/winfnt.c (FNT_Face_Init): Check zero pixel height. - (FNT_Load_Glyph): Check for zero pitch. + * src/cff/cffdrivr.c, src/cff/cffpic.h: Register the new service. -2016-08-11 Alexei Podtelezhnikov + * src/cff/cfftypes.h (CFF_FontRec), src/psaux/cf2font.h + (CF2_FontRec): Add service interface. - * src/truetype/ttinterp.c (Pop_Push_Count): Revert changes. + * src/cff/cffobjs.c, src/psaux/cf2font.c, src/psaux/cf2ft.c, + src/psaux/cf2intrp.c, src/psaux/cffdecode.c: Use the new service. -2016-08-11 Alexei Podtelezhnikov +2017-09-24 Ewald Hew - * src/truetype/ttinterp.c (TT_RunIns): Minor and formatting. + [psaux, cff] Add callbacks for inter-module calls. -2016-08-11 Alexei Podtelezhnikov + NOTE: Does not compile! - * src/truetype/ttinterp.c (Pop_Push_Count): Fix some entries. + * include/freetype/internal/psaux.h: Add function pointer + declarations. -2016-08-10 Peter Klotz + * src/psaux/cffdecode.c (cff_decoder_init): Update to take in + callbacks. + * src/psaux/cffdecode.h: Ditto. - * src/smooth/ftgrays.c (gray_hline): Fix uninitialized access. + * src/cff/cffgload.c (cff_compute_max_advance, cff_slot_load): + Update calls to pass in callbacks. + * src/psaux/cf2ft.c, src/psaux/cffdecode.c: Use them. -2016-08-10 Werner Lemberg +2017-09-24 Ewald Hew - [sfnt] Use correct type for `italicAngle' field (#48732). + [psaux, cff] Create new `PSAux' service interface entries. - * src/sfnt/ttload.c (tt_face_load_post): Fix types. + NOTE: Does not compile! -2016-08-06 Jon Spencer + * include/freetype/internal/psaux.h: Include + FT_INTERNAL_TRUETYPE_TYPES_H. + (CFF_Builder_FuncsRec, CFF_Decocer_FuncsRec): New function tables. + (CFF_Builder): Updated. + Fix for forward declaration. + (PSAux_ServiceRec): New field `cff_decoder_funcs'. - [sfnt] Fix `FT_Get_Advance' for bitmap strikes. + * src/psaux/psauxmod.c (cff_builder_funcs, cff_decoder_funcs): New + function tables. + (PSAux_Interface): Updated. - `FT_Get_Advance' returns 0 for bitmap fonts. It first gets the - advance value from the font table and then scales it by the - `font->size->metrics->x_scale' field. But `FT_Select_Size' doesn't - set that value for bitmap fonts and the advance gets scaled to zero. + * include/freetype/internal/tttypes.h (TT_FaceRec): Add `psaux' + service interface. - Taken from + * src/cff/cffgload.c, src/cff/cffobjs.c, src/cff/cffparse.c: Update + function calls to use psaux service. - https://github.com/behdad/harfbuzz/issues/252 +2017-09-24 Ewald Hew - * src/sfnt/ttsbit.c (tt_face_load_strike_metrics) - : Set scale values. + [psaux, cff] Move CFF builder components into `psaux' module. -2016-08-06 Behdad Esfahbod + NOTE: Does not compile! - [truetype] Fix GX variation handling of composites. + * src/cff/cffgload.c + (cff_builder_{init,done,add_point,add_point1,add_contour,start_point,close_contour}, + cff_check_points): Move to... + * src/psaux/psobjs.c: Here. - * src/truetype/ttgload.c (load_truetype_glyph) - [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Check `ARGS_ARE_XY_VALUES' flag. + * src/cff/cffgload.h: Move corresponding declarations to + `src/psaux/psobjs.h'. -2016-08-05 Alexei Podtelezhnikov + * src/cff/cffgload.h (CFF_Builder): Move struct declaration to... + * include/freetype/internal/psaux.h: Here. - [smooth] Minor refactoring. +2017-09-24 Ewald Hew - * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line): - Updated. + [psaux, cff] Move CFF decoder components into `psaux' module. + + NOTE: Does not compile! + + * src/cff/cffgload.c (CFF_Operator, + CFF_COUNT_{CHECK_WIDTH,EXACT,CLEAR_STACK}, cff_argument_counts, + cff_operator_seac, cff_compute_bias, + cff_lookup_glyph_by_stdcharcode, + cff_decoder_{parse_charstrings,init,prepare}): Move to... + * src/psaux/cffdecode.c: This new file. -2016-07-29 Werner Lemberg + * src/cff/cffgload.h: Move corresponding declarations to... + * src/psaux/cffdecode.h: This new file. - [sfnt, truetype] Don't abort on invalid `maxComponentDepth'. + * src/cff/cffgload.h (CFF_MAX_{OPERANDS,SUBRS_CALLS,TRANS_ELEMENTS}, + CFF_Decoder_Zone, CFF_Decoder): Move declarations to... + * include/freetype/internal/psaux.h: Here. - Since 2016-05-16 we detect infinite recursion directly. + * src/psaux/cf2ft.h: Update include. - * src/sfnt/ttload.c (tt_face_load_maxp): Don't adjust - `maxComponentDepth'. - * src/truetype/ttgload.c (load_truetype_glyph): Don't abort if - `maxComponentDepth' is not valid. Instead, simply adjust its value - and emit a tracing message. + * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Update with + the new file. -2016-07-26 Werner Lemberg +2017-09-24 Ewald Hew - * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Minor. + [psaux, cff] Move Adobe's engine components into `psaux' module. - No functional change. + This is the first patch of a sequence to move the Type 2 charstring + processing capability from the `cff' module to the `psaux' module. -2016-07-22 Hin-Tak Leung + NOTE: Does not compile! - [truetype] Record the end of IDEFs. + * src/cff/cf2*: Move these files to... + * src/psaux/cf2*: Here. - To match the logic in FDEF. The value of the end is only used for - bound-checking in `Ins_JMPR', so it may not have been obvious that - it was not recorded. Tested (as part of Font Validator 2.0) all the - fonts on Fedora and did not see any change. + * src/cff/Jamfile (_sources), src/cff/rules.mk (CFF_DRV_SRC, + CFF_DRV_H), src/cff/cff.c, src/cff/cffgload.c: Remove file + references. - * src/truetype/ttinterp.c (Ins_IDEF): Updated. + * src/psaux/Jamfile (_sources), src/psaux/rules.mk, src/psaux/psaux.c + (PSAUX_DRV_SRC, PSAUX_DRV_H): Add file references. -2016-07-19 Werner Lemberg +2017-09-24 Alexei Podtelezhnikov - [truetype] Sanitizer fix, second try. + Tweak per-face LCD filtering controls. - * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix boundary - tests and use only one slot more. + Thing are simpler with a NULL-function pointer. -2016-07-19 Werner Lemberg + * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New + pointer to the filter function. + (FT_LibraryRec): Remove unused `lcd_filter'. + (FT_Bitmap_LcdFilterFunc, ft_lcd_filter_fir): Move from here... + * include/freetype/ftlcdfil.h (FT_Bitmap_LcdFilterFunc, + ft_lcd_filter_fir): ... to here. - [truetype] Sanitizer fix. + * src/base/ftobjs.c (ft_open_face_internal): NULL-initialize the + per-face filter. + (FT_Face_Properties): Set it. + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Simplify. - * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Increase array - to fix nested loops. + * src/base/ftlcdfil.c (ft_lcd_filter_fir, FT_Libary_SetLcdFilter): + Minor. -2016-07-18 Werner Lemberg +2017-09-24 Jonathan Kew - [truetype] Make GETDATA work only for GX fonts. + [sfnt] Fix `premultiply_data' (#52092). - * src/truetype/ttinterp.c (opcode_name): Updated. - (Ins_GETDATA): Only define for `TT_CONFIG_OPTION_GX_VAR_SUPPORT'. - (TT_RunIns): Updated. + * src/sfnt/pngshim.c (premultiply_data): Don't use vector extension + if we have less than 16 bytes of data. -2016-07-17 Werner Lemberg +2017-09-24 Werner Lemberg - [truetype] Add support for Apple's + [otvalid] Fix handling of ValueRecords. - GETDATA[], opcode 0x92 + For GPOS pair positioning format 1 the description of ValueRecords + in the OpenType specification (1.8.2, from today) is wrong – the + offset has to be taken from the parent structure; in this case the + `PairSet' table. - bytecode instruction. It always returns 17, and we have absolutely - no idea what it is good for... + * src/otvalid/otvgpos.c (otv_PairSet_validate): Set `extra3'. + (otv_PairPos_validate): Adjust. - * src/truetype/ttinterp.c (Pop_Push_Count, opcode_name): Updated. - (Ins_GETDATA): New function. - (TT_RunIns): Add it. +2017-09-23 Werner Lemberg -2016-07-16 Werner Lemberg + [otvalid] Handle `GSUB' and `GPOS' v1.1 tables. - [truetype] Add bytecode support for GX variation fonts. + * src/otvalid/otvgsub.c (otv_GSUB_validate), src/otvalid/otvgpos.c + (otv_GPOS_validate): Implement it. - This commit implements undocumented (but confirmed) stuff from - Apple's old bytecode engine. +2017-09-23 Werner Lemberg - GETVARIATION[], opcode 0x91 - This opcode pushes normalized variation coordinates for all axes - onto the stack (in 2.14 format). Coordinate of first axis gets - pushed first. + [otvalid] Update common table handling to OpenType 1.8.2. - GETINFO[], selector bit 3 - If GX variation support is enabled, bit 10 of the result is set - to 1. + * src/otvalid/otvcommn.c (otv_Device_validate): Handle + VariationIndex subtable. + (otv_Lookup_validate): Handle MarkFilteringSet. - * src/truetype/ttinterp.c: Include FT_MULTIPLE_MASTERS_H. - (opcode_name) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated. - (Ins_GETINFO) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Handle selector - bit 3, checking support for variation glyph hinting. - (Ins_GETVARIATION) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New function - to implement opcode 0x91. - (TT_RunIns) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Handle opcode 0x91. +2017-09-23 Alexei Podtelezhnikov -2016-07-16 Werner Lemberg + [build] Windows-style DLL versioning. - [truetype] Fix GETINFO bytecode instruction. + * build/windows/ftver.rc: New VERSIONINFO resource. + * build/windows/vc2010/freetype.vcxproj: Further improvements. - * src/truetype/ttinterp.c (Ins_GETINFO): Fix return value for - stretching information. +2017-09-23 Ben Wagner -2016-07-16 Behdad Esfahbod + [truetype] Really fix #52082. - [truetype] Make all glyphs in `Zycon' GX font work. + * src/truetype/ttinterp.c (Ins_MDRP): Correct conditional. - * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix boundary - tests. +2017-09-23 Werner Lemberg -2016-07-16 Werner Lemberg + [otvalid] Handle `GDEF' v1.2 and v1.3 tables. - [truetype] Fix GX delta tracing. + No validation of variation stuff yet. - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Trace - relative point movements. + * src/otvalid/otvgdef.c (otv_MarkGlyphSets_validate): New function. + (otv_GDEF_validate): Implement it. -2016-07-16 Behdad Esfahbod +2017-09-22 Werner Lemberg - [truetype] More fixes for GX. + [otvalid] Handle `BASE' v1.1 table. - This finally fixes the rendering of the cyclist and the lizard in - the `Zycon' font. + No validation of variation stuff yet. - * src/truetype/ttgxvar.c (ft_var_readpackedpoints): `first' point - index is always cumulative. + * src/otvalid/otvbase.c (otv_BASE_validate): Implement it. - (tt_handle_deltas): Rename to... - (tt_interpolate_deltas): ... This. - Add new parameter for output point array. - Update caller. +2017-09-22 Werner Lemberg - (TT_Vary_Apply_Glyph_Deltas): Add `points_out' array; it now holds - the intermediate results of `tt_interpolate_deltas' that are to be - added to `outline->points'. + [otvalid] Macros for 32bit offset support. -2016-07-15 Werner Lemberg + * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE32, + OTV_OPTIONAL_OFFSET32, OTV_SIZE_CHECK32): New macros. + +2017-09-21 Alexei Podtelezhnikov + + [build] Simplify Visual C++ 2010 project. + + * build/windows/vc2010/freetype.vcxproj: Remove fake singlethreaded + configurations and tweak. + +2017-09-21 Werner Lemberg + + [truetype] Integer overflow (#52082). + + * src/truetype/ttinterp.c (Ins_MDRP): Avoid FT_ABS. + +2017-09-21 Werner Lemberg + + [sfnt] Fix postscript name for default instance of variation fonts. + + Problem reported by Behdad. + + * src/sfnt/sfdriver.c (sfnt_get_ps_name): Test + `is_default_instance'. - * src/autofit/aflatin.c (af_latin_hints_compute_segments): Thinko. +2017-09-21 Werner Lemberg - `max_pos' is always larger than `min_pos' so `FT_ABS' is not needed. + [truetype] Fix `mmvar' array pointers, part 2. - Reported by Alexei. + The previous commit was incomplete. -2016-07-16 Nikolaus Waxweiler + * src/truetype/ttgxvar.c: Properly initialize sub-array offsets for + `master' also. - * src/truetype/ttinterp.c (Ins_MIRP): Fix copy-and-paste error. +2017-09-21 Werner Lemberg - Problem reported by Hin-Tak Leung. + [truetype] Fix `mmvar' array pointers. -2016-07-15 Werner Lemberg + Without this change, clang's AddressSanitizer reports many runtime + errors due to misaligned addresses. - [autofit] Update and improve segment and edge tracing. + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use multiples of pointer + size for sub-array offsets into `mmvar'. - * src/autofit/afhints.c (af_glyph_hints_dump_segments): Trace - `delta' also. - Don't show first point of segment as a replacement for `pos'; this - is (a) misleading, since the difference to `pos' can be almost - arbitrarily large in corner cases, and (b) it is better to have all - segment data in font units instead of a single value given in output - space coordinates. - Improve layout. - (af_glyph_hints_dump_edges): Show px->units and units->px conversion - values for convenience. - Improve layout. +2017-09-20 Werner Lemberg -2016-07-15 Werner Lemberg + [truetype] Integer overflows. - [autofit] For edges, reject segments wider than 1px (#41334). + Changes triggered by - * src/autofit/afhints.h (AF_SegmentRec): New member `delta'. + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3429 - * src/autofit/aflatin.c (af_latin_hints_compute_segments): Compute - `delta'. - (af_latin_hints_compute_edges): Reject segments with a delta larger - than 0.5px. + * src/truetype/ttinterp.c (Ins_SHPIX, Ins_DELTAP): Use NEG_LONG. + (Ins_MIAP): Use SUB_LONG. -2016-07-14 Werner Lemberg +2017-09-19 Alexei Podtelezhnikov - * include/freetype/freetype.h (FT_IS_NAMED_INSTANCE): New macro. + [build] Fix DLL builds in Visual C++ project. -2016-07-14 Werner Lemberg + * build/windows/vc2010/freetype.vcxproj: Use DynamicLibrary in Debug + and Release configurations. + * include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF) + [_DLL]: Use Visual C++ extensions. - [sfnt] Fix `face_index' value in `FT_Face' for named instances. +2017-09-19 John Tytgat - * src/sfnt/sfobjc.s (sfnt_init_face): Don't strip off higher 16bits. + [cff] Fix family name logic of pure CFF fontdata (#52056). -2016-07-14 Werner Lemberg + 1. If `FamilyName' is present in the CFF font, use this for + FT_Face's `family_name'. + 2. Otherwise, use the face name and chop off any subset prefix. + 3. If at this point FT_Face's `family_name' is set, use this + together with the full name to determine the style. + 4. Otherwise, use `CIDFontName' as FT_Face's `family_name'. + 5. If we don't have a valid style, use "Regular". - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix tracing. + Previously, FT_Face's `family_name' entry for pure CFF fontdata + nearly always was the fontname itself, instead of the `FamilyName' + entry in the CFF font (assuming there is one). -2016-07-14 Behdad Esfahbod + * src/cff/cffobjs.c (cff_face_init) [pure_cff]: Implement it. - [truetype] Fix gxvar delta interpolation. +2017-09-18 Alexei Podtelezhnikov - The coordinates of the base font should be used for interpolation - purposes, NOT the current points (i.e., the result of accumulation - of previous deltas). + [build] Declutter Visual C++ 2010-2017 project. - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Initialize - `points_org' before looping over all tuples. + * build/windows/vc2010/freetype.vcxproj: Use MaxSpeed (/02) + optimization for Release configuration throughout the project. ---------------------------------------------------------------------------- -Copyright 2016 by +Copyright 2017-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/ChangeLog.20 b/modules/freetype2/ChangeLog.20 index 07775fffe..63e3116bd 100644 --- a/modules/freetype2/ChangeLog.20 +++ b/modules/freetype2/ChangeLog.20 @@ -1338,7 +1338,7 @@ (cff_compute_bias): Use `U' for constant. * src/cid/cidload.c (cid_decrypt): Ditto. * src/psaux/psobjs.c (T1_Decrypt): Ditto. - * src/psaux/t1decode.c (T1_Decoder_Parse_CharStrings): Ditto. + * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Ditto. * src/sfnt/ttload.c (TT_Load_Kern): Remove unused `version' variable. * src/sfnt/ttsbit.c (TT_Load_SBit_Image): Remove unused `top' @@ -1524,7 +1524,7 @@ * src/base/ftcalc.c (FT_DivFix): Fixed a bug in the 64-bit code that created incorrect scale factors! - (FT_Round_Fix, FT_CeilFix, FT_FloorFix): Minor improvements. + (FT_RoundFix, FT_CeilFix, FT_FloorFix): Minor improvements. 2001-05-12 Werner Lemberg @@ -2159,7 +2159,7 @@ * include/freetype/internal/t2types.h, include/freetype/internal/cfftypes.h: Changed the structures for - CFF_Encoding and CFF_Encoding for the new implementations of the + CFF_Charset and CFF_Encoding for the new implementations of the charset and encoding parsers in the CFF driver. * src/cff/t2gload.c (t2_lookup_glyph_by_stdcharcode, @@ -2597,7 +2597,7 @@ ---------------------------------------------------------------------------- -Copyright 2000-2016 by +Copyright 2000-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/ChangeLog.21 b/modules/freetype2/ChangeLog.21 index 855c86dde..1adc81783 100644 --- a/modules/freetype2/ChangeLog.21 +++ b/modules/freetype2/ChangeLog.21 @@ -170,7 +170,7 @@ FTC_CACHE_TRYLOOP_END): New macros. * src/cache/ftccache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c - (ftc_snode_compare): Use FT_CACHE_TRYLOOP and FTC_CACE_TRYLOOP_END. + (ftc_snode_compare): Use FT_CACHE_TRYLOOP and FTC_CACHE_TRYLOOP_END. 2005-05-23 Werner Lemberg @@ -617,7 +617,7 @@ `ft_get_adobe_glyph_index', a new function defined in `pstables.h'. (ps_get_macintosh_name, ps_get_standard_strings): Updated. - * src/base/ftobjs.c (FT_Set_Char_Sizes): Handle fractional sizes + * src/base/ftobjs.c (FT_Set_Char_Size): Handle fractional sizes more carefully. This fixes Savannah bug #12263. 2005-03-06 David Turner @@ -1819,7 +1819,7 @@ 2004-08-11 Detlef Würkner * src/base/ftrfork.c (FT_Raccess_Guess) - [!FT_CONFIG_OPTION_GUESSING_EMBEDDED_FORK]: Remove compiler + [!FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK]: Remove compiler warnings. 2004-08-06 Adam Piotrowski @@ -2101,7 +2101,7 @@ 2004-06-08 David Turner - * include/freetype/freetype.h (FT_GlyphMetrics): Move `lsb_delta' + * include/freetype/freetype.h (FT_Glyph_Metrics): Move `lsb_delta' and `rsb_delta' elements to... (FT_GlyphSlotRec): Here to retain binary compatibility with older FreeType versions. @@ -2528,7 +2528,7 @@ * src/truetype/ttgload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include ttgxvar.h. (TT_Process_Simple_Glyph, load_truetype_glyph) - [TT_CONFIG_OPTION_GX_VAR_SUPPORT] :Support GX var fonts. + [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Support GX var fonts. * src/truetype/ttobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include ttgxvar.h. @@ -2864,7 +2864,7 @@ (psh_blues_snap_stem): Don't use blue_shift but blue_threshold. * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD_MAXIMUM): New macro. - (psh_glyph_find_string_points): Use PSH_STRONG_THRESHOLD_MAXIMUM. + (psh_glyph_find_strong_points): Use PSH_STRONG_THRESHOLD_MAXIMUM. (psh_glyph_find_blue_points): New function. Needed for fonts like p052003l.pfb (URW Palladio L Roman) which have flex curves at the base line within blue zones, but the flex curves aren't covered by @@ -3361,7 +3361,7 @@ * src/base/ftstroke.c: Include FT_INTERNAL_OBJECTS_H. (FT_Outline_GetOutsideBorder): Inverse result. - (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_GlyphStrokeBorder): New + (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New functions. (FT_Stroker_EndSubPath): Close path if needed. (FT_Stroker_Set, FT_Stroker_ParseOutline): Use FT_Stroker_Rewind. @@ -3493,8 +3493,8 @@ 2003-12-23 David Turner * include/freetype/internal/ftobjs.h (FT_PAD_FLOOR, FT_PAD_ROUND, - FT_PAD_CEIL, FT_PIX_FLOOR, FT_PIX_ROUND, FT_CEIL): New macros. They - are used to avoid compiler warnings with very pedantic compilers. + FT_PAD_CEIL, FT_PIX_FLOOR, FT_PIX_ROUND, FT_PIX_CEIL): New macros. + They are used to avoid compiler warnings with very pedantic compilers. Note that `(x) & -64' causes a warning if (x) is not signed. Use `(x) & ~63' instead! Updated all related code. @@ -4231,7 +4231,7 @@ (t42_parse_encoding): Use `ft_isdigit'. - * src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_OK if + * src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_Ok if success. 2003-10-05 Werner Lemberg @@ -4355,7 +4355,7 @@ new POSTSCRIPT_NAMES service. * src/psaux/t1decode.h (t1_lookup_glyph_by_stdcharcode, t1_decode_init): Use new POSTSCRIPT_NAMES service. - * src/psaux/t1cmap.h, src/psaux/t1decode.h: Dont' include + * src/psaux/t1cmap.h, src/psaux/t1decode.h: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H. * src/psnames/psmodule.c: Don't include @@ -4749,8 +4749,7 @@ * include/freetype/ttunpat.h: Fixing documentation comment. * include/freetype/config/ftoption.h, devel/ftoption.h - (TT_CONFIG_OPTION_OPTION_COMPILE_UNPATENTED_HINTING): Replaced - with... + (TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING): Replaced with... (TT_CONFIG_OPTION_UNPATENTED_HINTING): This. Updated all users. (TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): Removed. @@ -5024,7 +5023,7 @@ drivers. * src/base/ftobjs.c (FT_Set_Char_Size): Remove redundant code. - (FT_Set_Pixel_Size): Assign value to `metrics' after validation of + (FT_Set_Pixel_Sizes): Assign value to `metrics' after validation of arguments. 2003-06-20 Werner Lemberg @@ -5200,7 +5199,7 @@ * src/cid/cidload.c (cid_load_keyword): Handle T1_FIELD_LOCATION_BBOX. (parse_font_bbox): Commented out. - (cid_field_record): Comment out element for parsing FontBBox. + (cid_field_records): Comment out element for parsing FontBBox. * src/type42/t42parse.c (t42_parse_font_bbox): Commented out. (t42_keywords): Handle FontBBox with T1_FIELD_BBOX, not with @@ -5916,7 +5915,7 @@ 2003-04-23 Werner Lemberg * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Use FT_PtrDist - instead of FT_Uint for `len'. + instead of FT_UInt for `len'. 2003-04-22 Werner Lemberg @@ -6550,7 +6549,7 @@ * src/cache/ftcsbits.c (ftc_sbit_node_load): Fixed a small bug that caused problems with embedded bitmaps. - * src/otlayout/otlayout.h, src/otlyaout/otlconf.h, + * src/otlayout/otlayout.h, src/otlayout/otlconf.h, src/otlayout/otlgsub.c, src/otlayout/otlgsub.h, src/otlayout/otlparse.c, src/otlayout/otlparse.h, src/otlayout/otlutils.h: Updating the OpenType Layout code, adding @@ -6996,7 +6995,7 @@ 2002-09-08 David Turner - Various updates to correctly support sub-pixel rendering. + Various updates to correctly support subpixel rendering. * include/freetype/config/ftmodule.h: Add two renderers for LCD. @@ -7239,7 +7238,7 @@ (ft_smooth_render, ft_smooth_render_lcd, ft_smooth_render_lcd_v): New functions. - (ft_smooth_locd_renderer_class, ft_smooth_lcdv_renderer_class): New + (ft_smooth_lcd_renderer_class, ft_smooth_lcdv_renderer_class): New classes. * src/truetype/ttobjs.c (TT_{Done,New}_GlyphZone): Renamed to... @@ -7376,7 +7375,7 @@ * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fix computation of horiBearingX. - * src/bdf/bdfdrivr.c (BDF_GlyphLoad): Fix computation of + * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix computation of horiBearingY. 2002-08-16 George Williams @@ -7581,7 +7580,7 @@ * include/freetype/cache/ftccache.h, src/cache/ftccache.i, src/cache/ftccache.c [!FTC_CACHE_USE_LINEAR_HASHING]: Removed. - (FTC_CACHE_USE_LINEAR_HASHING: Removed also. + (FTC_CACHE_USE_LINEAR_HASHING): Removed also. FT_CONFIG_OPTION_USE_CMAPS is now the default. @@ -7603,7 +7602,7 @@ * src/cid/cidriver.c (Cid_Get_Char_Index, Cid_Get_Next_Char): Removed. - (t1_cid_driver_class): Updated. + (t1cid_driver_class): Updated. * src/truetype/ttdriver.c (tt_driver_class): Updated. * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Removed (t1_driver_class): Updated. @@ -7698,7 +7697,7 @@ CFF_Done_SubFont -> cff_subfont_done CFF_Load_Font -> cff_font_load CFF_Done_Font -> cff_font_done - CFF_Size_Get_Global_Funcs -> cff_size_get_global_funcs + CFF_Size_Get_Globals_Funcs -> cff_size_get_globals_funcs CFF_Size_Done -> cff_size_done CFF_Size_Init -> cff_size_init CFF_Size_Reset -> cff_size_reset @@ -8636,7 +8635,7 @@ src/pfr/*: New files. * include/freetype/config/ftmodule.h, - include/freetype/internal/fttrace.h, src/Jamefile: Updated. + include/freetype/internal/fttrace.h, src/Jamfile: Updated. * src/type1/t1gload.h (T1_Load_Glyph), src/type1/t1gload.c (T1_Load_Glyph): Fixed incorrect parameter sign-ness in callback @@ -9063,7 +9062,7 @@ FT_Glyph_Name_Requester => FT_Face_GetGlyphNameFunc FT_Name_Index_Requester => FT_Face_GetGlyphNameIndexFunc - * src/base/ftapi.c: New file. It contains backwards compatibility + * src/base/ftapi.c: New file. It contains backward compatibility functions. * include/freetype/internal/psaux.h, src/cid/cidload.c, @@ -9106,7 +9105,7 @@ FT_Realloc_Debug, FT_Free_Debug): Fix compiler warnings. * src/base/ftcalc.c (FT_MulFix): Ditto. * src/cff/cffdrivr.c (cff_get_name_index): Ditto. - * src/cff/cffobjs.c (CFF_Size_Get_Global_Funcs, CFF_Size_Init, + * src/cff/cffobjs.c (CFF_Size_Get_Globals_Funcs, CFF_Size_Init, CFF_GlyphSlot_Init): Ditto. * src/cid/cidobjs.c (CID_GlyphSlot_Init, CID_Size_Get_Globals_Funcs): Ditto. @@ -9247,7 +9246,7 @@ { } PS_StructRec, *PS_Struct; - typedef PS_StructRec T1_Struct; /* backwards-compatibility */ + typedef PS_StructRec T1_Struct; /* backward compatibility */ Hence, we increase the coherency of the source code by effectively using the `Rec' prefix for structure types. @@ -9384,7 +9383,7 @@ * src/pcf/pcfread.c (pcf_seek_to_table_type): Ditto. * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto. (pcf_get_bitmaps): The same for `sizebitmaps'. - * src/psaux/t1decode.c (T1_Decode_Parse_Charstrings): The same for + * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): The same for `orig_y'. (t1operator_seac): Comment out more dead code. * src/pshinter/pshalgo2.c (ps2_hints_apply): Add `DEBUG_HINTER' @@ -9423,7 +9422,7 @@ ---------------------------------------------------------------------------- -Copyright 2002-2016 by +Copyright 2002-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/ChangeLog.22 b/modules/freetype2/ChangeLog.22 index ce08dc98d..4517c3224 100644 --- a/modules/freetype2/ChangeLog.22 +++ b/modules/freetype2/ChangeLog.22 @@ -189,7 +189,7 @@ * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno) [FT_DEBUG_MEMORY]: New global variables, replacing... - (FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and + (FT_MemTableRec) [FT_DEBUG_MEMORY]: Remove `filename' and `line_no'. Update all callers. (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer overflow. @@ -494,7 +494,7 @@ FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection): Declare as FT_LOCAL_DEF. - (FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile + (FTC_MruList_Find, FTC_MruList_Lookup) [!FTC_INLINE]: Compile conditionally. Declare as FT_LOCAL_DEF. @@ -605,14 +605,14 @@ * docs/release: Minor additions and clarifications. - * docs/CHANGES: Updated to reflect many fixes for backwards + * docs/CHANGES: Updated to reflect many fixes for backward compatibility. Still incomplete. 2006-02-26 David Turner * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable conservative rounding of metrics to avoid breaking clients like - Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852). + Pango (see https://bugzilla.gnome.org/show_bug.cgi?id=327852). 2006-02-25 Werner Lemberg @@ -814,7 +814,7 @@ * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE, FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec, FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New, - FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx, + FTC_OldImageDesc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx, ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup, FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the @@ -2318,7 +2318,7 @@ Further information on the SING Glyphlet format can be found at: - http://www.adobe.com/products/indesign/sing_gaiji.html + https://www.adobe.com/content/dam/acom/en/devnet/font/pdfs/5148.SING_Tutorial.pdf * include/freetype/tttags.h (TTAG_SING, TTAG_META): New macros for the OpenType tables `SING' and `META'. These two tables are used in @@ -2458,8 +2458,8 @@ * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'. - * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE), - src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix + * src/gxvalid/gxvmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE), + src/gxvalid/gxvmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix typo. * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c, @@ -2787,7 +2787,7 @@ 2005-06-15 Kirill Smelkov The next release will be 2.2.0, so don't worry about source code - backwards compatibility. + backward compatibility. * include/freetype/ftimage.h (FT_Outline_MoveToFunc, FT_Outline_LineToFunc, FT_Outline_ConicToFunc, @@ -2821,7 +2821,7 @@ ---------------------------------------------------------------------------- -Copyright 2005-2016 by +Copyright 2005-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/ChangeLog.23 b/modules/freetype2/ChangeLog.23 index b8a914bac..85253f112 100644 --- a/modules/freetype2/ChangeLog.23 +++ b/modules/freetype2/ChangeLog.23 @@ -43,7 +43,7 @@ * src/base/ftoutln.c (FT_Outline_New_Internal): The length of FT_Outline->points[] should be numPoints, not 2 * numPoints. Found by Paul Messmer, see - http://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html + https://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html 2010-02-10 Ken Sharp @@ -108,7 +108,7 @@ Preferred family names should be used for legacy systems that can hold only a few faces (<= 4) for a family name. Suggested by Andreas Heinrich. - http://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html + https://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html * include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY, FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define. @@ -607,7 +607,7 @@ (ft_black_render): Initialize `worker->gray_lines' (problem found by valgrind). - (FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Dont' #undef, just + (FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Don't #undef, just comment out. 2009-09-12 suzuki toshiya @@ -631,7 +631,7 @@ The issue of incompatible cast between unsigned long and void* on LLP64 platform is reported by NightStrike from MinGW-Win64 project. See - http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html + https://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html * src/bdf/bdf.h: The type of hashnode->data is changed from void* to size_t. @@ -657,7 +657,7 @@ On LLP64 platform, the conversion from pointer to FT_Fixed need to drop higher 32-bit. Explicit casts are required. Reported by NightStrike from MinGW-w64 project. See - http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html + https://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html * src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly. @@ -671,7 +671,7 @@ * src/raster/rules.mk: Don't handle ftmisc.h. It is needed for stand-alone mode only. - * src/raster/ftmisc.h (FT_MemoryRec , FT_Alloc_Func, FT_Free_Func, + * src/raster/ftmisc.h (FT_MemoryRec, FT_Alloc_Func, FT_Free_Func, FT_Realloc_Func): Copy declarations from ftsystem.h. 2009-09-02 Bram Tassyns @@ -864,7 +864,7 @@ LP64 systems: Higher bits are not used. 16-bit systems: Drop can occur. See - http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html + https://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html These functions will be refined to take FT_ULong flags in next bump with incompatible API change. @@ -929,7 +929,7 @@ type1: Fix a data type mismatching with its source. * include/freetype/internal/t1types.h: The type of - T1_Face->buildchar is matched with T1_Decorder->top. + T1_Face->buildchar is matched with T1_Decoder->top. 2009-07-31 suzuki toshiya @@ -944,7 +944,7 @@ pfr: Fix a data type mismatching with its source. - * src/pfr/pfrtypes.h: The type of PFR_PhysFont->chars_offset + * src/pfr/pfrtypes.h: The type of PFR_PhyFont->chars_offset is extended from FT_UInt32 to FT_Offset, because it is calculated with the pointer difference in pfr_phy_font_load(). @@ -975,8 +975,8 @@ psaux: Fix a data type mismatching with its source. * include/freetype/internal/psaux.h: The type of - T1_DecorderRec.buildchar is matched with - T1_DecorderRec.top. + T1_DecoderRec.buildchar is matched with + T1_DecoderRec.top. 2009-07-31 suzuki toshiya @@ -1765,7 +1765,7 @@ ftgzip.c by FT2 are enabled by default. To use zlib zcalloc() & zfree(), define USE_ZLIB_ZCALLOC. See discussion: - http://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html + https://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html 2009-07-31 suzuki toshiya @@ -1904,7 +1904,7 @@ 2009-07-15 suzuki toshiya Borland C++ compiler patch proposed by Mirco Babin. - http://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html. + https://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html. * builds/exports.mk: Delete unused flags, CCexe_{CFLAGS,LDFLAGS}. Fix APINAMES_C and APINAMES_EXE pathnames to reflect the platform @@ -1929,7 +1929,7 @@ * src/tools/chktrcmp.py: A script to check trace_XXXX macros that are used in C source but undefined in fttrace.h, or defined in fttrace.h but unused in C sources. See - http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html. + https://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html. * docs/DEBUG: Mention on chktrcmp.py. * docs/release: Ditto. @@ -1961,7 +1961,7 @@ * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( t1afm ) and FT_TRACE_DEF( ttbdf ). See - http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html + https://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html 2009-07-09 suzuki toshiya @@ -1975,8 +1975,8 @@ Prevent the overflows by a glyph with too many points or contours. The bug is reported by Boris Letocha . See - http://lists.gnu.org/archive/html/freetype-devel/2009-06/msg00031.html - http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00002.html + https://lists.gnu.org/archive/html/freetype-devel/2009-06/msg00031.html + https://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00002.html * include/freetype/ftimage.h (FT_OUTLINE_CONTOURS_MAX, FT_OUTLINE_POINTS_MAX): New macros to declare the maximum @@ -2001,7 +2001,7 @@ 2009-06-28 suzuki toshiya ftpatent: Fix a bug by wrong usage of service->table_info(). - http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00039.html + https://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00039.html * include/freetype/internal/services/svsfnt.h: Extend FT_SFNT_TableInfoFunc() to take new argument to obtain the offset @@ -2069,7 +2069,7 @@ * builds/unix/configure.raw: Fix a bug in sed script to extract native suffix for binary executables, patch by Peter Breitenlohner. - http://lists.gnu.org/archive/html/freetype-devel/2009-04/msg00036.html + https://lists.gnu.org/archive/html/freetype-devel/2009-04/msg00036.html 2009-06-26 Werner Lemberg @@ -2125,7 +2125,7 @@ code unconditionally. Add support for random numbers and update remaining code accordingly; this should work now. - (t1_operator_seac): Updated. + (t1operator_seac): Updated. * src/psaux/pshrec.c: Include FT_INTERNAL_CALC_H. (ps_hints_t1stem3, t1_hints_stem): Updated. @@ -2594,14 +2594,14 @@ Position Independent Code (PIC) support in smooth renderer. * src/smooth/ftsmooth.h declare ft_smooth_renderer_class, - ft_smooth_lcd_renderer_class and ft_smooth_lcd_v_renderer_class + ft_smooth_lcd_renderer_class and ft_smooth_lcdv_renderer_class using macros from ftrender.h, when FT_CONFIG_OPTION_PIC is defined create and destroy functions will be declared. * src/smooth/ftsmooth.c when FT_CONFIG_OPTION_PIC is defined the following structs: ft_smooth_renderer_class, ft_smooth_lcd_renderer_class - and ft_smooth_lcd_v_renderer_class + and ft_smooth_lcdv_renderer_class will have functions to init or create and destroy them instead of being allocated in the global scope. And macros will be used from ftspic.h in order to access @@ -3469,8 +3469,8 @@ faces includes broken face which FT_Done_Face() cannot free, FT_Done_Library() retries FT_Done_Face() and it can fall into an endless loop. See the discussion: - http://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html - http://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html + https://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html + https://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html 2009-01-07 Werner Lemberg @@ -3492,7 +3492,7 @@ * builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and AC_CANONICAL_TARGET and use $host_os only. A nice explanation for this change can be found at - http://blog.flameeyes.eu/s/canonical-target. + https://blog.flameeyes.eu/s/canonical-target. From Savannah patch #6712. @@ -4156,7 +4156,7 @@ 2008-09-05 suzuki toshiya * builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or - ApplicationService framework is missing. Although this value is not + ApplicationServices framework is missing. Although this value is not used in building of FreeType2, it is written in `freetype2.pc' and `freetype-config'. @@ -4516,7 +4516,7 @@ recommends to add the option only to CFLAGS, LDFLAGS should include it because libfreetype.la is built with -no-undefined. This fixes a bug reported by Ryan Schmidt in MacPorts, - http://trac.macports.org/ticket/15331. + https://trac.macports.org/ticket/15331. 2008-06-21 Werner Lemberg @@ -4861,7 +4861,7 @@ 2008-04-14 Werner Lemberg * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to - `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'. From Savannah + `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZW'. From Savannah bug #22909. 2008-04-13 Werner Lemberg @@ -5243,7 +5243,7 @@ functions related to cmap type 14 support to the `FT_Object_ActionName' scheme: - FT_Get_Char_Variant_index -> FT_Face_GetCharVariantIndex + FT_Get_Char_Variant_Index -> FT_Face_GetCharVariantIndex FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar @@ -5383,7 +5383,7 @@ * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro. (FT_VALIDATE_OT): Updated. - * src/otvalid/otmath.c: New file. + * src/otvalid/otvmath.c: New file. * src/otvalid/otvalid.c: Include otvmath.c. * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table. @@ -5530,7 +5530,7 @@ * src/truetype/ttinterp.c (Ins_IUP): Add missing variable initialization. - * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an + * src/autofit/aflatin.c (af_latin_metrics_init_blues): Get rid of an infinite loop in the case of degenerate fonts. 2007-06-26 Rahul Bhalerao @@ -5965,7 +5965,7 @@ * include/freetype/config/ftstdlib.h, include/freetype/internal/ftobjs.h: As suggested by Graham Asher, ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values - instead on relying on the locale-dependent functions provided by + instead of relying on the locale-dependent functions provided by . 2007-05-15 Graham Asher @@ -6187,13 +6187,13 @@ * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent 32bit unsigned long overflow by 64bit filesize on LP64 platform, as proposed by Sean McBride: - http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html + https://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html 2007-03-22 suzuki toshiya * builds/unix/ftconfig.in: Suppress SGI compiler's warning against setjmp, proposed by Sean McBride: - http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html + https://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html 2007-03-19 suzuki toshiya @@ -6852,7 +6852,7 @@ * include/freetype/internal/services/svotval.h: Add `volatile' to sync with the modification by Jens Claudius on 2006-08-22; cf. - http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5 + https://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5 2006-12-15 suzuki toshiya @@ -6876,7 +6876,7 @@ * src/base/ftobjs.c: Improvement of resource fork handler for POSIX, cf. - http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html + https://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font format or .dfont, to simulate the face index number counted by ftmac.c. (IsMacResource): Return the number of scalable faces correctly. @@ -7023,7 +7023,7 @@ (_ft_lcd_filter_fir): This. Update parameters. (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function. - (FT_Library_Set_LcdFilter): Update parameters. + (FT_Library_SetLcdFilter): Update parameters. Handle new filter modes. * include/internal/ftobjs.h: Include FT_LCD_FILTER_H. @@ -7366,7 +7366,7 @@ to recognize a few fonts that require the automatic unpatented loader. - * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased + * src/smooth/ftgrays.c: Optimize the performance of the anti-aliased rasterizer. The speed improvement is between 15% and 25%, depending on the font data. @@ -7524,7 +7524,7 @@ `ft_validator_run' wrapping `setjmp' can cause a crash, as found by Jens: - http://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm. + https://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm. * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'. It reverts the change introduced on 2005-08-20. @@ -7721,7 +7721,7 @@ 2006-06-24 Eugeniy Meshcheryakov Fix two hinting bugs as reported in - http://lists.gnu.org/archive/html/freetype-devel/2006-06/msg00057.html. + https://lists.gnu.org/archive/html/freetype-devel/2006-06/msg00057.html. * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add `first_point' member. @@ -7761,7 +7761,7 @@ should return `FT_Err_Unimplemented_Feature' if validation service is unavailable (disabled in `modules.cfg'). It is originally suggested by David Turner, cf. - http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html + https://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return FT_Err_Unimplemented_Feature if TrueTypeGX validation service is @@ -7857,7 +7857,7 @@ 2006-05-18 Werner Lemberg * src/truetype/ttgload.c (TT_Load_Composite_Glyph) - [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again. + [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again. 2006-05-17 David Turner @@ -7932,7 +7932,7 @@ ---------------------------------------------------------------------------- -Copyright 2006-2016 by +Copyright 2006-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/ChangeLog.24 b/modules/freetype2/ChangeLog.24 index cbbfd8c6e..44abc4060 100644 --- a/modules/freetype2/ChangeLog.24 +++ b/modules/freetype2/ChangeLog.24 @@ -335,7 +335,7 @@ * include/freetype/ftmoderr.h: Fix commit from 2013-03-11. - The previous version was not backwards compatible. Reported by + The previous version was not backward compatible. Reported by Behdad. 2013-03-14 Werner Lemberg @@ -744,7 +744,7 @@ 2013-01-16 David 'Digit' Turner - [truetype] Improve sub-pixel code. + [truetype] Improve subpixel code. This patches fixes many issues with the ttsubpix implementation. @@ -784,7 +784,7 @@ and `const' where appropriate. (X_SCALING_Rules, X_SCALING_RULES_SIZE): Renamed to... - (spu_X_SCALING_Rules, SPH_X_SCALING_RULES_SIZE): This. + (sph_X_SCALING_Rules, SPH_X_SCALING_RULES_SIZE): This. Update all users. 2013-01-12 Alexei Podtelezhnikov @@ -1860,10 +1860,10 @@ Fix `checking if gcc static flag -static works' test. On my linux build tree, I receive yes answer in every package I - build except freetype for this test checking if gcc static flag + build except FreeType for this test checking if gcc static flag `-static' works - On freetype, no is received, unless bzip2 and zlib are disabled using + In FreeType, no is received, unless bzip2 and zlib are disabled using ./configure --without-bzip2 --without-zlib @@ -1977,7 +1977,7 @@ Most of the code is based on the ClearType whitepaper written by Greg Hitchcock - http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx + https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx which gives a detailed overview of the necessary changes to the Microsoft rasterizer so that older fonts are supported. However, a @@ -2103,7 +2103,7 @@ NEC FA family dated in 1996 have different checksum. Reported by Johnson Y. Yan ; see - http://lists.gnu.org/archive/html/freetype-devel/2012-06/msg00023.html + https://lists.gnu.org/archive/html/freetype-devel/2012-06/msg00023.html * src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): 4 sets of fpgm & prep table checksums for FA-Gothic, FA-Minchou, @@ -2117,7 +2117,7 @@ Problem reported by jola ; see - http://lists.gnu.org/archive/html/freetype-devel/2012-05/msg00036.html + https://lists.gnu.org/archive/html/freetype-devel/2012-05/msg00036.html * src/raster/ftraster.c (SMulDiv_No_Round): New macro. (Line_Up): Use it. @@ -2141,7 +2141,7 @@ * include/freetype/ftoutln.h (FT_Outline_EmboldenXY): Define it. * src/base/ftoutln.c (FT_Outline_EmboldenXY): Implement it, using a - simplified embolding algorithm. + simplified emboldening algorithm. (FT_Outline_Embolden): Make it a special case of `FT_Outline_EmboldenXY' @@ -2603,7 +2603,7 @@ See discussion starting at - http://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00037.html + https://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00037.html * src/smooth/ftgrays.c: s/TBand/gray_TBand/. * src/raster/ftraster.c: s/TBand/black_TBand/. @@ -2616,7 +2616,7 @@ `outline.flags' so that this information is preserved. See discussion starting at - http://lists.gnu.org/archive/html/freetype-devel/2012-02/msg00046.html + https://lists.gnu.org/archive/html/freetype-devel/2012-02/msg00046.html 2012-02-11 Werner Lemberg @@ -2677,7 +2677,7 @@ [raccess] Modify for PIC build. Based on the patch provided by Erik Dahlstrom , - http://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00010.html + https://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00010.html Also `raccess_guess_table[]' and `raccess_rule_by_darwin_vfs()' are renamed with `ft_' suffixes. @@ -2941,10 +2941,10 @@ [type42] Remove casts. - * src/type42/t42driver.c (t42_driver_class): Remove all casts and + * src/type42/t42drivr.c (t42_driver_class): Remove all casts and update affected functions. - * src/type42/t42objs.c, src/type42/t42objs.h: Updated for t42driver + * src/type42/t42objs.c, src/type42/t42objs.h: Updated for t42 driver changes. 2011-11-30 Werner Lemberg @@ -3127,7 +3127,7 @@ According to - http://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html + https://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html this should be mentioned explicitly. @@ -3456,7 +3456,7 @@ See - http://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00049.html + https://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00049.html for some comparison images. @@ -3556,7 +3556,7 @@ See - http://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00001.html + https://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00001.html for example documents. The FreeType stroker now produces results very similar to that produced by GhostScript and Distiller for these @@ -3776,7 +3776,7 @@ [gxvalid] Fix gcc4.6 compiler warnings in gxvtrak.c. * src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): - Check different entries pointing same traking value. + Check different entries pointing same tracking value. (gxv_trak_validate): Remove unused variable `table_size'. 2011-06-14 suzuki toshiya @@ -3788,12 +3788,12 @@ (gxv_morx_chain_validate): Conditionalize unvalidated variable `defaultFlags'. - * src/gxvalid/gxmorx0.c + * src/gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_entry_validate): Conditionalize unvalidated variables; `markFirst', `dontAdvance', `markLast', `verb'. - * src/gxvalid/gxmorx1.c + * src/gxvalid/gxvmorx1.c (gxv_morx_subtable_type1_entry_validate): Conditionalize unvalidated variables; `setMark', `dontAdvance'. @@ -3826,11 +3826,11 @@ (gxv_mort_chain_validate): Conditionalize unvalidated variable `defaultFlags'. - * src/gxvalid/gxmort0.c + * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate): Check the conflict of the marks for the glyphs. - * src/gxvalid/gxmort1.c + * src/gxvalid/gxvmort1.c (gxv_mort_subtable_type1_offset_to_subst_validate): Local variables `min_gid', `max_gid' are replaced by variables in the validator. @@ -4005,9 +4005,9 @@ aligned, bluezones for CJK Ideographs are calculated from sample glyphs. At present, vertical bluezones (bluezones to align vertical stems) are disabled by default. For detail, see - http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00070.html - http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00092.html - http://lists.gnu.org/archive/html/freetype-devel/2011-05/msg00001.html + https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00070.html + https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00092.html + https://lists.gnu.org/archive/html/freetype-devel/2011-05/msg00001.html * include/freetype/internal/fttrace.h: New trace component `afcjk'. * src/autofit/afcjk.h (AF_CJK{Blue,Axis,Metric}Rec): Add CJK version @@ -4029,7 +4029,7 @@ af_latin_hints_compute_blue_edges. (af_cjk_metrics_init_blues): New function, CJK version of af_latin_metrics_init_blues. - (af_cjk_hints_edges): Add code to align the edge stems to blue zones. + (af_cjk_hint_edges): Add code to align the edge stems to blue zones. * src/autofit/afindic.c (af_indic_metrics_init): Take AF_CJKMetric instead of AF_LatinMetric, and initialize as af_cjk_metrics_init. @@ -4075,8 +4075,8 @@ the TrueType font header. Some bad PDF generators write wrong values. For details see examples and benchmark tests of the latency by recalculation: - http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00091.html - http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00096.html + https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00091.html + https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00096.html 2011-04-30 suzuki toshiya @@ -4109,7 +4109,7 @@ Because some PDF generators mangle the family name badly, the trickyness check by the checksum should be invoked always. For sample PDF, see - http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00073.html + https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00073.html * src/truetype/ttobjs.c (tt_check_trickyness): Even when tt_check_trickyness_family() finds no trickyness, @@ -4146,8 +4146,8 @@ When there are too many stems to preserve their gaps in the rasterization of CJK Ideographs at a low resolution, blur the stems instead of showing clumped stems. See - http://lists.gnu.org/archive/html/freetype-devel/2011-02/msg00011.html - http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00046.html + https://lists.gnu.org/archive/html/freetype-devel/2011-02/msg00011.html + https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00046.html for details. * src/autofit/afcjk.c (af_cjk_hint_edges): Store the position of @@ -4343,7 +4343,7 @@ [cache] Fix an off-by-one bug in `FTC_Manager_RemoveFaceID'. Found by , see detail in - http://lists.gnu.org/archive/html/freetype/2011-01/msg00023.html + https://lists.gnu.org/archive/html/freetype/2011-01/msg00023.html * src/cache/ftccache.c (FTC_Cache_RemoveFaceID): Check the node buckets[cache->p + cache->mask] too. @@ -4464,7 +4464,7 @@ Johnson Y. Yan. The bug report by Qt developers is considered too. - http://bugreports.qt.nokia.com/browse/QTBUG-6521 + https://bugreports.qt.io/browse/QTBUG-6521 2011-01-15 Werner Lemberg @@ -4923,7 +4923,7 @@ Partially undo change from 2010-10-15 by using ONE_PIXEL/4; this has been tested with demo images sent to the mailing list. See - http://lists.gnu.org/archive/html/freetype-devel/2010-10/msg00055.html + https://lists.gnu.org/archive/html/freetype-devel/2010-10/msg00055.html and later mails in this thread. @@ -4943,7 +4943,7 @@ Problem reported by Tom Bishop ; see thread starting with - http://lists.gnu.org/archive/html/freetype/2010-10/msg00049.html + https://lists.gnu.org/archive/html/freetype/2010-10/msg00049.html * src/raster/ftraster.c (Line_Up): Replace FMulDiv with SMulDiv since the involved multiplication exceeds 32 bits. @@ -5007,7 +5007,7 @@ normal clients. For the history of these macros, see the investigation: - http://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html + https://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html 2010-10-24 suzuki toshiya @@ -5054,7 +5054,7 @@ by Darwin VFS are skipped. It reduces the warnings of the deprecated resource fork access method by recent Darwin kernel. Fix MacPorts ticket #18859: - http://trac.macports.org/ticket/18859 + https://trac.macports.org/ticket/18859 * src/base/ftobjs.c (load_face_in_embedded_rfork): When `FT_Stream_New' returns FT_Err_Cannot_Open_Stream, it @@ -5182,7 +5182,7 @@ [smooth] Fix splitting of cubics for negative values. Reported by Róbert Márki ; see - http://lists.gnu.org/archive/html/freetype/2010-09/msg00019.html. + https://lists.gnu.org/archive/html/freetype/2010-09/msg00019.html. * src/smooth/ftgrays.c (gray_render_cubic): Fix thinko. @@ -5349,7 +5349,7 @@ Ignore the environmental setting of LIBTOOL. Patch is suggested by Adrian Bunk, to prevent unexpected reflection of environmental LIBTOOL. See: - http://savannah.nongnu.org/patch/?7290 + https://savannah.nongnu.org/patch/?7290 * builds/unix/unix-cc.in: LIBTOOL is unconditionally set to $(FT_LIBTOOL_DIR)/libtool. FT_LIBTOOL_DIR is set to $(BUILD_DIR) @@ -5406,8 +5406,8 @@ for nameless fonts is safer for PDFs including embedded Chinese fonts. Written by David Bevan, see: - http://lists.gnu.org/archive/html/freetype-devel/2010-08/msg00021.html - http://lists.freedesktop.org/archives/poppler/2010-August/006310.html + https://lists.gnu.org/archive/html/freetype-devel/2010-08/msg00021.html + https://lists.freedesktop.org/archives/poppler/2010-August/006310.html * src/truetype/ttobjs.c (tt_check_trickyness): If a NULL pointer by nameless font is given, TRUE is returned to enable hinting. @@ -5669,7 +5669,7 @@ Use defined macros to set {platform,encoding}_id. * src/bdf/bdfdrivr.c: Include ttnameid.h and use macros to - set charmap.{platfom,encoding}_id. + set charmap.{platform,encoding}_id. * src/pcf/pcfdrivr.c: Ditto. * src/winfonts/winfnt.c: Ditto. * src/type1/t1objs.c: Ditto. @@ -5792,8 +5792,8 @@ * src/cff/cffobjs.c (cff_face_init): Check error value by `FT_CMap_New'. * src/pfr/pfrobjs.c (pfr_face_init): Ditto. - * src/type1/t1jobjs.c (T1_Face_Init): Ditto. - * src/type42/t42jobjs.c (T42_Face_Init): Ditto. + * src/type1/t1objs.c (T1_Face_Init): Ditto. + * src/type42/t42objs.c (T42_Face_Init): Ditto. 2010-07-03 Werner Lemberg @@ -5968,7 +5968,7 @@ * src/smooth/ftgrays.c (gray_render_cubic): Fix algorithm. The previous version was too aggressive, as demonstrated in - http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00020.html. + https://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00020.html. 2010-06-24 Werner Lemberg @@ -6065,7 +6065,7 @@ simplified algorithm to find out whether the spline can be replaced with two straight lines. See this thread for more: - http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00000.html + https://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00000.html 2010-06-09 Werner Lemberg @@ -6220,7 +6220,7 @@ Add new function `FT_Library_SetLcdFilterWeights'. This is based on code written by Lifter - . It fixes + . It fixes FreeDesktop bug #27386. * src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): New @@ -6344,7 +6344,7 @@ ---------------------------------------------------------------------------- -Copyright 2010-2016 by +Copyright 2010-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/ChangeLog.25 b/modules/freetype2/ChangeLog.25 index e85be5d30..59cf2bfed 100644 --- a/modules/freetype2/ChangeLog.25 +++ b/modules/freetype2/ChangeLog.25 @@ -112,8 +112,8 @@ Original patch is designed by Werner Lemberg. Extra part for otvalid and gxvalid are added by suzuki toshiya, see discussion: - http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00002.html - http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00007.html + https://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00002.html + https://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00007.html * include/internal/ftvalid.h: Introduce FT_THROW() in FT_INVALID_(). * src/gxvalid/gxvcommn.h: Ditto. @@ -144,7 +144,7 @@ for Borland's bug tracker entry. Reported by Yuliana Zigangirova , - http://lists.gnu.org/archive/html/freetype-devel/2014-04/msg00001.html. + https://lists.gnu.org/archive/html/freetype-devel/2014-04/msg00001.html. * include/internal/ftvalid.h (FT_ValidatorRec), src/smooth/ftgrays.c (gray_TWorker_): Move `ft_jmp_buf' field to be the first element. @@ -244,7 +244,7 @@ All public FreeType enumeration and flag values are uppercase... - * include/tttables.h (FT_Sfnt_Tag): Implement it. For backwards + * include/tttables.h (FT_Sfnt_Tag): Implement it. For backward compatibility, retain the old values as macros. * src/base/ftfstype.c (FT_Get_FSType_Flags), src/sfnt/sfdriver.c @@ -1223,7 +1223,7 @@ 2014-10-14 Werner Lemberg - [autofit] Adjust Devenagari character range. + [autofit] Adjust Devanagari character range. * src/autofit/afranges.c (af_deva_uniranges): Omit characters that are common to all other Indic scripts. @@ -2116,7 +2116,7 @@ builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle HarfBuzz. - * docs/INSTALL.UNIX: Document interdependency of Freetype with + * docs/INSTALL.UNIX: Document interdependency of FreeType with HarfBuzz. 2014-02-28 Alexei Podtelezhnikov @@ -2669,8 +2669,8 @@ with Carbon framework is incompatible with that by FreeType 2 without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung. - http://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html - http://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html + https://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html + https://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch `sort_by_res_id' to control the fragmented resource ordering. @@ -3181,7 +3181,7 @@ Problem reported by Hin-Tak Leung ; see - http://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html + https://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html for details. @@ -3556,7 +3556,7 @@ Suggested by Akira Tagoh, see - http://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html + https://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html * src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument' error if the font could be opened but non-zero `face_index' is @@ -4767,7 +4767,7 @@ * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast. * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto. - * src/cff/cf2arrst.c (cf2_arrstack_setNum_Elements): Use cast. + * src/cff/cf2arrst.c (cf2_arrstack_setNumElements): Use cast. * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto. * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto. @@ -5145,7 +5145,7 @@ ---------------------------------------------------------------------------- -Copyright 2013-2016 by +Copyright 2013-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/ChangeLog.26 b/modules/freetype2/ChangeLog.26 index a3d78f6c7..ea89e91ab 100644 --- a/modules/freetype2/ChangeLog.26 +++ b/modules/freetype2/ChangeLog.26 @@ -324,7 +324,7 @@ 2016-06-20 Alexei Podtelezhnikov - [smooth] Sanitize memory managenent. + [smooth] Sanitize memory management. * src/smooth/ftgrays.c (gray_convert_glyph): Cleaned up. @@ -434,7 +434,7 @@ * src/truetype/ttinterp.c (Ins_SHPIX): Allow SHPIX to move points in the twilight zone. Otherwise, treat SHPIX the same as DELTAP. Unbreaks various fonts such as older versions of Rokkitt and DTL - Argo T Light that would glitch severly after calling ALIGNRP after a + Argo T Light that would glitch severely after calling ALIGNRP after a blocked SHPIX. 2016-05-30 Werner Lemberg @@ -460,7 +460,7 @@ [smooth] Shrink bisection stack. The convergence of Bézier flatteners is fast with the deviation - from straight line being assymptotically cut 4-fold on each bisection. + from straight line being asymptotically cut 4-fold on each bisection. This justifies smaller bisection stack size. * src/smooth/ftgrays.c (gray_TWorker): Remove common `bez_stack'. @@ -563,26 +563,26 @@ * src/truetype/ttinterp.c (SUBPIXEL_HINTING): Replaced by... (NO_SUBPIXEL_HINTING, SUBPIXEL_HINTING_INFINALITY, SUBPIXEL_HINTING_MINIMAL): ...new macros. - (Direct_Move, Direct_Move_X, Direct_Move_Y): Handle backwards + (Direct_Move, Direct_Move_X, Direct_Move_Y): Handle backward compatibility. Updated. (Ins_RS, Ins_FDEF, Ins_ENDF, Ins_CALL, Ins_LOOPCALL, Ins_MD): Updated. (Ins_INSTCTRL): Handle native ClearType mode flag. Updated. - (Ins_FLIPPT, Ins_FLIPRGON, Ins_FLIPRGOFF): Handle backwards + (Ins_FLIPPT, Ins_FLIPRGON, Ins_FLIPRGOFF): Handle backward compatibility. (Move_Zp2_Point): Ditto. (Ins_SHP): Updated. - (Ins_SHPIX): Handle backwards compatibility. + (Ins_SHPIX): Handle backward compatibility. Updated. (Ins_MSIRP, Ins_MDAP, Ins_MIAP, Ins_MDRP, Ins_MIRP): Updated. (Ins_ALIGNRP): Updated. - (Ins_IUP, Ins_DELTAP): Handle backwards compatibility. + (Ins_IUP, Ins_DELTAP): Handle backward compatibility. Updated. (Ins_GETINFO): Handle v38 flags. Updated. - (TT_RunIns): Handle backwards compatibility mode. + (TT_RunIns): Handle backward compatibility mode. Updated. 2016-05-17 Nikolaus Waxweiler @@ -606,16 +606,16 @@ * src/truetype/ttinterp.h (TT_ExecContextRec): Define new fields `subpixel_hinting_lean', `vertical_lcd_lean', - `backwards_compatibility', `iupx_called', iupy_called', and + `backward_compatibility', `iupx_called', iupy_called', and `grayscale_cleartype' for new hinting mode. * src/truetype/ttdriver.c (tt_property_set): Handle v38 and v40 interpreters conditionally. * src/truetype/ttgload.c (TT_Hint_Glyph): Save phantom points unless - in v38 backwards compatibility mode. + in v38 backward compatibility mode. Updated. - (compute_glyph_metrics): Add v38 backwards compatibility mode + (compute_glyph_metrics): Add v38 backward compatibility mode constraint for adjusting advance widths. Updated. (tt_loader_init): Handle new flags `subpixel_hinting_lean', @@ -663,7 +663,7 @@ The previous fix for #46372 misunderstood a composite glyph referring same component twice as a recursive reference. See the discussion - http://lists.gnu.org/archive/html/freetype/2016-05/msg00000.html + https://lists.gnu.org/archive/html/freetype/2016-05/msg00000.html Thanks to Khaled Hosny for finding this issue. @@ -788,7 +788,7 @@ proper blue zones can't be defined. However, there is already a proposal submitted to Unicode; see - http://www.unicode.org/L2/L2016/16034-n4707-georgian.pdf + https://www.unicode.org/L2/L2016/16034-n4707-georgian.pdf Additionally, due to historical reasons, Unicode treats Khutsuri as the same script as Mkhedruli, and so does OpenType. However, since @@ -979,7 +979,7 @@ * src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move band clipping from here. (gray_conic_to, gray_cubic_to): ... to here. - (gray_rander_line, gray_render_scanline): Initialize variables closer + (gray_render_line, gray_render_scanline): Initialize variables closer to their use. 2016-03-17 Alexei Podtelezhnikov @@ -1482,7 +1482,7 @@ Still handle `__FTERRORS_H__'. - We need this for backwards compatibility. + We need this for backward compatibility. Problem reported by John Emmas . @@ -2478,7 +2478,7 @@ Problem reported by David Capello ; see - http://lists.nongnu.org/archive/html/freetype-devel/2015-10/msg00108.html + https://lists.nongnu.org/archive/html/freetype-devel/2015-10/msg00108.html for details. @@ -3408,7 +3408,7 @@ [raster,smooth] Microoptimizations. * src/raster/ftraster.c (Insert_Y_Turn, Finalize_Profile_Table, - Bezier_Up, ): Use do-while loops. + Bezier_Up): Use do-while loops. * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line, gray_convert_glyph): Ditto. @@ -3813,7 +3813,7 @@ See - http://lists.nongnu.org/archive/html/freetype-devel/2015-07/msg00008.html + https://lists.nongnu.org/archive/html/freetype-devel/2015-07/msg00008.html for a rationale. @@ -3932,7 +3932,7 @@ This change is a result of a discussion thread on freetype-devel - http://lists.nongnu.org/archive/html/freetype-devel/2015-06/msg00041.html + https://lists.nongnu.org/archive/html/freetype-devel/2015-06/msg00041.html Re-introduce the `freetype2' subdirectory for all FreeType header files after installation, and rename the `freetype2' subdirectory in @@ -4114,7 +4114,7 @@ Problem reported by Grissiom ; in - http://lists.nongnu.org/archive/html/freetype/2015-05/msg00013.html + https://lists.nongnu.org/archive/html/freetype/2015-05/msg00013.html there is an example code to trigger the bug. @@ -4222,7 +4222,7 @@ [truetype] Support selector index 3 of the INSTCTRL instruction. - This flag activates `native ClearType hinting', disabling backwards + This flag activates `native ClearType hinting', disabling backward compatibility mode as described in Greg Hitchcocks whitepaper. In other words, it enables unrestricted functionality of all TrueType instructions in ClearType. @@ -4292,7 +4292,7 @@ This follows the OpenType 1.7 specification. See - http://tug.org/pipermail/tex-live/2015-April/036634.html + https://tug.org/pipermail/tex-live/2015-April/036634.html for a discussion. @@ -5447,7 +5447,7 @@ [raster] Remove 5-level gray AA mode from monochrome rasterizer. It was off by default and couldn't be turned on at runtime. And the - smooth rasterizer superceded it over ten years ago. No point in + smooth rasterizer superseded it over ten years ago. No point in keeping. Comments suggested that it was there for compatibility with FreeType 1. @@ -5695,7 +5695,7 @@ ---------------------------------------------------------------------------- -Copyright 2015-2016 by +Copyright 2015-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/ChangeLog.27 b/modules/freetype2/ChangeLog.27 new file mode 100644 index 000000000..0e82b2fb3 --- /dev/null +++ b/modules/freetype2/ChangeLog.27 @@ -0,0 +1,2106 @@ +2016-12-30 Werner Lemberg + + * Version 2.7.1 released. + ========================= + + + Tag sources with `VER-2-7-1'. + + * docs/VERSION.TXT: Add entry for version 2.7.1. + + * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, + builds/windows/vc2005/index.html, + builds/windows/vc2008/freetype.vcproj, + builds/windows/vc2008/index.html, + builds/windows/vc2010/freetype.vcxproj, + builds/windows/vc2010/index.html, + builds/windows/visualc/freetype.dsp, + builds/windows/visualc/freetype.vcproj, + builds/windows/visualc/index.html, + builds/windows/visualce/freetype.dsp, + builds/windows/visualce/freetype.vcproj, + builds/windows/visualce/index.html, + builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2005-ce/index.html, + builds/wince/vc2008-ce/freetype.vcproj, + builds/wince/vc2008-ce/index.html: s/2.7/2.7.1/, s/27/271/. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. + + * builds/unix/configure.raw (version_info): Set to 19:0:13. + * CMakeLists.txt (VERSION_PATCH): Set to 1. + +2016-12-30 Werner Lemberg + + [ftfuzzer] Replace `rand' with an xorshift algorithm. + + * src/tools/ftfuzzer/ftfuzzer.cc: Don't include `stdlib.h'. + (Random): Implement and use a 32bit `xorshift' algorithm. + +2016-12-30 Werner Lemberg + + [ftfuzzer] Restrict number of tested bitmap strikes. + + Malformed fonts often have large values for the number of bitmap + strikes, and FreeType doesn't check the validity of all bitmap + strikes in advance. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=353 + + * src/tools/ftfuzzer/ftfuzzer.cc: Include `stdlib.h' for `rand'. + (Random): Small class to provide n randomly selected numbers + (without repetition) out of the value set [1,N]. + (LLVMFuzzerTestOneInput): Use it to test only up to 10 bitmap + strikes. + +2016-12-29 Werner Lemberg + + [truetype] Variation font API stability issues. + + Make some functions work before a call to `TT_Set_MM_Blend'. + + * src/truetype/ttgxvar.c (tt_hadvance_adjust): Exit immediately if + we don't blend. + (TT_Get_MM_Blend, TT_Get_Var_Design): Return default values if we + don't blend. + +2016-12-29 Werner Lemberg + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis data. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=348 + +2016-12-29 Werner Lemberg + + [truetype] Tracing fixes. + + * src/truetype/ttgxvar.c (tt_hadvance_adjust): Emit correct + information. + (TT_Set_Var_Design): Fix typo. + (TT_Get_Var_Design): Fix typos. + +2016-12-29 Werner Lemberg + + */*: Use `0.5f' for tracing 16.16 numbers. + +2016-12-29 Werner Lemberg + + [pcf] Protect against gzip bombs. + + Fix suggested by Kostya; reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=345 + + * src/pcf/pcfread.c (pcf_read_TOC): Limit number of TOC entries to + 1024. + +2016-12-28 Werner Lemberg + + [psnames] Only declare, not define, data in `pstables.h' (#49949). + + Pdfium includes `pstables.h' a second time; moving the definition + from `pstables.h' to `psmodule.c' saves more than 60kByte data + segment space for this case. + + * src/tools/glnames.py (StringTable::dump, + StringTable::dump_sublist, dump_encoding, dump_array): Emit + additional code to only define tables if `DEFINE_PS_TABLES' is set. + + * src/psnames/pstables.h: Regenerated. + * src/psnames/psmodule.c (DEFINE_PS_TABLES): Define. + +2016-12-28 Werner Lemberg + + [cff] Catch `blend' op in non-variant fonts. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=334 + + * src/cff/cf2intrp.c (cf2_interpT2CharString) : Don't + allow `blend' op for non-variant fonts. + +2016-12-28 Werner Lemberg + + [cff] Better check of number of blends. + + * src/cff/cf2intrp.c (cf2_interpT2CharString) , + src/cff/cffparse.c (cff_parse_blend): Compare number of blends with + stack size. + +2016-12-27 Werner Lemberg + + Documentation updates. + + * docs/CHANGES: Add missing information. + + * docs/formats.txt: Rewritten and updated. + +2016-12-27 Werner Lemberg + + [truetype, type1] Implement `FT_Get_Var_Design_Coordinates'. + + * src/truetype/ttgxvar.c (TT_Get_Var_Design): Implement. + (TT_Set_Var_Design): Fix tracing. + + * src/type1/t1load.c (T1_Get_Var_Design): Implement. + +2016-12-24 Werner Lemberg + + * src/truetype/ttpload.c (tt_face_load_hdmx): Ignore `version'. + + Problem reported by å¼µä¿ŠèŠ <418092625@qq.com>. + +2016-12-24 Werner Lemberg + + * src/sfnt/ttsbit.c (tt_face_load_sbit): Allow more version values. + + Some fonts seem to have the `version' field in the wrong byte order. + + Problem reported by å¼µä¿ŠèŠ <418092625@qq.com>. + +2016-12-24 Werner Lemberg + + * src/truetype/ttpload.c (tt_face_load_loca): Sanitize table length. + + This trivial fix allows us to accept more fonts. + + Problem reported by å¼µä¿ŠèŠ <418092625@qq.com>. + +2016-12-24 Werner Lemberg + + * src/sfnt/sfobjs.c (sfnt_init_face): Fix tracing. + +2016-12-22 Werner Lemberg + + * CMakeLists.txt: Make it work with cmake 2.8.11.2 (#49909). + +2016-12-22 Werner Lemberg + + Ensure used preprocessor symbols are defined (#49790). + + * builds/unix/ftconfig.in, builds/vms/ftconfig.h, + include/freetype/config/ftconfig.h: Check `__GNUC__', `__IBMC__', + and `__SUNPRO_C' correctly. + +2016-12-22 Werner Lemberg + + * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Check `count'. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=308 + +2016-12-22 Werner Lemberg + + [cff] Protect against invalid `vsindex' and `blend' values. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=305 + + * src/cff/cf2intrp.c (cf2_interpT2CharString) : Implement it. + +2016-12-22 Werner Lemberg + + [ftfuzzer] Always use Adobe CFF engine. + + * src/tools/ftfuzzer/ftfuzzer.cc (FT_Global::FT_Global): Implement + it. + +2016-12-21 Werner Lemberg + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Thinko. + + I should really stop coding late in the evening... + + Thanks again to Ben for checking. + +2016-12-21 Werner Lemberg + + [autofit] Support variation fonts. + + (This ChangeLog entry was added later on.) + + * src/autofit/afglobal.c (af_face_globals_free): Remove useless + code. + + * src/base/ftmm.c (FT_Set_MM_Design_Coordinates, + * FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates, + FT_Set_Var_Blend_Coordinates): Finalize + auto-hinter data to enforce recomputation. Note that this is a + brute-force method which should be improved. + +2016-12-21 Werner Lemberg + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Thinko. + + Don't apply deltas twice for non-phantom points. + + Spotted by Ben Wagner. + +2016-12-21 Werner Lemberg + + [cff, truetype] Another try for #49829. + + * src/cff/cffdrivr.c: Don't include + `FT_SERVICE_METRICS_VARIATIONS_H'. + (cff_get_advances): Use `ttface->variation_support'. + + * src/truetype/ttdriver.c (tt_get_advances): Use + `ttface->variation_support'. + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph, + load_truetype_glyph): Use `ttface->variation_support'. + +2016-12-21 Werner Lemberg + + [truetype, sfnt] Introduce font variation flags to `TT_Face'. + + * include/freetype/internal/tttypes.h (TT_FACE_FLAG_VAR_XXX): + New macros describing available functionality of various OpenType + tables related to font variation. + (TT_Face): New fields `variation_support' and `mvar_support', + replacing and extending `use_fvar'. + + * src/sfnt/sfobjs.c (sfnt_init_face, sfnt_load_face): Use + `variation_support'. + + * src/truetype/ttgxvar.c (ft_var_load_hvar): Set `variation_support' + field. + (TT_Vary_Apply_Glyph_Deltas): Updated. + +2016-12-21 Werner Lemberg + + [base] Improve sanity check for Mac resources (#49888). + + * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Abort if `rlen' is not + positive. + +2016-12-20 Werner Lemberg + + [base] More sanity checks for Mac resources. + + We use + + https://github.com/kreativekorp/ksfl/wiki/Macintosh-Resource-File-Format + + and + + https://developer.apple.com/legacy/library/documentation/mac/pdf/MoreMacintoshToolbox.pdf#page=151 + + as references. + + * include/freetype/internal/ftrfork.h (FT_RFork_Ref): Use FT_Short + for `res_id'. + + * src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Extract map length + and use it to improve sanity checks. + Follow the specification more closely;in particular, all data types + are signed, not unsigned. + (FT_Raccess_Get_DataOffsets): Follow the specification more closely; + in particular, all data types are signed, not unsigned. + Add some sanity checks. + +2016-12-20 Werner Lemberg + + [truetype] Improve logic for getting fast advance widths. + + * src/cff/cffdrivr.c (cff_get_advances), src/truetype/ttdriver.c + (tt_get_advances): Use `is_default_instance' for test; this gets + recomputed after changing blend coordinates. + +2016-12-20 Ben Wagner + Werner Lemberg + + [truetype] Fix linear metrics of GX variation fonts (#49829). + + When asking for an unhinted non-default variations, + `linearVertAdvance' is currently the value from the `hmtx' table + instead of the actual value after applying the variation. `HVAR' + support fixes this, but fonts will exist without that table and will + need sane fallback. + + Problem also reported as + + https://bugs.chromium.org/p/skia/issues/detail?id=5917 + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph, + load_truetype_glyph): Implement linear advance adjustments if `HVAR' + or `VVAR' tables are missing. + +2016-12-20 Werner Lemberg + + [cff, truetype] Fast advance width retrieval for fonts with HVAR. + + Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. + + * src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Don't handle MM. + + * src/cff/cffdrivr.c: Include FT_SERVICE_METRICS_VARIATIONS_H. + (cff_get_advances): Test for HVAR and VVAR. + + * src/truetype/ttdriver.c (tt_get_advances): Test for HVAR and VVAR. + +2016-12-18 Werner Lemberg + + [base] Fix invalid mac font recursion. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=304 + + * src/base/ftobjs.c (FT_Open_Face): Code moved to... + (ft_open_face_internal): ... this function. + Add a parameter to control whether we try special Mac font handling + in case of failure. + (FT_Open_Face, FT_New_Face, FT_New_Memory_Face, + open_face_from_buffer): Use `ft_open_face_internal'. + +2016-12-18 Werner Lemberg + + * src/cff/cffobjs.c (cff_face_init): Make named instances work. + +2016-12-18 Werner Lemberg + + [truetype, cff] Extend `get_var_blend' function of MM service. + + In particular, we need access to named instance data. + + * include/freetype/internal/services/svmm.h (FT_Get_Var_Blend_Func): + Add argument for `FT_MM_Var'. + + * src/cff/cffload.c (cff_get_var_blend): Updated. + * src/cff/cffload.h: Updated. + + * src/cff/cf2ft.c (cf2_getNormalizedVector): Updated. + + * src/truetype/ttgxvar.c (tt_get_var_blend): Updated. + Accept value `NULL' for arguments. + * src/truetype/ttgxvar.h: Updated. + +2016-12-18 Werner Lemberg + + [sfnt] Handle `fvar' with zero axes as a non-MM font. + + This is better behaviour than exiting with an error. + + * include/freetype/internal/tttypes.h (TT_Face): Add `use_fvar' + field. + + * src/sfnt/sfobjs.c (sfnt_init_face): Compute `use_fvar', also + updating the validation code. + Use `use_fvar' to compute FT_FACE_FLAG_MULTIPLE_MASTERS. + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Remove `fvar' validation + code. + +2016-12-18 Werner Lemberg + + Minor GX code shuffling. + + * include/freetype/internal/tttypes.h (TT_Face): Move + `is_default_instance' into TT_CONFIG_OPTION_GX_VAR_SUPPORT + block. + + * src/sfnt/sfobjs.c (sfnt_init_face): Updated. + * src/truetype/ttgload.c (IS_DEFAULT_INSTANCE): New macro. + (TT_Load_Glyph): Use it. + +2016-12-18 Werner Lemberg + + [cff] Better handling of non-CFF font formats. + + * src/cff/cffload.c (cff_font_load): Pure CFFs don't have a + signature, so return `FT_Err_Unknown_File_Format' more often. + +2016-12-17 Werner Lemberg + + * src/cff/cffload.c (cff_build_blend_vector): Remove redundant code. + +2016-12-17 Werner Lemberg + + * src/truetype/ttobjs.c (tt_face_init): Simplify conditional code. + +2016-12-17 Werner Lemberg + + [sfnt, truetype] Various sanitizing fixes. + + * src/sfnt/sfobjs.c (sfnt_init_face): If the axis count in `fvar' is + zero, set `num_instances' to zero. + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Handle `fvar' table with + zero axes as invalid. + + * src/truetype/ttobjs.c (tt_face_init): Improve logic of loading + `loca', `cvt', `fpgm', and `prep' table. + +2016-12-17 Werner Lemberg + + Improve tracing of `FT_Open_Face'. + + * src/base/ftobjs.c (FT_Open_Face): Return info on number of + available faces and numbered instances, or the indices of the + requested face and numbered instance. + + * src/sfnt/sfobjs. (sfnt_open_font): Trace number of subfonts. + +2016-12-17 Werner Lemberg + + * src/cff/cffload.c (cff_load_private_dict): Always init `blend'. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=295 + +2016-12-16 Werner Lemberg + + [truetype] Fix `cvar' sanity test. + + Reported by Dave Arnold. + + * src/truetype/ttgxvar.c (tt_face_vary_cvt): Use tuple count mask. + +2016-12-16 Werner Lemberg + + [cff, truetype] Remove compiler warnings; fix `make multi'. + + * src/cff/cf2font.h: Include `cffload.h'. + + * src/cff/cffload.c: Include FT_MULTIPLE_MASTERS_H and + FT_SERVICE_MULTIPLE_MASTERS_H. + (cff_vstore_load): Eliminate `vsSize'. + (cff_load_private_dict): Tag as `FT_LOCAL_DEF'. + + * src/cff/cffload.h: Include `cffobjs.h'. + Provide declaration for `cff_load_private_dict'. + + * src/truetype/ttgxvar.c (ft_var_load_hvar): Eliminate + `minorVersion' and `map_offset'. + +2016-12-16 Werner Lemberg + + [cff] Fix heap buffer overflow (#49858). + + * src/cff/cffparse.c (cff_parser_run): Add one more stack size + check. + +2016-12-15 Werner Lemberg + + Fix clang warnings. + + * src/cff/cffload.c (cff_blend_doBlend): Add cast. + (cff_subfont_load): Set `error' correctly. + + * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo. + +2016-12-15 Dave Arnold + Werner Lemberg + + [cff] Implement CFF2 support (2/2). + + The font variation code. All parts dependent on the GX code in the + `truetype' module are guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. + In other words, you can still compile the `cff' module without + defining TT_CONFIG_OPTION_GX_VAR_SUPPORT (which brings you CFF2 + support without font variation). + + * src/cff/cf2font.c (cf2_font_setup): Add support for font + variation. + * src/cff/cf2font.h (CF2_Font): Add fields for variation data. + + * src/cff/cf2ft.c (cf2_free_instance): Free blend data. + (cf2_getVStore, cf2_getNormalizedVector): New functions. + * src/cff/cf2ft.h: Updated. + + * src/cff/cf2intrp.c: Include `cffload.h'. + (cf2_cmdRESERVED_15, cf2_cmdRESERVED_16): Replace with... + (cf2_cmdVSINDEX, cf2_cmdBLEND): ... this new enum values. + (cf2_doBlend): New function. + (cf2_interpT2CharString): Handle `vsindex' and `blend' opcodes. + + * src/cff/cffload.c (FT_fdot14ToFixed): New macro. + (cff_vstore_done, cff_vstore_load): New functions. + (cff_blend_clear, cff_blend_doBlend, cff_blend_build_vector, + cff_blend_check_vector): New functions. + (cff_load_private_dict): Add arguments for blend vector. + Handle blend data. + (cff_subfont_load, cff_subfont_done): Updated. + (cff_font_load): Handle CFF2 variation store data. + (cff_font_done): Updated. + * src/cff/cffload.h: Include `cffparse.h'. + Updated. + + * src/cff/cffobjs.c (cff_face_done): Updated. + + * src/cff/cffparse.c: Include `cffload.h'. + (cff_parse_num): Handle internal value 255. + (cff_parse_vsindex, cff_parse_blend): New functions. + (CFF_FIELD_BLEND): New macro. + (cff_parser_run): Updated. + * src/cff/cffparse.h (cff_kind_blend): New enum value. + + * src/cff/cfftoken.h: Handle `vstore', `vsindex', and `blend' + dictionary values. + + * src/cff/cfftypes.h (CFF_VarData, CFF_AxisCoords, CFF_VarRegion, + CFF_VStore, CFF_Blend): New structures. + (CFF_FontRecDict): Add `vstore_offset' field. + (CFF_Private): Add `vsindex' field. + (CFF_SubFont): Add fields for blend data. + (CFF_Font): Add `vstore' field. + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): `CFF2' is equal to `gvar', + since glyph variation data is directly embedded. + (TT_Set_MM_Blend): Don't load `gvar' table for CFF2 fonts. + +2016-12-15 Dave Arnold + Werner Lemberg + + [cff] Implement CFF2 support (1/2). + + This commit does not contain the blend code for font variation + support, which follows in another commit. + + You should ignore whitespace while inspecting this commit. + + * include/freetype/internal/tttypes.h (TT_Face): Add `isCFF2' + member. + + * src/cff/cf2font.h (CF2_Font): Add `isCFF2' member. + + * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Handle `isCFF2' + flag. + (cf2_getMaxstack): New function. + * src/cff/cf2ft.h: Updated. + + * src/cff/cf2intrp.c (cf2_escRESERVED_38): New enum. + (cf2_interpT2CharString): Handle CFF2 differences. + Add tracing message for errors. + + * src/cff/cffdrivr.c (cff_get_glyph_name, cff_get_name_index): + Update for CFF2. + + * src/cff/cffload.c (FT_FIXED_ONE): New macro. + (cff_index_init, cff_index_load_offsets, cff_index_access_element, + cff_index_get_name, cff_ft_select_get, cff_load_private_dict, + cff_subfont_load, cff_font_load): Handle CFF2. + * src/cff/cffload.h: Updated. + + * src/cff/cffobjs.c (cff_face_init): Handle CFF2. + + * src/cff/cffparse.c (cff_parse_maxstack): New function. + (CFFCODE_TOPDICT, CFFCODE_PRIVATE): Removed + * src/cff/cffparse.h (CFF2_MAX_STACK, CFF2_DEFAULT_STACK): New + macros. + (CFF2_CODE_TOPDICT, CFF2_CODE_FONTDICT, CFF2_CODE_PRIVATE): New + macros. + + * src/cff/cfftoken.h: Add fields for CFF2 dictionaries (but no blend + stuff). + + * src/cff/cfftypes.h (CFF_Index): Add `hdr_size' field. + (CFF_FontRecDict): Add `maxstack' field. + (CFF_Private): Add `subfont' field. + (CFF_Font): Add `top_dict_length' and `cff2' fields. + + * src/sfnt/sfobjs.c (sfnt_load_face): Handle `CFF2' table. + +2016-12-15 Werner Lemberg + Dave Arnold + + [truetype] Provide HVAR advance width variation as a service. + + Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. + + * src/truetype/ttdriver.c (tt_service_metrics_variations): Updated. + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Prevent + double adjustment of advance width. + + * src/sfnt/ttmtx.c: Include FT_SERVICE_METRICS_VARIATIONS_H. + (tt_face_get_metrics): Apply metrics variations. + +2016-12-15 Dave Arnold + Werner Lemberg + + [truetype] Provide function to apply `HVAR' advance width variation. + + Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. + + * src/truetype/ttgxvar.c (tt_hadvance_adjust): New function. + * src/truetype/ttgxvar.h: Updated. + +2016-12-15 Dave Arnold + Werner Lemberg + + [truetype] Add `HVAR' table parsing. + + Note that this is not complete yet; it only handles advance width + variation. + + Activation of the code follows in another commit. + + Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. + + * include/freetype/ftmm.h (FT_Var_Named_Style): Add `psid' member. + + * src/truetype/ttgxvar.h (GX_HVarData, GX_AxisCoords, GX_HVarRegion, + GX_HVStore, GX_WidthMap): New auxiliary structures for... + (GX_HVarTable): ... HVAR main structure. + (GX_BlendRec): Add data for HVAR loading. + + * src/truetype/ttgxvar.c (FT_FIXED_ONE, FT_fdot14ToFixed, + FT_intToFixed, FT_fixedToInt): New macros. + (ft_var_load_hvar): New function. + (TT_Get_MM_Var): Updated. + (tt_done_blend): Deallocate HVAR data. + +2016-12-15 Dave Arnold + + [cff] Extend number parsing. + + The forthcoming CFF2 support needs a dynamic parsing limit. + + * src/cff/cffparse.c (cff_parse_num, do_fixed, cff_parse_fixed, + cff_parse_fixed_scaled, cff_parse_fixed_dynamic): Add argument for + parser. + (cff_parse_font_matrix, cff_parse_font_bbox, cff_parse_private_dict, + cff_parse_multiple_master, cff_parse_cid_ros, cff_parser_run): Updated. + + * src/cff/cffparse.h (cff_parse_num): Export locally. + +2016-12-15 Dave Arnold + + [cff] Implement dynamic stack size for Adobe engine. + + This also adds `cf2_stack_setReal' and `cf2_stack_pop', needed for + the forthcoming CFF2 support. + + * src/cff/cf2stack.c (cf2_stack_init): Add argument for stack size. + (cf2_stack_free): Deallocate stack. + (cf2_stack_count, cf2_stack_pushInt, cf2_stack_pushFixed, + cf2_stack_popInt, cf2_stack_popFixed, cf2_stack_getReal, + cf2_stack_clear): Updated. + (cf2_stack_setReal, cf2_stack_pop): New functions. + + * src/cff/cf2stack.h (CF2_Stack): Add `stackSize' member. + Update function declarations. + + * src/cff/cf2intrp.c (cf2_interpT2CharString): Updated. + + * src/cff/cffparse.c (cff_parser_init): Add parameter for stack + size; return error code. + (cff_parser_done): New function. + (cff_parser_run): Updated. + + * src/cff/cffparse.h (CFF_Parser): Add `stackSize' member and make + `stack' a pointer. + Update function declarations. + + * src/cff/cffload.c (cff_load_private_dict, cff_subfont_load): + Updated. + +2016-12-15 Dave Arnold + Werner Lemberg + + [cff] Code shuffling. + + * src/cff/cfftypes.h (CFF_Font): Add `library' and `base_offset' + fields. + + * src/cff/cffload.c (cff_subfont_load): Change last argument to + `CFF_Font' + Split off parsing of private dictionary into... + (cff_load_private_dict): ...this new function. + (cff_font_load): Updated. + +2016-12-14 Werner Lemberg + + [sfnt, truetype] Add framework for Metrics Variations service. + + No effect yet; service functions will be implemented later on. + + Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. + + * include/freetype/internal/services/svmetric.h: New file. + + * include/freetype/internal/ftserv.h + (FT_SERVICE_METRICS_VARIATIONS_H): New macro. + + * include/freetype/internal/tttypes.h (TT_Face): New field `var'. + + * src/sfnt/sfobjs.c: Include FT_SERVICE_METRICS_VARIATIONS_H. + (sfnt_init_face): Initialize `face->var'. + + * src/truetype/ttdriver.c: Include FT_SERVICE_METRICS_VARIATIONS_H. + (tt_service_metrics_variations): New service. + (tt_services): Updated. + + * src/truetype/ttpic.h: Updated. + +2016-12-14 Werner Lemberg + + [cff] Add Multiple Masters service. + + The code simply uses the MM functions from the `truetype' module. + + Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. + + * include/freetype/internal/tttypes.h (TT_Face): New field `mm'. + + * src/cff/cffdrivr.c: Include FT_SERVICE_MULTIPLE_MASTERS_H. + (cff_set_mm_blend, cff_get_mm_blend, cff_get_mm_var, + cff_set_var_design, cff_get_var_design): New functions. + (cff_service_multi_masters): New service. + (cff_services): Updated. + + * src/cff/cffload.c (cff_get_var_blend, cff_done_blend): New + functions. + * src/cff/cffload.h: Updated. + + * src/cff/cffpic.h (CFF_SERVICE_MULTI_MASTERS_GET): New macro. + + * src/sfnt/sfobjs.c: Include FT_SERVICE_MULTIPLE_MASTERS_H. + (sfnt_init_face): Initialize `face->mm'. + +2016-12-14 Werner Lemberg + + Extend functionality of `ft_module_get_service'. + + It can now differentiate between local and global searches. + + * src/base/ftobjs.c (ft_module_get_service): Add `global' argument. + (FT_Get_TrueType_Engine_Type): Updated. + + * src/cff/cffdrivr.c (cff_get_ps_name, cff_get_cmap_info): Updated. + + * include/freetype/internal/ftobjs.h: Updated. + * include/freetype/internal/ftserv.h (FT_FACE_FIND_GLOBAL_SERVICE): + Updated. + +2016-12-14 Werner Lemberg + + * src/truetype/ttgxvar.c (tt_get_var_blend): Fix compiler warning. + +2016-12-14 Dave Arnold + Werner Lemberg + + [sfnt, cff] Minor preparations. + + * include/freetype/tttags.h (TTAG_CFF2, TTAG_HVAR, TTAG_MVAR, + TTAG_VVAR): New SFNT table tags. + + * src/cff/cf2fixed.h (CF2_FIXED_ONE, CF2_FIXED_EPSILON): Add cast. + +2016-12-10 Werner Lemberg + + [truetype, type1] Add `get_var_blend' to MM service. + + For internal use; we want to share code between the forthcoming CFF2 + support and TrueType. + + * include/freetype/internal/services/svmm.h (FT_Get_Var_Blend_Func): + New typedef. + (MultiMasters): Add `get_var_blend'. + (FT_Service_MultiMasters): Updated. + + * src/truetype/ttgxvar.c (tt_get_var_blend): New function. + * src/truetype/ttgxvar.h: Updated. + + * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated. + * src/type1/t1driver.c (t1_service_multi_masters): Updated. + +2016-12-10 Werner Lemberg + + [truetype, type1] Add `done_blend' to MM service. + + For internal use; we want to share code between the forthcoming CFF2 + support and TrueType. + + * include/freetype/internal/services/svmm.h (FT_Done_Blend_Func): + New typedef. + (MultiMasters): Add `done_blend'. + (FT_Service_MultiMasters): Updated. + + * src/truetype/ttgxvar.c (tt_done_blend): Use `TT_Face' as argument. + * src/truetype/ttgxvar.h: Updated. + + * src/truetype/ttobjs.c (TT_Face_Done): Updated. + + * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated. + * src/type1/t1driver.c (t1_service_multi_masters): Updated. + +2016-12-09 Werner Lemberg + + [sfnt] Revert change from 2016-12-08. + + I missed the functionality of `ft_module_get_service', which makes + the change unnecessary. + +2016-12-08 Werner Lemberg + + Add framework to support services with 8 functions. + + We will need this for CFF variation font support. + + * include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC8): + New macro. + +2016-12-08 Werner Lemberg + + [sfnt] Add `get_glyph_name' and `get_name_index' to SFNT interface. + + CFF2 fonts will need access to those two functions. + + * include/freetype/internal/sfnt.h: Include FT_SERVICE_GLYPH_DICT_H. + (SFNT_Interface): Add `get_glyph_name' and `get_name_index' members. + (FT_DEFINE_SFNT_INTERFACE): Updated. + + * src/sfnt/sfdriver.c (sfnt_get_glyph_name, sfnt_get_name_index): + Fix signatures to exactly correspond to the glyph dict service + function typedefs. + (sfnt_interface): Updated. + +2016-12-06 Dave Arnold + + Add `FT_Get_Var_Design_Coordinates' function. + + Note that the low-level functions aren't implemented yet. + + * include/freetype/ftmm.h: Declare. + + * include/freetype/internal/services/svmm.h + (FT_Get_Var_Design_Func): New typedef. + (MultiMasters): New MM service function `get_var_design'. + (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. + Update all callers. + + * src/base/ftmm.c (FT_Get_Var_Design_Coordinates): Implement. + + * src/truetype/ttdriver.c: Updated. + + * src/truetype/ttgxvar.c (TT_Get_Var_Design): New dummy function to + handle `get_var_design' service. + * src/truetype/ttgxvar.h: Updated. + + * src/type1/t1driver.c: Updated. + + * src/type1/t1load.c (T1_Get_Var_Design): New dump function to + handle `get_var_design' service. + * src/type1/t1load.h: Updated. + +2016-12-06 Werner Lemberg + + * src/type1/t1load.c (parse_subrs): Fix memory leak. + + The `subrs' keyword might erroneously occur multiple times. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=231 + +2016-12-01 Werner Lemberg + + [gzip] Improve building with external zlib (#49673). + + Building FreeType with external zlib 1.2.8 makes msvc 14 stop with + the following error. + + ftgzip.c + zlib-1.2.8\zlib.h(86): error C2061: + syntax error: identifier 'z_const' + zlib-1.2.8\zlib.h(94): error C2054: + expected '(' to follow 'z_const' + zlib-1.2.8\zlib.h(94): error C2085: + 'msg': not in formal parameter list + ... + zlib-1.2.8\zlib.h(877): fatal error C1003: + error count exceeds 100; stopping compilation + + The error happens because FreeType keeps an own copy of zlib-1.1.4 + under `src/gzip'. When building `src/gzip/ftgzip.c' with + FT_CONFIG_OPTION_SYSTEM_ZLIB defined, it uses + + #include + + which correctly finds an external `zlib.h', but `zlib.h' itself has + a line + + #include "zconf.h" + + which makes Visual Studio 2015 find `src/gzip/zconf.h' while + compiling the files in `src/gzip'. + + * src/gzip/zconf.h: Rename to... + * src/gzip/ftzconf.h: ... this. + * src/gzip/zlib.h, src/gzip/rules.mk (GZIP_DRV_SRCS): Updated. + +2016-12-01 Oleksandr Chekhovskyi + + [autofit] Fix Emscripten crash (patch #9180). + + Function calls through pointers must use a matching signature to + work on Emscripten, since such calls are dispatched through lookup + tables grouped by signature. + + * src/autofit/aftypes.h (AF_WritingSystem_ApplyHintsFunc): Fix + typedef. + +2016-11-29 Werner Lemberg + + [smooth] Revert previous commit. Already fixed with 6ca54c64. + +2016-11-29 Werner Lemberg + + [smooth] Avoid conditional jump on uninitialized value (#49711). + + * src/smooth/ftgrays.c (gray_raster_render): Initialize `worker'. + +2016-11-27 Nikolaus Waxweiler + + [autofit] Code shuffling. + + Also improve some comments and remove unused code. + + No functional change. + + * src/autofit/afloader.c (af_loader_load_g): Merged with... + (af_loader_load_glyph): ...this function. + Split off emboldening code into... + (af_loader_embolden_glyph_in_slot): ... this function. + +2016-11-17 Werner Lemberg + + Better support of LLP64 systems with gcc (and clang). + + * builds/unix/configure.raw: Call `AC_TYPE_LONG_LONG_INT'. + + * builds/unix/ftconfig.in (FT_LONG64): Enable for LLP64 systems (and + suppress warnings) even without `FT_CONFIG_OPTION_FORCE_INT64'. + +2016-11-10 Werner Lemberg + + Fix `lcd_weights' array size. + + * include/freetype/internal/ftobjs.h (FT_LibraryRec): Do it. + + Reported by Nikolaus. + +2016-11-06 Werner Lemberg + + * src/base/ftobjs.c (FT_Render_Glyph_Internal): Fix tracing. + +2016-11-06 Werner Lemberg + + [sfnt] Improve FT_LOAD_BITMAP_METRICS_ONLY for `sbix' format. + + It's unavoidable to call the PNG engine, but to get the metrics it + is sufficient to read the PNG image's header only. + + * src/sfnt/pngshim.c (Load_SBit_Png): Add argument to control the + allocation of the glyph slot. + * src/sfnt/pngshim.h: Updated. + * src/sfnt/ttsbit.c (tt_sbit_decoder_load_png, + tt_face_load_sbix_image, tt_face_load_sbit_image): Updated. + +2016-11-06 Werner Lemberg + + [sfnt] Speed up `sbix' lookup. + + This also fixes a bug introduced in 2016-10-01 which prevents + display of embedded bitmap fonts that use the `sbix' format. + + * src/sfnt/ttsbit.c (tt_face_load_sbit): Store `sbix' size and + offset also in `ebdt_size' and `ebdt_start', respectively. This + makes the test for an embedded bitmap data table succeed for this + format. + + (tt_face_load_strike_metrics) : Use + `ebdt_size' and `ebdt_start' + (tt_face_load_sbix_image): Ditto. + +2016-11-06 Seigo Nonaka + Werner Lemberg + + Introduce a way of quickly retrieving (embedded) bitmap metrics. + + `FT_Load_Glyph' doesn't generate a bitmap for a non-bitmap glyph + until the user calls `FT_Render_Glyph'. However, it always + allocates memory for bitmaps and copies or decodes the contents of a + bitmap glyph, which can be quite slow for PNG data. + + * include/freetype/freetype.h (FT_LOAD_BITMAP_METRICS_ONLY): New + macro. + + * src/base/ftobjs.c (FT_Load_Glyph): Unset FT_LOAD_RENDER if + FT_LOAD_BITMAP_METRICS_ONLY is used. + + * src/sfnt/ttsbit.c (tt_sbit_decoder_alloc_bitmap, + tt_sbit_decoder_load_bitmap): Add argument to control allocation of + the glyph slot. + (tt_sbit_decoder_load_image, tt_sbit_decoder_load_compound, + tt_face_load_sbit_image): Updated. + + * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Quickly exit if + `FT_LOAD_BITMAP_METRICS_ONLY' is set. + + * src/pfr/pfrsbit.c, src/pfr/pfrsbit.h (pfr_slot_load_bitmap): Add + argument to control allocation of the glyph slot. + * src/pfr/pfrobjs (pfr_slot_load): Updated. + + * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto. + + * docs/CHANGES: Updated. + +2016-11-06 Werner Lemberg + + Synchronize with gnulib (#49448). + + * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in, + builds/vms/ftconfig.h (FT_TYPEOF): Update code to use definition in + current version of `intprops.h'. + Other minor synchronization to reduce code differences between the + three files. + +2016-11-03 Behdad Esfahbod + + [truetype] Clamp variation requests to valid range. + + This is required by OpenType 1.8; it also avoids rounding surprises. + + * src/truetype/ttgxvar.c (TT_Set_Var_Design): Clamp design coordinates + outside of the allowed range to always stay within the range instead + of producing an error. + +2016-10-29 Werner Lemberg + + [truetype] Remove clang warnings. + + * src/truetype/ttinterp.h (TT_ExecContextRec): Using `FT_ULong' for + loop counter handling. + + * src/truetype/ttinterp.c: Updated. + (Ins_SCANTYPE): Use signed constant. + (TT_RunIns): Ensure `num_twilight_points' is 16bit. + +2016-10-27 Werner Lemberg + + [truetype] Fix commit from 2014-11-24. + + Problem reported by Hin-Tak Leung . + + * src/truetype/ttpload.c (tt_face_load_hdmx): Fix file checking + logic. + +2016-10-26 Werner Lemberg + + Add `FT_Get_{MM,Var}_Blend_Coordinates' functions. + + * include/freetype/ftmm.h: Declare. + + * include/freetype/internal/services/svmm.h (FT_Get_MM_Blend_Func): + New typedef. + (MultiMasters): New MM service function `get_mm_blend'. + (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. + Update all callers. + + * src/base/ftmm.c (FT_Get_MM_Blend_Coordinates, + FT_Get_Var_Blend_Coordinates): Implement. + + * src/truetype/ttdriver.c: Updated. + + * src/truetype/ttgxvar.c (TT_Get_MM_Blend): New function to handle + `get_mm_blend' service. + * src/truetype/ttgxvar.h: Updated. + + * src/type1/t1driver.c: Updated. + + * src/type1/t1load.c (T1_Get_MM_Blend): New function to handle + `get_mm_blend' service. + * src/type1/t1load.h: Updated. + + * docs/CHANGES: Document. + +2016-10-26 Werner Lemberg + + * src/type1/t1load.c (parse_subrs): Fix limit check. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=81 + +2016-10-25 Alexei Podtelezhnikov + + [cff] Correct cmap format reporting (#24819). + + * src/cff/cffdrivr.c (cff_get_cmap_info): Throw an error on synthetic + charmap instead of guessing its format and language. + +2016-10-22 Werner Lemberg + + [truetype] Fix SCANTYPE instruction (#49394). + + * src/truetype/ttinterp.c (Ins_SCANTYPE): Only use lower 16bits. + +2016-10-22 Werner Lemberg + + [sfnt] Improve handling of invalid post 2.5 tables [#49393]. + + * src/sfnt/ttpost.c (load_format_25): We need at least a single + table entry. + +2016-10-14 Werner Lemberg + + [truetype] Fix handling of `cvar' table data. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53 + + * src/truetype/ttgxvar.c (tt_face_vary_cvt): Ignore invalid CVT + indices. + +2016-10-11 Werner Lemberg + + [psaux] Fix handling of invalid flex subrs. + + Problem reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52 + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings) + : Set `flex_state' after error checking. + +2016-10-11 Werner Lemberg + + * src/truetype/ttgxvar.c (tt_done_blend): Fix deallocation. + +2016-10-08 Werner Lemberg + + * src/cid/cidload.c (cid_face_open): Properly propagate `error'. + +2016-10-08 Werner Lemberg + + [cid] Fix parsing of subr offsets. + + Bug introduced 2016-05-16. + + * src/cid/cidparse.c (cid_parser_new): Fix off-by-one error. + +2016-10-01 Werner Lemberg + + [sfnt] Disable bitmap strikes if we don't have a bitmap data table. + + * src/sfnt/ttsbit.c (tt_face_load_sbit): Check whether we have + a bitmap data table. + +2016-10-01 Alexei Podtelezhnikov + + [smooth] Remove impossibility. + + * src/smooth/ftgrays.c (TWorker): Rearrange fields. + (gray_convert_glyph): Remove impossible condition and clean up. + +2016-09-29 Werner Lemberg + + [pcf] Enrich family name with foundry name and glyph width info. + + This is a very old patch from openSuSE (from 2006, submitted to + FreeType in 2011) that I forgot to apply. + + https://build.opensuse.org/package/view_file/openSUSE:Factory/freetype2/freetype2-bitmap-foundry.patch + + Prepend the foundry name plus a space to the family name. There are + many fonts just called `Fixed' which look completely different, and + which have nothing to do with each other. When selecting `Fixed' in + KDE or Gnome one gets results that appear rather random, the style + changes often if one changes the size and one cannot select some + fonts at all. + + We also check whether we have `wide' characters; all put together, + we get family names like `Sony Fixed' or `Misc Fixed Wide'. + + * src/pcf/pcfread.c (pcf_load_font): Implement it. + + * docs/CHANGES: Document it. + +2016-09-29 Werner Lemberg + + [ftfuzzer] Speed up. + + * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Don't + check for embedded bitmaps if we have a non-default instance. + +2016-09-29 Werner Lemberg + + [truetype] Disallow bitmap strikes for non-default instances. + + Also speed up access of default instances if GX variations are + active. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Add + `is_default_instance' member. + + * src/sfnt/sfobjs.c (sfnt_init_face): Initialize + `is_default_instance'. + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph, + load_truetype_glyph): Add test for default instance. + (TT_Load_Glyph): Load embedded bitmaps for default instance only. + + * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Compute + `is_default_instance'. + +2016-09-29 Werner Lemberg + + [truetype] Clean up `TT_Face' structure. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused + fields `horz_metrics' and `vert_metrics'. + Update documentation. + + * src/sfnt/sfobjs.c (sfnt_done_face): Updated. + +2016-09-28 Werner Lemberg + + More FT_ZERO usage. + + * src/gxvalid/gxvcommn.c (gxv_ClassTable_validate): + s/ft_memset/FT_MEM_ZERO/. + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings): + s/ft_memset/FT_ARRAY_ZERO/. + + * src/raster/ftraster.c (FT_ZERO): Define. + (ft_black_new): Use it. + * src/raster/ftrend1.c (ft_raster1_get_cbox): + s/FT_MEM_ZERO/FT_ZERO/. + + * src/smooth/ftgrays.c (FT_ZERO): Define. + (gray_raster_new): Use it. + * src/smooth/ftsmooth.c (ft_smooth_get_cbox): + s/FT_MEM_ZERO/FT_ZERO/. + +2016-09-28 Werner Lemberg + + */*: s/FT_MEM_ZERO/FT_ZERO/ where appropriate. + +2016-09-27 Werner Lemberg + + [truetype] Trace number of executed opcodes. + + * src/truetype/ttinterp.c (TT_RunIns): Implement it. + +2016-09-27 Werner Lemberg + + [truetype] Speed up `TT_Load_Glyph'. + + This avoids additional calls to `tt_face_lookup_table' for the + `glyf' table, which can be expensive. + + * include/freetype/internal/tttypes.h (TT_LoaderRec): Move + `glyf_offset' field to ... + (TT_FaceRec): ... this structure. + * src/truetype/ttgload.c (load_truetype_glyph): Updated. + (tt_loader_init): Move initialization of `glyf_offset' to ... + * src/truetype/ttpload.c (tt_face_load_loca): ... this function. + +2016-09-27 Werner Lemberg + + [truetype] Introduce dynamic limits for some bytecode opcodes. + + This speeds up FreeType's handling of malformed fonts. + + * src/truetype/ttinterp.c (TT_RunIns): Set up limits for the number + of twilight points, the total number of negative jumps, and the + total number of loops in LOOPCALL opcodes. The values are based on + the number of points and entries in the CVT table. + (Ins_JMPR): Test negative jump counter. + (Ins_LOOPCALL): Test loopcall counter. + + * src/truetype/ttinterp.h (TT_ExecContext): Updated. + + * docs/CHANGES: Updated. + +2016-09-25 Werner Lemberg + + [truetype] Sanitize only last entry of `loca' table. + + Without this patch, a loca sequence like `0 100000 0 100000 ...', + where value 100000 is larger than the `glyf' table size, makes + FreeType handle the whole `glyf' table as a single glyph again and + again, which is certainly invalid (and can be very slow, too). + + * src/truetype/ttpload.c (tt_face_get_location): Implement. + Improve tracing messages. + +2016-09-25 Werner Lemberg + + * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Fix typo. + +2016-09-24 Werner Lemberg + + [autofit] Tracing fixes. + + * src/autofit/afmodule.c (af_autofitter_load_glyph): Call dumping + functions only if we actually do tracing. + +2016-09-22 Alexei Podtelezhnikov + + [smooth] Reduce divisions in the line renderer. + + We don't need some divisions if a line segments stays within a single + row or a single column of pixels. + + * src/smooth/ftgrays.c (gray_render_line) [FT_LONG64]: Make divisions + conditional. + +2016-09-15 Alexei Podtelezhnikov + + * src/smooth/ftgrays.c (gray_sweep): Remove check for empty table. + +2016-09-14 Alexei Podtelezhnikov + + [smooth] Another tiny speed-up. + + * src/smooth/ftgrays.c (gray_find_cell): Merge into... + (gray_record_cell): ... this function. + +2016-09-11 Alexei Podtelezhnikov + + * src/smooth/ftgrays.c (gray_{find,set}_cell): Remove dubious code. + +2016-09-11 Alexei Podtelezhnikov + + [smooth] Fix valgrind warning and reoptimize. + + The algorithm calls `gray_set_cell' at the start of each new contour + or when the contours cross the cell boundaries. Double-checking for + that is wasteful. + + * src/smooth/ftgrays.c (gray_set_cell): Remove check for a new cell. + (gray_convert_glyph): Remove initialization introduced by 44b172e88. + +2016-09-10 Werner Lemberg + + [sfnt] Fix previous commit. + + Problems reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40 + + We now map the strike index right before accessing the physical + data, not earlier. + + * src/sfnt/sfobjs.c (sfnt_load_face): Set `face->sbit_strike_map' + after creating the map so that... + + * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): ... this function + can be used before and after setting up `sbit_strike_map'. + (tt_face_set_sbit_strike): Revert change. + (tt_sbit_decoder_init, tt_face_load_sbix_image): Map strike index. + + * src/truetype/ttdriver.c (tt_size_select): Revert change. + +2016-09-09 Werner Lemberg + + [ftfuzzer] Minor improvements. + + * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Ignore + invalid strikes. + Use better values for call to `FT_Set_Char_Size'. + +2016-09-09 Werner Lemberg + + [sfnt] Don't provide (completely) broken strike data. + + FreeType tries to sanitize strike header data; we now reject + completely broken ones. + + * include/freetype/internal/tttypes.h (TT_FaceRec): New + `sbit_strike_map' array pointer. + + * src/base/ftobjs.c (FT_Match_Size): Reject matches where either + width or height would be zero. + Add tracing message in case of error. + + * src/sfnt/sfobjs.c (sfnt_load_face): Populate `sbit_strike_map', + only using (more or less) valid strike header data for + FT_Face's `available_sizes' array. + (sfnt_done_face): Updated. + + * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use + `sbit_strike_map'. + (tt_face_load_strike_metrics): Improve tracing. + + * src/truetype/ttdriver.c (tt_size_select): Use `sbit_strike_map'. + +2016-09-08 Werner Lemberg + + * Version 2.7 released. + ======================= + + + Tag sources with `VER-2-7'. + + * docs/VERSION.TXT: Add entry for version 2.7. + + * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, + builds/windows/vc2005/index.html, + builds/windows/vc2008/freetype.vcproj, + builds/windows/vc2008/index.html, + builds/windows/vc2010/freetype.vcxproj, + builds/windows/vc2010/index.html, + builds/windows/visualc/freetype.dsp, + builds/windows/visualc/freetype.vcproj, + builds/windows/visualc/index.html, + builds/windows/visualce/freetype.dsp, + builds/windows/visualce/freetype.vcproj, + builds/windows/visualce/index.html, + builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2005-ce/index.html, + builds/wince/vc2008-ce/freetype.vcproj, + builds/wince/vc2008-ce/index.html: s/2.6.5/2.7/, s/265/27/. + + * include/freetype/freetype.h (FREETYPE_MINOR): Set to 7. + (FREETYPE_PATCH): Set to 0. + + * builds/unix/configure.raw (version_info): Set to 18:6:12. + * CMakeLists.txt (VERSION_MINOR): Set to 7. + (VERSION_PATCH): Set to 0. + + * docs/CHANGES: Updated. + +2016-09-08 Werner Lemberg + + * src/truetype/ttinterp.c: Include `ttgxvar.h'. + + This fixes the `multi' build. + +2016-09-08 Werner Lemberg + + [autofit] Another improvement to Armenian support. + + Suggested by Hrant H Papazian . + + * src/autofit/afscript.h: Use better suited characters to derive + default stem widths. + +2016-09-07 Alexei Podtelezhnikov + + * src/smooth/ftgrays.c (gray_hline): Micro-optimize. + +2016-09-06 Alexei Podtelezhnikov + + [smooth] Operate in absolute bitmap coordinates. + + Simpler bitmap addressing improves performance by 1.5%. + + * src/smooth/ftgrays.c (gray_TWorker): Remove count fields. + (gray_dump_cells, gray_find_cell, gray_set_cell, gray_hline, + gray_sweep, gray_convert_glyph, gray_raster_render): Updated. + +2016-09-06 Alexei Podtelezhnikov + + [smooth] Improve contour start (take 2). + + * src/smooth/ftgrays.c (gray_move_to): Call `gray_set_cell' directly + instead of... + (gray_start_cell): ... this function, which is removed. + (gray_convert_glyph): Make initial y-coordinate invalid. + +2016-09-06 Werner Lemberg + + [type1] MM fonts support exactly zero named instances (#48748). + + * src/type1/t1load.c (T1_Get_MM_Var): Set `num_namedstyles' to zero. + +2016-09-06 Jonathan Kew + + [cff] Fix uninitialized memory. + + Problem reported as + + https://bugzilla.mozilla.org/show_bug.cgi?id=1270288 + + * src/cff/cf2intrp.c (cf2_interpT2CharString): Initialize `storage' + array to handle a `get' opcode without a previous `put'. + +2016-09-05 Alexei Podtelezhnikov + + * src/smooth/ftgrays.c (gray_move_to, gray_start_cell): Revert. + +2016-09-05 Alexei Podtelezhnikov + + [smooth] Improve contour start. + + * src/smooth/ftgrays.c (gray_move_to): Call `gray_set_cell' directly + instead of... + (gray_start_cell): ... this function, which is removed. + +2016-09-05 Werner Lemberg + + [cff] Fix memory initialization. + + * src/cff/cf2stack.c (cf2_stack_init): Use `FT_NEW'. The `Q' + variants of FreeType's memory allocation macros don't do zeroing. + +2016-09-05 Werner Lemberg + + [ftrandom] Minor improvements. + + * src/tools/ftrandom/ftrandom.c (_XOPEN_SOURCE): New macro, set to + 500. + + * src/tools/ftrandom/Makefile (CFLAGS): Split off include + directories to ... + (INCLUDES): ... this new variable. + (LDFLAGS): New variable. + (ftrandom.o, ftrandom): Updated. + +2016-09-05 Werner Lemberg + + [autofit] Improve Armenian support. + + Thanks to Hrant H Papazian for help. + + * src/autofit/afblue.dat (AF_BLUE_STRING_ARMENIAN_*): Improve + selection of characters. + + * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. + +2016-09-04 Werner Lemberg + + [ftrandom] Improve Makefile. + + It now supports both a normal build (`./configure && make') and a + development build (`make devel'). + + * src/tools/ftrandom/Makefile (VPATH): Set it so that + `libfreetype.a' gets searched in both `objs' (for the development + build) and `objs/.libs' (for a normal build which uses libtool). + (LIBS): Add missing libraries. + (ftrandom.o): New rule. + (ftrandom): Use automatic variables. + +2016-09-03 Werner Lemberg + + [truetype] More fixes for handling of GX deltas. + + Problems reported by Bob Taylor . + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix rough + sanity test for glyph variation array header size. + Always set stream position before reading packed x and y deltas. + Fix thinko w.r.t. `localpoints' array. + +2016-09-03 Werner Lemberg + + [ftrandom] Various fixes. + + * src/tools/ftrandom/ftrandom.c (GOOD_FONTS_DIR): Provide better + default. + (error_fraction): Make it of type `double' to work as advertized – + this was completely broken. + Update all related code. + (error_count, fcnt): Make it unsigned to fix compiler warnings. + Update all related code. + (fontlist): Change `len' member to `long' to fix compiler warnings. + (FT_MoveTo, FT_LineTo, FT_ConicTo, FT_CubicTo, abort_test): Tag + unused variables. + (TestFace, FindFonts, copyfont, do_test): Fix compiler warnings. + (ExecuteTest): Ditto. + Call `FT_Done_FreeType'. + (getErrorCnt): Replace `ceil' with an ordinary cast to `unsigned + int'. + (usage): Improve output. + (main): Fix compiler warnings. + + * src/tools/ftrandom/README: Updated. + +2016-09-03 Werner Lemberg + + [base] Avoid negative bitmap strike dimensions (#48985). + + * src/base/ftobjs.c (FT_Open_Face): Check whether negation was + actually successful. For example, this can fail for value + -32768 if the type is `signed short'. If there are problems, + disable the strike. + +2016-09-03 Werner Lemberg + + [cff] Avoid null pointer passed to FT_MEM_COPY (#48984). + + * src/cff/cffload.c (cff_index_get_name): Check `byte_len'. + +2016-09-02 Werner Lemberg + + [unix] Enable 64bit support in file system access (#48962). + + * builds/unix/configure.raw: Call `AC_SYS_LARGEFILE'. + +2016-09-02 Werner Lemberg + + [sfnt] Avoid left shift of negative value (#48980). + + * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bit_aligned): Use unsigned + constant. + +2016-09-02 Werner Lemberg + + * src/smooth/ftgrays.c (gray_hline): Fix clang compiler warnings. + +2016-09-02 Werner Lemberg + + Some preparations for the next release. + + * include/freetype/config/ftoption.h + (TT_CONFIG_OPTION_SUBPIXEL_HINTING): Enable. + + * docs/CHANGES: Updated. + +2016-09-01 Alexei Podtelezhnikov + + [smooth] Simplify span rendering more. + + It turns out that there is significant cost associated with `FT_Span' + creation and calls to `gray_render_span' because it happens so + frequently. This removes these steps from our internal use but leaves + it alone for `FT_RASTER_FLAG_DIRECT" to preserve API. The speed gain + is about 5%. + + * src/smooth/ftgrays.c (gray_render_span): Removed. The code is + migrated to... + (gray_hline): ... here. + +2016-08-30 Alexei Podtelezhnikov + + [smooth] Streamline pixmap drawing a bit more. + + Zero coverage is unlikely (1 out of 256) to warrant checking. This + gives 0.5% speed improvement in rendering simple glyphs. + + * src/smooth/ftgrays.c (gray_hline, gray_render_span): Remove checks. + +2016-08-29 Alexei Podtelezhnikov + + [smooth] Streamline pixmap drawing. + + This gives 2% speed improvement in rendering simple glyphs. + + * src/smooth/ftgrays.c (TPixmap): Reduced pixmap descriptor with a + pointer to its bottom-left and pitch to be used in... + (gray_TWorker): ... here. + (gray_render_span): Move pixmap flow check from here... + (gray_raster_render): .. to here. + +2016-08-27 Alexei Podtelezhnikov + + [smooth] Reduce stack of band boundaries. + + * src/smooth/ftgrays.c (gray_TBand): Removed. + (gray_convert_glyph): Updated to stack band boundaries concisely. + +2016-08-26 Werner Lemberg + + * src/cid/cidload.c (cid_face_open): Improve handling of `SDBytes'. + +2016-08-26 Werner Lemberg + + [cid] Fix commit from 2016-05-16. + + * src/cid/cidparse.c (cid_parser_new): Fix off-by-one errors. + +2016-08-26 Werner Lemberg + + [sfnt] Cache offset and size to bitmap data table. + + This commit avoids `EBDT' and friends being looked up again and + again while loading a single embedded bitmap. + + * include/freetype/internal/tttypes.h (TT_FaceRec) + [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: New fields `ebdt_start' and + `ebdt_size'. + + * src/sfnt/ttsbit.c (tt_sbit_decoder_init): Move table lookup to ... + (tt_face_load_sbit): ... this function; also store the table size + and offset. + +2016-08-26 Alexei Podtelezhnikov + + * src/smooth/ftgrays.c (gray_raster_render): Minor tweaks. + +2016-08-26 Werner Lemberg + + [type1] Fix heap buffer overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36 + + * src/type1/t1load.c (parse_charstrings): Reject fonts that don't + contain glyph names. + +2016-08-25 Werner Lemberg + + [sfnt] Fix previous commit (#48901). + + * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Thinkos. + +2016-08-25 Werner Lemberg + + [sfnt] Speed up handling of invalid format 4 cmaps. + + * src/sfnt/ttcmap.c (tt_cmap4_next, tt_cmap4_char_map_binary): Add + tests for `num_glyph' from `tt_cmap4_char_map_linear'. + +2016-08-25 Werner Lemberg + + * include/freetype/internal/ftdriver.h: Remove unused typedefs. + +2016-08-22 Alexei Podtelezhnikov + + [smooth] Simplify span rendering. + + This removes unnecessary complexity of span merging and buffering. + Instead, the spans are rendered as they come, speeding up the + rendering by about 5% as a result. + + * src/smooth/ftgrays.c [FT_MAX_GRAY_SPANS]: Macro removed. + (gray_TWorker): Remove span buffer and related fields. + (gray_sweep, gray_hline): Updated. + + * include/freetype/ftimage.h: Remove documentation note about + `FT_MAX_GRAY_SPANS', which was never in `ftoption.h' and is now gone. + +2016-08-16 Werner Lemberg + + [truetype] Fix `MPS' instruction. + + According to Greg Hitchcock, MPS in DWrite really returns the point + size. + + * src/truetype/ttobjs.h (TT_SizeRec): Add `point_size' member. + + * src/truetype/ttdriver.c (tt_size_request): Set `point_size'. + + * src/truetype/ttinterp.h (TT_ExecContextRec): Add `pointSize' + member. + + * src/truetype/ttinterp.c (TT_Load_Context): Updated. + (Ins_MPS): Fix instruction. + +2016-08-16 Werner Lemberg + + [lzw] Optimize last commit. + + * src/lzw/ftzopen.c (ft_lzwstate_get_code): Move check into + conditional clause. + +2016-08-16 Werner Lemberg + + [lzw] Avoid invalid left shift. + + Reported as + + https://bugzilla.mozilla.org/show_bug.cgi?id=1295366 + + * src/lzw/ftzopen.c (ft_lzwstate_get_code): Limit `num_bits'. + +2016-08-16 Werner Lemberg + + [lzw] Avoid buffer overrun. + + Reported as + + https://bugzilla.mozilla.org/show_bug.cgi?id=1273283 + + * src/lzw/ftzopen.c (ft_lzwstate_refill): Ensure `buf_size' doesn't + underflow. + +2016-08-16 Werner Lemberg + + [truetype] Fix compiler warning. + + * src/truetype/ttgload.c (load_truetype_glyph): Add cast. + +2016-08-13 Werner Lemberg + + [winfonts] Avoid zero bitmap width and height. + + Reported as + + https://bugzilla.mozilla.org/show_bug.cgi?id=1272173 + + * src/winfonts/winfnt.c (FNT_Face_Init): Check zero pixel height. + (FNT_Load_Glyph): Check for zero pitch. + +2016-08-11 Alexei Podtelezhnikov + + * src/truetype/ttinterp.c (Pop_Push_Count): Revert changes. + +2016-08-11 Alexei Podtelezhnikov + + * src/truetype/ttinterp.c (TT_RunIns): Minor and formatting. + +2016-08-11 Alexei Podtelezhnikov + + * src/truetype/ttinterp.c (Pop_Push_Count): Fix some entries. + +2016-08-10 Peter Klotz + + * src/smooth/ftgrays.c (gray_hline): Fix uninitialized access. + +2016-08-10 Werner Lemberg + + [sfnt] Use correct type for `italicAngle' field (#48732). + + * src/sfnt/ttload.c (tt_face_load_post): Fix types. + +2016-08-06 Jon Spencer + + [sfnt] Fix `FT_Get_Advance' for bitmap strikes. + + `FT_Get_Advance' returns 0 for bitmap fonts. It first gets the + advance value from the font table and then scales it by the + `font->size->metrics->x_scale' field. But `FT_Select_Size' doesn't + set that value for bitmap fonts and the advance gets scaled to zero. + + Taken from + + https://github.com/behdad/harfbuzz/issues/252 + + * src/sfnt/ttsbit.c (tt_face_load_strike_metrics) + : Set scale values. + +2016-08-06 Behdad Esfahbod + + [truetype] Fix GX variation handling of composites. + + * src/truetype/ttgload.c (load_truetype_glyph) + [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Check `ARGS_ARE_XY_VALUES' flag. + +2016-08-05 Alexei Podtelezhnikov + + [smooth] Minor refactoring. + + * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line): + Updated. + +2016-07-29 Werner Lemberg + + [sfnt, truetype] Don't abort on invalid `maxComponentDepth'. + + Since 2016-05-16 we detect infinite recursion directly. + + * src/sfnt/ttload.c (tt_face_load_maxp): Don't adjust + `maxComponentDepth'. + * src/truetype/ttgload.c (load_truetype_glyph): Don't abort if + `maxComponentDepth' is not valid. Instead, simply adjust its value + and emit a tracing message. + +2016-07-26 Werner Lemberg + + * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Minor. + + No functional change. + +2016-07-22 Hin-Tak Leung + + [truetype] Record the end of IDEFs. + + To match the logic in FDEF. The value of the end is only used for + bound-checking in `Ins_JMPR', so it may not have been obvious that + it was not recorded. Tested (as part of Font Validator 2.0) all the + fonts on Fedora and did not see any change. + + * src/truetype/ttinterp.c (Ins_IDEF): Updated. + +2016-07-19 Werner Lemberg + + [truetype] Sanitizer fix, second try. + + * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix boundary + tests and use only one slot more. + +2016-07-19 Werner Lemberg + + [truetype] Sanitizer fix. + + * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Increase array + to fix nested loops. + +2016-07-18 Werner Lemberg + + [truetype] Make GETDATA work only for GX fonts. + + * src/truetype/ttinterp.c (opcode_name): Updated. + (Ins_GETDATA): Only define for `TT_CONFIG_OPTION_GX_VAR_SUPPORT'. + (TT_RunIns): Updated. + +2016-07-17 Werner Lemberg + + [truetype] Add support for Apple's + + GETDATA[], opcode 0x92 + + bytecode instruction. It always returns 17, and we have absolutely + no idea what it is good for... + + * src/truetype/ttinterp.c (Pop_Push_Count, opcode_name): Updated. + (Ins_GETDATA): New function. + (TT_RunIns): Add it. + +2016-07-16 Werner Lemberg + + [truetype] Add bytecode support for GX variation fonts. + + This commit implements undocumented (but confirmed) stuff from + Apple's old bytecode engine. + + GETVARIATION[], opcode 0x91 + This opcode pushes normalized variation coordinates for all axes + onto the stack (in 2.14 format). Coordinate of first axis gets + pushed first. + + GETINFO[], selector bit 3 + If GX variation support is enabled, bit 10 of the result is set + to 1. + + * src/truetype/ttinterp.c: Include FT_MULTIPLE_MASTERS_H. + (opcode_name) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated. + (Ins_GETINFO) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Handle selector + bit 3, checking support for variation glyph hinting. + (Ins_GETVARIATION) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New function + to implement opcode 0x91. + (TT_RunIns) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Handle opcode 0x91. + +2016-07-16 Werner Lemberg + + [truetype] Fix GETINFO bytecode instruction. + + * src/truetype/ttinterp.c (Ins_GETINFO): Fix return value for + stretching information. + +2016-07-16 Behdad Esfahbod + + [truetype] Make all glyphs in `Zycon' GX font work. + + * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix boundary + tests. + +2016-07-16 Werner Lemberg + + [truetype] Fix GX delta tracing. + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Trace + relative point movements. + +2016-07-16 Behdad Esfahbod + + [truetype] More fixes for GX. + + This finally fixes the rendering of the cyclist and the lizard in + the `Zycon' font. + + * src/truetype/ttgxvar.c (ft_var_readpackedpoints): `first' point + index is always cumulative. + + (tt_handle_deltas): Rename to... + (tt_interpolate_deltas): ... This. + Add new parameter for output point array. + Update caller. + + (TT_Vary_Apply_Glyph_Deltas): Add `points_out' array; it now holds + the intermediate results of `tt_interpolate_deltas' that are to be + added to `outline->points'. + +2016-07-15 Werner Lemberg + + * src/autofit/aflatin.c (af_latin_hints_compute_segments): Thinko. + + `max_pos' is always larger than `min_pos' so `FT_ABS' is not needed. + + Reported by Alexei. + +2016-07-16 Nikolaus Waxweiler + + * src/truetype/ttinterp.c (Ins_MIRP): Fix copy-and-paste error. + + Problem reported by Hin-Tak Leung. + +2016-07-15 Werner Lemberg + + [autofit] Update and improve segment and edge tracing. + + * src/autofit/afhints.c (af_glyph_hints_dump_segments): Trace + `delta' also. + Don't show first point of segment as a replacement for `pos'; this + is (a) misleading, since the difference to `pos' can be almost + arbitrarily large in corner cases, and (b) it is better to have all + segment data in font units instead of a single value given in output + space coordinates. + Improve layout. + (af_glyph_hints_dump_edges): Show px->units and units->px conversion + values for convenience. + Improve layout. + +2016-07-15 Werner Lemberg + + [autofit] For edges, reject segments wider than 1px (#41334). + + * src/autofit/afhints.h (AF_SegmentRec): New member `delta'. + + * src/autofit/aflatin.c (af_latin_hints_compute_segments): Compute + `delta'. + (af_latin_hints_compute_edges): Reject segments with a delta larger + than 0.5px. + +2016-07-14 Werner Lemberg + + * include/freetype/freetype.h (FT_IS_NAMED_INSTANCE): New macro. + +2016-07-14 Werner Lemberg + + [sfnt] Fix `face_index' value in `FT_Face' for named instances. + + * src/sfnt/sfobjs.c (sfnt_init_face): Don't strip off higher 16bits. + +2016-07-14 Werner Lemberg + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix tracing. + +2016-07-14 Behdad Esfahbod + + [truetype] Fix gxvar delta interpolation. + + The coordinates of the base font should be used for interpolation + purposes, NOT the current points (i.e., the result of accumulation + of previous deltas). + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Initialize + `points_org' before looping over all tuples. + + +---------------------------------------------------------------------------- + +Copyright 2016-2018 by +David Turner, Robert Wilhelm, and Werner Lemberg. + +This file is part of the FreeType project, and may only be used, modified, +and distributed under the terms of the FreeType project license, +LICENSE.TXT. By continuing to use, modify, or distribute this file you +indicate that you have read the license and understand and accept it +fully. + + +Local Variables: +version-control: never +coding: utf-8 +End: diff --git a/modules/freetype2/ChangeLog.28 b/modules/freetype2/ChangeLog.28 new file mode 100644 index 000000000..ca1ff3850 --- /dev/null +++ b/modules/freetype2/ChangeLog.28 @@ -0,0 +1,3136 @@ +2017-09-16 Werner Lemberg + + * Version 2.8.1 released. + ========================= + + + Tag sources with `VER-2-8-1'. + + * docs/VERSION.TXT: Add entry for version 2.8.1. + * docs/CHANGES: Updated. + + * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, + builds/windows/vc2005/index.html, + builds/windows/vc2008/freetype.vcproj, + builds/windows/vc2008/index.html, + builds/windows/vc2010/freetype.vcxproj, + builds/windows/vc2010/index.html, + builds/windows/visualc/freetype.dsp, + builds/windows/visualc/freetype.vcproj, + builds/windows/visualc/index.html, + builds/windows/visualce/freetype.dsp, + builds/windows/visualce/freetype.vcproj, + builds/windows/visualce/index.html, + builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2005-ce/index.html, + builds/wince/vc2008-ce/freetype.vcproj, + builds/wince/vc2008-ce/index.html: s/2.8/2.8.1/, s/28/281/. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. + + * builds/unix/configure.raw (version_info): Set to 21:0:15. + * CMakeLists.txt (VERSION_PATCH): Set to 1. + +2017-09-13 suzuki toshiya + + [sfnt] lowest gcc for vectors (e1d0249e) is changed to 4.7. + + __builtin_shuffle() was introduced in gcc-4.7. The lowest + gcc to enable vector operation is delayed from 4.6 to 4.7. + + * src/sfnt/pngshim.c (premultiply_data): Fix cpp-macro to + enable the vector operation, to change the lowest gcc version + from 4.6 to 4.7. + +2017-09-13 suzuki toshiya + + [cache] Fix a possible overflow by signed integer comparison. + + Improve the code by 5d3ff05615dda6d1325ed612381a17a0df04c975 , + issues are found by Behdad Esfahbod and Werner Lemberg. + + * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Replace + a subtraction to check higher bit by a bit operation, + and cpp-conditionalize for appropriate systems. Add better + documentation to the comment. + (FTC_ImageCache_LookupScaler): Ditto. + (FTC_SBitCache_Lookup): Ditto. + (FTC_SBitCache_LookupScaler): Ditto. + +2017-09-13 Werner Lemberg + + [autofit] Really fix #41334 (#52000). + + * src/autofit/aflatin.c (af_latin_hints_compute_segments): Set + `segment->delta' everywhere. + +2017-09-12 suzuki toshiya + + [autofit, sfnt] Fix for `make multi'. + + * src/autofit/afshaper.c: Include FT_ADVANCE_H, to use + FT_Get_Advance() in it. + * src/sfnt/ttcmap.c: Include FT_SERVICE_POSTSCRIPT_CMAPS_H + to use PS_Unicodes in it, also include `ttpost.h' to use + tt_face_get_ps_name() in it. + +2017-09-11 Azzuro + + [build] Improve builds with different MS Visual Studio versions. + + * builds/windows/vc2010/freetype.vcxproj: Switch platform toolset + according to the Visual Studio version. + +2017-09-11 Werner Lemberg + + * src/sfnt/ttkern.c (tt_face_load_kern): Reject format 2 tables. + + Reported by Behdad. + +2017-09-09 Werner Lemberg + + [autofit] Improve communication with ftgrid. + + * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): + Provide values in font units. + +2017-09-08 suzuki toshiya + + [base] Remove a check for resource ID in the resource fork driver. + + LastResort.dfont has a marginal resource ID 0xFFFF for sfnt + resource. Inside Macintosh: More Macintosh Toolbox, `Resource IDs' + (1-46), tells that some IDs are reserved and should not be used. + FreeType2 just uses resource ID to sort the fragmented resource. + To accept the marginal fonts, the checking is removed. + + * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Remove res_id + validity check, fix a trace message format. + +2017-09-08 suzuki toshiya + + [sfnt, truetype] Register the tags for marginal fonts. + + The first 32bit of standard TrueType variants is 0x00010000, + `OTTO', `ttcf', `true' or `typ1'. 2 marginal dfonts on legacy Mac + OS X, Keyboard.dfont and LastResort.dfont, have the sfnt resources + starting 0xA5 followed by `kbd' or `lst'. Considering the following + data could be parsed as conventional TrueType fonts, the header + checking is updated to allow these tags. It seems that recent Mac + OS X has already switched to normal TTF for these fonts. + + See the discussion at + http://u88.n24.queensu.ca/exiftool/forum/index.php?topic=3931.0 + + * include/freetype/tttags.h (TTAG_0xA5kbd, TTAG_0xA5lst): New header + tags for Keyboard.dfont and LastResort.dfont. + * src/sfnt/sfobjs.c (sfnt_open_font): Accept the sfnt resource + starts with TTAG_0xA5kbd or TTAG_0xA5lst. + * src/truetype/ttobjs.c (tt_face_init): Accept the face with the + format tag is TTAG_0xA5kbd or TTAG_0xA5lst. + +2017-09-05 Werner Lemberg + + Fix multiple calls of `FT_Bitmap_Convert'. + + The documentation of `FT_Bitmap_Convert' says that multiple calls do + proper reallocation of the target FT_Bitmap object. However, this + failed for the sequence + + non-empty bitmap + empty bitmap + non-empty bitmap + + Reason was that `FT_Bitmap_Convert' only reallocated the bitmap + buffer if it became too small; it didn't make the buffer smaller. + For an empty bitmap following a non-empty one, only the buffer + dimension got set to zero, without deallocation. If the next call + was a non-empty buffer again, an assertion in `ft_mem_qrealloc' was + triggered. + + * src/base/ftbitmap.c (FT_Bitmap_Convert): Always reallocate target + buffer to the correct size. + + * docs/CHANGES: Document it. + +2017-09-05 Werner Lemberg + + [bdf] Fix size and resolution handling. + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Use `SIZE' values if + `POINT_SIZE', `RESOLUTION_X', or `RESOLUTION_Y' properties are + missing. + + * docs/CHANGES: Document it. + +2017-08-25 Alexei Podtelezhnikov + + Swap `ALLOC_MULT' arguments (#51833). + + * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Updated. + * src/winfonts/winfnt.c (FNT_Load_Glyph): Updated. + * src/raster/ftrend1.c (ft_raster1_render): Updated. + +2017-08-23 Werner Lemberg + + [sfnt] Fix clang compilation (#51788). + + * src/sfnt/pngshim.c (premultiply_data): Use vectors instead of + scalars. + (vector_shuffle): New macro to take care of a different built-in + function name on clang. + +2017-08-22 Werner Lemberg + + [base] Don't zero out allocated memory twice (#51816). + + Patch applied from bug report. + + * src/base/ftutil.c (ft_mem_qrealloc): Use low-level allocation to + avoid unnecessary overhead. + +2017-08-22 Werner Lemberg + + [truetype] Integer overflow. + + Changes triggered by + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3107 + + * src/truetype/ttinterp.c (Ins_MDRP, Ins_MIRP, Ins_ALIGNPTS): Use + NEG_LONG. + +2017-08-17 Alexei Podtelezhnikov + + [sfnt] Avoid synthetic unicode for symbol fonts with PUA. + + Reported as + + https://bugs.chromium.org/p/chromium/issues/detail?id=754574 + + * src/sfnt/sfobjs.c (sfnt_load_face): Check for FT_ENCODING_MS_SYMBOL. + +2017-08-16 Werner Lemberg + + * src/sfnt/pngshim.c (premultiply_data): Fix compiler warnings. + +2017-08-15 Behdad Esfahbod + + [sfnt] Speed up PNG image loading. + + This reduces the overhead of `premultiply_data' by 60%. + + * src/sfnt/pngshim.c (premultiply_data): Provide code which uses + gcc's (and clang's) `vector_byte' attribute to process 4 pixels at a + time. + +2017-08-11 Werner Lemberg + + [sfnt, truetype] Improve handling of missing sbits. + + Requested by Behdad. + + Modern bitmap-only SFNTs like `NotoColorEmoji.ttf' don't contain + entries in the bitmap strike(s) for empty glyphs. Instead, they + rely that a space glyph gets created from the font's metrics data. + This commit makes FreeType behave accordingly. + + * include/freetype/fterrdef.h (FT_Err_Missing_Bitmap): New error + code. + + * src/sfnt/ttsbit.c (tt_sbit_decoder_load_image): Change error codes + to make a distinction between a missing bitmap in a composite and a + simple missing bitmap. + + * src/truetype/ttgload.c (TT_Load_Glyph): For a missing bitmap (in a + bitmap-only font), synthesize an empty bitmap glyph if metrics are + available. + +2017-08-10 Werner Lemberg + + [base] Minor API improvement for default variation axis setting. + + * src/base/ftmm.c (FT_Set_MM_Design_Coordinates, + FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates, + FT_Set_Var_Blend_Coordinates): Allow coords==NULL if num_coords==0. + + * docs/CHANGES: Updated. + +2017-08-08 Werner Lemberg + + [psnames] Really fix issue #49949. + + We now use a separate preprocessor macro to handle both definition + and declaration of the glyph name arrays. + + * src/psnames/psmodule.c (DEFINE_PS_TABLE_DATA): New macro. + + * src/tools/glnames.py (StringTable::dump, + StringTable::dump_sublist): Use `DEFINE_PS_TABLE_DATA'. + (dump_encoding): Ditto. + (main): Use `wb' mode for writing the output file, which works on + Windows also. + + * src/psnames/pstables.h: Regenerated. + +2017-08-08 Alexei Podtelezhnikov + + [smooth] Harmony LCD rendering. + + This is a new technology for LCD-optimized rendering. It capitalizes + on the fact that each color channel grid is shifted by a third of a + pixel. Therefore it is logical to render 3 separate monochrome + bitmaps shifting the outline by 1/3 pixel, and then combine them. + Importantly, the resulting output does not require additional LCD + filtering. + + * src/smooth/ftsmooth.c (ft_smooth_render_generic) + [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Implement new LCD-optimized + rendering. + + * include/freetype/ftlcdfil.h, include/freetype/freetype.h, + include/freetype/config/ftoption.h, devel/ftoption.h: Updated + documentation. + +2017-08-08 Alexei Podtelezhnikov + + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Clean up. + +2017-08-08 Alexei Podtelezhnikov + + * src/sfnt/ttpost.c (format): Use otspec-compliant versions. + +2017-08-05 Werner Lemberg + + [truetype] Integer overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2868 + + * src/truetype/ttinterp.c (Ins_ALIGNRP): Use NEG_LONG. + +2017-08-05 Werner Lemberg + + [base, truetype] New function `FT_Get_Var_Axis_Flags'. + + The reserved `flags' field got a value in OpenType version 1.8.2; + unfortunately, the public `FT_Var_Axis' structure misses the + corresponding element. Since we can't add a new field, we add an + access function. + + * src/base/ftmm.c (FT_Get_Var_Axis_Flags): New function. + + * include/freetype/ftmm.h (FT_VAR_AXIS_FLAG_HIDDEN): New macro. + Updated. + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Increase allocated memory + of `mmvar' to hold axis flags. + Fill the axis flags array. + + * docs/CHANGES: Updated. + +2017-08-03 Nikolaus Waxweiler + + [truetype] Fix metrics of B/W hinting in v40 mode. + + Phantom points are now saved outside v40 backwards compatibility + mode. This fixes the jumping glyphs when switching between v35 and + v40 monochrome mode. + + * src/truetype/ttgload.c (TT_Hint_Glyph): Fix inversed bool logic. + +2017-08-03 Nikolaus Waxweiler + + [truetype] Do not set any ClearType flags in v40 monochrome mode. + + This fixes weird behavior of instructions that resulted in rendering + differences between v35 and v40 in monochrome mode, e.g., in + `timesbi.ttf'. + + * src/truetype/ttinterp.c (Ins_GETINFO) + [TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL]: Check + `subpixel_hinting_lean'. + +2017-08-01 Werner Lemberg + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix thinko. + +2017-08-01 Behdad Esfahbod + + [truetype] Fix loading of named instances. + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Preserve file position + while loading the `avar' table. + +2017-08-01 Werner Lemberg + + [sfnt, truetype] Minor adjustments for OpenType 1.8.2. + + * src/sfnt/sfobjs.c (sfnt_load_face): The units per EM value has now + (tighter) limits. + + * src/truetype/ttgload.c (load_truetype_glyph): The new OpenType + version explicitly allows all negative values for the number of + contours if we have a composite glyph (this is for better backwards + compatibility I guess), but it still recommends value -1. + +2017-07-26 Werner Lemberg + + [cff] Integer overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2738 + + * src/cff/cf2hints.c (cf2_glyphpath_computeOffset, + cf2_glyphpath_curveTo): Use ADD_INT32. + +2017-07-13 Werner Lemberg + + [base] Fix memory leak. + + Reported as + + https://bugs.chromium.org/p/chromium/issues/detail?id=738362 + + * src/base/ftglyph.c (FT_Get_Glyph): Do proper deallocation in case + of error. + +2017-07-12 Werner Lemberg + + [base] Integer overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2573 + + * src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Use + FT_PIX_CEIL_LONG and FT_PIX_ROUND_LONG. + +2017-07-12 Werner Lemberg + + * src/truetype/ttpload.c (tt_face_get_location): Off-by-one typo. + + Also improve tracing message. + + Problem reported as + + https://bugs.chromium.org/p/chromium/issues/detail?id=738919 + +2017-07-07 Werner Lemberg + + [cff] Integer overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2517 + + * src/cff/cf2blues.c (cf2_blues_capture): Use SUB_INT32. + +2017-07-05 Werner Lemberg + + * src/sfnt/ttcmap.c (tt_cmap_unicode_class_rec): Fix warning. + +2017-07-05 Werner Lemberg + + * src/truetype/ttgxvar.c (FT_Stream_SeekSet): Fix warning (#51395). + +2017-07-04 Werner Lemberg + + [truetype] Prevent address overflow (#51365). + + * src/truetype/ttgxvar.c (FT_Stream_SeekSet): Add guard. + +2017-07-03 Alexei Podtelezhnikov + + * src/base/ftlcdfil.c (ft_lcd_filter_fir): Improve code. + +2017-07-03 Werner Lemberg + + [truetype] Integer overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2455 + + * src/truetype/ttinterp.c (Ins_SCFS): Use SUB_LONG. + +2017-07-01 Alexei Podtelezhnikov + + * src/sfnt/sfobjs.c (sfnt_load_face): Ignore No_Unicode_Glyph_Name. + +2017-06-28 Ben Wagner + + Avoid Microsoft compiler warnings (#51331). + + While clang's sanitizer recommends a cast to unsigned for safe + negation (to handle -INT_MIN), both MSVC and Visualc emit warning + C4146 if an unsigned value gets negated. + + * include/freetype/internal/ftcalc.h (NEG_LONG, NEG_INT32), + src/base/ftcalc.c (FT_MOVE_SIGN): Replace negation with a + subtraction. + +2017-06-27 Werner Lemberg + + * src/cff/cffparse.c (do_fixed): Fix typo. + + Spotted by chris . + +2017-06-27 Werner Lemberg + + [truetype] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2384 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2391 + + * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_DivFix): Use + NEG_LONG. + + * src/truetype/ttinterp.c (Ins_SxVTL): Use NEG_LONG. + +2017-06-24 Werner Lemberg + + [truetype] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2364 + + * src/truetype/ttinterp.c (Ins_ISECT): Use NEG_LONG. + +2017-06-22 Werner Lemberg + + [cff, truetype] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2323 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2328 + + * src/cff/cf2blues.c (cf2_blues_capture): Use ADD_INT32 and + SUB_INT32. + + * src/truetype/ttinterp.c (Ins_SDPVTL): Use SUB_LONG and NEG_LONG. + +2017-06-21 Alexei Podtelezhnikov + + [sfnt] Synthesize a Unicode charmap if one is missing. + + * src/sfnt/ttcmap.h (tt_cmap_unicode_class_rec): Declare it. + * src/sfnt/ttcmap.c (tt_get_glyph_name, tt_cmap_unicode_init, + tt_cmap_unicode_done, tt_cmap_unicode_char_index, + tt_cmap_unicode_char_next, tt_cmap_unicode_class_rec): Implement + synthetic Unicode charmap class. + (tt_get_cmap_info): Make sure the callback is available. + + * src/sfnt/sfobjs.c (sfnt_load_face) + [FT_CONFIG_OPTION_POSTSCRIPT_NAMES]: If Unicode charmap is missing, + synthesize one. + + * include/freetype/config/ftoption.h: Document it. + * devel/ftoption.h: Ditto. + +2017-06-20 Tony Theodore + + Fix pkg-config in freetype-config for cross-compiling (#51274). + + * builds/unix/unix-def.in (PKG_CONFIG): New variable. + (freetype-config): Use it in sed expression. + + * builds/unix/freetype-config.in: s/pkg-config/%PKG_CONFIG%/. + +2017-06-20 Werner Lemberg + + [cff, truetype] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2300 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2313 + + * src/cff/cf2hints.c (cf2_hintmap_adjustHints): Use ADD_INT32. + + * src/truetype/ttinterp.c (Ins_ABS): Avoid FT_ABS. + +2017-06-17 Alexei Podtelezhnikov + + [base, smooth] LCD filtering cleanups. + + * src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy): + Clean up, start filtering from the bottom-left origin. + + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Updated. + +2017-06-16 Werner Lemberg + + [truetype] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2270 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2276 + + * src/truetype/ttinterp.c (Ins_MDRP, _iup_worker_interpolate): Use + ADD_LONG and SUB_LONG. + +2017-06-15 Werner Lemberg + + [bdf, cff] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2244 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2261 + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Replace calls to FT_ABS with + direct code to avoid value negation. + + * src/cff/cf2blues.c (cf2_blues_capture): Use SUB_INT32 and + ADD_INT32. + +2017-06-13 Werner Lemberg + + * src/winfonts/winfnt.c (FNT_Face_Init): Don't set active encoding. + + FreeType only sets a default active encoding for Unicode. + +2017-06-13 Werner Lemberg + + [cff, truetype] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2216 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2218 + + * src/cff/cf2fixed.h (cf2_fixedAbs): Use NEG_INT32. + + * src/truetype/ttinterp.c (Ins_IP): Use SUB_LONG. + +2017-06-11 Werner Lemberg + + [cff] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2200 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2210 + + * src/cff/cf2hints.c (cf2_hintmap_insertHint): Use SUB_INT32 and + ADD_INT32. + + * src/cff/cf2intrp.c (cf2_interpT2CharString) : Use + ADD_INT32. + +2017-06-10 Werner Lemberg + + [truetype] Fix TT_Set_Var_Design. + + Reported by Nikolaus Waxweiler . + + * src/truetype/ttgxvar.c (TT_Set_Var_Design): Correctly handle the + case where we have less input coordinates than axes. + +2017-06-10 Werner Lemberg + + * src/base/ftcalc.c (FT_DivFix): Fix embarrassing typo. + + Bug introduced 2017-05-28. + +2017-06-09 Werner Lemberg + + [cff, truetype] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2144 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2151 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2153 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2173 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2186 + + * src/cff/cf2blues.c (cf2_blues_init): Use SUB_INT32. + + * src/truetype/ttinterp.c (Round_None, Round_To_Grid, + Round_To_Half_Grid, Round_Down_To_Grid, Round_Up_To_Grid, + Round_To_Double_Grid, Round_Super, Round_Super_45): Use ADD_LONG, + SUB_LONG, NEG_LONG, FT_PIX_ROUND_LONG, FT_PIX_CEIL_LONG, + FT_PAD_ROUND_LONG + (Ins_SxVTL, Ins_MIRP): Use SUB_LONG. + (_iup_worker_shift): Use SUB_LONG and ADD_LONG. + +2017-06-09 Werner Lemberg + + Provide more macros for flooring, ceiling, and rounding. + + These versions don't produce run-time errors due to integer + overflow. + + * include/freetype/internal/ftobjs.h: Include FT_INTERNAL_CALC_H. + (FT_PAD_ROUND_LONG, FT_PAD_CEIL_LONG, FT_PIX_ROUND_LONG, + FT_PIX_CEIL_LONG): New macros. + (FT_PAD_ROUND_INT32, FT_PAD_CEIL_INT32, FT_PIX_ROUND_INT32, + FT_PIX_CEIL_INT32): New macros. + +2017-06-09 Werner Lemberg + + Remove unused macros. + + * include/freetype/internal/ftcalc.h (ADD_INT, SUB_INT, MUL_INT, + NEG_INT): Deleted. + +2017-06-09 Werner Lemberg + + */*: Remove `OVERFLOW_' prefix. + + This increases readability. + +2017-06-07 Werner Lemberg + + [cff, truetype] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2133 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2137 + + * src/cff/cf2hints.c (cf2_hint_init): Use OVERFLOW_SUB_INT32. + + * src/truetype/ttinterp.c (PROJECT, DUALPROJ): Use + OVERFLOW_SUB_LONG. + +2017-06-06 Werner Lemberg + + [cff] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2109 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2110 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2122 + + * src/cff/cf2blues.c (cf2_blues_init): Use OVERFLOW_SUB_INT32. + + * src/cff/cf2hints.c (cf2_hintmap_map): Synchronize if-else + branches. + +2017-06-05 Werner Lemberg + + [cff] Integer overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2089 + + * src/cff/cffload.c (cff_blend_doBlend): User OVERFLOW_ADD_INT32. + +2017-06-04 Werner Lemberg + + [cff, truetype] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2075 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2088 + + * src/cff/cf2font.c (cf2_font_setup): Use OVERFLOW_MUL_INT32. + + * src/truetype/ttinterp.c (Ins_ISECT): Use OVERFLOW_MUL_LONG, + OVERFLOW_ADD_LONG, and OVERFLOW_SUB_LONG. + +2017-06-03 Werner Lemberg + + [base, cff, truetype] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2060 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2062 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2063 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2068 + + * src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Use + OVERFLOW_ADD_LONG and OVERFLOW_SUB_LONG. + + * src/cff/cf2blues.c (cf2_blues_capture), src/cff/cf2hints.c + (cf2_hintmap_adjustHints): Use OVERFLOW_SUB_INT32. + + * src/truetype/ttgload.c (compute_glyph_metrics): User + OVERFLOW_SUB_LONG. + + * src/truetype/ttinterp.c (Direct_Move, Direct_Move_Orig, + Direct_Move_X, Direct_Move_Y, Direct_Move_Orig_X, + Direct_Move_Orig_Y, Move_Zp2_Point, Ins_MSIRP): Use + OVERFLOW_ADD_LONG and OVERFLOW_SUB_LONG. + +2017-06-03 Werner Lemberg + + * builds/unix/freetype-config.in: Fix pkg-config test (#51162). + + Patch directly taken from bug report. + +2017-06-03 Werner Lemberg + + [bdf] Synchronize sanity checks with pcf driver. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2054 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2058 + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Check font ascent and descent. + Check AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE, RESOLUTION_X, and + RESOLUTION_Y properties. + +2017-06-03 Werner Lemberg + + [cff, truetype] Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2047 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2057 + + * src/cff/cf2hints.c (cf2_hintmap_map): Use OVERFLOW_SUB_INT32. + + * src/truetype/ttinterp.c (Ins_ADD): Use OVERFLOW_ADD_LONG. + (Ins_SUB): Use OVERFLOW_SUB_LONG. + (Ins_NEG): Use NEG_LONG. + +2017-06-03 Werner Lemberg + + ftcalc.h: Avoid left-shift of negative numbers. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2055 + + * include/freetype/internal/ftcalc.h (INT_TO_F26DOT6, + INT_TO_F2DOT14, INT_TO_FIXED, F2DOT14_TO_FIXED): Use multiplication. + +2017-06-02 Werner Lemberg + + [cff] Even more integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2046 + + * src/cff/cf2intrp.c (cf2_doStems, cf2_interpT2CharString): Use + OVERFLOW_ADD_INT32. + +2017-06-02 Werner Lemberg + + [cff] More integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2032 + + * src/cff/cf2blues.c (cf2_blues_init): Use OVERFLOW_SUB_INT32. + +2017-06-02 Werner Lemberg + + [bdf] Don't left-shift negative numbers. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2031 + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Use multiplication. + +2017-06-02 Werner Lemberg + + [bdf] Fix integer scanning routines. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2029 + + * src/bdf/bdflib.c (_bdf_atoul, _bdf_atol, _bdf_atous, _bdf_atos): + Stop scanning if result would overflow. + +2017-06-02 Werner Lemberg + + [cff] Fix integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2027 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2028 + + * src/cff/cf2hints.c (cf2_hintmap_insertHint), src/cff/cf2intrp.c + (cf2_doFlex): Use OVERFLOW_ADD_INT32 and OVERFLOW_SUB_INT32. + +2017-06-01 Werner Lemberg + + [smooth] Some 32bit integer overflow run-time errors. + + * src/smooth/ftgrays.c [STANDALONE] (OVERFLOW_ADD_LONG, + OVERFLOW_SUB_LONG, OVERFLOW_MUL_LONG, NEG_LONG): New macros. + [!STANDALONE]: Include FT_INTERNAL_CALC_H. + (gray_render_cubic): Use those macros where appropriate. + +2017-06-01 Werner Lemberg + + * src/base/ftglyph.c (FT_Get_Glyph): Check `slot->advance'. + +2017-06-01 Werner Lemberg + + [psaux] 32bit integer overflow tun-time errors (#46149). + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Use + OVERFLOW_ADD_LONG and OVERFLOW_SUB_LONG where appropriate. + +2017-06-01 Werner Lemberg + + * src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter again. + + Problem reported by Marek Kašík . + + The problematic font that exceeds the old limit is Padauk-Bold, + version 3.002, containing bytecode generated by a buggy version of + ttfautohint. + +2017-05-31 Werner Lemberg + + [cff] 32bit integer overflow run-time errors 2/2 (#46149). + + This commit handles the new engine. + + * include/freetype/internal/ftcalc.h (OVERFLOW_ADD_INT32, + OVERFLOW_SUB_INT32, OVERFLOW_MUL_INT32, NEG_INT, NEG_LONG, + NEG_INT32): New macros. + + * src/cff/cf2ft.c (cf2_getScaleAndHintFlag): Use OVERFLOW_ADD_INT32. + + * src/cff/cf2hints.c (cf2_getWindingMomentum, cf2_hint_init, + cf2_hintmap_map, cf2_glyphpath_hintPoint, + cf2_glyphpath_computeIntersection, cf2_glyphpath_computeOffset, + cf2_glyphpath_lineTo, cf2_glyphpath_curveTo): Use + OVERFLOW_ADD_INT32, OVERFLOW_SUB_INT32, OVERFLOW_MUL_INT32, and + NEG_INT32 where appropriate. + + * src/cff/cf2intrp.c (cf2_doFlex, cf2_doBlend, + cf2_interpT2CharString): Ditto. + Also add some other code where needed to avoid overflow. + +2017-05-30 Werner Lemberg + + [cff] 32bit integer overflow run-time errors 1/2 (#46149). + + This commit handles the old engine. + + * src/cff/cffgload.c: Include FT_INTERNAL_CALC_H. + (cff_decoder_parse_charstrings): Use OVERFLOW_ADD_LONG and + OVERFLOW_SUB_LONG where needed. + + * src/cff/cffparse.c: Include FT_INTERNAL_CALC_H. + (power_ten_limits): New static array. + (do_fixed): Use it to prevent multiplication overflow. + (cff_parser_run): Use OVERFLOW_ADD_LONG. + +2017-05-30 Werner Lemberg + + [psaux] Correctly handle sequences of multiple number signs. + + * src/psaux/psconv.c (PS_Conv_Strtol, PS_Conv_ToFixed): Return zero + if we encounter more than a single sign. + +2017-05-29 Werner Lemberg + + [pcf] 32bit integer overflow run-time errors (#46149). + + * src/pcf/pcfread.c (pcf_get_accel): Add sanity checks for + `fontAscent' and `fontDescent'. + (pcf_load_font): Add sanity checks for global height. + Add sanity checks for AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE, + RESOLUTION_X, and RESOLUTION_Y properties. + +2017-05-29 Werner Lemberg + + Handle some integer overflow run-time errors (#46149, #48979). + + This commit (mainly for 32bit CPUs) is the first of a series of + similar commits to handle known integer overflows. Basically, all + of them are harmless, since they affect rendering of glyphs only, + not posing security threats. It is expected that fuzzying will show + up more overflows, to be fixed in due course. + + The idea is to mark places where overflows can occur, using macros + that simply cast to unsigned integers, because overflow arithmetic + is well defined in this case. Doing so suppresses run-time errors + of sanitizers without adding computational overhead. + + * include/freetype/internal/ftcalc.h (OVERFLOW_ADD_INT, + OVERFLOW_SUB_INT, OVERFLOW_MUL_INT, OVERFLOW_ADD_LONG, + OVERFLOW_SUB_LONG, OVERFLOW_MUL_LONG): New macros. + + * src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_Matrix_Multiply, + FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled, + ft_corner_orientation): Use new macros. + + * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use new macros. + +2017-05-28 Werner Lemberg + + * include/freetype/internal/ftcalc.h (FLOAT_TO_FIXED): Remove. + + This macro is not used. + +2017-05-28 Werner Lemberg + + [cff] s/cf2_floatToFixed/cf2_doubleToFixed/. + + The new name better describes what the macro actually does; + additionally, we don't need a trailing `f' for literals (there was + only a single such instance in the code, but this caused a clang + warning because the macro itself uses `double' literals). + + * src/cff/cf2blues.c, src/cff/cf2blues.h, src/cff/cf2fixed.h, + src/cff/cf2font.c, src/cff/cf2hints.c: Updated. + +2017-05-28 Werner Lemberg + + Fix negation of INT_MIN and LONG_MIN (#46149). + + * src/base/ftcalc.c (FT_MOVE_SIGN): Add argument to pass unsigned + value, to be used as the result. + (FT_MulDiv, FT_MulDiv_No_Round, FT_DivFix, FT_MulFix, + FT_Vector_NormLen): Updated. + +2017-05-27 Werner Lemberg + + [truetype] Fix handling of design coordinates (#51127). + + * src/truetype/ttgxvar.c (tt_set_mm_blend): Compute all design + coordinates if we have to create the `blends->coord' array. + (TT_Get_MM_Blend, TT_Get_Var_Design): Select default instance + coordinates if no instance is selected yet. + +2017-05-24 Werner Lemberg + + [bdf, pcf] Support ISO646.1991-IRV character encoding (aka ASCII). + + Problem reported by Marek Kašík , cf. + + https://bugzilla.redhat.com/show_bug.cgi?id=1451795 + + * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdrivr.c + (PCF_Face_Init): Implement it. + +2017-05-20 Nikolaus Waxweiler + + [truetype] Always use interpreter v35 for B/W rendering (#51051). + + * src/truetype/ttgload.c (tt_loader_init) + [TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL]: Adjust + `subpixel_hinting_lean', `grayscale_cleartype', and + `vertical_lcd_lean' accordingly. + + * src/truetype/ttinterp.c (Ins_GETINFO): Updated. + (TT_RunIns): Update `backward_compatibility' flag. + +2017-05-20 Alexei Podtelezhnikov + + [smooth] Implement minimal dynamic padding for LCD filtering. + + Extra bitmap padding for LCD filtering depends on the filter. The + default 5-tap filter needs 2 extra subpixels. The light 3-tap filter + needs only 1 extra subpixel. This space could be already available + due to rounding. In order to optimize the padding, we now expand + CBox for the given filter weights before rounding. + + This change breaks current Skia (and Firefox). + + * include/freetype/internal/ftobjs.h (FT_LibraryRec) + [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Remove `lcd_extra' field. + + * src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights, + FT_Library_SetLcdFilter): Remove `lcd_extra' initializations. + + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Implement dymanic + LCD padding. + +2017-05-15 Werner Lemberg + + [sfnt] Return proper scaling values for SBIX bitmaps. + + Problem reported by Hin-Tak Leung . + + * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Implement it. + +2017-05-15 Werner Lemberg + + [truetype] Fix error handling for embedded bitmaps. + + Problem reported by Hin-Tak Leung . + + * src/truetype/ttgload.c (TT_Load_Glyph) + [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Handle error if font is not + scalable. + +2017-05-15 Alexei Podtelezhnikov + + [autofit] Make autohint warping NORMAL option. + + This moves warping option from LIGHT to NORMAL mode. This makes LIGHT + truly void of hinting in x-direction, with left side bearing never + changed and right side bearing only altered by advance rounding. + Therefore, LIGHT is now ready to return fractional advance. As a + NORMAL option, warping substitutes normal hinting. + + * src/autofit/afcjk.c (af_cjk_hints_apply): Updated. + * src/autofit/aflatin.c (af_latin_hints_apply): Updated. + * src/autofit/aflatin2.c (af_latin2_hints_apply): Updated. + + * src/autofit/afloader.c (af_loader_load_glyph): Handle warping + phantom points as normal. + +2017-05-14 Werner Lemberg + + Remove remnants of raster pool. + + * include/freetype/internal/ftobjs.h (FT_LibraryRec): Remove + `raster_pool' and `raster_pool_size' fields. + + * src/base/ftobjs.c (FT_New_Library), src/raster/ftrend1.c + (ft_raster1_init), src/smooth/ftsmooth.c (ft_smooth_init): Updated. + +2017-05-13 Werner Lemberg + + * Version 2.8 released. + ======================= + + + Tag sources with `VER-2-8'. + + * docs/VERSION.TXT: Add entry for version 2.8. + * docs/CHANGES: Updated. + + * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, + builds/windows/vc2005/index.html, + builds/windows/vc2008/freetype.vcproj, + builds/windows/vc2008/index.html, + builds/windows/vc2010/freetype.vcxproj, + builds/windows/vc2010/index.html, + builds/windows/visualc/freetype.dsp, + builds/windows/visualc/freetype.vcproj, + builds/windows/visualc/index.html, + builds/windows/visualce/freetype.dsp, + builds/windows/visualce/freetype.vcproj, + builds/windows/visualce/index.html, + builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2005-ce/index.html, + builds/wince/vc2008-ce/freetype.vcproj, + builds/wince/vc2008-ce/index.html: s/2.7.1/2.8/, s/271/28/. + + * include/freetype/freetype.h (FREETYPE_MINOR): Set to 8. + (FREETYPE_PATCH): Set to 0. + + * builds/unix/configure.raw (version_info): Set to 20:0:14. + * CMakeLists.txt (VERSION_MINOR): Set to 8. + (VERSION_PATCH): Set to 0. + +2017-05-12 Hin-Tak Leung + + Fix `FT_UINT_TO_POINTER' macro for Windows. + + * builds/unix/ftconfig.in, builds/vms/ftconfig.h, + include/freetype/config/ftconfig.h (FT_UINT_TO_POINTER) [_WIN64]: + Fix definition. + +2017-05-11 Sascha Brawer + Werner Lemberg + Werner Lemberg + Werner Lemberg + Werner Lemberg + Werner Lemberg + Werner Lemberg + Werner Lemberg + Werner Lemberg + Werner Lemberg + Werner Lemberg + + [truetype] Add tricky font `DFGirl-W6-WIN-BF' (from Dynalab). + + Reported by Roy Tam . + + * src/truetype/ttobjs.c (tt_check_trickyness_family): Implement it. + +2017-05-07 Roy Tam + Werner Lemberg + + [truetype] More tricky fonts (mainly from Dynalab). + + * src/truetype/ttobjs.c (tt_check_trickyness_family, + tt_check_trickyness_sfnt_ids): Add them. + +2017-05-07 Werner Lemberg + + [truetype] Add tricky font `DLCHayMedium' (from Dynalab). + + Reported by Roy Tam . + + * src/truetype/ttobjs.c (tt_check_trickyness_family): Implement it. + +2017-05-03 Werner Lemberg + + */*: s/backwards compatibility/backward compatibility/. + +2017-05-03 Sascha Brawer + Werner Lemberg + Werner Lemberg + + [autofit] Add blue-zone support for Sundanese script. + + This essentially moves the Sundanese script from the `Indic' hinter + to the `Latin' hinter. + + * src/autofit/afblue.dat: Add blue zone data for Sundanese. + + * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. + + * src/autofit/afscript.h: Add Sundanese standard character and move + data out of AF_CONFIG_OPTION_INDIC block. + + * src/autofit/afranges.c: Move Sundanese data out of + AF_CONFIG_OPTION_INDIC block. + + * src/autofit/afstyles.h: Update Sundanese data; in particular, use + AF_WRITING_SYSTEM_LATIN. + +2017-05-03 Sascha Brawer + Werner Lemberg + + [truetype] Make `IUP' gvar deltas do the same as Apple (#50832). + + When points are not touched by gvar interpolation deltas, FreeType + gave a slightly different result than Apple's CoreText. + + The OpenType working group will update the specification to document + the following behaviour: If the two points with deltas to the `left' + and `right' of the untouched point have the same coordinate, then + the inferred delta for the untouched point should be zero. + + * src/truetype/ttgxvar.c (tt_delta_interpolate): Implement new + behaviour. + +2017-05-02 Werner Lemberg + + [autofit] Remove `slight' auto-hint mode again. + + A poll on freetype-devel favoured changes directly applied to + `light'. + + * include/freetype/freetype.h (FT_LOAD_TARGET_SLIGHT, + FT_RENDER_MODE_SLIGHT): Removed. + + * src/autofit/afcjk.c (af_cjk_hints_init), src/autofit/aflatin.c + (af_latin_hints_init), src/autofit/aflatin2.c + (af_latin2_hints_init): Revert change from 2017-04-22. + + * src/autofit/afloader.c (af_loader_load_glyph) Remove references to + FT_RENDER_MODE_SLIGHT. + [AF_CONFIG_OPTION_TT_SIZE_METRICS]: Enable TrueType-like metrics + unconditionally. + + * src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Revert change from + 2017-04-22. + + * src/base/ftobjs.c (FT_Load_Glyph): Revert change from 2017-04-22. + + * src/pshinter/pshalgo.c (ps_hints_apply): Revert change from + 2017-04-22. + + * src/smooth/ftsmooth.c (ft_smooth_render): Revert change from + 2017-04-22. + + * docs/CHANGES: Updated. + +2017-04-30 Werner Lemberg + + [autofit] Fix metrics computation. + + Problem reported by Markus Trippelsdorf and + Nikolaus Waxweiler . + + * src/base/ftobjs.c (FT_Request_Size): Trigger recomputation of + auto-hinter metrics. Without this change, multiple size changing + calls for a single face fail. + +2017-04-29 Werner Lemberg + + * src/truetype/ttdriver.c (tt_size_request): Properly check `error'. + + Reported by Earnestly in + + https://lists.nongnu.org/archive/html/freetype/2017-04/msg00031.html + +2017-04-27 Werner Lemberg + + Introduce AF_CONFIG_OPTION_TT_SIZE_METRICS configuration option. + + * include/freetype/config/ftoption.h + (AF_CONFIG_OPTION_TT_SIZE_METRICS): New option, commented out by + default. + + * src/autofit/afloader.c (af_loader_load_glyph): Use + AF_CONFIG_OPTION_TT_SIZE_METRICS to guard the corresponding code. + +2017-04-26 Werner Lemberg + + * include/freetype/freetype.h (FT_Render_Mode): Fix order. + + This retains backward compatibility. + + Noted by Alexei. + +2017-04-22 Werner Lemberg + + [truetype] Do linear scaling for FT_LOAD_NO_HINTING (#50470). + + * src/truetype/ttobjs.h (TT_SizeRec): Add field `hinted_metrics' to + hold hinted metrics. + Make `metrics' a pointer so that `tt_glyph_load' can easily switch + between metrics. + + * src/truetype/ttdriver.c (tt_size_request): Updated. + (tt_glyph_load): Use top-level metrics if FT_LOAD_NO_HINTING is + used. + + * src/truetype/ttgload.c (TT_Hint_Glyph, TT_Process_Simple_Glyph, + TT_Process_Composite_Component, load_truetype_glyph, + compute_glyph_metrics, TT_Load_Glyph): Updated. + + * src/truetype/ttinterp.c (TT_Load_Context): Updated. + + * src/truetype/ttobjs.c (tt_size_reset): Updated. + + * src/truetype/ttsubpix.c (sph_set_tweaks): Updated. + +2017-04-22 Werner Lemberg + + Add new `slight' auto-hinting mode. + + This mode uses fractional advance widths and doesn't scale glyphs + horizontally, only applying vertical scaling and hinting. + + At the same time, the behaviour of the `light' auto-hinter gets + restored for backward compatibility: Both vertical and horizontal + scaling is again based on rounded metrics values (this was changed + in a commit from 2017-03-30 as a side effect). To be more precise, + the behaviour is restored for TrueType fonts only; for other font + formats like Type 1, this is a new feature of the `light' hinting + mode. + + * include/freetype/freetype.h (FT_LOAD_TARGET_SLIGHT): New macro. + (FT_RENDER_MODE_SLIGHT): New render mode. + + * include/freetype/internal/ftobjs.h (FT_Size_InternalRec): Add + `autohint_mode' and `autohint_metrics' fields. + + * src/autofit/afcjk.c (af_cjk_hints_init), src/autofit/aflatin.c + (af_latin_hints_init), src/autofit/aflatin2 (af_latin2_hints_init): + Updated. + + * src/autofit/afloader.c (af_loader_embolden_glyph_in_slot): Use + `autohint_metrics'. + (af_loader_load_glyph): s/internal/slot_internal/. + Initialize `autohint_metrics' and `autohint_mode' depending on + current auto-hint mode. + Use `autohint_metrics'. + Updated. + + * src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Updated. + + * src/base/ftobjs.c (FT_Load_Glyph): Updated. + (FT_New_Size): Allocate `internal' object. + + * src/pshinter/pshalgo.c (ps_hints_apply): Updated. + + * src/smooth/ftsmooth.c (ft_smooth_render): Updated. + +2017-04-22 Werner Lemberg + + Introduce `FT_Size_InternalRec' structure. + + We are going to extend this later on. + + * include/freetype/internal/ftobjs.h (FT_Size_InternalRec): New + structure with a single field `module_data'. + + * src/base/ftobjs.c (FT_New_Size): Allocate `internal' field of + `FT_Size' structure. + + * src/cff/cffgload.c (cff_builder_init, cff_decoder_prepare): Use + `size->internal->module_data' instead of `size->internal'. + + * src/cff/cffobjs.c (cff_size_done): Deallocate `module_data'. + (cff_size_init, cff_size_select, cff_size_request): Use + `size->internal->module_data' instead of `size->internal'. + + * src/cif/cidobjs.c (cid_size_done, cid_size_init, + cid_size_request): Use `size->internal->module_data' instead of + `size->internal'. + + * src/psaux/psobjs.c (t1_builder_ini): Use + `size->internal->module_data' instead of `size->internal'. + + * src/type1/t1objs.c (T1_Size_Done, T1_Size_Init, T1_Size_Request): + Use `size->internal->module_data' instead of `size->internal'. + +2017-04-21 Alexei Podtelezhnikov + + * src/smooth/ftsmooth.h: Remove unused guards and declaration. + +2017-04-16 Hin-Tak Leung + + Fix tracing messages. + + * src/base/ftobjs.c (FT_Face_GetCharVariantIndex, + FT_Face_GetCharVariantIsDefault, FT_Face_GetVariantsOfChar): Print + correct function name. + +2017-04-08 Sascha Brawer + Werner Lemberg + Werner Lemberg + Werner Lemberg + Werner Lemberg + + [autofit] Fix invalid character range description (#50745). + + Also reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1034 + + * src/autofit/afranges.c (af_glag_nonbase_uniranges): Fix typo in + recent commit. + +2017-04-07 Werner Lemberg + + [ftfuzzer] Fix clang warnings. + + * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Add + casts. + +2017-04-06 Sascha Brawer + Werner Lemberg + Werner Lemberg + Werner Lemberg + Werner Lemberg + Werner Lemberg + Werner Lemberg + + [autofit] Add support for Adlam script. + + * src/autofit/afblue.dat: Add blue zone data for Adlam. + * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. + + * src/autofit/afscript.h: Add Adlam standard characters. + + * src/autofit/afranges.c, src/autofit/afstyles.h: Add Adlam data. + +2017-04-06 Sascha Brawer + + [autofit] Add support for Ol Chiki script. + + * src/autofit/afblue.dat: Add blue zone data for Ol Chiki. + * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. + + * src/autofit/afscript.h: Add Ol Chiki standard character. + + * src/autofit/afranges.c, src/autofit/afstyles.h: Add Ol Chiki data. + +2017-04-03 Werner Lemberg + + [truetype] Avoid reexecution of `fpgm' and `prep' in case of error. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=981 + + * include/freetype/fterrdef.h (FT_Err_DEF_In_Glyf_Bytecode): New + error code. + + * src/truetype/ttinterp.c (Ins_FDEF, Ins_IDEF): Prohibit execution + of these two opcodes in `glyf' bytecode. + (TT_RunIns): Don't enforce reexecution of `fpgm' and `prep' bytecode + in case of error since function tables can no longer be modified + (due to the changes in `Ins_FDEF' and `Ins_IDEF'). This change can + enormously speed up handling of broken fonts. + +2017-04-02 Alexei Podtelezhnikov + + [autofit] Disable metrics adjustment for `FT_LOAD_TARGET_LCD'. + + * src/autofit/aflatin.c (af_latin_hints_init): Updated. + * src/autofit/aflatin2.c (af_latin2_hints_init): Ditto. + +2017-04-01 Werner Lemberg + + * src/truetype/ttgload.c: Include FT_CONFIG_CONFIG_H. + + Otherwise FT_UINT_TO_POINTER might not be defined. + + Problem reported by Alexei. + +2017-03-31 Alexei Podtelezhnikov + + [autofit] Disable stem adjustment for `FT_LOAD_TARGET_LCD'. + + * include/freetype/freetype.h (FT_LOAD_TARGET_LCD): Document it. + * src/autofit/afcjk.c (af_cjk_hints_init): Updated. + * src/autofit/aflatin.c (af_latin_hints_init): Ditto. + * src/autofit/aflatin2.c (af_latin2_hints_init): Ditto. + +2017-03-31 Werner Lemberg + + * src/cff/cffload.c (cff_font_load): Improve fix from 2017-01-04. + + Allow CFFs containing a single font to have an empty font name. + + Problem reported by å¼µä¿ŠèŠ <418092625@qq.com> in + + https://lists.nongnu.org/archive/html/freetype-devel/2017-03/msg00074.html + +2017-03-30 Werner Lemberg + + * src/cff/cffparse.h (CFF2_DEFAULT_STACK): Set to 513 also. + + Requested by Dave Arnold. + +2017-03-30 Werner Lemberg + + [truetype] Fix HVAR and VVAR handling (#50678). + + * src/truetype/ttgxvar.c (tt_hvadvance_adjust): Handle + glyph indices larger than `mapCount' as described in the + specification. + +2017-03-30 Werner Lemberg + + [truetype] Allow linear scaling for unhinted rendering (#50470). + + * src/truetype/ttdriver.c (tt_size_request): Revert change from + 2011-07-16; the intended metrics fix seems now to be implemented in + a different way, making the patch unnecessary. Note that this + change was usually patched out by all major GNU/Linux distributions + due to heavy side effects. + + * src/truetype/ttgload.c (compute_glyph_metrics, TT_Load_Glyph): + Refer to the metrics of the `TT_Size' object. + +2017-03-29 Werner Lemberg + + [truetype] Fix thinko related to PS name of default named instance. + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): `strid' and `psid' are + name ID values, not indices into the array of name entries. + +2017-03-27 Werner Lemberg + + [cid, truetype] Don't use `index' as a variable name. + + At least on FreeBSD there is a global declaration of `index' in file + `/usr/include/strings.h'. + + * src/cff/cf2intrp.c, src/truetype/ttgload.c: s/index/idx/ where + appropriate. + +2017-03-27 Wojciech Mamrak + + [sfnt] Minor improvement for handling kern tables. + + * src/sfnt/ttkern.c (tt_face_load_kern): Don't check for + cross-stream kerning tables since we reject format 2 tables later + on anyways. + Modify code for limit test... + (tt_face_get_kerning): ... to avoid a limit test here. + +2017-03-27 Werner Lemberg + + [pcf] Fix compiler warnings. + + Reported by Alexander Hedges . + + * src/pcf/pcfdrivr.c (pcf_property_set, pcf_property_get): Tag + `property_name' with `FT_UNUSED' where necessary. + +2017-03-26 Werner Lemberg + + * src/psaux/psobjs.c (t1_builder_close_contour): Add safety guard. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=941 + +2017-03-23 Werner Lemberg + + [psaux] Better protect `flex' handling. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=935 + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings) + : Since there is not a single flex operator but a + series of subroutine calls, malformed fonts can call arbitrary other + operators after the start of a flex, possibly adding points. For + this reason we have to check the available number of points before + inserting a point. + +2017-03-23 Werner Lemberg + + [sfnt] Fix check for default named instance. + + * src/sfnt/sfobjs.c (sfnt_init_face): A `fixed' number needs four + bytes, not two... + +2017-03-23 Werner Lemberg + + Make MM fonts work (again). + + * src/base/ftmm.c (FT_Set_Var_Design_Coordinates, + FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Ignore + return value of `ft_face_get_mvar_service'; instead, check whether a + service is actually returned. + +2017-03-20 Werner Lemberg + + [truetype] Some variable renamings. + + Too much local variables holding different structures were called + `metrics'. + + * src/truetype/ttdriver.c (tt_size_select): s/metrics/size_metrics/. + + * src/truetype/ttgload.c (tt_get_metrics_incr_overrides, + compute_glyph_metrics): s/metrics/incr_metrics/. + (load_sbit_image): s/metrics/sbit_metrics/. + + * src/truetype/ttobjs.c (tt_size_run_fpgm): s/metrics/size_metrics/. + (tt_size_init_bytecode): s/metrics/tt_metrics/. + (tt_size_reset): s/metrics/size_metrics/. + +2017-03-20 Werner Lemberg + + [sfnt] Don't add instances to non-variation fonts. + + * src/sfnt/sfobjs.c (sfnt_init_face): Fix it. + +2017-03-20 Werner Lemberg + + * src/cff/cffgload.c (cff_builder_init): Add safety guard (#50578). + +2017-03-18 Werner Lemberg + + Introduce FT_UINT_TO_POINTER macro (#50560). + + We have to make a separate case for Windows 64's LLP64 data model. + + * builds/unix/ftconfig.in, builds/vms/ftconfig.h, + include/freetype/config/ftconfig.h (FT_UINT_TO_POINTER): New macro. + + * src/truetype/ttgload.c (load_truetype_glyph): Use it. + +2017-03-18 Werner Lemberg + + * src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter (#50573). + + The problematic font that exceeds the old limit is Lato-Regular, + version 2.007, containing bytecode generated by a buggy version of + ttfautohint. + +2017-03-18 Werner Lemberg + + [truetype] Another limitation for bytecode loop count maximum. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=900 + + * src/truetype/ttinterp.c (TT_RunIns): Limit `loopcall_counter_max' + by number of glyphs also. + +2017-03-18 Werner Lemberg + + [ftfuzzer] Minor improvement. + + * src/tools/ftfuzzer/ftfuzzer.cc: Don't set intermediate axis if + bitmap strikes are active. + +2017-03-18 Werner Lemberg + + Improve `make multi'. + + * src/autofit/aflatin2.c: Guard file with FT_OPTION_AUTOFIT2. + + * src/base/ftmac.c: Guard more parts of the file with FT_MACINTOSH. + + * src/psaux/afmparse.c: Guard file with T1_CONFIG_OPTION_NO_AFM. + + * src/sfnt/pngshim.c: Guard file with + TT_CONFIG_OPTION_EMBEDDED_BITMAPS also. + + * src/sfnt/ttbdf.c: Avoid empty source file. + * src/sfnt/ttpost.c: Guard file with + TT_CONFIG_OPTION_POSTSCRIPT_NAMES. + * src/sfnt/ttsbit.c: Guard file with + TT_CONFIG_OPTION_EMBEDDED_BITMAPS. + + * src/truetype/ttgxvar.c, src/truetype/ttinterp.c: Avoid empty + source file. + + * src/truetype/ttsubpix.c: Guard file with + TT_USE_BYTECODE_INTERPRETER also. + + * src/type1/t1afm.c: Guard file with T1_CONFIG_OPTION_NO_AFM. + + * src/autofit/autofit.c, src/base/ftbase.c, src/cache/ftcache.c, + src/cff/cff.c, src/cid/type1cid.c, src/gxvalid/gxvalid.c, + src/pcf/pcf.c, src/pfr/pfr.c, src/psaux/psaux.c, + src/pshinter/pshinter.c, src/psnames/psnames.c, src/raster/raster.c, + src/sfnt/sfnt.c, src/smooth/smooth.c, src/truetype/truetype.c, + src/type1/type1.c, src/type42/type42.c: Remove conditionals; sort + entries. + +2017-03-17 Werner Lemberg + + Fixes for conditional compilation. + + * src/autofit/afcjk.c, src/autofit/afindic.c: Include `afcjk.h' + earlier. + + * src/sfnt/sfobjs.c (sfnt_init_face): Put `memory' variable into + TT_CONFIG_OPTION_GX_VAR_SUPPORT block. + (sfnt_done_face): Protect some code with + TT_CONFIG_OPTION_GX_VAR_SUPPORT. + + * src/sfnt/ttsbit.c (tt_face_load_sbix_image): Remove compiler + warning. + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Put `tmp' variable + into TT_USE_BYTECODE_INTERPRETER block. + + (tt_loader_init): Put `error' variable into + TT_USE_BYTECODE_INTERPRETER block. + +2017-03-17 Werner Lemberg + + Fix preprocessor warning. + + * devel/ftoption.h, include/freetype/config/ftoption.h: Test whether + TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined before checking its + value. + +2017-03-17 Werner Lemberg + + `make multi' fixes; compiler warnings. + + * src/base/ftsnames.c: Include FT_INTERNAL_DEBUG_H. + + * src/cff/cffobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include + FT_MULTIPLE_MASTERS_H and FT_SERVICE_MULTIPLE_MASTERS_H. + + * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include + FT_MULTIPLE_MASTERS_H and FT_SERVICE_MULTIPLE_MASTERS_H. + (get_win_string, get_apple_string): Initialize `result'. + +2017-03-17 Dave Arnold + + [cff] Fix potential bugs in default NDV for CFF2. + + * src/cff/cffload.c (cff_blend_build_vector): Explicitly build blend + vector when `lenNDV' is zero; don't rely on zero-init. + Save `lenNDV' as part of cache key even when `lenNDV' is zero. + +2017-03-17 Dave Arnold + + [cff] Fix CFF2 stack allocation. + + * src/cff/cffparse.c (cff_parser_init) add 1 for operator. + +2017-03-16 Werner Lemberg + + * src/truetype/ttgxvar.c (tt_done_blend): Free `vvar_table'. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=883 + +2017-03-15 Werner Lemberg + + Remove clang compiler warnings (#50548). + + * include/freetype/internal/tttypes.h (TT_FaceRec): Make + `var_postscript_prefix_len' unsigned. + + * src/autofit/afwarp.c (af_warper_compute_line_best): Remove + redundant assignment. + + * src/cff/cffload.c (cff_subfont_load): Add casts. + + * src/cff/cffparse.c (cff_parse_blend): Remove redundant assignment. + + * src/sfnt/sfdriver.c (fmix32, murmur_hash_3_128): Add `static' + keyword. + Add casts. + (fixed2float): Add cast. + (sfnt_get_var_ps_name): Make `p' always initialized. + Add casts. + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Add casts. + +2017-03-15 Werner Lemberg + + [ftfuzzer] Limit number of tested faces and instances. + + This is inspired by the discussion in and analysis of + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=859 + + * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Use only + up to 20 face indices. + Use only up to 20 instance indices. + +2017-03-15 Werner Lemberg + + * src/tools/ftfuzzer/ftfuzzer.cc: Improve readability; formatting. + +2017-03-14 Werner Lemberg + + [sfnt] Implement PS names for font instances [3/3]. + + Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. + + * include/freetype/internal/tttypes.h (TT_FaceRec): New fields + `var_postscript_prefix' and `var_postscript_prefix_len'. + + * src/sfnt/sfdriver.c: Include FT_TRUETYPE_IDS_H. + (sfnt_is_alphanumeric): New wrapperfunction for `ft_isalnum'. + (get_win_string, get_apple_string): Remove `const' from return + value. + (MAX_VALUE_DESCRIPTOR_LEN, MAX_PS_NAME_LEN): New macros. + (hexdigits): New array. + (sfnt_get_var_ps_name): New function, implementing Adobe TechNote + 5902 to construct a PS name for a variation font instance. + (sfnt_get_ps_name): Call `sfnt_get_var_ps_name' for font instances. + + * src/sfnt/sfobjs.c (sfnt_done_face): Updated. + + * src/truetype/ttgxvar.c (tt_set_mm_blend): Reset + `face->postscript_name' to trigger recalculation for new instance + parameters. + +2017-03-14 Werner Lemberg + + [sfnt] Implement PS names for font instances [2/3]. + + * src/sfnt/sfdriver.c (fix2float) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: + New function to find the shortest representation of a 16.16 + fractional number. + +2017-03-14 Werner Lemberg + + [sfnt] Implement PS names for font instances [1/3]. + + Add 128bit MurmurHash 3 function. + + Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. + + * src/sfnt/sfdriver.c (ROTL32): New macro. + (fmix32, murmur_hash_3_128): New functions. + +2017-03-13 Werner Lemberg + + [truetype] Ignore invalid MVAR tags. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=838 + + * src/truetype/ttgxvar.c (ft_var_load_mvar): Ignore value and emit + warning for invalid tags. + (tt_apply_mvar): Ignore invalid tags. + +2017-03-12 Werner Lemberg + + [truetype] Store and use design coordinates also. + + * include/freetype/internal/services/svmm.h (FT_Get_Var_Blend_Func): + Add `normalizedcoords' argument. + + * src/truetype/ttgxvar.h (GX_BlendRec): Add `coords' field to store + the design coordinates of the current instance. + Updated. + + * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Move functionality to... + (tt_set_mm_blend): ... New function. + Convert data in `normalizedcoords' array to `coords' array on + demand. + (TT_Set_Var_Design): Store argument data in `coords' array. + (TT_Get_Var_Design): Get data from `coords' array. + (tt_get_var_blend): Updated. + (tt_done_blend): Updated. + + * src/cff/cffload.c, src/cff/cffload.h (cff_get_var_blend): Updated. + + * src/cff/cf2ft.c (cf2_getNormalizedVector): Updated. + + * src/cff/cffobjs.c (cff_face_init): Updated. + +2017-03-12 Werner Lemberg + + src/truetype/ttgxvar.[ch]: s/avar_checked/avar_loaded/. + +2017-03-08 Werner Lemberg + + [sfnt] Another fix for buggy variation fonts. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=759 + + * src/sfnt/sfobjs.c (sfnt_init_face): While setting number of + instances to zero for `CFF' fonts table, ensure that there is no + `CFF2' present also (which gets priority). + +2017-03-07 Werner Lemberg + + [sfnt] Improve handling for buggy variation fonts. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=738 + + * src/sfnt/sfobjs.c (sfnt_init_face): While setting number of + instances to zero for `CFF' fonts table, ensure that there is no + `glyf' table present also (which gets priority). + +2017-03-06 Werner Lemberg + + [sfnt, truetype] Always provide default instance. + + As documented in the OpenType specification, an entry for the + default instance may be omitted in the named instance table. In + particular this means that even if there is no named instance table + in the font we actually do have a named instance, namely the default + instance. + + For consistency, we always want the default instance in our list of + named instances. If it is missing, we try to synthesize it. + + * src/sfnt/sfobjs.c (sfnt_init_face): Check whether the default + instance is in the table of named instances. Otherwise adjust + number of instances. + + * src/truetype/ttgxvar.c: Include FT_TRUETYPE_IDS_H. + (TT_Get_MM_Var): Use `face->root.style_flags' as the number of named + instances. + Sythesize a named instance entry if necessary. + (tt_done_blend): Free `normalized_stylecoords'. + +2017-03-05 Werner Lemberg + + [sfnt] Remove redundant code. + + * src/sfnt/sfobjs.c (sfnt_init_face): Remove second test for + `num_instances', which will always succeed. + +2017-03-04 Werner Lemberg + + [sfnt] Add `get_name_id' service. + + * include/freetype/internal/sfnt.h (TT_Get_Name_ID_Func): New + typedef. + (SFNT_Interface): Add `get_name_id' field. + (FT_DEFINE_SFNT_INTERFACE): Updated. + + * src/sfnt/sfdriver.c (search_name_id): Rename to... + (sfnt_get_name_id): ... this. + (sfnt_get_ps_name, sfnt_interface): Updated. + +2017-03-04 Werner Lemberg + + [truetype] Make `TT_Set_MM_Blend' set named instance index. + + * src/truetype/ttgxvar.h (GX_Blend): New array + `normalized_stylecoords'. + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Allocate and fill + `normalized_stylecoords'. + (TT_Set_MM_Blend): Check instance tuple and adjust `face_index' + accordingly. + +2017-03-02 Werner Lemberg + + [truetype] Split off designer/normalized conversion routines. + + * src/truetype/ttgxvar.c (TT_Set_Var_Design): Split off conversion + code designer->normalized coordinates to... + (ft_var_to_normalized): ... New function. + (TT_Get_Var_Design): Split off conversion code normalized->designer + coordinates to... + (ft_var_to_design): ... New function. + +2017-02-28 Werner Lemberg + + [sfnt] Further generalize `sfnt_get_ps_name'; report invalid data. + + * src/sfnt/sfdriver.c (sfnt_ps_map): New array. + (sfnt_is_postscript): New function. + (char_type_func): New typedef. + (get_win_string, get_apple_string): Add argument to specify + character checking function. + Add argument whether argument checking failures should be reported. + Update callers. + (search_name_id): Fix return value. + +2017-02-23 Werner Lemberg + + [sfnt] Split off another bit of `sfnt_get_ps_name'. + + * src/sfnt/sfdriver.c (sfnt_get_ps_name): Split off some + functionality into... + (search_name_id): ... New function. + +2017-02-23 Werner Lemberg + + [sfnt] Modularize `sfnt_get_ps_name'. + + * src/sfnt/sfdriver.c (sfnt_get_ps_name): Split off some + functionality into... + (IS_WIN, IS_APPLE): ... New macros. + (get_win_string, get_apple_string): ... New functions. + +2017-02-23 Werner Lemberg + + [truetype] Minor improvement. + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph, + load_truetype_glyph): Remove unnecessary tests. + +2017-02-23 Werner Lemberg + + * include/freetype/internal/tttypes.h (TT_Face): s/isCFF2/is_cff2/. + + For orthogonality with other structure field names. + + Update all users. + +2017-02-22 Alexei Podtelezhnikov + + * src/smooth/ftgrays.c (gray_hline): Improve code. + +2017-02-20 Dominik Röttsches + + Fix some `ttnameid.h' entries (#50313). + + * include/freetype/ttnameid.h: + s/TT_MS_LANGID_SPANISH_INTERNATIONAL_SORT/TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT/, + s/TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIA/TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN/. + +2017-02-20 Werner Lemberg + + [cff] Finish support for `random' operator. + + * src/cff/cfftypes.h (CFF_SubFontRec): Add `random' field. + + * src/cff/cffobjs.c: Updated. + (cff_driver_init): Initialize random seed value. + + * src/cff/cffload.c (cff_random): New function. + (cff_subfont_load): Add `face' argument. + Update all callers. + Initialize random number generator with a proper seed value. + (cff_font_load): Add `face' argument. + Update all callers. + + * src/cff/cffload.h: Updated. + + * src/cff/cf2intrp.c (CF2_FIXME): Removed. + (cf2_interpT2CharString) : Implement opcode. + + * src/cff/cffgload.c (cff_decoder_parse_charstrings): Don't + initialize random seed value. + : Use new random seed framework. + +2017-02-20 Werner Lemberg + + [cff] Sanitize `initialRandomSeed'. + + * src/cff/cffload.c (cff_load_private_dict): Make + `initial_random_seed' value always positive. + +2017-02-20 Werner Lemberg + + [cff] Introduce `random-seed' property (2/2). + + * src/base/ftobjs.c: Include `FT_CFF_DRIVER_H'. + (open_face): Initialize `face->internal->random_seed'. + (FT_Face_Properties): Handle `FT_PARAM_TAG_RANDOM_SEED'. + + * src/cff/cffdrivr.c (cff_property_set): Handle `random-seed' + property. + +2017-02-20 Werner Lemberg + + [cff] Introduce `random-seed' property (1/2). + + We need this for support of the `random' operator. + + * include/freetype/ftcffdrv.h (FT_PARAM_TAG_RANDOM_SEED): New macro. + + * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New + field `random_seed'. + + * src/cff/cffobjs.h (CFF_DriverRec): New field `random_seed'. + +2017-02-17 Werner Lemberg + + Remove clang warnings. + + * src/autofit/aflatin.c (af_latin_sort_blue): Add missing `static' + keyword. + + * src/base/ftmm.c (FT_Set_Var_Design_Coordinates, + FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): + Initialize some variables. + +2017-02-16 Nikolaus Waxweiler + Werner Lemberg + + Add face property for stem darkening. + + * include/freetype/ftautoh.h (FT_PARAM_TAG_STEM_DARKENING): New + macro. + + * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add + `no_stem_darkening' field. + + * src/autofit/afloader.c (af_loader_load_glyph), + src/autofit/afmodule.c (af_property_set): Updated. + + * src/base/ftobjs.c: Include FT_AUTOHINTER_H. + (ft_open_face_internal): Updated. + (FT_Face_Properties): Handle FT_PARAM_TAG_STEM_DARKENING. + + * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Updated. + + * src/cff/cffdrivr.c (cff_property_set): Updated. + +2017-02-16 Nikolaus Waxweiler + Werner Lemberg + + Add face property for LCD filter weights. + + * include/freetype/ftlcdfil.h (FT_PARAM_TAG_LCD_FILTER_WEIGHTS, + FT_LCD_FILTER_FIVE_TAPS): New macros. + (FT_LcdFiveTapFilter): New typedef. + + * include/freetype/ftobjs.h (FT_Face_InternalRec) + [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add `lcd_weights' field. + (FT_Bitmap_LcdFilterFunc): Change third argument to weights array. + (ft_lcd_filter_fir): New prototype. + (FT_LibraryRec): Updated. + + * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Renamed to... + (ft_lcd_filter_fir): ... this base function. + Updated. + (_ft_lcd_filter_legacy): Updated. + (FT_Library_SetLcdFilterWeights, FT_Library_SetLcdFilter): Updated. + + * src/base/ftobjs.c (ft_open_face_internal): Updated. + (FT_Face_Properties): Handle FT_PARAM_TAG_LCD_FILTER_WEIGHTS. + + * src/smooth/ftsmooth.c (ft_smooth_render_generic) + [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Handle LCD weights from + `FT_Face_Internal'. + +2017-02-14 Nikolaus Waxweiler + Werner Lemberg + + Add new function `FT_Face_Properties'. + + This commit provides the framework, to be filled with something + useful in the next commits. + + * include/freetype/freetype.h (FT_Face_Properties): Declare. + + * src/base/ftobjs.c (FT_Face_Properties): New function. + +2017-02-13 Werner Lemberg + + [autofit] Prevent overlapping blue zones. + + Problem reported as + + https://github.com/google/fonts/issues/632 + + The font in question (Nunito) has values 705 and 713 for the + reference and overshoot values, respectively, of the first blue + zone. Blue zone 2, however, has value 710 for both the reference + and overshoot. At 12ppem, reference and overshoot of blue zone 0 + becomes 8px, while blue zone 2 becomes 9px. + + A peculiarity of this font is that the tops of isolated vertical + stems like `N' have a slight overshoot also. The auto-hinter tries + to find the nearest blue zone using the *original* coordinates. For + vertical stems, this is value 713. For normal horizontal tops like + in character `E', this is value 710. Since value 713 is mapped to + 8px but value 710 to 9px, `N' and similar characters are one pixel + higher than `E', which looks very bad. + + This commit sanitizes blue zones to avoid such a behaviour. + + * src/autofit/aflatin.c (af_latin_sort_blue): New function. + (af_latin_metrics_init_blues): Sort blue values and remove overlaps. + +2017-02-12 Alexei Podtelezhnikov + + * src/smooth/ftgrays.c (gray_sweep): Improve code. + +2017-02-06 Werner Lemberg + + [truetype] Implement `VVAR' table support. + + * src/truetype/ttgxvar.h (GX_HVarTable): Renamed to... + (GX_HVVarTable): ...This. + (GX_Blend): Add fields for `VVAR' table handling. + Other minor updates. + + * src/truetype/ttgxvar.c (ft_var_load_hvar): Renamed to... + (ft_var_load_hvvar): ...This. + Handle VVAR loading also (controlled by an additional parameter). + (tt_hadvance_adjust): Renamed to... + (tt_hvadvance_adjust): ...This. + Handle application of advance height also (controlled by an + additional parameter). + (tt_hadvance_adjust, tt_vadvance_adjust): Wrappers for + `tt_hvadvance_adjust'. + + * src/truetype/ttdriver.c (tt_service_metrics_variations): Updated. + +2017-02-05 Werner Lemberg + + [autofit] Use better blue zone characters for lowercase latin. + + The number of lowercase characters for computing the top flat blue + zone value was too small (in most cases only `x' and `z'). If one + of the two characters has a large serif, say, it can happen that + FreeType must select between two different values, having a 50% + chance to use the wrong one. As a result, rendering at larger PPEM + values could yield uneven lowercase glyph heights. + + Problem reported by Christoph Koeberlin . + + * src/autofit/afblue.dat (AF_BLUE_STRING_LATIN_SMALL): Replaced + with... + (AF_BLUE_STRING_LATIN_SMALL_TOP, AF_BLUE_STRING_LATIN_SMALL_BOTTOM): + ... New, extended sets. + (AF_BLUE_STRINGSET_LATN): Updated. + + * src/autofit/afblue.c, scr/autofit/afblue.h: Regenerated. + +2017-02-04 Werner Lemberg + + Make `freetype-config' a wrapper of `pkg-config' if possible. + + Based on ideas taken from + + http://pkgs.fedoraproject.org/cgit/rpms/freetype.git/tree/freetype-multilib.patch + http://pkgs.fedoraproject.org/cgit/rpms/freetype.git/tree/freetype-2.5.3-freetype-config-prefix.patch + + * builds/unix/freetype-config.in: Rewritten. Use `pkg-config' to + set output variables if program is available. + + * docs/CHANGES, docs/freetype-config.1: Updated. + +2017-02-04 Werner Lemberg + + * builds/unix/unix-def.in (freetype-config): Fix permissions. + +2017-02-03 Werner Lemberg + + * src/autofit/afglobal.c (af_face_globals_free): Erase useless code. + +2017-02-03 Werner Lemberg + + * include/freetype/ftgasp.h (FT_GASP_SYMMETRIC_GRIDFIT): Fix value. + + Reported by Behdad. + +2017-02-02 Werner Lemberg + + [truetype] Fix MVAR post-action handling. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=509 + + * src/truetype/ttobjs.c (tt_size_reset): Do nothing for CFF2. This + is important to make `tt_size_reset_iterator' (called in + `tt_apply_mvar') always work. + +2017-02-02 Werner Lemberg + + Make compilation with FT_CONFIG_OPTION_PIC work again. + + All code committed here is guarded with `FT_CONFIG_OPTION_PIC'. + + * include/freetype/internal/services/svmetric.h + (FT_DEFINE_SERVICE_METRICSVARIATIONSREC): Remove trailing semicolon. + + * src/autofit/aflatin.c (af_latin_hints_compute_edges, + af_latin_hint_edges): Provide `globals' variable. + + * src/autofit/afloader.c (af_loader_load_glyph): Remove shadowing + variable. + + * src/autofit/afmodule.c (AF_SCRIPT_CLASSES_GET, + AF_STYLE_CLASSES_GET): Redefine. + + * src/autofit/aftypes.h (AF_DEFINE_WRITING_SYSTEM_CLASS): Fix typo. + + * src/cff/cffparse.c (CFF_FIELD_BLEND): Provide it. + + * src/cff/cffpic.h (CffModulePIC): Fix typo. + +2017-01-31 Alexei Podtelezhnikov + + * src/smooth/ftgrays.c (gray_render_scanline): Improve code. + +2017-01-31 Werner Lemberg + + [cff] Provide metrics variation service interface (#50196). + + Only now I've got an OTF with an HVAR table for testing... + + The code in `ftmm.c' uses `FT_FACE_LOOKUP_SERVICE' to get the + metrics variations interface. However, this didn't work with + `FT_FACE_FIND_GLOBAL_SERVICE' used in `sfnt_init_face'. + + * src/cff/cffdrivr.c: Include FT_SERVICE_METRICS_VARIATIONS_H. + (cff_hadvance_adjust, cff_metrics_adjust): Wrapper functions for + metric service functions from the `truetype' module. + (cff_service_metrics_variations): New service. + (cff_services): Updated. + + * src/cff/cffpic.h (CFF_SERVICE_METRICS_VAR_GET): New macro. + [FT_CONFIG_OPTION_PIC]: Synchronize code. + + * src/sfnt/sfobjs.c (sfnt_init_face): Replace call to + FT_FACE_FIND_GLOBAL_SERVICE with `ft_module_get_service' to always + load the service from the `truetype' module. + +2017-01-31 Werner Lemberg + + Add framework to support services with 9 functions. + + * include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC9): + New macro. + +2017-01-31 Werner Lemberg + + [base] Fix error handing in MM functions. + + * src/base/ftmm.c (FT_Set_Var_Design_Coordinates, + FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): + Implement it. + +2017-01-31 Werner Lemberg + + [truetype] Fix sanity check for `gvar' table (#50184). + + * src/truetype/ttgxvar.c (ft_var_load_gvar): There might be missing + variation data for some glyphs. + +2017-01-31 Werner Lemberg + + [autofit] Avoid uninitialized jumps (#50191). + + * src/autofit/afcjk.c (af_cjk_metrics_check_digits), + src/autofit/aflatin.c (af_latin_metrics_check_digits): Initialize + `advance'. + +2017-01-27 Werner Lemberg + + s/GB2312/PRC/. + + * include/freetype/freetype.h (FT_ENCODING_PRC): New enum value. + (FT_ENCODING_GB2312): Deprecated. + + * include/freetype/ttnameid.h (TT_MS_ID_PRC): New macro. + (TT_MS_ID_GB2312): Deprecated. + + * src/sfnt/sfobjs.c (sfnt_find_encoding): Updated. + + * docs/CHANGES: Updated. + +2017-01-26 Werner Lemberg + + [base] Add `FT_Get_Sfnt_LangTag' function. + + * include/freetype/ftsnames.h (FT_SfntLangTag): New structure. + (FT_Get_Sfnt_LangTag): New declaration. + + * src/base/ftsnames.c (FT_Get_Sfnt_LangTag): New function. + + * docs/CHANGES: Updated. + +2017-01-26 Werner Lemberg + + [sfnt] Support `name' table format 1. + + * include/freetype/internal/tttypes.h (TT_LangTagRec): New + structure. + (TT_NameTableRec): Add fields `numLangTagRecords' and `langTags'. + + * src/sfnt/ttload.c (tt_face_load_name): Add support for language + tags. + Reduce array size of name strings in case of invalid entries. + (tt_face_free_name): Updated. + + * docs/CHANGES: Updated. + +2017-01-25 Werner Lemberg + + [sfnt] s/TT_NameEntry/TT_Name/. + + * include/freetype/internal/tttypes.h (TT_NameEntryRec): Renamed + to... + (TT_NameRec): This. + (TT_NameTableRec): Updated. + + * src/base/ftsnames.c (FT_Get_Sfnt_Name): Updated. + + * src/sfnt/sfdriver.c (sfnt_get_ps_name): Updated. + + * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16, + tt_name_entry_ascii_from_other): Renamed to... + (tt_name_ascii_from_utf16, tt_name_entry_ascii_from_other): This, + respectively. + (TT_NameEntry_ConvertFunc): Renamed to... + (TT_Name_ConvertFunc): This. + (tt_face_get_name): Updated. + + * src/sfnt/ttload.c (tt_face_load_name, tt_face_free_name): + Updated. + +2017-01-24 Werner Lemberg + + [sfnt] Fix Postscript name service for symbol fonts. + + * src/sfnt/sfdriver.c (sfnt_get_ps_name): Accept PID/EID=3/0 + entries also. + +2017-01-24 Werner Lemberg + + [truetype] For OpenType 1.7: s/preferred/typographic/ (sub)family. + + * include/freetype/ftsnames.h + (FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY, + FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY): New macros. + (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY, + FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Deprecated. + + * include/freetype/ttnameid.h (TT_NAME_ID_TYPOGRAPHIC_FAMILY, + TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY): New macros. + (TT_NAME_ID_PREFERRED_FAMILY, TT_NAME_ID_PREFERRED_SUBFAMILY): + Deprecated. + + * src/sfnt/sfobjs.c (sfnt_load_face): Updated. + + * docs/CHANGES: Updated. + +2017-01-23 Werner Lemberg + + [base] Add `FT_Set_Default_Properties' (#49187). + + * include/freetype/ftmodapi.h: Add declaration. + + * src/base/ftinit.c (ft_set_default_properties): Renamed to... + (FT_Set_Default_Properties): ... this. + (FT_Init_FreeType): Updated. + + * docs/CHANGES: Updated. + +2017-01-23 Werner Lemberg + + [truetype] Minor updates for OpenType 1.8.1. + + * src/truetype/ttgxvar.h (GX_MVarTable): `axisCount' has been + removed from the specification; it is now reserved. + + * src/truetype/ttgxvar.c (ft_var_load_mvar): Updated. + (GX_FVar_Head): Remove `countSizePairs'; the corresponding data + field in the `MVAR' table is now reserved. + (fvar_fields): Updated. + +2017-01-23 Werner Lemberg + + [truetype] Avoid segfault for invalid variation data. + + * src/truetype/ttgxvar.c (ft_var_load_item_variation_store): Assure + `itemCount' is not zero. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=441 + +2017-01-20 Werner Lemberg + + * src/truetype/ttinterp.c (TT_RunIns): Adjust loop detector limits. + +2017-01-17 Werner Lemberg + + * include/freetype/ttnameid.h: Updated to OpenType 1.8.1. + + (TT_APPLE_ID_FULL_UNICODE): New macro. + + (TT_MS_LANGID_BOSNIAN_BOSNIA_HERZ_CYRILLIC, + TT_MS_LANGID_UPPER_SORBIAN_GERMANY, + TT_MS_LANGID_LOWER_SORBIAN_GERMANY, TT_MS_LANGID_IRISH_IRELAND, + TT_MS_LANGID_INUKTITUT_CANADA_LATIN, TT_MS_LANGID_BASHKIR_RUSSIA, + TT_MS_LANGID_LUXEMBOURGISH_LUXEMBOURG, + TT_MS_LANGID_GREENLANDIC_GREENLAND, TT_MS_LANGID_MAPUDUNGUN_CHILE, + TT_MS_LANGID_MOHAWK_MOHAWK, TT_MS_LANGID_BRETON_FRANCE, + TT_MS_LANGID_OCCITAN_FRANCE, TT_MS_LANGID_CORSICAN_FRANCE, + TT_MS_LANGID_ALSATIAN_FRANCE, TT_MS_LANGID_YAKUT_RUSSIA, + TT_MS_LANGID_KICHE_GUATEMALA, TT_MS_LANGID_KINYARWANDA_RWANDA, + TT_MS_LANGID_WOLOF_SENEGAL, TT_MS_LANGID_DARI_AFGHANISTAN): New + macros. + + (TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC): Fix value. + + (TT_MS_LANGID_GERMAN_LIECHTENSTEIN, TT_MS_LANGID_CATALAN_CATALAN, + TT_MS_LANGID_CHINESE_MACAO, TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT, + TT_MS_LANGID_KOREAN_KOREA, TT_MS_LANGID_ROMANSH_SWITZERLAND, + TT_MS_LANGID_SLOVENIAN_SLOVENIA, TT_MS_LANGID_BASQUE_BASQUE, + TT_MS_LANGID_SETSWANA_SOUTH_AFRICA, + TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA, + TT_MS_LANGID_ISIZULU_SOUTH_AFRICA, TT_MS_LANGID_KAZAKH_KAZAKHSTAN, + TT_MS_LANGID_KYRGYZ_KYRGYZSTAN, TT_MS_LANGID_KISWAHILI_KENYA, + TT_MS_LANGID_TATAR_RUSSIA, TT_MS_LANGID_ODIA_INDIA, + TT_MS_LANGID_MONGOLIAN_PRC, TT_MS_LANGID_TIBETAN_PRC, + TT_MS_LANGID_WELSH_UNITED_KINGDOM, TT_MS_LANGID_GALICIAN_GALICIAN, + TT_MS_LANGID_SINHALA_SRI_LANKA, TT_MS_LANGID_TAMAZIGHT_ALGERIA, + TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA, TT_MS_LANGID_YI_PRC, + TT_MS_LANGID_UIGHUR_PRC): New aliases. + + Remove commented out code. + + (TT_NAME_ID_LIGHT_BACKGROUND, TT_NAME_ID_DARK_BACKGROUND, + TT_NAME_ID_VARIATIONS_PREFIX): New macros. + + (HAVE_LIMIT_ON_IDENTS): Remove macro (which was useless since many + years), use guarded long macros by default and define short versions + as aliases for the long ones. + +2017-01-15 Werner Lemberg + + * src/truetype/ttgxvar.c (tt_apply_var): Handle underline parameters + also. + +2017-01-11 Werner Lemberg + + * src/base/ftobjs.c (ft_open_face_internal): Improve tracing. + +2017-01-11 Werner Lemberg + + [truetype] Actually use metrics variation service. + + * src/base/ftmm.c: Include FT_SERVICE_METRICS_VARIATIONS_H. + (ft_face_get_mvar_service): New auxiliary function to look up + metrics variation service. + (FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates, + FT_Set_Var_Blend_Coordinates): Call metrics variation service. + + * src/truetype/ttobjs.c (tt_face_init): Use metrics variations for + named instances. + +2017-01-11 Werner Lemberg + + [truetype] Provide metrics variation service. + + * include/freetype/internal/services/svmetric.h + (FT_Metrics_Adjust_Func): Reduce number of necessary parameters. + + * src/truetype/ttgxvar.c: Include FT_LIST_H. + (tt_size_reset_iterator): New auxiliary function for... + (tt_apply_var): New function. + + * src/truetype/ttgxvar.h: Updated. + + * src/truetype/ttdriver.c (tt_service_metrics_variations): Add + `tt_apply_mvar'. + + * include/freetype/internal/ftserv.h (FT_ServiceCache): Add metrics + variation service. + +2017-01-11 Werner Lemberg + + [truetype] Parse `MVAR' table. + + * src/truetype/ttgxvar.h (MVAR_TAG_XXX): New macros for MVAR tags. + (GX_Value, GX_MVarTable): New structures. + (GX_Blend): Add it. + + * src/truetype/ttgxvar.c (GX_VALUE_SIZE, GX_VALUE_CASE, + GX_GASP_CASE): New macros. + (ft_var_get_value_pointer): New auxiliary function to get a pointer + to a value from various SFNT tables already stored in `TT_Face'. + (ft_var_load_mvar): New function. + (TT_Get_MM_Var): Call it. + (tt_done_blend): Updated. + +2017-01-11 Werner Lemberg + + [truetype] More preparations for MVAR support. + + * src/truetype/ttobjs.c (tt_size_reset): Add argument to make + function only recompute ascender, descender, and height. + + * src/truetype/ttobjs.h: Updated. + + * src/truetype/ttdriver.c (tt_size_select, tt_size_request): + Updated. + +2017-01-09 Werner Lemberg + + [pcf] Disable long family names by default. + + * include/freetype/config/ftoption.h + (PCF_CONFIG_OPTION_LONG_FAMILY_NAMES): Comment out. + +2017-01-09 Werner Lemberg + + [pcf] Make long family names configurable. + + The change from 2016-09-29 was too radical (except for people using + the openSuSE GNU/Linux distribution). To ameliorate the situation, + PCF_CONFIG_OPTION_LONG_FAMILY_NAMES gets introduced which controls + the feature; if set, a new PCF property option + `no-long-family-names' can be used to switch this feature off. + + * include/freetype/config/ftoption.h, devel/ftoption.h + (PCF_CONFIG_OPTION_LONG_FAMILY_NAMES): New option. + + * include/freetype/ftpcfdrv.h: New header file (only containing + comments currently, used for building the documentation). + + * include/freetype/config/ftheader.h (FT_PCF_DRIVER_H): New macro. + + * src/pcf/pcf.h (PCF_Driver): Add `no_long_family_names' field. + + * src/pcf/pcfdrivr.c: Include FT_SERVICE_PROPERTIES_H and + FT_PCF_DRIVER_H. + (pcf_property_set, pcf_property_get): New functions. + (pcf_service_properties): New service. + (pcf_services): Updated. + (pcf_driver_init) [PCF_CONFIG_OPTION_LONG_FAMILY_NAMES]: Handle + `no_long_family_names'. + + * src/pcf/pcfread.c (pcf_load_font): Handle `no_long_family_names' + and PCF_CONFIG_OPTION_LONG_FAMILY_NAMES. + + * docs/CHANGES: Updated. + +2017-01-09 Werner Lemberg + + [pcf] Introduce a driver structure. + + To be filled later on with something useful. + + * src/pcf/pcf.h (PCF_Driver): New structure. + + * src/pcf/pcfdrivr.c (pcf_driver_init, pcf_driver_done): New dummy + functions. + (pcf_driver_class): Updated. + +2017-01-08 Werner Lemberg + + [truetype] Again some GX code shuffling. + + We need this later on for MVAR also. + + * src/truetype/ttgxvar.c (tt_hadvance_adjust): Split off computing + an item store variation delta into... + (ft_var_get_item_delta): ...new function. + +2017-01-08 Werner Lemberg + + [truetype] Adjust font variation flags for MVAR. + + * include/freetype/internal/tttypes.h (TT_FACE_FLAG_VAR_XXX): + Remove all flags related to MVAR; replace it with... + (TT_FACE_FLAG_VAR_MVAR): ...this new macro. + (TT_Face): Remove `mvar_support' field (which was still unused). + +2017-01-06 Werner Lemberg + + [truetype] More GX code shuffling. + + We need this later on for MVAR also. + + * src/truetype/ttgxvar.c (tt_done_blend): Split off handling of item + variation store into... + (ft_var_done_item_variation_store): ...new function. + +2017-01-06 Werner Lemberg + + [truetype] More generalization of GX stuff. + + We need this later on for MVAR also. + + * src/truetype/ttgxvar.c (ft_var_load_delta_set_index_mapping): Add + parameters for delta-set index mapping and item variation store. + (ft_var_load_item_variation_store): Add parameter for item variation + store. + s/hvarData/varData/. + Move allocation of `hvar_table' to... + (ft_var_load_hvar): ...this function. + Updated. + +2017-01-06 Werner Lemberg + + [truetype] Some GX structure renames for generalization. + + We need this later on for MVAR also. + + * src/truetype/ttgxvar.h (GX_HVarData): Renamed to... + (GX_ItemVarData): ...this. + (GX_HVarRegion): Renamed to... + (GX_VarRegion): ...this. + (GX_HVStore): Renamed to... + (GX_ItemVarStore): ...this. + (GX_WidthMap): Renamed to... + (GX_DeltaSetIdxMap): ...this. + + (GX_HVarTable): Updated. + + * src/truetype/ttgxvar.c: Updated. + +2017-01-06 Werner Lemberg + + [truetype] Code shuffling. + + * src/truetype/ttgxvar.c (ft_var_load_hvar): Split off loading of + item variation store and delta set index mapping into... + (ft_var_load_item_variation_store, + ft_var_load_delta_set_index_mapping): ...new functions. + +2017-01-06 Werner Lemberg + + [truetype] Add HVAR access without advance width map. + + * src/truetype/ttgxvar.c (ft_var_load_hvar): Handle case where + `offsetToAdvanceWidthMapping' is zero. + (tt_hadvance_adjust): Implement direct deltaSet access by glyph + index. + +2017-01-06 Werner Lemberg + + [pcf] Revise driver. + + This commit improves tracing and handling of malformed fonts. In + particular, the changes to `pcf_get_properties' fix + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=379 + + * src/pcf/pcfread.c (tableNames): Use long names for better + readability. + (pcf_read_TOC): Allow at most 9 tables. + (pcf_get_properties): Allow at most 256 properties. + Limit strings array length to 256 * (65536 + 1) bytes. + Better tracing. + (pcf_get_metric): Trace metric data. + (pcf_get_metrics): Allow at most 65536 metrics. + Fix comparison of `metrics->ascent' and `metrics->descent' to avoid + potential overflow. + Better tracing. + (pcf_get_bitmaps): Allow at most 65536 bitmaps. + Better tracing. + (pcf_get_encodings, pcf_get_accel): Better tracing. + + * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Don't trace `format' details. + These are now shown by `pcf_get_bitmaps'. + +2017-01-04 Werner Lemberg + + * src/pcf/pcfdrivr.c (PCF_Face_Init): Trace compression format. + +2017-01-04 Werner Lemberg + + [cff] More consistency checks for pure CFFs. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=378 + + * src/cff/cffload.c (cff_font_load): Check element number and size + of Name and Top DICT indices. + +2017-01-04 Werner Lemberg + + [cff, truetype] Minor tracing improvement. + + * src/cff/cffobjs.c (cff_face_init), src/truetype/ttobjs.c + (tt_face_init): Indent first tracing message from SFNT driver. + +2017-01-03 Werner Lemberg + + [truetype] Various minor fixes. + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check instruction + size only if we do native hinting. + (TT_Load_Glyph): Trace returned error code. + + * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Trace + returned error code. + (tt_size_ready_bytecode): Don't run `prep' table if `fpgm' table is + invalid. + +2017-01-03 Werner Lemberg + + [sfnt] Don't fail if PCLT, EBLC (and similar tables) are invalid. + + These tables are optional. + + * src/sfnt/sfobjs.c (sfnt_load_face): Implement it. + +2017-01-03 Werner Lemberg + + * src/cff/cffparse.c (cff_parse_num): Simplify. + +2017-01-03 Werner Lemberg + + Various fixes for clang's undefined behaviour sanitizer. + + * src/cff/cffload.c (FT_fdot14ToFixed): Fix casting. + (cff_blend_doBlend): Don't left-shift negative numbers. + Handle 5-byte numbers byte by byte to avoid alignment issues. + + * src/cff/cffparse.c (cff_parse_num): Handle 5-byte numbers byte by + byte to avoid alignment issues. + + * src/cid/cidload (cid_read_subrs): Do nothing if we don't have any + subrs. + + * src/psaux/t1decode.c (t1_decode_parse_charstring): Fix tracing. + + * src/tools/glnames.py (main): Put `DEFINE_PSTABLES' guard around + definition of `ft_get_adobe_glyph_index'. + + * src/psnames/pstables.h: Regenerated. + + * src/psnames/psmodule.c: Include `pstables.h' twice to get both + declaration and definition. + + * src/truetype/ttgxvar.c (FT_fdot14ToFixed, FT_intToFixed): Fix + casting. + +2017-01-01 Werner Lemberg + + [cff] Handle multiple `blend' operators in a row correctly. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=368 + + * src/cff/cffload.c (cff_blend_doBlend): Adjust `parser->stack' + pointers into `subFont->blend_stack' after reallocation. + +2017-01-01 Werner Lemberg + + [sfnt] Return correct number of named instances for TTCs. + + Without this patch, requesting information for face index N returned + the data for face index N+1 (or index 0). + + * src/sfnt/sfobjs.c (sfnt_init_face): Correctly adjust `face_index' + for negative `face_instance_index' values. + +2016-12-31 Werner Lemberg + + */*: Use hex numbers for errors in tracing messages. + +2016-12-31 Werner Lemberg + + [truetype] Check axis count in HVAR table. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=362 + + * src/truetype/ttgxvar.c (ft_var_load_hvar): Check axis count. + (ft_var_load_avar): Fix tracing message. + + +---------------------------------------------------------------------------- + +Copyright 2016-2018 by +David Turner, Robert Wilhelm, and Werner Lemberg. + +This file is part of the FreeType project, and may only be used, modified, +and distributed under the terms of the FreeType project license, +LICENSE.TXT. By continuing to use, modify, or distribute this file you +indicate that you have read the license and understand and accept it +fully. + + +Local Variables: +version-control: never +coding: utf-8 +End: diff --git a/modules/freetype2/Jamfile b/modules/freetype2/Jamfile index 581241758..9078a5fe3 100644 --- a/modules/freetype2/Jamfile +++ b/modules/freetype2/Jamfile @@ -1,6 +1,6 @@ # FreeType 2 top Jamfile. # -# Copyright 2001-2016 by +# Copyright 2001-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -210,7 +210,7 @@ actions RefDoc { python $(FT2_SRC)/tools/docmaker/docmaker.py --prefix=ft2 - --title=FreeType-2.7.1 + --title=FreeType-2.9.1 --output=$(DOC_DIR) $(FT2_INCLUDE)/freetype/*.h $(FT2_INCLUDE)/freetype/config/*.h diff --git a/modules/freetype2/Jamrules b/modules/freetype2/Jamrules index 1e2d9b743..bdd04bcca 100644 --- a/modules/freetype2/Jamrules +++ b/modules/freetype2/Jamrules @@ -1,6 +1,6 @@ # FreeType 2 JamRules. # -# Copyright 2001-2016 by +# Copyright 2001-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/Makefile b/modules/freetype2/Makefile index e370cae8f..0c7ee0eef 100644 --- a/modules/freetype2/Makefile +++ b/modules/freetype2/Makefile @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/README b/modules/freetype2/README index 097024c6e..c23b99e18 100644 --- a/modules/freetype2/README +++ b/modules/freetype2/README @@ -1,7 +1,7 @@ - FreeType 2.7.1 + FreeType 2.9.1 ============== - Homepage: http://www.freetype.org + Homepage: https://www.freetype.org FreeType is a freely available software library to render fonts. @@ -20,17 +20,17 @@ documentation is available as a separate package from our sites. Go to - http://download.savannah.gnu.org/releases/freetype/ + https://download.savannah.gnu.org/releases/freetype/ and download one of the following files. - freetype-doc-2.7.1.tar.bz2 - freetype-doc-2.7.1.tar.gz - ftdoc271.zip + freetype-doc-2.9.1.tar.bz2 + freetype-doc-2.9.1.tar.gz + ftdoc291.zip To view the documentation online, go to - http://www.freetype.org/freetype2/documentation.html + https://www.freetype.org/freetype2/documentation.html Mailing Lists @@ -46,7 +46,7 @@ The lists are moderated; see - http://www.freetype.org/contact.html + https://www.freetype.org/contact.html how to subscribe. @@ -71,7 +71,7 @@ ---------------------------------------------------------------------- -Copyright 2006-2016 by +Copyright 2006-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/modules/freetype2/README.git b/modules/freetype2/README.git index 34ee82df8..a3d7fc0cd 100644 --- a/modules/freetype2/README.git +++ b/modules/freetype2/README.git @@ -37,7 +37,7 @@ repository. ---------------------------------------------------------------------- -Copyright 2005-2016 by +Copyright 2005-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/modules/freetype2/README.moz-patches b/modules/freetype2/README.moz-patches index 4162c767a..e67370b21 100644 --- a/modules/freetype2/README.moz-patches +++ b/modules/freetype2/README.moz-patches @@ -1,4 +1,4 @@ -This directory contains freetype2 v2.7 downloaded from +This directory contains freetype2 v2.9.1 downloaded from http://savannah.nongnu.org/download/freetype/ There are currently no local changes applied to the freetype tree, diff --git a/modules/freetype2/autogen.sh b/modules/freetype2/autogen.sh index 78053ccb6..ab90e6417 100755 --- a/modules/freetype2/autogen.sh +++ b/modules/freetype2/autogen.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2005-2016 by +# Copyright 2005-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/amiga/README b/modules/freetype2/builds/amiga/README index eae9e3396..29e97d667 100644 --- a/modules/freetype2/builds/amiga/README +++ b/modules/freetype2/builds/amiga/README @@ -1,7 +1,7 @@ README for the builds/amiga subdirectory. -Copyright 2005-2016 by +Copyright 2005-2018 by Werner Lemberg and Detlef Würkner. This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/amiga/include/config/ftconfig.h b/modules/freetype2/builds/amiga/include/config/ftconfig.h index 0cb65b661..0217e0ed1 100644 --- a/modules/freetype2/builds/amiga/include/config/ftconfig.h +++ b/modules/freetype2/builds/amiga/include/config/ftconfig.h @@ -4,7 +4,7 @@ /* */ /* Amiga-specific configuration file (specification only). */ /* */ -/* Copyright 2005-2016 by */ +/* Copyright 2005-2018 by */ /* Werner Lemberg and Detlef Würkner. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/modules/freetype2/builds/amiga/include/config/ftmodule.h b/modules/freetype2/builds/amiga/include/config/ftmodule.h index bbff9c522..f8baab566 100644 --- a/modules/freetype2/builds/amiga/include/config/ftmodule.h +++ b/modules/freetype2/builds/amiga/include/config/ftmodule.h @@ -4,7 +4,7 @@ /* */ /* Amiga-specific FreeType module selection. */ /* */ -/* Copyright 2005-2016 by */ +/* Copyright 2005-2018 by */ /* Werner Lemberg and Detlef Würkner. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/modules/freetype2/builds/amiga/makefile b/modules/freetype2/builds/amiga/makefile index 34ba77d7e..6a7700af2 100644 --- a/modules/freetype2/builds/amiga/makefile +++ b/modules/freetype2/builds/amiga/makefile @@ -5,7 +5,7 @@ # -# Copyright 2005-2016 by +# Copyright 2005-2018 by # Werner Lemberg and Detlef Würkner. # # This file is part of the FreeType project, and may only be used, modified, @@ -96,9 +96,6 @@ ftbitmap.ppc.o: $(FTSRC)/base/ftbitmap.c ftcid.ppc.o: $(FTSRC)/base/ftcid.c $(CC) -c $(CFLAGS) -o $@ $< -ftfntfmt.ppc.o: $(FTSRC)/base/ftfntfmt.c - $(CC) -c $(CFLAGS) -o $@ $< - ftfstype.ppc.o: $(FTSRC)/base/ftfstype.c $(CC) -c $(CFLAGS) -o $@ $< @@ -111,9 +108,6 @@ ftglyph.ppc.o: $(FTSRC)/base/ftglyph.c ftgxval.ppc.o: $(FTSRC)/base/ftgxval.c $(CC) -c $(CFLAGS) -o $@ $< -ftlcdfil.ppc.o: $(FTSRC)/base/ftlcdfil.c - $(CC) -c $(CFLAGS) -o $@ $< - ftmm.ppc.o: $(FTSRC)/base/ftmm.c $(CC) -c $(CFLAGS) -o $@ $< @@ -270,8 +264,8 @@ otvalid.ppc.o: $(FTSRC)/otvalid/otvalid.c $(CC) -c $(CFLAGS) -o $@ $< BASEPPC = ftbase.ppc.o ftbbox.ppc.o ftbdf.ppc.o ftbitmap.ppc.o ftcid.ppc.o \ - ftfntfmt.ppc.oftfstype.ppc.o ftgasp.ppc.o ftglyph.ppc.o \ - ftgxval.ppc.o ftlcdfil.ppc.o ftmm.ppc.o ftotval.ppc.o \ + oftfstype.ppc.o ftgasp.ppc.o ftglyph.ppc.o \ + ftgxval.ppc.o ftmm.ppc.o ftotval.ppc.o \ ftpatent.ppc.o ftpfr.ppc.o ftstroke.ppc.o ftsynth.ppc.o \ fttype1.ppc.o ftwinfnt.ppc.o diff --git a/modules/freetype2/builds/amiga/makefile.os4 b/modules/freetype2/builds/amiga/makefile.os4 index a25dd3e69..0d340cf19 100644 --- a/modules/freetype2/builds/amiga/makefile.os4 +++ b/modules/freetype2/builds/amiga/makefile.os4 @@ -4,7 +4,7 @@ # -# Copyright 2005-2016 by +# Copyright 2005-2018 by # Werner Lemberg and Detlef Würkner. # # This file is part of the FreeType project, and may only be used, modified, @@ -99,9 +99,6 @@ ftdebug.ppc.o: FT:src/base/ftdebug.c ftdebugpure.ppc.o: src/base/ftdebug.c $(CC) -c $(CFLAGS) -o $@ src/base/ftdebug.c -ftfntfmt.ppc.o: FT:src/base/ftfntfmt.c - $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftfntfmt.c - ftfstype.ppc.o: FT:src/base/ftfstype.c $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftfstype.c @@ -114,9 +111,6 @@ ftglyph.ppc.o: FT:src/base/ftglyph.c ftgxval.ppc.o: FT:src/base/ftgxval.c $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftgxval.c -ftlcdfil.ppc.o: FT:src/base/ftlcdfil.c - $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftlcdfil.c - ftmm.ppc.o: FT:src/base/ftmm.c $(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftmm.c @@ -274,8 +268,8 @@ otvalid.ppc.o: FT:src/otvalid/otvalid.c $(CC) -c $(CFLAGS) -o $@ /FT/src/otvalid/otvalid.c BASE = ftbase.ppc.o ftbbox.ppc.o ftbdf.ppc.o ftbitmap.ppc.o ftcid.ppc.o \ - ftfntfmt.ppc.o ftfstype.ppc.o ftgasp.ppc.o ftglyph.ppc.o \ - ftgxval.ppc.o ftlcdfil.ppc.o ftmm.ppc.o ftotval.ppc.o \ + ftfstype.ppc.o ftgasp.ppc.o ftglyph.ppc.o \ + ftgxval.ppc.o ftmm.ppc.o ftotval.ppc.o \ ftpatent.ppc.o ftpfr.ppc.o ftstroke.ppc.o ftsynth.ppc.o \ fttype1.ppc.o ftwinfnt.ppc.o diff --git a/modules/freetype2/builds/amiga/smakefile b/modules/freetype2/builds/amiga/smakefile index 723a89027..f5de3089a 100644 --- a/modules/freetype2/builds/amiga/smakefile +++ b/modules/freetype2/builds/amiga/smakefile @@ -3,7 +3,7 @@ # -# Copyright 2005-2016 by +# Copyright 2005-2018 by # Werner Lemberg and Detlef Würkner. # # This file is part of the FreeType project, and may only be used, modified, @@ -42,8 +42,8 @@ # (and either ftdebug.o or ftdebugpure.o if you enabled FT_DEBUG_LEVEL_ERROR or # FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h). -OBJBASE = ftbase.o ftbbox.o ftbdf.o ftbitmap.o ftcid.o ftfntfmt.o ftfstype.o \ - ftgasp.o ftglyph.o ftgxval.o ftlcdfil.o ftmm.o ftotval.o \ +OBJBASE = ftbase.o ftbbox.o ftbdf.o ftbitmap.o ftcid.o ftfstype.o \ + ftgasp.o ftglyph.o ftgxval.o ftmm.o ftotval.o \ ftpatent.o ftpfr.o ftstroke.o ftsynth.o fttype1.o ftwinfnt.o OBJSYSTEM = ftsystem.o ftsystempure.o @@ -133,8 +133,6 @@ ftbitmap.o: $(CORE)base/ftbitmap.c sc $(SCFLAGS) objname=$@ $< ftcid.o: $(CORE)base/ftcid.c sc $(SCFLAGS) objname=$@ $< -ftfntfmt.o: $(CORE)base/ftfntfmt.c - sc $(SCFLAGS) objname=$@ $< ftfstype.o: $(CORE)base/ftfstype.c sc $(SCFLAGS) objname=$@ $< ftgasp.o: $(CORE)base/ftgasp.c @@ -143,8 +141,6 @@ ftglyph.o: $(CORE)base/ftglyph.c sc $(SCFLAGS) objname=$@ $< ftgxval.o: $(CORE)base/ftgxval.c sc $(SCFLAGS) objname=$@ $< -ftlcdfil.o: $(CORE)base/ftlcdfil.c - sc $(SCFLAGS) objname=$@ $< ftmm.o: $(CORE)base/ftmm.c sc $(SCFLAGS) objname=$@ $< ftotval.o: $(CORE)base/ftotval.c diff --git a/modules/freetype2/builds/amiga/src/base/ftdebug.c b/modules/freetype2/builds/amiga/src/base/ftdebug.c index 4ac6eefd6..f3ba48c93 100644 --- a/modules/freetype2/builds/amiga/src/base/ftdebug.c +++ b/modules/freetype2/builds/amiga/src/base/ftdebug.c @@ -4,7 +4,7 @@ /* */ /* Debugging and logging component for amiga (body). */ /* */ -/* Copyright 1996-2016 by */ +/* Copyright 1996-2018 by */ /* David Turner, Robert Wilhelm, Werner Lemberg and Detlef Würkner. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/modules/freetype2/builds/amiga/src/base/ftsystem.c b/modules/freetype2/builds/amiga/src/base/ftsystem.c index 080eaef3e..babaeeb68 100644 --- a/modules/freetype2/builds/amiga/src/base/ftsystem.c +++ b/modules/freetype2/builds/amiga/src/base/ftsystem.c @@ -4,7 +4,7 @@ /* */ /* Amiga-specific FreeType low-level system interface (body). */ /* */ -/* Copyright 1996-2016 by */ +/* Copyright 1996-2018 by */ /* David Turner, Robert Wilhelm, Werner Lemberg and Detlef Würkner. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/modules/freetype2/builds/ansi/ansi-def.mk b/modules/freetype2/builds/ansi/ansi-def.mk index 933232d58..1484f9629 100644 --- a/modules/freetype2/builds/ansi/ansi-def.mk +++ b/modules/freetype2/builds/ansi/ansi-def.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/ansi/ansi.mk b/modules/freetype2/builds/ansi/ansi.mk index 19a3e1f23..c06732c83 100644 --- a/modules/freetype2/builds/ansi/ansi.mk +++ b/modules/freetype2/builds/ansi/ansi.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/beos/beos-def.mk b/modules/freetype2/builds/beos/beos-def.mk index edd356ec2..89c54ddd5 100644 --- a/modules/freetype2/builds/beos/beos-def.mk +++ b/modules/freetype2/builds/beos/beos-def.mk @@ -5,7 +5,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/beos/beos.mk b/modules/freetype2/builds/beos/beos.mk index 4b9e0971d..619ceaff4 100644 --- a/modules/freetype2/builds/beos/beos.mk +++ b/modules/freetype2/builds/beos/beos.mk @@ -2,7 +2,7 @@ # FreeType 2 configuration rules for a BeOS system # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/beos/detect.mk b/modules/freetype2/builds/beos/detect.mk index e85bc4172..82f62059b 100644 --- a/modules/freetype2/builds/beos/detect.mk +++ b/modules/freetype2/builds/beos/detect.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/cmake/FindHarfBuzz.cmake b/modules/freetype2/builds/cmake/FindHarfBuzz.cmake index f394b82bf..ee0d52e36 100644 --- a/modules/freetype2/builds/cmake/FindHarfBuzz.cmake +++ b/modules/freetype2/builds/cmake/FindHarfBuzz.cmake @@ -31,42 +31,51 @@ # HARFBUZZ_LIBRARIES - containg the HarfBuzz library include(FindPkgConfig) +pkg_check_modules(PC_HARFBUZZ QUIET harfbuzz) -pkg_check_modules(PC_HARFBUZZ harfbuzz>=0.9.7) - -find_path(HARFBUZZ_INCLUDE_DIRS NAMES hb.h - HINTS ${PC_HARFBUZZ_INCLUDE_DIRS} ${PC_HARFBUZZ_INCLUDEDIR} +find_path(HARFBUZZ_INCLUDE_DIRS + NAMES hb.h + HINTS ${PC_HARFBUZZ_INCLUDEDIR} + ${PC_HARFBUZZ_INCLUDE_DIRS} + PATH_SUFFIXES harfbuzz ) find_library(HARFBUZZ_LIBRARIES NAMES harfbuzz - HINTS ${PC_HARFBUZZ_LIBRARY_DIRS} ${PC_HARFBUZZ_LIBDIR} + HINTS ${PC_HARFBUZZ_LIBDIR} + ${PC_HARFBUZZ_LIBRARY_DIRS} ) -# HarfBuzz 0.9.18 split ICU support into a separate harfbuzz-icu library. -if ("${PC_HARFBUZZ_VERSION}" VERSION_GREATER "0.9.17") - if (HarfBuzz_FIND_REQUIRED) - set(_HARFBUZZ_REQUIRED REQUIRED) - else () - set(_HARFBUZZ_REQUIRED "") - endif () - pkg_check_modules(PC_HARFBUZZ_ICU harfbuzz-icu>=0.9.18 ${_HARFBUZZ_REQUIRED}) - find_library(HARFBUZZ_ICU_LIBRARIES NAMES harfbuzz-icu - HINTS ${PC_HARFBUZZ_ICU_LIBRARY_DIRS} ${PC_HARFBUZZ_ICU_LIBDIR} - ) - if (HARFBUZZ_ICU_LIBRARIES) - list(APPEND HARFBUZZ_LIBRARIES "${HARFBUZZ_ICU_LIBRARIES}") +if (HARFBUZZ_INCLUDE_DIRS) + if (EXISTS "${HARFBUZZ_INCLUDE_DIRS}/hb-version.h") + file(READ "${HARFBUZZ_INCLUDE_DIRS}/hb-version.h" _harfbuzz_version_content) + + string(REGEX MATCH "#define +HB_VERSION_STRING +\"([0-9]+\\.[0-9]+\\.[0-9]+)\"" _dummy "${_harfbuzz_version_content}") + set(HARFBUZZ_VERSION "${CMAKE_MATCH_1}") endif () - set(_HARFBUZZ_EXTRA_REQUIRED_VAR "HARFBUZZ_ICU_LIBRARIES") -else () - set(_HARFBUZZ_EXTRA_REQUIRED_VAR "") +endif () + +if ("${harfbuzz_FIND_VERSION}" VERSION_GREATER "${HARFBUZZ_VERSION}") + message(FATAL_ERROR "Required version (" ${harfbuzz_FIND_VERSION} ") is higher than found version (" ${HARFBUZZ_VERSION} ")") endif () include(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(HarfBuzz DEFAULT_MSG HARFBUZZ_INCLUDE_DIRS - HARFBUZZ_LIBRARIES ${_HARFBUZZ_EXTRA_REQUIRED_VAR}) +FIND_PACKAGE_HANDLE_STANDARD_ARGS( + harfbuzz + REQUIRED_VARS HARFBUZZ_INCLUDE_DIRS HARFBUZZ_LIBRARIES + VERSION_VAR HARFBUZZ_VERSION) mark_as_advanced( - HARFBUZZ_ICU_LIBRARIES HARFBUZZ_INCLUDE_DIRS HARFBUZZ_LIBRARIES ) + +# Allows easy linking as in +# target_link_libraries(freetype PRIVATE Harfbuzz::Harfbuzz) +if (NOT CMAKE_VERSION VERSION_LESS 3.1) + if (HARFBUZZ_FOUND AND NOT TARGET Harfbuzz::Harfbuzz) + add_library(Harfbuzz::Harfbuzz INTERFACE IMPORTED) + set_target_properties( + Harfbuzz::Harfbuzz PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${HARFBUZZ_INCLUDE_DIRS}") + endif () +endif () diff --git a/modules/freetype2/builds/cmake/iOS.cmake b/modules/freetype2/builds/cmake/iOS.cmake index 378dbd895..c6da70c0c 100644 --- a/modules/freetype2/builds/cmake/iOS.cmake +++ b/modules/freetype2/builds/cmake/iOS.cmake @@ -1,6 +1,6 @@ # iOS.cmake # -# Copyright 2014-2016 by +# Copyright 2014-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # Written by David Wimsey diff --git a/modules/freetype2/builds/cmake/testbuild.sh b/modules/freetype2/builds/cmake/testbuild.sh index e05dd29cf..1fa3a1869 100755 --- a/modules/freetype2/builds/cmake/testbuild.sh +++ b/modules/freetype2/builds/cmake/testbuild.sh @@ -1,6 +1,6 @@ #!/bin/sh -e -# Copyright 2015-2016 by +# Copyright 2015-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/compiler/ansi-cc.mk b/modules/freetype2/builds/compiler/ansi-cc.mk index 688b0c735..99fe8cb58 100644 --- a/modules/freetype2/builds/compiler/ansi-cc.mk +++ b/modules/freetype2/builds/compiler/ansi-cc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/compiler/bcc-dev.mk b/modules/freetype2/builds/compiler/bcc-dev.mk index a53fcefa5..8d67fa1a5 100644 --- a/modules/freetype2/builds/compiler/bcc-dev.mk +++ b/modules/freetype2/builds/compiler/bcc-dev.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/compiler/bcc.mk b/modules/freetype2/builds/compiler/bcc.mk index 398b85303..02d483336 100644 --- a/modules/freetype2/builds/compiler/bcc.mk +++ b/modules/freetype2/builds/compiler/bcc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/compiler/emx.mk b/modules/freetype2/builds/compiler/emx.mk index 2ce52be46..2926b1179 100644 --- a/modules/freetype2/builds/compiler/emx.mk +++ b/modules/freetype2/builds/compiler/emx.mk @@ -3,7 +3,7 @@ # -# Copyright 2003-2016 by +# Copyright 2003-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/compiler/gcc-dev.mk b/modules/freetype2/builds/compiler/gcc-dev.mk index f87f94d9d..48d284898 100644 --- a/modules/freetype2/builds/compiler/gcc-dev.mk +++ b/modules/freetype2/builds/compiler/gcc-dev.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/compiler/gcc.mk b/modules/freetype2/builds/compiler/gcc.mk index e102c6d34..9c772394a 100644 --- a/modules/freetype2/builds/compiler/gcc.mk +++ b/modules/freetype2/builds/compiler/gcc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/compiler/intelc.mk b/modules/freetype2/builds/compiler/intelc.mk index b2e704707..e9236d34b 100644 --- a/modules/freetype2/builds/compiler/intelc.mk +++ b/modules/freetype2/builds/compiler/intelc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/compiler/unix-lcc.mk b/modules/freetype2/builds/compiler/unix-lcc.mk index 20011f884..09fffeb67 100644 --- a/modules/freetype2/builds/compiler/unix-lcc.mk +++ b/modules/freetype2/builds/compiler/unix-lcc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/compiler/visualage.mk b/modules/freetype2/builds/compiler/visualage.mk index 14e6229f3..10299da62 100644 --- a/modules/freetype2/builds/compiler/visualage.mk +++ b/modules/freetype2/builds/compiler/visualage.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/compiler/visualc.mk b/modules/freetype2/builds/compiler/visualc.mk index 62dc9d217..74f498b61 100644 --- a/modules/freetype2/builds/compiler/visualc.mk +++ b/modules/freetype2/builds/compiler/visualc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/compiler/watcom.mk b/modules/freetype2/builds/compiler/watcom.mk index da3d19ded..e455922f0 100644 --- a/modules/freetype2/builds/compiler/watcom.mk +++ b/modules/freetype2/builds/compiler/watcom.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/compiler/win-lcc.mk b/modules/freetype2/builds/compiler/win-lcc.mk index bd0d4bee4..1356c1ca8 100644 --- a/modules/freetype2/builds/compiler/win-lcc.mk +++ b/modules/freetype2/builds/compiler/win-lcc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/detect.mk b/modules/freetype2/builds/detect.mk index cea55a57e..eb7f79749 100644 --- a/modules/freetype2/builds/detect.mk +++ b/modules/freetype2/builds/detect.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -101,54 +101,28 @@ ifndef CONFIG_FILE .PHONY: setup endif -# The following targets are equivalent, with the exception that they use -# a slightly different syntax for the `echo' command. +# Flash out and copy rules. # -# std_setup: defined for most (i.e. Unix-like) platforms -# dos_setup: defined for Dos-ish platforms like Dos, Windows & OS/2 -# -.PHONY: std_setup dos_setup +.PHONY: std_setup std_setup: - @echo "" - @echo "$(PROJECT_TITLE) build system -- automatic system detection" - @echo "" - @echo "The following settings are used:" - @echo "" - @echo " platform $(PLATFORM)" - @echo " compiler $(CC)" - @echo " configuration directory $(BUILD_DIR)" - @echo " configuration rules $(CONFIG_RULES)" - @echo "" - @echo "If this does not correspond to your system or settings please remove the file" - @echo "\`$(CONFIG_MK)' from this directory then read the INSTALL file for help." - @echo "" - @echo "Otherwise, simply type \`$(MAKE)' again to build the library," - @echo "or \`$(MAKE) refdoc' to build the API reference (this needs python >= 2.6)." - @echo "" - @$(COPY) $(CONFIG_RULES) $(CONFIG_MK) - - -# Special case for Dos, Windows, OS/2, where echo "" doesn't work correctly! -# -dos_setup: - @type builds$(SEP)newline - @echo $(PROJECT_TITLE) build system -- automatic system detection - @type builds$(SEP)newline - @echo The following settings are used: - @type builds$(SEP)newline - @echo platformÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$(PLATFORM) - @echo compilerÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$(CC) - @echo configuration directoryÿÿÿÿÿÿ$(subst /,$(SEP),$(BUILD_DIR)) - @echo configuration rulesÿÿÿÿÿÿÿÿÿÿ$(subst /,$(SEP),$(CONFIG_RULES)) - @type builds$(SEP)newline - @echo If this does not correspond to your system or settings please remove the file - @echo '$(CONFIG_MK)' from this directory then read the INSTALL file for help. - @type builds$(SEP)newline - @echo Otherwise, simply type 'make' again to build the library. - @echo or 'make refdoc' to build the API reference (this needs python >= 2.6). - @type builds$(SEP)newline - @$(COPY) $(subst /,$(SEP),$(CONFIG_RULES) $(CONFIG_MK)) > nul + $(info ) + $(info $(PROJECT_TITLE) build system -- automatic system detection) + $(info ) + $(info The following settings are used:) + $(info ) + $(info $(empty) platform $(PLATFORM)) + $(info $(empty) compiler $(CC)) + $(info $(empty) configuration directory $(subst /,$(SEP),$(BUILD_DIR))) + $(info $(empty) configuration rules $(subst /,$(SEP),$(CONFIG_RULES))) + $(info ) + $(info If this does not correspond to your system or settings please remove the file) + $(info `$(CONFIG_MK)' from this directory then read the INSTALL file for help.) + $(info ) + $(info Otherwise, simply type `$(MAKE)' again to build the library,) + $(info or `$(MAKE) refdoc' to build the API reference (this needs python >= 2.6).) + $(info ) + @$(COPY) $(subst /,$(SEP),$(CONFIG_RULES) $(CONFIG_MK)) # EOF diff --git a/modules/freetype2/builds/dos/detect.mk b/modules/freetype2/builds/dos/detect.mk index b610e463d..0201f7b46 100644 --- a/modules/freetype2/builds/dos/detect.mk +++ b/modules/freetype2/builds/dos/detect.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -133,7 +133,7 @@ ifeq ($(PLATFORM),dos) COPY := copy endif # test NT - setup: dos_setup + setup: std_setup endif endif # test PLATFORM dos diff --git a/modules/freetype2/builds/dos/dos-def.mk b/modules/freetype2/builds/dos/dos-def.mk index 9aa0ee648..cb1154dc8 100644 --- a/modules/freetype2/builds/dos/dos-def.mk +++ b/modules/freetype2/builds/dos/dos-def.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/dos/dos-emx.mk b/modules/freetype2/builds/dos/dos-emx.mk index 3933abac7..dedcc3fc1 100644 --- a/modules/freetype2/builds/dos/dos-emx.mk +++ b/modules/freetype2/builds/dos/dos-emx.mk @@ -3,7 +3,7 @@ # -# Copyright 2003-2016 by +# Copyright 2003-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/dos/dos-gcc.mk b/modules/freetype2/builds/dos/dos-gcc.mk index e191a8134..53099ab41 100644 --- a/modules/freetype2/builds/dos/dos-gcc.mk +++ b/modules/freetype2/builds/dos/dos-gcc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/dos/dos-wat.mk b/modules/freetype2/builds/dos/dos-wat.mk index a0fe4c94b..1bd00e73e 100644 --- a/modules/freetype2/builds/dos/dos-wat.mk +++ b/modules/freetype2/builds/dos/dos-wat.mk @@ -3,7 +3,7 @@ # -# Copyright 2003-2016 by +# Copyright 2003-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/exports.mk b/modules/freetype2/builds/exports.mk index d5a508571..59fe31a4b 100644 --- a/modules/freetype2/builds/exports.mk +++ b/modules/freetype2/builds/exports.mk @@ -3,7 +3,7 @@ # -# Copyright 2005-2016 by +# Copyright 2005-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/freetype.mk b/modules/freetype2/builds/freetype.mk index 43766beac..6f68a0f65 100644 --- a/modules/freetype2/builds/freetype.mk +++ b/modules/freetype2/builds/freetype.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -153,6 +153,9 @@ endif ifneq ($(wildcard $(OBJ_DIR)/ftoption.h),) FTOPTION_H := $(OBJ_DIR)/ftoption.h FTOPTION_FLAG := $DFT_CONFIG_OPTIONS_H="" +else ifneq ($(wildcard $(BUILD_DIR)/ftoption.h),) + FTOPTION_H := $(BUILD_DIR)/ftoption.h + FTOPTION_FLAG := $DFT_CONFIG_OPTIONS_H="" endif # `CPPFLAGS' might be specified by the user in the environment. @@ -245,6 +248,22 @@ $(FTINIT_OBJ): $(FTINIT_SRC) $(FREETYPE_H) $(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<) +# ftver component +# +# The VERSIONINFO resource `ftver.rc' contains version and copyright +# to be compiled by windres and tagged into DLL usually. +# +ifneq ($(RC),) + FTVER_SRC := $(BASE_DIR)/ftver.rc + FTVER_OBJ := $(OBJ_DIR)/ftver.$O + + OBJECTS_LIST += $(FTVER_OBJ) + + $(FTVER_OBJ): $(FTVER_SRC) + $(RC) -o $@ $< +endif + + # All FreeType library objects. # OBJ_M := $(BASE_OBJ_M) $(BASE_EXT_OBJ) $(DRV_OBJS_M) @@ -326,10 +345,9 @@ remove_ftmodule_h: .PHONY: clean distclean -# The `config.mk' file must define `clean_freetype' and -# `distclean_freetype'. Implementations may use to relay these to either -# the `std' or `dos' versions from above, or simply provide their own -# implementation. +# The `config.mk' file must define `clean_project' and `distclean_project'. +# Implementations may use to relay these to either the `std' or `dos' +# versions from above, or simply provide their own implementation. # clean: clean_project distclean: distclean_project remove_config_mk remove_ftmodule_h diff --git a/modules/freetype2/builds/link_dos.mk b/modules/freetype2/builds/link_dos.mk index f04cc70c9..3b0e8da58 100644 --- a/modules/freetype2/builds/link_dos.mk +++ b/modules/freetype2/builds/link_dos.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/link_std.mk b/modules/freetype2/builds/link_std.mk index a5d192e88..8ba5e64db 100644 --- a/modules/freetype2/builds/link_std.mk +++ b/modules/freetype2/builds/link_std.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/mac/FreeType.m68k_cfm.make.txt b/modules/freetype2/builds/mac/FreeType.m68k_cfm.make.txt index c0a55f510..b74565f10 100644 --- a/modules/freetype2/builds/mac/FreeType.m68k_cfm.make.txt +++ b/modules/freetype2/builds/mac/FreeType.m68k_cfm.make.txt @@ -38,7 +38,6 @@ SrcFiles = \xB6 :src:base:ftbdf.c \xB6 :src:base:ftbitmap.c \xB6 :src:base:ftdebug.c \xB6 - :src:base:ftfntfmt.c \xB6 :src:base:ftfstype.c \xB6 :src:base:ftglyph.c \xB6 :src:base:ftgxval.c \xB6 @@ -83,7 +82,6 @@ ObjFiles-68K = \xB6 "{ObjDir}ftbdf.c.o" \xB6 "{ObjDir}ftbitmap.c.o" \xB6 "{ObjDir}ftdebug.c.o" \xB6 - "{ObjDir}ftfntfmt.c.o" \xB6 "{ObjDir}ftfstype.c.o" \xB6 "{ObjDir}ftglyph.c.o" \xB6 "{ObjDir}ftgxval.c.o" \xB6 @@ -161,7 +159,6 @@ FreeType.m68k_cfm.o \xC4\xC4 {ObjFiles-68K} {LibFiles-68K} {\xA5MondoBuild\xA5 "{ObjDir}ftbdf.c.o" \xC4 :src:base:ftbdf.c "{ObjDir}ftbitmap.c.o" \xC4 :src:base:ftbitmap.c "{ObjDir}ftdebug.c.o" \xC4 :src:base:ftdebug.c -"{ObjDir}ftfntfmt.c.o" \xC4 :src:base:ftfntfmt.c "{ObjDir}ftfstype.c.o" \xC4 :src:base:ftfstype.c "{ObjDir}ftglyph.c.o" \xC4 :src:base:ftglyph.c "{ObjDir}ftgxval.c.o" \xC4 :src:base:ftgxval.c diff --git a/modules/freetype2/builds/mac/FreeType.m68k_far.make.txt b/modules/freetype2/builds/mac/FreeType.m68k_far.make.txt index e9b7f6f5f..d880ddbb7 100644 --- a/modules/freetype2/builds/mac/FreeType.m68k_far.make.txt +++ b/modules/freetype2/builds/mac/FreeType.m68k_far.make.txt @@ -37,7 +37,6 @@ SrcFiles = \xB6 :src:base:ftbdf.c \xB6 :src:base:ftbitmap.c \xB6 :src:base:ftdebug.c \xB6 - :src:base:ftfntfmt.c \xB6 :src:base:ftfstype.c \xB6 :src:base:ftglyph.c \xB6 :src:base:ftgxval.c \xB6 @@ -82,7 +81,6 @@ ObjFiles-68K = \xB6 "{ObjDir}ftbdf.c.o" \xB6 "{ObjDir}ftbitmap.c.o" \xB6 "{ObjDir}ftdebug.c.o" \xB6 - "{ObjDir}ftfntfmt.c.o" \xB6 "{ObjDir}ftfstype.c.o" \xB6 "{ObjDir}ftglyph.c.o" \xB6 "{ObjDir}ftgxval.c.o" \xB6 @@ -160,7 +158,6 @@ FreeType.m68k_far.o \xC4\xC4 {ObjFiles-68K} {LibFiles-68K} {\xA5MondoBuild\xA5 "{ObjDir}ftbdf.c.o" \xC4 :src:base:ftbdf.c "{ObjDir}ftbitmap.c.o" \xC4 :src:base:ftbitmap.c "{ObjDir}ftdebug.c.o" \xC4 :src:base:ftdebug.c -"{ObjDir}ftfntfmt.c.o" \xC4 :src:base:ftfntfmt.c "{ObjDir}ftfstype.c.o" \xC4 :src:base:ftfstype.c "{ObjDir}ftglyph.c.o" \xC4 :src:base:ftglyph.c "{ObjDir}ftgxval.c.o" \xC4 :src:base:ftgxval.c diff --git a/modules/freetype2/builds/mac/FreeType.ppc_carbon.make.txt b/modules/freetype2/builds/mac/FreeType.ppc_carbon.make.txt index 9eb1dac4e..1fa8c3076 100644 --- a/modules/freetype2/builds/mac/FreeType.ppc_carbon.make.txt +++ b/modules/freetype2/builds/mac/FreeType.ppc_carbon.make.txt @@ -38,7 +38,6 @@ SrcFiles = \xB6 :src:base:ftbdf.c \xB6 :src:base:ftbitmap.c \xB6 :src:base:ftdebug.c \xB6 - :src:base:ftfntfmt.c \xB6 :src:base:ftfstype.c \xB6 :src:base:ftglyph.c \xB6 :src:base:ftgxval.c \xB6 @@ -83,7 +82,6 @@ ObjFiles-PPC = \xB6 "{ObjDir}ftbdf.c.x" \xB6 "{ObjDir}ftbitmap.c.x" \xB6 "{ObjDir}ftdebug.c.x" \xB6 - "{ObjDir}ftfntfmt.c.x" \xB6 "{ObjDir}ftfstype.c.x" \xB6 "{ObjDir}ftglyph.c.x" \xB6 "{ObjDir}ftgxval.c.x" \xB6 @@ -164,7 +162,6 @@ FreeType.ppc_carbon.o \xC4\xC4 {ObjFiles-PPC} {LibFiles-PPC} {\xA5MondoBuild\x "{ObjDir}ftbdf.c.x" \xC4 :src:base:ftbdf.c "{ObjDir}ftbitmap.c.x" \xC4 :src:base:ftbitmap.c "{ObjDir}ftdebug.c.x" \xC4 :src:base:ftdebug.c -"{ObjDir}ftfntfmt.c.x" \xC4 :src:base:ftfntfmt.c "{ObjDir}ftfstype.c.x" \xC4 :src:base:ftfstype.c "{ObjDir}ftglyph.c.x" \xC4 :src:base:ftglyph.c "{ObjDir}ftgxval.c.x" \xC4 :src:base:ftgxval.c diff --git a/modules/freetype2/builds/mac/FreeType.ppc_classic.make.txt b/modules/freetype2/builds/mac/FreeType.ppc_classic.make.txt index 0627eeaa9..2550190cb 100644 --- a/modules/freetype2/builds/mac/FreeType.ppc_classic.make.txt +++ b/modules/freetype2/builds/mac/FreeType.ppc_classic.make.txt @@ -38,7 +38,6 @@ SrcFiles = \xB6 :src:base:ftbdf.c \xB6 :src:base:ftbitmap.c \xB6 :src:base:ftdebug.c \xB6 - :src:base:ftfntfmt.c \xB6 :src:base:ftfstype.c \xB6 :src:base:ftglyph.c \xB6 :src:base:ftgxval.c \xB6 @@ -83,7 +82,6 @@ ObjFiles-PPC = \xB6 "{ObjDir}ftbdf.c.x" \xB6 "{ObjDir}ftbitmap.c.x" \xB6 "{ObjDir}ftdebug.c.x" \xB6 - "{ObjDir}ftfntfmt.c.x" \xB6 "{ObjDir}ftfstype.c.x" \xB6 "{ObjDir}ftglyph.c.x" \xB6 "{ObjDir}ftgxval.c.x" \xB6 @@ -164,7 +162,6 @@ FreeType.ppc_classic.o \xC4\xC4 {ObjFiles-PPC} {LibFiles-PPC} {\xA5MondoBuild\ "{ObjDir}ftbdf.c.x" \xC4 :src:base:ftbdf.c "{ObjDir}ftbitmap.c.x" \xC4 :src:base:ftbitmap.c "{ObjDir}ftdebug.c.x" \xC4 :src:base:ftdebug.c -"{ObjDir}ftfntfmt.c.x" \xC4 :src:base:ftfntfmt.c "{ObjDir}ftfstype.c.x" \xC4 :src:base:ftfstype.c "{ObjDir}ftglyph.c.x" \xC4 :src:base:ftglyph.c "{ObjDir}ftgxval.c.x" \xC4 :src:base:ftgxval.c diff --git a/modules/freetype2/builds/mac/ftmac.c b/modules/freetype2/builds/mac/ftmac.c index cbb3cd731..c45546cee 100644 --- a/modules/freetype2/builds/mac/ftmac.c +++ b/modules/freetype2/builds/mac/ftmac.c @@ -5,7 +5,7 @@ /* Mac FOND support. Written by just@letterror.com. */ /* Heavily Fixed by mpsuzuki, George Williams and Sean McBride */ /* */ -/* Copyright 1996-2016 by */ +/* Copyright 1996-2018 by */ /* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -1423,7 +1423,7 @@ typedef short ResourceIndex; /* accepts an FSRef instead of a path. */ /* */ /* This function is deprecated because Carbon data types (FSRef) */ - /* are not cross-platform, and thus not suitable for the freetype API. */ + /* are not cross-platform, and thus not suitable for the FreeType API. */ FT_EXPORT_DEF( FT_Error ) FT_New_Face_From_FSRef( FT_Library library, const FSRef* ref, @@ -1481,7 +1481,7 @@ typedef short ResourceIndex; /* accepts an FSSpec instead of a path. */ /* */ /* This function is deprecated because Carbon data types (FSSpec) */ - /* are not cross-platform, and thus not suitable for the freetype API. */ + /* are not cross-platform, and thus not suitable for the FreeType API. */ FT_EXPORT_DEF( FT_Error ) FT_New_Face_From_FSSpec( FT_Library library, const FSSpec* spec, diff --git a/modules/freetype2/builds/modules.mk b/modules/freetype2/builds/modules.mk index 787f86468..9a7a4a0aa 100644 --- a/modules/freetype2/builds/modules.mk +++ b/modules/freetype2/builds/modules.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -41,7 +41,7 @@ endif define FTMODULE_H_INIT $(REMOVE_MODULE) -@-echo Generating modules list in $(FTMODULE_H)... +$(info Generating modules list in $(FTMODULE_H)...) $(OPEN_MODULE)/* This is a generated file. */$(CLOSE_MODULE) endef @@ -56,7 +56,7 @@ endef define FTMODULE_H_DONE $(OPEN_MODULE)/* EOF */$(CLOSE_MODULE) -@echo done. +$(info done.) endef diff --git a/modules/freetype2/builds/newline b/modules/freetype2/builds/newline deleted file mode 100644 index 8b1378917..000000000 --- a/modules/freetype2/builds/newline +++ /dev/null @@ -1 +0,0 @@ - diff --git a/modules/freetype2/builds/os2/detect.mk b/modules/freetype2/builds/os2/detect.mk index df0579230..aaf78488b 100644 --- a/modules/freetype2/builds/os2/detect.mk +++ b/modules/freetype2/builds/os2/detect.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -65,7 +65,7 @@ ifeq ($(PLATFORM),os2) .PHONY: devel endif - setup: dos_setup + setup: std_setup endif # test PLATFORM os2 diff --git a/modules/freetype2/builds/os2/os2-def.mk b/modules/freetype2/builds/os2/os2-def.mk index b8d4d7be4..7ad1ffbad 100644 --- a/modules/freetype2/builds/os2/os2-def.mk +++ b/modules/freetype2/builds/os2/os2-def.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/os2/os2-dev.mk b/modules/freetype2/builds/os2/os2-dev.mk index 629d766e2..505a754f7 100644 --- a/modules/freetype2/builds/os2/os2-dev.mk +++ b/modules/freetype2/builds/os2/os2-dev.mk @@ -5,7 +5,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/os2/os2-gcc.mk b/modules/freetype2/builds/os2/os2-gcc.mk index b3e590be7..65026b101 100644 --- a/modules/freetype2/builds/os2/os2-gcc.mk +++ b/modules/freetype2/builds/os2/os2-gcc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/symbian/bld.inf b/modules/freetype2/builds/symbian/bld.inf index cbbdc3abb..9c6d8dca1 100644 --- a/modules/freetype2/builds/symbian/bld.inf +++ b/modules/freetype2/builds/symbian/bld.inf @@ -2,7 +2,7 @@ // FreeType 2 project for the symbian platform // -// Copyright 2008-2016 by +// Copyright 2008-2018 by // David Turner, Robert Wilhelm, and Werner Lemberg. // // This file is part of the FreeType project, and may only be used, modified, @@ -25,10 +25,14 @@ PRJ_EXPORTS ../../include/freetype/config/ftoption.h config/ftoption.h ../../include/freetype/config/ftstdlib.h config/ftstdlib.h ../../include/freetype/freetype.h freetype.h +../../include/freetype/ftadvanc.h ftadvanc.h +../../include/freetype/ftautoh.h ftautoh.h ../../include/freetype/ftbbox.h ftbbox.h ../../include/freetype/ftbdf.h ftbdf.h ../../include/freetype/ftbitmap.h ftbitmap.h +../../include/freetype/ftbzip2.h ftbzip2.h ../../include/freetype/ftcache.h ftcache.h +../../include/freetype/ftcffdrv.h ftcffdrv.h ../../include/freetype/ftcid.h ftcid.h ../../include/freetype/fterrdef.h fterrdef.h ../../include/freetype/fterrors.h fterrors.h @@ -37,7 +41,6 @@ PRJ_EXPORTS ../../include/freetype/ftglyph.h ftglyph.h ../../include/freetype/ftgxval.h ftgxval.h ../../include/freetype/ftgzip.h ftgzip.h -../../include/freetype/ftbzip2.h ftbzip2.h ../../include/freetype/ftimage.h ftimage.h ../../include/freetype/ftincrem.h ftincrem.h ../../include/freetype/ftlcdfil.h ftlcdfil.h @@ -49,6 +52,8 @@ PRJ_EXPORTS ../../include/freetype/ftmoderr.h ftmoderr.h ../../include/freetype/ftotval.h ftotval.h ../../include/freetype/ftoutln.h ftoutln.h +../../include/freetype/ftparams.h ftparams.h +../../include/freetype/ftpcfdrv.h ftpcfdrv.h ../../include/freetype/ftpfr.h ftpfr.h ../../include/freetype/ftrender.h ftrender.h ../../include/freetype/ftsizes.h ftsizes.h @@ -56,11 +61,12 @@ PRJ_EXPORTS ../../include/freetype/ftstroke.h ftstroke.h ../../include/freetype/ftsynth.h ftsynth.h ../../include/freetype/ftsystem.h ftsystem.h +../../include/freetype/ftt1drv.h ftt1drv.h ../../include/freetype/fttrigon.h fttrigon.h +../../include/freetype/ftttdrv.h ftttdrv.h ../../include/freetype/fttypes.h fttypes.h ../../include/freetype/ftwinfnt.h ftwinfnt.h ../../include/freetype/t1tables.h t1tables.h ../../include/freetype/ttnameid.h ttnameid.h ../../include/freetype/tttables.h tttables.h ../../include/freetype/tttags.h tttags.h -../../include/freetype/ttunpat.h ttunpat.h diff --git a/modules/freetype2/builds/symbian/freetype.mmp b/modules/freetype2/builds/symbian/freetype.mmp index 19440541b..4e4a041eb 100644 --- a/modules/freetype2/builds/symbian/freetype.mmp +++ b/modules/freetype2/builds/symbian/freetype.mmp @@ -2,7 +2,7 @@ // FreeType 2 makefile for the symbian platform // -// Copyright 2008-2016 by +// Copyright 2008-2018 by // David Turner, Robert Wilhelm, and Werner Lemberg. // // This file is part of the FreeType project, and may only be used, modified, @@ -28,13 +28,11 @@ source ftbbox.c source ftbdf.c source ftbitmap.c source ftcid.c -source ftfntfmt.c source ftfstype.c source ftgasp.c source ftglyph.c source ftgxval.c source ftinit.c -source ftlcdfil.c source ftmm.c source ftotval.c source ftpatent.c @@ -49,6 +47,10 @@ sourcepath ..\..\src\bdf source bdf.c +sourcepath ..\..\src\bzip2 + +source ftbzip2.c + sourcepath ..\..\src\cache source ftcache.c @@ -65,10 +67,6 @@ sourcepath ..\..\src\gzip source ftgzip.c -sourcepath ..\..\src\bzip2 - -source ftbzip2.c - sourcepath ..\..\src\lzw source ftlzw.c @@ -126,12 +124,12 @@ systeminclude ..\..\include systeminclude \epoc32\include\stdapis userinclude ..\..\src\autofit userinclude ..\..\src\bdf +userinclude ..\..\src\bzip2 userinclude ..\..\src\cache userinclude ..\..\src\cff userinclude ..\..\src\cid userinclude ..\..\src\gxvalid userinclude ..\..\src\gzip -userinclude ..\..\src\bzip2 userinclude ..\..\src\lzw userinclude ..\..\src\otvalid userinclude ..\..\src\pcf diff --git a/modules/freetype2/builds/toplevel.mk b/modules/freetype2/builds/toplevel.mk index 7cea85dca..7ce0ed8db 100644 --- a/modules/freetype2/builds/toplevel.mk +++ b/modules/freetype2/builds/toplevel.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -172,7 +172,8 @@ include $(TOP_DIR)/builds/modules.mk # get FreeType version string, using a # poor man's `sed' emulation with make's built-in string functions # -work := $(strip $(shell $(CAT) $(TOP_DIR)/include/freetype/freetype.h)) +work := $(strip $(shell $(CAT) \ + $(subst /,$(SEP),$(TOP_DIR)/include/freetype/freetype.h))) work := $(subst |,x,$(work)) work := $(subst $(space),|,$(work)) work := $(subst \#define|FREETYPE_MAJOR|,$(space),$(work)) diff --git a/modules/freetype2/builds/unix/config.guess b/modules/freetype2/builds/unix/config.guess index 2e9ad7fe8..256083a70 100755 --- a/modules/freetype2/builds/unix/config.guess +++ b/modules/freetype2/builds/unix/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2016 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2016-10-02' +timestamp='2018-03-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ timestamp='2016-10-02' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,7 +27,7 @@ timestamp='2016-10-02' # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . @@ -39,7 +39,7 @@ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2016 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -107,9 +107,9 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; + ,,) echo "int x;" > "$dummy.c" ; for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; @@ -132,14 +132,14 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu - eval $set_cc_for_build - cat <<-EOF > $dummy.c + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc @@ -149,13 +149,20 @@ Linux|GNU|GNU/*) LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -169,30 +176,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -208,10 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -219,46 +226,55 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" + echo "$machine-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:Sortix:*:*) - echo ${UNAME_MACHINE}-unknown-sortix + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -310,28 +326,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -343,7 +350,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -370,19 +377,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build + eval "$set_cc_for_build" SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. @@ -395,13 +402,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in @@ -410,25 +417,25 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -439,44 +446,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -485,23 +492,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -527,17 +534,17 @@ EOF AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -554,7 +561,7 @@ EOF echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id @@ -566,14 +573,14 @@ EOF if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -584,7 +591,7 @@ EOF exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then echo "$SYSTEM_NAME" else @@ -598,7 +605,7 @@ EOF exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc @@ -607,18 +614,18 @@ EOF IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -633,28 +640,28 @@ EOF echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in + case "$sc_cpu_version" in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in + case "$sc_kernel_bits" in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if [ "$HP_ARCH" = "" ]; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -687,13 +694,13 @@ EOF exit (0); } EOF - (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = hppa2.0w ] + if [ "$HP_ARCH" = hppa2.0w ] then - eval $set_cc_for_build + eval "$set_cc_for_build" # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -712,15 +719,15 @@ EOF HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -745,11 +752,11 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) @@ -758,7 +765,7 @@ EOF *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) @@ -766,9 +773,9 @@ EOF exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -793,127 +800,109 @@ EOF echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + case "$UNAME_PROCESSOR" in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix + echo "$UNAME_MACHINE"-pc-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in @@ -927,63 +916,63 @@ EOF esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; e2k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; k1om:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el @@ -997,70 +986,70 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } ;; mips64el:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} + echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} + echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} + echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} + echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpcle-unknown-linux-"$LIBC" exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1074,34 +1063,34 @@ EOF # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx + echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop + echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos + echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable + echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} + echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp + echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) @@ -1111,12 +1100,12 @@ EOF *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1126,9 +1115,9 @@ EOF && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) @@ -1148,9 +1137,9 @@ EOF exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) @@ -1170,9 +1159,9 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; @@ -1181,28 +1170,28 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} + echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} + echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} + echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} + echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} + echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 @@ -1213,7 +1202,7 @@ EOF *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi @@ -1233,23 +1222,23 @@ EOF exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos + echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} + echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1268,49 +1257,56 @@ EOF echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} + echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} + echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} + echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} + echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} + echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} + echo sx8r-nec-superux"$UNAME_RELEASE" exit ;; SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux${UNAME_RELEASE} + echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} + echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build + eval "$set_cc_for_build" if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub @@ -1321,7 +1317,7 @@ EOF # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` @@ -1329,19 +1325,25 @@ EOF UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} + echo nse-tandem-nsk"$UNAME_RELEASE" exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux @@ -1350,7 +1352,7 @@ EOF echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 @@ -1361,7 +1363,7 @@ EOF else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 + echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 @@ -1382,14 +1384,14 @@ EOF echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in + case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1398,32 +1400,44 @@ EOF echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" exit ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos + echo "$UNAME_MACHINE"-pc-rdos exit ;; i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros + echo "$UNAME_MACHINE"-pc-aros exit ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx + echo "$UNAME_MACHINE"-unknown-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; esac +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 </dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/modules/freetype2/builds/unix/config.sub b/modules/freetype2/builds/unix/config.sub index a2a01128b..ba37cf99e 100755 --- a/modules/freetype2/builds/unix/config.sub +++ b/modules/freetype2/builds/unix/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2016 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2016-11-19' +timestamp='2018-04-24' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ timestamp='2016-11-19' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -33,7 +33,7 @@ timestamp='2016-11-19' # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -57,7 +57,7 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -67,7 +67,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2016 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -94,7 +94,7 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -112,7 +112,7 @@ esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ @@ -120,16 +120,16 @@ case $maybe_os in kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` + basic_machine=`echo "$1" | sed 's/-[^-]*$//'` + if [ "$basic_machine" != "$1" ] + then os=`echo "$1" | sed 's/.*-/-/'` else os=; fi ;; esac @@ -178,44 +178,44 @@ case $os in ;; -sco6) os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 @@ -227,10 +227,7 @@ case $os in os=-lynxos ;; -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` ;; -psos*) os=-psos @@ -252,18 +249,18 @@ case $basic_machine in | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \ | avr | avr32 \ | ba \ | be32 | be64 \ | bfin \ - | c4x | c8051 | clipper \ + | c4x | c8051 | clipper | csky \ | d10v | d30v | dlx | dsp16xx \ | e2k | epiphany \ | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ - | i370 | i860 | i960 | ia64 \ + | i370 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ @@ -299,7 +296,7 @@ case $basic_machine in | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ + | pdp10 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pru \ | pyramid \ @@ -315,7 +312,7 @@ case $basic_machine in | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ - | we32k \ + | wasm32 \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown @@ -336,7 +333,11 @@ case $basic_machine in basic_machine=$basic_machine-unknown os=-none ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) + ;; + m9s12z | m68hcs12z | hcs12z | s12z) + basic_machine=s12z-unknown + os=-none ;; ms1) basic_machine=mt-unknown @@ -365,7 +366,7 @@ case $basic_machine in ;; # Object if more than one company name word. *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. @@ -381,14 +382,14 @@ case $basic_machine in | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ + | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ @@ -446,6 +447,7 @@ case $basic_machine in | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ + | wasm32-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -459,7 +461,7 @@ case $basic_machine in # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) - basic_machine=i386-unknown + basic_machine=i386-pc os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) @@ -493,7 +495,7 @@ case $basic_machine in basic_machine=x86_64-pc ;; amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl @@ -538,7 +540,7 @@ case $basic_machine in os=-linux ;; blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) @@ -546,13 +548,13 @@ case $basic_machine in os=-cnk ;; c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray @@ -641,7 +643,7 @@ case $basic_machine in basic_machine=rs6000-bull os=-bosx ;; - dpx2* | dpx2*-bull) + dpx2*) basic_machine=m68k-bull os=-sysv3 ;; @@ -650,7 +652,7 @@ case $basic_machine in os=$os"spe" ;; e500v[12]-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=$os"spe" ;; ebmon29k) @@ -742,9 +744,6 @@ case $basic_machine in hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; - hppa-next) - os=-nextstep3 - ;; hppaosf) basic_machine=hppa1.1-hp os=-osf @@ -757,26 +756,26 @@ case $basic_machine in basic_machine=i370-ibm ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; - i386-vsta | vsta) + vsta) basic_machine=i386-unknown os=-vsta ;; @@ -795,19 +794,16 @@ case $basic_machine in os=-sysv ;; leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; - m88k-omron*) - basic_machine=m88k-omron - ;; magnum | m3230) basic_machine=mips-mips os=-sysv @@ -839,10 +835,10 @@ case $basic_machine in os=-mint ;; mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` ;; mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k @@ -861,7 +857,7 @@ case $basic_machine in os=-msdos ;; ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc @@ -903,7 +899,7 @@ case $basic_machine in basic_machine=v70-nec os=-sysv ;; - next | m*-next ) + next | m*-next) basic_machine=m68k-next case $os in -nextstep* ) @@ -948,6 +944,12 @@ case $basic_machine in nsr-tandem) basic_machine=nsr-tandem ;; + nsv-tandem) + basic_machine=nsv-tandem + ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf @@ -980,7 +982,7 @@ case $basic_machine in os=-linux ;; parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; pbd) @@ -996,7 +998,7 @@ case $basic_machine in basic_machine=i386-pc ;; pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc @@ -1011,16 +1013,16 @@ case $basic_machine in basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould @@ -1030,23 +1032,23 @@ case $basic_machine in ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm @@ -1100,17 +1102,10 @@ case $basic_machine in sequent) basic_machine=i386-sequent ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; sh5el) basic_machine=sh5le-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) + simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; @@ -1129,7 +1124,7 @@ case $basic_machine in os=-sysv4 ;; strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun @@ -1251,6 +1246,9 @@ case $basic_machine in basic_machine=hppa1.1-winbond os=-proelf ;; + x64) + basic_machine=x86_64-pc + ;; xbox) basic_machine=i686-pc os=-mingw32 @@ -1259,20 +1257,12 @@ case $basic_machine in basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; none) basic_machine=none-none os=-none @@ -1301,10 +1291,6 @@ case $basic_machine in vax) basic_machine=vax-dec ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; pdp11) basic_machine=pdp11-dec ;; @@ -1314,9 +1300,6 @@ case $basic_machine in sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; cydra) basic_machine=cydra-cydrome ;; @@ -1336,7 +1319,7 @@ case $basic_machine in # Make sure to match an already-canonicalized machine name. ;; *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; esac @@ -1344,10 +1327,10 @@ esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` ;; *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` ;; *) ;; @@ -1358,8 +1341,8 @@ esac if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases that might get confused + # with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux @@ -1370,18 +1353,19 @@ case $os in -solaris) os=-solaris2 ;; - -svr4*) - os=-sysv4 - ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; - # First accept the basic system types. + # es1800 is here to avoid being matched by es* (a different OS) + -es1800*) + os=-ose + ;; + # Now accept the basic system types. # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. + # Each alternative MUST end in a * to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ @@ -1391,25 +1375,26 @@ case $os in | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \ | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -morphos* | -superux* | -rtmk* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix* | -fuchsia*) + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ + | -midnightbsd*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1426,12 +1411,12 @@ case $os in -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + -sim | -xray | -os68k* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) - os=`echo $os | sed -e 's|mac|macos|'` + os=`echo "$os" | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc @@ -1440,10 +1425,10 @@ case $os in os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition @@ -1454,12 +1439,6 @@ case $os in -wince*) os=-wince ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; -utek*) os=-bsd ;; @@ -1484,7 +1463,7 @@ case $os in -nova*) os=-rtmk-nova ;; - -ns2 ) + -ns2) os=-nextstep2 ;; -nsk*) @@ -1506,7 +1485,7 @@ case $os in -oss*) os=-sysv3 ;; - -svr4) + -svr4*) os=-sysv4 ;; -svr3) @@ -1521,24 +1500,28 @@ case $os in -ose*) os=-ose ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; - -aros*) - os=-aros - ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; + -pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $basic_machine in + arm*) + os=-eabi + ;; + *) + os=-elf + ;; + esac + ;; -nacl*) ;; -ios) @@ -1548,7 +1531,7 @@ case $os in *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 exit 1 ;; esac @@ -1644,9 +1627,6 @@ case $basic_machine in *-be) os=-beos ;; - *-haiku) - os=-haiku - ;; *-ibm) os=-aix ;; @@ -1686,7 +1666,7 @@ case $basic_machine in m88k-omron*) os=-luna ;; - *-next ) + *-next) os=-nextstep ;; *-sequent) @@ -1701,9 +1681,6 @@ case $basic_machine in i370-*) os=-mvs ;; - *-next) - os=-nextstep3 - ;; *-gould) os=-sysv ;; @@ -1813,15 +1790,15 @@ case $basic_machine in vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$basic_machine$os" exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/modules/freetype2/builds/unix/configure b/modules/freetype2/builds/unix/configure index 831e33643..2d05de2aa 100755 --- a/modules/freetype2/builds/unix/configure +++ b/modules/freetype2/builds/unix/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for FreeType 2.7.1. +# Generated by GNU Autoconf 2.69 for FreeType 2.9.1. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='FreeType' PACKAGE_TARNAME='freetype' -PACKAGE_VERSION='2.7.1' -PACKAGE_STRING='FreeType 2.7.1' +PACKAGE_VERSION='2.9.1' +PACKAGE_STRING='FreeType 2.9.1' PACKAGE_BUGREPORT='freetype@nongnu.org' PACKAGE_URL='' @@ -642,6 +642,7 @@ LIBSSTATIC_CONFIG LIBS_PRIVATE REQUIRES_PRIVATE ftmac_c +LIB_CLOCK_GETTIME HARFBUZZ_LIBS HARFBUZZ_CFLAGS LIBPNG_LIBS @@ -653,12 +654,14 @@ ZLIB_CFLAGS XX_ANSIFLAGS XX_CFLAGS FTSYS_SRC +INSTALL_FT2_CONFIG MKDIR_P INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM EXEEXT_BUILD CC_BUILD +RC LT_SYS_LIBRARY_PATH OTOOL64 OTOOL @@ -755,6 +758,7 @@ with_gnu_ld with_sysroot enable_libtool_lock enable_biarch_config +enable_freetype_config enable_largefile enable_mmap with_zlib @@ -1329,7 +1333,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures FreeType 2.7.1 to adapt to many kinds of systems. +\`configure' configures FreeType 2.9.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1394,7 +1398,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of FreeType 2.7.1:";; + short | recursive ) echo "Configuration of FreeType 2.9.1:";; esac cat <<\_ACEOF @@ -1409,6 +1413,8 @@ Optional Features: --disable-libtool-lock avoid locking (might break parallel builds) --enable-biarch-config install biarch ftconfig.h to support multiple architectures by single file + --enable-freetype-config + install freetype-config --disable-largefile omit support for large files --disable-mmap do not check mmap() and do not use @@ -1541,7 +1547,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -FreeType configure 2.7.1 +FreeType configure 2.9.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2139,7 +2145,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by FreeType $as_me 2.7.1, which was +It was created by FreeType $as_me 2.9.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2495,7 +2501,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # Don't forget to update `docs/VERSIONS.TXT'! -version_info='19:0:13' +version_info='22:1:16' ft_version=`echo $version_info | tr : .` @@ -11847,6 +11853,175 @@ CC=$lt_save_CC # Only expand once: +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. +set dummy ${ac_tool_prefix}windres; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RC"; then + ac_cv_prog_RC="$RC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RC="${ac_tool_prefix}windres" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RC=$ac_cv_prog_RC +if test -n "$RC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RC" >&5 +$as_echo "$RC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RC"; then + ac_ct_RC=$RC + # Extract the first word of "windres", so it can be a program name with args. +set dummy windres; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RC"; then + ac_cv_prog_ac_ct_RC="$ac_ct_RC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RC="windres" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RC=$ac_cv_prog_ac_ct_RC +if test -n "$ac_ct_RC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RC" >&5 +$as_echo "$ac_ct_RC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RC" = x; then + RC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RC=$ac_ct_RC + fi +else + RC="$ac_cv_prog_RC" +fi + + + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +objext_RC=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +compiler_RC=$CC +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + +lt_cv_prog_compiler_c_o_RC=yes + +if test -n "$compiler"; then + : + + + +fi + +GCC=$lt_save_GCC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS + # checks for native programs to generate building tool @@ -12566,15 +12741,13 @@ $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cpp computation of bit length in ftconfig.in works" >&5 $as_echo_n "checking whether cpp computation of bit length in ftconfig.in works... " >&6; } orig_CPPFLAGS="${CPPFLAGS}" -CPPFLAGS="-I${srcdir} -I. ${CPPFLAGS}" +CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include/freetype/config ${CPPFLAGS}" ac_clean_files= -for f in ft2build.h ftoption.h ftstdlib.h; do - if test ! -f $f; then - ac_clean_files="$ac_clean_files $f" - touch $f - fi -done +if test ! -f ft2build.h; then + ac_clean_files=ft2build.h + touch ft2build.h +fi cat > conftest.c <<\_ACEOF #include @@ -12639,6 +12812,20 @@ fi CPPFLAGS="${orig_CPPFLAGS}" +# Check whether --enable-freetype-config was given. +if test "${enable_freetype_config+set}" = set; then : + enableval=$enable_freetype_config; case "${enableval}" in + yes) enable_freetype_config="TRUE" ;; + no) enable_freetype_config="FALSE" ;; + *) as_fn_error $? "unknown value '${enableval}' passed with --enable-freetype-config" "$LINENO" 5 ;; + esac +else + enable_freetype_config="FALSE" +fi + + +INSTALL_FT2_CONFIG=$enable_freetype_config + # checks for library functions @@ -13193,8 +13380,8 @@ main () } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok, add it to XX_ANSIFLAGS" >&5 -$as_echo "ok, add it to XX_ANSIFLAGS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok, adding to XX_ANSIFLAGS" >&5 +$as_echo "ok, adding to XX_ANSIFLAGS" >&6; } XX_ANSIFLAGS="${XX_ANSIFLAGS} ${a}" else @@ -13223,6 +13410,35 @@ fi +# It is recommended that shared libraries hide symbols except those with +# explicit __attribute__((visibility("default"))). +# +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fvisibility=hidden compiler flag" >&5 +$as_echo_n "checking for -fvisibility=hidden compiler flag... " >&6; } +orig_CFLAGS="${CFLAGS}" +CFLAGS="${CFLAGS} -fvisibility=hidden" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + CFLAGS="${orig_CFLAGS}" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + # All library tests below try `pkg-config' first. If that fails, a function # from the library is tested in the traditional autoconf way (zlib, bzip2), # or a config script is called (libpng). @@ -13728,7 +13944,7 @@ fi have_harfbuzz=no if test x"$with_harfbuzz" = xyes -o x"$with_harfbuzz" = xauto; then - harfbuzz_pkg="harfbuzz >= 0.9.21" + harfbuzz_pkg="harfbuzz >= 1.3.0" have_harfbuzz_pkg=no if test x"$HARFBUZZ_CFLAGS" = x -a x"$HARFBUZZ_LIBS" = x; then @@ -13839,6 +14055,74 @@ if test x"$with_harfbuzz" = xyes -a "$have_harfbuzz" = no; then fi +# check for librt +# +# We need `clock_gettime' for the `ftbench' demo program. +# +# The code is modeled after gnulib's file `clock_time.m4', ignoring +# very old Solaris systems. + +LIB_CLOCK_GETTIME= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 +$as_echo_n "checking for library containing clock_gettime... " >&6; } +if ${ac_cv_search_clock_gettime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (); +int +main () +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_clock_gettime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_clock_gettime+:} false; then : + break +fi +done +if ${ac_cv_search_clock_gettime+:} false; then : + +else + ac_cv_search_clock_gettime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 +$as_echo "$ac_cv_search_clock_gettime" >&6; } +ac_res=$ac_cv_search_clock_gettime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + test "$ac_cv_search_clock_gettime" = "none required" \ + || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime +fi + + + + # Some options handling SDKs/archs in CFLAGS should be copied # to LDFLAGS. Apple TechNote 2137 recommends to include these # options in CFLAGS but not in LDFLAGS. @@ -14472,27 +14756,60 @@ LIBSSTATIC_CONFIG=`echo "$LIBSSTATIC_CONFIG" \ # changing LDFLAGS value should only be done after # lt_cv_prog_compiler_static_works test +ftoption_set() +{ + regexp="-e \\\"s|.*#.*def.*$1.*|#define $1|\\\"" + FTOPTION_H_SED="$FTOPTION_H_SED $regexp" +} + +ftoption_unset() +{ + regexp="-e \\\"s|.*#.*def.*$1.*|/* #undef $1 */|\\\"" + FTOPTION_H_SED="$FTOPTION_H_SED $regexp" +} + if test "$have_zlib" != no; then - CFLAGS="$CFLAGS $ZLIB_CFLAGS -DFT_CONFIG_OPTION_SYSTEM_ZLIB" + CFLAGS="$CFLAGS $ZLIB_CFLAGS" LDFLAGS="$LDFLAGS $ZLIB_LIBS" + ftoption_set FT_CONFIG_OPTION_SYSTEM_ZLIB +else + ftoption_unset FT_CONFIG_OPTION_SYSTEM_ZLIB fi - if test "$have_bzip2" != no; then - CFLAGS="$CFLAGS $BZIP2_CFLAGS -DFT_CONFIG_OPTION_USE_BZIP2" + CFLAGS="$CFLAGS $BZIP2_CFLAGS" LDFLAGS="$LDFLAGS $BZIP2_LIBS" + ftoption_set FT_CONFIG_OPTION_USE_BZIP2 +else + ftoption_unset FT_CONFIG_OPTION_USE_BZIP2 fi if test "$have_libpng" != no; then - CFLAGS="$CFLAGS $LIBPNG_CFLAGS -DFT_CONFIG_OPTION_USE_PNG" + CFLAGS="$CFLAGS $LIBPNG_CFLAGS" LDFLAGS="$LDFLAGS $LIBPNG_LIBS" + ftoption_set FT_CONFIG_OPTION_USE_PNG +else + ftoption_unset FT_CONFIG_OPTION_USE_PNG fi if test "$have_harfbuzz" != no; then - CFLAGS="$CFLAGS $HARFBUZZ_CFLAGS -DFT_CONFIG_OPTION_USE_HARFBUZZ" + CFLAGS="$CFLAGS $HARFBUZZ_CFLAGS" LDFLAGS="$LDFLAGS $HARFBUZZ_LIBS" + ftoption_set FT_CONFIG_OPTION_USE_HARFBUZZ +else + ftoption_unset FT_CONFIG_OPTION_USE_HARFBUZZ fi +# We don't want to use a template file for `ftoption.h', since compilation +# should work without calling a configure script also. For this reason, we +# copy the `include/freetype/config/ftoption.h' file to the `unix/builds' +# directory (using a dummy `AC_CONFIG_FILES' call) and apply the just +# constructed $FTOPTION_H_SED regexp (using the post-action of +# `AC_CONFIG_FILES'); this is also the version that gets installed later on. +# +ac_config_files="$ac_config_files ftoption.h:${srcdir}/../../include/freetype/config/ftoption.h" + + # configuration file -- stay in 8.3 limit # # since #undef doesn't survive in configuration header files we replace @@ -15017,7 +15334,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by FreeType $as_me 2.7.1, which was +This file was extended by FreeType $as_me 2.9.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15083,7 +15400,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -FreeType config.status 2.7.1 +FreeType config.status 2.9.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -15347,6 +15664,48 @@ enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_sub enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' +LD_RC='`$ECHO "$LD_RC" | $SED "$delay_single_quote_subst"`' +reload_flag_RC='`$ECHO "$reload_flag_RC" | $SED "$delay_single_quote_subst"`' +reload_cmds_RC='`$ECHO "$reload_cmds_RC" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_RC='`$ECHO "$old_archive_cmds_RC" | $SED "$delay_single_quote_subst"`' +compiler_RC='`$ECHO "$compiler_RC" | $SED "$delay_single_quote_subst"`' +GCC_RC='`$ECHO "$GCC_RC" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_RC='`$ECHO "$lt_prog_compiler_no_builtin_flag_RC" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_RC='`$ECHO "$lt_prog_compiler_pic_RC" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_RC='`$ECHO "$lt_prog_compiler_wl_RC" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_RC='`$ECHO "$lt_prog_compiler_static_RC" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_RC='`$ECHO "$lt_cv_prog_compiler_c_o_RC" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_RC='`$ECHO "$archive_cmds_need_lc_RC" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_RC='`$ECHO "$enable_shared_with_static_runtimes_RC" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_RC='`$ECHO "$export_dynamic_flag_spec_RC" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_RC='`$ECHO "$whole_archive_flag_spec_RC" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_RC='`$ECHO "$compiler_needs_object_RC" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_RC='`$ECHO "$old_archive_from_new_cmds_RC" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_RC='`$ECHO "$old_archive_from_expsyms_cmds_RC" | $SED "$delay_single_quote_subst"`' +archive_cmds_RC='`$ECHO "$archive_cmds_RC" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_RC='`$ECHO "$archive_expsym_cmds_RC" | $SED "$delay_single_quote_subst"`' +module_cmds_RC='`$ECHO "$module_cmds_RC" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_RC='`$ECHO "$module_expsym_cmds_RC" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_RC='`$ECHO "$with_gnu_ld_RC" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_RC='`$ECHO "$allow_undefined_flag_RC" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_RC='`$ECHO "$no_undefined_flag_RC" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_RC='`$ECHO "$hardcode_libdir_flag_spec_RC" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_RC='`$ECHO "$hardcode_libdir_separator_RC" | $SED "$delay_single_quote_subst"`' +hardcode_direct_RC='`$ECHO "$hardcode_direct_RC" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_RC='`$ECHO "$hardcode_direct_absolute_RC" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_RC='`$ECHO "$hardcode_minus_L_RC" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_RC='`$ECHO "$hardcode_shlibpath_var_RC" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_RC='`$ECHO "$hardcode_automatic_RC" | $SED "$delay_single_quote_subst"`' +inherit_rpath_RC='`$ECHO "$inherit_rpath_RC" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_RC='`$ECHO "$link_all_deplibs_RC" | $SED "$delay_single_quote_subst"`' +always_export_symbols_RC='`$ECHO "$always_export_symbols_RC" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_RC='`$ECHO "$export_symbols_cmds_RC" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_RC='`$ECHO "$exclude_expsyms_RC" | $SED "$delay_single_quote_subst"`' +include_expsyms_RC='`$ECHO "$include_expsyms_RC" | $SED "$delay_single_quote_subst"`' +prelink_cmds_RC='`$ECHO "$prelink_cmds_RC" | $SED "$delay_single_quote_subst"`' +postlink_cmds_RC='`$ECHO "$postlink_cmds_RC" | $SED "$delay_single_quote_subst"`' +file_list_spec_RC='`$ECHO "$file_list_spec_RC" | $SED "$delay_single_quote_subst"`' +hardcode_action_RC='`$ECHO "$hardcode_action_RC" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' @@ -15429,7 +15788,26 @@ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ -striplib; do +striplib \ +LD_RC \ +reload_flag_RC \ +compiler_RC \ +lt_prog_compiler_no_builtin_flag_RC \ +lt_prog_compiler_pic_RC \ +lt_prog_compiler_wl_RC \ +lt_prog_compiler_static_RC \ +lt_cv_prog_compiler_c_o_RC \ +export_dynamic_flag_spec_RC \ +whole_archive_flag_spec_RC \ +compiler_needs_object_RC \ +with_gnu_ld_RC \ +allow_undefined_flag_RC \ +no_undefined_flag_RC \ +hardcode_libdir_flag_spec_RC \ +hardcode_libdir_separator_RC \ +exclude_expsyms_RC \ +include_expsyms_RC \ +file_list_spec_RC; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes @@ -15460,7 +15838,18 @@ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ configure_time_dlsearch_path \ -configure_time_lt_sys_library_path; do +configure_time_lt_sys_library_path \ +reload_cmds_RC \ +old_archive_cmds_RC \ +old_archive_from_new_cmds_RC \ +old_archive_from_expsyms_cmds_RC \ +archive_cmds_RC \ +archive_expsym_cmds_RC \ +module_cmds_RC \ +module_expsym_cmds_RC \ +export_symbols_cmds_RC \ +prelink_cmds_RC \ +postlink_cmds_RC; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes @@ -15488,6 +15877,9 @@ fi + +FTOPTION_H_SED="$FTOPTION_H_SED" + _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 @@ -15497,6 +15889,7 @@ for ac_config_target in $ac_config_targets do case $ac_config_target in "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "ftoption.h") CONFIG_FILES="$CONFIG_FILES ftoption.h:${srcdir}/../../include/freetype/config/ftoption.h" ;; "ftconfig.h") CONFIG_HEADERS="$CONFIG_HEADERS ftconfig.h:ftconfig.in" ;; "unix-cc.mk") CONFIG_FILES="$CONFIG_FILES unix-cc.mk:unix-cc.in" ;; "unix-def.mk") CONFIG_FILES="$CONFIG_FILES unix-def.mk:unix-def.in" ;; @@ -16106,7 +16499,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} # The names of the tagged configurations supported by this script. -available_tags='' +available_tags='RC ' # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} @@ -16606,7 +16999,149 @@ ltmain=$ac_aux_dir/ltmain.sh (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: RC + +# The linker used to build libraries. +LD=$lt_LD_RC + +# How to create reloadable object files. +reload_flag=$lt_reload_flag_RC +reload_cmds=$lt_reload_cmds_RC + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_RC + +# A language specific compiler. +CC=$lt_compiler_RC + +# Is the compiler the GNU compiler? +with_gcc=$GCC_RC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_RC + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_RC + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_RC + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_RC + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_RC + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_RC +archive_expsym_cmds=$lt_archive_expsym_cmds_RC + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_RC +module_expsym_cmds=$lt_module_expsym_cmds_RC + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_RC + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_RC + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_RC + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_RC + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute_RC + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_RC + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_RC + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic_RC + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_RC + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_RC + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_RC + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_RC + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_RC + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_RC + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_RC + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds_RC + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_RC + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_RC + +# ### END LIBTOOL TAG CONFIG: RC +_LT_EOF + ;; + "ftoption.h":F) mv ftoption.h ftoption.tmp + eval "sed $FTOPTION_H_SED < ftoption.tmp > ftoption.h" + rm ftoption.tmp ;; "ftconfig.h":H) mv ftconfig.h ftconfig.tmp sed 's|/undef|#undef|' < ftconfig.tmp > ftconfig.h rm ftconfig.tmp ;; diff --git a/modules/freetype2/builds/unix/configure.ac b/modules/freetype2/builds/unix/configure.ac index 85701617d..b306821f4 100644 --- a/modules/freetype2/builds/unix/configure.ac +++ b/modules/freetype2/builds/unix/configure.ac @@ -2,7 +2,7 @@ # # Process this file with autoconf to produce a configure script. # -# Copyright 2001-2016 by +# Copyright 2001-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -11,13 +11,13 @@ # indicate that you have read the license and understand and accept it # fully. -AC_INIT([FreeType], [2.7.1], [freetype@nongnu.org], [freetype]) +AC_INIT([FreeType], [2.9.1], [freetype@nongnu.org], [freetype]) AC_CONFIG_SRCDIR([ftconfig.in]) # Don't forget to update `docs/VERSIONS.TXT'! -version_info='19:0:13' +version_info='22:1:16' AC_SUBST([version_info]) ft_version=`echo $version_info | tr : .` AC_SUBST([ft_version]) @@ -37,6 +37,7 @@ AC_SUBST(EXEEXT) PKG_PROG_PKG_CONFIG([0.24]) LT_INIT(win32-dll) +LT_PROG_RC # checks for native programs to generate building tool @@ -112,15 +113,13 @@ AC_TYPE_LONG_LONG_INT AC_MSG_CHECKING([whether cpp computation of bit length in ftconfig.in works]) orig_CPPFLAGS="${CPPFLAGS}" -CPPFLAGS="-I${srcdir} -I. ${CPPFLAGS}" +CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include/freetype/config ${CPPFLAGS}" ac_clean_files= -for f in ft2build.h ftoption.h ftstdlib.h; do - if test ! -f $f; then - ac_clean_files="$ac_clean_files $f" - touch $f - fi -done +if test ! -f ft2build.h; then + ac_clean_files=ft2build.h + touch ft2build.h +fi cat > conftest.c <<\_ACEOF #include @@ -178,6 +177,15 @@ fi CPPFLAGS="${orig_CPPFLAGS}" +AC_ARG_ENABLE([freetype-config], + AS_HELP_STRING([--enable-freetype-config], [install freetype-config]), + [case "${enableval}" in + yes) enable_freetype_config="TRUE" ;; + no) enable_freetype_config="FALSE" ;; + *) AC_MSG_ERROR([unknown value '${enableval}' passed with --enable-freetype-config]) ;; + esac], [enable_freetype_config="FALSE"]) + +AC_SUBST(INSTALL_FT2_CONFIG, [$enable_freetype_config]) # checks for library functions @@ -275,7 +283,7 @@ if test "x$GCC" = xyes; then } ])], - [AC_MSG_RESULT([ok, add it to XX_ANSIFLAGS]) + [AC_MSG_RESULT([ok, adding to XX_ANSIFLAGS]) XX_ANSIFLAGS="${XX_ANSIFLAGS} ${a}" ], [AC_MSG_RESULT([no])]) @@ -300,6 +308,18 @@ AC_SUBST([XX_CFLAGS]) AC_SUBST([XX_ANSIFLAGS]) +# It is recommended that shared libraries hide symbols except those with +# explicit __attribute__((visibility("default"))). +# +AC_MSG_CHECKING([for -fvisibility=hidden compiler flag]) +orig_CFLAGS="${CFLAGS}" +CFLAGS="${CFLAGS} -fvisibility=hidden" +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])], + AC_MSG_RESULT(yes), + CFLAGS="${orig_CFLAGS}" + AC_MSG_RESULT(no)) + + # All library tests below try `pkg-config' first. If that fails, a function # from the library is tested in the traditional autoconf way (zlib, bzip2), # or a config script is called (libpng). @@ -476,7 +496,7 @@ AC_ARG_WITH([harfbuzz], have_harfbuzz=no if test x"$with_harfbuzz" = xyes -o x"$with_harfbuzz" = xauto; then - harfbuzz_pkg="harfbuzz >= 0.9.21" + harfbuzz_pkg="harfbuzz >= 1.3.0" have_harfbuzz_pkg=no if test x"$HARFBUZZ_CFLAGS" = x -a x"$HARFBUZZ_LIBS" = x; then @@ -511,6 +531,21 @@ if test x"$with_harfbuzz" = xyes -a "$have_harfbuzz" = no; then fi +# check for librt +# +# We need `clock_gettime' for the `ftbench' demo program. +# +# The code is modeled after gnulib's file `clock_time.m4', ignoring +# very old Solaris systems. + +LIB_CLOCK_GETTIME= +AC_SEARCH_LIBS([clock_gettime], + [rt], + [test "$ac_cv_search_clock_gettime" = "none required" \ + || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime]) +AC_SUBST([LIB_CLOCK_GETTIME]) + + # Some options handling SDKs/archs in CFLAGS should be copied # to LDFLAGS. Apple TechNote 2137 recommends to include these # options in CFLAGS but not in LDFLAGS. @@ -977,27 +1012,63 @@ AC_SUBST([build_libtool_libs]) # changing LDFLAGS value should only be done after # lt_cv_prog_compiler_static_works test +ftoption_set() +{ + regexp="-e \\\"s|.*#.*def.*$1.*|#define $1|\\\"" + FTOPTION_H_SED="$FTOPTION_H_SED $regexp" +} + +ftoption_unset() +{ + regexp="-e \\\"s|.*#.*def.*$1.*|/* #undef $1 */|\\\"" + FTOPTION_H_SED="$FTOPTION_H_SED $regexp" +} + if test "$have_zlib" != no; then - CFLAGS="$CFLAGS $ZLIB_CFLAGS -DFT_CONFIG_OPTION_SYSTEM_ZLIB" + CFLAGS="$CFLAGS $ZLIB_CFLAGS" LDFLAGS="$LDFLAGS $ZLIB_LIBS" + ftoption_set FT_CONFIG_OPTION_SYSTEM_ZLIB +else + ftoption_unset FT_CONFIG_OPTION_SYSTEM_ZLIB fi - if test "$have_bzip2" != no; then - CFLAGS="$CFLAGS $BZIP2_CFLAGS -DFT_CONFIG_OPTION_USE_BZIP2" + CFLAGS="$CFLAGS $BZIP2_CFLAGS" LDFLAGS="$LDFLAGS $BZIP2_LIBS" + ftoption_set FT_CONFIG_OPTION_USE_BZIP2 +else + ftoption_unset FT_CONFIG_OPTION_USE_BZIP2 fi if test "$have_libpng" != no; then - CFLAGS="$CFLAGS $LIBPNG_CFLAGS -DFT_CONFIG_OPTION_USE_PNG" + CFLAGS="$CFLAGS $LIBPNG_CFLAGS" LDFLAGS="$LDFLAGS $LIBPNG_LIBS" + ftoption_set FT_CONFIG_OPTION_USE_PNG +else + ftoption_unset FT_CONFIG_OPTION_USE_PNG fi if test "$have_harfbuzz" != no; then - CFLAGS="$CFLAGS $HARFBUZZ_CFLAGS -DFT_CONFIG_OPTION_USE_HARFBUZZ" + CFLAGS="$CFLAGS $HARFBUZZ_CFLAGS" LDFLAGS="$LDFLAGS $HARFBUZZ_LIBS" + ftoption_set FT_CONFIG_OPTION_USE_HARFBUZZ +else + ftoption_unset FT_CONFIG_OPTION_USE_HARFBUZZ fi AC_SUBST([CFLAGS]) AC_SUBST([LDFLAGS]) +# We don't want to use a template file for `ftoption.h', since compilation +# should work without calling a configure script also. For this reason, we +# copy the `include/freetype/config/ftoption.h' file to the `unix/builds' +# directory (using a dummy `AC_CONFIG_FILES' call) and apply the just +# constructed $FTOPTION_H_SED regexp (using the post-action of +# `AC_CONFIG_FILES'); this is also the version that gets installed later on. +# +AC_CONFIG_FILES([ftoption.h:${srcdir}/../../include/freetype/config/ftoption.h], + [mv ftoption.h ftoption.tmp + eval "sed $FTOPTION_H_SED < ftoption.tmp > ftoption.h" + rm ftoption.tmp], + [FTOPTION_H_SED="$FTOPTION_H_SED"]) + # configuration file -- stay in 8.3 limit # # since #undef doesn't survive in configuration header files we replace diff --git a/modules/freetype2/builds/unix/configure.raw b/modules/freetype2/builds/unix/configure.raw index 33deed647..baab79dc5 100644 --- a/modules/freetype2/builds/unix/configure.raw +++ b/modules/freetype2/builds/unix/configure.raw @@ -2,7 +2,7 @@ # # Process this file with autoconf to produce a configure script. # -# Copyright 2001-2016 by +# Copyright 2001-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -17,7 +17,7 @@ AC_CONFIG_SRCDIR([ftconfig.in]) # Don't forget to update `docs/VERSIONS.TXT'! -version_info='19:0:13' +version_info='22:1:16' AC_SUBST([version_info]) ft_version=`echo $version_info | tr : .` AC_SUBST([ft_version]) @@ -37,6 +37,7 @@ AC_SUBST(EXEEXT) PKG_PROG_PKG_CONFIG([0.24]) LT_INIT(win32-dll) +LT_PROG_RC # checks for native programs to generate building tool @@ -112,15 +113,13 @@ AC_TYPE_LONG_LONG_INT AC_MSG_CHECKING([whether cpp computation of bit length in ftconfig.in works]) orig_CPPFLAGS="${CPPFLAGS}" -CPPFLAGS="-I${srcdir} -I. ${CPPFLAGS}" +CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include/freetype/config ${CPPFLAGS}" ac_clean_files= -for f in ft2build.h ftoption.h ftstdlib.h; do - if test ! -f $f; then - ac_clean_files="$ac_clean_files $f" - touch $f - fi -done +if test ! -f ft2build.h; then + ac_clean_files=ft2build.h + touch ft2build.h +fi cat > conftest.c <<\_ACEOF #include @@ -178,6 +177,15 @@ fi CPPFLAGS="${orig_CPPFLAGS}" +AC_ARG_ENABLE([freetype-config], + AS_HELP_STRING([--enable-freetype-config], [install freetype-config]), + [case "${enableval}" in + yes) enable_freetype_config="TRUE" ;; + no) enable_freetype_config="FALSE" ;; + *) AC_MSG_ERROR([unknown value '${enableval}' passed with --enable-freetype-config]) ;; + esac], [enable_freetype_config="FALSE"]) + +AC_SUBST(INSTALL_FT2_CONFIG, [$enable_freetype_config]) # checks for library functions @@ -275,7 +283,7 @@ if test "x$GCC" = xyes; then } ])], - [AC_MSG_RESULT([ok, add it to XX_ANSIFLAGS]) + [AC_MSG_RESULT([ok, adding to XX_ANSIFLAGS]) XX_ANSIFLAGS="${XX_ANSIFLAGS} ${a}" ], [AC_MSG_RESULT([no])]) @@ -300,6 +308,18 @@ AC_SUBST([XX_CFLAGS]) AC_SUBST([XX_ANSIFLAGS]) +# It is recommended that shared libraries hide symbols except those with +# explicit __attribute__((visibility("default"))). +# +AC_MSG_CHECKING([for -fvisibility=hidden compiler flag]) +orig_CFLAGS="${CFLAGS}" +CFLAGS="${CFLAGS} -fvisibility=hidden" +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])], + AC_MSG_RESULT(yes), + CFLAGS="${orig_CFLAGS}" + AC_MSG_RESULT(no)) + + # All library tests below try `pkg-config' first. If that fails, a function # from the library is tested in the traditional autoconf way (zlib, bzip2), # or a config script is called (libpng). @@ -476,7 +496,7 @@ AC_ARG_WITH([harfbuzz], have_harfbuzz=no if test x"$with_harfbuzz" = xyes -o x"$with_harfbuzz" = xauto; then - harfbuzz_pkg="harfbuzz >= 0.9.21" + harfbuzz_pkg="harfbuzz >= 1.3.0" have_harfbuzz_pkg=no if test x"$HARFBUZZ_CFLAGS" = x -a x"$HARFBUZZ_LIBS" = x; then @@ -511,6 +531,21 @@ if test x"$with_harfbuzz" = xyes -a "$have_harfbuzz" = no; then fi +# check for librt +# +# We need `clock_gettime' for the `ftbench' demo program. +# +# The code is modeled after gnulib's file `clock_time.m4', ignoring +# very old Solaris systems. + +LIB_CLOCK_GETTIME= +AC_SEARCH_LIBS([clock_gettime], + [rt], + [test "$ac_cv_search_clock_gettime" = "none required" \ + || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime]) +AC_SUBST([LIB_CLOCK_GETTIME]) + + # Some options handling SDKs/archs in CFLAGS should be copied # to LDFLAGS. Apple TechNote 2137 recommends to include these # options in CFLAGS but not in LDFLAGS. @@ -977,27 +1012,63 @@ AC_SUBST([build_libtool_libs]) # changing LDFLAGS value should only be done after # lt_cv_prog_compiler_static_works test +ftoption_set() +{ + regexp="-e \\\"s|.*#.*def.*$1.*|#define $1|\\\"" + FTOPTION_H_SED="$FTOPTION_H_SED $regexp" +} + +ftoption_unset() +{ + regexp="-e \\\"s|.*#.*def.*$1.*|/* #undef $1 */|\\\"" + FTOPTION_H_SED="$FTOPTION_H_SED $regexp" +} + if test "$have_zlib" != no; then - CFLAGS="$CFLAGS $ZLIB_CFLAGS -DFT_CONFIG_OPTION_SYSTEM_ZLIB" + CFLAGS="$CFLAGS $ZLIB_CFLAGS" LDFLAGS="$LDFLAGS $ZLIB_LIBS" + ftoption_set FT_CONFIG_OPTION_SYSTEM_ZLIB +else + ftoption_unset FT_CONFIG_OPTION_SYSTEM_ZLIB fi - if test "$have_bzip2" != no; then - CFLAGS="$CFLAGS $BZIP2_CFLAGS -DFT_CONFIG_OPTION_USE_BZIP2" + CFLAGS="$CFLAGS $BZIP2_CFLAGS" LDFLAGS="$LDFLAGS $BZIP2_LIBS" + ftoption_set FT_CONFIG_OPTION_USE_BZIP2 +else + ftoption_unset FT_CONFIG_OPTION_USE_BZIP2 fi if test "$have_libpng" != no; then - CFLAGS="$CFLAGS $LIBPNG_CFLAGS -DFT_CONFIG_OPTION_USE_PNG" + CFLAGS="$CFLAGS $LIBPNG_CFLAGS" LDFLAGS="$LDFLAGS $LIBPNG_LIBS" + ftoption_set FT_CONFIG_OPTION_USE_PNG +else + ftoption_unset FT_CONFIG_OPTION_USE_PNG fi if test "$have_harfbuzz" != no; then - CFLAGS="$CFLAGS $HARFBUZZ_CFLAGS -DFT_CONFIG_OPTION_USE_HARFBUZZ" + CFLAGS="$CFLAGS $HARFBUZZ_CFLAGS" LDFLAGS="$LDFLAGS $HARFBUZZ_LIBS" + ftoption_set FT_CONFIG_OPTION_USE_HARFBUZZ +else + ftoption_unset FT_CONFIG_OPTION_USE_HARFBUZZ fi AC_SUBST([CFLAGS]) AC_SUBST([LDFLAGS]) +# We don't want to use a template file for `ftoption.h', since compilation +# should work without calling a configure script also. For this reason, we +# copy the `include/freetype/config/ftoption.h' file to the `unix/builds' +# directory (using a dummy `AC_CONFIG_FILES' call) and apply the just +# constructed $FTOPTION_H_SED regexp (using the post-action of +# `AC_CONFIG_FILES'); this is also the version that gets installed later on. +# +AC_CONFIG_FILES([ftoption.h:${srcdir}/../../include/freetype/config/ftoption.h], + [mv ftoption.h ftoption.tmp + eval "sed $FTOPTION_H_SED < ftoption.tmp > ftoption.h" + rm ftoption.tmp], + [FTOPTION_H_SED="$FTOPTION_H_SED"]) + # configuration file -- stay in 8.3 limit # # since #undef doesn't survive in configuration header files we replace diff --git a/modules/freetype2/builds/unix/detect.mk b/modules/freetype2/builds/unix/detect.mk index 557dc92ac..54daa0786 100644 --- a/modules/freetype2/builds/unix/detect.mk +++ b/modules/freetype2/builds/unix/detect.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/unix/freetype-config.in b/modules/freetype2/builds/unix/freetype-config.in index f74707d5a..2d5b90dc2 100644 --- a/modules/freetype2/builds/unix/freetype-config.in +++ b/modules/freetype2/builds/unix/freetype-config.in @@ -1,6 +1,6 @@ #! /bin/sh # -# Copyright 2000-2016 by +# Copyright 2000-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -12,11 +12,55 @@ LC_ALL=C export LC_ALL -prefix="%prefix%" -exec_prefix="%exec_prefix%" -exec_prefix_set="no" -includedir="%includedir%" -libdir="%libdir%" + +# if `pkg-config' is available, use values from `freetype2.pc' +%PKG_CONFIG% --atleast-pkgconfig-version 0.24 >/dev/null 2>&1 +if test $? -eq 0 ; then + # note that option `--variable' is not affected by the + # PKG_CONFIG_SYSROOT_DIR environment variable + if test "x$SYSROOT" != "x" ; then + PKG_CONFIG_SYSROOT_DIR="$SYSROOT" + export PKG_CONFIG_SYSROOT_DIR + fi + + prefix=`%PKG_CONFIG% --variable prefix freetype2` + exec_prefix=`%PKG_CONFIG% --variable exec_prefix freetype2` + + includedir=`%PKG_CONFIG% --variable includedir freetype2` + libdir=`%PKG_CONFIG% --variable libdir freetype2` + + version=`%PKG_CONFIG% --modversion freetype2` + + cflags=`%PKG_CONFIG% --cflags freetype2` + dynamic_libs=`%PKG_CONFIG% --libs freetype2` + static_libs=`%PKG_CONFIG% --static --libs freetype2` +else + prefix="%prefix%" + exec_prefix="%exec_prefix%" + + includedir="%includedir%" + libdir="%libdir%" + + version=%ft_version% + + cflags="-I${SYSROOT}$includedir/freetype2" + dynamic_libs="-lfreetype" + static_libs="%LIBSSTATIC_CONFIG%" + if test "${SYSROOT}$libdir" != "/usr/lib" && + test "${SYSROOT}$libdir" != "/usr/lib64" ; then + libs_L="-L${SYSROOT}$libdir" + fi +fi + +orig_prefix=$prefix +orig_exec_prefix=$exec_prefix + +orig_includedir=$includedir +orig_libdir=$libdir + +include_suffix=`echo $includedir | sed "s|$prefix||"` +lib_suffix=`echo $libdir | sed "s|$exec_prefix||"` + usage() { @@ -39,14 +83,17 @@ Options: library --static make command line options display flags for static linking + --help display this help and exit EOF exit $1 } + if test $# -eq 0 ; then usage 1 1>&2 fi + while test $# -gt 0 ; do case "$1" in -*=*) @@ -74,8 +121,8 @@ while test $# -gt 0 ; do echo_exec_prefix=yes ;; --version) - echo %ft_version% - exit 0 + echo_version=yes + break ;; --ftversion) echo_ft_version=yes @@ -92,6 +139,9 @@ while test $# -gt 0 ; do --static) show_static=yes ;; + --help) + usage 0 + ;; *) usage 1 1>&2 ;; @@ -99,12 +149,27 @@ while test $# -gt 0 ; do shift done + if test "$local_prefix" = "yes" ; then if test "$exec_prefix_set" != "yes" ; then exec_prefix=$prefix fi fi +if test "$local_prefix" = "yes" ; then + includedir=${prefix}${include_suffix} + if test "$exec_prefix_set" = "yes" ; then + libdir=${exec_prefix}${lib_suffix} + else + libdir=${prefix}${lib_suffix} + fi +fi + + +if test "$echo_version" = "yes" ; then + echo $version +fi + if test "$echo_prefix" = "yes" ; then echo ${SYSROOT}$prefix fi @@ -113,15 +178,6 @@ if test "$echo_exec_prefix" = "yes" ; then echo ${SYSROOT}$exec_prefix fi -if test "$exec_prefix_set" = "yes" ; then - libdir=$exec_prefix/lib -else - if test "$local_prefix" = "yes" ; then - includedir=$prefix/include - libdir=$prefix/lib - fi -fi - if test "$echo_ft_version" = "yes" ; then major=`grep define ${SYSROOT}$includedir/freetype2/freetype/freetype.h \ | grep FREETYPE_MAJOR \ @@ -136,26 +192,20 @@ if test "$echo_ft_version" = "yes" ; then fi if test "$echo_cflags" = "yes" ; then - echo -I${SYSROOT}$includedir/freetype2 + echo $cflags | sed "s|$orig_includedir/freetype2|$includedir/freetype2|" fi if test "$echo_libs" = "yes" ; then - libs="-lfreetype" - staticlibs="%LIBSSTATIC_CONFIG%" if test "$show_static" = "yes" ; then - libs="$staticlibs" - fi - if test "${SYSROOT}$libdir" != "/usr/lib" && - test "${SYSROOT}$libdir" != "/usr/lib64"; then - echo -L${SYSROOT}$libdir $libs + libs="$libs_L $static_libs" else - echo $libs + libs="$libs_L $dynamic_libs" fi + echo $libs | sed "s|$orig_libdir|$libdir|" fi if test "$echo_libtool" = "yes" ; then - convlib="libfreetype.la" - echo ${SYSROOT}$libdir/$convlib + echo ${SYSROOT}$libdir/libfreetype.la fi # EOF diff --git a/modules/freetype2/builds/unix/freetype2.in b/modules/freetype2/builds/unix/freetype2.in index c4dfda4ab..2d759ecf8 100644 --- a/modules/freetype2/builds/unix/freetype2.in +++ b/modules/freetype2/builds/unix/freetype2.in @@ -4,7 +4,7 @@ libdir=%libdir% includedir=%includedir% Name: FreeType 2 -URL: http://freetype.org +URL: https://freetype.org Description: A free, high-quality, and portable font engine. Version: %ft_version% Requires: diff --git a/modules/freetype2/builds/unix/freetype2.m4 b/modules/freetype2/builds/unix/freetype2.m4 index 1462fc791..af2e6590e 100644 --- a/modules/freetype2/builds/unix/freetype2.m4 +++ b/modules/freetype2/builds/unix/freetype2.m4 @@ -1,7 +1,7 @@ # Configure paths for FreeType2 # Marcelo Magallon 2001-10-26, based on gtk.m4 by Owen Taylor # -# Copyright 2001-2016 by +# Copyright 2001-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/unix/ft-munmap.m4 b/modules/freetype2/builds/unix/ft-munmap.m4 index db798d8d9..00eda4925 100644 --- a/modules/freetype2/builds/unix/ft-munmap.m4 +++ b/modules/freetype2/builds/unix/ft-munmap.m4 @@ -1,6 +1,6 @@ ## FreeType specific autoconf tests # -# Copyright 2002-2016 by +# Copyright 2002-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/unix/ftconfig.in b/modules/freetype2/builds/unix/ftconfig.in index 6401f657c..b9c21da2c 100644 --- a/modules/freetype2/builds/unix/ftconfig.in +++ b/modules/freetype2/builds/unix/ftconfig.in @@ -4,7 +4,7 @@ /* */ /* UNIX-specific configuration file (specification only). */ /* */ -/* Copyright 1996-2016 by */ +/* Copyright 1996-2018 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -365,6 +365,15 @@ FT_BEGIN_HEADER #endif +#ifdef _WIN64 + /* only 64bit Windows uses the LLP64 data model, i.e., */ + /* 32bit integers, 64bit pointers */ +#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x) +#else +#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x) +#endif + + /*************************************************************************/ /* */ /* miscellaneous */ @@ -388,6 +397,14 @@ FT_BEGIN_HEADER #endif + /* Use FT_LOCAL and FT_LOCAL_DEF to declare and define, respectively, */ + /* a function that gets used only within the scope of a module. */ + /* Normally, both the header and source code files for such a */ + /* function are within a single module directory. */ + /* */ + /* Intra-module arrays should be tagged with FT_LOCAL_ARRAY and */ + /* FT_LOCAL_ARRAY_DEF. */ + /* */ #ifdef FT_MAKE_OPTION_SINGLE_OBJECT #define FT_LOCAL( x ) static x @@ -409,6 +426,12 @@ FT_BEGIN_HEADER #define FT_LOCAL_ARRAY_DEF( x ) const x + /* Use FT_BASE and FT_BASE_DEF to declare and define, respectively, */ + /* functions that are used in more than a single module. In the */ + /* current setup this implies that the declaration is in a header */ + /* file in the `include/freetype/internal' directory, and the */ + /* function body is in a file in `src/base'. */ + /* */ #ifndef FT_BASE #ifdef __cplusplus @@ -431,14 +454,63 @@ FT_BEGIN_HEADER #endif /* !FT_BASE_DEF */ + /* When compiling FreeType as a DLL or DSO with hidden visibility */ + /* some systems/compilers need a special attribute in front OR after */ + /* the return type of function declarations. */ + /* */ + /* Two macros are used within the FreeType source code to define */ + /* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */ + /* */ + /* FT_EXPORT( return_type ) */ + /* */ + /* is used in a function declaration, as in */ + /* */ + /* FT_EXPORT( FT_Error ) */ + /* FT_Init_FreeType( FT_Library* alibrary ); */ + /* */ + /* */ + /* FT_EXPORT_DEF( return_type ) */ + /* */ + /* is used in a function definition, as in */ + /* */ + /* FT_EXPORT_DEF( FT_Error ) */ + /* FT_Init_FreeType( FT_Library* alibrary ) */ + /* { */ + /* ... some code ... */ + /* return FT_Err_Ok; */ + /* } */ + /* */ + /* You can provide your own implementation of FT_EXPORT and */ + /* FT_EXPORT_DEF here if you want. */ + /* */ + /* To export a variable, use FT_EXPORT_VAR. */ + /* */ #ifndef FT_EXPORT -#ifdef __cplusplus +#ifdef FT2_BUILD_LIBRARY + +#if defined( _WIN32 ) && ( defined( _DLL ) || defined( DLL_EXPORT ) ) +#define FT_EXPORT( x ) __declspec( dllexport ) x +#elif defined( __GNUC__ ) && __GNUC__ >= 4 +#define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x +#elif defined( __cplusplus ) +#define FT_EXPORT( x ) extern "C" x +#else +#define FT_EXPORT( x ) extern x +#endif + +#else + +#if defined( FT2_DLLIMPORT ) +#define FT_EXPORT( x ) __declspec( dllimport ) x +#elif defined( __cplusplus ) #define FT_EXPORT( x ) extern "C" x #else #define FT_EXPORT( x ) extern x #endif +#endif + #endif /* !FT_EXPORT */ @@ -474,7 +546,13 @@ FT_BEGIN_HEADER /* functions which are accessed by (global) function pointers. */ /* */ /* */ - /* FT_CALLBACK_DEF is used to _define_ a callback function. */ + /* FT_CALLBACK_DEF is used to _define_ a callback function, */ + /* located in the same source code file as the structure that uses */ + /* it. */ + /* */ + /* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */ + /* and define a callback function, respectively, in a similar way */ + /* as FT_BASE and FT_BASE_DEF work. */ /* */ /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */ /* contains pointers to callback functions. */ @@ -494,6 +572,16 @@ FT_BEGIN_HEADER #endif #endif /* FT_CALLBACK_DEF */ +#ifndef FT_BASE_CALLBACK +#ifdef __cplusplus +#define FT_BASE_CALLBACK( x ) extern "C" x +#define FT_BASE_CALLBACK_DEF( x ) extern "C" x +#else +#define FT_BASE_CALLBACK( x ) extern x +#define FT_BASE_CALLBACK_DEF( x ) x +#endif +#endif /* FT_BASE_CALLBACK */ + #ifndef FT_CALLBACK_TABLE #ifdef __cplusplus #define FT_CALLBACK_TABLE extern "C" diff --git a/modules/freetype2/builds/unix/ftsystem.c b/modules/freetype2/builds/unix/ftsystem.c index a5e44591c..8fdbeb0f6 100644 --- a/modules/freetype2/builds/unix/ftsystem.c +++ b/modules/freetype2/builds/unix/ftsystem.c @@ -4,7 +4,7 @@ /* */ /* Unix-specific FreeType low-level system interface (body). */ /* */ -/* Copyright 1996-2016 by */ +/* Copyright 1996-2018 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/modules/freetype2/builds/unix/install.mk b/modules/freetype2/builds/unix/install.mk index f944c5c23..c08c3b756 100644 --- a/modules/freetype2/builds/unix/install.mk +++ b/modules/freetype2/builds/unix/install.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -30,15 +30,20 @@ # # We also remove `$(includedir)/ft2build.h' for the same reason. # +# Note that some header files get handled twice for simplicity; a special, +# configured version overwrites the generic one. +# install: $(PROJECT_LIBRARY) -$(DELDIR) $(DESTDIR)$(includedir)/freetype2 -$(DELETE) $(DESTDIR)$(includedir)/ft2build.h $(MKINSTALLDIRS) $(DESTDIR)$(libdir) \ $(DESTDIR)$(libdir)/pkgconfig \ $(DESTDIR)$(includedir)/freetype2/freetype/config \ - $(DESTDIR)$(bindir) \ - $(DESTDIR)$(datadir)/aclocal \ + $(DESTDIR)$(datadir)/aclocal +ifeq ($(INSTALL_FT2_CONFIG),TRUE) + $(MKINSTALLDIRS) $(DESTDIR)$(bindir) \ $(DESTDIR)$(mandir)/man1 +endif $(LIBTOOL) --mode=install $(INSTALL) \ $(PROJECT_LIBRARY) $(DESTDIR)$(libdir) -for P in $(PUBLIC_H) ; do \ @@ -49,20 +54,24 @@ install: $(PROJECT_LIBRARY) $(INSTALL_DATA) \ $$P $(DESTDIR)$(includedir)/freetype2/freetype/config ; \ done - $(INSTALL_DATA) $(TOP_DIR)/include/ft2build.h \ + $(INSTALL_DATA) $(TOP_DIR)/include/ft2build.h \ $(DESTDIR)$(includedir)/freetype2/ft2build.h $(INSTALL_DATA) $(OBJ_BUILD)/ftconfig.h \ $(DESTDIR)$(includedir)/freetype2/freetype/config/ftconfig.h $(INSTALL_DATA) $(OBJ_DIR)/ftmodule.h \ $(DESTDIR)$(includedir)/freetype2/freetype/config/ftmodule.h - $(INSTALL_SCRIPT) -m 755 $(OBJ_BUILD)/freetype-config \ - $(DESTDIR)$(bindir)/freetype-config - $(INSTALL_SCRIPT) -m 644 $(BUILD_DIR)/freetype2.m4 \ + $(INSTALL_DATA) $(OBJ_BUILD)/ftoption.h \ + $(DESTDIR)$(includedir)/freetype2/freetype/config/ftoption.h + $(INSTALL_SCRIPT) -m 644 $(BUILD_DIR)/freetype2.m4 \ $(DESTDIR)$(datadir)/aclocal/freetype2.m4 - $(INSTALL_SCRIPT) -m 644 $(OBJ_BUILD)/freetype2.pc \ + $(INSTALL_SCRIPT) -m 644 $(OBJ_BUILD)/freetype2.pc \ $(DESTDIR)$(libdir)/pkgconfig/freetype2.pc - $(INSTALL_DATA) $(TOP_DIR)/docs/freetype-config.1 \ +ifeq ($(INSTALL_FT2_CONFIG),TRUE) + $(INSTALL_SCRIPT) -m 755 $(OBJ_BUILD)/freetype-config \ + $(DESTDIR)$(bindir)/freetype-config + $(INSTALL_DATA) $(TOP_DIR)/docs/freetype-config.1 \ $(DESTDIR)$(mandir)/man1/freetype-config.1 +endif uninstall: @@ -75,7 +84,7 @@ uninstall: check: - @echo There is no validation suite for this package. + $(info There is no validation suite for this package.) .PHONY: clean_project_unix distclean_project_unix @@ -83,13 +92,11 @@ check: # Unix cleaning and distclean rules. # clean_project_unix: - -$(DELETE) $(BASE_OBJECTS) $(OBJ_M) $(OBJ_S) - -$(DELETE) $(patsubst %.$O,%.$(SO),$(BASE_OBJECTS) $(OBJ_M) $(OBJ_S)) \ - $(CLEAN) + -$(LIBTOOL) --mode=clean $(RM) $(OBJECTS_LIST) + -$(DELETE) $(CLEAN) distclean_project_unix: clean_project_unix - -$(DELETE) $(PROJECT_LIBRARY) - -$(DELDIR) $(OBJ_DIR)/.libs + -$(LIBTOOL) --mode=clean $(RM) $(PROJECT_LIBRARY) -$(DELETE) *.orig *~ core *.core $(DISTCLEAN) # EOF diff --git a/modules/freetype2/builds/unix/pkg.m4 b/modules/freetype2/builds/unix/pkg.m4 index f26f84c9a..260e1fb92 100644 --- a/modules/freetype2/builds/unix/pkg.m4 +++ b/modules/freetype2/builds/unix/pkg.m4 @@ -53,7 +53,7 @@ fi[]dnl # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place +# only at the first occurrence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- diff --git a/modules/freetype2/builds/unix/unix-cc.in b/modules/freetype2/builds/unix/unix-cc.in index df09e7eca..5675866ea 100644 --- a/modules/freetype2/builds/unix/unix-cc.in +++ b/modules/freetype2/builds/unix/unix-cc.in @@ -2,7 +2,7 @@ # FreeType 2 template for Unix-specific compiler definitions # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -87,19 +87,26 @@ ANSIFLAGS := @XX_ANSIFLAGS@ # C compiler to use -- we use libtool! # -# CCraw := $(CC) CC := $(LIBTOOL) --mode=compile $(CCraw) +# Resource compiler to use on Cygwin/MinGW, usually windres. +# +RCraw := @RC@ +ifneq ($(RCraw),) + RC := $(LIBTOOL) --tag=RC --mode=compile $(RCraw) +endif + # Linker flags. # -LDFLAGS := @LDFLAGS@ +LDFLAGS := @LDFLAGS@ +LIB_CLOCK_GETTIME := @LIB_CLOCK_GETTIME@ # for ftbench # export symbols # CCraw_build := @CC_BUILD@ # native CC of building system -E_BUILD := @EXEEXT_BUILD@ # extension for exexutable on building system +E_BUILD := @EXEEXT_BUILD@ # extension for executable on building system EXPORTS_LIST := $(OBJ_DIR)/ftexport.sym CCexe := $(CCraw_build) # used to compile `apinames' only diff --git a/modules/freetype2/builds/unix/unix-def.in b/modules/freetype2/builds/unix/unix-def.in index f7b557fb4..6957053ab 100644 --- a/modules/freetype2/builds/unix/unix-def.in +++ b/modules/freetype2/builds/unix/unix-def.in @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -43,6 +43,7 @@ DISTCLEAN += $(OBJ_BUILD)/config.cache \ $(OBJ_BUILD)/unix-def.mk \ $(OBJ_BUILD)/unix-cc.mk \ $(OBJ_BUILD)/ftconfig.h \ + $(OBJ_BUILD)/ftoption.h \ $(LIBTOOL) \ $(OBJ_BUILD)/Makefile @@ -62,6 +63,7 @@ version_info := @version_info@ # Variables needed for `freetype-config' and `freetype.pc'. # +PKG_CONFIG := @PKG_CONFIG@ REQUIRES_PRIVATE := @REQUIRES_PRIVATE@ LIBS_PRIVATE := @LIBS_PRIVATE@ LIBSSTATIC_CONFIG := @LIBSSTATIC_CONFIG@ @@ -102,6 +104,7 @@ NO_OUTPUT := 2> /dev/null $(OBJ_BUILD)/freetype-config: $(TOP_DIR)/builds/unix/freetype-config.in rm -f $@ $@.tmp sed -e 's|%LIBSSTATIC_CONFIG%|$(LIBSSTATIC_CONFIG)|' \ + -e 's|%PKG_CONFIG%|$(PKG_CONFIG)|' \ -e 's|%build_libtool_libs%|$(build_libtool_libs)|' \ -e 's|%exec_prefix%|$(exec_prefix)|' \ -e 's|%ft_version%|$(ft_version)|' \ @@ -111,7 +114,7 @@ $(OBJ_BUILD)/freetype-config: $(TOP_DIR)/builds/unix/freetype-config.in $< \ > $@.tmp chmod +x $@.tmp - chmod a-w $@.tmp + chmod go-w $@.tmp mv $@.tmp $@ # To support directory names with spaces (as might easily happen on Windows @@ -142,6 +145,9 @@ $(OBJ_BUILD)/freetype2.pc: $(TOP_DIR)/builds/unix/freetype2.in chmod a-w $@.tmp mv $@.tmp $@ +# defines whether we should install `freetype-config' or not +INSTALL_FT2_CONFIG = @INSTALL_FT2_CONFIG@ + all install: $(OBJ_BUILD)/freetype-config \ $(OBJ_BUILD)/freetype2.pc diff --git a/modules/freetype2/builds/unix/unix-dev.mk b/modules/freetype2/builds/unix/unix-dev.mk index 3c72e577f..5a516ad28 100644 --- a/modules/freetype2/builds/unix/unix-dev.mk +++ b/modules/freetype2/builds/unix/unix-dev.mk @@ -6,7 +6,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/unix/unix-lcc.mk b/modules/freetype2/builds/unix/unix-lcc.mk index 1c254d13a..73a02d430 100644 --- a/modules/freetype2/builds/unix/unix-lcc.mk +++ b/modules/freetype2/builds/unix/unix-lcc.mk @@ -6,7 +6,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/unix/unix.mk b/modules/freetype2/builds/unix/unix.mk index fba1e1d87..acd54d3dd 100644 --- a/modules/freetype2/builds/unix/unix.mk +++ b/modules/freetype2/builds/unix/unix.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/unix/unixddef.mk b/modules/freetype2/builds/unix/unixddef.mk index adba517d1..a8da63a0a 100644 --- a/modules/freetype2/builds/unix/unixddef.mk +++ b/modules/freetype2/builds/unix/unixddef.mk @@ -4,7 +4,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/vms/ftconfig.h b/modules/freetype2/builds/vms/ftconfig.h index eb7fced3a..021e2c651 100644 --- a/modules/freetype2/builds/vms/ftconfig.h +++ b/modules/freetype2/builds/vms/ftconfig.h @@ -4,7 +4,7 @@ /* */ /* VMS-specific configuration file (specification only). */ /* */ -/* Copyright 1996-2016 by */ +/* Copyright 1996-2018 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -33,6 +33,7 @@ /* */ /*************************************************************************/ + #ifndef FTCONFIG_H_ #define FTCONFIG_H_ @@ -209,12 +210,12 @@ FT_BEGIN_HEADER #endif -#if FT_SIZEOF_INT == (32 / FT_CHAR_BIT) +#if FT_SIZEOF_INT == 4 typedef signed int FT_Int32; typedef unsigned int FT_UInt32; -#elif FT_SIZEOF_LONG == (32 / FT_CHAR_BIT) +#elif FT_SIZEOF_LONG == 4 typedef signed long FT_Int32; typedef unsigned long FT_UInt32; @@ -225,12 +226,12 @@ FT_BEGIN_HEADER /* look up an integer type that is at least 32 bits */ -#if FT_SIZEOF_INT >= (32 / FT_CHAR_BIT) +#if FT_SIZEOF_INT >= 4 typedef int FT_Fast; typedef unsigned int FT_UFast; -#elif FT_SIZEOF_LONG >= (32 / FT_CHAR_BIT) +#elif FT_SIZEOF_LONG >= 4 typedef long FT_Fast; typedef unsigned long FT_UFast; @@ -238,15 +239,25 @@ FT_BEGIN_HEADER #endif - /* determine whether we have a 64-bit int type for platforms without */ - /* Autoconf */ -#if FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) + /* determine whether we have a 64-bit int type */ + /* (mostly for environments without `autoconf') */ +#if FT_SIZEOF_LONG == 8 /* FT_LONG64 must be defined if a 64-bit type is available */ #define FT_LONG64 #define FT_INT64 long #define FT_UINT64 unsigned long + /* we handle the LLP64 scheme separately for GCC and clang, */ + /* suppressing the `long long' warning */ +#elif ( FT_SIZEOF_LONG == 4 ) && \ + defined( HAVE_LONG_LONG_INT ) && \ + defined( __GNUC__ ) +#pragma GCC diagnostic ignored "-Wlong-long" +#define FT_LONG64 +#define FT_INT64 long long int +#define FT_UINT64 unsigned long long int + /*************************************************************************/ /* */ /* A 64-bit data type may create compilation problems if you compile */ @@ -298,7 +309,7 @@ FT_BEGIN_HEADER #endif /* __STDC_VERSION__ >= 199901L */ -#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */ +#endif /* FT_SIZEOF_LONG == 8 */ #ifdef FT_LONG64 typedef FT_INT64 FT_Int64; @@ -306,6 +317,15 @@ FT_BEGIN_HEADER #endif +#ifdef _WIN64 + /* only 64bit Windows uses the LLP64 data model, i.e., */ + /* 32bit integers, 64bit pointers */ +#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x) +#else +#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x) +#endif + + /*************************************************************************/ /* */ /* miscellaneous */ @@ -329,6 +349,14 @@ FT_BEGIN_HEADER #endif + /* Use FT_LOCAL and FT_LOCAL_DEF to declare and define, respectively, */ + /* a function that gets used only within the scope of a module. */ + /* Normally, both the header and source code files for such a */ + /* function are within a single module directory. */ + /* */ + /* Intra-module arrays should be tagged with FT_LOCAL_ARRAY and */ + /* FT_LOCAL_ARRAY_DEF. */ + /* */ #ifdef FT_MAKE_OPTION_SINGLE_OBJECT #define FT_LOCAL( x ) static x @@ -350,6 +378,12 @@ FT_BEGIN_HEADER #define FT_LOCAL_ARRAY_DEF( x ) const x + /* Use FT_BASE and FT_BASE_DEF to declare and define, respectively, */ + /* functions that are used in more than a single module. In the */ + /* current setup this implies that the declaration is in a header */ + /* file in the `include/freetype/internal' directory, and the */ + /* function body is in a file in `src/base'. */ + /* */ #ifndef FT_BASE #ifdef __cplusplus @@ -372,14 +406,63 @@ FT_BEGIN_HEADER #endif /* !FT_BASE_DEF */ + /* When compiling FreeType as a DLL or DSO with hidden visibility */ + /* some systems/compilers need a special attribute in front OR after */ + /* the return type of function declarations. */ + /* */ + /* Two macros are used within the FreeType source code to define */ + /* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */ + /* */ + /* FT_EXPORT( return_type ) */ + /* */ + /* is used in a function declaration, as in */ + /* */ + /* FT_EXPORT( FT_Error ) */ + /* FT_Init_FreeType( FT_Library* alibrary ); */ + /* */ + /* */ + /* FT_EXPORT_DEF( return_type ) */ + /* */ + /* is used in a function definition, as in */ + /* */ + /* FT_EXPORT_DEF( FT_Error ) */ + /* FT_Init_FreeType( FT_Library* alibrary ) */ + /* { */ + /* ... some code ... */ + /* return FT_Err_Ok; */ + /* } */ + /* */ + /* You can provide your own implementation of FT_EXPORT and */ + /* FT_EXPORT_DEF here if you want. */ + /* */ + /* To export a variable, use FT_EXPORT_VAR. */ + /* */ #ifndef FT_EXPORT -#ifdef __cplusplus +#ifdef FT2_BUILD_LIBRARY + +#if defined( _WIN32 ) && ( defined( _DLL ) || defined( DLL_EXPORT ) ) +#define FT_EXPORT( x ) __declspec( dllexport ) x +#elif defined( __GNUC__ ) && __GNUC__ >= 4 +#define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x +#elif defined( __cplusplus ) +#define FT_EXPORT( x ) extern "C" x +#else +#define FT_EXPORT( x ) extern x +#endif + +#else + +#if defined( FT2_DLLIMPORT ) +#define FT_EXPORT( x ) __declspec( dllimport ) x +#elif defined( __cplusplus ) #define FT_EXPORT( x ) extern "C" x #else #define FT_EXPORT( x ) extern x #endif +#endif + #endif /* !FT_EXPORT */ @@ -415,7 +498,13 @@ FT_BEGIN_HEADER /* functions which are accessed by (global) function pointers. */ /* */ /* */ - /* FT_CALLBACK_DEF is used to _define_ a callback function. */ + /* FT_CALLBACK_DEF is used to _define_ a callback function, */ + /* located in the same source code file as the structure that uses */ + /* it. */ + /* */ + /* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */ + /* and define a callback function, respectively, in a similar way */ + /* as FT_BASE and FT_BASE_DEF work. */ /* */ /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */ /* contains pointers to callback functions. */ @@ -435,6 +524,16 @@ FT_BEGIN_HEADER #endif #endif /* FT_CALLBACK_DEF */ +#ifndef FT_BASE_CALLBACK +#ifdef __cplusplus +#define FT_BASE_CALLBACK( x ) extern "C" x +#define FT_BASE_CALLBACK_DEF( x ) extern "C" x +#else +#define FT_BASE_CALLBACK( x ) extern x +#define FT_BASE_CALLBACK_DEF( x ) x +#endif +#endif /* FT_BASE_CALLBACK */ + #ifndef FT_CALLBACK_TABLE #ifdef __cplusplus #define FT_CALLBACK_TABLE extern "C" diff --git a/modules/freetype2/builds/vms/ftsystem.c b/modules/freetype2/builds/vms/ftsystem.c index a13cb220e..7d79f9a31 100644 --- a/modules/freetype2/builds/vms/ftsystem.c +++ b/modules/freetype2/builds/vms/ftsystem.c @@ -4,7 +4,7 @@ /* */ /* VMS-specific FreeType low-level system interface (body). */ /* */ -/* Copyright 1996-2016 by */ +/* Copyright 1996-2018 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/modules/freetype2/builds/wince/ftdebug.c b/modules/freetype2/builds/wince/ftdebug.c index 6e35e170c..83c5f4479 100644 --- a/modules/freetype2/builds/wince/ftdebug.c +++ b/modules/freetype2/builds/wince/ftdebug.c @@ -4,7 +4,7 @@ /* */ /* Debugging and logging component for WinCE (body). */ /* */ -/* Copyright 1996-2016 by */ +/* Copyright 1996-2018 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -79,7 +79,7 @@ va_start( ap, fmt ); - vprintf( fmt, ap ); + vfprintf( stderr, fmt, ap ); /* send the string to the debugger as well */ vsprintf( buf, fmt, ap ); OutputDebugStringEx( buf ); diff --git a/modules/freetype2/builds/wince/vc2005-ce/freetype.vcproj b/modules/freetype2/builds/wince/vc2005-ce/freetype.vcproj index 279abeefa..1ca45a80f 100644 --- a/modules/freetype2/builds/wince/vc2005-ce/freetype.vcproj +++ b/modules/freetype2/builds/wince/vc2005-ce/freetype.vcproj @@ -21,7 +21,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -61,7 +61,7 @@ - + @@ -81,7 +81,7 @@ - + @@ -101,7 +101,7 @@ - + @@ -121,7 +121,7 @@ - + @@ -141,7 +141,7 @@ - + @@ -161,7 +161,7 @@ - + @@ -181,7 +181,7 @@ - + @@ -201,7 +201,7 @@ - + @@ -221,7 +221,7 @@ - + @@ -241,7 +241,7 @@ - + @@ -261,7 +261,7 @@ - + @@ -281,7 +281,7 @@ - + @@ -301,7 +301,7 @@ - + @@ -321,7 +321,7 @@ - + @@ -341,7 +341,7 @@ - + @@ -361,7 +361,7 @@ - + @@ -381,7 +381,7 @@ - + @@ -401,7 +401,7 @@ - + @@ -421,7 +421,7 @@ - + @@ -441,7 +441,7 @@ - + @@ -461,7 +461,7 @@ - + @@ -481,7 +481,7 @@ - + @@ -501,7 +501,7 @@ - + @@ -521,7 +521,7 @@ - + @@ -541,7 +541,7 @@ - + @@ -561,7 +561,7 @@ - + @@ -581,7 +581,7 @@ - + @@ -601,7 +601,7 @@ - + @@ -621,7 +621,7 @@ - + @@ -641,7 +641,7 @@ - + @@ -661,7 +661,7 @@ - + @@ -681,7 +681,7 @@ - + @@ -701,7 +701,7 @@ - + @@ -721,7 +721,7 @@ - + @@ -741,7 +741,7 @@ - + @@ -758,7 +758,7 @@ - + @@ -773,585 +773,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -1359,774 +792,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2135,139 +812,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2282,1540 +829,28 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3836,4 +871,4 @@ - \ No newline at end of file + diff --git a/modules/freetype2/builds/wince/vc2005-ce/index.html b/modules/freetype2/builds/wince/vc2005-ce/index.html index 58d6093bc..02a1caf8b 100644 --- a/modules/freetype2/builds/wince/vc2005-ce/index.html +++ b/modules/freetype2/builds/wince/vc2005-ce/index.html @@ -21,14 +21,14 @@ the following targets:
  • PPC/SP WM6 (Windows Mobile 6)
  • -It compiles the following libraries from the FreeType 2.7.1 sources:

    +It compiles the following libraries from the FreeType 2.9.1 sources:

      -    freetype271.lib     - release build; single threaded
      -    freetype271_D.lib   - debug build;   single threaded
      -    freetype271MT.lib   - release build; multi-threaded
      -    freetype271MT_D.lib - debug build;   multi-threaded
      + freetype291.lib - release build; single threaded + freetype291_D.lib - debug build; single threaded + freetype291MT.lib - release build; multi-threaded + freetype291MT_D.lib - debug build; multi-threaded

    Be sure to extract the files with the Windows (CR+LF) line endings. ZIP diff --git a/modules/freetype2/builds/wince/vc2008-ce/freetype.vcproj b/modules/freetype2/builds/wince/vc2008-ce/freetype.vcproj index ca306ceff..7a5445e9c 100644 --- a/modules/freetype2/builds/wince/vc2008-ce/freetype.vcproj +++ b/modules/freetype2/builds/wince/vc2008-ce/freetype.vcproj @@ -88,7 +88,7 @@ /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/modules/freetype2/builds/wince/vc2008-ce/index.html b/modules/freetype2/builds/wince/vc2008-ce/index.html index 37de05c52..f7a358378 100644 --- a/modules/freetype2/builds/wince/vc2008-ce/index.html +++ b/modules/freetype2/builds/wince/vc2008-ce/index.html @@ -21,14 +21,14 @@ the following targets:

  • PPC/SP WM6 (Windows Mobile 6)
  • -It compiles the following libraries from the FreeType 2.7.1 sources:

    +It compiles the following libraries from the FreeType 2.9.1 sources:

      -    freetype271.lib     - release build; single threaded
      -    freetype271_D.lib   - debug build;   single threaded
      -    freetype271MT.lib   - release build; multi-threaded
      -    freetype271MT_D.lib - debug build;   multi-threaded
      + freetype291.lib - release build; single threaded + freetype291_D.lib - debug build; single threaded + freetype291MT.lib - release build; multi-threaded + freetype291MT_D.lib - debug build; multi-threaded

    Be sure to extract the files with the Windows (CR+LF) line endings. ZIP diff --git a/modules/freetype2/builds/windows/detect.mk b/modules/freetype2/builds/windows/detect.mk index 087230310..dd5669ca5 100644 --- a/modules/freetype2/builds/windows/detect.mk +++ b/modules/freetype2/builds/windows/detect.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -77,7 +77,7 @@ ifeq ($(PLATFORM),windows) # So we need to hack. # # Kudos to Eli Zaretskii (DJGPP guru) that helped debug it. - # Details are available in threads of the freetype mailing list + # Details are available in threads of the FreeType mailing list # (2004-11-11), and then in the devel mailing list (2004-11-20 to -23). # ifeq ($(OS),Windows_NT) @@ -95,22 +95,22 @@ ifeq ($(PLATFORM),windows) ifneq ($(findstring list,$(MAKECMDGOALS)),) # test for the "list" target dump_target_list: - @echo ÿ - @echo $(PROJECT_TITLE) build system -- supported compilers - @echo ÿ - @echo Several command-line compilers are supported on Win32: - @echo ÿ - @echo ÿÿmake setupÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿgcc (with Mingw) - @echo ÿÿmake setup visualcÿÿÿÿÿÿÿÿÿÿÿÿÿMicrosoft Visual C++ - @echo ÿÿmake setup bcc32ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBorland C/C++ - @echo ÿÿmake setup lccÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿWin32-LCC - @echo ÿÿmake setup intelcÿÿÿÿÿÿÿÿÿÿÿÿÿÿIntel C/C++ - @echo ÿ + $(info ) + $(info $(PROJECT_TITLE) build system -- supported compilers) + $(info ) + $(info Several command-line compilers are supported on Win32:) + $(info ) + $(info $(empty) make setup gcc (with Mingw)) + $(info $(empty) make setup visualc Microsoft Visual C++) + $(info $(empty) make setup bcc32 Borland C/C++) + $(info $(empty) make setup lcc Win32-LCC) + $(info $(empty) make setup intelc Intel C/C++) + $(info ) setup: dump_target_list .PHONY: dump_target_list list else - setup: dos_setup + setup: std_setup endif # additionally, we provide hooks for various other compilers diff --git a/modules/freetype2/builds/windows/ftdebug.c b/modules/freetype2/builds/windows/ftdebug.c index f29cca08b..ec70a0e80 100644 --- a/modules/freetype2/builds/windows/ftdebug.c +++ b/modules/freetype2/builds/windows/ftdebug.c @@ -4,7 +4,7 @@ /* */ /* Debugging and logging component for Win32 (body). */ /* */ -/* Copyright 1996-2016 by */ +/* Copyright 1996-2018 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -65,7 +65,7 @@ va_start( ap, fmt ); - vprintf( fmt, ap ); + vfprintf( stderr, fmt, ap ); /* send the string to the debugger as well */ vsprintf( buf, fmt, ap ); OutputDebugStringA( buf ); diff --git a/modules/freetype2/builds/windows/vc2005/freetype.vcproj b/modules/freetype2/builds/windows/vc2005/freetype.vcproj index b643840c2..b1e2ae681 100644 --- a/modules/freetype2/builds/windows/vc2005/freetype.vcproj +++ b/modules/freetype2/builds/windows/vc2005/freetype.vcproj @@ -16,7 +16,7 @@ - + @@ -33,7 +33,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -67,7 +67,7 @@ - + @@ -84,7 +84,7 @@ - + @@ -101,7 +101,7 @@ - + @@ -116,105 +116,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -222,151 +135,27 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - - - - - - - - - - - - - - - - - @@ -376,8 +165,6 @@ - - @@ -385,244 +172,28 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -643,4 +214,4 @@ - \ No newline at end of file + diff --git a/modules/freetype2/builds/windows/vc2005/index.html b/modules/freetype2/builds/windows/vc2005/index.html index c3a5ab7d5..c5e182ef0 100644 --- a/modules/freetype2/builds/windows/vc2005/index.html +++ b/modules/freetype2/builds/windows/vc2005/index.html @@ -11,14 +11,14 @@

    This directory contains project files for Visual C++, named freetype.vcproj, and Visual Studio, called freetype.sln. It -compiles the following libraries from the FreeType 2.7.1 sources:

    +compiles the following libraries from the FreeType 2.9.1 sources:

      -    freetype271.lib     - release build; single threaded
      -    freetype271_D.lib   - debug build;   single threaded
      -    freetype271MT.lib   - release build; multi-threaded
      -    freetype271MT_D.lib - debug build;   multi-threaded
      + freetype291.lib - release build; single threaded + freetype291_D.lib - debug build; single threaded + freetype291MT.lib - release build; multi-threaded + freetype291MT_D.lib - debug build; multi-threaded

    Be sure to extract the files with the Windows (CR+LF) line endings. ZIP diff --git a/modules/freetype2/builds/windows/vc2008/freetype.vcproj b/modules/freetype2/builds/windows/vc2008/freetype.vcproj index 20d82c4bf..f526cd2f6 100644 --- a/modules/freetype2/builds/windows/vc2008/freetype.vcproj +++ b/modules/freetype2/builds/windows/vc2008/freetype.vcproj @@ -70,7 +70,7 @@ /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - @@ -826,270 +511,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - @@ -1342,806 +586,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/modules/freetype2/builds/windows/vc2008/index.html b/modules/freetype2/builds/windows/vc2008/index.html index bf9282f48..25c6f9b13 100644 --- a/modules/freetype2/builds/windows/vc2008/index.html +++ b/modules/freetype2/builds/windows/vc2008/index.html @@ -11,14 +11,14 @@

    This directory contains project files for Visual C++, named freetype.vcproj, and Visual Studio, called freetype.sln. It -compiles the following libraries from the FreeType 2.7.1 sources:

    +compiles the following libraries from the FreeType 2.9.1 sources:

      -    freetype271.lib     - release build; single threaded
      -    freetype271_D.lib   - debug build;   single threaded
      -    freetype271MT.lib   - release build; multi-threaded
      -    freetype271MT_D.lib - debug build;   multi-threaded
      + freetype291.lib - release build; single threaded + freetype291_D.lib - debug build; single threaded + freetype291MT.lib - release build; multi-threaded + freetype291MT_D.lib - debug build; multi-threaded

    Be sure to extract the files with the Windows (CR+LF) line endings. ZIP diff --git a/modules/freetype2/builds/windows/vc2010/freetype.sln b/modules/freetype2/builds/windows/vc2010/freetype.sln index b209eddd2..8698207a9 100644 --- a/modules/freetype2/builds/windows/vc2010/freetype.sln +++ b/modules/freetype2/builds/windows/vc2010/freetype.sln @@ -6,42 +6,30 @@ Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 - Debug Multithreaded|Win32 = Debug Multithreaded|Win32 - Debug Multithreaded|x64 = Debug Multithreaded|x64 - Debug Singlethreaded|Win32 = Debug Singlethreaded|Win32 - Debug Singlethreaded|x64 = Debug Singlethreaded|x64 + Debug Static|Win32 = Debug Static|Win32 + Debug Static|x64 = Debug Static|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 - Release Multithreaded|Win32 = Release Multithreaded|Win32 - Release Multithreaded|x64 = Release Multithreaded|x64 - Release Singlethreaded|Win32 = Release Singlethreaded|Win32 - Release Singlethreaded|x64 = Release Singlethreaded|x64 + Release Static|Win32 = Release Static|Win32 + Release Static|x64 = Release Static|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.ActiveCfg = Debug|x64 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.Build.0 = Debug|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|Win32.ActiveCfg = Debug Multithreaded|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|Win32.Build.0 = Debug Multithreaded|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|x64.ActiveCfg = Debug Multithreaded|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|x64.Build.0 = Debug Multithreaded|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|Win32.ActiveCfg = Debug Singlethreaded|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|Win32.Build.0 = Debug Singlethreaded|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|x64.ActiveCfg = Debug Singlethreaded|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|x64.Build.0 = Debug Singlethreaded|x64 + {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|Win32.ActiveCfg = Debug Static|Win32 + {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|Win32.Build.0 = Debug Static|Win32 + {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|x64.ActiveCfg = Debug Static|x64 + {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|x64.Build.0 = Debug Static|x64 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.ActiveCfg = Release|x64 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.Build.0 = Release|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|Win32.ActiveCfg = Release Multithreaded|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|Win32.Build.0 = Release Multithreaded|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|x64.ActiveCfg = Release Multithreaded|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|x64.Build.0 = Release Multithreaded|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|Win32.ActiveCfg = Release Singlethreaded|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|Win32.Build.0 = Release Singlethreaded|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|x64.ActiveCfg = Release Singlethreaded|x64 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|x64.Build.0 = Release Singlethreaded|x64 + {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|Win32.ActiveCfg = Release Static|Win32 + {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|Win32.Build.0 = Release Static|Win32 + {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|x64.ActiveCfg = Release Static|x64 + {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|x64.Build.0 = Release Static|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/modules/freetype2/builds/windows/vc2010/freetype.vcxproj b/modules/freetype2/builds/windows/vc2010/freetype.vcxproj index 64a71f8bc..521e84722 100644 --- a/modules/freetype2/builds/windows/vc2010/freetype.vcxproj +++ b/modules/freetype2/builds/windows/vc2010/freetype.vcxproj @@ -9,20 +9,12 @@ Debug x64 - - Debug Multithreaded + + Debug Static Win32 - - Debug Multithreaded - x64 - - - Debug Singlethreaded - Win32 - - - Debug Singlethreaded + + Debug Static x64 @@ -33,183 +25,103 @@ Release x64 - - Release Multithreaded + + Release Static Win32 - - Release Multithreaded - x64 - - - Release Singlethreaded - Win32 - - - Release Singlethreaded + + Release Static x64 + + + + 4.0 + + + + v100 + + + + v120 + + + + v140 + + + + v141 + + - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} + {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} + FreeType - StaticLibrary + DynamicLibrary false - MultiByte - v100 + Unicode - StaticLibrary - false - MultiByte - v100 - - - StaticLibrary + DynamicLibrary false - MultiByte - v100 + Unicode - + StaticLibrary false - MultiByte - v100 + Unicode - + StaticLibrary false - MultiByte - v100 - - - StaticLibrary - false - MultiByte - v100 + Unicode - StaticLibrary + DynamicLibrary false - MultiByte - v100 + Unicode - StaticLibrary + DynamicLibrary false - MultiByte - v100 + Unicode - + StaticLibrary false - MultiByte - v100 + Unicode - + StaticLibrary false - MultiByte - v100 - - - StaticLibrary - false - MultiByte - v100 - - - StaticLibrary - false - MultiByte - v100 + Unicode - <_ProjectFileVersion>10.0.30319.1 - .\..\..\..\objs\vc2010\$(Platform)\ - .\..\..\..\objs\vc2010\$(Platform)\$(Configuration)\ - .\..\..\..\objs\vc2010\$(Platform)\ - .\..\..\..\objs\vc2010\$(Platform)\$(Configuration)\ - .\..\..\..\objs\vc2010\$(Platform)\ - .\..\..\..\objs\vc2010\$(Platform)\$(Configuration)\ - .\..\..\..\objs\vc2010\$(Platform)\ - .\..\..\..\objs\vc2010\$(Platform)\$(Configuration)\ - .\..\..\..\objs\vc2010\$(Platform)\ - .\..\..\..\objs\vc2010\$(Platform)\$(Configuration)\ - .\..\..\..\objs\vc2010\$(Platform)\ - .\..\..\..\objs\vc2010\$(Platform)\$(Configuration)\ - .\..\..\..\objs\vc2010\$(Platform)\ - .\..\..\..\objs\vc2010\$(Platform)\$(Configuration)\ - .\..\..\..\objs\vc2010\$(Platform)\ - .\..\..\..\objs\vc2010\$(Platform)\$(Configuration)\ - .\..\..\..\objs\vc2010\$(Platform)\ - .\..\..\..\objs\vc2010\$(Platform)\$(Configuration)\ - .\..\..\..\objs\vc2010\$(Platform)\ - .\..\..\..\objs\vc2010\$(Platform)\$(Configuration)\ - .\..\..\..\objs\vc2010\$(Platform)\ - .\..\..\..\objs\vc2010\$(Platform)\$(Configuration)\ - .\..\..\..\objs\vc2010\$(Platform)\ - .\..\..\..\objs\vc2010\$(Platform)\$(Configuration)\ - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - freetype271d - freetype271d - freetype271MTd - freetype271MTd - freetype271STd - freetype271STd - freetype271 - freetype271 - freetype271MT - freetype271MT - freetype271ST - freetype271ST + ..\..\..\objs\$(Platform)\$(Configuration)\ + ..\..\..\objs\$(Platform)\$(Configuration)\ + AllRules.ruleset + + + freetype Disabled $(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL true @@ -223,7 +135,7 @@ Disabled - _DEBUG;$(UserDefines);%(PreprocessorDefinitions) + _DEBUG;_DLL;$(UserDefines);%(PreprocessorDefinitions) 0x0409 @@ -237,7 +149,7 @@ Disabled $(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL true @@ -251,7 +163,7 @@ Disabled - _DEBUG;$(UserDefines);%(PreprocessorDefinitions) + _DEBUG;_DLL;$(UserDefines);%(PreprocessorDefinitions) 0x0409 @@ -261,13 +173,11 @@ $(UserDependencies);%(AdditionalDependencies) - + Disabled $(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;_CRT_SECURE_NO_DEPRECATE;$(UserDefines);%(PreprocessorDefinitions) - false - false + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug true @@ -291,69 +201,11 @@ $(UserDependencies);%(AdditionalDependencies) - + Disabled $(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;_CRT_SECURE_NO_DEPRECATE;$(UserDefines);%(PreprocessorDefinitions) - false - false - EnableFastChecks - MultiThreadedDebug - true - Level4 - ProgramDatabase - Default - 4001 - true - false - $(OutDir)$(TargetName).pdb - Disabled - - - _DEBUG;$(UserDefines);%(PreprocessorDefinitions) - 0x0409 - - - true - MachineX64 - $(UserLibraryDirectories);%(AdditionalLibraryDirectories) - $(UserDependencies);%(AdditionalDependencies) - - - - - Disabled - $(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - Level4 - ProgramDatabase - Default - 4001 - true - false - $(OutDir)$(TargetName).pdb - Disabled - - - _DEBUG;$(UserDefines);%(PreprocessorDefinitions) - 0x0409 - - - true - MachineX86 - $(UserLibraryDirectories);%(AdditionalLibraryDirectories) - $(UserDependencies);%(AdditionalDependencies) - - - - - Disabled - $(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug true @@ -379,10 +231,10 @@ - Full + MaxSpeed AnySuitable $(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories) - NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) true MultiThreadedDLL true @@ -406,7 +258,7 @@ true - NDEBUG;$(UserDefines);%(PreprocessorDefinitions) + NDEBUG;_DLL;$(UserDefines);%(PreprocessorDefinitions) 0x0409 @@ -419,10 +271,10 @@ - Full + MaxSpeed AnySuitable $(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories) - NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) true MultiThreadedDLL true @@ -446,7 +298,7 @@ true - NDEBUG;$(UserDefines);%(PreprocessorDefinitions) + NDEBUG;_DLL;$(UserDefines);%(PreprocessorDefinitions) 0x0409 @@ -457,12 +309,12 @@ $(UserDependencies);%(AdditionalDependencies) - + - Full + MaxSpeed AnySuitable $(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories) - NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) true MultiThreaded true @@ -498,12 +350,12 @@ $(UserDependencies);%(AdditionalDependencies) - + - Full + MaxSpeed AnySuitable $(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories) - NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) true MultiThreaded true @@ -539,1180 +391,54 @@ $(UserDependencies);%(AdditionalDependencies) - - - Full - AnySuitable - $(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories) - NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) - true - MultiThreaded - true - true - Level4 - Default - 4001 - true - false - StreamingSIMDExtensions2 - false - false - false - - - true - - - true - Neither - true - - - NDEBUG;$(UserDefines);%(PreprocessorDefinitions) - 0x0409 - - - - true - MachineX86 - $(UserLibraryDirectories);%(AdditionalLibraryDirectories) - $(UserDependencies);%(AdditionalDependencies) - - - - - Full - AnySuitable - $(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories) - NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions) - true - MultiThreaded - true - true - Level4 - Default - 4001 - true - false - StreamingSIMDExtensions2 - false - false - false - - - true - - - true - Neither - true - - - NDEBUG;$(UserDefines);%(PreprocessorDefinitions) - 0x0409 - - - - true - MachineX64 - $(UserLibraryDirectories);%(AdditionalLibraryDirectories) - $(UserDependencies);%(AdditionalDependencies) - - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - + + + - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - false - false - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - false - false - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - false - false - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - false - false - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - false - false - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - false - false - + - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - + + + + + + + + - - - - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + false - - - - - - - - + - \ No newline at end of file + + + + diff --git a/modules/freetype2/builds/windows/vc2010/freetype.vcxproj.filters b/modules/freetype2/builds/windows/vc2010/freetype.vcxproj.filters index 0e947f4ba..8ba3673e6 100644 --- a/modules/freetype2/builds/windows/vc2010/freetype.vcxproj.filters +++ b/modules/freetype2/builds/windows/vc2010/freetype.vcxproj.filters @@ -17,118 +17,118 @@ Source Files - + Source Files - + Source Files - + Source Files - + Source Files Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - - Source Files\FT_MODULES + + Source Files - - Source Files\FT_MODULES + + Source Files - - Source Files\FT_MODULES + + Source Files - - Source Files\FT_MODULES + + Source Files - - Source Files\FT_MODULES + + Source Files - - Source Files\FT_MODULES + + Source Files - - Source Files\FT_MODULES + + Source Files - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES - + Source Files\FT_MODULES diff --git a/modules/freetype2/builds/windows/vc2010/index.html b/modules/freetype2/builds/windows/vc2010/index.html index 2b47a0092..c3e604034 100644 --- a/modules/freetype2/builds/windows/vc2010/index.html +++ b/modules/freetype2/builds/windows/vc2010/index.html @@ -1,45 +1,29 @@

    - FreeType 2 Project Files for VS.NET 2010 or newer + FreeType 2 Project Files for Visual C++ 2010 or newer

    - FreeType 2 Project Files for VS.NET 2010 or newer + FreeType 2 Project Files for Visual C++ 2010 or newer

    -

    This directory contains a project file for Visual C++ (VS.NET 2010 -or newer), named freetype.vcxproj, and Visual Studio, called -freetype.sln. It compiles the following libraries from the -FreeType 2.7.1 sources:

    +

    This directory contains solution and project files for +Visual C++ 2010 or newer, named freetype.sln, +and freetype.vcxproj. It compiles the following libraries +from the FreeType 2.9.1 sources:

      -
      -    freetype271.lib    - release build
      -    freetype271d.lib   - debug build
      -    freetype271ST.lib  - release build; single threaded
      -    freetype271STd.lib - debug build;   single threaded
      -    freetype271MT.lib  - release build; multi-threaded
      -    freetype271MTd.lib - debug build;   multi-threaded
      +
    • freetype.dll using 'Release' or 'Debug' configurations
    • +
    • freetype.lib using 'Release Static' or 'Debug Static' configurations
    -

    Both Win32 and x64 builds are supported.

    - -

    Be sure to extract the files with the Windows (CR+LF) line endings. ZIP -archives are already stored this way, so no further action is required. If -you use some .tar.*z archives, be sure to configure your extracting -tool to convert the line endings. For example, with WinZip, you should activate the TAR -file smart CR/LF Conversion option. Alternatively, you may consider -using the unix2dos or u2d utilities that are floating -around, which specifically deal with this particular problem. - -

    Build directories are placed in the top-level objs\vc2010 -directory.

    +

    Both Win32 and x64 builds are supported. Build directories and target +files are placed in the top-level objs directory.

    Customization of the FreeType library is done by editing the -ftoptions.h header file in the top-level devel path. +ftoption.h header file in the top-level devel path. Alternatively, you may copy the file to another directory and change the include directory in freetype.users.props.

    @@ -48,5 +32,9 @@ edit the freetype.users.props file in this directory. It also simplifies automated (command-line) builds using msbuild.

    +

    To link your executable with FreeType DLL, you may want to define +FT2_DLLIMPORT so that the imported functions are appropriately +attributed with dllimport.

    + diff --git a/modules/freetype2/builds/windows/visualc/freetype.dsp b/modules/freetype2/builds/windows/visualc/freetype.dsp index f6eeeb368..dac3d25c4 100644 --- a/modules/freetype2/builds/windows/visualc/freetype.dsp +++ b/modules/freetype2/builds/windows/visualc/freetype.dsp @@ -54,7 +54,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype291.lib" !ELSEIF "$(CFG)" == "freetype - Win32 Debug" @@ -78,7 +78,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271_D.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype291_D.lib" !ELSEIF "$(CFG)" == "freetype - Win32 Debug Multithreaded" @@ -102,8 +102,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"lib\freetype271_D.lib" -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271MT_D.lib" +# ADD BASE LIB32 /nologo /out:"lib\freetype291_D.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype291MT_D.lib" !ELSEIF "$(CFG)" == "freetype - Win32 Release Multithreaded" @@ -126,8 +126,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"lib\freetype271.lib" -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271MT.lib" +# ADD BASE LIB32 /nologo /out:"lib\freetype291.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype291MT.lib" !ELSEIF "$(CFG)" == "freetype - Win32 Release Singlethreaded" @@ -151,8 +151,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype271.lib" -# ADD LIB32 /out:"..\..\..\objs\freetype271ST.lib" +# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype291.lib" +# ADD LIB32 /out:"..\..\..\objs\freetype291ST.lib" # SUBTRACT LIB32 /nologo !ELSEIF "$(CFG)" == "freetype - Win32 Debug Singlethreaded" @@ -177,8 +177,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype271_D.lib" -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271ST_D.lib" +# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype291_D.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype291ST_D.lib" !ENDIF @@ -200,17 +200,14 @@ SOURCE=..\..\..\src\autofit\autofit.c # Begin Source File SOURCE=..\..\..\src\bdf\bdf.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\cff\cff.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\base\ftbase.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File @@ -226,7 +223,11 @@ SOURCE=..\..\..\src\base\ftbitmap.c # End Source File # Begin Source File -SOURCE=..\..\..\src\base\ftfntfmt.c +SOURCE=..\..\..\src\base\ftcid.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\src\base\ftpatent.c # End Source File # Begin Source File @@ -239,18 +240,15 @@ SOURCE=..\..\..\src\base\ftgasp.c # Begin Source File SOURCE=..\..\..\src\cache\ftcache.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\ftdebug.c # ADD CPP /Ze -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\base\ftglyph.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File @@ -263,7 +261,6 @@ SOURCE=..\..\..\src\gzip\ftgzip.c # Begin Source File SOURCE=..\..\..\src\base\ftinit.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File @@ -272,7 +269,6 @@ SOURCE=..\..\..\src\lzw\ftlzw.c # Begin Source File SOURCE=..\..\..\src\base\ftmm.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File @@ -293,7 +289,6 @@ SOURCE=..\..\..\src\base\ftsynth.c # Begin Source File SOURCE=..\..\..\src\base\ftsystem.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File @@ -306,7 +301,6 @@ SOURCE=..\..\..\src\base\ftwinfnt.c # Begin Source File SOURCE=..\..\..\src\pcf\pcf.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File @@ -315,57 +309,46 @@ SOURCE=..\..\..\src\pfr\pfr.c # Begin Source File SOURCE=..\..\..\src\psaux\psaux.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\pshinter\pshinter.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\psnames\psmodule.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\raster\raster.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\sfnt\sfnt.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\smooth\smooth.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\truetype\truetype.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\type1\type1.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\cid\type1cid.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\type42\type42.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\winfonts\winfnt.c -# SUBTRACT CPP /Fr # End Source File # End Group # Begin Group "Header Files" diff --git a/modules/freetype2/builds/windows/visualc/freetype.vcproj b/modules/freetype2/builds/windows/visualc/freetype.vcproj index 69c084cce..dd0c41801 100644 --- a/modules/freetype2/builds/windows/visualc/freetype.vcproj +++ b/modules/freetype2/builds/windows/visualc/freetype.vcproj @@ -69,7 +69,7 @@ /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - @@ -825,270 +510,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - @@ -1341,806 +585,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/modules/freetype2/builds/windows/visualc/index.html b/modules/freetype2/builds/windows/visualc/index.html index a2be3af69..c0611d2f8 100644 --- a/modules/freetype2/builds/windows/visualc/index.html +++ b/modules/freetype2/builds/windows/visualc/index.html @@ -11,14 +11,14 @@

    This directory contains project files for Visual C++, named freetype.dsp, and Visual Studio, called freetype.sln. It -compiles the following libraries from the FreeType 2.7.1 sources:

    +compiles the following libraries from the FreeType 2.9.1 sources:

      -    freetype271.lib     - release build; single threaded
      -    freetype271_D.lib   - debug build;   single threaded
      -    freetype271MT.lib   - release build; multi-threaded
      -    freetype271MT_D.lib - debug build;   multi-threaded
      + freetype291.lib - release build; single threaded + freetype291_D.lib - debug build; single threaded + freetype291MT.lib - release build; multi-threaded + freetype291MT_D.lib - debug build; multi-threaded

    Be sure to extract the files with the Windows (CR+LF) line endings. ZIP diff --git a/modules/freetype2/builds/windows/visualce/freetype.dsp b/modules/freetype2/builds/windows/visualce/freetype.dsp index f6eeeb368..5fe2b5a97 100644 --- a/modules/freetype2/builds/windows/visualce/freetype.dsp +++ b/modules/freetype2/builds/windows/visualce/freetype.dsp @@ -54,7 +54,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype291.lib" !ELSEIF "$(CFG)" == "freetype - Win32 Debug" @@ -78,7 +78,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271_D.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype291_D.lib" !ELSEIF "$(CFG)" == "freetype - Win32 Debug Multithreaded" @@ -102,8 +102,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"lib\freetype271_D.lib" -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271MT_D.lib" +# ADD BASE LIB32 /nologo /out:"lib\freetype291_D.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype291MT_D.lib" !ELSEIF "$(CFG)" == "freetype - Win32 Release Multithreaded" @@ -126,8 +126,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"lib\freetype271.lib" -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271MT.lib" +# ADD BASE LIB32 /nologo /out:"lib\freetype291.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype291MT.lib" !ELSEIF "$(CFG)" == "freetype - Win32 Release Singlethreaded" @@ -151,8 +151,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype271.lib" -# ADD LIB32 /out:"..\..\..\objs\freetype271ST.lib" +# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype291.lib" +# ADD LIB32 /out:"..\..\..\objs\freetype291ST.lib" # SUBTRACT LIB32 /nologo !ELSEIF "$(CFG)" == "freetype - Win32 Debug Singlethreaded" @@ -177,8 +177,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype271_D.lib" -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271ST_D.lib" +# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype291_D.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype291ST_D.lib" !ENDIF @@ -200,17 +200,14 @@ SOURCE=..\..\..\src\autofit\autofit.c # Begin Source File SOURCE=..\..\..\src\bdf\bdf.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\cff\cff.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\base\ftbase.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File @@ -226,7 +223,7 @@ SOURCE=..\..\..\src\base\ftbitmap.c # End Source File # Begin Source File -SOURCE=..\..\..\src\base\ftfntfmt.c +SOURCE=..\..\..\src\base\ftcid.c # End Source File # Begin Source File @@ -239,18 +236,15 @@ SOURCE=..\..\..\src\base\ftgasp.c # Begin Source File SOURCE=..\..\..\src\cache\ftcache.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\ftdebug.c # ADD CPP /Ze -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\base\ftglyph.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File @@ -263,7 +257,6 @@ SOURCE=..\..\..\src\gzip\ftgzip.c # Begin Source File SOURCE=..\..\..\src\base\ftinit.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File @@ -272,7 +265,6 @@ SOURCE=..\..\..\src\lzw\ftlzw.c # Begin Source File SOURCE=..\..\..\src\base\ftmm.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File @@ -280,6 +272,10 @@ SOURCE=..\..\..\src\base\ftotval.c # End Source File # Begin Source File +SOURCE=..\..\..\src\base\ftpatent.c +# End Source File +# Begin Source File + SOURCE=..\..\..\src\base\ftpfr.c # End Source File # Begin Source File @@ -293,7 +289,6 @@ SOURCE=..\..\..\src\base\ftsynth.c # Begin Source File SOURCE=..\..\..\src\base\ftsystem.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File @@ -306,7 +301,6 @@ SOURCE=..\..\..\src\base\ftwinfnt.c # Begin Source File SOURCE=..\..\..\src\pcf\pcf.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File @@ -315,57 +309,46 @@ SOURCE=..\..\..\src\pfr\pfr.c # Begin Source File SOURCE=..\..\..\src\psaux\psaux.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\pshinter\pshinter.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\psnames\psmodule.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\raster\raster.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\sfnt\sfnt.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\smooth\smooth.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\truetype\truetype.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\type1\type1.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\cid\type1cid.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\type42\type42.c -# SUBTRACT CPP /Fr # End Source File # Begin Source File SOURCE=..\..\..\src\winfonts\winfnt.c -# SUBTRACT CPP /Fr # End Source File # End Group # Begin Group "Header Files" diff --git a/modules/freetype2/builds/windows/visualce/freetype.vcproj b/modules/freetype2/builds/windows/visualce/freetype.vcproj index 55c874df8..b79731175 100644 --- a/modules/freetype2/builds/windows/visualce/freetype.vcproj +++ b/modules/freetype2/builds/windows/visualce/freetype.vcproj @@ -87,7 +87,7 @@ /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -8727,5126 +3615,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/modules/freetype2/builds/windows/visualce/index.html b/modules/freetype2/builds/windows/visualce/index.html index 80c15bf77..d5a3ca3e3 100644 --- a/modules/freetype2/builds/windows/visualce/index.html +++ b/modules/freetype2/builds/windows/visualce/index.html @@ -21,14 +21,14 @@ the following targets:

  • PPC/SP WM6 (Windows Mobile 6)
  • -It compiles the following libraries from the FreeType 2.7.1 sources:

    +It compiles the following libraries from the FreeType 2.9.1 sources:

      -    freetype271.lib     - release build; single threaded
      -    freetype271_D.lib   - debug build;   single threaded
      -    freetype271MT.lib   - release build; multi-threaded
      -    freetype271MT_D.lib - debug build;   multi-threaded
      + freetype291.lib - release build; single threaded + freetype291_D.lib - debug build; single threaded + freetype291MT.lib - release build; multi-threaded + freetype291MT_D.lib - debug build; multi-threaded

    Be sure to extract the files with the Windows (CR+LF) line endings. ZIP diff --git a/modules/freetype2/builds/windows/w32-bcc.mk b/modules/freetype2/builds/windows/w32-bcc.mk index 269262227..01aab1ce0 100644 --- a/modules/freetype2/builds/windows/w32-bcc.mk +++ b/modules/freetype2/builds/windows/w32-bcc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/windows/w32-bccd.mk b/modules/freetype2/builds/windows/w32-bccd.mk index 2e52672a6..2c14d6c8c 100644 --- a/modules/freetype2/builds/windows/w32-bccd.mk +++ b/modules/freetype2/builds/windows/w32-bccd.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/windows/w32-dev.mk b/modules/freetype2/builds/windows/w32-dev.mk index 8ddbfb0ed..279d5f9a0 100644 --- a/modules/freetype2/builds/windows/w32-dev.mk +++ b/modules/freetype2/builds/windows/w32-dev.mk @@ -5,7 +5,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/windows/w32-gcc.mk b/modules/freetype2/builds/windows/w32-gcc.mk index 04097d286..9e3476b94 100644 --- a/modules/freetype2/builds/windows/w32-gcc.mk +++ b/modules/freetype2/builds/windows/w32-gcc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/windows/w32-icc.mk b/modules/freetype2/builds/windows/w32-icc.mk index 66a4dcbc6..e695c1214 100644 --- a/modules/freetype2/builds/windows/w32-icc.mk +++ b/modules/freetype2/builds/windows/w32-icc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/windows/w32-intl.mk b/modules/freetype2/builds/windows/w32-intl.mk index 14ee7edf9..1e36662d6 100644 --- a/modules/freetype2/builds/windows/w32-intl.mk +++ b/modules/freetype2/builds/windows/w32-intl.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/windows/w32-lcc.mk b/modules/freetype2/builds/windows/w32-lcc.mk index 687c87fef..5729d36c1 100644 --- a/modules/freetype2/builds/windows/w32-lcc.mk +++ b/modules/freetype2/builds/windows/w32-lcc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/windows/w32-mingw32.mk b/modules/freetype2/builds/windows/w32-mingw32.mk index 03963b326..b3a210df2 100644 --- a/modules/freetype2/builds/windows/w32-mingw32.mk +++ b/modules/freetype2/builds/windows/w32-mingw32.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/windows/w32-vcc.mk b/modules/freetype2/builds/windows/w32-vcc.mk index 68370e6a7..342c8aa6d 100644 --- a/modules/freetype2/builds/windows/w32-vcc.mk +++ b/modules/freetype2/builds/windows/w32-vcc.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/windows/w32-wat.mk b/modules/freetype2/builds/windows/w32-wat.mk index 01d6a9bcc..37ecc8880 100644 --- a/modules/freetype2/builds/windows/w32-wat.mk +++ b/modules/freetype2/builds/windows/w32-wat.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/builds/windows/win32-def.mk b/modules/freetype2/builds/windows/win32-def.mk index 6fd972fe1..f83d444ff 100644 --- a/modules/freetype2/builds/windows/win32-def.mk +++ b/modules/freetype2/builds/windows/win32-def.mk @@ -3,7 +3,7 @@ # -# Copyright 1996-2016 by +# Copyright 1996-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/modules/freetype2/configure b/modules/freetype2/configure index 9a09a4271..f9d218667 100755 --- a/modules/freetype2/configure +++ b/modules/freetype2/configure @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2002-2016 by +# Copyright 2002-2018 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, @@ -15,7 +15,7 @@ rm -f config.mk builds/unix/unix-def.mk builds/unix/unix-cc.mk -# respect GNUMAKE environment variable for backwards compatibility +# respect GNUMAKE environment variable for backward compatibility if test "x$GNUMAKE" = x; then if test "x$MAKE" = x; then if test "x`make -v 2>/dev/null | egrep 'GNU|makepp'`" = x; then @@ -29,7 +29,7 @@ else fi if test "x`$MAKE -v 2>/dev/null | egrep 'GNU|makepp'`" = x; then - echo "GNU make (>= 3.80) or makepp (>= 1.19) is required to build FreeType2." >&2 + echo "GNU make (>= 3.81) or makepp (>= 2.0) is required to build FreeType2." >&2 echo "Please try" >&2 echo >&2 echo " MAKE= $0" >&2 diff --git a/modules/freetype2/devel/ft2build.h b/modules/freetype2/devel/ft2build.h index d055f51a2..1d17141b2 100644 --- a/modules/freetype2/devel/ft2build.h +++ b/modules/freetype2/devel/ft2build.h @@ -4,7 +4,7 @@ /* */ /* FreeType 2 build and setup macros (development version). */ /* */ -/* Copyright 1996-2016 by */ +/* Copyright 1996-2018 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/modules/freetype2/devel/ftoption.h b/modules/freetype2/devel/ftoption.h index b742ed88f..1b4619eb0 100644 --- a/modules/freetype2/devel/ftoption.h +++ b/modules/freetype2/devel/ftoption.h @@ -4,7 +4,7 @@ /* */ /* User-selectable configuration macros (specification only). */ /* */ -/* Copyright 1996-2016 by */ +/* Copyright 1996-2018 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -82,8 +82,8 @@ FT_BEGIN_HEADER /* to control the various font drivers and modules. The controllable */ /* properties are listed in the section `Controlling FreeType Modules' */ /* in the reference's table of contents; currently there are properties */ - /* for the auto-hinter (file `ftautoh.h'), CFF (file `ftcffdrv.h'), and */ - /* TrueType (file `ftttdrv.h'). */ + /* for the auto-hinter (file `ftautoh.h'), CFF (file `ftcffdrv.h'), */ + /* TrueType (file `ftttdrv.h'), and PCF (file `ftpcfdrv.h'). */ /* */ /* `FREETYPE_PROPERTIES' has the following syntax form (broken here into */ /* multiple lines for better readability). */ @@ -107,22 +107,19 @@ FT_BEGIN_HEADER /*************************************************************************/ /* */ - /* Uncomment the line below if you want to activate sub-pixel rendering */ - /* (a.k.a. LCD rendering, or ClearType) in this build of the library. */ + /* Uncomment the line below if you want to activate LCD rendering */ + /* technology similar to ClearType in this build of the library. This */ + /* technology triples the resolution in the direction color subpixels. */ + /* To mitigate color fringes inherent to this technology, you also need */ + /* to explicitly set up LCD filtering. */ /* */ /* Note that this feature is covered by several Microsoft patents */ /* and should not be activated in any default build of the library. */ + /* When this macro is not defined, FreeType offers alternative LCD */ + /* rendering technology that produces excellent output without LCD */ + /* filtering. */ /* */ - /* This macro has no impact on the FreeType API, only on its */ - /* _implementation_. For example, using FT_RENDER_MODE_LCD when calling */ - /* FT_Render_Glyph still generates a bitmap that is 3 times wider than */ - /* the original size in case this macro isn't defined; however, each */ - /* triplet of subpixels has R=G=B. */ - /* */ - /* This is done to allow FreeType clients to run unmodified, forcing */ - /* them to display normal gray-level anti-aliased glyphs. */ - /* */ -#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING +/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ /*************************************************************************/ @@ -271,48 +268,6 @@ FT_BEGIN_HEADER #define FT_CONFIG_OPTION_USE_HARFBUZZ - /*************************************************************************/ - /* */ - /* DLL export compilation */ - /* */ - /* When compiling FreeType as a DLL, some systems/compilers need a */ - /* special keyword in front OR after the return type of function */ - /* declarations. */ - /* */ - /* Two macros are used within the FreeType source code to define */ - /* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */ - /* */ - /* FT_EXPORT( return_type ) */ - /* */ - /* is used in a function declaration, as in */ - /* */ - /* FT_EXPORT( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ); */ - /* */ - /* */ - /* FT_EXPORT_DEF( return_type ) */ - /* */ - /* is used in a function definition, as in */ - /* */ - /* FT_EXPORT_DEF( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ) */ - /* { */ - /* ... some code ... */ - /* return FT_Err_Ok; */ - /* } */ - /* */ - /* You can provide your own implementation of FT_EXPORT and */ - /* FT_EXPORT_DEF here if you want. If you leave them undefined, they */ - /* will be later automatically defined as `extern return_type' to */ - /* allow normal compilation. */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_EXPORT(x) extern x */ -/* #define FT_EXPORT_DEF(x) x */ - - /*************************************************************************/ /* */ /* Glyph Postscript Names handling */ @@ -327,7 +282,7 @@ FT_BEGIN_HEADER /* */ /* - The TrueType driver will provide its own set of glyph names, */ /* if you build it to support postscript names in the TrueType */ - /* `post' table. */ + /* `post' table, but will not synthesize a missing Unicode charmap. */ /* */ /* - The Type 1 driver will not be able to synthesize a Unicode */ /* charmap out of the glyphs found in the fonts. */ @@ -672,7 +627,7 @@ FT_BEGIN_HEADER /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be */ /* defined. */ /* */ - /* [1] http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */ + /* [1] https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */ /* */ /* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 1 */ /* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2 */ @@ -692,7 +647,7 @@ FT_BEGIN_HEADER /* composite flags array which can be used to disambiguate, but old */ /* fonts will not have them. */ /* */ - /* http://www.microsoft.com/typography/otspec/glyf.htm */ + /* https://www.microsoft.com/typography/otspec/glyf.htm */ /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html */ /* */ #undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED @@ -789,6 +744,16 @@ FT_BEGIN_HEADER #undef T1_CONFIG_OPTION_NO_MM_SUPPORT + /*************************************************************************/ + /* */ + /* T1_CONFIG_OPTION_OLD_ENGINE controls whether the pre-Adobe Type 1 */ + /* engine gets compiled into FreeType. If defined, it is possible to */ + /* switch between the two engines using the `hinting-engine' property of */ + /* the type1 driver module. */ + /* */ +#define T1_CONFIG_OPTION_OLD_ENGINE + + /*************************************************************************/ /*************************************************************************/ /**** ****/ @@ -832,6 +797,33 @@ FT_BEGIN_HEADER #define CFF_CONFIG_OPTION_OLD_ENGINE + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** P C F D R I V E R C O N F I G U R A T I O N ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + + + /*************************************************************************/ + /* */ + /* There are many PCF fonts just called `Fixed' which look completely */ + /* different, and which have nothing to do with each other. When */ + /* selecting `Fixed' in KDE or Gnome one gets results that appear rather */ + /* random, the style changes often if one changes the size and one */ + /* cannot select some fonts at all. This option makes the PCF module */ + /* prepend the foundry name (plus a space) to the family name. */ + /* */ + /* We also check whether we have `wide' characters; all put together, we */ + /* get family names like `Sony Fixed' or `Misc Fixed Wide'. */ + /* */ + /* If this option is activated, it can be controlled with the */ + /* `no-long-family-names' property of the pcf driver module. */ + /* */ +#define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES + + /*************************************************************************/ /*************************************************************************/ /**** ****/ @@ -886,6 +878,7 @@ FT_BEGIN_HEADER #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER #define TT_USE_BYTECODE_INTERPRETER +#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING #if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 1 #define TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY #endif @@ -893,6 +886,7 @@ FT_BEGIN_HEADER #if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 2 #define TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL #endif +#endif #endif diff --git a/modules/freetype2/docs/CHANGES b/modules/freetype2/docs/CHANGES index dccdb6e28..a6d088af4 100644 --- a/modules/freetype2/docs/CHANGES +++ b/modules/freetype2/docs/CHANGES @@ -1,3 +1,344 @@ +CHANGES BETWEEN 2.9 and 2.9.1 + + I. IMPORTANT BUG FIXES + + - Type 1 fonts containing flex features were not rendered + correctly (bug introduced in version 2.9). + + - CVE-2018-6942: Older FreeType versions can crash with certain + malformed variation fonts. + + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6942 + + + II. MISCELLANEOUS + + - Bug fix: Multiple calls to `FT_Get_MM_Var' returned garbage. + + - The base extensions `ftlcdfil' and `ftfntfmt' are now part of + the base module (and thus no longer configurable in file + `modules.cfg'). + + - Emboldening of bitmaps didn't work correctly sometimes, showing + various artifacts (bug introduced in version 2.8.1). + + - Use of the `freetype-config' script to get compilation and + linking options is deprecated since it doesn't support + cross-compiling, among other deficiencies. Instead, you should + use the `pkg-config' interface. + + The `configure' script no longer installs `freetype-config' by + default. For backwards compatibility, a new configure option + `--enable-freetype-config' is provided that reverts this + decision. + + - The auto-hinter script ranges have been updated for Unicode 11. + No support for new scripts have been added, however, with the + exception of Georgian Mtavruli. + + - Support for cmake has been improved. + + - The next release will remove support for Position Independent + Code as needed by systems that prohibit automatic address + fixups, such as BREW. [Compilation with modern compilers that + use flags like `-fPIC' or `-fPIE' is not affected.] + + +====================================================================== + +CHANGES BETWEEN 2.8.1 and 2.9 + + I. IMPORTANT BUG FIXES + + - Advance width values of variation fonts were often wrong. + + - More fixes for variation font support; you should update to this + version if you want to support them. + + + II. IMPORTANT CHANGES + + - As a GSoC project, Ewald Hew extended the new (Adobe) CFF engine + to handle Type 1 fonts also, thus greatly improving the + rendering of this format. This is the new default. The old + engine is still available if the configuration macro + `T1_CONFIG_OPTION_OLD_ENGINE' gets defined; using the + `hinting-engine' property of the `type1' driver module you can + then switch between the two engines. + + - A new function, `FT_Set_Named_Instance', can be used to set or + change the current named instance. + + - Starting with this FreeType version, resetting variation + coordinates will return to the currently selected named + instance. Previously, FreeType returned to the base font (i.e., + no instance set). + + + III. MISCELLANEOUS + + - The `face_flags' field of the `FT_Face' structure has a new bit, + `FT_FACE_FLAG_VARIATION', which is set if a variation font has + been altered with `FT_Set_MM_Design_Coordinates', + `FT_Set_Var_Design_Coordinates', or + `FT_Set_Var_Blend_Coordinates'. + + - If the current face is a named instance, the new macro + `FT_IS_NAMED_INSTANCE' returns true. + + - `FT_IS_VARIATION' is a new macro that returns true whenever a + face object has been altered by `FT_Set_MM_Design_Coordinates', + `FT_Set_Var_Design_Coordinates', or + `FT_Set_Var_Blend_Coordinates'. + + - Changing the design coordinates of a variation font with + `FT_Set_Var_Design_Coordinates' or + `FT_Set_Var_Blend_Coordinates' does not influence the named + instance index value (only `FT_Set_Named_Instance' does that). + + - Special PostScript names for named instances are only returned + if the named instance is set with `FT_Set_Named_Instance' (and + the font has corresponding entries in its `fvar' table). If + `FT_IS_VARIATION' returns true, the algorithmically derived + PostScript name is provided, not looking up special entries for + named instances. + + - A new function `FT_Done_MM_Var' is provided to free the memory + returned in a call to `FT_Get_MM_Var'. + + - On platforms using the `configure' script, the installed + `ftoption.h' file now correctly reflects configuration options + like `--with-harfbuzz'. + + - Better support to build FreeType as a DLL on Windows using + Visual C. + + - All data specific to driver modules is now collected in a single + file, `FT_DRIVER_H'. Consequently, the macros + `FT_AUTOHINTER_H', `FT_CFF_DRIVER_H', `FT_TRUETYPE_DRIVER_H', + and `FT_PCF_DRIVER_H' still work but are deprecated. + + - Some fuzzer fixes to better reject malformed fonts. + + - The `ftbench' demo program has a new test for opening a new face + and loading some glyphs. + + - The `ftbench' demo program has a new option `-j' to specify the + last glyph index to be used in the tests. + + - The `ftgrid' demo program has a new option `-n' to suppress + display of named instances of variation fonts. + + - The `ttdebug' demo program can now show a stack trace (key `K') + and switch between hexadecimal and decimal display of integers + (key `I'). + + +====================================================================== + +CHANGES BETWEEN 2.8 and 2.8.1 + + I. IMPORTANT BUG FIXES + + - B/W hinting of TrueType fonts didn't work properly if + interpreter version 38 or 40 was selected. + + - Some severe problems within the handling of TrueType Variation + Fonts were found and fixed. + + - Function `FT_Set_Var_Design_Coordinates' didn't correctly handle + the case with less input coordinates than axes. + + + II. IMPORTANT CHANGES + + - By default, FreeType now offers high quality LCD-optimized + output without resorting to ClearType techniques of resolution + tripling and filtering. In this method, called Harmony, each + color channel is generated separately after shifting the glyph + outline, capitalizing on the fact that the color grids on LCD + panels are shifted by a third of a pixel. This output is + indistinguishable from ClearType with a light 3-tap filter. + + + III. MISCELLANEOUS + + - Using the new function `FT_Get_Var_Axis_Flags', an application + can access the `flags' field of a variation axis (introduced in + OpenType version 1.8.2) + + - More sanity checks. + + - The internal representation of buffers for LCD rendering has + changed (to be more precise, the amount of padding gets computed + differently). Applications that use the FreeType API are not + affected. + + - To reset all design axis values of a variation font to its + default values you can now say + + error = FT_Set_Var_Design_Coordinates( face, 0, NULL ); + + This also works with functions `FT_Set_MM_Design_Coordinates' + and `FT_Set_MM_Blend_Coordinates'. + + - FreeType now synthesizes a missing Unicode cmap for (older) + TrueType fonts also if glyph names are available. + + - FreeType has improved handling of BDF fonts without the + `POINT_SIZE', `RESOLUTION_X', or `RESOLUTION_Y' properties; the + library now uses the values of the `SIZE' keyword if they are + missing. Previously, `SIZE' was completely ignored, and + FreeType used heuristic values instead. + + - Multiple calls to `FT_Bitmap_Convert' do work now as advertised. + Previously, they failed with an assertion error if there was an + empty bitmap between non-empty ones. + + - The warping option has moved from `light' to `normal' hinting + where it replaces the original hinting algorithm. The `light' + mode is now always void of any hinting in x-direction. + + - 16bit compiler support is now officially ended. We didn't + provide any maintenance since many years, and given that there + were no error or problem reports either it seems that it is no + longer needed. + + - The `ftgrid' demo program can now toggle the display of grid + lines with the `G' key. + + - The `ftgrid' demo program can toggle a different set of colors + (suitable to color-blind people) with the `C' key. + + - The `ftgrid' demo program now supports the `-e' command line + option to select a cmap. + + - The `ftdump' demo program has a new command line option `-t' to + output the SFNT table list. + + +====================================================================== + +CHANGES BETWEEN 2.7.1 and 2.8 + + I. IMPORTANT CHANGES + + - Support for OpenType Variation Fonts is now complete. The last + missing part was handling the `VVAR' and `MVAR' tables, which is + available with this release. + + - A new function `FT_Face_Properties' allows the control of some + module and library properties per font. Currently, the + following properties can be handled: stem darkening, LCD filter + weights, and the random seed for the `random' CFF operator. + + - The PCF change to show more `colourful' family names (introduced + in version 2.7.1) was too radical; it can now be configured with + PCF_CONFIG_OPTION_LONG_FAMILY_NAMES at compile time. If + activated, it can be switched off at run time with the new pcf + property `no-long-family-names'. If the `FREETYPE_PROPERTIES' + environment variable is available, you can say + + FREETYPE_PROPERTIES=pcf:no-long-family-names=1 + + - Support for the following scripts has been added to the + auto-hinter. + + Adlam, Avestan, Bamum, Buhid, Carian, Chakma, Coptic, Cypriot, + Deseret, Glagolitic, Gothic, Kayah, Lisu, N'Ko, Ol Chiki, Old + Turkic, Osage, Osmanya, Saurashtra, Shavian, Sundanese, Tai + Viet, Tifinagh, Unified Canadian Syllabics, Vai + + + II. IMPORTANT BUG FIXES + + - `Light' auto-hinting mode no longer uses TrueType metrics for + TrueType fonts. This bug was introduced in version 2.4.6, + causing horizontal scaling also. Almost all GNU/Linux + distributions (with Fedora as a notable exception) disabled the + corresponding patch for good reasons; chances are thus high that + you won't notice a difference. + + If optical backward compatibility for legacy applications is + necessary, you might enable the AF_CONFIG_OPTION_TT_SIZE_METRICS + configuration option. However, it is strongly recommended to + avoid that, adjusting font sizes instead. + + - Global size metrics values in the `FT_Size_Metrics' structure + can be different for TrueType fonts. Reason is that in older + FreeType versions the metrics were rounded differently to + integer pixels compared to all other font formats, yielding an + inconsistent behaviour if you used non-native hinting. Starting + with this version, global size metrics for TrueType fonts are + handled the same as other font formats: `ascender' gets rounded + up, `descender' gets rounded down, `height' gets normally + rounded, and `max_advance' gets normally rounded, too. + + If you need more precise values of (global) ascender, descender, + height, or `max_advance', please take the corresponding values + from the `FT_Face' structure and scale them manually. + + - If a TrueType font gets loaded with FT_LOAD_NO_HINTING, FreeType + now scales the font linearly again (bug introduced in version + 2.4.6). + + - CVE-2017-8105, CVE-2017-8287: Older FreeType versions have + out-of-bounds writes caused by heap-based buffer overflows + related to Type 1 fonts. + + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8105 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8287 + + + III. MISCELLANEOUS + + - A new function `FT_Set_Default_Properties' has been added to + parse the `FREETYPE_PROPERTIES' environment variable + (previously, it was internal only). `FT_Init_FreeType' always + call this function, but `FT_New_Library' does not (similar to + `FT_Add_Default_Modules'). + + - To be in sync with OpenType version 1.7 and newer, macros + + FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY, + FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY, + TT_NAME_ID_PREFERRED_FAMILY + TT_NAME_ID_PREFERRED_SUBFAMILY + + are renamed to + + FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY, + FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY, + TT_NAME_ID_TYPOGRAPHIC_FAMILY + TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY + + The old macro names are deprecated (but still available). + + - Support for SFNT `name' tables has been improved. + + . Format 1 `name' tables are now supported. Use new function + `FT_Get_Sfnt_LangTag' to access associated language tags. + + . Language, encoding, and name IDs have been updated to OpenType + version 1.8.1. + + - The new CFF engine now handles the `random' operator. All CFF + opcodes are now supported. + + - The CFF module has a new property `random-seed' to control the + pseudo-random number generation for the `random' operator. + + - The `freetype-config' script is now a wrapper of `pkg-config' if + this program is available in the path. + + - FT_LOAD_TARGET_LCD is now a variant of FT_LOAD_TARGET_LIGHT; + this should provide better rendering results. + + - A mode to display light auto-hinting with subpixel positioning + has been added to `ftdiff'. + + +====================================================================== CHANGES BETWEEN 2.7 and 2.7.1 @@ -18,6 +359,12 @@ CHANGES BETWEEN 2.7 and 2.7.1 - Handling of raw CID fonts was partially broken (bug introduced in 2.6.4). + - CVE-2016-10328: Older FreeType versions had an out-of-bounds + write caused by a heap-based buffer overflow related to the CFF + fonts. + + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10328 + III. MISCELLANEOUS @@ -195,7 +542,7 @@ CHANGES BETWEEN 2.6.3 and 2.6.4 - Type 42 fonts as created by LilyPond are now supported. - - Minor rendering improvments in the auto-hinter. + - Minor rendering improvements in the auto-hinter. - For experimental reasons, the old CFF engine now supports all CFF operators except `random', including the deprecated Multiple @@ -240,7 +587,7 @@ CHANGES BETWEEN 2.6.2 and 2.6.3 to the user. The exception to this is `__FTERRORS_H__', which must be sometimes undefined by the user to get FreeType error strings: Both this form and the new `FTERRORS_H_' macro are - accepted for backwards compatibility. + accepted for backward compatibility. - Minor improvements mainly to the Type 1 driver. @@ -317,8 +664,8 @@ CHANGES BETWEEN 2.6.1 and 2.6.2 - The smooth renderer has been made faster. - - The `ftstring' demo program now supports sub-pixel rendering; - use key `l' to cycle through the LCD modes. + - The `ftstring' demo program now supports subpixel rendering; use + key `l' to cycle through the LCD modes. - The `ftstring' demo program now supports colour rendering; use the `space' key to cycle through various colour combinations. @@ -481,17 +828,17 @@ CHANGES BETWEEN 2.5.5 and 2.6 compiler warnings. - Function `FT_Bitmap_New' has been renamed to `FT_Bitmap_Init', - since this name better reflects its function. For backwards + since this name better reflects its function. For backward compatibility, the old function name is still available. - Function `FT_Get_X11_Font_Format' has been renamed to `FT_Get_Font_Format', since this name better reflects its - function. For backwards compatibility, the old function name is + function. For backward compatibility, the old function name is still available. Additionally, the header file macro for this function has been renamed to `FT_FONT_FORMATS_H' (the old name `FT_XFREE86_H' is - retained for backwards compatibility). + retained for backward compatibility). - Various improvements to the `ftgrid' demo program. @@ -531,7 +878,7 @@ CHANGES BETWEEN 2.5.3 and 2.5.4 I. IMPORTANT BUG FIXES - A variant of vulnerability CVE-2014-2240 was identified - (cf. http://savannah.nongnu.org/bugs/?43661) and fixed in the + (cf. https://savannah.nongnu.org/bugs/?43661) and fixed in the new CFF driver. All users should upgrade. - The new auto-hinter code using HarfBuzz crashed for some invalid @@ -602,7 +949,7 @@ CHANGES BETWEEN 2.5.2 and 2.5.3 I. IMPORTANT BUG FIXES - A vulnerability (CVE-2014-2240) was identified and fixed in the - new CFF driver (cf. http://savannah.nongnu.org/bugs/?41697). + new CFF driver (cf. https://savannah.nongnu.org/bugs/?41697). All users should upgrade. - More bug fixes related to correct positioning of composite @@ -635,7 +982,7 @@ CHANGES BETWEEN 2.5.2 and 2.5.3 and install FreeType again. With FreeType's `configure' script the procedure boils down to - configure, build, and install Freetype, then configure, compile, + configure, build, and install FreeType, then configure, compile, and install HarfBuzz, then configure, compile, and install FreeType again (after executing `make distclean'). @@ -925,7 +1272,7 @@ index ebcf189..3f2ce6b 100644 II. MISCELLANEOUS - The (top-level) `configure' script now respects the MAKE - environment variable to specify a `make' binary. For backwards + environment variable to specify a `make' binary. For backward compatibility, GNUMAKE still overrides MAKE, though. - The `ftview' and `ftdiff' demo programs have been redesigned, @@ -974,7 +1321,7 @@ CHANGES BETWEEN 2.4.10 and 2.4.11 - Subpixel hinting support has been contributed by Infinality, based on Greg Hitchcock's whitepaper at - http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx + https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx Originally, it was a separate patch available from @@ -1844,7 +2191,7 @@ CHANGES BETWEEN 2.3.0 and 2.2.1 of the library, mainly due to patent issues. For more information see: - http://lists.gnu.org/archive/html/freetype/2006-09/msg00064.html + https://lists.gnu.org/archive/html/freetype/2006-09/msg00064.html A new configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING has been introduced in `ftoption.h'; manually define it in this @@ -1947,7 +2294,7 @@ CHANGES BETWEEN 2.2 and 2.1.10 We provide patches for most of those rogue clients. See the following page for more information: - http://www.freetype.org/freetype2/patches/rogue-patches.html + https://www.freetype.org/freetype2/patches/rogue-patches.html Note that, as a convenience to our Unix desktop users, version 2.2 is *binary* compatible with FreeType 2.1.7, which means that @@ -2059,7 +2406,7 @@ CHANGES BETWEEN 2.2 and 2.1.10 - Rudimentary support for Adobe's new `SING Glyphlet' format. See - http://www.adobe.com/products/indesign/sing_gaiji.html + https://www.adobe.com/content/dam/acom/en/devnet/font/pdfs/5148.SING_Tutorial.pdf for more information. @@ -2144,7 +2491,7 @@ CHANGES BETWEEN 2.1.10 and 2.1.9 probably using a different pitch, and to further manipulate it. - A new API `FT_Outline_Embolden' (in FT_OUTLINE_H) gives finer - control how outlines are embolded. + control how outlines are emboldened. - `FT_GlyphSlot_Embolden' (in FT_SYNTHESIS_H) now handles bitmaps also (code contributed by Chia I Wu). Note that this function @@ -2263,7 +2610,7 @@ CHANGES BETWEEN 2.1.8 and 2.1.7 correctly treated as a CID, similar to FreeType's CID driver module. Note that CID CMap support is still missing. - - The FT_FACE_FLAGS_GLYPH_NAMES flag is now set correctly for all + - The FT_FACE_FLAG_GLYPH_NAMES flag is now set correctly for all font formats. - Some subsetted Type 1 fonts weren't parsed correctly. This bug @@ -2554,7 +2901,7 @@ CHANGES BETWEEN 2.1.5 and 2.1.4 - FT_ENCODING_MS_{SJIS,GB2312,BIG5,WANSUNG,JOHAB} are now deprecated in favour of - FT_ENCODING_{SJIS,GB2312,GIB5,WANSONG,JOHAB} -- those encodings + FT_ENCODING_{SJIS,GB2312,BIG5,WANSUNG,JOHAB} -- those encodings are not specific to Microsoft. @@ -2736,7 +3083,7 @@ CHANGES BETWEEN 2.1.3 and 2.1.2 quality since many nasty defaults have been suppressed. Please visit the web page: - http://www.freetype.org/hinting/smooth-hinting.html + https://www.freetype.org/hinting/smooth-hinting.html for additional details on this topic. @@ -2756,12 +3103,12 @@ CHANGES BETWEEN 2.1.3 and 2.1.2 FT_LOAD_TARGET_MONO :: Hint and render for 1-bit displays. FT_LOAD_TARGET_LCD :: Hint and render for horizontal RGB or - BGR sub-pixel displays (like LCD + BGR subpixel displays (like LCD screens). THIS IS STILL EXPERIMENTAL! FT_LOAD_TARGET_LCD_V :: Same as FT_LOAD_TARGET_LCD, for - vertical sub-pixel displays (like + vertical subpixel displays (like rotated LCD screens). THIS IS STILL EXPERIMENTAL! @@ -2995,7 +3342,7 @@ CHANGES BETWEEN 2.1.0 and 2.0.9 - The FreeType 2 redesign has begun. More information can be found at this URL: - http://www.freetype.org/freetype2/redesign.html + https://www.freetype.org/freetype2/redesign.html The following internal changes have been performed within the sources of this release: @@ -3586,13 +3933,7 @@ CHANGES BETWEEN 2.0.2 and 2.0.1 For more information, see section I of the following document: - http://www.freetype.org/ - freetype2/docs/tutorial/step1.html - - or - - http://freetype.sourceforge.net/ - freetype2/docs/tutorial/step1.html + https://www.freetype.org/freetype2/docs/tutorial/step1.html - Many, many comments have been added to the public source file in order to automatically generate the API Reference through the @@ -3601,7 +3942,7 @@ CHANGES BETWEEN 2.0.2 and 2.0.1 The latter has been updated to support the grouping of sections in chapters and better index sort. See: - http://www.freetype.org/freetype2/docs/reference/ft2-toc.html + https://www.freetype.org/freetype2/docs/reference/ft2-toc.html III. CHANGES TO THE BUILD PROCESS @@ -4676,7 +5017,7 @@ Extensions support: ------------------------------------------------------------------------ -Copyright 2000-2016 by +Copyright 2000-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/modules/freetype2/docs/CUSTOMIZE b/modules/freetype2/docs/CUSTOMIZE index e8817b72b..916be3275 100644 --- a/modules/freetype2/docs/CUSTOMIZE +++ b/modules/freetype2/docs/CUSTOMIZE @@ -139,7 +139,7 @@ IV. Overriding default configuration and module headers ---------------------------------------------------------------------- -Copyright 2003-2016 by +Copyright 2003-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/modules/freetype2/docs/DEBUG b/modules/freetype2/docs/DEBUG index 29e10721c..751eaf028 100644 --- a/modules/freetype2/docs/DEBUG +++ b/modules/freetype2/docs/DEBUG @@ -6,7 +6,7 @@ I. Configuration macros There are several ways to enable debugging features in a FreeType 2 builds. This is controlled through the definition of special macros -located in the file `ftoptions.h'. The macros are: +located in the file `ftoption.h'. The macros are: FT_DEBUG_LEVEL_ERROR @@ -191,7 +191,7 @@ behaviour of FreeType at runtime. ------------------------------------------------------------------------ -Copyright 2002-2016 by +Copyright 2002-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/modules/freetype2/docs/FTL.TXT b/modules/freetype2/docs/FTL.TXT index 433ab060e..c406d150f 100644 --- a/modules/freetype2/docs/FTL.TXT +++ b/modules/freetype2/docs/FTL.TXT @@ -163,7 +163,7 @@ Legal Terms Our home page can be found at - http://www.freetype.org + https://www.freetype.org --- end of FTL.TXT --- diff --git a/modules/freetype2/docs/INSTALL b/modules/freetype2/docs/INSTALL index 5155a4b2e..71d4a0553 100644 --- a/modules/freetype2/docs/INSTALL +++ b/modules/freetype2/docs/INSTALL @@ -14,7 +14,9 @@ I. Normal installation and upgrades compilation, since other make tools won't work (this includes BSD Make). - GNU Make VERSION 3.80 OR NEWER IS NEEDED! + GNU Make VERSION 3.81 OR NEWER IS NEEDED! + + [For `cmake' see below.] 2. On VMS with the `mms' build tool @@ -70,12 +72,12 @@ II. Custom builds of the library http://makepp.sourceforge.net - for more information; you need version 1.19 or newer, and you must + for more information; you need version 2.0 or newer, and you must pass option `--norc-substitution'. ---------------------------------------------------------------------- -Copyright 2000-2016 by +Copyright 2000-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/modules/freetype2/docs/INSTALL.ANY b/modules/freetype2/docs/INSTALL.ANY index aae277308..fddac9ad2 100644 --- a/modules/freetype2/docs/INSTALL.ANY +++ b/modules/freetype2/docs/INSTALL.ANY @@ -39,11 +39,9 @@ I. Standard procedure src/base/ftbdf.c -- optional, see src/base/ftbitmap.c -- optional, see src/base/ftcid.c -- optional, see - src/base/ftfntfmt.c -- optional, see src/base/ftfstype.c -- optional src/base/ftgasp.c -- optional, see src/base/ftgxval.c -- optional, see - src/base/ftlcdfil.c -- optional, see src/base/ftmm.c -- optional, see src/base/ftotval.c -- optional, see src/base/ftpatent.c -- optional @@ -143,7 +141,7 @@ II. Support for flat-directory compilation ---------------------------------------------------------------------- -Copyright 2003-2016 by +Copyright 2003-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/modules/freetype2/docs/INSTALL.CROSS b/modules/freetype2/docs/INSTALL.CROSS index 428580416..239e1a9b6 100644 --- a/modules/freetype2/docs/INSTALL.CROSS +++ b/modules/freetype2/docs/INSTALL.CROSS @@ -9,7 +9,7 @@ procedure. ----------------- For self-building the FreeType library on a Unix system, GNU Make - 3.80 or newer is required. `INSTALL.UNIX' contains hints how to + 3.81 or newer is required. `INSTALL.UNIX' contains hints how to check the installed `make'. The GNU C compiler to cross-build the target system is required. @@ -163,7 +163,7 @@ procedure. ---------------------------------------------------------------------- -Copyright 2006-2016 by +Copyright 2006-2018 by suzuki toshiya, David Turner, Robert Wilhelm, and Werner Lemberg. diff --git a/modules/freetype2/docs/INSTALL.GNU b/modules/freetype2/docs/INSTALL.GNU index f1eb0819f..e314ecfdd 100644 --- a/modules/freetype2/docs/INSTALL.GNU +++ b/modules/freetype2/docs/INSTALL.GNU @@ -25,7 +25,7 @@ instructions in the file `INSTALL.UNIX' instead. http://makepp.sourceforge.net - for more information; you need version 1.19 or newer, and you must + for more information; you need version 2.0 or newer, and you must pass option `--norc-substitution'. Make sure that you are invoking GNU Make from the command line, by @@ -35,7 +35,7 @@ instructions in the file `INSTALL.UNIX' instead. to display its version number. - VERSION 3.80 OR NEWER IS NEEDED! + VERSION 3.81 OR NEWER IS NEEDED! 2. Invoke `make' @@ -148,7 +148,7 @@ instructions in the file `INSTALL.UNIX' instead. ---------------------------------------------------------------------- -Copyright 2003-2016 by +Copyright 2003-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/modules/freetype2/docs/INSTALL.MAC b/modules/freetype2/docs/INSTALL.MAC index 42bb0d863..2587e24a6 100644 --- a/modules/freetype2/docs/INSTALL.MAC +++ b/modules/freetype2/docs/INSTALL.MAC @@ -1,32 +1,32 @@ -Please follow the instructions in INSTALL.UNIX to install FreeType on +Please follow the instructions in INSTALL.UNIX to install FreeType on Mac OS X. -Currently FreeType2 functions based on some deprecated Carbon APIs -return FT_Err_Unimplemented_Feature always, even if FreeType2 is -configured and built on the system that deprecated Carbon APIs are -available. To enable deprecated FreeType2 functions as far as possible, -replace src/base/ftmac.c by builds/mac/ftmac.c. +Currently FreeType2 functions based on some deprecated Carbon APIs +return `FT_Err_Unimplemented_Feature' always, even if FreeType2 is +configured and built on the system that deprecated Carbon APIs are +available. To enable deprecated FreeType2 functions as far as +possible, replace `src/base/ftmac.c' by `builds/mac/ftmac.c'. -Starting with Mac OS X 10.5, gcc defaults the deployment target -to 10.5. In previous versions of Mac OS X, this defaulted to 10.1. -If you want your built binaries to run only on 10.5, this change -does not concern you. If you want them to also run on older versions -of Mac OS X, then you must either set the MACOSX_DEPLOYMENT_TARGET -environment variable or pass -mmacosx-version-min to gcc. You should -specify the oldest version of Mac OS you want the code to run on. -For example, if you use Bourne shell: +Starting with Mac OS X 10.5, gcc defaults the deployment target to +10.5. In previous versions of Mac OS X, this defaulted to 10.1. If +you want your built binaries to run only on 10.5, this change does not +concern you. If you want them to also run on older versions of Mac +OS X, then you must either set the MACOSX_DEPLOYMENT_TARGET +environment variable or pass `-mmacosx-version-min' to gcc. You +should specify the oldest version of Mac OS you want the code to run +on. For example, if you use Bourne shell: - export MACOSX_DEPLOYMENT_TARGET=10.2 + export MACOSX_DEPLOYMENT_TARGET=10.2 or, if you use C shell: - setenv MACOSX_DEPLOYMENT_TARGET 10.2 + setenv MACOSX_DEPLOYMENT_TARGET 10.2 -Alternatively, you could pass "-mmacosx-version-min=10.2" to gcc. +Alternatively, you could pass `-mmacosx-version-min=10.2' to gcc. -Here the number 10.2 is the lowest version that the built binaries -can run on. In the cases in above, the built binaries will run on -Mac OS X 10.2 and later, but _not_ earlier. If you want to run on -earlier, you have to set lower version, e.g. 10.0. +Here the number 10.2 is the lowest version that the built binaries can +run on. In the above cases, the built binaries will run on Mac OS X +10.2 and later, but _not_ earlier. If you want to run on earlier, you +have to set lower version, e.g., 10.0. For classic Mac OS (Mac OS 7, 8, 9) please refer to builds/mac/README. diff --git a/modules/freetype2/docs/INSTALL.UNIX b/modules/freetype2/docs/INSTALL.UNIX index b043883a1..f92d828e6 100644 --- a/modules/freetype2/docs/INSTALL.UNIX +++ b/modules/freetype2/docs/INSTALL.UNIX @@ -19,7 +19,7 @@ or MSys on Win32: GNU Make Copyright (C) Free Software Foundation Inc. - Note that version 3.80 or higher is *required* or the build will + Note that version 3.81 or higher is *required* or the build will fail. It is also fine to have GNU Make under another name (e.g. 'gmake') @@ -28,6 +28,9 @@ or MSys on Win32: As a special exception, 'makepp' can also be used to build FreeType 2. See the file docs/MAKEPP for details. + For builds with `cmake' please check file `CMakeLists.txt'; this + is a contributed file not directly supported by the FreeType team. + 2. Regenerate the configure script if needed -------------------------------------------- @@ -102,7 +105,7 @@ or MSys on Win32: ---------------------------------------------------------------------- -Copyright 2003-2016 by +Copyright 2003-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/modules/freetype2/docs/INSTALL.VMS b/modules/freetype2/docs/INSTALL.VMS index ef371d70b..c1d30e06e 100644 --- a/modules/freetype2/docs/INSTALL.VMS +++ b/modules/freetype2/docs/INSTALL.VMS @@ -1,7 +1,7 @@ -How to build the freetype2 library on VMS +How to build the FreeType 2 library on VMS ----------------------------------------- -It is actually very straightforward to install the Freetype2 library. +It is actually very straightforward to install the FreeType 2 library. Just execute vms_make.com from the toplevel directory to build the library. This procedure currently accepts the following options: @@ -15,10 +15,10 @@ ccopt= Options to pass to the C compiler e.g. ccopt=/float=ieee In case you did download the demos, place them in a separate directory -sharing the same toplevel as the directory of Freetype2 and follow the -same instructions as above for the demos from there. The build -process relies on this to figure the location of the Freetype2 include -files. +sharing the same top level as the directory of FreeType 2 and follow +the same instructions as above for the demos from there. The build +process relies on this to figure out the location of the FreeType 2 +include files. To rebuild the sources it is necessary to have MMS/MMK installed on @@ -49,7 +49,7 @@ V7.2-1. ------------------------------------------------------------------------ -Copyright 2000-2016 by +Copyright 2000-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/modules/freetype2/docs/MAKEPP b/modules/freetype2/docs/MAKEPP index 58eaf551d..a4d44b78e 100644 --- a/modules/freetype2/docs/MAKEPP +++ b/modules/freetype2/docs/MAKEPP @@ -1,5 +1,5 @@ As a special exception, FreeType can also be built with the 'makepp' build tool, available from http://makepp.sourceforge.net. -Note, however. that you will need at least version 1.19 and pass the +Note, however, that you will need at least version 2.0 and pass the option --norc-substitution to have it work correctly. diff --git a/modules/freetype2/docs/TODO b/modules/freetype2/docs/TODO index 4aa3f0904..1a443a2ed 100644 --- a/modules/freetype2/docs/TODO +++ b/modules/freetype2/docs/TODO @@ -27,7 +27,7 @@ Other bugs have been registered at the savannah bugzilla of FreeType. ------------------------------------------------------------------------ -Copyright 2001-2016 by +Copyright 2001-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/modules/freetype2/docs/VERSIONS.TXT b/modules/freetype2/docs/VERSIONS.TXT index 82f63a3a6..377415702 100644 --- a/modules/freetype2/docs/VERSIONS.TXT +++ b/modules/freetype2/docs/VERSIONS.TXT @@ -52,6 +52,10 @@ on _most_ systems, but not all of them: release libtool so ------------------------------- + 2.9.1 22.1.16 6.16.1 + 2.9.0 22.0.16 6.16.0 + 2.8.1 21.0.15 6.15.0 + 2.8.0 20.0.14 6.14.0 2.7.1 19.0.13 6.13.0 2.7.0 18.6.12 6.12.6 2.6.5 18.5.12 6.12.5 @@ -98,7 +102,7 @@ other release numbers. #include #include FT_FREETYPE_H #if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009 -#error Freetype version too low. +#error FreeType version too low. #endif ], [AC_MSG_RESULT(yes) @@ -110,7 +114,7 @@ other release numbers. ------------------------------------------------------------------------ -Copyright 2002-2016 by +Copyright 2002-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/modules/freetype2/docs/formats.txt b/modules/freetype2/docs/formats.txt index 2181352bd..75aba92e3 100644 --- a/modules/freetype2/docs/formats.txt +++ b/modules/freetype2/docs/formats.txt @@ -7,9 +7,12 @@ Table fields wrapper format The format used to represent the font data. In the table below it is used only if the font format differs. Possible values are - `SFNT' (binary), `PS' (a text header, followed by binary or text - data), `LZW' (compressed with either `gzip' or `compress'), and - `BZ2' (compressed with `bzip2`). + + SFNT binary + PFB binary + PS a text header, followed by binary or text data + LZW compressed with either `gzip' or `compress' + BZ2 compressed with `bzip2'. font format How the font is to be accessed, possibly after converting the file @@ -95,6 +98,9 @@ which isn't supported yet please send a mail too. --- PS TYPE_1 --- type1 T1_SPEC.pdf + (PFA, Type 1 font resource) + PFB PS TYPE_1 --- type1 T1_SPEC.pdf, + 5040.Download_Fonts.pdf (`normal' Type 1 font) --- PS TYPE_1 CID cid PLRM.pdf (CID Font Type 0; Type 9 font) @@ -149,10 +155,11 @@ which isn't supported yet please send a mail too. [1] Support should be rather simple since this is identical to `CFF' but in a PS wrapper. -[2] Official PFR specification: +[2] The official PFR specification is no longer available, but + archive.org has archived it: - http://www.bitstream.com/categories/developer/truedoc/pfrspec.html - http://www.bitstream.com/categories/developer/truedoc/pfrspec1.2.pdf + https://web.archive.org/web/20091014062300/http://www.bitstream.com/font_rendering/products/truedoc/pfrspec.html + https://web.archive.org/web/20081115152605/http://www.bitstream.com/font_rendering/pdfs/pfrspec1.3.pdf The syntax of the auxiliary data is not defined there, but is partially defined in MHP 1.0.3 (also called ETSI TS 101812 V1.3.1) @@ -161,8 +168,6 @@ which isn't supported yet please send a mail too. http://www.etsi.org/ http://webapp.etsi.org/workprogram/Report_WorkItem.asp?WKI_ID=18799 - (free registration required). - [3] Support is rudimentary currently; some tables or data are not loaded yet. @@ -178,15 +183,15 @@ which isn't supported yet please send a mail too. George Williams deduced the font format from the X11 sources and documented it for his FontForge font editor: - http://fontforge.github.io/pcf-format.html + https://fontforge.github.io/pcf-format.html [5] This is from MS Windows 3; see Microsoft's Knowledge Base article at - http://support.microsoft.com/kb/65123 + https://support.microsoft.com/kb/65123 ------------------------------------------------------------------------ -Copyright 2004-2016 by +Copyright 2004-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, @@ -197,3 +202,7 @@ accept it fully. --- end of formats.txt --- + +Local Variables: +coding: utf-8 +End: diff --git a/modules/freetype2/docs/freetype-config.1 b/modules/freetype2/docs/freetype-config.1 index 76082ec11..164b8ffa0 100644 --- a/modules/freetype2/docs/freetype-config.1 +++ b/modules/freetype2/docs/freetype-config.1 @@ -1,4 +1,4 @@ -.TH FREETYPE-CONFIG 1 "December 2016" "FreeType 2.7.1" +.TH FREETYPE-CONFIG 1 "May 2018" "FreeType 2.9.1" . . .SH NAME @@ -23,6 +23,14 @@ FreeType library version installed on the system, such as the installation (directory path) prefix or the FreeType version number. . .PP +If +.BR pkg-config (1) +is found in the path, +.B freetype-config +acts as a wrapper for +.BR pkg-config . +. +.PP This program is part of the FreeType package. . . @@ -50,7 +58,8 @@ Return the executable prefix value of the installed FreeType library . .TP .B \-\-ftversion -Return the FreeType version number. +Return the FreeType version number, directly derived from file +`freetype.h'. . .TP .B \-\-version @@ -72,32 +81,61 @@ Return compiler flags for compiling against the installed FreeType library. .B \-\-static Make command line options display flags for static linking. . +.TP +.B \-\-help +Show help and exit. +. . .SS Path override options . These affect any selected output option, except the libtool version -returned by `--version'. +returned by +.BR \-\-version . . .TP .BI \-\-prefix= PREFIX -Override `--prefix' value with +Override +.B \-\-prefix +value with .IR PREFIX . . +This also sets +.BI \-\-exec-prefix= PREFIX +if option +.B \-\-exec-prefix +is not explicitly given. +. .TP .BI \-\-exec-prefix= EPREFIX -Override `--exec-prefix' value with +Override +.B \-\-exec-prefix +value with .IR EPREFIX . . . .SH BUGS In case the libraries FreeType links to are located in non-standard -directories, the output from option +directories, and +.BR pkg-config (1) +is not available, the output from option .B \-\-libs might be incomplete. +. It is thus recommended to use the .BR pkg-config (1) interface instead, which is able to correctly resolve all dependencies. . +.PP +Setting +.B \-\-exec-prefix +(either explicitly or implicitly) might return incorrect results if +combined with option +.BR \-\-static . +. +The same problem can occur if you set the +.B SYSROOT +environment variable. +. . .SH AUTHOR . diff --git a/modules/freetype2/docs/raster.txt b/modules/freetype2/docs/raster.txt index 5e8df51e3..8ef466ef9 100644 --- a/modules/freetype2/docs/raster.txt +++ b/modules/freetype2/docs/raster.txt @@ -618,7 +618,7 @@ II. Rendering Technology ------------------------------------------------------------------------ -Copyright 2003-2016 by +Copyright 2003-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/modules/freetype2/docs/reference/ft2-auto_hinter.html b/modules/freetype2/docs/reference/ft2-auto_hinter.html index 79d1fe0e4..884d87ad6 100644 --- a/modules/freetype2/docs/reference/ft2-auto_hinter.html +++ b/modules/freetype2/docs/reference/ft2-auto_hinter.html @@ -1,9 +1,9 @@ +"https://www.w3.org/TR/html4/loose.dtd"> -FreeType-2.7.1 API Reference +FreeType-2.9.1 API Reference + + + + +

    FreeType-2.9.1 API Reference

    + +

    Parameter Tags

    +

    Synopsis

    + + + + + + + + +
    FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY
    FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY
    FT_PARAM_TAG_INCREMENTAL
    FT_PARAM_TAG_LCD_FILTER_WEIGHTS
    FT_PARAM_TAG_RANDOM_SEED
    FT_PARAM_TAG_STEM_DARKENING
    FT_PARAM_TAG_UNPATENTED_HINTING
    + + +

    This section contains macros for the FT_Parameter structure that are used with various functions to activate some special functionality or different behaviour of various components of FreeType.

    + +
    +

    FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY

    +
    +#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY \
    +          FT_MAKE_TAG( 'i', 'g', 'p', 'f' )
    +
    +
    +  /* this constant is deprecated */
    +#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY \
    +          FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY
    +
    + +

    A tag for FT_Parameter to make FT_Open_Face ignore typographic family names in the ‘name’ table (introduced in OpenType version 1.4). Use this for backward compatibility with legacy systems that have a four-faces-per-family restriction.

    + +

    since

    +

    2.8

    + +
    +
    + +
    +

    FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY

    +
    +#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY \
    +          FT_MAKE_TAG( 'i', 'g', 'p', 's' )
    +
    +
    +  /* this constant is deprecated */
    +#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY \
    +          FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY
    +
    + +

    A tag for FT_Parameter to make FT_Open_Face ignore typographic subfamily names in the ‘name’ table (introduced in OpenType version 1.4). Use this for backward compatibility with legacy systems that have a four-faces-per-family restriction.

    + +

    since

    +

    2.8

    + +
    +
    + +
    +

    FT_PARAM_TAG_INCREMENTAL

    +
    +#define FT_PARAM_TAG_INCREMENTAL \
    +          FT_MAKE_TAG( 'i', 'n', 'c', 'r' )
    +
    + +

    An FT_Parameter tag to be used with FT_Open_Face to indicate incremental glyph loading.

    + +
    +
    + +
    +

    FT_PARAM_TAG_LCD_FILTER_WEIGHTS

    +
    +#define FT_PARAM_TAG_LCD_FILTER_WEIGHTS \
    +          FT_MAKE_TAG( 'l', 'c', 'd', 'f' )
    +
    + +

    An FT_Parameter tag to be used with FT_Face_Properties. The corresponding argument specifies the five LCD filter weights for a given face (if using FT_LOAD_TARGET_LCD, for example), overriding the global default values or the values set up with FT_Library_SetLcdFilterWeights.

    + +

    since

    +

    2.8

    + +
    +
    + +
    +

    FT_PARAM_TAG_RANDOM_SEED

    +
    +#define FT_PARAM_TAG_RANDOM_SEED \
    +          FT_MAKE_TAG( 's', 'e', 'e', 'd' )
    +
    + +

    An FT_Parameter tag to be used with FT_Face_Properties. The corresponding 32bit signed integer argument overrides the font driver's random seed value with a face-specific one; see random-seed.

    + +

    since

    +

    2.8

    + +
    +
    + +
    +

    FT_PARAM_TAG_STEM_DARKENING

    +
    +#define FT_PARAM_TAG_STEM_DARKENING \
    +          FT_MAKE_TAG( 'd', 'a', 'r', 'k' )
    +
    + +

    An FT_Parameter tag to be used with FT_Face_Properties. The corresponding Boolean argument specifies whether to apply stem darkening, overriding the global default values or the values set up with FT_Property_Set (see no-stem-darkening).

    +

    This is a passive setting that only takes effect if the font driver or autohinter honors it, which the CFF, Type 1, and CID drivers always do, but the autohinter only in ‘light’ hinting mode (as of version 2.9).

    + +

    since

    +

    2.8

    + +
    +
    + +
    +

    FT_PARAM_TAG_UNPATENTED_HINTING

    +
    +#define FT_PARAM_TAG_UNPATENTED_HINTING \
    +          FT_MAKE_TAG( 'u', 'n', 'p', 'a' )
    +
    + +

    Deprecated, no effect.

    +

    Previously: A constant used as the tag of an FT_Parameter structure to indicate that unpatented methods only should be used by the TrueType bytecode interpreter for a typeface opened by FT_Open_Face.

    + +
    +
    + + + diff --git a/modules/freetype2/docs/reference/ft2-pcf_driver.html b/modules/freetype2/docs/reference/ft2-pcf_driver.html new file mode 100644 index 000000000..2bc4c966f --- /dev/null +++ b/modules/freetype2/docs/reference/ft2-pcf_driver.html @@ -0,0 +1,111 @@ + + + + +FreeType-2.9.1 API Reference + + + + + +

    FreeType-2.9.1 API Reference

    + +

    The PCF driver

    + +

    While FreeType's PCF driver doesn't expose API functions by itself, it is possible to control its behaviour with FT_Property_Set and FT_Property_Get. Right now, there is a single property no-long-family-names available if FreeType is compiled with PCF_CONFIG_OPTION_LONG_FAMILY_NAMES.

    +

    The PCF driver's module name is ‘pcf’.

    + + + diff --git a/modules/freetype2/docs/reference/ft2-pfr_fonts.html b/modules/freetype2/docs/reference/ft2-pfr_fonts.html index c9eca0fe2..18c97c60e 100644 --- a/modules/freetype2/docs/reference/ft2-pfr_fonts.html +++ b/modules/freetype2/docs/reference/ft2-pfr_fonts.html @@ -1,9 +1,9 @@ +"https://www.w3.org/TR/html4/loose.dtd"> -FreeType-2.7.1 API Reference +FreeType-2.9.1 API Reference + + + + +

    FreeType-2.9.1 API Reference

    + +

    Driver properties

    +

    Synopsis

    + + + + + + + + + +
    FT_HINTING_XXXglyph-to-script-map
    hinting-engineFT_AUTOHINTER_SCRIPT_XXX
    no-stem-darkeningFT_Prop_GlyphToScriptMap
    darkening-parametersfallback-script
    random-seeddefault-script
    no-long-family-namesincrease-x-height
    TT_INTERPRETER_VERSION_XXXFT_Prop_IncreaseXHeight
    interpreter-versionwarping
    + + +

    Driver modules can be controlled by setting and unsetting properties, using the functions FT_Property_Set and FT_Property_Get. This section documents the available properties, together with auxiliary macros and structures.

    + +
    +

    FT_HINTING_XXX

    +

    Defined in FT_DRIVER_H (freetype/ftdriver.h).

    +
    +#define FT_HINTING_FREETYPE  0
    +#define FT_HINTING_ADOBE     1
    +
    +  /* these constants (introduced in 2.4.12) are deprecated */
    +#define FT_CFF_HINTING_FREETYPE  FT_HINTING_FREETYPE
    +#define FT_CFF_HINTING_ADOBE     FT_HINTING_ADOBE
    +
    + +

    A list of constants used for the hinting-engine property to select the hinting engine for CFF, Type 1, and CID fonts.

    + +

    values

    + + + +
    FT_HINTING_FREETYPE +

    Use the old FreeType hinting engine.

    +
    FT_HINTING_ADOBE +

    Use the hinting engine contributed by Adobe.

    +
    + +

    since

    +

    2.9

    + +
    +
    + +
    +

    hinting-engine

    + +

    Thanks to Adobe, which contributed a new hinting (and parsing) engine, an application can select between ‘freetype’ and ‘adobe’ if compiled with CFF_CONFIG_OPTION_OLD_ENGINE. If this configuration macro isn't defined, ‘hinting-engine’ does nothing.

    +

    The same holds for the Type 1 and CID modules if compiled with T1_CONFIG_OPTION_OLD_ENGINE.

    +

    For the ‘cff’ module, the default engine is ‘freetype’ if CFF_CONFIG_OPTION_OLD_ENGINE is defined, and ‘adobe’ otherwise.

    +

    For both the ‘type1’ and ‘t1cid’ modules, the default engine is ‘freetype’ if T1_CONFIG_OPTION_OLD_ENGINE is defined, and ‘adobe’ otherwise.

    +

    The following example code demonstrates how to select Adobe's hinting engine for the ‘cff’ module (omitting the error handling).

    +
    +  FT_Library  library;
    +  FT_UInt     hinting_engine = FT_CFF_HINTING_ADOBE;
    +
    +
    +  FT_Init_FreeType( &library );
    +
    +  FT_Property_Set( library, "cff",
    +                            "hinting-engine", &hinting_engine );
    +
    + +

    note

    +

    This property can be used with FT_Property_Get also.

    +

    This property can be set via the ‘FREETYPE_PROPERTIES’ environment variable (using values ‘adobe’ or ‘freetype’).

    + +

    since

    +

    2.4.12 (for ‘cff’ module)

    +

    2.9 (for ‘type1’ and ‘t1cid’ modules)

    + +
    +
    + +
    +

    no-stem-darkening

    + +

    All glyphs that pass through the auto-hinter will be emboldened unless this property is set to TRUE. The same is true for the CFF, Type 1, and CID font modules if the ‘Adobe’ engine is selected (which is the default).

    +

    Stem darkening emboldens glyphs at smaller sizes to make them more readable on common low-DPI screens when using linear alpha blending and gamma correction, see FT_Render_Glyph. When not using linear alpha blending and gamma correction, glyphs will appear heavy and fuzzy!

    +

    Gamma correction essentially lightens fonts since shades of grey are shifted to higher pixel values (= higher brightness) to match the original intention to the reality of our screens. The side-effect is that glyphs ‘thin out’. Mac OS X and Adobe's proprietary font rendering library implement a counter-measure: stem darkening at smaller sizes where shades of gray dominate. By emboldening a glyph slightly in relation to its pixel size, individual pixels get higher coverage of filled-in outlines and are therefore ‘blacker’. This counteracts the ‘thinning out’ of glyphs, making text remain readable at smaller sizes.

    +

    By default, the Adobe engines for CFF, Type 1, and CID fonts darken stems at smaller sizes, regardless of hinting, to enhance contrast. Setting this property, stem darkening gets switched off.

    +

    For the auto-hinter, stem-darkening is experimental currently and thus switched off by default (this is, ‘no-stem-darkening’ is set to TRUE by default). Total consistency with the CFF driver is not achieved right now because the emboldening method differs and glyphs must be scaled down on the Y-axis to keep outline points inside their precomputed blue zones. The smaller the size (especially 9ppem and down), the higher the loss of emboldening versus the CFF driver.

    +

    Note that stem darkening is never applied if FT_LOAD_NO_SCALE is set.

    +
    +  FT_Library  library;
    +  FT_Bool     no_stem_darkening = TRUE;
    +
    +
    +  FT_Init_FreeType( &library );
    +
    +  FT_Property_Set( library, "cff",
    +                            "no-stem-darkening", &no_stem_darkening );
    +
    + +

    note

    +

    This property can be used with FT_Property_Get also.

    +

    This property can be set via the ‘FREETYPE_PROPERTIES’ environment variable (using values 1 and 0 for ‘on’ and ‘off’, respectively). It can also be set per face using FT_Face_Properties with FT_PARAM_TAG_STEM_DARKENING.

    + +

    since

    +

    2.4.12 (for ‘cff’ module)

    +

    2.6.2 (for ‘autofitter’ module)

    +

    2.9 (for ‘type1’ and ‘t1cid’ modules)

    + +
    +
    + +
    +

    darkening-parameters

    + +

    By default, the Adobe hinting engine, as used by the CFF, Type 1, and CID font drivers, darkens stems as follows (if the ‘no-stem-darkening’ property isn't set):

    +
    +  stem width <= 0.5px:   darkening amount = 0.4px
    +  stem width  = 1px:     darkening amount = 0.275px
    +  stem width  = 1.667px: darkening amount = 0.275px
    +  stem width >= 2.333px: darkening amount = 0px
    +
    +

    and piecewise linear in-between. At configuration time, these four control points can be set with the macro ‘CFF_CONFIG_OPTION_DARKENING_PARAMETERS’; the CFF, Type 1, and CID drivers share these values. At runtime, the control points can be changed using the ‘darkening-parameters’ property, as the following example demonstrates for the Type 1 driver.

    +
    +  FT_Library  library;
    +  FT_Int      darken_params[8] = {  500, 300,   // x1, y1
    +                                   1000, 200,   // x2, y2
    +                                   1500, 100,   // x3, y3
    +                                   2000,   0 }; // x4, y4
    +
    +
    +  FT_Init_FreeType( &library );
    +
    +  FT_Property_Set( library, "type1",
    +                            "darkening-parameters", darken_params );
    +
    +

    The x values give the stem width, and the y values the darkening amount. The unit is 1000th of pixels. All coordinate values must be positive; the x values must be monotonically increasing; the y values must be monotonically decreasing and smaller than or equal to 500 (corresponding to half a pixel); the slope of each linear piece must be shallower than -1 (e.g., -.4).

    +

    The auto-hinter provides this property, too, as an experimental feature. See no-stem-darkening for more.

    + +

    note

    +

    This property can be used with FT_Property_Get also.

    +

    This property can be set via the ‘FREETYPE_PROPERTIES’ environment variable, using eight comma-separated integers without spaces. Here the above example, using ‘\’ to break the line for readability.

    +
    +  FREETYPE_PROPERTIES=\
    +  type1:darkening-parameters=500,300,1000,200,1500,100,2000,0
    +
    + +

    since

    +

    2.5.1 (for ‘cff’ module)

    +

    2.6.2 (for ‘autofitter’ module)

    +

    2.9 (for ‘type1’ and ‘t1cid’ modules)

    + +
    +
    + +
    +

    random-seed

    + +

    By default, the seed value for the CFF ‘random’ operator and the similar ‘0 28 callothersubr pop’ command for the Type 1 and CID drivers is set to a random value. However, mainly for debugging purposes, it is often necessary to use a known value as a seed so that the pseudo-random number sequences generated by ‘random’ are repeatable.

    +

    The ‘random-seed’ property does that. Its argument is a signed 32bit integer; if the value is zero or negative, the seed given by the ‘intitialRandomSeed’ private DICT operator in a CFF file gets used (or a default value if there is no such operator). If the value is positive, use it instead of ‘initialRandomSeed’, which is consequently ignored.

    + +

    note

    +

    This property can be set via the ‘FREETYPE_PROPERTIES’ environment variable. It can also be set per face using FT_Face_Properties with FT_PARAM_TAG_RANDOM_SEED.

    + +

    since

    +

    2.8 (for ‘cff’ module)

    +

    2.9 (for ‘type1’ and ‘t1cid’ modules)

    + +
    +
    + +
    +

    no-long-family-names

    + +

    If PCF_CONFIG_OPTION_LONG_FAMILY_NAMES is active while compiling FreeType, the PCF driver constructs long family names.

    +

    There are many PCF fonts just called ‘Fixed’ which look completely different, and which have nothing to do with each other. When selecting ‘Fixed’ in KDE or Gnome one gets results that appear rather random, the style changes often if one changes the size and one cannot select some fonts at all. The improve this situation, the PCF module prepends the foundry name (plus a space) to the family name. It also checks whether there are ‘wide’ characters; all put together, family names like ‘Sony Fixed’ or ‘Misc Fixed Wide’ are constructed.

    +

    If ‘no-long-family-names’ is set, this feature gets switched off.

    +
    +  FT_Library  library;
    +  FT_Bool     no_long_family_names = TRUE;
    +
    +
    +  FT_Init_FreeType( &library );
    +
    +  FT_Property_Set( library, "pcf",
    +                            "no-long-family-names",
    +                            &no_long_family_names );
    +
    + +

    note

    +

    This property can be used with FT_Property_Get also.

    +

    This property can be set via the ‘FREETYPE_PROPERTIES’ environment variable (using values 1 and 0 for ‘on’ and ‘off’, respectively).

    + +

    since

    +

    2.8

    + +
    +
    + +
    +

    TT_INTERPRETER_VERSION_XXX

    +

    Defined in FT_DRIVER_H (freetype/ftdriver.h).

    +
    +#define TT_INTERPRETER_VERSION_35  35
    +#define TT_INTERPRETER_VERSION_38  38
    +#define TT_INTERPRETER_VERSION_40  40
    +
    + +

    A list of constants used for the interpreter-version property to select the hinting engine for Truetype fonts.

    +

    The numeric value in the constant names represents the version number as returned by the ‘GETINFO’ bytecode instruction.

    + +

    values

    + + + + +
    TT_INTERPRETER_VERSION_35 +

    Version 35 corresponds to MS rasterizer v.1.7 as used e.g. in Windows 98; only grayscale and B/W rasterizing is supported.

    +
    TT_INTERPRETER_VERSION_38 +

    Version 38 corresponds to MS rasterizer v.1.9; it is roughly equivalent to the hinting provided by DirectWrite ClearType (as can be found, for example, in the Internet Explorer 9 running on Windows 7). It is used in FreeType to select the ‘Infinality’ subpixel hinting code. The code may be removed in a future version.

    +
    TT_INTERPRETER_VERSION_40 +

    Version 40 corresponds to MS rasterizer v.2.1; it is roughly equivalent to the hinting provided by DirectWrite ClearType (as can be found, for example, in Microsoft's Edge Browser on Windows 10). It is used in FreeType to select the ‘minimal’ subpixel hinting code, a stripped-down and higher performance version of the ‘Infinality’ code.

    +
    + +

    note

    +

    This property controls the behaviour of the bytecode interpreter and thus how outlines get hinted. It does not control how glyph get rasterized! In particular, it does not control subpixel color filtering.

    +

    If FreeType has not been compiled with the configuration option TT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version 38 or 40 causes an ‘FT_Err_Unimplemented_Feature’ error.

    +

    Depending on the graphics framework, Microsoft uses different bytecode and rendering engines. As a consequence, the version numbers returned by a call to the ‘GETINFO’ bytecode instruction are more convoluted than desired.

    +

    Here are two tables that try to shed some light on the possible values for the MS rasterizer engine, together with the additional features introduced by it.

    +
    +  GETINFO framework               version feature
    +  -------------------------------------------------------------------
    +      3   GDI (Win 3.1),            v1.0  16-bit, first version
    +          TrueImage
    +     33   GDI (Win NT 3.1),         v1.5  32-bit
    +          HP Laserjet
    +     34   GDI (Win 95)              v1.6  font smoothing,
    +                                          new SCANTYPE opcode
    +     35   GDI (Win 98/2000)         v1.7  (UN)SCALED_COMPONENT_OFFSET
    +                                            bits in composite glyphs
    +     36   MGDI (Win CE 2)           v1.6+ classic ClearType
    +     37   GDI (XP and later),       v1.8  ClearType
    +          GDI+ old (before Vista)
    +     38   GDI+ old (Vista, Win 7),  v1.9  subpixel ClearType,
    +          WPF                             Y-direction ClearType,
    +                                          additional error checking
    +     39   DWrite (before Win 8)     v2.0  subpixel ClearType flags
    +                                            in GETINFO opcode,
    +                                          bug fixes
    +     40   GDI+ (after Win 7),       v2.1  Y-direction ClearType flag
    +          DWrite (Win 8)                    in GETINFO opcode,
    +                                          Gray ClearType
    +
    +

    The ‘version’ field gives a rough orientation only, since some applications provided certain features much earlier (as an example, Microsoft Reader used subpixel and Y-direction ClearType already in Windows 2000). Similarly, updates to a given framework might include improved hinting support.

    +
    +   version   sampling          rendering        comment
    +            x        y       x           y
    +  --------------------------------------------------------------
    +    v1.0   normal  normal  B/W           B/W    bi-level
    +    v1.6   high    high    gray          gray   grayscale
    +    v1.8   high    normal  color-filter  B/W    (GDI) ClearType
    +    v1.9   high    high    color-filter  gray   Color ClearType
    +    v2.1   high    normal  gray          B/W    Gray ClearType
    +    v2.1   high    high    gray          gray   Gray ClearType
    +
    +

    Color and Gray ClearType are the two available variants of ‘Y-direction ClearType’, meaning grayscale rasterization along the Y-direction; the name used in the TrueType specification for this feature is ‘symmetric smoothing’. ‘Classic ClearType’ is the original algorithm used before introducing a modified version in Win XP. Another name for v1.6's grayscale rendering is ‘font smoothing’, and ‘Color ClearType’ is sometimes also called ‘DWrite ClearType’. To differentiate between today's Color ClearType and the earlier ClearType variant with B/W rendering along the vertical axis, the latter is sometimes called ‘GDI ClearType’.

    +

    ‘Normal’ and ‘high’ sampling describe the (virtual) resolution to access the rasterized outline after the hinting process. ‘Normal’ means 1 sample per grid line (i.e., B/W). In the current Microsoft implementation, ‘high’ means an extra virtual resolution of 16x16 (or 16x1) grid lines per pixel for bytecode instructions like ‘MIRP’. After hinting, these 16 grid lines are mapped to 6x5 (or 6x1) grid lines for color filtering if Color ClearType is activated.

    +

    Note that ‘Gray ClearType’ is essentially the same as v1.6's grayscale rendering. However, the GETINFO instruction handles it differently: v1.6 returns bit 12 (hinting for grayscale), while v2.1 returns bits 13 (hinting for ClearType), 18 (symmetrical smoothing), and 19 (Gray ClearType). Also, this mode respects bits 2 and 3 for the version 1 gasp table exclusively (like Color ClearType), while v1.6 only respects the values of version 0 (bits 0 and 1).

    +

    Keep in mind that the features of the above interpreter versions might not map exactly to FreeType features or behavior because it is a fundamentally different library with different internals.

    + +
    +
    + +
    +

    interpreter-version

    + +

    Currently, three versions are available, two representing the bytecode interpreter with subpixel hinting support (old ‘Infinality’ code and new stripped-down and higher performance ‘minimal’ code) and one without, respectively. The default is subpixel support if TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel support otherwise (since it isn't available then).

    +

    If subpixel hinting is on, many TrueType bytecode instructions behave differently compared to B/W or grayscale rendering (except if ‘native ClearType’ is selected by the font). Microsoft's main idea is to render at a much increased horizontal resolution, then sampling down the created output to subpixel precision. However, many older fonts are not suited to this and must be specially taken care of by applying (hardcoded) tweaks in Microsoft's interpreter.

    +

    Details on subpixel hinting and some of the necessary tweaks can be found in Greg Hitchcock's whitepaper at ‘https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx’. Note that FreeType currently doesn't really ‘subpixel hint’ (6x1, 6x2, or 6x5 supersampling) like discussed in the paper. Depending on the chosen interpreter, it simply ignores instructions on vertical stems to arrive at very similar results.

    +

    The following example code demonstrates how to deactivate subpixel hinting (omitting the error handling).

    +
    +  FT_Library  library;
    +  FT_Face     face;
    +  FT_UInt     interpreter_version = TT_INTERPRETER_VERSION_35;
    +
    +
    +  FT_Init_FreeType( &library );
    +
    +  FT_Property_Set( library, "truetype",
    +                            "interpreter-version",
    +                            &interpreter_version );
    +
    + +

    note

    +

    This property can be used with FT_Property_Get also.

    +

    This property can be set via the ‘FREETYPE_PROPERTIES’ environment variable (using values ‘35’, ‘38’, or ‘40’).

    + +

    since

    +

    2.5

    + +
    +
    + +
    +

    glyph-to-script-map

    + +

    Experimental only

    +

    The auto-hinter provides various script modules to hint glyphs. Examples of supported scripts are Latin or CJK. Before a glyph is auto-hinted, the Unicode character map of the font gets examined, and the script is then determined based on Unicode character ranges, see below.

    +

    OpenType fonts, however, often provide much more glyphs than character codes (small caps, superscripts, ligatures, swashes, etc.), to be controlled by so-called ‘features’. Handling OpenType features can be quite complicated and thus needs a separate library on top of FreeType.

    +

    The mapping between glyph indices and scripts (in the auto-hinter sense, see the FT_AUTOHINTER_SCRIPT_XXX values) is stored as an array with ‘num_glyphs’ elements, as found in the font's FT_Face structure. The ‘glyph-to-script-map’ property returns a pointer to this array, which can be modified as needed. Note that the modification should happen before the first glyph gets processed by the auto-hinter so that the global analysis of the font shapes actually uses the modified mapping.

    +

    The following example code demonstrates how to access it (omitting the error handling).

    +
    +  FT_Library                library;
    +  FT_Face                   face;
    +  FT_Prop_GlyphToScriptMap  prop;
    +
    +
    +  FT_Init_FreeType( &library );
    +  FT_New_Face( library, "foo.ttf", 0, &face );
    +
    +  prop.face = face;
    +
    +  FT_Property_Get( library, "autofitter",
    +                            "glyph-to-script-map", &prop );
    +
    +  // adjust `prop.map' as needed right here
    +
    +  FT_Load_Glyph( face, ..., FT_LOAD_FORCE_AUTOHINT );
    +
    + +

    since

    +

    2.4.11

    + +
    +
    + +
    +

    FT_AUTOHINTER_SCRIPT_XXX

    +

    Defined in FT_DRIVER_H (freetype/ftdriver.h).

    +
    +#define FT_AUTOHINTER_SCRIPT_NONE   0
    +#define FT_AUTOHINTER_SCRIPT_LATIN  1
    +#define FT_AUTOHINTER_SCRIPT_CJK    2
    +#define FT_AUTOHINTER_SCRIPT_INDIC  3
    +
    + +

    Experimental only

    +

    A list of constants used for the glyph-to-script-map property to specify the script submodule the auto-hinter should use for hinting a particular glyph.

    + +

    values

    + + + + + +
    FT_AUTOHINTER_SCRIPT_NONE +

    Don't auto-hint this glyph.

    +
    FT_AUTOHINTER_SCRIPT_LATIN +

    Apply the latin auto-hinter. For the auto-hinter, ‘latin’ is a very broad term, including Cyrillic and Greek also since characters from those scripts share the same design constraints.

    +

    By default, characters from the following Unicode ranges are assigned to this submodule.

    +
    +  U+0020 - U+007F  // Basic Latin (no control characters)
    +  U+00A0 - U+00FF  // Latin-1 Supplement (no control characters)
    +  U+0100 - U+017F  // Latin Extended-A
    +  U+0180 - U+024F  // Latin Extended-B
    +  U+0250 - U+02AF  // IPA Extensions
    +  U+02B0 - U+02FF  // Spacing Modifier Letters
    +  U+0300 - U+036F  // Combining Diacritical Marks
    +  U+0370 - U+03FF  // Greek and Coptic
    +  U+0400 - U+04FF  // Cyrillic
    +  U+0500 - U+052F  // Cyrillic Supplement
    +  U+1D00 - U+1D7F  // Phonetic Extensions
    +  U+1D80 - U+1DBF  // Phonetic Extensions Supplement
    +  U+1DC0 - U+1DFF  // Combining Diacritical Marks Supplement
    +  U+1E00 - U+1EFF  // Latin Extended Additional
    +  U+1F00 - U+1FFF  // Greek Extended
    +  U+2000 - U+206F  // General Punctuation
    +  U+2070 - U+209F  // Superscripts and Subscripts
    +  U+20A0 - U+20CF  // Currency Symbols
    +  U+2150 - U+218F  // Number Forms
    +  U+2460 - U+24FF  // Enclosed Alphanumerics
    +  U+2C60 - U+2C7F  // Latin Extended-C
    +  U+2DE0 - U+2DFF  // Cyrillic Extended-A
    +  U+2E00 - U+2E7F  // Supplemental Punctuation
    +  U+A640 - U+A69F  // Cyrillic Extended-B
    +  U+A720 - U+A7FF  // Latin Extended-D
    +  U+FB00 - U+FB06  // Alphab. Present. Forms (Latin Ligatures)
    + U+1D400 - U+1D7FF // Mathematical Alphanumeric Symbols
    + U+1F100 - U+1F1FF // Enclosed Alphanumeric Supplement
    +
    +

    +
    FT_AUTOHINTER_SCRIPT_CJK +

    Apply the CJK auto-hinter, covering Chinese, Japanese, Korean, old Vietnamese, and some other scripts.

    +

    By default, characters from the following Unicode ranges are assigned to this submodule.

    +
    +  U+1100 - U+11FF  // Hangul Jamo
    +  U+2E80 - U+2EFF  // CJK Radicals Supplement
    +  U+2F00 - U+2FDF  // Kangxi Radicals
    +  U+2FF0 - U+2FFF  // Ideographic Description Characters
    +  U+3000 - U+303F  // CJK Symbols and Punctuation
    +  U+3040 - U+309F  // Hiragana
    +  U+30A0 - U+30FF  // Katakana
    +  U+3100 - U+312F  // Bopomofo
    +  U+3130 - U+318F  // Hangul Compatibility Jamo
    +  U+3190 - U+319F  // Kanbun
    +  U+31A0 - U+31BF  // Bopomofo Extended
    +  U+31C0 - U+31EF  // CJK Strokes
    +  U+31F0 - U+31FF  // Katakana Phonetic Extensions
    +  U+3200 - U+32FF  // Enclosed CJK Letters and Months
    +  U+3300 - U+33FF  // CJK Compatibility
    +  U+3400 - U+4DBF  // CJK Unified Ideographs Extension A
    +  U+4DC0 - U+4DFF  // Yijing Hexagram Symbols
    +  U+4E00 - U+9FFF  // CJK Unified Ideographs
    +  U+A960 - U+A97F  // Hangul Jamo Extended-A
    +  U+AC00 - U+D7AF  // Hangul Syllables
    +  U+D7B0 - U+D7FF  // Hangul Jamo Extended-B
    +  U+F900 - U+FAFF  // CJK Compatibility Ideographs
    +  U+FE10 - U+FE1F  // Vertical forms
    +  U+FE30 - U+FE4F  // CJK Compatibility Forms
    +  U+FF00 - U+FFEF  // Halfwidth and Fullwidth Forms
    + U+1B000 - U+1B0FF // Kana Supplement
    + U+1D300 - U+1D35F // Tai Xuan Hing Symbols
    + U+1F200 - U+1F2FF // Enclosed Ideographic Supplement
    + U+20000 - U+2A6DF // CJK Unified Ideographs Extension B
    + U+2A700 - U+2B73F // CJK Unified Ideographs Extension C
    + U+2B740 - U+2B81F // CJK Unified Ideographs Extension D
    + U+2F800 - U+2FA1F // CJK Compatibility Ideographs Supplement
    +
    +

    +
    FT_AUTOHINTER_SCRIPT_INDIC +

    Apply the indic auto-hinter, covering all major scripts from the Indian sub-continent and some other related scripts like Thai, Lao, or Tibetan.

    +

    By default, characters from the following Unicode ranges are assigned to this submodule.

    +
    +  U+0900 - U+0DFF  // Indic Range
    +  U+0F00 - U+0FFF  // Tibetan
    +  U+1900 - U+194F  // Limbu
    +  U+1B80 - U+1BBF  // Sundanese
    +  U+A800 - U+A82F  // Syloti Nagri
    +  U+ABC0 - U+ABFF  // Meetei Mayek
    + U+11800 - U+118DF // Sharada
    +
    +

    Note that currently Indic support is rudimentary only, missing blue zone support.

    +
    + +

    since

    +

    2.4.11

    + +
    +
    + +
    +

    FT_Prop_GlyphToScriptMap

    +

    Defined in FT_DRIVER_H (freetype/ftdriver.h).

    +
    +  typedef struct  FT_Prop_GlyphToScriptMap_
    +  {
    +    FT_Face     face;
    +    FT_UShort*  map;
    +
    +  } FT_Prop_GlyphToScriptMap;
    +
    + +

    Experimental only

    +

    The data exchange structure for the glyph-to-script-map property.

    + +

    since

    +

    2.4.11

    + +
    +
    + +
    +

    fallback-script

    + +

    Experimental only

    +

    If no auto-hinter script module can be assigned to a glyph, a fallback script gets assigned to it (see also the glyph-to-script-map property). By default, this is FT_AUTOHINTER_SCRIPT_CJK. Using the ‘fallback-script’ property, this fallback value can be changed.

    +
    +  FT_Library  library;
    +  FT_UInt     fallback_script = FT_AUTOHINTER_SCRIPT_NONE;
    +
    +
    +  FT_Init_FreeType( &library );
    +
    +  FT_Property_Set( library, "autofitter",
    +                            "fallback-script", &fallback_script );
    +
    + +

    note

    +

    This property can be used with FT_Property_Get also.

    +

    It's important to use the right timing for changing this value: The creation of the glyph-to-script map that eventually uses the fallback script value gets triggered either by setting or reading a face-specific property like glyph-to-script-map, or by auto-hinting any glyph from that face. In particular, if you have already created an FT_Face structure but not loaded any glyph (using the auto-hinter), a change of the fallback script will affect this face.

    + +

    since

    +

    2.4.11

    + +
    +
    + +
    +

    default-script

    + +

    Experimental only

    +

    If FreeType gets compiled with FT_CONFIG_OPTION_USE_HARFBUZZ to make the HarfBuzz library access OpenType features for getting better glyph coverages, this property sets the (auto-fitter) script to be used for the default (OpenType) script data of a font's GSUB table. Features for the default script are intended for all scripts not explicitly handled in GSUB; an example is a ‘dlig’ feature, containing the combination of the characters ‘T’, ‘E’, and ‘L’ to form a ‘TEL’ ligature.

    +

    By default, this is FT_AUTOHINTER_SCRIPT_LATIN. Using the ‘default-script’ property, this default value can be changed.

    +
    +  FT_Library  library;
    +  FT_UInt     default_script = FT_AUTOHINTER_SCRIPT_NONE;
    +
    +
    +  FT_Init_FreeType( &library );
    +
    +  FT_Property_Set( library, "autofitter",
    +                            "default-script", &default_script );
    +
    + +

    note

    +

    This property can be used with FT_Property_Get also.

    +

    It's important to use the right timing for changing this value: The creation of the glyph-to-script map that eventually uses the default script value gets triggered either by setting or reading a face-specific property like glyph-to-script-map, or by auto-hinting any glyph from that face. In particular, if you have already created an FT_Face structure but not loaded any glyph (using the auto-hinter), a change of the default script will affect this face.

    + +

    since

    +

    2.5.3

    + +
    +
    + +
    +

    increase-x-height

    + +

    For ppem values in the range 6 <= ppem <= ‘increase-x-height’, round up the font's x height much more often than normally. If the value is set to 0, which is the default, this feature is switched off. Use this property to improve the legibility of small font sizes if necessary.

    +
    +  FT_Library               library;
    +  FT_Face                  face;
    +  FT_Prop_IncreaseXHeight  prop;
    +
    +
    +  FT_Init_FreeType( &library );
    +  FT_New_Face( library, "foo.ttf", 0, &face );
    +  FT_Set_Char_Size( face, 10 * 64, 0, 72, 0 );
    +
    +  prop.face  = face;
    +  prop.limit = 14;
    +
    +  FT_Property_Set( library, "autofitter",
    +                            "increase-x-height", &prop );
    +
    + +

    note

    +

    This property can be used with FT_Property_Get also.

    +

    Set this value right after calling FT_Set_Char_Size, but before loading any glyph (using the auto-hinter).

    + +

    since

    +

    2.4.11

    + +
    +
    + +
    +

    FT_Prop_IncreaseXHeight

    +

    Defined in FT_DRIVER_H (freetype/ftdriver.h).

    +
    +  typedef struct  FT_Prop_IncreaseXHeight_
    +  {
    +    FT_Face  face;
    +    FT_UInt  limit;
    +
    +  } FT_Prop_IncreaseXHeight;
    +
    + +

    The data exchange structure for the increase-x-height property.

    + +
    +
    + +
    +

    warping

    + +

    Experimental only

    +

    If FreeType gets compiled with option AF_CONFIG_OPTION_USE_WARPER to activate the warp hinting code in the auto-hinter, this property switches warping on and off.

    +

    Warping only works in ‘normal’ auto-hinting mode replacing it. The idea of the code is to slightly scale and shift a glyph along the non-hinted dimension (which is usually the horizontal axis) so that as much of its segments are aligned (more or less) to the grid. To find out a glyph's optimal scaling and shifting value, various parameter combinations are tried and scored.

    +

    By default, warping is off. The example below shows how to switch on warping (omitting the error handling).

    +
    +  FT_Library  library;
    +  FT_Bool     warping = 1;
    +
    +
    +  FT_Init_FreeType( &library );
    +
    +  FT_Property_Set( library, "autofitter",
    +                            "warping", &warping );
    +
    + +

    note

    +

    This property can be used with FT_Property_Get also.

    +

    This property can be set via the ‘FREETYPE_PROPERTIES’ environment variable (using values 1 and 0 for ‘on’ and ‘off’, respectively).

    +

    The warping code can also change advance widths. Have a look at the ‘lsb_delta’ and ‘rsb_delta’ fields in the FT_GlyphSlotRec structure for details on improving inter-glyph distances while rendering.

    +

    Since warping is a global property of the auto-hinter it is best to change its value before rendering any face. Otherwise, you should reload all faces that get auto-hinted in ‘normal’ hinting mode.

    + +

    since

    +

    2.6

    + +
    +
    + + + diff --git a/modules/freetype2/docs/reference/ft2-quick_advance.html b/modules/freetype2/docs/reference/ft2-quick_advance.html index 3222485af..dafefcf5b 100644 --- a/modules/freetype2/docs/reference/ft2-quick_advance.html +++ b/modules/freetype2/docs/reference/ft2-quick_advance.html @@ -1,9 +1,9 @@ +"https://www.w3.org/TR/html4/loose.dtd"> -FreeType-2.7.1 API Reference +FreeType-2.9.1 API Reference + + + + +

    FreeType-2.9.1 API Reference

    + +

    The Type 1 and CID drivers

    + +

    It is possible to control the behaviour of FreeType's Type 1 and Type 1 CID drivers with FT_Property_Set and FT_Property_Get.

    +

    Behind the scenes, both drivers use the Adobe CFF engine for hinting; however, the used properties must be specified separately.

    +

    The Type 1 driver's module name is ‘type1’; the CID driver's module name is ‘t1cid’.

    +

    Available properties are hinting-engine, no-stem-darkening, darkening-parameters, and random-seed, as documented in the ‘Driver properties’ section.

    +

    Please see the ‘The CFF driver’ section for more details on the new hinting engine.

    + + + diff --git a/modules/freetype2/docs/reference/ft2-toc.html b/modules/freetype2/docs/reference/ft2-toc.html index ff3efe95e..c803ca1de 100644 --- a/modules/freetype2/docs/reference/ft2-toc.html +++ b/modules/freetype2/docs/reference/ft2-toc.html @@ -1,9 +1,9 @@ +"https://www.w3.org/TR/html4/loose.dtd"> -FreeType-2.7.1 API Reference +FreeType-2.9.1 API Reference