Imported Upstream version 2.14.2
[platform/upstream/fontconfig.git] / doc / fcpattern.fncs
index 1049d77..0da3568 100644 (file)
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-@RET@          FcPattern *     
-@FUNC@         FcPatternCreate
-@TYPE1@        void
-@PURPOSE@      Create a pattern
+@RET@           FcPattern *
+@FUNC@          FcPatternCreate
+@TYPE1@         void
+@PURPOSE@       Create a pattern
 @DESC@
 Creates a pattern with no properties; used to build patterns from scratch.
 @@
 
-@RET@          FcPattern *     
-@FUNC@         FcPatternDuplicate
-@TYPE1@                const FcPattern *               @ARG1@           p
-@PURPOSE@      Copy a pattern
+@RET@           FcPattern *
+@FUNC@          FcPatternDuplicate
+@TYPE1@         const FcPattern *               @ARG1@           p
+@PURPOSE@       Copy a pattern
 @DESC@
 Copy a pattern, returning a new pattern that matches
 <parameter>p</parameter>. Each pattern may be modified without affecting the
 other.
 @@
 
-@RET@          void
-@FUNC@         FcPatternReference
-@TYPE1@                FcPattern *                     @ARG1@           p
-@PURPOSE@      Increment pattern reference count
+@RET@           void
+@FUNC@          FcPatternReference
+@TYPE1@         FcPattern *                     @ARG1@           p
+@PURPOSE@       Increment pattern reference count
 @DESC@
 Add another reference to <parameter>p</parameter>. Patterns are freed only
 when the reference count reaches zero.
 @@
 
-@RET@          void
-@FUNC@         FcPatternDestroy
-@TYPE1@                FcPattern *                     @ARG1@           p
-@PURPOSE@      Destroy a pattern
+@RET@           void
+@FUNC@          FcPatternDestroy
+@TYPE1@         FcPattern *                     @ARG1@           p
+@PURPOSE@       Destroy a pattern
 @DESC@
 Decrement the pattern reference count. If all references are gone, destroys
 the pattern, in the process destroying all related values.
 @@
 
-@RET@          FcBool
-@FUNC@         FcPatternEqual
-@TYPE1@        const FcPattern *               @ARG1@          pa
-@TYPE2@                const FcPattern *               @ARG2@          pb 
-@PURPOSE@      Compare patterns
+@RET@           int
+@FUNC@          FcPatternObjectCount
+@TYPE1@         const FcPattern *               @ARG1@          p
+@PURPOSE@       Returns the number of the object
+@DESC@
+Returns the number of the object <parameter>p</parameter> has.
+@SINCE@         2.13.1
+@@
+
+@RET@           FcBool
+@FUNC@          FcPatternEqual
+@TYPE1@         const FcPattern *               @ARG1@          pa
+@TYPE2@         const FcPattern *               @ARG2@          pb
+@PURPOSE@       Compare patterns
 @DESC@
 Returns whether <parameter>pa</parameter> and <parameter>pb</parameter> are exactly alike.
 @@
 
-@RET@          FcBool
-@FUNC@         FcPatternEqualSubset
-@TYPE1@                const FcPattern *               @ARG1@          pa
-@TYPE2@                const FcPattern *               @ARG2@          pb
-@TYPE3@        const FcObjectSet *             @ARG3@          os 
-@PURPOSE@      Compare portions of patterns
+@RET@           FcBool
+@FUNC@          FcPatternEqualSubset
+@TYPE1@         const FcPattern *               @ARG1@          pa
+@TYPE2@         const FcPattern *               @ARG2@          pb
+@TYPE3@         const FcObjectSet *             @ARG3@          os
+@PURPOSE@       Compare portions of patterns
 @DESC@
 Returns whether <parameter>pa</parameter> and <parameter>pb</parameter> have exactly the same values for all of the
 objects in <parameter>os</parameter>.
 @@
 
-@RET@          FcPattern *
-@FUNC@         FcPatternFilter
-@TYPE1@                FcPattern *                     @ARG1@           p
-@TYPE2@                const FcObjectSet *             @ARG1@           os
-@PURPOSE@      Filter the objects of pattern
+@RET@           FcPattern *
+@FUNC@          FcPatternFilter
+@TYPE1@         FcPattern *                     @ARG1@           p
+@TYPE2@         const FcObjectSet *             @ARG2@           os
+@PURPOSE@       Filter the objects of pattern
 @DESC@
 Returns a new pattern that only has those objects from
 <parameter>p</parameter> that are in <parameter>os</parameter>.
@@ -89,22 +98,22 @@ If <parameter>os</parameter> is NULL, a duplicate of
 <parameter>p</parameter> is returned.
 @@
 
-@RET@          FcChar32
-@FUNC@         FcPatternHash
-@TYPE1@                const FcPattern *               @ARG1@          p
-@PURPOSE@      Compute a pattern hash value
+@RET@           FcChar32
+@FUNC@          FcPatternHash
+@TYPE1@         const FcPattern *               @ARG1@          p
+@PURPOSE@       Compute a pattern hash value
 @DESC@
 Returns a 32-bit number which is the same for any two patterns which are
 equal.
 @@
 
-@RET@          FcBool
-@FUNC@         FcPatternAdd
-@TYPE1@                FcPattern *                     @ARG1@          p
-@TYPE2@        const char *                    @ARG2@          object
-@TYPE3@                FcValue%                        @ARG3@          value
-@TYPE4@                FcBool%                         @ARG4@          append 
-@PURPOSE@      Add a value to a pattern
+@RET@           FcBool
+@FUNC@          FcPatternAdd
+@TYPE1@         FcPattern *                     @ARG1@          p
+@TYPE2@         const char *                    @ARG2@          object
+@TYPE3@         FcValue%                        @ARG3@          value
+@TYPE4@         FcBool%                         @ARG4@          append
+@PURPOSE@       Add a value to a pattern
 @DESC@
 Adds a single value to the list of values associated with the property named
 `object<parameter>.  If `append</parameter> is FcTrue, the value is added at the end of any
@@ -113,82 +122,82 @@ existing list, otherwise it is inserted at the beginning.  `value' is saved
 retains no reference to any application-supplied data structure.
 @@
 
-@RET@          FcBool
-@FUNC@         FcPatternAddWeak
-@TYPE1@        FcPattern *                     @ARG1@          p
-@TYPE2@        const char *                    @ARG2@          object
-@TYPE3@        FcValue%                        @ARG3@          value
-@TYPE4@        FcBool%                         @ARG4@          append 
-@PURPOSE@      Add a value to a pattern with weak binding
+@RET@           FcBool
+@FUNC@          FcPatternAddWeak
+@TYPE1@         FcPattern *                     @ARG1@          p
+@TYPE2@         const char *                    @ARG2@          object
+@TYPE3@         FcValue%                        @ARG3@          value
+@TYPE4@         FcBool%                         @ARG4@          append
+@PURPOSE@       Add a value to a pattern with weak binding
 @DESC@
 FcPatternAddWeak is essentially the same as FcPatternAdd except that any
 values added to the list have binding <parameter>weak</parameter> instead of <parameter>strong</parameter>.
 @@
 
-@TITLE@                FcPatternAdd-Type
-@RET@          FcBool
-@FUNC@         FcPatternAddInteger
-@TYPE1@        FcPattern *                     @ARG1@          p
-@TYPE2@                const char *                    @ARG2@          object
-@TYPE3@                int%                            @ARG3@          i
+@TITLE@         FcPatternAdd-Type
+@RET@           FcBool
+@FUNC@          FcPatternAddInteger
+@TYPE1@         FcPattern *                     @ARG1@          p
+@TYPE2@         const char *                    @ARG2@          object
+@TYPE3@         int%                            @ARG3@          i
 
 @PROTOTYPE+@
-@RET+@         FcBool
-@FUNC+@                FcPatternAddDouble
-@TYPE1+@       FcPattern *                     @ARG1+@         p
-@TYPE2+@       const char *                    @ARG2+@         object
-@TYPE3+@       double%                         @ARG3+@         d
+@RET+@          FcBool
+@FUNC+@         FcPatternAddDouble
+@TYPE1+@        FcPattern *                     @ARG1+@         p
+@TYPE2+@        const char *                    @ARG2+@         object
+@TYPE3+@        double%                         @ARG3+@         d
 
 @PROTOTYPE++@
-@RET++@                FcBool
-@FUNC++@       FcPatternAddString
-@TYPE1++@      FcPattern *                     @ARG1++@        p
-@TYPE2++@      const char *                    @ARG2++@        object
-@TYPE3++@      const FcChar8 *                 @ARG3++@        s
+@RET++@         FcBool
+@FUNC++@        FcPatternAddString
+@TYPE1++@       FcPattern *                     @ARG1++@        p
+@TYPE2++@       const char *                    @ARG2++@        object
+@TYPE3++@       const FcChar8 *                 @ARG3++@        s
 
 @PROTOTYPE+++@
-@RET+++@       FcBool
-@FUNC+++@      FcPatternAddMatrix
-@TYPE1+++@     FcPattern *                     @ARG1+++@       p
-@TYPE2+++@     const char *                    @ARG2+++@       object
-@TYPE3+++@     const FcMatrix *                @ARG3+++@       m
+@RET+++@        FcBool
+@FUNC+++@       FcPatternAddMatrix
+@TYPE1+++@      FcPattern *                     @ARG1+++@       p
+@TYPE2+++@      const char *                    @ARG2+++@       object
+@TYPE3+++@      const FcMatrix *                @ARG3+++@       m
 
 @PROTOTYPE++++@
-@RET++++@      FcBool
-@FUNC++++@     FcPatternAddCharSet
-@TYPE1++++@    FcPattern *                     @ARG1++++@      p
-@TYPE2++++@    const char *                    @ARG2++++@      object
-@TYPE3++++@    const FcCharSet *               @ARG3++++@      c
+@RET++++@       FcBool
+@FUNC++++@      FcPatternAddCharSet
+@TYPE1++++@     FcPattern *                     @ARG1++++@      p
+@TYPE2++++@     const char *                    @ARG2++++@      object
+@TYPE3++++@     const FcCharSet *               @ARG3++++@      c
 
 @PROTOTYPE+++++@
-@RET+++++@     FcBool
-@FUNC+++++@    FcPatternAddBool
-@TYPE1+++++@   FcPattern *                     @ARG1+++++@     p
-@TYPE2+++++@   const char *                    @ARG2+++++@     object
-@TYPE3+++++@   FcBool%                         @ARG3+++++@     b
+@RET+++++@      FcBool
+@FUNC+++++@     FcPatternAddBool
+@TYPE1+++++@    FcPattern *                     @ARG1+++++@     p
+@TYPE2+++++@    const char *                    @ARG2+++++@     object
+@TYPE3+++++@    FcBool%                         @ARG3+++++@     b
 
 @PROTOTYPE++++++@
-@RET++++++@    FcBool
-@FUNC++++++@   FcPatternAddFTFace
-@TYPE1++++++@  FcPattern *                     @ARG1++++++@    p
-@TYPE2++++++@  const char *                    @ARG2++++++@    object
-@TYPE3++++++@  const FT_Face                   @ARG3++++++@    f
+@RET++++++@     FcBool
+@FUNC++++++@    FcPatternAddFTFace
+@TYPE1++++++@   FcPattern *                     @ARG1++++++@    p
+@TYPE2++++++@   const char *                    @ARG2++++++@    object
+@TYPE3++++++@   const FT_Face                   @ARG3++++++@    f
 
 @PROTOTYPE+++++++@
-@RET+++++++@   FcBool
-@FUNC+++++++@  FcPatternAddLangSet
-@TYPE1+++++++@         FcPattern *                     @ARG1+++++++@   p
-@TYPE2+++++++@ const char *                    @ARG2+++++++@   object
-@TYPE3+++++++@ const FcLangSet *               @ARG3+++++++@   l
+@RET+++++++@    FcBool
+@FUNC+++++++@   FcPatternAddLangSet
+@TYPE1+++++++@  FcPattern *                     @ARG1+++++++@   p
+@TYPE2+++++++@  const char *                    @ARG2+++++++@   object
+@TYPE3+++++++@  const FcLangSet *               @ARG3+++++++@   l
 
 @PROTOTYPE++++++++@
-@RET++++++++@  FcBool
-@FUNC++++++++@ FcPatternAddRange
-@TYPE1++++++++@        FcPattern *                     @ARG1++++++++@  p
-@TYPE2++++++++@        const char *                    @ARG2++++++++@  object
-@TYPE3++++++++@        const FcRange *                 @ARG3++++++++@  r
+@RET++++++++@   FcBool
+@FUNC++++++++@  FcPatternAddRange
+@TYPE1++++++++@ FcPattern *                     @ARG1++++++++@  p
+@TYPE2++++++++@ const char *                    @ARG2++++++++@  object
+@TYPE3++++++++@ const FcRange *                 @ARG3++++++++@  r
 
-@PURPOSE@      Add a typed value to a pattern
+@PURPOSE@       Add a typed value to a pattern
 @DESC@
 These are all convenience functions that insert objects of the specified
 type into the pattern.  Use these in preference to FcPatternAdd as they
@@ -198,13 +207,30 @@ any existing list of values.
 <function>FcPatternAddRange</function> are available since 2.11.91.
 @@
 
-@RET@          FcResult
-@FUNC@         FcPatternGet
-@TYPE1@                FcPattern *                     @ARG1@          p
-@TYPE2@                const char *                    @ARG2@          object
-@TYPE3@                int%                            @ARG3@          id
-@TYPE4@                FcValue *                       @ARG4@          v 
-@PURPOSE@      Return a value from a pattern
+@RET@           FcResult
+@FUNC@          FcPatternGetWithBinding
+@TYPE1@         FcPattern *                     @ARG1@          p
+@TYPE2@         const char *                    @ARG2@          object
+@TYPE3@         int%                            @ARG3@          id
+@TYPE4@         FcValue *                       @ARG4@          v
+@TYPE5@         FcValueBinding *                @ARG5@          b
+@PURPOSE@       Return a value with binding from a pattern
+@DESC@
+Returns in <parameter>v</parameter> the <parameter>id</parameter>'th value
+and <parameter>b</parameter> binding for that associated with the property
+<parameter>object</parameter>.
+The Value returned is not a copy, but rather refers to the data stored
+within the pattern directly.  Applications must not free this value.
+@SINCE@         2.12.5
+@@
+
+@RET@           FcResult
+@FUNC@          FcPatternGet
+@TYPE1@         FcPattern *                     @ARG1@          p
+@TYPE2@         const char *                    @ARG2@          object
+@TYPE3@         int%                            @ARG3@          id
+@TYPE4@         FcValue *                       @ARG4@          v
+@PURPOSE@       Return a value from a pattern
 @DESC@
 Returns in <parameter>v</parameter> the <parameter>id</parameter>'th value
 associated with the property <parameter>object</parameter>.
@@ -212,80 +238,80 @@ The value returned is not a copy, but rather refers to the data stored
 within the pattern directly.  Applications must not free this value.
 @@
 
-@TITLE@                FcPatternGet-Type
+@TITLE@         FcPatternGet-Type
 @PROTOTYPE@
-@RET@          FcResult
-@FUNC@         FcPatternGetInteger
-@TYPE1@                FcPattern *                     @ARG1@          p
-@TYPE2@                const char *                    @ARG2@          object
-@TYPE3@                int%                            @ARG3@          n
-@TYPE4@                int *                           @ARG4@          i
+@RET@           FcResult
+@FUNC@          FcPatternGetInteger
+@TYPE1@         FcPattern *                     @ARG1@          p
+@TYPE2@         const char *                    @ARG2@          object
+@TYPE3@         int%                            @ARG3@          n
+@TYPE4@         int *                           @ARG4@          i
 
 @PROTOTYPE+@
-@RET+@         FcResult
-@FUNC+@        FcPatternGetDouble
-@TYPE1+@       FcPattern *                     @ARG1+@         p
-@TYPE2+@       const char *                    @ARG2+@         object
-@TYPE3+@       int%                            @ARG3+@         n
-@TYPE4+@       double *                        @ARG4+@         d 
+@RET+@          FcResult
+@FUNC+@         FcPatternGetDouble
+@TYPE1+@        FcPattern *                     @ARG1+@         p
+@TYPE2+@        const char *                    @ARG2+@         object
+@TYPE3+@        int%                            @ARG3+@         n
+@TYPE4+@        double *                        @ARG4+@         d
 
 @PROTOTYPE++@
-@RET++@        FcResult
-@FUNC++@       FcPatternGetString
-@TYPE1++@      FcPattern *                     @ARG1++@        p
-@TYPE2++@      const char *                    @ARG2++@        object
-@TYPE3++@      int%                            @ARG3++@        n
-@TYPE4++@      FcChar8 **                      @ARG4++@        s
+@RET++@         FcResult
+@FUNC++@        FcPatternGetString
+@TYPE1++@       FcPattern *                     @ARG1++@        p
+@TYPE2++@       const char *                    @ARG2++@        object
+@TYPE3++@       int%                            @ARG3++@        n
+@TYPE4++@       FcChar8 **                      @ARG4++@        s
 
 @PROTOTYPE+++@
-@RET+++@       FcResult
-@FUNC+++@      FcPatternGetMatrix 
-@TYPE1+++@     FcPattern *                     @ARG1+++@       p 
-@TYPE2+++@     const char *                    @ARG2+++@       object 
-@TYPE3+++@     int%                            @ARG3+++@       n 
-@TYPE4+++@     FcMatrix **                     @ARG4+++@       s 
+@RET+++@        FcResult
+@FUNC+++@       FcPatternGetMatrix
+@TYPE1+++@      FcPattern *                     @ARG1+++@       p
+@TYPE2+++@      const char *                    @ARG2+++@       object
+@TYPE3+++@      int%                            @ARG3+++@       n
+@TYPE4+++@      FcMatrix **                     @ARG4+++@       s
 
 @PROTOTYPE++++@
-@RET++++@      FcResult 
-@FUNC++++@     FcPatternGetCharSet 
-@TYPE1++++@    FcPattern *                     @ARG1++++@      p 
-@TYPE2++++@    const char *                    @ARG2++++@      object 
-@TYPE3++++@    int%                            @ARG3++++@      n 
-@TYPE4++++@    FcCharSet **                    @ARG4++++@      c 
+@RET++++@       FcResult
+@FUNC++++@      FcPatternGetCharSet
+@TYPE1++++@     FcPattern *                     @ARG1++++@      p
+@TYPE2++++@     const char *                    @ARG2++++@      object
+@TYPE3++++@     int%                            @ARG3++++@      n
+@TYPE4++++@     FcCharSet **                    @ARG4++++@      c
 
 @PROTOTYPE+++++@
-@RET+++++@     FcResult 
-@FUNC+++++@    FcPatternGetBool                
-@TYPE1+++++@   FcPattern *                     @ARG1+++++@     p
-@TYPE2+++++@   const char *                    @ARG2+++++@     object 
-@TYPE3+++++@   int%                            @ARG3+++++@     n 
-@TYPE4+++++@   FcBool *                        @ARG4+++++@     b 
+@RET+++++@      FcResult
+@FUNC+++++@     FcPatternGetBool
+@TYPE1+++++@    FcPattern *                     @ARG1+++++@     p
+@TYPE2+++++@    const char *                    @ARG2+++++@     object
+@TYPE3+++++@    int%                            @ARG3+++++@     n
+@TYPE4+++++@    FcBool *                        @ARG4+++++@     b
 
 @PROTOTYPE++++++@
-@RET++++++@    FcResult
-@FUNC++++++@   FcPatternGetFTFace
-@TYPE1++++++@  FcPattern *                     @ARG1++++++@    p
-@TYPE2++++++@  const char *                    @ARG2++++++@    object
-@TYPE3++++++@  int%                            @ARG3++++++@    n
-@TYPE4++++++@  FT_Face *                       @ARG4++++++@    f
+@RET++++++@     FcResult
+@FUNC++++++@    FcPatternGetFTFace
+@TYPE1++++++@   FcPattern *                     @ARG1++++++@    p
+@TYPE2++++++@   const char *                    @ARG2++++++@    object
+@TYPE3++++++@   int%                            @ARG3++++++@    n
+@TYPE4++++++@   FT_Face *                       @ARG4++++++@    f
 
 @PROTOTYPE+++++++@
-@RET+++++++@   FcResult
-@FUNC+++++++@  FcPatternGetLangSet
-@TYPE1+++++++@         FcPattern *                     @ARG1+++++++@   p
-@TYPE2+++++++@ const char *                    @ARG2+++++++@   object
-@TYPE3+++++++@         int%                            @ARG3+++++++@   n
-@TYPE4+++++++@ FcLangSet **                    @ARG4+++++++@   l
+@RET+++++++@    FcResult
+@FUNC+++++++@   FcPatternGetLangSet
+@TYPE1+++++++@  FcPattern *                     @ARG1+++++++@   p
+@TYPE2+++++++@  const char *                    @ARG2+++++++@   object
+@TYPE3+++++++@  int%                            @ARG3+++++++@   n
+@TYPE4+++++++@  FcLangSet **                    @ARG4+++++++@   l
 
 @PROTOTYPE++++++++@
-@RET++++++++@  FcResult
-@FUNC++++++++@ FcPatternGetRange
-@TYPE1++++++++@        FcPattern *                     @ARG1++++++++@  p
-@TYPE2++++++++@        const char *                    @ARG2++++++++@  object
-@TYPE3++++++++@        int%                            @ARG3++++++++@  n
-@TYPE4++++++++@        FcRange **                      @ARG4++++++++@  r
-
-@PURPOSE@      Return a typed value from a pattern
+@RET++++++++@   FcResult
+@FUNC++++++++@  FcPatternGetRange
+@TYPE1++++++++@ FcPattern *                     @ARG1++++++++@  p
+@TYPE2++++++++@ const char *                    @ARG2++++++++@  object
+@TYPE3++++++++@ int%                            @ARG3++++++++@  n
+@TYPE4++++++++@ FcRange **                      @ARG4++++++++@  r
+
+@PURPOSE@       Return a typed value from a pattern
 @DESC@
 These are convenience functions that call FcPatternGet and verify that the
 returned data is of the expected type. They return FcResultTypeMismatch if
@@ -296,25 +322,25 @@ in preference to FcPatternGet to provide compile-time typechecking.
 <function>FcPatternGetRange</function> are available since 2.11.91.
 @@
 
-@RET@          FcPattern *
-@FUNC@         FcPatternBuild
-@TYPE1@                FcPattern *                     @ARG1@          pattern
-@TYPE2@        ...
+@RET@           FcPattern *
+@FUNC@          FcPatternBuild
+@TYPE1@         FcPattern *                     @ARG1@          pattern
+@TYPE2@         ...
 
 @PROTOTYPE+@
-@RET+@         FcPattern *
-@FUNC+@                FcPatternVaBuild
-@TYPE1+@       FcPattern *                     @ARG1+@         pattern
-@TYPE2+@       va_list%                        @ARG2+@         va
+@RET+@          FcPattern *
+@FUNC+@         FcPatternVaBuild
+@TYPE1+@        FcPattern *                     @ARG1+@         pattern
+@TYPE2+@        va_list%                        @ARG2+@         va
 
 @PROTOTYPE++@
-@RET++@                void
-@FUNC++@       FcPatternVapBuild
-@TYPE1++@      FcPattern *                     @ARG1++@        result
-@TYPE2++@      FcPattern *                     @ARG2++@        pattern
-@TYPE3++@      va_list%                        @ARG3++@        va
+@RET++@         void
+@FUNC++@        FcPatternVapBuild
+@TYPE1++@       FcPattern *                     @ARG1++@        result
+@TYPE2++@       FcPattern *                     @ARG2++@        pattern
+@TYPE3++@       va_list%                        @ARG3++@        va
 
-@PURPOSE@      Create patterns from arguments
+@PURPOSE@       Create patterns from arguments
 @DESC@
 Builds a pattern using a list of objects, types and values.  Each
 value to be entered in the pattern is specified with three arguments:
@@ -346,41 +372,141 @@ which returns its result directly in the <parameter>result</parameter>
 variable.
 @@
 
-@RET@          FcBool
-@FUNC@         FcPatternDel
-@TYPE1@                FcPattern *                     @ARG1@          p
-@TYPE2@                const char *                    @ARG2@          object 
-@PURPOSE@      Delete a property from a pattern
+@RET@           FcBool
+@FUNC@          FcPatternDel
+@TYPE1@         FcPattern *                     @ARG1@          p
+@TYPE2@         const char *                    @ARG2@          object
+@PURPOSE@       Delete a property from a pattern
 @DESC@
-Deletes all values associated with the property `object', returning 
+Deletes all values associated with the property `object', returning
 whether the property existed or not.
 @@
 
-@RET@          FcBool
-@FUNC@         FcPatternRemove
-@TYPE1@                FcPattern *                     @ARG1@          p
-@TYPE2@                const char *                    @ARG2@          object 
-@TYPE3@                int%                            @ARG3@          id
-@PURPOSE@      Remove one object of the specified type from the pattern
+@RET@           FcBool
+@FUNC@          FcPatternRemove
+@TYPE1@         FcPattern *                     @ARG1@          p
+@TYPE2@         const char *                    @ARG2@          object
+@TYPE3@         int%                            @ARG3@          id
+@PURPOSE@       Remove one object of the specified type from the pattern
 @DESC@
-Removes the value associated with the property `object' at position `id', returning 
+Removes the value associated with the property `object' at position `id', returning
 whether the property existed and had a value at that position or not.
 @@
-               
-@RET@          void
-@FUNC@         FcPatternPrint
-@TYPE1@                const FcPattern *               @ARG1@          p 
-@PURPOSE@      Print a pattern for debugging
+
+@RET@           void
+@FUNC@          FcPatternIterStart
+@TYPE1@         const FcPattern *               @ARG1@          p
+@TYPE2@         FcPatternIter *                 @ARG2@          iter
+@PURPOSE@       Initialize the iterator with the first iterator in the pattern
+@DESC@
+Initialize <parameter>iter</parameter> with the first iterator in <parameter>p</parameter>.
+If there are no objects in <parameter>p</parameter>, <parameter>iter</parameter>
+will not have any valid data.
+@SINCE@         2.13.1
+@@
+
+@RET@           FcBool
+@FUNC@          FcPatternIterNext
+@TYPE1@         const FcPattern *               @ARG1@          p
+@TYPE2@         FcPatternIter *                 @ARG2@          iter
+@PURPUSE@       Set the iterator to point to the next object in the pattern
+@DESC@
+Set <parameter>iter</parameter> to point to the next object in <parameter>p</parameter>
+and returns FcTrue if <parameter>iter</parameter> has been changed to the next object.
+returns FcFalse otherwise.
+@SINCE@         2.13.1
+@@
+
+@RET@           FcBool
+@FUNC@          FcPatternIterEqual
+@TYPE1@         const FcPattern *               @ARG1@          p1
+@TYPE2@         FcPatternIter *                 @ARG2@          i1
+@TYPE3@         const FcPattern *               @ARG3@          p2
+@TYPE4@         FcPatternIter *                 @ARG4@          i2
+@PURPOSE@       Compare iterators
+@DESC@
+Return FcTrue if both <parameter>i1</parameter> and <parameter>i2</parameter>
+point to same object and contains same values. return FcFalse otherwise.
+@SINCE@         2.13.1
+@@
+
+@RET@           FcBool
+@FUNC@          FcPatternFindIter
+@TYPE1@         const FcPattern *               @ARG1@          p
+@TYPE2@         FcPatternIter *                 @ARG2@          iter
+@TYPE3@         const char *                    @ARG3@          object
+@PURPOSE@       Set the iterator to point to the object in the pattern
+@DESC@
+Set <parameter>iter</parameter> to point to <parameter>object</parameter> in
+<parameter>p</parameter> if any and returns FcTrue. returns FcFalse otherwise.
+@SINCE@         2.13.1
+@@
+
+@RET@           FcBool
+@FUNC@          FcPatternIterIsValid
+@TYPE1@         const FcPattern *               @ARG1@          p
+@TYPE2@         FcPatternIter :                 @ARG2@          iter
+@PURPOSE@       Check whether the iterator is valid or not
+@DESC@
+Returns FcTrue if <parameter>iter</parameter> point to the valid entry
+in <parameter>p</parameter>. returns FcFalse otherwise.
+@SINCE@         2.13.1
+@@
+
+@RET@           const char *
+@FUNC@          FcPatternIterGetObject
+@TYPE1@         const FcPattern *               @ARG1@          p
+@TYPE2@         FcPatternIter *                 @ARG2@          iter
+@PURPOSE@       Returns an object name which the iterator point to
+@DESC@
+Returns an object name in <parameter>p</parameter> which
+<parameter>iter</parameter> point to. returns NULL if
+<parameter>iter</parameter> isn't valid.
+@SINCE@         2.13.1
+@@
+
+@RET@           int
+@FUNC@          FcPatternIterValueCount
+@TYPE1@         const FcPattern *               @ARG1@          p
+@TYPE2@         FcPatternIter *                 @ARG2@          iter
+@PURPOSE@       Returns the number of the values which the iterator point to
+@DESC@
+Returns the number of the values in the object which <parameter>iter</parameter>
+point to. if <parameter>iter</parameter> isn't valid, returns 0.
+@SINCE@         2.13.1
+@@
+
+@RET@           FcResult
+@FUNC@          FcPatternIterGetValue
+@TYPE1@         const FcPattern *               @ARG1@          p
+@TYPE2@         FcPatternIter *                 @ARG2@          iter
+@TYPE3@         int                             @ARG3@          id
+@TYPE4@         FcValue *                       @ARG4@          v
+@TYPE5@         FcValueBinding *                @ARG5@          b
+@PURPOSE@       Returns a value which the iterator point to
+@DESC@
+Returns in <parameter>v</parameter> the <parameter>id</parameter>'th value
+which <parameter>iter</parameter> point to. also binding to <parameter>b</parameter>
+if given.
+The value returned is not a copy, but rather refers to the data stored
+within the pattern directly.  Applications must not free this value.
+@SINCE@         2.13.1
+@@
+
+@RET@           void
+@FUNC@          FcPatternPrint
+@TYPE1@         const FcPattern *               @ARG1@          p
+@PURPOSE@       Print a pattern for debugging
 @DESC@
 Prints an easily readable version of the pattern to stdout.  There is
 no provision for reparsing data in this format, it's just for diagnostics
 and debugging.
 @@
 
-@RET@          void    
-@FUNC@         FcDefaultSubstitute
-@TYPE1@                FcPattern *                     @ARG1@          pattern 
-@PURPOSE@      Perform default substitutions in a pattern
+@RET@           void
+@FUNC@          FcDefaultSubstitute
+@TYPE1@         FcPattern *                     @ARG1@          pattern
+@PURPOSE@       Perform default substitutions in a pattern
 @DESC@
 Supplies default values for underspecified font patterns:
 <itemizedlist>
@@ -397,18 +523,18 @@ specified point size (default 12), dpi (default 75) and scale (default 1).
 </itemizedlist>
 @@
 
-@RET@          FcPattern *
-@FUNC@         FcNameParse
-@TYPE1@                const FcChar8 *                 @ARG1@          name 
-@PURPOSE@      Parse a pattern string
+@RET@           FcPattern *
+@FUNC@          FcNameParse
+@TYPE1@         const FcChar8 *                 @ARG1@          name
+@PURPOSE@       Parse a pattern string
 @DESC@
 Converts <parameter>name</parameter> from the standard text format described above into a pattern.
 @@
 
-@RET@          FcChar8 *
-@FUNC@         FcNameUnparse
-@TYPE1@                FcPattern *                     @ARG1@          pat 
-@PURPOSE@      Convert a pattern back into a string that can be parsed
+@RET@           FcChar8 *
+@FUNC@          FcNameUnparse
+@TYPE1@         FcPattern *                     @ARG1@          pat
+@PURPOSE@       Convert a pattern back into a string that can be parsed
 @DESC@
 Converts the given pattern into the standard text format described above.
 The return value is not static, but instead refers to newly allocated memory