shithub: freetype+ttf2subf

Download patch

ref: dd570e99ab6770657222bf7da8f780b8ea9752a1
parent: cc7bb80bdea0fe0f60f6f01e3c0a054fa100bd48
author: Werner Lemberg <[email protected]>
date: Thu Oct 23 15:57:37 EDT 2014

[cff] Work around bug in preprocessor of MSVC 2010.

We have been hit by

  https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr

* devel/ftoption.h, include/config/ftoption.h: Replace
`CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros
`CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'.

* src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed.  We no
longer need double expansion.
(SET_DARKENING_PARAMETERS_0): Renamed to ...
(SET_DARKENING_PARAMETERS): ... this.
Update call.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2014-10-23  Werner Lemberg  <[email protected]>
+
+	[cff] Work around bug in preprocessor of MSVC 2010.
+
+	We have been hit by
+
+	  https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr
+
+	* devel/ftoption.h, include/config/ftoption.h: Replace
+	`CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros
+	`CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'.
+
+	* src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed.  We no
+	longer need double expansion.
+	(SET_DARKENING_PARAMETERS_0): Renamed to ...
+	(SET_DARKENING_PARAMETERS): ... this.
+	Update call.
+
 2014-10-20  Werner Lemberg  <[email protected]>
 
 	[sbit] Minor fixes.
--- a/devel/ftoption.h
+++ b/devel/ftoption.h
@@ -773,19 +773,26 @@
 
   /*************************************************************************/
   /*                                                                       */
-  /* Using CFF_CONFIG_OPTION_DARKENING_PARAMETERS it is possible to set up */
-  /* the default values of the four control points that define the stem    */
-  /* darkening behaviour of the (new) CFF engine.  For more details please */
-  /* read the documentation of the `darkening-parameters' property of the  */
-  /* cff driver module (file `ftcffdrv.h'), which allows the control at    */
-  /* run-time.                                                             */
+  /* Using CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4} it is      */
+  /* possible to set up the default values of the four control points that */
+  /* define the stem darkening behaviour of the (new) CFF engine.  For     */
+  /* more details please read the documentation of the                     */
+  /* `darkening-parameters' property of the cff driver module (file        */
+  /* `ftcffdrv.h'), which allows the control at run-time.                  */
   /*                                                                       */
-  /* Do *not* undefine this macro!                                         */
+  /* Do *not* undefine these macros!                                       */
   /*                                                                       */
-#define CFF_CONFIG_OPTION_DARKENING_PARAMETERS   500, 400, \
-                                                1000, 275, \
-                                                1667, 275, \
-                                                2333,   0
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1   500
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1   400
+
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2  1000
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2   275
+
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3  1667
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3   275
+
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4  2333
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4     0
 
 
   /*************************************************************************/
--- a/include/config/ftoption.h
+++ b/include/config/ftoption.h
@@ -773,19 +773,26 @@
 
   /*************************************************************************/
   /*                                                                       */
-  /* Using CFF_CONFIG_OPTION_DARKENING_PARAMETERS it is possible to set up */
-  /* the default values of the four control points that define the stem    */
-  /* darkening behaviour of the (new) CFF engine.  For more details please */
-  /* read the documentation of the `darkening-parameters' property of the  */
-  /* cff driver module (file `ftcffdrv.h'), which allows the control at    */
-  /* run-time.                                                             */
+  /* Using CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4} it is      */
+  /* possible to set up the default values of the four control points that */
+  /* define the stem darkening behaviour of the (new) CFF engine.  For     */
+  /* more details please read the documentation of the                     */
+  /* `darkening-parameters' property of the cff driver module (file        */
+  /* `ftcffdrv.h'), which allows the control at run-time.                  */
   /*                                                                       */
-  /* Do *not* undefine this macro!                                         */
+  /* Do *not* undefine these macros!                                       */
   /*                                                                       */
-#define CFF_CONFIG_OPTION_DARKENING_PARAMETERS   500, 400, \
-                                                1000, 275, \
-                                                1667, 275, \
-                                                2333,   0
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1   500
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1   400
+
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2  1000
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2   275
+
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3  1667
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3   275
+
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4  2333
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4     0
 
 
   /*************************************************************************/
--- a/src/cff/cffobjs.c
+++ b/src/cff/cffobjs.c
@@ -1049,11 +1049,11 @@
   }
 
 
-#define SET_DARKENING_PARAMETERS_0( driver,                                \
-                                    x1, y1,                                \
-                                    x2, y2,                                \
-                                    x3, y3,                                \
-                                    x4, y4 )                               \
+#define SET_DARKENING_PARAMETERS( driver,                                  \
+                                  x1, y1,                                  \
+                                  x2, y2,                                  \
+                                  x3, y3,                                  \
+                                  x4, y4 )                                 \
           FT_BEGIN_STMNT                                                   \
             /* checks copied from `cff_property_set' in `cffdrivr.c' */    \
             typedef int  static_assert_darkening_parameters[               \
@@ -1073,10 +1073,7 @@
             driver->darken_params[7] = y4;                                 \
           FT_END_STMNT
 
-#define SET_DARKENING_PARAMETERS( driver, params )     \
-          SET_DARKENING_PARAMETERS_0( driver, params )
 
-
   FT_LOCAL_DEF( FT_Error )
   cff_driver_init( FT_Module  module )        /* CFF_Driver */
   {
@@ -1092,7 +1089,14 @@
     driver->no_stem_darkening = FALSE;
 
     SET_DARKENING_PARAMETERS( driver,
-                              CFF_CONFIG_OPTION_DARKENING_PARAMETERS );
+                              CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1,
+                              CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1,
+                              CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2,
+                              CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2,
+                              CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3,
+                              CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3,
+                              CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4,
+                              CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 );
 
     return FT_Err_Ok;
   }