Move struct declarations to `freetype/internal'.
NOTE: Does not compile!
This is so that the CFF functions moved to `psaux' can access the
same structs that they need.
* src/cff/cfftypes.h: Moved to...
* include/freetype/internal/cfftypes.h: ...Here.
* src/cff/cffobjs.h: Moved the struct declarations to...
* include/freetype/internal/cffotypes.h: ... this new file.
* include/freetype/internal/internal.h (FT_INTERNAL_CFF_TYPES_H,
FT_INTERNAL_CFF_OBJECT_TYPES_H): New macros.
* src/cff/cffcmap.h, src/cff/cffdrivr.c, src/cff/cffgload.c,
src/cff/cffgload.h, src/cff/cffload.h, src/cff/cffobjs.c,
src/cff/cffobjs.h, src/cff/cffparse.h, src/psaux/psobjs.h,
include/freetype/internal/psaux.h,
include/freetype/internal/services/svcfftl.h: Update includes.
* src/cff/rules.mk (CFF_DRV_H): Updated.
diff --git a/ChangeLog b/ChangeLog
index a925810..386b6c9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,31 @@
2017-09-24 Ewald Hew <ewaldhew@gmail.com>
+ [cff] Move struct declarations to `freetype/internal'.
+
+ NOTE: Does not compile!
+
+ This is so that the CFF functions moved to `psaux' can access the
+ same structs that they need.
+
+ * src/cff/cfftypes.h: Moved to...
+ * include/freetype/internal/cfftypes.h: ...Here.
+
+ * src/cff/cffobjs.h: Moved the struct declarations to...
+ * include/freetype/internal/cffotypes.h: ... this new file.
+
+ * include/freetype/internal/internal.h (FT_INTERNAL_CFF_TYPES_H,
+ FT_INTERNAL_CFF_OBJECT_TYPES_H): New macros.
+
+ * src/cff/cffcmap.h, src/cff/cffdrivr.c, src/cff/cffgload.c,
+ src/cff/cffgload.h, src/cff/cffload.h, src/cff/cffobjs.c,
+ src/cff/cffobjs.h, src/cff/cffparse.h, src/psaux/psobjs.h,
+ include/freetype/internal/psaux.h,
+ include/freetype/internal/services/svcfftl.h: Update includes.
+
+ * src/cff/rules.mk (CFF_DRV_H): Updated.
+
+2017-09-24 Ewald Hew <ewaldhew@gmail.com>
+
[psaux, cff] Add new service for inter-module calls.
NOTE: Does not compile!
diff --git a/include/freetype/internal/cffotypes.h b/include/freetype/internal/cffotypes.h
new file mode 100644
index 0000000..6cabaff
--- /dev/null
+++ b/include/freetype/internal/cffotypes.h
@@ -0,0 +1,113 @@
+#ifndef CFFOTYPES_H_
+#define CFFOTYPES_H_
+
+#include <ft2build.h>
+#include FT_INTERNAL_OBJECTS_H
+#include FT_INTERNAL_CFF_TYPES_H
+#include FT_INTERNAL_TRUETYPE_TYPES_H
+#include FT_SERVICE_POSTSCRIPT_CMAPS_H
+#include FT_INTERNAL_POSTSCRIPT_HINTS_H
+
+
+FT_BEGIN_HEADER
+
+
+ /*************************************************************************/
+ /* */
+ /* <Type> */
+ /* CFF_Driver */
+ /* */
+ /* <Description> */
+ /* A handle to an OpenType driver object. */
+ /* */
+ typedef struct CFF_DriverRec_* CFF_Driver;
+
+ typedef TT_Face CFF_Face;
+
+
+ /*************************************************************************/
+ /* */
+ /* <Type> */
+ /* CFF_Size */
+ /* */
+ /* <Description> */
+ /* A handle to an OpenType size object. */
+ /* */
+ typedef struct CFF_SizeRec_
+ {
+ FT_SizeRec root;
+ FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */
+
+ } CFF_SizeRec, *CFF_Size;
+
+
+ /*************************************************************************/
+ /* */
+ /* <Type> */
+ /* CFF_GlyphSlot */
+ /* */
+ /* <Description> */
+ /* A handle to an OpenType glyph slot object. */
+ /* */
+ typedef struct CFF_GlyphSlotRec_
+ {
+ FT_GlyphSlotRec root;
+
+ FT_Bool hint;
+ FT_Bool scaled;
+
+ FT_Fixed x_scale;
+ FT_Fixed y_scale;
+
+ } CFF_GlyphSlotRec, *CFF_GlyphSlot;
+
+
+ /*************************************************************************/
+ /* */
+ /* <Type> */
+ /* CFF_Internal */
+ /* */
+ /* <Description> */
+ /* The interface to the `internal' field of `FT_Size'. */
+ /* */
+ typedef struct CFF_InternalRec_
+ {
+ PSH_Globals topfont;
+ PSH_Globals subfonts[CFF_MAX_CID_FONTS];
+
+ } CFF_InternalRec, *CFF_Internal;
+
+
+ /*************************************************************************/
+ /* */
+ /* Subglyph transformation record. */
+ /* */
+ typedef struct CFF_Transform_
+ {
+ FT_Fixed xx, xy; /* transformation matrix coefficients */
+ FT_Fixed yx, yy;
+ FT_F26Dot6 ox, oy; /* offsets */
+
+ } CFF_Transform;
+
+
+ /***********************************************************************/
+ /* */
+ /* CFF driver class. */
+ /* */
+ typedef struct CFF_DriverRec_
+ {
+ FT_DriverRec root;
+
+ FT_UInt hinting_engine;
+ FT_Bool no_stem_darkening;
+ FT_Int darken_params[8];
+ FT_Int32 random_seed;
+
+ } CFF_DriverRec;
+
+
+FT_END_HEADER
+
+
+#endif
diff --git a/src/cff/cfftypes.h b/include/freetype/internal/cfftypes.h
similarity index 100%
rename from src/cff/cfftypes.h
rename to include/freetype/internal/cfftypes.h
diff --git a/include/freetype/internal/internal.h b/include/freetype/internal/internal.h
index 0204681..23f84b4 100644
--- a/include/freetype/internal/internal.h
+++ b/include/freetype/internal/internal.h
@@ -47,6 +47,9 @@
#define FT_INTERNAL_AUTOHINT_H <freetype/internal/autohint.h>
+#define FT_INTERNAL_CFF_TYPES_H <freetype/internal/cfftypes.h>
+#define FT_INTERNAL_CFF_OBJECTS_TYPES_H <freetype/internal/cffotypes.h>
+
#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */
diff --git a/include/freetype/internal/psaux.h b/include/freetype/internal/psaux.h
index bcc84e3..f127a44 100644
--- a/include/freetype/internal/psaux.h
+++ b/include/freetype/internal/psaux.h
@@ -27,6 +27,9 @@
#include FT_INTERNAL_HASH_H
#include FT_INTERNAL_TRUETYPE_TYPES_H
#include FT_SERVICE_POSTSCRIPT_CMAPS_H
+#include FT_INTERNAL_CFF_TYPES_H
+#include FT_INTERNAL_CFF_OBJECTS_TYPES_H
+
FT_BEGIN_HEADER
diff --git a/include/freetype/internal/services/svcfftl.h b/include/freetype/internal/services/svcfftl.h
index 18e2276..4663041 100644
--- a/include/freetype/internal/services/svcfftl.h
+++ b/include/freetype/internal/services/svcfftl.h
@@ -2,6 +2,7 @@
#define SVCFFTL_H_
#include FT_INTERNAL_SERVICE_H
+#include FT_INTERNAL_CFF_TYPES_H
FT_BEGIN_HEADER
diff --git a/src/cff/cffcmap.h b/src/cff/cffcmap.h
index 7792e04..227c91a 100644
--- a/src/cff/cffcmap.h
+++ b/src/cff/cffcmap.h
@@ -19,7 +19,7 @@
#ifndef CFFCMAP_H_
#define CFFCMAP_H_
-#include "cffobjs.h"
+#include FT_INTERNAL_CFF_OBJECTS_TYPES_H
FT_BEGIN_HEADER
diff --git a/src/cff/cffdrivr.c b/src/cff/cffdrivr.c
index 689f229..4c9b1cd 100644
--- a/src/cff/cffdrivr.c
+++ b/src/cff/cffdrivr.c
@@ -32,6 +32,7 @@
#include "cffload.h"
#include "cffcmap.h"
#include "cffparse.h"
+#include "cffobjs.h"
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
#include FT_SERVICE_MULTIPLE_MASTERS_H
diff --git a/src/cff/cffgload.c b/src/cff/cffgload.c
index 18dbf65..92ca08b 100644
--- a/src/cff/cffgload.c
+++ b/src/cff/cffgload.c
@@ -25,7 +25,6 @@
#include FT_OUTLINE_H
#include FT_CFF_DRIVER_H
-#include "cffobjs.h"
#include "cffload.h"
#include "cffgload.h"
diff --git a/src/cff/cffgload.h b/src/cff/cffgload.h
index b2e945d..ed291b8 100644
--- a/src/cff/cffgload.h
+++ b/src/cff/cffgload.h
@@ -22,7 +22,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include "cffobjs.h"
+#include FT_INTERNAL_CFF_OBJECTS_TYPES_H
FT_BEGIN_HEADER
diff --git a/src/cff/cffload.h b/src/cff/cffload.h
index c745e81..82a0417 100644
--- a/src/cff/cffload.h
+++ b/src/cff/cffload.h
@@ -21,9 +21,9 @@
#include <ft2build.h>
-#include "cfftypes.h"
+#include FT_INTERNAL_CFF_TYPES_H
#include "cffparse.h"
-#include "cffobjs.h" /* for CFF_Face */
+#include FT_INTERNAL_CFF_OBJECTS_TYPES_H /* for CFF_Face */
FT_BEGIN_HEADER
diff --git a/src/cff/cffobjs.c b/src/cff/cffobjs.c
index ed15466..f9013e7 100644
--- a/src/cff/cffobjs.c
+++ b/src/cff/cffobjs.c
@@ -32,6 +32,7 @@
#include FT_SERVICE_MULTIPLE_MASTERS_H
#endif
+#include FT_INTERNAL_CFF_OBJECTS_TYPES_H
#include "cffobjs.h"
#include "cffload.h"
#include "cffcmap.h"
diff --git a/src/cff/cffobjs.h b/src/cff/cffobjs.h
index 1dba694..839a61c 100644
--- a/src/cff/cffobjs.h
+++ b/src/cff/cffobjs.h
@@ -21,111 +21,11 @@
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include "cfftypes.h"
-#include FT_INTERNAL_TRUETYPE_TYPES_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
FT_BEGIN_HEADER
- /*************************************************************************/
- /* */
- /* <Type> */
- /* CFF_Driver */
- /* */
- /* <Description> */
- /* A handle to an OpenType driver object. */
- /* */
- typedef struct CFF_DriverRec_* CFF_Driver;
-
- typedef TT_Face CFF_Face;
-
-
- /*************************************************************************/
- /* */
- /* <Type> */
- /* CFF_Size */
- /* */
- /* <Description> */
- /* A handle to an OpenType size object. */
- /* */
- typedef struct CFF_SizeRec_
- {
- FT_SizeRec root;
- FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */
-
- } CFF_SizeRec, *CFF_Size;
-
-
- /*************************************************************************/
- /* */
- /* <Type> */
- /* CFF_GlyphSlot */
- /* */
- /* <Description> */
- /* A handle to an OpenType glyph slot object. */
- /* */
- typedef struct CFF_GlyphSlotRec_
- {
- FT_GlyphSlotRec root;
-
- FT_Bool hint;
- FT_Bool scaled;
-
- FT_Fixed x_scale;
- FT_Fixed y_scale;
-
- } CFF_GlyphSlotRec, *CFF_GlyphSlot;
-
-
- /*************************************************************************/
- /* */
- /* <Type> */
- /* CFF_Internal */
- /* */
- /* <Description> */
- /* The interface to the `internal' field of `FT_Size'. */
- /* */
- typedef struct CFF_InternalRec_
- {
- PSH_Globals topfont;
- PSH_Globals subfonts[CFF_MAX_CID_FONTS];
-
- } CFF_InternalRec, *CFF_Internal;
-
-
- /*************************************************************************/
- /* */
- /* Subglyph transformation record. */
- /* */
- typedef struct CFF_Transform_
- {
- FT_Fixed xx, xy; /* transformation matrix coefficients */
- FT_Fixed yx, yy;
- FT_F26Dot6 ox, oy; /* offsets */
-
- } CFF_Transform;
-
-
- /***********************************************************************/
- /* */
- /* CFF driver class. */
- /* */
- typedef struct CFF_DriverRec_
- {
- FT_DriverRec root;
-
- FT_UInt hinting_engine;
- FT_Bool no_stem_darkening;
- FT_Int darken_params[8];
- FT_Int32 random_seed;
-
- } CFF_DriverRec;
-
-
FT_LOCAL( FT_Error )
cff_size_init( FT_Size size ); /* CFF_Size */
diff --git a/src/cff/cffparse.h b/src/cff/cffparse.h
index 83d1bba..961c265 100644
--- a/src/cff/cffparse.h
+++ b/src/cff/cffparse.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include "cfftypes.h"
+#include FT_INTERNAL_CFF_TYPES_H
#include FT_INTERNAL_OBJECTS_H
diff --git a/src/cff/rules.mk b/src/cff/rules.mk
index feecf46..473b25c 100644
--- a/src/cff/rules.mk
+++ b/src/cff/rules.mk
@@ -39,8 +39,7 @@
#
CFF_DRV_H := $(CFF_DRV_SRC:%.c=%.h) \
$(CFF_DIR)/cfferrs.h \
- $(CFF_DIR)/cfftoken.h \
- $(CFF_DIR)/cfftypes.h
+ $(CFF_DIR)/cfftoken.h
# CFF driver object(s)
diff --git a/src/psaux/psobjs.h b/src/psaux/psobjs.h
index 73cd905..c06bb28 100644
--- a/src/psaux/psobjs.h
+++ b/src/psaux/psobjs.h
@@ -22,6 +22,7 @@
#include <ft2build.h>
#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include FT_INTERNAL_CFF_OBJECTS_TYPES_H
FT_BEGIN_HEADER