+/*
+ * $Id$
+ *
+ * Copyright © 2003 Keith Packard
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Keith Packard makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
@RET@ FcPattern *
@FUNC@ FcPatternCreate
@TYPE1@ void
Creates a pattern with no properties; used to build patterns from scratch.
@@
+@RET@ FcPattern *
+@FUNC@ FcPatternDuplicate
+@TYPE1@ 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
+@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
@DESC@
-Destroys a pattern, in the process destroying all related values.
+Decrement the pattern reference count. If all references are gone, destroys
+the pattern, in the process destroying all related values.
@@
@RET@ FcBool
@TYPE2@ const FcPattern * @ARG2@ pb
@PURPOSE@ Compare patterns
@DESC@
-Returns whether 'pa' and 'pb' are exactly alike.
+Returns whether <parameter>pa</parameter> and <parameter>pb</parameter> are exactly alike.
@@
@RET@ FcBool
@TYPE3@ const FcObjectSet * @ARG3@ os
@PURPOSE@ Compare portions of patterns
@DESC@
-Returns whether 'pa' and 'pb' have exactly the same values for all of the
-objects in 'os'.
+Returns whether <parameter>pa</parameter> and <parameter>pb</parameter> have exactly the same values for all of the
+objects in <parameter>os</parameter>.
@@
@RET@ FcChar32
@FUNC@ FcPatternAdd
@TYPE1@ FcPattern * @ARG1@ p
@TYPE2@ const char * @ARG2@ object
-@TYPE3@ FcValue @ARG3@ value
-@TYPE4@ FcBool @ARG4@ append
+@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'. If `append' is FcTrue, the value is added at the end of any
+`object<parameter>. If `append</parameter> is FcTrue, the value is added at the end of any
existing list, otherwise it is inserted at the begining. `value' is saved
(with FcValueSave) when inserted into the pattern so that the library
retains no reference to any application-supplied data structure.
@FUNC@ FcPatternAddWeak
@TYPE1@ FcPattern * @ARG1@ p
@TYPE2@ const char * @ARG2@ object
-@TYPE3@ FcValue @ARG3@ value
-@TYPE4@ FcBool @ARG4@ append
+@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 'weak' instead of 'strong'.
+values added to the list have binding <parameter>weak</parameter> instead of <parameter>strong</parameter>.
@@
@TITLE@ FcPatternAdd-Type
@FUNC@ FcPatternAddInteger
@TYPE1@ FcPattern * @ARG1@ p
@TYPE2@ const char * @ARG2@ object
-@TYPE3@ int @ARG3@ i
+@TYPE3@ int% @ARG3@ i
@PROTOTYPE+@
@RET+@ FcBool
@FUNC+@ FcPatternAddDouble
@TYPE1+@ FcPattern * @ARG1+@ p
@TYPE2+@ const char * @ARG2+@ object
-@TYPE3+@ double @ARG3+@ d
+@TYPE3+@ double% @ARG3+@ d
@PROTOTYPE++@
@RET++@ FcBool
@FUNC++@ FcPatternAddString
@TYPE1++@ FcPattern * @ARG1++@ p
@TYPE2++@ const char * @ARG2++@ object
-@TYPE3++@ const char * @ARG3++@ s
+@TYPE3++@ const FcChar8 * @ARG3++@ s
@PROTOTYPE+++@
@RET+++@ FcBool
@FUNC+++++@ FcPatternAddBool
@TYPE1+++++@ FcPattern * @ARG1+++++@ p
@TYPE2+++++@ const char * @ARG2+++++@ object
-@TYPE3+++++@ FcBool @ARG3+++++@ b
+@TYPE3+++++@ FcBool% @ARG3+++++@ b
+
+@PROTOTYPE++++++@
+@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
+
@PURPOSE@ Add a typed value to a pattern
@DESC@
These are all convenience functions that insert objects of the specified
@FUNC@ FcPatternGet
@TYPE1@ FcPattern * @ARG1@ p
@TYPE2@ const char * @ARG2@ object
-@TYPE3@ int @ARG3@ id
+@TYPE3@ int% @ARG3@ id
@TYPE4@ FcValue * @ARG4@ v
@PURPOSE@ Return a value from a pattern
@DESC@
-Returns in `v' the `id'th value associated with the property `object'.
+Returns in <parameter>v</parameter> the <parameter>id</parameter>'th value
+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.
@@
@FUNC@ FcPatternGetInteger
@TYPE1@ FcPattern * @ARG1@ p
@TYPE2@ const char * @ARG2@ object
-@TYPE3@ int @ARG3@ n
+@TYPE3@ int% @ARG3@ n
@TYPE4@ int * @ARG4@ i
@PROTOTYPE+@
@FUNC+@ FcPatternGetDouble
@TYPE1+@ FcPattern * @ARG1+@ p
@TYPE2+@ const char * @ARG2+@ object
-@TYPE3+@ int @ARG3+@ n
+@TYPE3+@ int% @ARG3+@ n
@TYPE4+@ double * @ARG4+@ d
@PROTOTYPE++@
@FUNC++@ FcPatternGetString
@TYPE1++@ FcPattern * @ARG1++@ p
@TYPE2++@ const char * @ARG2++@ object
-@TYPE3++@ int @ARG3++@ n
-@TYPE4++@ char **const @ARG4++@ s
+@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
+@TYPE3+++@ int% @ARG3+++@ n
@TYPE4+++@ FcMatrix ** @ARG4+++@ s
@PROTOTYPE++++@
@FUNC++++@ FcPatternGetCharSet
@TYPE1++++@ FcPattern * @ARG1++++@ p
@TYPE2++++@ const char * @ARG2++++@ object
-@TYPE3++++@ int @ARG3++++@ n
+@TYPE3++++@ int% @ARG3++++@ n
@TYPE4++++@ FcCharSet ** @ARG4++++@ c
@PROTOTYPE+++++@
@FUNC+++++@ FcPatternGetBool
@TYPE1+++++@ FcPattern * @ARG1+++++@ p
@TYPE2+++++@ const char * @ARG2+++++@ object
-@TYPE3+++++@ int @ARG3+++++@ n
+@TYPE3+++++@ int% @ARG3+++++@ n
@TYPE4+++++@ FcBool * @ARG4+++++@ b
+
+@PROTOTYPE++++++@
+@RET++++++@ FcBool
+@FUNC++++++@ FcPatternGetFTFace
+@TYPE1++++++@ FcPattern * @ARG1++++++@ p
+@TYPE2++++++@ const char * @ARG2++++++@ object
+@TYPE3++++++@ const FT_Face * @ARG3++++++@ f
+
+@PROTOTYPE+++++++@
+@RET+++++++@ FcBool
+@FUNC+++++++@ FcPatternGetLangSet
+@TYPE1+++++++@ FcPattern * @ARG1+++++++@ p
+@TYPE2+++++++@ const char * @ARG2+++++++@ object
+@TYPE3+++++++@ const FcLangSet ** @ARG3+++++++@ l
+
@PURPOSE@ Return a typed value from a pattern
@DESC@
These are convenience functions that call FcPatternGet and verify that the
@RET+@ FcPattern *
@FUNC+@ FcPatternVaBuild
@TYPE1+@ FcPattern * @ARG1+@ orig
-@TYPE2+@ va_list @ARG2+@ va
+@TYPE2+@ va_list% @ARG2+@ va
@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:
+</para>
<orderedlist>
<listitem><para>
Object name, a string describing the property to be added.
returned. Example
</para>
<programlisting>
-pattern = FcPatternBuild (0, FC_FAMILY, FtTypeString, "Times", (char *) 0);
+pattern = FcPatternBuild (0, FC_FAMILY, FcTypeString, "Times", (char *) 0);
</programlisting>
<para>
FcPatternVaBuild is used when the arguments are already in the form of a
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
+@DESC@
+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
@RET@ FcPattern *
@FUNC@ FcNameParse
-@TYPE1@ const char * @ARG1@ name
+@TYPE1@ const FcChar8 * @ARG1@ name
@PURPOSE@ Parse a pattern string
@DESC@
-Converts 'name' from the standard text format described above into a pattern.
+Converts <parameter>name</parameter> from the standard text format described above into a pattern.
@@
@RET@ FcChar8 *