< prev index next >
src/java.desktop/share/native/libfreetype/include/freetype/fttypes.h
Print this page
*** 1,21 ****
! /***************************************************************************/
! /* */
! /* fttypes.h */
! /* */
! /* FreeType simple types definitions (specification only). */
! /* */
! /* Copyright 1996-2018 by */
! /* David Turner, Robert Wilhelm, and Werner Lemberg. */
! /* */
! /* This file is part of the FreeType project, and may only be used, */
! /* modified, and distributed under the terms of the FreeType project */
! /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
! /* this file you indicate that you have read the license and */
! /* understand and accept it fully. */
! /* */
! /***************************************************************************/
#ifndef FTTYPES_H_
#define FTTYPES_H_
--- 1,21 ----
! /****************************************************************************
! *
! * fttypes.h
! *
! * FreeType simple types definitions (specification only).
! *
! * Copyright (C) 1996-2019 by
! * David Turner, Robert Wilhelm, and Werner Lemberg.
! *
! * This file is part of the FreeType project, and may only be used,
! * modified, and distributed under the terms of the FreeType project
! * license, LICENSE.TXT. By continuing to use, modify, or distribute
! * this file you indicate that you have read the license and
! * understand and accept it fully.
! *
! */
#ifndef FTTYPES_H_
#define FTTYPES_H_
*** 29,484 ****
FT_BEGIN_HEADER
! /*************************************************************************/
! /* */
! /* <Section> */
! /* basic_types */
! /* */
! /* <Title> */
! /* Basic Data Types */
! /* */
! /* <Abstract> */
! /* The basic data types defined by the library. */
! /* */
! /* <Description> */
! /* This section contains the basic data types defined by FreeType~2, */
! /* ranging from simple scalar types to bitmap descriptors. More */
! /* font-specific structures are defined in a different section. */
! /* */
! /* <Order> */
! /* FT_Byte */
! /* FT_Bytes */
! /* FT_Char */
! /* FT_Int */
! /* FT_UInt */
! /* FT_Int16 */
! /* FT_UInt16 */
! /* FT_Int32 */
! /* FT_UInt32 */
! /* FT_Int64 */
! /* FT_UInt64 */
! /* FT_Short */
! /* FT_UShort */
! /* FT_Long */
! /* FT_ULong */
! /* FT_Bool */
! /* FT_Offset */
! /* FT_PtrDist */
! /* FT_String */
! /* FT_Tag */
! /* FT_Error */
! /* FT_Fixed */
! /* FT_Pointer */
! /* FT_Pos */
! /* FT_Vector */
! /* FT_BBox */
! /* FT_Matrix */
! /* FT_FWord */
! /* FT_UFWord */
! /* FT_F2Dot14 */
! /* FT_UnitVector */
! /* FT_F26Dot6 */
! /* FT_Data */
! /* */
! /* FT_MAKE_TAG */
! /* */
! /* FT_Generic */
! /* FT_Generic_Finalizer */
! /* */
! /* FT_Bitmap */
! /* FT_Pixel_Mode */
! /* FT_Palette_Mode */
! /* FT_Glyph_Format */
! /* FT_IMAGE_TAG */
! /* */
! /*************************************************************************/
!
!
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_Bool */
! /* */
! /* <Description> */
! /* A typedef of unsigned char, used for simple booleans. As usual, */
! /* values 1 and~0 represent true and false, respectively. */
! /* */
typedef unsigned char FT_Bool;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_FWord */
! /* */
! /* <Description> */
! /* A signed 16-bit integer used to store a distance in original font */
! /* units. */
! /* */
typedef signed short FT_FWord; /* distance in FUnits */
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_UFWord */
! /* */
! /* <Description> */
! /* An unsigned 16-bit integer used to store a distance in original */
! /* font units. */
! /* */
typedef unsigned short FT_UFWord; /* unsigned distance */
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_Char */
! /* */
! /* <Description> */
! /* A simple typedef for the _signed_ char type. */
! /* */
typedef signed char FT_Char;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_Byte */
! /* */
! /* <Description> */
! /* A simple typedef for the _unsigned_ char type. */
! /* */
typedef unsigned char FT_Byte;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_Bytes */
! /* */
! /* <Description> */
! /* A typedef for constant memory areas. */
! /* */
typedef const FT_Byte* FT_Bytes;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_Tag */
! /* */
! /* <Description> */
! /* A typedef for 32-bit tags (as used in the SFNT format). */
! /* */
typedef FT_UInt32 FT_Tag;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_String */
! /* */
! /* <Description> */
! /* A simple typedef for the char type, usually used for strings. */
! /* */
typedef char FT_String;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_Short */
! /* */
! /* <Description> */
! /* A typedef for signed short. */
! /* */
typedef signed short FT_Short;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_UShort */
! /* */
! /* <Description> */
! /* A typedef for unsigned short. */
! /* */
typedef unsigned short FT_UShort;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_Int */
! /* */
! /* <Description> */
! /* A typedef for the int type. */
! /* */
typedef signed int FT_Int;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_UInt */
! /* */
! /* <Description> */
! /* A typedef for the unsigned int type. */
! /* */
typedef unsigned int FT_UInt;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_Long */
! /* */
! /* <Description> */
! /* A typedef for signed long. */
! /* */
typedef signed long FT_Long;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_ULong */
! /* */
! /* <Description> */
! /* A typedef for unsigned long. */
! /* */
typedef unsigned long FT_ULong;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_F2Dot14 */
! /* */
! /* <Description> */
! /* A signed 2.14 fixed-point type used for unit vectors. */
! /* */
typedef signed short FT_F2Dot14;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_F26Dot6 */
! /* */
! /* <Description> */
! /* A signed 26.6 fixed-point type used for vectorial pixel */
! /* coordinates. */
! /* */
typedef signed long FT_F26Dot6;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_Fixed */
! /* */
! /* <Description> */
! /* This type is used to store 16.16 fixed-point values, like scaling */
! /* values or matrix coefficients. */
! /* */
typedef signed long FT_Fixed;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_Error */
! /* */
! /* <Description> */
! /* The FreeType error code type. A value of~0 is always interpreted */
! /* as a successful operation. */
! /* */
typedef int FT_Error;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_Pointer */
! /* */
! /* <Description> */
! /* A simple typedef for a typeless pointer. */
! /* */
typedef void* FT_Pointer;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_Offset */
! /* */
! /* <Description> */
! /* This is equivalent to the ANSI~C `size_t' type, i.e., the largest */
! /* _unsigned_ integer type used to express a file size or position, */
! /* or a memory block size. */
! /* */
typedef size_t FT_Offset;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_PtrDist */
! /* */
! /* <Description> */
! /* This is equivalent to the ANSI~C `ptrdiff_t' type, i.e., the */
! /* largest _signed_ integer type used to express the distance */
! /* between two pointers. */
! /* */
typedef ft_ptrdiff_t FT_PtrDist;
! /*************************************************************************/
! /* */
! /* <Struct> */
! /* FT_UnitVector */
! /* */
! /* <Description> */
! /* A simple structure used to store a 2D vector unit vector. Uses */
! /* FT_F2Dot14 types. */
! /* */
! /* <Fields> */
! /* x :: Horizontal coordinate. */
! /* */
! /* y :: Vertical coordinate. */
! /* */
typedef struct FT_UnitVector_
{
FT_F2Dot14 x;
FT_F2Dot14 y;
} FT_UnitVector;
! /*************************************************************************/
! /* */
! /* <Struct> */
! /* FT_Matrix */
! /* */
! /* <Description> */
! /* A simple structure used to store a 2x2 matrix. Coefficients are */
! /* in 16.16 fixed-point format. The computation performed is: */
! /* */
! /* { */
! /* x' = x*xx + y*xy */
! /* y' = x*yx + y*yy */
! /* } */
! /* */
! /* <Fields> */
! /* xx :: Matrix coefficient. */
! /* */
! /* xy :: Matrix coefficient. */
! /* */
! /* yx :: Matrix coefficient. */
! /* */
! /* yy :: Matrix coefficient. */
! /* */
typedef struct FT_Matrix_
{
FT_Fixed xx, xy;
FT_Fixed yx, yy;
} FT_Matrix;
! /*************************************************************************/
! /* */
! /* <Struct> */
! /* FT_Data */
! /* */
! /* <Description> */
! /* Read-only binary data represented as a pointer and a length. */
! /* */
! /* <Fields> */
! /* pointer :: The data. */
! /* */
! /* length :: The length of the data in bytes. */
! /* */
typedef struct FT_Data_
{
const FT_Byte* pointer;
FT_Int length;
} FT_Data;
! /*************************************************************************/
! /* */
! /* <FuncType> */
! /* FT_Generic_Finalizer */
! /* */
! /* <Description> */
! /* Describe a function used to destroy the `client' data of any */
! /* FreeType object. See the description of the @FT_Generic type for */
! /* details of usage. */
! /* */
! /* <Input> */
! /* The address of the FreeType object that is under finalization. */
! /* Its client data is accessed through its `generic' field. */
! /* */
typedef void (*FT_Generic_Finalizer)( void* object );
! /*************************************************************************/
! /* */
! /* <Struct> */
! /* FT_Generic */
! /* */
! /* <Description> */
! /* Client applications often need to associate their own data to a */
! /* variety of FreeType core objects. For example, a text layout API */
! /* might want to associate a glyph cache to a given size object. */
! /* */
! /* Some FreeType object contains a `generic' field, of type */
! /* FT_Generic, which usage is left to client applications and font */
! /* servers. */
! /* */
! /* It can be used to store a pointer to client-specific data, as well */
! /* as the address of a `finalizer' function, which will be called by */
! /* FreeType when the object is destroyed (for example, the previous */
! /* client example would put the address of the glyph cache destructor */
! /* in the `finalizer' field). */
! /* */
! /* <Fields> */
! /* data :: A typeless pointer to any client-specified data. This */
! /* field is completely ignored by the FreeType library. */
! /* */
! /* finalizer :: A pointer to a `generic finalizer' function, which */
! /* will be called when the object is destroyed. If this */
! /* field is set to NULL, no code will be called. */
! /* */
typedef struct FT_Generic_
{
void* data;
FT_Generic_Finalizer finalizer;
} FT_Generic;
! /*************************************************************************/
! /* */
! /* <Macro> */
! /* FT_MAKE_TAG */
! /* */
! /* <Description> */
! /* This macro converts four-letter tags that are used to label */
! /* TrueType tables into an unsigned long, to be used within FreeType. */
! /* */
! /* <Note> */
! /* The produced values *must* be 32-bit integers. Don't redefine */
! /* this macro. */
! /* */
#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \
(FT_Tag) \
( ( (FT_ULong)_x1 << 24 ) | \
( (FT_ULong)_x2 << 16 ) | \
( (FT_ULong)_x3 << 8 ) | \
--- 29,492 ----
FT_BEGIN_HEADER
! /**************************************************************************
! *
! * @section:
! * basic_types
! *
! * @title:
! * Basic Data Types
! *
! * @abstract:
! * The basic data types defined by the library.
! *
! * @description:
! * This section contains the basic data types defined by FreeType~2,
! * ranging from simple scalar types to bitmap descriptors. More
! * font-specific structures are defined in a different section.
! *
! * @order:
! * FT_Byte
! * FT_Bytes
! * FT_Char
! * FT_Int
! * FT_UInt
! * FT_Int16
! * FT_UInt16
! * FT_Int32
! * FT_UInt32
! * FT_Int64
! * FT_UInt64
! * FT_Short
! * FT_UShort
! * FT_Long
! * FT_ULong
! * FT_Bool
! * FT_Offset
! * FT_PtrDist
! * FT_String
! * FT_Tag
! * FT_Error
! * FT_Fixed
! * FT_Pointer
! * FT_Pos
! * FT_Vector
! * FT_BBox
! * FT_Matrix
! * FT_FWord
! * FT_UFWord
! * FT_F2Dot14
! * FT_UnitVector
! * FT_F26Dot6
! * FT_Data
! *
! * FT_MAKE_TAG
! *
! * FT_Generic
! * FT_Generic_Finalizer
! *
! * FT_Bitmap
! * FT_Pixel_Mode
! * FT_Palette_Mode
! * FT_Glyph_Format
! * FT_IMAGE_TAG
! *
! */
!
!
! /**************************************************************************
! *
! * @type:
! * FT_Bool
! *
! * @description:
! * A typedef of unsigned char, used for simple booleans. As usual,
! * values 1 and~0 represent true and false, respectively.
! */
typedef unsigned char FT_Bool;
! /**************************************************************************
! *
! * @type:
! * FT_FWord
! *
! * @description:
! * A signed 16-bit integer used to store a distance in original font
! * units.
! */
typedef signed short FT_FWord; /* distance in FUnits */
! /**************************************************************************
! *
! * @type:
! * FT_UFWord
! *
! * @description:
! * An unsigned 16-bit integer used to store a distance in original font
! * units.
! */
typedef unsigned short FT_UFWord; /* unsigned distance */
! /**************************************************************************
! *
! * @type:
! * FT_Char
! *
! * @description:
! * A simple typedef for the _signed_ char type.
! */
typedef signed char FT_Char;
! /**************************************************************************
! *
! * @type:
! * FT_Byte
! *
! * @description:
! * A simple typedef for the _unsigned_ char type.
! */
typedef unsigned char FT_Byte;
! /**************************************************************************
! *
! * @type:
! * FT_Bytes
! *
! * @description:
! * A typedef for constant memory areas.
! */
typedef const FT_Byte* FT_Bytes;
! /**************************************************************************
! *
! * @type:
! * FT_Tag
! *
! * @description:
! * A typedef for 32-bit tags (as used in the SFNT format).
! */
typedef FT_UInt32 FT_Tag;
! /**************************************************************************
! *
! * @type:
! * FT_String
! *
! * @description:
! * A simple typedef for the char type, usually used for strings.
! */
typedef char FT_String;
! /**************************************************************************
! *
! * @type:
! * FT_Short
! *
! * @description:
! * A typedef for signed short.
! */
typedef signed short FT_Short;
! /**************************************************************************
! *
! * @type:
! * FT_UShort
! *
! * @description:
! * A typedef for unsigned short.
! */
typedef unsigned short FT_UShort;
! /**************************************************************************
! *
! * @type:
! * FT_Int
! *
! * @description:
! * A typedef for the int type.
! */
typedef signed int FT_Int;
! /**************************************************************************
! *
! * @type:
! * FT_UInt
! *
! * @description:
! * A typedef for the unsigned int type.
! */
typedef unsigned int FT_UInt;
! /**************************************************************************
! *
! * @type:
! * FT_Long
! *
! * @description:
! * A typedef for signed long.
! */
typedef signed long FT_Long;
! /**************************************************************************
! *
! * @type:
! * FT_ULong
! *
! * @description:
! * A typedef for unsigned long.
! */
typedef unsigned long FT_ULong;
! /**************************************************************************
! *
! * @type:
! * FT_F2Dot14
! *
! * @description:
! * A signed 2.14 fixed-point type used for unit vectors.
! */
typedef signed short FT_F2Dot14;
! /**************************************************************************
! *
! * @type:
! * FT_F26Dot6
! *
! * @description:
! * A signed 26.6 fixed-point type used for vectorial pixel coordinates.
! */
typedef signed long FT_F26Dot6;
! /**************************************************************************
! *
! * @type:
! * FT_Fixed
! *
! * @description:
! * This type is used to store 16.16 fixed-point values, like scaling
! * values or matrix coefficients.
! */
typedef signed long FT_Fixed;
! /**************************************************************************
! *
! * @type:
! * FT_Error
! *
! * @description:
! * The FreeType error code type. A value of~0 is always interpreted as a
! * successful operation.
! */
typedef int FT_Error;
! /**************************************************************************
! *
! * @type:
! * FT_Pointer
! *
! * @description:
! * A simple typedef for a typeless pointer.
! */
typedef void* FT_Pointer;
! /**************************************************************************
! *
! * @type:
! * FT_Offset
! *
! * @description:
! * This is equivalent to the ANSI~C `size_t` type, i.e., the largest
! * _unsigned_ integer type used to express a file size or position, or a
! * memory block size.
! */
typedef size_t FT_Offset;
! /**************************************************************************
! *
! * @type:
! * FT_PtrDist
! *
! * @description:
! * This is equivalent to the ANSI~C `ptrdiff_t` type, i.e., the largest
! * _signed_ integer type used to express the distance between two
! * pointers.
! */
typedef ft_ptrdiff_t FT_PtrDist;
! /**************************************************************************
! *
! * @struct:
! * FT_UnitVector
! *
! * @description:
! * A simple structure used to store a 2D vector unit vector. Uses
! * FT_F2Dot14 types.
! *
! * @fields:
! * x ::
! * Horizontal coordinate.
! *
! * y ::
! * Vertical coordinate.
! */
typedef struct FT_UnitVector_
{
FT_F2Dot14 x;
FT_F2Dot14 y;
} FT_UnitVector;
! /**************************************************************************
! *
! * @struct:
! * FT_Matrix
! *
! * @description:
! * A simple structure used to store a 2x2 matrix. Coefficients are in
! * 16.16 fixed-point format. The computation performed is:
! *
! * ```
! * x' = x*xx + y*xy
! * y' = x*yx + y*yy
! * ```
! *
! * @fields:
! * xx ::
! * Matrix coefficient.
! *
! * xy ::
! * Matrix coefficient.
! *
! * yx ::
! * Matrix coefficient.
! *
! * yy ::
! * Matrix coefficient.
! */
typedef struct FT_Matrix_
{
FT_Fixed xx, xy;
FT_Fixed yx, yy;
} FT_Matrix;
! /**************************************************************************
! *
! * @struct:
! * FT_Data
! *
! * @description:
! * Read-only binary data represented as a pointer and a length.
! *
! * @fields:
! * pointer ::
! * The data.
! *
! * length ::
! * The length of the data in bytes.
! */
typedef struct FT_Data_
{
const FT_Byte* pointer;
FT_Int length;
} FT_Data;
! /**************************************************************************
! *
! * @functype:
! * FT_Generic_Finalizer
! *
! * @description:
! * Describe a function used to destroy the 'client' data of any FreeType
! * object. See the description of the @FT_Generic type for details of
! * usage.
! *
! * @input:
! * The address of the FreeType object that is under finalization. Its
! * client data is accessed through its `generic` field.
! */
typedef void (*FT_Generic_Finalizer)( void* object );
! /**************************************************************************
! *
! * @struct:
! * FT_Generic
! *
! * @description:
! * Client applications often need to associate their own data to a
! * variety of FreeType core objects. For example, a text layout API
! * might want to associate a glyph cache to a given size object.
! *
! * Some FreeType object contains a `generic` field, of type `FT_Generic`,
! * which usage is left to client applications and font servers.
! *
! * It can be used to store a pointer to client-specific data, as well as
! * the address of a 'finalizer' function, which will be called by
! * FreeType when the object is destroyed (for example, the previous
! * client example would put the address of the glyph cache destructor in
! * the `finalizer` field).
! *
! * @fields:
! * data ::
! * A typeless pointer to any client-specified data. This field is
! * completely ignored by the FreeType library.
! *
! * finalizer ::
! * A pointer to a 'generic finalizer' function, which will be called
! * when the object is destroyed. If this field is set to `NULL`, no
! * code will be called.
! */
typedef struct FT_Generic_
{
void* data;
FT_Generic_Finalizer finalizer;
} FT_Generic;
! /**************************************************************************
! *
! * @macro:
! * FT_MAKE_TAG
! *
! * @description:
! * This macro converts four-letter tags that are used to label TrueType
! * tables into an unsigned long, to be used within FreeType.
! *
! * @note:
! * The produced values **must** be 32-bit integers. Don't redefine this
! * macro.
! */
#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \
(FT_Tag) \
( ( (FT_ULong)_x1 << 24 ) | \
( (FT_ULong)_x2 << 16 ) | \
( (FT_ULong)_x3 << 8 ) | \
*** 492,571 ****
/* */
/*************************************************************************/
/*************************************************************************/
! /*************************************************************************/
! /* */
! /* <Section> */
! /* list_processing */
! /* */
! /*************************************************************************/
!
!
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_ListNode */
! /* */
! /* <Description> */
! /* Many elements and objects in FreeType are listed through an */
! /* @FT_List record (see @FT_ListRec). As its name suggests, an */
! /* FT_ListNode is a handle to a single list element. */
! /* */
typedef struct FT_ListNodeRec_* FT_ListNode;
! /*************************************************************************/
! /* */
! /* <Type> */
! /* FT_List */
! /* */
! /* <Description> */
! /* A handle to a list record (see @FT_ListRec). */
! /* */
typedef struct FT_ListRec_* FT_List;
! /*************************************************************************/
! /* */
! /* <Struct> */
! /* FT_ListNodeRec */
! /* */
! /* <Description> */
! /* A structure used to hold a single list element. */
! /* */
! /* <Fields> */
! /* prev :: The previous element in the list. NULL if first. */
! /* */
! /* next :: The next element in the list. NULL if last. */
! /* */
! /* data :: A typeless pointer to the listed object. */
! /* */
typedef struct FT_ListNodeRec_
{
FT_ListNode prev;
FT_ListNode next;
void* data;
} FT_ListNodeRec;
! /*************************************************************************/
! /* */
! /* <Struct> */
! /* FT_ListRec */
! /* */
! /* <Description> */
! /* A structure used to hold a simple doubly-linked list. These are */
! /* used in many parts of FreeType. */
! /* */
! /* <Fields> */
! /* head :: The head (first element) of doubly-linked list. */
! /* */
! /* tail :: The tail (last element) of doubly-linked list. */
! /* */
typedef struct FT_ListRec_
{
FT_ListNode head;
FT_ListNode tail;
--- 500,584 ----
/* */
/*************************************************************************/
/*************************************************************************/
! /**************************************************************************
! *
! * @section:
! * list_processing
! *
! */
!
!
! /**************************************************************************
! *
! * @type:
! * FT_ListNode
! *
! * @description:
! * Many elements and objects in FreeType are listed through an @FT_List
! * record (see @FT_ListRec). As its name suggests, an FT_ListNode is a
! * handle to a single list element.
! */
typedef struct FT_ListNodeRec_* FT_ListNode;
! /**************************************************************************
! *
! * @type:
! * FT_List
! *
! * @description:
! * A handle to a list record (see @FT_ListRec).
! */
typedef struct FT_ListRec_* FT_List;
! /**************************************************************************
! *
! * @struct:
! * FT_ListNodeRec
! *
! * @description:
! * A structure used to hold a single list element.
! *
! * @fields:
! * prev ::
! * The previous element in the list. `NULL` if first.
! *
! * next ::
! * The next element in the list. `NULL` if last.
! *
! * data ::
! * A typeless pointer to the listed object.
! */
typedef struct FT_ListNodeRec_
{
FT_ListNode prev;
FT_ListNode next;
void* data;
} FT_ListNodeRec;
! /**************************************************************************
! *
! * @struct:
! * FT_ListRec
! *
! * @description:
! * A structure used to hold a simple doubly-linked list. These are used
! * in many parts of FreeType.
! *
! * @fields:
! * head ::
! * The head (first element) of doubly-linked list.
! *
! * tail ::
! * The tail (last element) of doubly-linked list.
! */
typedef struct FT_ListRec_
{
FT_ListNode head;
FT_ListNode tail;
*** 573,589 ****
/* */
#define FT_IS_EMPTY( list ) ( (list).head == 0 )
! #define FT_BOOL( x ) ( (FT_Bool)( x ) )
/* concatenate C tokens */
#define FT_ERR_XCAT( x, y ) x ## y
#define FT_ERR_CAT( x, y ) FT_ERR_XCAT( x, y )
! /* see `ftmoderr.h' for descriptions of the following macros */
#define FT_ERR( e ) FT_ERR_CAT( FT_ERR_PREFIX, e )
#define FT_ERROR_BASE( x ) ( (x) & 0xFF )
#define FT_ERROR_MODULE( x ) ( (x) & 0xFF00U )
--- 586,602 ----
/* */
#define FT_IS_EMPTY( list ) ( (list).head == 0 )
! #define FT_BOOL( x ) ( (FT_Bool)( (x) != 0 ) )
/* concatenate C tokens */
#define FT_ERR_XCAT( x, y ) x ## y
#define FT_ERR_CAT( x, y ) FT_ERR_XCAT( x, y )
! /* see `ftmoderr.h` for descriptions of the following macros */
#define FT_ERR( e ) FT_ERR_CAT( FT_ERR_PREFIX, e )
#define FT_ERROR_BASE( x ) ( (x) & 0xFF )
#define FT_ERROR_MODULE( x ) ( (x) & 0xFF00U )
< prev index next >