From 1493f9ba483a0489bbfb1597ae39f832ec75d093 Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Fri, 4 May 2012 10:07:31 +0000 Subject: graphite: Update from SIL SVN repository r1315 git-svn-id: svn://tug.org/texlive/trunk@26187 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/libs/README | 4 +- .../libs/graphite/engine-2.4-PATCHES/ChangeLog | 9 + .../libs/graphite/engine-2.4-PATCHES/TL-Changes | 10 +- .../graphite/engine-2.4-PATCHES/patch-01-warnings | 255 ----------------- .../engine-2.4-PATCHES/patch-05-copy-constr | 29 -- .../patch-06-static-const-members | 25 -- .../engine-2.4-PATCHES/patch-07-stdlib-workaround | 23 -- .../engine-2.4-PATCHES/patch-08-case-sensitive | 12 - .../engine-2.4-PATCHES/patch-10-svn_r1250_1308 | 30 +- .../engine-2.4-PATCHES/patch-12-svn_r1312_1315 | 311 +++++++++++++++++++++ .../libs/graphite/engine-2.4/src/font/TtfUtil.cpp | 8 +- .../test/RegressionTest/RegressionTest.cpp | 1 - .../engine-2.4/test/RegressionTest/TestCase.cpp | 1 - 13 files changed, 345 insertions(+), 373 deletions(-) delete mode 100644 Build/source/libs/graphite/engine-2.4-PATCHES/patch-01-warnings delete mode 100644 Build/source/libs/graphite/engine-2.4-PATCHES/patch-05-copy-constr delete mode 100644 Build/source/libs/graphite/engine-2.4-PATCHES/patch-06-static-const-members delete mode 100644 Build/source/libs/graphite/engine-2.4-PATCHES/patch-07-stdlib-workaround delete mode 100644 Build/source/libs/graphite/engine-2.4-PATCHES/patch-08-case-sensitive create mode 100644 Build/source/libs/graphite/engine-2.4-PATCHES/patch-12-svn_r1312_1315 (limited to 'Build') diff --git a/Build/source/libs/README b/Build/source/libs/README index 5235a3db490..c43f9b7f91e 100644 --- a/Build/source/libs/README +++ b/Build/source/libs/README @@ -19,10 +19,10 @@ gd 2.0.35 - unchecked 25apr11, site down http://www.boutell.com/gd/ https://bitbucket.org/pierrejoye/gd-libgd/overview -graphite 2.4 - checked 2may12 +graphite 2.4 - checked 4may12 the directory silgraphite/engine/ from http://scripts.sil.org/svn-public/graphite/graphite/trunk - (svn r1312 2012-05-01 20:27:08 UTC). + (svn r1315 2012-05-03 17:45:36 UTC). icu 49.1 (49.1 release) - http://download.icu-project.org/files/icu4c/ with modifications required for xetex, also used by bibtexu diff --git a/Build/source/libs/graphite/engine-2.4-PATCHES/ChangeLog b/Build/source/libs/graphite/engine-2.4-PATCHES/ChangeLog index 002fb3feea1..4dc12d78dbd 100644 --- a/Build/source/libs/graphite/engine-2.4-PATCHES/ChangeLog +++ b/Build/source/libs/graphite/engine-2.4-PATCHES/ChangeLog @@ -1,3 +1,12 @@ +2012-05-04 Peter Breitenlohner + + * patch-12-svn_r1312_1315 (new): Update from SVN r1312 -> 1315. + (svn r1315 2012-05-03 17:45:36 UTC). + * patch-01-warnings, patch-05-copy-constr, + patch-07-stdlib-workaround, patch-08-case-sensitive (removed): + Now in silgraphite repository. + * patch-06-static-const-members (removed): Unused (and buggy?). + 2012-05-02 Peter Breitenlohner * patch-11-svn_r1308_1312 (new): Update from SVN r1306 -> 1312. diff --git a/Build/source/libs/graphite/engine-2.4-PATCHES/TL-Changes b/Build/source/libs/graphite/engine-2.4-PATCHES/TL-Changes index 8131793ba13..b2a8dffd9cc 100644 --- a/Build/source/libs/graphite/engine-2.4-PATCHES/TL-Changes +++ b/Build/source/libs/graphite/engine-2.4-PATCHES/TL-Changes @@ -10,15 +10,13 @@ Executed the command: i.e., removed execute permissions from all files except configure. Converted Dos/Win line ends to native: + CMakeLists.txt build_d_vc8.bat build_vc8.bat makefile.vc8 + src/CMakeLists.txt + test/ProfileHarness/CMakeLists.txt + test/RegressionTest/CMakeLists.txt test/RegressionTest/Makefile.vc8 test/RegressionTest/RtTextSrc.h -Added newline at end of file: - build.bat - build_d.bat - build_d_vc8.bat - build_vc8.bat - diff --git a/Build/source/libs/graphite/engine-2.4-PATCHES/patch-01-warnings b/Build/source/libs/graphite/engine-2.4-PATCHES/patch-01-warnings deleted file mode 100644 index a6e92463956..00000000000 --- a/Build/source/libs/graphite/engine-2.4-PATCHES/patch-01-warnings +++ /dev/null @@ -1,255 +0,0 @@ -diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp ---- engine-2.4.orig/src/font/TtfUtil.cpp 2010-05-22 20:35:07.000000000 +0200 -+++ engine-2.4/src/font/TtfUtil.cpp 2012-03-16 23:55:47.000000000 +0100 -@@ -1250,7 +1250,7 @@ - (&pGlyph->end_pts_of_contours[cContours]); - - // skip over hints & point to first flag -- int cbHints = read(*(uint16 *)pbGlyph); -+ int cbHints = read(*(const uint16 *)pbGlyph); - pbGlyph += sizeof(uint16); - pbGlyph += cbHints; - -@@ -1304,7 +1304,7 @@ - } - else - { -- prgnX[iFlag] = read(*(int16 *)pbGlyph); -+ prgnX[iFlag] = read(*(const int16 *)pbGlyph); - pbGlyph += sizeof(int16); - } - } -@@ -1333,7 +1333,7 @@ - } - else - { -- prgnY[iFlag] = read(*(int16 *)pbGlyph); -+ prgnY[iFlag] = read(*(const int16 *)pbGlyph); - pbGlyph += sizeof(int16); - } - } -@@ -1369,9 +1369,9 @@ - size_t iCurrentComp = 0; - do - { -- GlyphFlags = read(*((uint16 *)pbGlyph)); -+ GlyphFlags = read(*((const uint16 *)pbGlyph)); - pbGlyph += sizeof(uint16); -- prgnCompId[iCurrentComp++] = read(*((uint16 *)pbGlyph)); -+ prgnCompId[iCurrentComp++] = read(*((const uint16 *)pbGlyph)); - pbGlyph += sizeof(uint16); - if (iCurrentComp >= cnCompIdTotal) - return false; -@@ -1413,18 +1413,18 @@ - uint16 GlyphFlags; - do - { -- GlyphFlags = read(*((uint16 *)pbGlyph)); -+ GlyphFlags = read(*((const uint16 *)pbGlyph)); - pbGlyph += sizeof(uint16); -- if (read(*((uint16 *)pbGlyph)) == nCompId) -+ if (read(*((const uint16 *)pbGlyph)) == nCompId) - { - pbGlyph += sizeof(uint16); // skip over glyph id of component - fOffset = (GlyphFlags & CompoundGlyph::ArgsAreXYValues) == CompoundGlyph::ArgsAreXYValues; - - if (GlyphFlags & CompoundGlyph::Arg1Arg2Words ) - { -- a = read(*(int16 *)pbGlyph); -+ a = read(*(const int16 *)pbGlyph); - pbGlyph += sizeof(int16); -- b = read(*(int16 *)pbGlyph); -+ b = read(*(const int16 *)pbGlyph); - pbGlyph += sizeof(int16); - } - else -@@ -1478,9 +1478,9 @@ - uint16 GlyphFlags; - do - { -- GlyphFlags = read(*((uint16 *)pbGlyph)); -+ GlyphFlags = read(*((const uint16 *)pbGlyph)); - pbGlyph += sizeof(uint16); -- if (read(*((uint16 *)pbGlyph)) == nCompId) -+ if (read(*((const uint16 *)pbGlyph)) == nCompId) - { - pbGlyph += sizeof(uint16); // skip over glyph id of component - pbGlyph += GlyphFlags & CompoundGlyph::Arg1Arg2Words ? 4 : 2; // skip over placement data -@@ -1492,7 +1492,7 @@ - - if (GlyphFlags & CompoundGlyph::HaveScale) - { -- flt11 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); -+ flt11 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); - pbGlyph += sizeof(uint16); - flt12 = 0; - flt21 = 0; -@@ -1500,22 +1500,22 @@ - } - else if (GlyphFlags & CompoundGlyph::HaveXAndYScale) - { -- flt11 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); -+ flt11 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); - pbGlyph += sizeof(uint16); - flt12 = 0; - flt21 = 0; -- flt22 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); -+ flt22 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); - pbGlyph += sizeof(uint16); - } - else if (GlyphFlags & CompoundGlyph::HaveTwoByTwo) - { -- flt11 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); -+ flt11 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); - pbGlyph += sizeof(uint16); -- flt12 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); -+ flt12 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); - pbGlyph += sizeof(uint16); -- flt21 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); -+ flt21 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); - pbGlyph += sizeof(uint16); -- flt22 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); -+ flt22 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); - pbGlyph += sizeof(uint16); - } - else -diff -ur engine-2.4.orig/src/segment/FileInput.cpp engine-2.4/src/segment/FileInput.cpp ---- engine-2.4.orig/src/segment/FileInput.cpp 2010-05-22 20:35:07.000000000 +0200 -+++ engine-2.4/src/segment/FileInput.cpp 2012-03-17 00:02:13.000000000 +0100 -@@ -88,7 +88,7 @@ - /*---------------------------------------------------------------------------------------------- - Initialize the stream to a buffer. - ----------------------------------------------------------------------------------------------*/ --bool GrBufferIStream::OpenBuffer(byte * pbBuffer, int cb) -+bool GrBufferIStream::OpenBuffer(const byte * pbBuffer, int cb) - { - Assert(m_pbStart == NULL); - Assert(m_pbNext == NULL); -diff -ur engine-2.4.orig/src/segment/FileInput.h engine-2.4/src/segment/FileInput.h ---- engine-2.4.orig/src/segment/FileInput.h 2008-05-20 10:02:16.000000000 +0200 -+++ engine-2.4/src/segment/FileInput.h 2012-03-17 00:02:13.000000000 +0100 -@@ -54,7 +54,7 @@ - virtual void GetPositionInFont(long * plPos) = 0; - virtual void SetPositionInFont(long lPos) = 0; - -- virtual bool OpenBuffer(byte * pbBuffer, int cb) = 0; -+ virtual bool OpenBuffer(const byte * pbBuffer, int cb) = 0; - virtual void CloseBuffer() = 0; - - protected: -@@ -87,16 +87,16 @@ - virtual void GetPositionInFont(long * plPos); - virtual void SetPositionInFont(long lPos); - -- virtual bool OpenBuffer(byte * pbBuffer, int cb); -+ virtual bool OpenBuffer(const byte * pbBuffer, int cb); - virtual void CloseBuffer() - { - Close(); - } - - protected: -- byte * m_pbStart; -- byte * m_pbNext; -- byte * m_pbLim; -+ const byte * m_pbStart; -+ const byte * m_pbNext; -+ const byte * m_pbLim; - }; - - } // namespace gr -diff -ur engine-2.4.orig/src/segment/FontFace.cpp engine-2.4/src/segment/FontFace.cpp ---- engine-2.4.orig/src/segment/FontFace.cpp 2011-03-21 17:13:25.000000000 +0100 -+++ engine-2.4/src/segment/FontFace.cpp 2012-03-17 00:02:13.000000000 +0100 -@@ -338,9 +338,9 @@ - - // ibGlocStart = cbGlatTbl; - fOk = CheckTableVersions(&grstrm, -- (byte *)pSilfTbl, 0, -- (byte *)pGlocTbl, 0, -- (byte *)pFeatTbl, 0, -+ (const byte *)pSilfTbl, 0, -+ (const byte *)pGlocTbl, 0, -+ (const byte *)pFeatTbl, 0, - &m_fxdBadVersion); - if (!fOk) - { -@@ -374,7 +374,7 @@ - try - { - // Parse the "Silf" table. -- grstrm.OpenBuffer((byte*)pSilfTbl, cbSilfSz); -+ grstrm.OpenBuffer((const byte*)pSilfTbl, cbSilfSz); - int chwGlyphIDMax, fxdVersion; - bool f = ReadSilfTable(grstrm, 0, 0, cbSilfSz, &chwGlyphIDMax, &fxdVersion); - grstrm.Close(); -@@ -389,8 +389,8 @@ - { - GrBufferIStream grstrmGlat; - -- grstrm.OpenBuffer((byte *)pGlocTbl, cbGlocSz); -- grstrmGlat.OpenBuffer((byte *)pGlatTbl, cbGlatSz); -+ grstrm.OpenBuffer((const byte *)pGlocTbl, cbGlocSz); -+ grstrmGlat.OpenBuffer((const byte *)pGlatTbl, cbGlatSz); - f = ReadGlocAndGlatTables(grstrm, 0, grstrmGlat, 0, chwGlyphIDMax, fxdVersion); - grstrm.Close(); - grstrmGlat.Close(); -@@ -403,7 +403,7 @@ - } - - // Parse the "Feat" table. -- grstrm.OpenBuffer((byte *)pFeatTbl, cbFeatSz); -+ grstrm.OpenBuffer((const byte *)pFeatTbl, cbFeatSz); - f = ReadFeatTable(grstrm, 0); - grstrm.Close(); - if (!f) -@@ -416,7 +416,7 @@ - // Parse the "Sill" table. - if (pSillTbl) - { -- grstrm.OpenBuffer((byte *)pSillTbl, cbSillSz); -+ grstrm.OpenBuffer((const byte *)pSillTbl, cbSillSz); - f = ReadSillTable(grstrm, 0); - grstrm.Close(); - if (!f) -@@ -549,7 +549,7 @@ - - if (!m_fNameTblCopy) - { -- res = (pNameTbl = (byte *)pfont->getTable(TtfUtil::TableIdTag(ktiName), &cbNameSz)) ? kresOk : kresFail; -+ res = (pNameTbl = (const byte *)pfont->getTable(TtfUtil::TableIdTag(ktiName), &cbNameSz)) ? kresOk : kresFail; - fOk = pNameTbl && (cbNameSz == 0 || TtfUtil::CheckTable(ktiName, pNameTbl, cbNameSz)); - if (!fOk) - { -diff -ur engine-2.4.orig/src/segment/GrEngine.cpp engine-2.4/src/segment/GrEngine.cpp ---- engine-2.4.orig/src/segment/GrEngine.cpp 2010-06-09 23:35:22.000000000 +0200 -+++ engine-2.4/src/segment/GrEngine.cpp 2012-03-17 00:02:13.000000000 +0100 -@@ -889,9 +889,9 @@ - implementation of the engine can't handle. - ----------------------------------------------------------------------------------------------*/ - bool GrEngine::CheckTableVersions(GrIStream * pgrstrm, -- byte *pSilfTbl, int lSilfStart, -- byte *pGlobTbl, int lGlocStart, -- byte *pFeatTbl, int lFeatStart, -+ const byte *pSilfTbl, int lSilfStart, -+ const byte *pGlobTbl, int lGlocStart, -+ const byte *pFeatTbl, int lFeatStart, - int * pfxdBadVersion) - { - pgrstrm->OpenBuffer(pSilfTbl, sizeof(int)); -diff -ur engine-2.4.orig/src/segment/GrEngine.h engine-2.4/src/segment/GrEngine.h ---- engine-2.4.orig/src/segment/GrEngine.h 2010-06-09 23:35:22.000000000 +0200 -+++ engine-2.4/src/segment/GrEngine.h 2012-03-17 00:02:13.000000000 +0100 -@@ -541,9 +541,9 @@ - void DestroyEverything(); - - bool CheckTableVersions(GrIStream * pgrstrm, -- byte *silf_tbl, int lSilfStart, -- byte *gloc_tbl, int lGlocStart, -- byte *feat_tbl, int lFeatStart, -+ const byte *silf_tbl, int lSilfStart, -+ const byte *gloc_tbl, int lGlocStart, -+ const byte *feat_tbl, int lFeatStart, - int * pfxdBadVersion); - //bool ReadSileTable(GrIStream & grstrm, long lTableSTart, - // int * pmFontEmUnits, bool * pfMismatchedBase); diff --git a/Build/source/libs/graphite/engine-2.4-PATCHES/patch-05-copy-constr b/Build/source/libs/graphite/engine-2.4-PATCHES/patch-05-copy-constr deleted file mode 100644 index f17b4c913ff..00000000000 --- a/Build/source/libs/graphite/engine-2.4-PATCHES/patch-05-copy-constr +++ /dev/null @@ -1,29 +0,0 @@ - Declare copy constructor's source as const. - Required by g++-4.3.2 for OpenSolaris x86_64. - Reported by Apostolos Syropoulos . - Patch proposed by Jonathan Kew . - -diff -ur engine-2.4.orig/include/graphite/Segment.h engine-2.4/include/graphite/Segment.h ---- engine-2.4.orig/include/graphite/Segment.h 2010-05-25 07:45:14.000000000 +0200 -+++ engine-2.4/include/graphite/Segment.h 2012-03-17 00:26:39.000000000 +0100 -@@ -64,7 +64,7 @@ - virtual ~Segment(); - - // Basic copy constructor: -- Segment(Segment & seg); -+ Segment(const Segment & seg); - - // For making modified copies of segments: - static Segment * LineContextSegment(Segment & seg, bool fStartLine, bool fEndLine); -diff -ur engine-2.4.orig/src/segment/Segment.cpp engine-2.4/src/segment/Segment.cpp ---- engine-2.4.orig/src/segment/Segment.cpp 2012-03-14 20:45:41.000000000 +0100 -+++ engine-2.4/src/segment/Segment.cpp 2012-03-17 00:27:49.000000000 +0100 -@@ -432,7 +432,7 @@ - /*---------------------------------------------------------------------------------------------- - Basic copy method. - ----------------------------------------------------------------------------------------------*/ --Segment::Segment(Segment & seg) -+Segment::Segment(const Segment & seg) - { - int islout; - diff --git a/Build/source/libs/graphite/engine-2.4-PATCHES/patch-06-static-const-members b/Build/source/libs/graphite/engine-2.4-PATCHES/patch-06-static-const-members deleted file mode 100644 index 348841cbcb8..00000000000 --- a/Build/source/libs/graphite/engine-2.4-PATCHES/patch-06-static-const-members +++ /dev/null @@ -1,25 +0,0 @@ - Initialized static const class members may need to be defined - in the enclosing scope. - -diff -ur engine-2.4.orig/test/RegressionTest/RegressionTest.cpp engine-2.4/test/RegressionTest/RegressionTest.cpp ---- engine-2.4.orig/test/RegressionTest/RegressionTest.cpp 2010-06-09 23:26:29.000000000 +0200 -+++ engine-2.4/test/RegressionTest/RegressionTest.cpp 2012-03-17 00:34:34.000000000 +0100 -@@ -34,6 +34,7 @@ - - SegmentMemoryUsage g_smu; - FontMemoryUsage g_fmu; -+const int TestCase::kAbsent; - - std::string g_fontPath = "."; - #ifdef _WIN32 -diff -ur engine-2.4.orig/test/RegressionTest/TestCase.cpp engine-2.4/test/RegressionTest/TestCase.cpp ---- engine-2.4.orig/test/RegressionTest/TestCase.cpp 2011-02-28 19:20:51.000000000 +0100 -+++ engine-2.4/test/RegressionTest/TestCase.cpp 2012-03-17 00:34:34.000000000 +0100 -@@ -2451,6 +2451,7 @@ - m_attGlyphs[i] = stuff[i]; - } - -+const int ClickTest::fieldCnt; - void TestCase::SetClickTests(int clickTestCount, int * clickStuff) - { - const int fc = ClickTest::fieldCnt; diff --git a/Build/source/libs/graphite/engine-2.4-PATCHES/patch-07-stdlib-workaround b/Build/source/libs/graphite/engine-2.4-PATCHES/patch-07-stdlib-workaround deleted file mode 100644 index 8aadf2edc62..00000000000 --- a/Build/source/libs/graphite/engine-2.4-PATCHES/patch-07-stdlib-workaround +++ /dev/null @@ -1,23 +0,0 @@ -diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp ---- engine-2.4.orig/src/font/TtfUtil.cpp 2012-03-16 23:55:47.000000000 +0100 -+++ engine-2.4/src/font/TtfUtil.cpp 2012-03-17 00:52:28.000000000 +0100 -@@ -806,12 +806,14 @@ - uint16 * pStr = reinterpret_cast(pWStr); - uint16 * const pStrEnd = pStr + (nSize == 0 ? gr::utf16len(pStr) : nSize); - -+#ifndef USE_STDLIB_WORKAROUNDS - std::transform(pStr, pStrEnd, pStr, read); -- --// for (int i = 0; i < nSize; i++) --// { // swap the wide characters in the string --// pStr[i] = gr::utf16(read(uint16(pStr[i]))); --// } -+#else -+ for (int i = 0; i < nSize; i++) -+ { // swap the wide characters in the string -+ pStr[i] = gr::utf16(read(uint16(pStr[i]))); -+ } -+#endif - } - - /*---------------------------------------------------------------------------------------------- diff --git a/Build/source/libs/graphite/engine-2.4-PATCHES/patch-08-case-sensitive b/Build/source/libs/graphite/engine-2.4-PATCHES/patch-08-case-sensitive deleted file mode 100644 index 8685ecfe874..00000000000 --- a/Build/source/libs/graphite/engine-2.4-PATCHES/patch-08-case-sensitive +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur engine-2.4.orig/src/generic/Debug.cpp engine-2.4/src/generic/Debug.cpp ---- engine-2.4.orig/src/generic/Debug.cpp 2010-05-13 16:39:27.000000000 +0200 -+++ engine-2.4/src/generic/Debug.cpp 2012-03-17 01:42:00.000000000 +0100 -@@ -13,7 +13,7 @@ - ----------------------------------------------------------------------------------------------*/ - - #ifdef _WIN32 --#include -+#include - #endif - //#include "common.h" - //#include "Main.h" diff --git a/Build/source/libs/graphite/engine-2.4-PATCHES/patch-10-svn_r1250_1308 b/Build/source/libs/graphite/engine-2.4-PATCHES/patch-10-svn_r1250_1308 index 70cb9e60d35..d031a548dee 100644 --- a/Build/source/libs/graphite/engine-2.4-PATCHES/patch-10-svn_r1250_1308 +++ b/Build/source/libs/graphite/engine-2.4-PATCHES/patch-10-svn_r1250_1308 @@ -1,5 +1,5 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp ---- engine-2.4.orig/src/font/TtfUtil.cpp 2012-03-17 00:52:28.000000000 +0100 +--- engine-2.4.orig/src/font/TtfUtil.cpp 2010-05-22 20:35:07.000000000 +0200 +++ engine-2.4/src/font/TtfUtil.cpp 2012-04-27 19:18:57.000000000 +0200 @@ -11,6 +11,7 @@ Description: @@ -24,7 +24,7 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp namespace TtfUtil { -@@ -1593,6 +1592,7 @@ +@@ -1591,6 +1590,7 @@ /*---------------------------------------------------------------------------------------------- Determine if a particular Glyph ID is a multi-level composite. @@ -32,7 +32,7 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp ----------------------------------------------------------------------------------------------*/ bool IsDeepComposite(gr::gid16 nGlyphId, const void * pGlyf, const void * pLoca, long lLocaSize, const void * pHead) -@@ -1646,13 +1646,13 @@ +@@ -1644,13 +1644,13 @@ } /*---------------------------------------------------------------------------------------------- @@ -50,7 +50,7 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp { cnContours = static_cast(INT_MIN); -@@ -1670,7 +1670,7 @@ +@@ -1668,7 +1668,7 @@ //handle composite glyphs @@ -59,7 +59,7 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp size_t cCompIdTotal = kMaxGlyphComponents; size_t cCompId = 0; -@@ -1682,12 +1682,17 @@ +@@ -1680,12 +1680,17 @@ for (size_t i = 0; i < cCompId; i++) { if (IsSpace(static_cast(rgnCompId[i]), pLoca, lLocaSize, pHead)) {return false;} @@ -81,7 +81,7 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp cRtnContours += cTmp; } -@@ -1697,16 +1702,16 @@ +@@ -1695,16 +1700,16 @@ /*---------------------------------------------------------------------------------------------- Get the point numbers for the end points of the glyph contours based on the given tables @@ -101,7 +101,7 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp { std::fill_n(prgnContourEndPoint, cnPoints, INT_MIN); -@@ -1737,9 +1742,15 @@ +@@ -1735,9 +1740,15 @@ if (IsSpace(static_cast(rgnCompId[i]), pLoca, lLocaSize, pHead)) {return false;} pSimpleGlyf = GlyfLookup(static_cast(rgnCompId[i]), pGlyf, pLoca, lLocaSize, pHead); if (pSimpleGlyf == NULL) {return false;} @@ -119,7 +119,7 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp // points in composite are numbered sequentially as components are added // must adjust end point numbers for new point numbers for (int j = 0; j < cActualPts; j++) -@@ -1750,6 +1761,7 @@ +@@ -1748,6 +1759,7 @@ cCurrentPoints -= cActualPts; } @@ -127,7 +127,7 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp return true; } -@@ -1763,7 +1775,7 @@ +@@ -1761,7 +1773,7 @@ prgfOnCurve - should point to a buffer a large enough to hold cnPoints bytes (bool) This range is parallel to the prgnX & prgnY Return true if successful, false otherwise. On false, all points may be INT_MIN @@ -136,7 +136,7 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp // TODO: doesn't support composite glyphs whose components are themselves components It's not clear from the TTF spec when the transforms should be applied. Should the transform be done before or after attachment point calcs? (current code - before) -@@ -1777,8 +1789,8 @@ +@@ -1775,8 +1787,8 @@ ----------------------------------------------------------------------------------------------*/ bool GlyfPoints(gr::gid16 nGlyphId, const void * pGlyf, const void * pLoca, size_t lLocaSize, const void * pHead, @@ -147,7 +147,7 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp { std::fill_n(prgnX, cnPoints, INT_MAX); std::fill_n(prgnY, cnPoints, INT_MAX); -@@ -1822,12 +1834,29 @@ +@@ -1820,12 +1832,29 @@ for (size_t i = 0; i < cCompId; i++) { if (IsSpace(static_cast(rgnCompId[i]), pLoca, lLocaSize, pHead)) {return false;} @@ -180,7 +180,7 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp if (!GetComponentPlacement(pSimpleGlyf, rgnCompId[i], fOffset, a, b)) return false; if (!GetComponentTransform(pSimpleGlyf, rgnCompId[i], -@@ -1835,10 +1864,6 @@ +@@ -1833,10 +1862,6 @@ return false; bool fIdTrans = flt11 == 1.0 && flt12 == 0.0 && flt21 == 0.0 && flt22 == 1.0; @@ -191,7 +191,7 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp // apply transform - see main method note above // do before attachment point calcs if (!fIdTrans) -@@ -1890,6 +1915,7 @@ +@@ -1888,6 +1913,7 @@ SimplifyFlags((char *)prgfOnCurve, cnPoints); @@ -216,7 +216,7 @@ diff -ur engine-2.4.orig/src/font/TtfUtil.h engine-2.4/src/font/TtfUtil.h // utitily method used by high-level GlyfPoints bool SimplifyFlags(char * prgbFlags, int cnPoints); diff -ur engine-2.4.orig/src/segment/GrEngine.cpp engine-2.4/src/segment/GrEngine.cpp ---- engine-2.4.orig/src/segment/GrEngine.cpp 2012-03-17 00:02:13.000000000 +0100 +--- engine-2.4.orig/src/segment/GrEngine.cpp 2010-06-09 23:35:22.000000000 +0200 +++ engine-2.4/src/segment/GrEngine.cpp 2012-04-27 19:18:57.000000000 +0200 @@ -1090,9 +1090,10 @@ @@ -290,7 +290,7 @@ diff -ur engine-2.4.orig/src/segment/GrEngine.cpp engine-2.4/src/segment/GrEngin /*---------------------------------------------------------------------------------------------- diff -ur engine-2.4.orig/src/segment/GrEngine.h engine-2.4/src/segment/GrEngine.h ---- engine-2.4.orig/src/segment/GrEngine.h 2012-03-17 00:02:13.000000000 +0100 +--- engine-2.4.orig/src/segment/GrEngine.h 2010-06-09 23:35:22.000000000 +0200 +++ engine-2.4/src/segment/GrEngine.h 2012-04-27 19:18:57.000000000 +0200 @@ -308,6 +308,11 @@ return m_cnUserDefn; diff --git a/Build/source/libs/graphite/engine-2.4-PATCHES/patch-12-svn_r1312_1315 b/Build/source/libs/graphite/engine-2.4-PATCHES/patch-12-svn_r1312_1315 new file mode 100644 index 00000000000..9f07adad99e --- /dev/null +++ b/Build/source/libs/graphite/engine-2.4-PATCHES/patch-12-svn_r1312_1315 @@ -0,0 +1,311 @@ +diff -ur engine-2.4.orig/include/graphite/Segment.h engine-2.4/include/graphite/Segment.h +--- engine-2.4.orig/include/graphite/Segment.h 2010-05-25 07:45:14.000000000 +0200 ++++ engine-2.4/include/graphite/Segment.h 2012-05-03 19:45:36.000000000 +0200 +@@ -64,7 +64,7 @@ + virtual ~Segment(); + + // Basic copy constructor: +- Segment(Segment & seg); ++ Segment(const Segment & seg); + + // For making modified copies of segments: + static Segment * LineContextSegment(Segment & seg, bool fStartLine, bool fEndLine); +diff -ur engine-2.4.orig/src/font/TtfUtil.cpp engine-2.4/src/font/TtfUtil.cpp +--- engine-2.4.orig/src/font/TtfUtil.cpp 2012-04-27 19:18:57.000000000 +0200 ++++ engine-2.4/src/font/TtfUtil.cpp 2012-05-03 19:45:36.000000000 +0200 +@@ -805,12 +805,14 @@ + uint16 * pStr = reinterpret_cast(pWStr); + uint16 * const pStrEnd = pStr + (nSize == 0 ? gr::utf16len(pStr) : nSize); + ++#ifndef USE_STDLIB_WORKAROUNDS + std::transform(pStr, pStrEnd, pStr, read); +- +-// for (int i = 0; i < nSize; i++) +-// { // swap the wide characters in the string +-// pStr[i] = gr::utf16(read(uint16(pStr[i]))); +-// } ++#else ++ for (int i = 0; i < nSize; i++) ++ { // swap the wide characters in the string ++ pStr[i] = gr::utf16(read(uint16(pStr[i]))); ++ } ++#endif + } + + /*---------------------------------------------------------------------------------------------- +@@ -1249,7 +1251,7 @@ + (&pGlyph->end_pts_of_contours[cContours]); + + // skip over hints & point to first flag +- int cbHints = read(*(uint16 *)pbGlyph); ++ int cbHints = read(*(const uint16 *)pbGlyph); + pbGlyph += sizeof(uint16); + pbGlyph += cbHints; + +@@ -1303,7 +1305,7 @@ + } + else + { +- prgnX[iFlag] = read(*(int16 *)pbGlyph); ++ prgnX[iFlag] = read(*(const int16 *)pbGlyph); + pbGlyph += sizeof(int16); + } + } +@@ -1332,7 +1334,7 @@ + } + else + { +- prgnY[iFlag] = read(*(int16 *)pbGlyph); ++ prgnY[iFlag] = read(*(const int16 *)pbGlyph); + pbGlyph += sizeof(int16); + } + } +@@ -1368,9 +1370,9 @@ + size_t iCurrentComp = 0; + do + { +- GlyphFlags = read(*((uint16 *)pbGlyph)); ++ GlyphFlags = read(*((const uint16 *)pbGlyph)); + pbGlyph += sizeof(uint16); +- prgnCompId[iCurrentComp++] = read(*((uint16 *)pbGlyph)); ++ prgnCompId[iCurrentComp++] = read(*((const uint16 *)pbGlyph)); + pbGlyph += sizeof(uint16); + if (iCurrentComp >= cnCompIdTotal) + return false; +@@ -1412,18 +1414,18 @@ + uint16 GlyphFlags; + do + { +- GlyphFlags = read(*((uint16 *)pbGlyph)); ++ GlyphFlags = read(*((const uint16 *)pbGlyph)); + pbGlyph += sizeof(uint16); +- if (read(*((uint16 *)pbGlyph)) == nCompId) ++ if (read(*((const uint16 *)pbGlyph)) == nCompId) + { + pbGlyph += sizeof(uint16); // skip over glyph id of component + fOffset = (GlyphFlags & CompoundGlyph::ArgsAreXYValues) == CompoundGlyph::ArgsAreXYValues; + + if (GlyphFlags & CompoundGlyph::Arg1Arg2Words ) + { +- a = read(*(int16 *)pbGlyph); ++ a = read(*(const int16 *)pbGlyph); + pbGlyph += sizeof(int16); +- b = read(*(int16 *)pbGlyph); ++ b = read(*(const int16 *)pbGlyph); + pbGlyph += sizeof(int16); + } + else +@@ -1477,9 +1479,9 @@ + uint16 GlyphFlags; + do + { +- GlyphFlags = read(*((uint16 *)pbGlyph)); ++ GlyphFlags = read(*((const uint16 *)pbGlyph)); + pbGlyph += sizeof(uint16); +- if (read(*((uint16 *)pbGlyph)) == nCompId) ++ if (read(*((const uint16 *)pbGlyph)) == nCompId) + { + pbGlyph += sizeof(uint16); // skip over glyph id of component + pbGlyph += GlyphFlags & CompoundGlyph::Arg1Arg2Words ? 4 : 2; // skip over placement data +@@ -1491,7 +1493,7 @@ + + if (GlyphFlags & CompoundGlyph::HaveScale) + { +- flt11 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); ++ flt11 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); + pbGlyph += sizeof(uint16); + flt12 = 0; + flt21 = 0; +@@ -1499,22 +1501,22 @@ + } + else if (GlyphFlags & CompoundGlyph::HaveXAndYScale) + { +- flt11 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); ++ flt11 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); + pbGlyph += sizeof(uint16); + flt12 = 0; + flt21 = 0; +- flt22 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); ++ flt22 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); + pbGlyph += sizeof(uint16); + } + else if (GlyphFlags & CompoundGlyph::HaveTwoByTwo) + { +- flt11 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); ++ flt11 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); + pbGlyph += sizeof(uint16); +- flt12 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); ++ flt12 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); + pbGlyph += sizeof(uint16); +- flt21 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); ++ flt21 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); + pbGlyph += sizeof(uint16); +- flt22 = fixed_to_float<14>(read(*(uint16 *)pbGlyph)); ++ flt22 = fixed_to_float<14>(read(*(const uint16 *)pbGlyph)); + pbGlyph += sizeof(uint16); + } + else +diff -ur engine-2.4.orig/src/generic/Debug.cpp engine-2.4/src/generic/Debug.cpp +--- engine-2.4.orig/src/generic/Debug.cpp 2010-05-13 16:39:27.000000000 +0200 ++++ engine-2.4/src/generic/Debug.cpp 2012-05-03 19:45:36.000000000 +0200 +@@ -13,7 +13,7 @@ + ----------------------------------------------------------------------------------------------*/ + + #ifdef _WIN32 +-#include ++#include + #endif + //#include "common.h" + //#include "Main.h" +diff -ur engine-2.4.orig/src/segment/FileInput.cpp engine-2.4/src/segment/FileInput.cpp +--- engine-2.4.orig/src/segment/FileInput.cpp 2010-05-22 20:35:07.000000000 +0200 ++++ engine-2.4/src/segment/FileInput.cpp 2012-05-03 19:45:36.000000000 +0200 +@@ -88,7 +88,7 @@ + /*---------------------------------------------------------------------------------------------- + Initialize the stream to a buffer. + ----------------------------------------------------------------------------------------------*/ +-bool GrBufferIStream::OpenBuffer(byte * pbBuffer, int cb) ++bool GrBufferIStream::OpenBuffer(const byte * pbBuffer, int cb) + { + Assert(m_pbStart == NULL); + Assert(m_pbNext == NULL); +diff -ur engine-2.4.orig/src/segment/FileInput.h engine-2.4/src/segment/FileInput.h +--- engine-2.4.orig/src/segment/FileInput.h 2008-05-20 10:02:16.000000000 +0200 ++++ engine-2.4/src/segment/FileInput.h 2012-05-03 19:45:36.000000000 +0200 +@@ -54,7 +54,7 @@ + virtual void GetPositionInFont(long * plPos) = 0; + virtual void SetPositionInFont(long lPos) = 0; + +- virtual bool OpenBuffer(byte * pbBuffer, int cb) = 0; ++ virtual bool OpenBuffer(const byte * pbBuffer, int cb) = 0; + virtual void CloseBuffer() = 0; + + protected: +@@ -87,16 +87,16 @@ + virtual void GetPositionInFont(long * plPos); + virtual void SetPositionInFont(long lPos); + +- virtual bool OpenBuffer(byte * pbBuffer, int cb); ++ virtual bool OpenBuffer(const byte * pbBuffer, int cb); + virtual void CloseBuffer() + { + Close(); + } + + protected: +- byte * m_pbStart; +- byte * m_pbNext; +- byte * m_pbLim; ++ const byte * m_pbStart; ++ const byte * m_pbNext; ++ const byte * m_pbLim; + }; + + } // namespace gr +diff -ur engine-2.4.orig/src/segment/FontFace.cpp engine-2.4/src/segment/FontFace.cpp +--- engine-2.4.orig/src/segment/FontFace.cpp 2011-03-21 17:13:25.000000000 +0100 ++++ engine-2.4/src/segment/FontFace.cpp 2012-05-03 19:45:36.000000000 +0200 +@@ -338,9 +338,9 @@ + + // ibGlocStart = cbGlatTbl; + fOk = CheckTableVersions(&grstrm, +- (byte *)pSilfTbl, 0, +- (byte *)pGlocTbl, 0, +- (byte *)pFeatTbl, 0, ++ (const byte *)pSilfTbl, 0, ++ (const byte *)pGlocTbl, 0, ++ (const byte *)pFeatTbl, 0, + &m_fxdBadVersion); + if (!fOk) + { +@@ -374,7 +374,7 @@ + try + { + // Parse the "Silf" table. +- grstrm.OpenBuffer((byte*)pSilfTbl, cbSilfSz); ++ grstrm.OpenBuffer((const byte*)pSilfTbl, cbSilfSz); + int chwGlyphIDMax, fxdVersion; + bool f = ReadSilfTable(grstrm, 0, 0, cbSilfSz, &chwGlyphIDMax, &fxdVersion); + grstrm.Close(); +@@ -389,8 +389,8 @@ + { + GrBufferIStream grstrmGlat; + +- grstrm.OpenBuffer((byte *)pGlocTbl, cbGlocSz); +- grstrmGlat.OpenBuffer((byte *)pGlatTbl, cbGlatSz); ++ grstrm.OpenBuffer((const byte *)pGlocTbl, cbGlocSz); ++ grstrmGlat.OpenBuffer((const byte *)pGlatTbl, cbGlatSz); + f = ReadGlocAndGlatTables(grstrm, 0, grstrmGlat, 0, chwGlyphIDMax, fxdVersion); + grstrm.Close(); + grstrmGlat.Close(); +@@ -403,7 +403,7 @@ + } + + // Parse the "Feat" table. +- grstrm.OpenBuffer((byte *)pFeatTbl, cbFeatSz); ++ grstrm.OpenBuffer((const byte *)pFeatTbl, cbFeatSz); + f = ReadFeatTable(grstrm, 0); + grstrm.Close(); + if (!f) +@@ -416,7 +416,7 @@ + // Parse the "Sill" table. + if (pSillTbl) + { +- grstrm.OpenBuffer((byte *)pSillTbl, cbSillSz); ++ grstrm.OpenBuffer((const byte *)pSillTbl, cbSillSz); + f = ReadSillTable(grstrm, 0); + grstrm.Close(); + if (!f) +@@ -549,7 +549,7 @@ + + if (!m_fNameTblCopy) + { +- res = (pNameTbl = (byte *)pfont->getTable(TtfUtil::TableIdTag(ktiName), &cbNameSz)) ? kresOk : kresFail; ++ res = (pNameTbl = (const byte *)pfont->getTable(TtfUtil::TableIdTag(ktiName), &cbNameSz)) ? kresOk : kresFail; + fOk = pNameTbl && (cbNameSz == 0 || TtfUtil::CheckTable(ktiName, pNameTbl, cbNameSz)); + if (!fOk) + { +diff -ur engine-2.4.orig/src/segment/GrEngine.cpp engine-2.4/src/segment/GrEngine.cpp +--- engine-2.4.orig/src/segment/GrEngine.cpp 2012-04-27 19:18:57.000000000 +0200 ++++ engine-2.4/src/segment/GrEngine.cpp 2012-05-03 19:45:36.000000000 +0200 +@@ -889,9 +889,9 @@ + implementation of the engine can't handle. + ----------------------------------------------------------------------------------------------*/ + bool GrEngine::CheckTableVersions(GrIStream * pgrstrm, +- byte *pSilfTbl, int lSilfStart, +- byte *pGlobTbl, int lGlocStart, +- byte *pFeatTbl, int lFeatStart, ++ const byte *pSilfTbl, int lSilfStart, ++ const byte *pGlobTbl, int lGlocStart, ++ const byte *pFeatTbl, int lFeatStart, + int * pfxdBadVersion) + { + pgrstrm->OpenBuffer(pSilfTbl, sizeof(int)); +diff -ur engine-2.4.orig/src/segment/GrEngine.h engine-2.4/src/segment/GrEngine.h +--- engine-2.4.orig/src/segment/GrEngine.h 2012-04-27 19:18:57.000000000 +0200 ++++ engine-2.4/src/segment/GrEngine.h 2012-05-03 19:45:36.000000000 +0200 +@@ -547,9 +547,9 @@ + void DestroyEverything(); + + bool CheckTableVersions(GrIStream * pgrstrm, +- byte *silf_tbl, int lSilfStart, +- byte *gloc_tbl, int lGlocStart, +- byte *feat_tbl, int lFeatStart, ++ const byte *silf_tbl, int lSilfStart, ++ const byte *gloc_tbl, int lGlocStart, ++ const byte *feat_tbl, int lFeatStart, + int * pfxdBadVersion); + //bool ReadSileTable(GrIStream & grstrm, long lTableSTart, + // int * pmFontEmUnits, bool * pfMismatchedBase); +diff -ur engine-2.4.orig/src/segment/Segment.cpp engine-2.4/src/segment/Segment.cpp +--- engine-2.4.orig/src/segment/Segment.cpp 2012-03-14 20:45:41.000000000 +0100 ++++ engine-2.4/src/segment/Segment.cpp 2012-05-03 19:45:36.000000000 +0200 +@@ -432,7 +432,7 @@ + /*---------------------------------------------------------------------------------------------- + Basic copy method. + ----------------------------------------------------------------------------------------------*/ +-Segment::Segment(Segment & seg) ++Segment::Segment(const Segment & seg) + { + int islout; + diff --git a/Build/source/libs/graphite/engine-2.4/src/font/TtfUtil.cpp b/Build/source/libs/graphite/engine-2.4/src/font/TtfUtil.cpp index ac852217087..20b498f20f2 100644 --- a/Build/source/libs/graphite/engine-2.4/src/font/TtfUtil.cpp +++ b/Build/source/libs/graphite/engine-2.4/src/font/TtfUtil.cpp @@ -808,10 +808,10 @@ void SwapWString(void * pWStr, size_t nSize /* = 0 */) throw (std::invalid_argum #ifndef USE_STDLIB_WORKAROUNDS std::transform(pStr, pStrEnd, pStr, read); #else - for (int i = 0; i < nSize; i++) - { // swap the wide characters in the string - pStr[i] = gr::utf16(read(uint16(pStr[i]))); - } + for (int i = 0; i < nSize; i++) + { // swap the wide characters in the string + pStr[i] = gr::utf16(read(uint16(pStr[i]))); + } #endif } diff --git a/Build/source/libs/graphite/engine-2.4/test/RegressionTest/RegressionTest.cpp b/Build/source/libs/graphite/engine-2.4/test/RegressionTest/RegressionTest.cpp index c9761ebda55..f05cfc0b272 100644 --- a/Build/source/libs/graphite/engine-2.4/test/RegressionTest/RegressionTest.cpp +++ b/Build/source/libs/graphite/engine-2.4/test/RegressionTest/RegressionTest.cpp @@ -34,7 +34,6 @@ int g_itcaseStart = 0; // adjust to skip to a certain test SegmentMemoryUsage g_smu; FontMemoryUsage g_fmu; -const int TestCase::kAbsent; std::string g_fontPath = "."; #ifdef _WIN32 diff --git a/Build/source/libs/graphite/engine-2.4/test/RegressionTest/TestCase.cpp b/Build/source/libs/graphite/engine-2.4/test/RegressionTest/TestCase.cpp index 09544114364..f6fa83c3010 100644 --- a/Build/source/libs/graphite/engine-2.4/test/RegressionTest/TestCase.cpp +++ b/Build/source/libs/graphite/engine-2.4/test/RegressionTest/TestCase.cpp @@ -2451,7 +2451,6 @@ void TestCase::SetAttachedClusters(int * stuff, int count) m_attGlyphs[i] = stuff[i]; } -const int ClickTest::fieldCnt; void TestCase::SetClickTests(int clickTestCount, int * clickStuff) { const int fc = ClickTest::fieldCnt; -- cgit v1.2.3