From 4753d050bd3af817ecd785fe9035f6123f31957d Mon Sep 17 00:00:00 2001
From: Andrea Marchesini
Date: Sun, 17 Sep 2017 11:18:20 +0200
Subject: [PATCH 1/8] Bug 1396848 - Iterating a Header object returns sorted
and combined values, r=qdot
---
dom/fetch/InternalHeaders.cpp | 58 +++++++++++++++++++
dom/fetch/InternalHeaders.h | 31 +++++++---
.../mochitest/fetch/test_headers_common.js | 10 ++--
.../fetch/api/headers/headers-basic.html.ini | 14 -----
4 files changed, 86 insertions(+), 27 deletions(-)
diff --git a/dom/fetch/InternalHeaders.cpp b/dom/fetch/InternalHeaders.cpp
index c7d00ae28cfa..de67b1dff26c 100644
--- a/dom/fetch/InternalHeaders.cpp
+++ b/dom/fetch/InternalHeaders.cpp
@@ -22,12 +22,14 @@ InternalHeaders::InternalHeaders(const nsTArray&& aHeaders,
HeadersGuardEnum aGuard)
: mGuard(aGuard)
, mList(aHeaders)
+ , mListDirty(true)
{
}
InternalHeaders::InternalHeaders(const nsTArray& aHeadersEntryList,
HeadersGuardEnum aGuard)
: mGuard(aGuard)
+ , mListDirty(true)
{
for (const HeadersEntry& headersEntry : aHeadersEntryList) {
mList.AppendElement(Entry(headersEntry.name(), headersEntry.value()));
@@ -59,6 +61,8 @@ InternalHeaders::Append(const nsACString& aName, const nsACString& aValue,
return;
}
+ SetListDirty();
+
mList.AppendElement(Entry(lowerName, trimValue));
}
@@ -72,6 +76,8 @@ InternalHeaders::Delete(const nsACString& aName, ErrorResult& aRv)
return;
}
+ SetListDirty();
+
// remove in reverse order to minimize copying
for (int32_t i = mList.Length() - 1; i >= 0; --i) {
if (lowerName == mList[i].mName) {
@@ -160,6 +166,8 @@ InternalHeaders::Set(const nsACString& aName, const nsACString& aValue, ErrorRes
return;
}
+ SetListDirty();
+
int32_t firstIndex = INT32_MAX;
// remove in reverse order to minimize copying
@@ -182,6 +190,7 @@ InternalHeaders::Set(const nsACString& aName, const nsACString& aValue, ErrorRes
void
InternalHeaders::Clear()
{
+ SetListDirty();
mList.Clear();
}
@@ -470,5 +479,54 @@ InternalHeaders::GetUnsafeHeaders(nsTArray& aNames) const
}
}
+void
+InternalHeaders::MaybeSortList()
+{
+ class Comparator {
+ public:
+ bool Equals(const Entry& aA, const Entry& aB) const
+ {
+ return aA.mName == aB.mName;
+ }
+
+ bool LessThan(const Entry& aA, const Entry& aB) const
+ {
+ return aA.mName < aB.mName;
+ }
+ };
+
+ if (!mListDirty) {
+ return;
+ }
+
+ mListDirty = false;
+
+ Comparator comparator;
+
+ mSortedList.Clear();
+ for (const Entry& entry : mList) {
+ bool found = false;
+ for (Entry& sortedEntry : mSortedList) {
+ if (sortedEntry.mName == entry.mName) {
+ sortedEntry.mValue += ", ";
+ sortedEntry.mValue += entry.mValue;
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ mSortedList.InsertElementSorted(entry, comparator);
+ }
+ }
+}
+
+void
+InternalHeaders::SetListDirty()
+{
+ mSortedList.Clear();
+ mListDirty = true;
+}
+
} // namespace dom
} // namespace mozilla
diff --git a/dom/fetch/InternalHeaders.h b/dom/fetch/InternalHeaders.h
index a3fedd8141f1..501fe59cff6e 100644
--- a/dom/fetch/InternalHeaders.h
+++ b/dom/fetch/InternalHeaders.h
@@ -45,14 +45,23 @@ private:
HeadersGuardEnum mGuard;
nsTArray mList;
+ nsTArray mSortedList;
+
+ // This boolean is set to true at any writing operation to mList. It's set to
+ // false when mSortedList is regenerated. This happens when the header is
+ // iterated.
+ bool mListDirty;
+
public:
explicit InternalHeaders(HeadersGuardEnum aGuard = HeadersGuardEnum::None)
: mGuard(aGuard)
+ , mListDirty(false)
{
}
explicit InternalHeaders(const InternalHeaders& aOther)
: mGuard(HeadersGuardEnum::None)
+ , mListDirty(true)
{
ErrorResult result;
Fill(aOther, result);
@@ -79,19 +88,22 @@ public:
bool Has(const nsACString& aName, ErrorResult& aRv) const;
void Set(const nsACString& aName, const nsACString& aValue, ErrorResult& aRv);
- uint32_t GetIterableLength() const
+ uint32_t GetIterableLength()
{
- return mList.Length();
+ MaybeSortList();
+ return mSortedList.Length();
}
- const NS_ConvertASCIItoUTF16 GetKeyAtIndex(unsigned aIndex) const
+ const NS_ConvertASCIItoUTF16 GetKeyAtIndex(unsigned aIndex)
{
- MOZ_ASSERT(aIndex < mList.Length());
- return NS_ConvertASCIItoUTF16(mList[aIndex].mName);
+ MaybeSortList();
+ MOZ_ASSERT(aIndex < mSortedList.Length());
+ return NS_ConvertASCIItoUTF16(mSortedList[aIndex].mName);
}
- const NS_ConvertASCIItoUTF16 GetValueAtIndex(unsigned aIndex) const
+ const NS_ConvertASCIItoUTF16 GetValueAtIndex(unsigned aIndex)
{
- MOZ_ASSERT(aIndex < mList.Length());
- return NS_ConvertASCIItoUTF16(mList[aIndex].mValue);
+ MaybeSortList();
+ MOZ_ASSERT(aIndex < mSortedList.Length());
+ return NS_ConvertASCIItoUTF16(mSortedList[aIndex].mValue);
}
void Clear();
@@ -153,6 +165,9 @@ private:
const nsACString& aValue);
static bool IsRevalidationHeader(const nsACString& aName);
+
+ void MaybeSortList();
+ void SetListDirty();
};
} // namespace dom
diff --git a/dom/tests/mochitest/fetch/test_headers_common.js b/dom/tests/mochitest/fetch/test_headers_common.js
index 955b1e4481a4..c5a3965c8b70 100644
--- a/dom/tests/mochitest/fetch/test_headers_common.js
+++ b/dom/tests/mochitest/fetch/test_headers_common.js
@@ -240,12 +240,12 @@ function TestHeadersIterator() {
var value_iter = headers.values();
var entries_iter = headers.entries();
- arrayEquals(iterate(key_iter), ["foo", "foo", "foo2"], "Correct key iterator");
- arrayEquals(iterate(value_iter), ["bar", ehsanInflated, "baz2"], "Correct value iterator");
- arrayEquals(iterate(entries_iter), [["foo", "bar"], ["foo", ehsanInflated], ["foo2", "baz2"]], "Correct entries iterator");
+ arrayEquals(iterate(key_iter), ["foo", "foo2"], "Correct key iterator");
+ arrayEquals(iterate(value_iter), ["bar, " + ehsanInflated, "baz2"], "Correct value iterator");
+ arrayEquals(iterate(entries_iter), [["foo", "bar, " + ehsanInflated], ["foo2", "baz2"]], "Correct entries iterator");
- arrayEquals(iterateForOf(headers), [["foo", "bar"], ["foo", ehsanInflated], ["foo2", "baz2"]], "Correct entries iterator");
- arrayEquals(iterateForOf(new Headers(headers)), [["foo", "bar"], ["foo", ehsanInflated], ["foo2", "baz2"]], "Correct entries iterator");
+ arrayEquals(iterateForOf(headers), [["foo", "bar, " + ehsanInflated], ["foo2", "baz2"]], "Correct entries iterator");
+ arrayEquals(iterateForOf(new Headers(headers)), [["foo", "bar, " + ehsanInflated], ["foo2", "baz2"]], "Correct entries iterator");
}
function runTest() {
diff --git a/testing/web-platform/meta/fetch/api/headers/headers-basic.html.ini b/testing/web-platform/meta/fetch/api/headers/headers-basic.html.ini
index f65304b2112e..4012104a5d48 100644
--- a/testing/web-platform/meta/fetch/api/headers/headers-basic.html.ini
+++ b/testing/web-platform/meta/fetch/api/headers/headers-basic.html.ini
@@ -1,19 +1,5 @@
[headers-basic.html]
type: testharness
- [Check keys method]
- expected: FAIL
-
- [Check values method]
- expected: FAIL
-
- [Check entries method]
- expected: FAIL
-
- [Check Symbol.iterator method]
- expected: FAIL
-
- [Check forEach method]
- expected: FAIL
[Create headers with existing headers with custom iterator]
expected: FAIL
From e5750cee50b2d80151319677660c196f52a5f7cd Mon Sep 17 00:00:00 2001
From: Ryan VanderMeulen
Date: Sun, 17 Sep 2017 07:36:44 -0400
Subject: [PATCH 2/8] Bug 1400602 - Update Freetype to version 2.8.1.
r=jfkthame
---
modules/freetype2/CMakeLists.txt | 2 +-
modules/freetype2/ChangeLog | 1113 ++++++++++++++++-
modules/freetype2/ChangeLog.24 | 4 +-
modules/freetype2/ChangeLog.25 | 2 +-
modules/freetype2/Jamfile | 2 +-
modules/freetype2/LICENSE.TXT | 78 +-
modules/freetype2/README | 10 +-
modules/freetype2/builds/mac/ftmac.c | 4 +-
modules/freetype2/builds/unix/config.guess | 54 +-
modules/freetype2/builds/unix/config.sub | 16 +-
modules/freetype2/builds/unix/configure | 24 +-
modules/freetype2/builds/unix/configure.ac | 6 +-
modules/freetype2/builds/unix/configure.raw | 4 +-
.../freetype2/builds/unix/freetype-config.in | 18 +-
modules/freetype2/builds/unix/unix-def.in | 2 +
.../builds/wince/vc2005-ce/freetype.vcproj | 76 +-
.../builds/wince/vc2005-ce/index.html | 10 +-
.../builds/wince/vc2008-ce/freetype.vcproj | 76 +-
.../builds/wince/vc2008-ce/index.html | 10 +-
modules/freetype2/builds/windows/detect.mk | 2 +-
.../builds/windows/vc2005/freetype.vcproj | 12 +-
.../builds/windows/vc2005/index.html | 10 +-
.../builds/windows/vc2008/freetype.vcproj | 12 +-
.../builds/windows/vc2008/index.html | 10 +-
.../builds/windows/vc2010/freetype.vcxproj | 62 +-
.../builds/windows/vc2010/index.html | 14 +-
.../builds/windows/visualc/freetype.dsp | 20 +-
.../builds/windows/visualc/freetype.vcproj | 12 +-
.../builds/windows/visualc/index.html | 10 +-
.../builds/windows/visualce/freetype.dsp | 20 +-
.../builds/windows/visualce/freetype.vcproj | 84 +-
.../builds/windows/visualce/index.html | 10 +-
modules/freetype2/devel/ftoption.h | 23 +-
modules/freetype2/docs/CHANGES | 99 +-
modules/freetype2/docs/INSTALL.VMS | 12 +-
modules/freetype2/docs/VERSIONS.TXT | 3 +-
modules/freetype2/docs/freetype-config.1 | 2 +-
.../docs/reference/ft2-auto_hinter.html | 8 +-
.../docs/reference/ft2-base_interface.html | 20 +-
.../docs/reference/ft2-basic_types.html | 4 +-
.../docs/reference/ft2-bdf_fonts.html | 4 +-
.../docs/reference/ft2-bitmap_handling.html | 4 +-
.../freetype2/docs/reference/ft2-bzip2.html | 4 +-
.../docs/reference/ft2-cache_subsystem.html | 4 +-
.../docs/reference/ft2-cff_driver.html | 4 +-
.../docs/reference/ft2-cid_fonts.html | 4 +-
.../docs/reference/ft2-computations.html | 11 +-
.../docs/reference/ft2-error_code_values.html | 6 +-
.../reference/ft2-error_enumerations.html | 8 +-
.../docs/reference/ft2-font_formats.html | 4 +-
.../docs/reference/ft2-gasp_table.html | 4 +-
.../docs/reference/ft2-glyph_management.html | 7 +-
.../docs/reference/ft2-glyph_stroker.html | 4 +-
.../docs/reference/ft2-glyph_variants.html | 4 +-
.../docs/reference/ft2-gx_validation.html | 4 +-
.../freetype2/docs/reference/ft2-gzip.html | 4 +-
.../reference/ft2-header_file_macros.html | 4 +-
.../docs/reference/ft2-header_inclusion.html | 4 +-
.../docs/reference/ft2-incremental.html | 4 +-
.../freetype2/docs/reference/ft2-index.html | 543 ++++----
.../docs/reference/ft2-lcd_filtering.html | 8 +-
.../docs/reference/ft2-list_processing.html | 4 +-
modules/freetype2/docs/reference/ft2-lzw.html | 4 +-
.../docs/reference/ft2-mac_specific.html | 4 +-
.../docs/reference/ft2-module_management.html | 4 +-
.../docs/reference/ft2-multiple_masters.html | 87 +-
.../docs/reference/ft2-ot_validation.html | 4 +-
.../reference/ft2-outline_processing.html | 7 +-
.../docs/reference/ft2-pcf_driver.html | 4 +-
.../docs/reference/ft2-pfr_fonts.html | 4 +-
.../docs/reference/ft2-quick_advance.html | 4 +-
.../freetype2/docs/reference/ft2-raster.html | 14 +-
.../docs/reference/ft2-sfnt_names.html | 4 +-
.../docs/reference/ft2-sizes_management.html | 4 +-
.../docs/reference/ft2-system_interface.html | 4 +-
modules/freetype2/docs/reference/ft2-toc.html | 6 +-
.../docs/reference/ft2-truetype_engine.html | 4 +-
.../docs/reference/ft2-truetype_tables.html | 4 +-
.../docs/reference/ft2-tt_driver.html | 4 +-
.../docs/reference/ft2-type1_tables.html | 4 +-
.../docs/reference/ft2-user_allocation.html | 4 +-
.../freetype2/docs/reference/ft2-version.html | 6 +-
.../docs/reference/ft2-winfnt_fonts.html | 4 +-
.../include/freetype/config/ftoption.h | 21 +-
modules/freetype2/include/freetype/freetype.h | 37 +-
modules/freetype2/include/freetype/ftautoh.h | 14 +-
modules/freetype2/include/freetype/fterrdef.h | 2 +
modules/freetype2/include/freetype/fterrors.h | 6 +-
modules/freetype2/include/freetype/ftglyph.h | 9 +
modules/freetype2/include/freetype/ftimage.h | 20 +-
modules/freetype2/include/freetype/ftlcdfil.h | 19 +-
modules/freetype2/include/freetype/ftmac.h | 9 +-
modules/freetype2/include/freetype/ftmm.h | 64 +-
modules/freetype2/include/freetype/ftoutln.h | 3 +
.../include/freetype/internal/ftcalc.h | 36 +-
.../include/freetype/internal/ftobjs.h | 34 +-
modules/freetype2/include/freetype/tttags.h | 6 +
modules/freetype2/src/autofit/afblue.c | 12 +-
modules/freetype2/src/autofit/afblue.dat | 20 +-
modules/freetype2/src/autofit/afblue.h | 10 +-
modules/freetype2/src/autofit/afcjk.c | 12 +-
modules/freetype2/src/autofit/afhints.c | 6 +-
modules/freetype2/src/autofit/aflatin.c | 33 +-
modules/freetype2/src/autofit/aflatin2.c | 12 +-
modules/freetype2/src/autofit/afloader.c | 8 +-
modules/freetype2/src/autofit/afscript.h | 24 +-
modules/freetype2/src/autofit/afshaper.c | 1 +
modules/freetype2/src/autofit/afstyles.h | 28 +-
modules/freetype2/src/base/ftbitmap.c | 5 +-
modules/freetype2/src/base/ftcalc.c | 146 ++-
modules/freetype2/src/base/ftglyph.c | 16 +
modules/freetype2/src/base/ftlcdfil.c | 207 ++-
modules/freetype2/src/base/ftmac.c | 2 +-
modules/freetype2/src/base/ftmm.c | 32 +-
modules/freetype2/src/base/ftobjs.c | 38 +-
modules/freetype2/src/base/ftoutln.c | 3 +-
modules/freetype2/src/base/ftrfork.c | 10 +-
modules/freetype2/src/base/ftsynth.c | 2 +-
modules/freetype2/src/base/ftutil.c | 10 +-
modules/freetype2/src/bdf/bdfdrivr.c | 144 ++-
modules/freetype2/src/bdf/bdflib.c | 40 +-
modules/freetype2/src/cache/ftcbasic.c | 38 +-
modules/freetype2/src/cff/cf2blues.c | 45 +-
modules/freetype2/src/cff/cf2blues.h | 2 +-
modules/freetype2/src/cff/cf2fixed.h | 4 +-
modules/freetype2/src/cff/cf2font.c | 4 +-
modules/freetype2/src/cff/cf2ft.c | 4 +-
modules/freetype2/src/cff/cf2hints.c | 251 ++--
modules/freetype2/src/cff/cf2intrp.c | 179 +--
modules/freetype2/src/cff/cffgload.c | 207 +--
modules/freetype2/src/cff/cffload.c | 9 +-
modules/freetype2/src/cff/cffparse.c | 27 +-
modules/freetype2/src/gxvalid/README | 2 +-
modules/freetype2/src/pcf/README | 4 +-
modules/freetype2/src/pcf/pcfdrivr.c | 12 +-
modules/freetype2/src/pcf/pcfread.c | 78 +-
modules/freetype2/src/pfr/pfrobjs.c | 6 -
modules/freetype2/src/psaux/psconv.c | 8 +
modules/freetype2/src/psaux/t1decode.c | 92 +-
modules/freetype2/src/raster/ftrend1.c | 9 +-
modules/freetype2/src/sfnt/pngshim.c | 72 +-
modules/freetype2/src/sfnt/sfobjs.c | 51 +-
modules/freetype2/src/sfnt/ttcmap.c | 112 +-
modules/freetype2/src/sfnt/ttcmap.h | 2 +
modules/freetype2/src/sfnt/ttkern.c | 8 +-
modules/freetype2/src/sfnt/ttpost.c | 7 +-
modules/freetype2/src/sfnt/ttsbit.c | 20 +-
modules/freetype2/src/smooth/ftgrays.c | 15 +-
modules/freetype2/src/smooth/ftsmooth.c | 196 +--
modules/freetype2/src/tools/ftfuzzer/README | 6 +-
modules/freetype2/src/truetype/ttgload.c | 101 +-
modules/freetype2/src/truetype/ttgxvar.c | 97 +-
modules/freetype2/src/truetype/ttinterp.c | 303 +++--
modules/freetype2/src/truetype/ttinterp.h | 50 +-
modules/freetype2/src/truetype/ttobjs.c | 16 +-
modules/freetype2/src/truetype/ttpload.c | 8 +-
modules/freetype2/src/type1/t1load.c | 4 +-
modules/freetype2/src/type1/t1objs.c | 6 -
modules/freetype2/src/type42/t42objs.c | 6 -
modules/freetype2/src/winfonts/winfnt.c | 6 +-
modules/freetype2/vms_make.com | 14 +-
161 files changed, 4109 insertions(+), 1864 deletions(-)
diff --git a/modules/freetype2/CMakeLists.txt b/modules/freetype2/CMakeLists.txt
index d1b053e2b002..8115f1a4b691 100644
--- a/modules/freetype2/CMakeLists.txt
+++ b/modules/freetype2/CMakeLists.txt
@@ -154,7 +154,7 @@ endif ()
set(VERSION_MAJOR "2")
set(VERSION_MINOR "8")
-set(VERSION_PATCH "0")
+set(VERSION_PATCH "1")
set(PROJECT_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
set(SHARED_LIBRARY_VERSION ${VERSION_MAJOR}.${VERSION_MINOR})
diff --git a/modules/freetype2/ChangeLog b/modules/freetype2/ChangeLog
index b81af155d0dc..f6de03c78e95 100644
--- a/modules/freetype2/ChangeLog
+++ b/modules/freetype2/ChangeLog
@@ -1,3 +1,1106 @@
+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.
@@ -327,7 +1430,7 @@
[truetype] Do linear scaling for FT_LOAD_NO_HINTING (#50470).
- * src/truetype/ttobs.h (TT_SizeRec): Add field `hinted_metrics' to
+ * 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.
@@ -1096,7 +2199,7 @@
* src/sfnt/sfdriver.c (search_name_id): Rename to...
(sfnt_get_name_id): ... this.
- (sfnt_get_ps_name, sfnt_interface): Udpated.
+ (sfnt_get_ps_name, sfnt_interface): Updated.
2017-03-04 Werner Lemberg
@@ -1522,7 +2625,7 @@
* include/freetype/ftsnames.h (FT_SfntLangTag): New structure.
(FT_Get_Sfnt_LangTag): New declaration.
- * src/base/ftsnames.c (FT_Get_Sfnt_LangTag): New funtion.
+ * src/base/ftsnames.c (FT_Get_Sfnt_LangTag): New function.
* docs/CHANGES: Updated.
@@ -2521,7 +3624,7 @@
[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.
+ `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).
@@ -3545,7 +4648,7 @@
https://bugzilla.mozilla.org/show_bug.cgi?id=1270288
- * src/cff/cf2interp.c (cf2_interpT2CharString): Initialize `storage'
+ * src/cff/cf2intrp.c (cf2_interpT2CharString): Initialize `storage'
array to handle a `get' opcode without a previous `put'.
2016-09-05 Alexei Podtelezhnikov
diff --git a/modules/freetype2/ChangeLog.24 b/modules/freetype2/ChangeLog.24
index 796763cd7b3a..e33b8f5e98c3 100644
--- a/modules/freetype2/ChangeLog.24
+++ b/modules/freetype2/ChangeLog.24
@@ -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
diff --git a/modules/freetype2/ChangeLog.25 b/modules/freetype2/ChangeLog.25
index d7fed710da54..f3e5cc1aca65 100644
--- a/modules/freetype2/ChangeLog.25
+++ b/modules/freetype2/ChangeLog.25
@@ -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
diff --git a/modules/freetype2/Jamfile b/modules/freetype2/Jamfile
index 5df9b8fef75f..aa3d9f0dbb01 100644
--- a/modules/freetype2/Jamfile
+++ b/modules/freetype2/Jamfile
@@ -210,7 +210,7 @@ actions RefDoc
{
python $(FT2_SRC)/tools/docmaker/docmaker.py
--prefix=ft2
- --title=FreeType-2.8
+ --title=FreeType-2.8.1
--output=$(DOC_DIR)
$(FT2_INCLUDE)/freetype/*.h
$(FT2_INCLUDE)/freetype/config/*.h
diff --git a/modules/freetype2/LICENSE.TXT b/modules/freetype2/LICENSE.TXT
index af5a1c50f65b..f346fc1909ad 100644
--- a/modules/freetype2/LICENSE.TXT
+++ b/modules/freetype2/LICENSE.TXT
@@ -1,39 +1,39 @@
-
-The FreeType 2 font engine is copyrighted work and cannot be used
-legally without a software license. In order to make this project
-usable to a vast majority of developers, we distribute it under two
-mutually exclusive open-source licenses.
-
-This means that *you* must choose *one* of the two licenses described
-below, then obey all its terms and conditions when using FreeType 2 in
-any of your projects or products.
-
- - The FreeType License, found in the file `FTL.TXT', which is similar
- to the original BSD license *with* an advertising clause that forces
- you to explicitly cite the FreeType project in your product's
- documentation. All details are in the license file. This license
- is suited to products which don't use the GNU General Public
- License.
-
- Note that this license is compatible to the GNU General Public
- License version 3, but not version 2.
-
- - The GNU General Public License version 2, found in `GPLv2.TXT' (any
- later version can be used also), for programs which already use the
- GPL. Note that the FTL is incompatible with GPLv2 due to its
- advertisement clause.
-
-The contributed BDF and PCF drivers come with a license similar to that
-of the X Window System. It is compatible to the above two licenses (see
-file src/bdf/README and src/pcf/README). The same holds for the files
-`fthash.c' and `fthash.h'; their code was part of the BDF driver in
-earlier FreeType versions.
-
-The gzip module uses the zlib license (see src/gzip/zlib.h) which too is
-compatible to the above two licenses.
-
-The MD5 checksum support (only used for debugging in development builds)
-is in the public domain.
-
-
---- end of LICENSE.TXT ---
+
+The FreeType 2 font engine is copyrighted work and cannot be used
+legally without a software license. In order to make this project
+usable to a vast majority of developers, we distribute it under two
+mutually exclusive open-source licenses.
+
+This means that *you* must choose *one* of the two licenses described
+below, then obey all its terms and conditions when using FreeType 2 in
+any of your projects or products.
+
+ - The FreeType License, found in the file `FTL.TXT', which is similar
+ to the original BSD license *with* an advertising clause that forces
+ you to explicitly cite the FreeType project in your product's
+ documentation. All details are in the license file. This license
+ is suited to products which don't use the GNU General Public
+ License.
+
+ Note that this license is compatible to the GNU General Public
+ License version 3, but not version 2.
+
+ - The GNU General Public License version 2, found in `GPLv2.TXT' (any
+ later version can be used also), for programs which already use the
+ GPL. Note that the FTL is incompatible with GPLv2 due to its
+ advertisement clause.
+
+The contributed BDF and PCF drivers come with a license similar to that
+of the X Window System. It is compatible to the above two licenses (see
+file src/bdf/README and src/pcf/README). The same holds for the files
+`fthash.c' and `fthash.h'; their code was part of the BDF driver in
+earlier FreeType versions.
+
+The gzip module uses the zlib license (see src/gzip/zlib.h) which too is
+compatible to the above two licenses.
+
+The MD5 checksum support (only used for debugging in development builds)
+is in the public domain.
+
+
+--- end of LICENSE.TXT ---
diff --git a/modules/freetype2/README b/modules/freetype2/README
index 926e9dc1174b..35324b0a784a 100644
--- a/modules/freetype2/README
+++ b/modules/freetype2/README
@@ -1,5 +1,5 @@
- FreeType 2.8
- ============
+ FreeType 2.8.1
+ ==============
Homepage: http://www.freetype.org
@@ -24,9 +24,9 @@
and download one of the following files.
- freetype-doc-2.8.tar.bz2
- freetype-doc-2.8.tar.gz
- ftdoc28.zip
+ freetype-doc-2.8.1.tar.bz2
+ freetype-doc-2.8.1.tar.gz
+ ftdoc281.zip
To view the documentation online, go to
diff --git a/modules/freetype2/builds/mac/ftmac.c b/modules/freetype2/builds/mac/ftmac.c
index 60cf73e5ac1d..f5747a401a49 100644
--- a/modules/freetype2/builds/mac/ftmac.c
+++ b/modules/freetype2/builds/mac/ftmac.c
@@ -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/unix/config.guess b/modules/freetype2/builds/unix/config.guess
index 69ed3e573bb3..7834a66476c6 100755
--- a/modules/freetype2/builds/unix/config.guess
+++ b/modules/freetype2/builds/unix/config.guess
@@ -2,7 +2,7 @@
# Attempt to guess a canonical system name.
# Copyright 1992-2017 Free Software Foundation, Inc.
-timestamp='2017-03-05'
+timestamp='2017-09-12'
# 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
@@ -259,6 +259,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:Sortix:*:*)
echo ${UNAME_MACHINE}-unknown-sortix
exit ;;
+ *:Redox:*:*)
+ echo ${UNAME_MACHINE}-unknown-redox
+ exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
@@ -315,15 +318,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
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 ;;
@@ -855,10 +849,6 @@ EOF
*:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
- exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
@@ -874,27 +864,12 @@ EOF
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
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/[^.]*//'`
exit ;;
@@ -1304,14 +1279,21 @@ EOF
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
@@ -1335,16 +1317,16 @@ EOF
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
- NEO-?:NONSTOP_KERNEL:*:*)
+ NEO-*:NONSTOP_KERNEL:*:*)
echo neo-tandem-nsk${UNAME_RELEASE}
exit ;;
NSE-*:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
+ NSR-*:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
exit ;;
- NSX-?:NONSTOP_KERNEL:*:*)
+ NSX-*:NONSTOP_KERNEL:*:*)
echo nsx-tandem-nsk${UNAME_RELEASE}
exit ;;
*:NonStop-UX:*:*)
@@ -1422,8 +1404,8 @@ cat >&2 <.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='FreeType'
PACKAGE_TARNAME='freetype'
-PACKAGE_VERSION='2.8'
-PACKAGE_STRING='FreeType 2.8'
+PACKAGE_VERSION='2.8.1'
+PACKAGE_STRING='FreeType 2.8.1'
PACKAGE_BUGREPORT='freetype@nongnu.org'
PACKAGE_URL=''
@@ -1329,7 +1329,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.8 to adapt to many kinds of systems.
+\`configure' configures FreeType 2.8.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1394,7 +1394,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of FreeType 2.8:";;
+ short | recursive ) echo "Configuration of FreeType 2.8.1:";;
esac
cat <<\_ACEOF
@@ -1541,7 +1541,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-FreeType configure 2.8
+FreeType configure 2.8.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2139,7 +2139,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.8, which was
+It was created by FreeType $as_me 2.8.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2495,7 +2495,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
# Don't forget to update `docs/VERSIONS.TXT'!
-version_info='20:0:14'
+version_info='21:0:15'
ft_version=`echo $version_info | tr : .`
@@ -13193,8 +13193,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
@@ -15017,7 +15017,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.8, which was
+This file was extended by FreeType $as_me 2.8.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -15083,7 +15083,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.8
+FreeType config.status 2.8.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/modules/freetype2/builds/unix/configure.ac b/modules/freetype2/builds/unix/configure.ac
index 7cdafccc1769..9da9f0bdd2f2 100644
--- a/modules/freetype2/builds/unix/configure.ac
+++ b/modules/freetype2/builds/unix/configure.ac
@@ -11,13 +11,13 @@
# indicate that you have read the license and understand and accept it
# fully.
-AC_INIT([FreeType], [2.8], [freetype@nongnu.org], [freetype])
+AC_INIT([FreeType], [2.8.1], [freetype@nongnu.org], [freetype])
AC_CONFIG_SRCDIR([ftconfig.in])
# Don't forget to update `docs/VERSIONS.TXT'!
-version_info='20:0:14'
+version_info='21:0:15'
AC_SUBST([version_info])
ft_version=`echo $version_info | tr : .`
AC_SUBST([ft_version])
@@ -275,7 +275,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])])
diff --git a/modules/freetype2/builds/unix/configure.raw b/modules/freetype2/builds/unix/configure.raw
index ef6debed4e5a..d91a732669d5 100644
--- a/modules/freetype2/builds/unix/configure.raw
+++ b/modules/freetype2/builds/unix/configure.raw
@@ -17,7 +17,7 @@ AC_CONFIG_SRCDIR([ftconfig.in])
# Don't forget to update `docs/VERSIONS.TXT'!
-version_info='20:0:14'
+version_info='21:0:15'
AC_SUBST([version_info])
ft_version=`echo $version_info | tr : .`
AC_SUBST([ft_version])
@@ -275,7 +275,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])])
diff --git a/modules/freetype2/builds/unix/freetype-config.in b/modules/freetype2/builds/unix/freetype-config.in
index 97de13449851..2c1c160f8836 100644
--- a/modules/freetype2/builds/unix/freetype-config.in
+++ b/modules/freetype2/builds/unix/freetype-config.in
@@ -14,7 +14,7 @@ export LC_ALL
# if `pkg-config' is available, use values from `freetype2.pc'
-pkg-config --version >/dev/null 2>&1
+%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
@@ -23,17 +23,17 @@ if test $? -eq 0 ; then
export PKG_CONFIG_SYSROOT_DIR
fi
- prefix=`pkg-config --variable prefix freetype2`
- exec_prefix=`pkg-config --variable exec_prefix freetype2`
+ 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`
+ includedir=`%PKG_CONFIG% --variable includedir freetype2`
+ libdir=`%PKG_CONFIG% --variable libdir freetype2`
- version=`pkg-config --modversion freetype2`
+ version=`%PKG_CONFIG% --modversion freetype2`
- cflags=`pkg-config --cflags freetype2`
- dynamic_libs=`pkg-config --libs freetype2`
- static_libs=`pkg-config --static --libs 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%"
diff --git a/modules/freetype2/builds/unix/unix-def.in b/modules/freetype2/builds/unix/unix-def.in
index feae99b6583b..34e06e38038e 100644
--- a/modules/freetype2/builds/unix/unix-def.in
+++ b/modules/freetype2/builds/unix/unix-def.in
@@ -62,6 +62,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 +103,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)|' \
diff --git a/modules/freetype2/builds/wince/vc2005-ce/freetype.vcproj b/modules/freetype2/builds/wince/vc2005-ce/freetype.vcproj
index a1c0e3729259..8805279462da 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 @@
-
+
diff --git a/modules/freetype2/builds/wince/vc2005-ce/index.html b/modules/freetype2/builds/wince/vc2005-ce/index.html
index fcb52bc5bcf9..87fbc5adc293 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.8 sources:
+It compiles the following libraries from the FreeType 2.8.1 sources:
- freetype28.lib - release build; single threaded
- freetype28_D.lib - debug build; single threaded
- freetype28MT.lib - release build; multi-threaded
- freetype28MT_D.lib - debug build; multi-threaded
+ freetype281.lib - release build; single threaded
+ freetype281_D.lib - debug build; single threaded
+ freetype281MT.lib - release build; multi-threaded
+ freetype281MT_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 273aa53d4f2f..2616df8b4fcf 100644
--- a/modules/freetype2/builds/wince/vc2008-ce/freetype.vcproj
+++ b/modules/freetype2/builds/wince/vc2008-ce/freetype.vcproj
@@ -88,7 +88,7 @@
/>
PPC/SP WM6 (Windows Mobile 6)
-It compiles the following libraries from the FreeType 2.8 sources:
+It compiles the following libraries from the FreeType 2.8.1 sources:
- freetype28.lib - release build; single threaded
- freetype28_D.lib - debug build; single threaded
- freetype28MT.lib - release build; multi-threaded
- freetype28MT_D.lib - debug build; multi-threaded
+ freetype281.lib - release build; single threaded
+ freetype281_D.lib - debug build; single threaded
+ freetype281MT.lib - release build; multi-threaded
+ freetype281MT_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 350d156059b8..2032934f541e 100644
--- a/modules/freetype2/builds/windows/detect.mk
+++ b/modules/freetype2/builds/windows/detect.mk
@@ -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)
diff --git a/modules/freetype2/builds/windows/vc2005/freetype.vcproj b/modules/freetype2/builds/windows/vc2005/freetype.vcproj
index e5e67d5b3ced..099c527b2e27 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 @@
-
+
diff --git a/modules/freetype2/builds/windows/vc2005/index.html b/modules/freetype2/builds/windows/vc2005/index.html
index 4bd9b75b7c05..2a00148894b5 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.8 sources:
+compiles the following libraries from the FreeType 2.8.1 sources:
- freetype28.lib - release build; single threaded
- freetype28_D.lib - debug build; single threaded
- freetype28MT.lib - release build; multi-threaded
- freetype28MT_D.lib - debug build; multi-threaded
+ freetype281.lib - release build; single threaded
+ freetype281_D.lib - debug build; single threaded
+ freetype281MT.lib - release build; multi-threaded
+ freetype281MT_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 a8bc67295f59..5b505dab9c29 100644
--- a/modules/freetype2/builds/windows/vc2008/freetype.vcproj
+++ b/modules/freetype2/builds/windows/vc2008/freetype.vcproj
@@ -70,7 +70,7 @@
/>
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.8 sources:
+compiles the following libraries from the FreeType 2.8.1 sources:
- freetype28.lib - release build; single threaded
- freetype28_D.lib - debug build; single threaded
- freetype28MT.lib - release build; multi-threaded
- freetype28MT_D.lib - debug build; multi-threaded
+ freetype281.lib - release build; single threaded
+ freetype281_D.lib - debug build; single threaded
+ freetype281MT.lib - release build; multi-threaded
+ freetype281MT_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.vcxproj b/modules/freetype2/builds/windows/vc2010/freetype.vcxproj
index e4f11fc1159c..5d8182e790fd 100644
--- a/modules/freetype2/builds/windows/vc2010/freetype.vcxproj
+++ b/modules/freetype2/builds/windows/vc2010/freetype.vcxproj
@@ -50,6 +50,32 @@
x64
+
+
+
+ 4.0
+
+
+
+ v100
+
+
+
+ v120
+
+
+
+ v140
+
+
+
+ v141
+
+
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}
@@ -58,73 +84,61 @@
StaticLibrary
false
MultiByte
- v100
StaticLibrary
false
MultiByte
- v100
StaticLibrary
false
MultiByte
- v100
StaticLibrary
false
MultiByte
- v100
StaticLibrary
false
MultiByte
- v100
StaticLibrary
false
MultiByte
- v100
StaticLibrary
false
MultiByte
- v100
StaticLibrary
false
MultiByte
- v100
StaticLibrary
false
MultiByte
- v100
StaticLibrary
false
MultiByte
- v100
StaticLibrary
false
MultiByte
- v100
StaticLibrary
false
MultiByte
- v100
@@ -191,18 +205,18 @@
- freetype28d
- freetype28d
- freetype28MTd
- freetype28MTd
- freetype28STd
- freetype28STd
- freetype28
- freetype28
- freetype28MT
- freetype28MT
- freetype28ST
- freetype28ST
+ freetype281d
+ freetype281d
+ freetype281MTd
+ freetype281MTd
+ freetype281STd
+ freetype281STd
+ freetype281
+ freetype281
+ freetype281MT
+ freetype281MT
+ freetype281ST
+ freetype281ST
diff --git a/modules/freetype2/builds/windows/vc2010/index.html b/modules/freetype2/builds/windows/vc2010/index.html
index c2b5800450ad..8209e2427140 100644
--- a/modules/freetype2/builds/windows/vc2010/index.html
+++ b/modules/freetype2/builds/windows/vc2010/index.html
@@ -12,16 +12,16 @@
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.8 sources:
+FreeType 2.8.1 sources:
- freetype28.lib - release build
- freetype28d.lib - debug build
- freetype28ST.lib - release build; single threaded
- freetype28STd.lib - debug build; single threaded
- freetype28MT.lib - release build; multi-threaded
- freetype28MTd.lib - debug build; multi-threaded
+ freetype281.lib - release build
+ freetype281d.lib - debug build
+ freetype281ST.lib - release build; single threaded
+ freetype281STd.lib - debug build; single threaded
+ freetype281MT.lib - release build; multi-threaded
+ freetype281MTd.lib - debug build; multi-threaded
Both Win32 and x64 builds are supported.
diff --git a/modules/freetype2/builds/windows/visualc/freetype.dsp b/modules/freetype2/builds/windows/visualc/freetype.dsp
index fc14b48ce28d..1a613128fce3 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\freetype28.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype281.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\freetype28_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype281_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\freetype28_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype28MT_D.lib"
+# ADD BASE LIB32 /nologo /out:"lib\freetype281_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype281MT_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\freetype28.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype28MT.lib"
+# ADD BASE LIB32 /nologo /out:"lib\freetype281.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype281MT.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\freetype28.lib"
-# ADD LIB32 /out:"..\..\..\objs\freetype28ST.lib"
+# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype281.lib"
+# ADD LIB32 /out:"..\..\..\objs\freetype281ST.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\freetype28_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype28ST_D.lib"
+# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype281_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype281ST_D.lib"
!ENDIF
diff --git a/modules/freetype2/builds/windows/visualc/freetype.vcproj b/modules/freetype2/builds/windows/visualc/freetype.vcproj
index 968f2ee756b7..67b147e47eb7 100644
--- a/modules/freetype2/builds/windows/visualc/freetype.vcproj
+++ b/modules/freetype2/builds/windows/visualc/freetype.vcproj
@@ -69,7 +69,7 @@
/>
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.8 sources:
+compiles the following libraries from the FreeType 2.8.1 sources:
- freetype28.lib - release build; single threaded
- freetype28_D.lib - debug build; single threaded
- freetype28MT.lib - release build; multi-threaded
- freetype28MT_D.lib - debug build; multi-threaded
+ freetype281.lib - release build; single threaded
+ freetype281_D.lib - debug build; single threaded
+ freetype281MT.lib - release build; multi-threaded
+ freetype281MT_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 fc14b48ce28d..1a613128fce3 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\freetype28.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype281.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\freetype28_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype281_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\freetype28_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype28MT_D.lib"
+# ADD BASE LIB32 /nologo /out:"lib\freetype281_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype281MT_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\freetype28.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype28MT.lib"
+# ADD BASE LIB32 /nologo /out:"lib\freetype281.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype281MT.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\freetype28.lib"
-# ADD LIB32 /out:"..\..\..\objs\freetype28ST.lib"
+# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype281.lib"
+# ADD LIB32 /out:"..\..\..\objs\freetype281ST.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\freetype28_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype28ST_D.lib"
+# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype281_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype281ST_D.lib"
!ENDIF
diff --git a/modules/freetype2/builds/windows/visualce/freetype.vcproj b/modules/freetype2/builds/windows/visualce/freetype.vcproj
index f28b3c140866..90084b40bf28 100644
--- a/modules/freetype2/builds/windows/visualce/freetype.vcproj
+++ b/modules/freetype2/builds/windows/visualce/freetype.vcproj
@@ -87,7 +87,7 @@
/>
PPC/SP WM6 (Windows Mobile 6)
-It compiles the following libraries from the FreeType 2.8 sources:
+It compiles the following libraries from the FreeType 2.8.1 sources:
- freetype28.lib - release build; single threaded
- freetype28_D.lib - debug build; single threaded
- freetype28MT.lib - release build; multi-threaded
- freetype28MT_D.lib - debug build; multi-threaded
+ freetype281.lib - release build; single threaded
+ freetype281_D.lib - debug build; single threaded
+ freetype281MT.lib - release build; multi-threaded
+ freetype281MT_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/devel/ftoption.h b/modules/freetype2/devel/ftoption.h
index db661e7fcbc6..9f9cac12909e 100644
--- a/modules/freetype2/devel/ftoption.h
+++ b/modules/freetype2/devel/ftoption.h
@@ -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 */
/*************************************************************************/
@@ -327,7 +324,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. */
diff --git a/modules/freetype2/docs/CHANGES b/modules/freetype2/docs/CHANGES
index 3ee9510d076c..510da893cbe7 100644
--- a/modules/freetype2/docs/CHANGES
+++ b/modules/freetype2/docs/CHANGES
@@ -1,4 +1,87 @@
+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
@@ -44,6 +127,20 @@ CHANGES BETWEEN 2.7.1 and 2.8
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).
@@ -748,7 +845,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').
diff --git a/modules/freetype2/docs/INSTALL.VMS b/modules/freetype2/docs/INSTALL.VMS
index 7a5174d2e62f..6ba48d39b5c1 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
diff --git a/modules/freetype2/docs/VERSIONS.TXT b/modules/freetype2/docs/VERSIONS.TXT
index e116d34cb534..eac4fc81698b 100644
--- a/modules/freetype2/docs/VERSIONS.TXT
+++ b/modules/freetype2/docs/VERSIONS.TXT
@@ -52,6 +52,7 @@ on _most_ systems, but not all of them:
release libtool so
-------------------------------
+ 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
@@ -99,7 +100,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)
diff --git a/modules/freetype2/docs/freetype-config.1 b/modules/freetype2/docs/freetype-config.1
index eaaa1b95b368..0170b11681fb 100644
--- a/modules/freetype2/docs/freetype-config.1
+++ b/modules/freetype2/docs/freetype-config.1
@@ -1,4 +1,4 @@
-.TH FREETYPE-CONFIG 1 "May 2017" "FreeType 2.8"
+.TH FREETYPE-CONFIG 1 "September 2017" "FreeType 2.8.1"
.
.
.SH NAME
diff --git a/modules/freetype2/docs/reference/ft2-auto_hinter.html b/modules/freetype2/docs/reference/ft2-auto_hinter.html
index f1770f861b1a..3cdf0548d64d 100644
--- a/modules/freetype2/docs/reference/ft2-auto_hinter.html
+++ b/modules/freetype2/docs/reference/ft2-auto_hinter.html
@@ -3,7 +3,7 @@
-FreeType-2.8 API Reference
+FreeType-2.8.1 API Reference