diff --git a/builds/unix/ftconfig.in b/builds/unix/ftconfig.in index a24b67938..e1c02b098 100644 --- a/builds/unix/ftconfig.in +++ b/builds/unix/ftconfig.in @@ -42,6 +42,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /* */ /* PLATFORM-SPECIFIC CONFIGURATION MACROS */ @@ -166,6 +171,12 @@ #define FT_EXPORT_VAR( x ) extern x #endif + +#ifdef __cplusplus + } +#endif + + #endif /* FTCONFIG_H */ diff --git a/include/freetype/config/ftconfig.h b/include/freetype/config/ftconfig.h index 338e22cb2..bf4d33167 100644 --- a/include/freetype/config/ftconfig.h +++ b/include/freetype/config/ftconfig.h @@ -44,6 +44,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /* */ /* PLATFORM-SPECIFIC CONFIGURATION MACROS */ @@ -181,6 +186,11 @@ #define FT_EXPORT_VAR( x ) extern x #endif +#ifdef __cplusplus + } +#endif + + #endif /* FTCONFIG_H */ diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h index a7e1f406a..b973e837b 100644 --- a/include/freetype/config/ftoption.h +++ b/include/freetype/config/ftoption.h @@ -20,6 +20,11 @@ #define FTOPTION_H +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /* */ /* USER-SELECTABLE CONFIGURATION MACROS */ @@ -389,6 +394,11 @@ #undef T1_CONFIG_OPTION_NO_MM_SUPPORT +#ifdef __cplusplus + } +#endif + + #endif /* FTOPTION_H */ diff --git a/include/freetype/fterrors.h b/include/freetype/fterrors.h index 9fb8099b8..c33ecf6f7 100644 --- a/include/freetype/fterrors.h +++ b/include/freetype/fterrors.h @@ -44,6 +44,11 @@ #define FTERRORS_H +#ifdef __cplusplus + extern "C" { +#endif + + #ifndef FT_ERRORDEF #define FT_ERRORDEF( e, v, s ) e = v, @@ -160,6 +165,11 @@ #undef FT_ERRORDEF +#ifdef __cplusplus + } +#endif + + #endif /* FTERRORS_H */ diff --git a/include/freetype/ftmac.h b/include/freetype/ftmac.h index edb34910c..13aa640a2 100644 --- a/include/freetype/ftmac.h +++ b/include/freetype/ftmac.h @@ -25,6 +25,11 @@ #define FT_MAC_H +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /* */ /* */ @@ -61,4 +66,9 @@ FT_Face* aface ); +#ifdef __cplusplus + } +#endif + + #endif /* FT_MAC_H */ diff --git a/include/freetype/ftnames.h b/include/freetype/ftnames.h index 2969214b9..642c1663b 100644 --- a/include/freetype/ftnames.h +++ b/include/freetype/ftnames.h @@ -26,6 +26,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + typedef struct FT_SfntName_ { FT_UShort platform_id; @@ -46,6 +51,11 @@ FT_SfntName* aname ); +#ifdef __cplusplus + } +#endif + + #endif /* FTNAMES_H */ diff --git a/include/freetype/ftsystem.h b/include/freetype/ftsystem.h index bc74bced2..4311a3d2f 100644 --- a/include/freetype/ftsystem.h +++ b/include/freetype/ftsystem.h @@ -20,6 +20,11 @@ #define FTSYSTEM_H +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /* */ /* M E M O R Y M A N A G E M E N T */ @@ -95,6 +100,11 @@ }; +#ifdef __cplusplus + } +#endif + + #endif /* FTSYSTEM_H */ diff --git a/include/freetype/fttypes.h b/include/freetype/fttypes.h index ec909061d..f3e6f1a6c 100644 --- a/include/freetype/fttypes.h +++ b/include/freetype/fttypes.h @@ -24,6 +24,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /* */ /* */ @@ -394,6 +399,11 @@ #define FT_IS_EMPTY( list ) ( (list).head == 0 ) +#ifdef __cplusplus + } +#endif + + #endif /* FTTYPES_H */ diff --git a/include/freetype/internal/autohint.h b/include/freetype/internal/autohint.h index 5d35a5dcd..bea7c92f0 100644 --- a/include/freetype/internal/autohint.h +++ b/include/freetype/internal/autohint.h @@ -73,6 +73,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + typedef struct FT_AutoHinterRec_ *FT_AutoHinter; @@ -189,6 +194,11 @@ } FT_AutoHinter_Interface; +#ifdef __cplusplus + } +#endif + + #endif /* AUTOHINT_H */ diff --git a/include/freetype/internal/ftdriver.h b/include/freetype/internal/ftdriver.h index 592de498c..e239fd961 100644 --- a/include/freetype/internal/ftdriver.h +++ b/include/freetype/internal/ftdriver.h @@ -24,6 +24,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + typedef FT_Error (*FTDriver_initFace)( FT_Stream stream, FT_Face face, FT_Int typeface_index, @@ -176,6 +181,11 @@ } FT_Driver_Class; +#ifdef __cplusplus + } +#endif + + #endif /* FTDRIVER_H */ diff --git a/include/freetype/internal/ftmemory.h b/include/freetype/internal/ftmemory.h index da8d3a412..48403ecb1 100644 --- a/include/freetype/internal/ftmemory.h +++ b/include/freetype/internal/ftmemory.h @@ -24,6 +24,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /* */ /* */ @@ -121,6 +126,11 @@ #define FREE( _pointer_ ) FT_Free( memory, (void**)&(_pointer_) ) +#ifdef __cplusplus + } +#endif + + #endif /* FTMEMORY_H */ diff --git a/include/freetype/internal/psnames.h b/include/freetype/internal/psnames.h index ed862359e..c7eb22c6a 100644 --- a/include/freetype/internal/psnames.h +++ b/include/freetype/internal/psnames.h @@ -24,6 +24,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /* */ /* */ @@ -214,6 +219,11 @@ } PSNames_Interface; +#ifdef __cplusplus + } +#endif + + #endif /* PSNAMES_H */ diff --git a/include/freetype/internal/sfnt.h b/include/freetype/internal/sfnt.h index 380ee93de..033925854 100644 --- a/include/freetype/internal/sfnt.h +++ b/include/freetype/internal/sfnt.h @@ -25,6 +25,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /* */ /* */ @@ -486,6 +491,11 @@ } SFNT_Interface; +#ifdef __cplusplus + } +#endif + + #endif /* SFNT_H */ diff --git a/include/freetype/internal/t1errors.h b/include/freetype/internal/t1errors.h index 58566d8ee..a81be210e 100644 --- a/include/freetype/internal/t1errors.h +++ b/include/freetype/internal/t1errors.h @@ -20,6 +20,11 @@ #define T1ERRORS_H +#ifdef __cplusplus + extern "C" { +#endif + + /************************ error codes declaration **************/ /* The error codes are grouped into `classes' used to indicate the */ @@ -61,6 +66,11 @@ #define T1_Err_Stack_Overflow FT_Err_Invalid_File_Format +#ifdef __cplusplus + } +#endif + + #endif /* T1ERRORS_H */ diff --git a/include/freetype/internal/t1types.h b/include/freetype/internal/t1types.h index 4d41a6b59..0fa385556 100644 --- a/include/freetype/internal/t1types.h +++ b/include/freetype/internal/t1types.h @@ -25,6 +25,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /*************************************************************************/ /*************************************************************************/ @@ -182,6 +187,11 @@ } CID_FaceRec; +#ifdef __cplusplus + } +#endif + + #endif /* T1TYPES_H */ diff --git a/include/freetype/internal/t2errors.h b/include/freetype/internal/t2errors.h index d68522001..dc872c4bb 100644 --- a/include/freetype/internal/t2errors.h +++ b/include/freetype/internal/t2errors.h @@ -20,6 +20,11 @@ #define T2ERRORS_H +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /* */ /* Error codes declaration */ @@ -115,6 +120,11 @@ #define T2_Err_Could_Not_Find_Context 0x550 +#ifdef __cplusplus + } +#endif + + #endif /* T2ERRORS_H */ diff --git a/include/freetype/internal/t2types.h b/include/freetype/internal/t2types.h index 033f315e9..2f9c9b80e 100644 --- a/include/freetype/internal/t2types.h +++ b/include/freetype/internal/t2types.h @@ -24,6 +24,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /* */ /* */ @@ -212,6 +217,11 @@ } CFF_Font; +#ifdef __cplusplus + } +#endif + + #endif /* T2TYPES_H */ diff --git a/include/freetype/internal/tterrors.h b/include/freetype/internal/tterrors.h index b53e9f3da..c987623dd 100644 --- a/include/freetype/internal/tterrors.h +++ b/include/freetype/internal/tterrors.h @@ -20,6 +20,11 @@ #define TTERRORS_H +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /* */ /* Error codes declaration */ @@ -115,6 +120,11 @@ #define TT_Err_Could_Not_Find_Context 0x450 +#ifdef __cplusplus + } +#endif + + #endif /* TTERRORS_H */ diff --git a/include/freetype/internal/tttypes.h b/include/freetype/internal/tttypes.h index 1fd43ceb5..24402035d 100644 --- a/include/freetype/internal/tttypes.h +++ b/include/freetype/internal/tttypes.h @@ -24,6 +24,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /*************************************************************************/ /*************************************************************************/ @@ -1576,6 +1581,11 @@ }; +#ifdef __cplusplus + } +#endif + + #endif /* TTTYPES_H */ diff --git a/include/freetype/t1tables.h b/include/freetype/t1tables.h index 323e0130c..6c75f71f1 100644 --- a/include/freetype/t1tables.h +++ b/include/freetype/t1tables.h @@ -24,6 +24,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + /* Note that we separate font data in T1_FontInfo and T1_Private */ /* structures in order to support Multiple Master fonts. */ @@ -229,6 +234,11 @@ } CID_Info; +#ifdef __cplusplus + } +#endif + + #endif /* T1TABLES_H */ diff --git a/include/freetype/ttnameid.h b/include/freetype/ttnameid.h index 489024241..e76ff6190 100644 --- a/include/freetype/ttnameid.h +++ b/include/freetype/ttnameid.h @@ -20,6 +20,11 @@ #define TTNAMEID_H +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /* */ /* Possible values for the `platform' identifier code in the name */ @@ -692,6 +697,11 @@ #endif /* !HAVE_LIMIT_ON_IDENTS */ +#ifdef __cplusplus + } +#endif + + #endif /* TTNAMEID_H */ diff --git a/include/freetype/tttags.h b/include/freetype/tttags.h index 9de9810e9..177a4d328 100644 --- a/include/freetype/tttags.h +++ b/include/freetype/tttags.h @@ -23,6 +23,11 @@ #include /* for MAKE_TT_TAG() */ +#ifdef __cplusplus + extern "C" { +#endif + + #define TTAG_cmap FT_MAKE_TAG( 'c', 'm', 'a', 'p' ) #define TTAG_cvt FT_MAKE_TAG( 'c', 'v', 't', ' ' ) #define TTAG_CFF FT_MAKE_TAG( 'C', 'F', 'F', ' ' ) @@ -60,6 +65,11 @@ #define TTAG_vhea FT_MAKE_TAG( 'v', 'h', 'e', 'a' ) #define TTAG_vmtx FT_MAKE_TAG( 'v', 'm', 't', 'x' ) +#ifdef __cplusplus + } +#endif + + #endif /* TTAGS_H */ diff --git a/src/autohint/ahangles.h b/src/autohint/ahangles.h index 4eb36bf4d..11b499acf 100644 --- a/src/autohint/ahangles.h +++ b/src/autohint/ahangles.h @@ -38,6 +38,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + /* PI expressed in ah_angles -- we don't really need an important */ /* precision, so 256 should be enough */ #define AH_PI 256 @@ -57,6 +62,11 @@ AH_Angle ah_angle( FT_Vector* v ); +#ifdef __cplusplus + } +#endif + + #endif /* AHANGLES_H */ diff --git a/src/autohint/ahglobal.h b/src/autohint/ahglobal.h index 79e73586f..a3dff29ef 100644 --- a/src/autohint/ahglobal.h +++ b/src/autohint/ahglobal.h @@ -37,6 +37,11 @@ #include /* for LOCAL_DEF/LOCAL_FUNC */ +#ifdef __cplusplus + extern "C" { +#endif + + #define AH_IS_TOP_BLUE( b ) ( (b) == ah_blue_capital_top || \ (b) == ah_blue_small_top ) @@ -46,6 +51,11 @@ FT_Error ah_hinter_compute_globals( AH_Hinter* hinter ); +#ifdef __cplusplus + } +#endif + + #endif /* AHGLOBAL_H */ diff --git a/src/autohint/ahglyph.h b/src/autohint/ahglyph.h index 66fd5e315..ffbf715a6 100644 --- a/src/autohint/ahglyph.h +++ b/src/autohint/ahglyph.h @@ -34,6 +34,11 @@ #endif +#ifdef __cplusplus + extern "C" { +#endif + + typedef enum AH_UV_ { ah_uv_fxy, @@ -87,6 +92,11 @@ void ah_outline_done( AH_Outline* outline ); +#ifdef __cplusplus + } +#endif + + #endif /* AHGLYPH_H */ diff --git a/src/autohint/ahhint.h b/src/autohint/ahhint.h index bb297fb80..d22a5baec 100644 --- a/src/autohint/ahhint.h +++ b/src/autohint/ahhint.h @@ -34,6 +34,11 @@ #endif +#ifdef __cplusplus + extern "C" { +#endif + + #define AH_HINT_DEFAULT 0 #define AH_HINT_NO_ALIGNMENT 1 #define AH_HINT_NO_HORZ_EDGES 0x20000L @@ -66,6 +71,11 @@ void* global_hints ); +#ifdef __cplusplus + } +#endif + + #endif /* AHHINT_H */ diff --git a/src/autohint/ahloader.h b/src/autohint/ahloader.h index 4a8563c0a..ba7b48c87 100644 --- a/src/autohint/ahloader.h +++ b/src/autohint/ahloader.h @@ -36,6 +36,11 @@ #define AHLOADER_H +#ifdef __cplusplus + extern "C" { +#endif + + #ifdef _STANDALONE_ typedef struct AH_GlyphLoad_ @@ -118,6 +123,12 @@ #endif /* _STANDALONE_ */ + +#ifdef __cplusplus + } +#endif + + #endif /* AHLOADER_H */ diff --git a/src/autohint/ahmodule.h b/src/autohint/ahmodule.h index 28b07538b..ed9cd259b 100644 --- a/src/autohint/ahmodule.h +++ b/src/autohint/ahmodule.h @@ -24,8 +24,19 @@ #include + +#ifdef __cplusplus + extern "C" { +#endif + + FT_EXPORT_VAR( const FT_Module_Class ) autohint_module_class; +#ifdef __cplusplus + } +#endif + + #endif /* AHMODULE_H */ diff --git a/src/autohint/ahoptim.h b/src/autohint/ahoptim.h index a1f52bf68..24f5a5263 100644 --- a/src/autohint/ahoptim.h +++ b/src/autohint/ahoptim.h @@ -34,6 +34,11 @@ #endif +#ifdef __cplusplus + extern "C" { +#endif + + /* the maximal number of stem configurations to record */ /* during optimization */ #define AH_MAX_CONFIGS 8 @@ -130,6 +135,11 @@ void AH_Optimizer_Done( AH_Optimizer* optimizer ); +#ifdef __cplusplus + } +#endif + + #endif /* AHOPTIM_H */ diff --git a/src/autohint/ahtypes.h b/src/autohint/ahtypes.h index 3372ea9af..f8e9d2c69 100644 --- a/src/autohint/ahtypes.h +++ b/src/autohint/ahtypes.h @@ -54,6 +54,11 @@ #endif +#ifdef __cplusplus + extern "C" { +#endif + + /*************************************************************************/ /*************************************************************************/ /*************************************************************************/ @@ -486,6 +491,11 @@ } AH_Hinter; +#ifdef __cplusplus + } +#endif + + #endif /* AHTYPES_H */ diff --git a/src/cff/t2driver.h b/src/cff/t2driver.h index e0b0afd3a..189f27b6d 100644 --- a/src/cff/t2driver.h +++ b/src/cff/t2driver.h @@ -21,9 +21,19 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + FT_EXPORT_VAR( const FT_Driver_Class ) cff_driver_class; +#ifdef __cplusplus + } +#endif + + #endif /* T2DRIVER_H */ diff --git a/src/cid/cidriver.h b/src/cid/cidriver.h index a9674eed4..786110f71 100644 --- a/src/cid/cidriver.h +++ b/src/cid/cidriver.h @@ -21,8 +21,18 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + FT_EXPORT_VAR( const FT_Driver_Class ) t1cid_driver_class; +#ifdef __cplusplus + } +#endif + + #endif /* CIDRIVER_H */ diff --git a/src/psnames/psmodule.h b/src/psnames/psmodule.h index ff7ef0650..513c99eb1 100644 --- a/src/psnames/psmodule.h +++ b/src/psnames/psmodule.h @@ -21,8 +21,19 @@ #include + +#ifdef __cplusplus + extern "C" { +#endif + + FT_EXPORT_VAR( const FT_Module_Class ) psnames_module_class; +#ifdef __cplusplus + } +#endif + + #endif /* PSDRIVER_H */ diff --git a/src/raster1/ftrend1.h b/src/raster1/ftrend1.h index b8fff8311..76926ae34 100644 --- a/src/raster1/ftrend1.h +++ b/src/raster1/ftrend1.h @@ -19,9 +19,15 @@ #ifndef FTREND1_H #define FTREND1_H + #include +#ifdef __cplusplus + extern "C" { +#endif + + FT_EXPORT_VAR( const FT_Renderer_Class ) ft_raster1_renderer_class; /* this renderer is _NOT_ part of the default modules, you'll need */ @@ -31,6 +37,11 @@ FT_EXPORT_VAR( const FT_Renderer_Class ) ft_raster5_renderer_class; +#ifdef __cplusplus + } +#endif + + #endif /* FTREND1_H */ diff --git a/src/sfnt/sfdriver.h b/src/sfnt/sfdriver.h index 92c9c8129..72e3e6590 100644 --- a/src/sfnt/sfdriver.h +++ b/src/sfnt/sfdriver.h @@ -21,8 +21,19 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + FT_EXPORT_VAR( const FT_Module_Class ) sfnt_module_class; + +#ifdef __cplusplus + } +#endif + + #endif /* SFDRIVER_H */ diff --git a/src/smooth/ftsmooth.h b/src/smooth/ftsmooth.h index 4b8a53343..723b4141b 100644 --- a/src/smooth/ftsmooth.h +++ b/src/smooth/ftsmooth.h @@ -21,6 +21,12 @@ #include + +#ifdef __cplusplus + extern "C" { +#endif + + #ifndef FT_CONFIG_OPTION_NO_STD_RASTER FT_EXPORT_VAR( const FT_Renderer_Class ) ft_std_renderer_class; #endif @@ -29,6 +35,11 @@ FT_EXPORT_VAR( const FT_Renderer_Class ) ft_smooth_renderer_class; #endif +#ifdef __cplusplus + } +#endif + + #endif /* FTSMOOTH_H */ diff --git a/src/truetype/ttdriver.h b/src/truetype/ttdriver.h index 9867fbc30..a0a275e6e 100644 --- a/src/truetype/ttdriver.h +++ b/src/truetype/ttdriver.h @@ -22,9 +22,19 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + FT_EXPORT_VAR( const FT_Driver_Class ) tt_driver_class; +#ifdef __cplusplus + } +#endif + + #endif /* TTDRIVER_H */ diff --git a/src/type1/t1driver.h b/src/type1/t1driver.h index 5d615b5ba..8744b966c 100644 --- a/src/type1/t1driver.h +++ b/src/type1/t1driver.h @@ -21,9 +21,19 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + FT_EXPORT_VAR( const FT_Driver_Class ) t1_driver_class; +#ifdef __cplusplus + } +#endif + + #endif /* T1DRIVER_H */ diff --git a/src/type1z/z1driver.h b/src/type1z/z1driver.h index 08bd544d5..4367ca873 100644 --- a/src/type1z/z1driver.h +++ b/src/type1z/z1driver.h @@ -21,8 +21,18 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + FT_EXPORT_VAR( const FT_Driver_Class ) t1_driver_class; +#ifdef __cplusplus + } +#endif + + #endif /* Z1DRIVER_H */ diff --git a/src/winfonts/winfnt.h b/src/winfonts/winfnt.h index eaf308b87..0acc04e6a 100644 --- a/src/winfonts/winfnt.h +++ b/src/winfonts/winfnt.h @@ -22,6 +22,11 @@ #include +#ifdef __cplusplus + extern "C" { +#endif + + typedef struct WinMZ_Header_ { FT_UShort magic; @@ -144,6 +149,11 @@ FT_EXPORT_VAR( const FT_Driver_Class ) winfnt_driver_class; +#ifdef __cplusplus + } +#endif + + #endif /* WINFNT_H */