fontconfig-devel.txt revision eceda581
1eceda581SmrgFontconfig Developers Reference, Version 2.14.1
22c393a42Smrg
3ca08ab68Smrg   Copyright © 2002 Keith Packard
42c393a42Smrg
5eceda581Smrg   Permission to use, copy, modify, distribute, and sell this
6eceda581Smrg   software and its documentation for any purpose is hereby
7eceda581Smrg   granted without fee, provided that the above copyright notice
8eceda581Smrg   appear in all copies and that both that copyright notice and
9eceda581Smrg   this permission notice appear in supporting documentation, and
10eceda581Smrg   that the name of the author(s) not be used in advertising or
11eceda581Smrg   publicity pertaining to distribution of the software without
12eceda581Smrg   specific, written prior permission. The authors make no
13eceda581Smrg   representations about the suitability of this software for any
14eceda581Smrg   purpose. It is provided "as is" without express or implied
15eceda581Smrg   warranty.
16eceda581Smrg
17eceda581Smrg   THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
18eceda581Smrg   SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
19eceda581Smrg   AND FITNESS, IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY
20eceda581Smrg   SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
21eceda581Smrg   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
22eceda581Smrg   IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
23eceda581Smrg   ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
24eceda581Smrg   THIS SOFTWARE.
25eceda581Smrg           _______________________________________________
262c393a42Smrg
27ca08ab68Smrg   Table of Contents
28eceda581Smrg   DESCRIPTION
29eceda581Smrg   FUNCTIONAL OVERVIEW
30eceda581Smrg   Datatypes
31eceda581Smrg   FUNCTIONS
322c393a42Smrg
33a6844aabSmrgDESCRIPTION
342c393a42Smrg
35ca08ab68Smrg   Fontconfig is a library designed to provide system-wide font
36ca08ab68Smrg   configuration, customization and application access.
37eceda581Smrg     __________________________________________________________
382c393a42Smrg
39a6844aabSmrgFUNCTIONAL OVERVIEW
40a6844aabSmrg
41eceda581Smrg   Fontconfig contains two essential modules, the configuration
42eceda581Smrg   module which builds an internal configuration from XML files
43eceda581Smrg   and the matching module which accepts font patterns and returns
44eceda581Smrg   the nearest matching font.
45eceda581Smrg     __________________________________________________________
46eceda581Smrg
47eceda581SmrgFONT CONFIGURATION
48eceda581Smrg
49eceda581Smrg   The configuration module consists of the FcConfig datatype,
50eceda581Smrg   libexpat and FcConfigParse which walks over an XML tree and
51eceda581Smrg   amends a configuration with data found within. From an external
52eceda581Smrg   perspective, configuration of the library consists of
53eceda581Smrg   generating a valid XML tree and feeding that to FcConfigParse.
54eceda581Smrg   The only other mechanism provided to applications for changing
55eceda581Smrg   the running configuration is to add fonts and directories to
56eceda581Smrg   the list of application-provided font files.
57eceda581Smrg
58eceda581Smrg   The intent is to make font configurations relatively static,
59eceda581Smrg   and shared by as many applications as possible. It is hoped
60eceda581Smrg   that this will lead to more stable font selection when passing
61eceda581Smrg   names from one application to another. XML was chosen as a
62eceda581Smrg   configuration file format because it provides a format which is
63eceda581Smrg   easy for external agents to edit while retaining the correct
64ca08ab68Smrg   structure and syntax.
65a6844aabSmrg
66eceda581Smrg   Font configuration is separate from font matching; applications
67eceda581Smrg   needing to do their own matching can access the available fonts
68eceda581Smrg   from the library and perform private matching. The intent is to
69eceda581Smrg   permit applications to pick and choose appropriate
70eceda581Smrg   functionality from the library instead of forcing them to
71eceda581Smrg   choose between this library and a private configuration
72eceda581Smrg   mechanism. The hope is that this will ensure that configuration
73eceda581Smrg   of fonts for all applications can be centralized in one place.
74eceda581Smrg   Centralizing font configuration will simplify and regularize
75eceda581Smrg   font installation and customization.
76eceda581Smrg     __________________________________________________________
77eceda581Smrg
78eceda581SmrgFONT PROPERTIES
79eceda581Smrg
80eceda581Smrg   While font patterns may contain essentially any properties,
81eceda581Smrg   there are some well known properties with associated types.
82eceda581Smrg   Fontconfig uses some of these properties for font matching and
83eceda581Smrg   font completion. Others are provided as a convenience for the
84eceda581Smrg   application's rendering mechanism.
852c393a42Smrg                 Property Definitions
862c393a42Smrg
87ca08ab68Smrg    Property       C Preprocessor Symbol  Type    Description
882c393a42Smrg    ----------------------------------------------------
89ca08ab68Smrg    family         FC_FAMILY              String  Font family names
90eceda581Smrg    familylang     FC_FAMILYLANG          String  Language corresponding
91eceda581Smrg to
92ca08ab68Smrg                                                  each family name
93eceda581Smrg    style          FC_STYLE               String  Font style. Overrides
94eceda581Smrgweight
95ca08ab68Smrg                                                  and slant
96eceda581Smrg    stylelang      FC_STYLELANG           String  Language corresponding
97eceda581Smrg to
98ca08ab68Smrg                                                  each style name
99eceda581Smrg    fullname       FC_FULLNAME            String  Font face full name wh
100eceda581Smrgere
101eceda581Smrg                                                  different from family
102eceda581Smrgand
103ca08ab68Smrg                                                  family + style
104eceda581Smrg    fullnamelang   FC_FULLNAMELANG        String  Language corresponding
105eceda581Smrg to
106ca08ab68Smrg                                                  each fullname
107eceda581Smrg    slant          FC_SLANT               Int     Italic, oblique or rom
108eceda581Smrgan
109eceda581Smrg    weight         FC_WEIGHT              Int     Light, medium, demibol
110eceda581Smrgd,
111ca08ab68Smrg                                                  bold or black
112eceda581Smrg    width          FC_WIDTH               Int     Condensed, normal or e
113eceda581Smrgxpanded
114a4e54154Smrg    size           FC_SIZE                Double  Point size
115eceda581Smrg    aspect         FC_ASPECT              Double  Stretches glyphs horiz
116eceda581Smrgontally
117ca08ab68Smrg                                                  before hinting
118ca08ab68Smrg    pixelsize      FC_PIXEL_SIZE          Double  Pixel size
119eceda581Smrg    spacing        FC_SPACING             Int     Proportional, dual-wid
120eceda581Smrgth,
121ca08ab68Smrg                                                  monospace or charcell
122ca08ab68Smrg    foundry        FC_FOUNDRY             String  Font foundry name
123ca08ab68Smrg    antialias      FC_ANTIALIAS           Bool    Whether glyphs can be
124ca08ab68Smrg                                                  antialiased
125eceda581Smrg    hintstyle      FC_HINT_STYLE          Int     Automatic hinting styl
126eceda581Smrge
127eceda581Smrg    hinting        FC_HINTING             Bool    Whether the rasterizer
128eceda581Smrg should
129ca08ab68Smrg                                                  use hinting
130ca08ab68Smrg    verticallayout FC_VERTICAL_LAYOUT     Bool    Use vertical layout
131eceda581Smrg    autohint       FC_AUTOHINT            Bool    Use autohinter instead
132eceda581Smrg of
133ca08ab68Smrg                                                  normal hinter
134eceda581Smrg    globaladvance  FC_GLOBAL_ADVANCE      Bool    Use font global advanc
135eceda581Smrge data (deprecated)
136eceda581Smrg    file           FC_FILE                String  The filename holding t
137eceda581Smrghe font
138eceda581Smrg                                                  relative to the config
139eceda581Smrg's sysroot
140eceda581Smrg    index          FC_INDEX               Int     The index of the font
141eceda581Smrgwithin
142ca08ab68Smrg                                                  the file
143eceda581Smrg    ftface         FC_FT_FACE             FT_Face Use the specified Free
144eceda581SmrgType
145ca08ab68Smrg                                                  face object
146eceda581Smrg    rasterizer     FC_RASTERIZER          String  Which rasterizer is in
147eceda581Smrg use (deprecated)
148eceda581Smrg    outline        FC_OUTLINE             Bool    Whether the glyphs are
149eceda581Smrg outlines
150eceda581Smrg    scalable       FC_SCALABLE            Bool    Whether glyphs can be
151eceda581Smrgscaled
152ca08ab68Smrg    dpi            FC_DPI                 Double  Target dots per inch
153eceda581Smrg    rgba           FC_RGBA                Int     unknown, rgb, bgr, vrg
154eceda581Smrgb,
155eceda581Smrg                                                  vbgr, none - subpixel
156eceda581Smrggeometry
157eceda581Smrg    scale          FC_SCALE               Double  Scale factor for point
158eceda581Smrg->pixel
159eceda581Smrg                                                  conversions (deprecate
160eceda581Smrgd)
161eceda581Smrg    minspace       FC_MINSPACE            Bool    Eliminate leading from
162eceda581Smrg line
163ca08ab68Smrg                                                  spacing
164eceda581Smrg    charset        FC_CHARSET             CharSet Unicode chars encoded
165eceda581Smrgby
166ca08ab68Smrg                                                  the font
167ca08ab68Smrg    lang           FC_LANG                LangSet Set of RFC-3066-style
168eceda581Smrg                                                  languages this font su
169eceda581Smrgpports
170eceda581Smrg    fontversion    FC_FONTVERSION         Int     Version number of the
171eceda581Smrgfont
172eceda581Smrg    capability     FC_CAPABILITY          String  List of layout capabil
173eceda581Smrgities in
174ca08ab68Smrg                                                  the font
175eceda581Smrg    fontformat     FC_FONTFORMAT          String  String name of the fon
176eceda581Smrgt format
177ca08ab68Smrg    embolden       FC_EMBOLDEN            Bool    Rasterizer should
178eceda581Smrg                                                  synthetically embolden
179eceda581Smrg the font
180eceda581Smrg    embeddedbitmap FC_EMBEDDED_BITMAP     Bool    Use the embedded bitma
181eceda581Smrgp instead
182953daebaSmrg                                                  of the outline
183eceda581Smrg    decorative     FC_DECORATIVE          Bool    Whether the style is a
184eceda581Smrg decorative
185953daebaSmrg                                                  variant
186a4e54154Smrg    lcdfilter      FC_LCD_FILTER          Int     Type of LCD filter
187eceda581Smrg    namelang       FC_NAMELANG            String  Language name to be us
188eceda581Smrged for the
189eceda581Smrg                                                  default value of famil
190eceda581Smrgylang,
191eceda581Smrg                                                  stylelang and fullname
192eceda581Smrglang
193eceda581Smrg    fontfeatures   FC_FONT_FEATURES       String  List of extra feature
194eceda581Smrgtags in
195a4e54154Smrg                                                  OpenType to be enabled
196eceda581Smrg    prgname        FC_PRGNAME             String  Name of the running pr
197eceda581Smrgogram
198eceda581Smrg    hash           FC_HASH                String  SHA256 hash value of t
199eceda581Smrghe font data
200eceda581Smrg                                                  with "sha256:" prefix
201eceda581Smrg(deprecated)
202eceda581Smrg    postscriptname FC_POSTSCRIPT_NAME     String  Font name in PostScrip
203eceda581Smrgt
204eceda581Smrg    symbol         FC_SYMBOL              Bool    Whether font uses MS s
205eceda581Smrgymbol-font encoding
206eceda581Smrg    color          FC_COLOR               Bool    Whether any glyphs hav
207eceda581Smrge color
208eceda581Smrg    fontvariations FC_FONT_VARIATIONS     String  comma-separated string
209eceda581Smrg of axes in variable font
210eceda581Smrg    variable       FC_VARIABLE            Bool    Whether font is Variab
211eceda581Smrgle Font
212eceda581Smrg    fonthashint    FC_FONT_HAS_HINT       Bool    Whether font has hinti
213eceda581Smrgng
214eceda581Smrg    order          FC_ORDER               Int     Order number of the fo
215eceda581Smrgnt
216eceda581Smrg     __________________________________________________________
217a6844aabSmrg
218a6844aabSmrgDatatypes
2192c393a42Smrg
220eceda581Smrg   Fontconfig uses abstract data types to hide internal
221eceda581Smrg   implementation details for most data structures. A few
222eceda581Smrg   structures are exposed where appropriate.
223eceda581Smrg     __________________________________________________________
2242c393a42Smrg
225eceda581SmrgFcChar8, FcChar16, FcChar32, FcBool
2262c393a42Smrg
227eceda581Smrg   These are primitive data types; the FcChar* types hold
228eceda581Smrg   precisely the number of bits stated (if supported by the C
229eceda581Smrg   implementation). FcBool holds one of two C preprocessor
230eceda581Smrg   symbols: FcFalse or FcTrue.
231eceda581Smrg     __________________________________________________________
232a6844aabSmrg
233eceda581SmrgFcMatrix
234a6844aabSmrg
235eceda581Smrg   An FcMatrix holds an affine transformation, usually used to
236eceda581Smrg   reshape glyphs. A small set of matrix operations are provided
237eceda581Smrg   to manipulate these.
238eceda581Smrg        typedef struct _FcMatrix {
239eceda581Smrg                double xx, xy, yx, yy;
240eceda581Smrg        } FcMatrix;
241eceda581Smrg     __________________________________________________________
242a6844aabSmrg
243eceda581SmrgFcCharSet
244a6844aabSmrg
245eceda581Smrg   An FcCharSet is an abstract type that holds the set of encoded
246eceda581Smrg   Unicode chars in a font. Operations to build and compare these
247eceda581Smrg   sets are provided.
248eceda581Smrg     __________________________________________________________
2492c393a42Smrg
250eceda581SmrgFcLangSet
2512c393a42Smrg
252eceda581Smrg   An FcLangSet is an abstract type that holds the set of
253eceda581Smrg   languages supported by a font. Operations to build and compare
254eceda581Smrg   these sets are provided. These are computed for a font based on
255eceda581Smrg   orthographic information built into the fontconfig library.
256eceda581Smrg   Fontconfig has orthographies for all of the ISO 639-1 languages
257eceda581Smrg   except for MS, NA, PA, PS, QU, RN, RW, SD, SG, SN, SU and ZA.
258eceda581Smrg   If you have orthographic information for any of these
259eceda581Smrg   languages, please submit them.
260eceda581Smrg     __________________________________________________________
2612c393a42Smrg
262eceda581SmrgFcLangResult
263a32e9e42Smrg
264eceda581Smrg   An FcLangResult is an enumeration used to return the results of
265eceda581Smrg   comparing two language strings or FcLangSet objects.
266eceda581Smrg   FcLangEqual means the objects match language and territory.
267eceda581Smrg   FcLangDifferentTerritory means the objects match in language
268eceda581Smrg   but differ in territory. FcLangDifferentLang means the objects
269eceda581Smrg   differ in language.
270eceda581Smrg     __________________________________________________________
271a32e9e42Smrg
272eceda581SmrgFcType
2732c393a42Smrg
274ca08ab68Smrg   Tags the kind of data stored in an FcValue.
275eceda581Smrg     __________________________________________________________
276eceda581Smrg
277eceda581SmrgFcValue
278eceda581Smrg
279eceda581Smrg   An FcValue object holds a single value with one of a number of
280eceda581Smrg   different types. The 'type' tag indicates which member is
281eceda581Smrg   valid.
282eceda581Smrg        typedef struct _FcValue {
283eceda581Smrg                FcType type;
284eceda581Smrg                union {
285eceda581Smrg                        const FcChar8 *s;
286eceda581Smrg                        int i;
287eceda581Smrg                        FcBool b;
288eceda581Smrg                        double d;
289eceda581Smrg                        const FcMatrix *m;
290eceda581Smrg                        const FcCharSet *c;
291eceda581Smrg                        void *f;
292eceda581Smrg                        const FcLangSet *l;
293eceda581Smrg                        const FcRange   *r;
294eceda581Smrg                } u;
295eceda581Smrg        } FcValue;
296eceda581Smrg
297eceda581Smrg                  FcValue Members
298eceda581Smrg
299eceda581Smrg        Type            Union member    Datatype
300eceda581Smrg        --------------------------------
301eceda581Smrg        FcTypeVoid      (none)          (none)
302eceda581Smrg        FcTypeInteger   i               int
303eceda581Smrg        FcTypeDouble    d               double
304eceda581Smrg        FcTypeString    s               FcChar8 *
305eceda581Smrg        FcTypeBool      b               b
306eceda581Smrg        FcTypeMatrix    m               FcMatrix *
307eceda581Smrg        FcTypeCharSet   c               FcCharSet *
308eceda581Smrg        FcTypeFTFace    f               void * (FT_Face)
309eceda581Smrg        FcTypeLangSet   l               FcLangSet *
310eceda581Smrg        FcTypeRange     r               FcRange *
311eceda581Smrg     __________________________________________________________
312eceda581Smrg
313eceda581SmrgFcPattern, FcPatternIter
314eceda581Smrg
315eceda581Smrg   An FcPattern holds a set of names with associated value lists;
316eceda581Smrg   each name refers to a property of a font. FcPatterns are used
317eceda581Smrg   as inputs to the matching code as well as holding information
318eceda581Smrg   about specific fonts. Each property can hold one or more
319eceda581Smrg   values; conventionally all of the same type, although the
320eceda581Smrg   interface doesn't demand that. An FcPatternIter is used during
321eceda581Smrg   iteration to access properties in FcPattern.
322eceda581Smrg     __________________________________________________________
323eceda581Smrg
324eceda581SmrgFcFontSet
325eceda581Smrg
326eceda581Smrg        typedef struct _FcFontSet {
327eceda581Smrg                int nfont;
328eceda581Smrg                int sfont;
329eceda581Smrg                FcPattern **fonts;
330eceda581Smrg        } FcFontSet;
331eceda581Smrg
332eceda581Smrg   An FcFontSet contains a list of FcPatterns. Internally
333eceda581Smrg   fontconfig uses this data structure to hold sets of fonts.
334eceda581Smrg   Externally, fontconfig returns the results of listing fonts in
335eceda581Smrg   this format. 'nfont' holds the number of patterns in the
336eceda581Smrg   'fonts' array; 'sfont' is used to indicate the size of that
337eceda581Smrg   array.
338eceda581Smrg     __________________________________________________________
339eceda581Smrg
340eceda581SmrgFcStrSet, FcStrList
341eceda581Smrg
342eceda581Smrg   FcStrSet holds a list of strings that can be appended to and
343eceda581Smrg   enumerated. Its unique characteristic is that the enumeration
344eceda581Smrg   works even while strings are appended during enumeration.
345eceda581Smrg   FcStrList is used during enumeration to safely and correctly
346eceda581Smrg   walk the list of strings even while that list is edited in the
347eceda581Smrg   middle of enumeration.
348eceda581Smrg     __________________________________________________________
349eceda581Smrg
350eceda581SmrgFcObjectSet
351eceda581Smrg
352eceda581Smrg        typedef struct _FcObjectSet {
353eceda581Smrg                int nobject;
354eceda581Smrg                int sobject;
355eceda581Smrg                const char **objects;
356eceda581Smrg        } FcObjectSet;
357eceda581Smrg
358eceda581Smrg   holds a set of names and is used to specify which fields from
359eceda581Smrg   fonts are placed in the the list of returned patterns when
360eceda581Smrg   listing fonts.
361eceda581Smrg     __________________________________________________________
362eceda581Smrg
363eceda581SmrgFcObjectType
364eceda581Smrg
365eceda581Smrg        typedef struct _FcObjectType {
366eceda581Smrg                const char *object;
367eceda581Smrg                FcType type;
368eceda581Smrg        } FcObjectType;
369eceda581Smrg
370eceda581Smrg   marks the type of a pattern element generated when parsing font
371eceda581Smrg   names. Applications can add new object types so that font names
372eceda581Smrg   may contain the new elements.
373eceda581Smrg     __________________________________________________________
374eceda581Smrg
375eceda581SmrgFcConstant
376eceda581Smrg
377eceda581Smrg        typedef struct _FcConstant {
378eceda581Smrg            const FcChar8 *name;
379eceda581Smrg            const char *object;
380eceda581Smrg            int value;
381eceda581Smrg        } FcConstant;
382eceda581Smrg
383eceda581Smrg   Provides for symbolic constants for new pattern elements. When
384eceda581Smrg   'name' is seen in a font name, an 'object' element is created
385eceda581Smrg   with value 'value'.
386eceda581Smrg     __________________________________________________________
387eceda581Smrg
388eceda581SmrgFcBlanks
389eceda581Smrg
390eceda581Smrg   holds a list of Unicode chars which are expected to be blank;
391eceda581Smrg   unexpectedly blank chars are assumed to be invalid and are
392eceda581Smrg   elided from the charset associated with the font.
393eceda581Smrg
394eceda581Smrg   FcBlanks is deprecated and should not be used in newly written
395eceda581Smrg   code. It is still accepted by some functions for compatibility
396eceda581Smrg   with older code but will be removed in the future.
397eceda581Smrg     __________________________________________________________
398eceda581Smrg
399eceda581SmrgFcFileCache
400eceda581Smrg
401eceda581Smrg   holds the per-user cache information for use while loading the
402eceda581Smrg   font database. This is built automatically for the current
403eceda581Smrg   configuration when that is loaded. Applications must always
404eceda581Smrg   pass '0' when one is requested.
405eceda581Smrg     __________________________________________________________
406eceda581Smrg
407eceda581SmrgFcConfig
408eceda581Smrg
409eceda581Smrg   holds a complete configuration of the library; there is one
410eceda581Smrg   default configuration, other can be constructed from XML data
411eceda581Smrg   structures. All public entry points that need global data can
412eceda581Smrg   take an optional FcConfig* argument; passing 0 uses the default
413eceda581Smrg   configuration. FcConfig objects hold two sets of fonts, the
414eceda581Smrg   first contains those specified by the configuration, the second
415eceda581Smrg   set holds those added by the application at run-time.
416eceda581Smrg   Interfaces that need to reference a particular set use one of
417ca08ab68Smrg   the FcSetName enumerated values.
418eceda581Smrg     __________________________________________________________
419eceda581Smrg
420eceda581SmrgFcSetName
421eceda581Smrg
422eceda581Smrg   Specifies one of the two sets of fonts available in a
423eceda581Smrg   configuration; FcSetSystem for those fonts specified in the
424eceda581Smrg   configuration and FcSetApplication which holds fonts provided
425eceda581Smrg   by the application.
426eceda581Smrg     __________________________________________________________
427eceda581Smrg
428eceda581SmrgFcResult
429eceda581Smrg
430eceda581Smrg   Used as a return type for functions manipulating FcPattern
431eceda581Smrg   objects.
432eceda581Smrg      FcResult Values
433eceda581Smrg        Result Code             Meaning
434eceda581Smrg        -----------------------------------------------------------
435eceda581Smrg        FcResultMatch           Object exists with the specified ID
436eceda581Smrg        FcResultNoMatch         Object doesn't exist at all
437eceda581Smrg        FcResultTypeMismatch    Object exists, but the type doesn't matc
438eceda581Smrgh
439eceda581Smrg        FcResultNoId            Object exists, but has fewer values
440eceda581Smrg                                than specified
441eceda581Smrg        FcResultOutOfMemory     malloc failed
442eceda581Smrg     __________________________________________________________
443eceda581Smrg
444eceda581SmrgFcAtomic
445eceda581Smrg
446eceda581Smrg   Used for locking access to configuration files. Provides a safe
447eceda581Smrg   way to update configuration files.
448eceda581Smrg     __________________________________________________________
449eceda581Smrg
450eceda581SmrgFcCache
451eceda581Smrg
452eceda581Smrg   Holds information about the fonts contained in a single
453eceda581Smrg   directory. Normal applications need not worry about this as
454eceda581Smrg   caches for font access are automatically managed by the
455eceda581Smrg   library. Applications dealing with cache management may want to
456eceda581Smrg   use some of these objects in their work, however the included
457eceda581Smrg   'fc-cache' program generally suffices for all of that.
458eceda581Smrg     __________________________________________________________
4592c393a42Smrg
460a6844aabSmrgFUNCTIONS
4612c393a42Smrg
462eceda581Smrg   These are grouped by functionality, often using the main data
463eceda581Smrg   type being manipulated.
464eceda581Smrg     __________________________________________________________
4652c393a42Smrg
466eceda581SmrgInitialization
467a6844aabSmrg
468ca08ab68Smrg   Table of Contents
469eceda581Smrg   FcInitLoadConfig -- load configuration
470eceda581Smrg   FcInitLoadConfigAndFonts -- load configuration and font data
471eceda581Smrg   FcInit -- initialize fontconfig library
472eceda581Smrg   FcFini -- finalize fontconfig library
473eceda581Smrg   FcGetVersion -- library version number
474eceda581Smrg   FcInitReinitialize -- re-initialize library
475eceda581Smrg   FcInitBringUptoDate -- reload configuration files if needed
476a6844aabSmrg
477eceda581Smrg   These functions provide some control over how the library is
478eceda581Smrg   initialized.
479a32e9e42Smrg
480eceda581SmrgFcInitLoadConfig
4812c393a42Smrg
4822c393a42SmrgName
4832c393a42Smrg
484eceda581Smrg   FcInitLoadConfig -- load configuration
4852c393a42Smrg
4862c393a42SmrgSynopsis
4872c393a42Smrg
488eceda581Smrg#include <fontconfig/fontconfig.h>
489a6844aabSmrg
490ca08ab68Smrg   FcConfig * FcInitLoadConfig(void);
4912c393a42Smrg
4922c393a42SmrgDescription
4932c393a42Smrg
494ca08ab68Smrg   Loads the default configuration file and returns the resulting
495ca08ab68Smrg   configuration. Does not load any font information.
4962c393a42Smrg
497eceda581SmrgFcInitLoadConfigAndFonts
4982c393a42Smrg
4992c393a42SmrgName
5002c393a42Smrg
501eceda581Smrg   FcInitLoadConfigAndFonts -- load configuration and font data
5022c393a42Smrg
5032c393a42SmrgSynopsis
5042c393a42Smrg
505eceda581Smrg#include <fontconfig/fontconfig.h>
506a6844aabSmrg
507ca08ab68Smrg   FcConfig * FcInitLoadConfigAndFonts(void);
5082c393a42Smrg
5092c393a42SmrgDescription
5102c393a42Smrg
511eceda581Smrg   Loads the default configuration file and builds information
512eceda581Smrg   about the available fonts. Returns the resulting configuration.
5132c393a42Smrg
514eceda581SmrgFcInit
5152c393a42Smrg
5162c393a42SmrgName
5172c393a42Smrg
518eceda581Smrg   FcInit -- initialize fontconfig library
5192c393a42Smrg
5202c393a42SmrgSynopsis
5212c393a42Smrg
522eceda581Smrg#include <fontconfig/fontconfig.h>
523a6844aabSmrg
524ca08ab68Smrg   FcBool FcInit(void);
5252c393a42Smrg
5262c393a42SmrgDescription
5272c393a42Smrg
528eceda581Smrg   Loads the default configuration file and the fonts referenced
529eceda581Smrg   therein and sets the default configuration to that result.
530eceda581Smrg   Returns whether this process succeeded or not. If the default
531eceda581Smrg   configuration has already been loaded, this routine does
532eceda581Smrg   nothing and returns FcTrue.
5332c393a42Smrg
534eceda581SmrgFcFini
5352c393a42Smrg
5362c393a42SmrgName
5372c393a42Smrg
538eceda581Smrg   FcFini -- finalize fontconfig library
5392c393a42Smrg
5402c393a42SmrgSynopsis
5412c393a42Smrg
542eceda581Smrg#include <fontconfig/fontconfig.h>
543a6844aabSmrg
544ca08ab68Smrg   void FcFini(void);
5452c393a42Smrg
5462c393a42SmrgDescription
5472c393a42Smrg
548eceda581Smrg   Frees all data structures allocated by previous calls to
549eceda581Smrg   fontconfig functions. Fontconfig returns to an uninitialized
550eceda581Smrg   state, requiring a new call to one of the FcInit functions
551eceda581Smrg   before any other fontconfig function may be called.
5522c393a42Smrg
553eceda581SmrgFcGetVersion
5542c393a42Smrg
5552c393a42SmrgName
5562c393a42Smrg
557eceda581Smrg   FcGetVersion -- library version number
5582c393a42Smrg
5592c393a42SmrgSynopsis
5602c393a42Smrg
561eceda581Smrg#include <fontconfig/fontconfig.h>
562a6844aabSmrg
563ca08ab68Smrg   int FcGetVersion(void);
5642c393a42Smrg
5652c393a42SmrgDescription
5662c393a42Smrg
567ca08ab68Smrg   Returns the version number of the library.
5682c393a42Smrg
569eceda581SmrgFcInitReinitialize
5702c393a42Smrg
5712c393a42SmrgName
5722c393a42Smrg
573eceda581Smrg   FcInitReinitialize -- re-initialize library
5742c393a42Smrg
5752c393a42SmrgSynopsis
5762c393a42Smrg
577eceda581Smrg#include <fontconfig/fontconfig.h>
578a6844aabSmrg
579ca08ab68Smrg   FcBool FcInitReinitialize(void);
5802c393a42Smrg
5812c393a42SmrgDescription
5822c393a42Smrg
583eceda581Smrg   Forces the default configuration file to be reloaded and resets
584eceda581Smrg   the default configuration. Returns FcFalse if the configuration
585eceda581Smrg   cannot be reloaded (due to configuration file errors,
586eceda581Smrg   allocation failures or other issues) and leaves the existing
587eceda581Smrg   configuration unchanged. Otherwise returns FcTrue.
5882c393a42Smrg
589eceda581SmrgFcInitBringUptoDate
5902c393a42Smrg
5912c393a42SmrgName
5922c393a42Smrg
593eceda581Smrg   FcInitBringUptoDate -- reload configuration files if needed
5942c393a42Smrg
5952c393a42SmrgSynopsis
5962c393a42Smrg
597eceda581Smrg#include <fontconfig/fontconfig.h>
598a6844aabSmrg
599ca08ab68Smrg   FcBool FcInitBringUptoDate(void);
6002c393a42Smrg
6012c393a42SmrgDescription
6022c393a42Smrg
603eceda581Smrg   Checks the rescan interval in the default configuration,
604eceda581Smrg   checking the configuration if the interval has passed and
605eceda581Smrg   reloading the configuration if when any changes are detected.
606eceda581Smrg   Returns FcFalse if the configuration cannot be reloaded (see
607eceda581Smrg   FcInitReinitialize). Otherwise returns FcTrue.
608eceda581Smrg     __________________________________________________________
609ca08ab68Smrg
610eceda581SmrgFcPattern
611ca08ab68Smrg
612ca08ab68Smrg   Table of Contents
613eceda581Smrg   FcPatternCreate -- Create a pattern
614eceda581Smrg   FcPatternDuplicate -- Copy a pattern
615eceda581Smrg   FcPatternReference -- Increment pattern reference count
616eceda581Smrg   FcPatternDestroy -- Destroy a pattern
617eceda581Smrg   FcPatternObjectCount -- Returns the number of the object
618eceda581Smrg   FcPatternEqual -- Compare patterns
619eceda581Smrg   FcPatternEqualSubset -- Compare portions of patterns
620eceda581Smrg   FcPatternFilter -- Filter the objects of pattern
621eceda581Smrg   FcPatternHash -- Compute a pattern hash value
622eceda581Smrg   FcPatternAdd -- Add a value to a pattern
623eceda581Smrg   FcPatternAddWeak -- Add a value to a pattern with weak binding
624eceda581Smrg   FcPatternAdd-Type -- Add a typed value to a pattern
625eceda581Smrg   FcPatternGetWithBinding -- Return a value with binding from a
626eceda581Smrg          pattern
627ca08ab68Smrg
628eceda581Smrg   FcPatternGet -- Return a value from a pattern
629eceda581Smrg   FcPatternGet-Type -- Return a typed value from a pattern
630eceda581Smrg   FcPatternBuild -- Create patterns from arguments
631eceda581Smrg   FcPatternDel -- Delete a property from a pattern
632eceda581Smrg   FcPatternRemove -- Remove one object of the specified type from
633eceda581Smrg          the pattern
634a32e9e42Smrg
635eceda581Smrg   FcPatternIterStart -- Initialize the iterator with the first
636eceda581Smrg          iterator in the pattern
637a32e9e42Smrg
638eceda581Smrg   FcPatternIterNext --
639eceda581Smrg   FcPatternIterEqual -- Compare iterators
640eceda581Smrg   FcPatternFindIter -- Set the iterator to point to the object in
641eceda581Smrg          the pattern
642a32e9e42Smrg
643eceda581Smrg   FcPatternIterIsValid -- Check whether the iterator is valid or
644eceda581Smrg          not
645a32e9e42Smrg
646eceda581Smrg   FcPatternIterGetObject -- Returns an object name which the
647eceda581Smrg          iterator point to
648a32e9e42Smrg
649eceda581Smrg   FcPatternIterValueCount -- Returns the number of the values
650eceda581Smrg          which the iterator point to
651a32e9e42Smrg
652eceda581Smrg   FcPatternIterGetValue -- Returns a value which the iterator
653eceda581Smrg          point to
654a32e9e42Smrg
655eceda581Smrg   FcPatternPrint -- Print a pattern for debugging
656eceda581Smrg   FcDefaultSubstitute -- Perform default substitutions in a
657eceda581Smrg          pattern
658a32e9e42Smrg
659eceda581Smrg   FcNameParse -- Parse a pattern string
660eceda581Smrg   FcNameUnparse -- Convert a pattern back into a string that can
661eceda581Smrg          be parsed
662a32e9e42Smrg
663eceda581Smrg   FcPatternFormat -- Format a pattern into a string according to
664eceda581Smrg          a format specifier
665a32e9e42Smrg
666eceda581Smrg   An FcPattern is an opaque type that holds both patterns to
667eceda581Smrg   match against the available fonts, as well as the information
668eceda581Smrg   about each font.
669a32e9e42Smrg
670eceda581SmrgFcPatternCreate
6712c393a42Smrg
6722c393a42SmrgName
6732c393a42Smrg
674eceda581Smrg   FcPatternCreate -- Create a pattern
6752c393a42Smrg
6762c393a42SmrgSynopsis
6772c393a42Smrg
678eceda581Smrg#include <fontconfig/fontconfig.h>
679a6844aabSmrg
680ca08ab68Smrg   FcPattern * FcPatternCreate(void);
6812c393a42Smrg
6822c393a42SmrgDescription
6832c393a42Smrg
684eceda581Smrg   Creates a pattern with no properties; used to build patterns
685eceda581Smrg   from scratch.
6862c393a42Smrg
687eceda581SmrgFcPatternDuplicate
6882c393a42Smrg
6892c393a42SmrgName
6902c393a42Smrg
691eceda581Smrg   FcPatternDuplicate -- Copy a pattern
6922c393a42Smrg
6932c393a42SmrgSynopsis
6942c393a42Smrg
695eceda581Smrg#include <fontconfig/fontconfig.h>
696a6844aabSmrg
697ca08ab68Smrg   FcPattern * FcPatternDuplicate(const FcPattern *p);
6982c393a42Smrg
6992c393a42SmrgDescription
7002c393a42Smrg
701eceda581Smrg   Copy a pattern, returning a new pattern that matches p. Each
702eceda581Smrg   pattern may be modified without affecting the other.
7032c393a42Smrg
704eceda581SmrgFcPatternReference
7052c393a42Smrg
7062c393a42SmrgName
7072c393a42Smrg
708eceda581Smrg   FcPatternReference -- Increment pattern reference count
7092c393a42Smrg
7102c393a42SmrgSynopsis
7112c393a42Smrg
712eceda581Smrg#include <fontconfig/fontconfig.h>
713a6844aabSmrg
714ca08ab68Smrg   void FcPatternReference(FcPattern *p);
7152c393a42Smrg
7162c393a42SmrgDescription
7172c393a42Smrg
718eceda581Smrg   Add another reference to p. Patterns are freed only when the
719eceda581Smrg   reference count reaches zero.
7202c393a42Smrg
721eceda581SmrgFcPatternDestroy
7222c393a42Smrg
7232c393a42SmrgName
7242c393a42Smrg
725eceda581Smrg   FcPatternDestroy -- Destroy a pattern
7262c393a42Smrg
7272c393a42SmrgSynopsis
7282c393a42Smrg
729eceda581Smrg#include <fontconfig/fontconfig.h>
730a6844aabSmrg
731ca08ab68Smrg   void FcPatternDestroy(FcPattern *p);
7322c393a42Smrg
7332c393a42SmrgDescription
7342c393a42Smrg
735eceda581Smrg   Decrement the pattern reference count. If all references are
736eceda581Smrg   gone, destroys the pattern, in the process destroying all
737eceda581Smrg   related values.
738a32e9e42Smrg
739eceda581SmrgFcPatternObjectCount
740a32e9e42Smrg
741a32e9e42SmrgName
742a32e9e42Smrg
743eceda581Smrg   FcPatternObjectCount -- Returns the number of the object
744a32e9e42Smrg
745a32e9e42SmrgSynopsis
746a32e9e42Smrg
747eceda581Smrg#include <fontconfig/fontconfig.h>
748a32e9e42Smrg
749a32e9e42Smrg   int FcPatternObjectCount(const FcPattern *p);
750a32e9e42Smrg
751a32e9e42SmrgDescription
752a32e9e42Smrg
753a32e9e42Smrg   Returns the number of the object p has.
754a32e9e42Smrg
755a32e9e42SmrgSince
756a32e9e42Smrg
757a32e9e42Smrg   version 2.13.1
7582c393a42Smrg
759eceda581SmrgFcPatternEqual
7602c393a42Smrg
7612c393a42SmrgName
7622c393a42Smrg
763eceda581Smrg   FcPatternEqual -- Compare patterns
7642c393a42Smrg
7652c393a42SmrgSynopsis
7662c393a42Smrg
767eceda581Smrg#include <fontconfig/fontconfig.h>
768a32e9e42Smrg
769eceda581Smrg   FcBool FcPatternEqual(const FcPattern *pa, const FcPattern
770eceda581Smrg   *pb);
7712c393a42Smrg
7722c393a42SmrgDescription
7732c393a42Smrg
774ca08ab68Smrg   Returns whether pa and pb are exactly alike.
7752c393a42Smrg
776eceda581SmrgFcPatternEqualSubset
7772c393a42Smrg
7782c393a42SmrgName
7792c393a42Smrg
780eceda581Smrg   FcPatternEqualSubset -- Compare portions of patterns
7812c393a42Smrg
7822c393a42SmrgSynopsis
7832c393a42Smrg
784eceda581Smrg#include <fontconfig/fontconfig.h>
785a6844aabSmrg
786eceda581Smrg   FcBool FcPatternEqualSubset(const FcPattern *pa, const
787eceda581Smrg   FcPattern *pb, const FcObjectSet *os);
7882c393a42Smrg
7892c393a42SmrgDescription
7902c393a42Smrg
791eceda581Smrg   Returns whether pa and pb have exactly the same values for all
792eceda581Smrg   of the objects in os.
7932c393a42Smrg
794eceda581SmrgFcPatternFilter
795a6844aabSmrg
796a6844aabSmrgName
797a6844aabSmrg
798eceda581Smrg   FcPatternFilter -- Filter the objects of pattern
799a6844aabSmrg
800a6844aabSmrgSynopsis
801a6844aabSmrg
802eceda581Smrg#include <fontconfig/fontconfig.h>
803a32e9e42Smrg
804eceda581Smrg   FcPattern * FcPatternFilter(FcPattern *p, const FcObjectSet
805eceda581Smrg   *os);
806a6844aabSmrg
807a6844aabSmrgDescription
808a6844aabSmrg
809eceda581Smrg   Returns a new pattern that only has those objects from p that
810eceda581Smrg   are in os. If os is NULL, a duplicate of p is returned.
811a6844aabSmrg
812eceda581SmrgFcPatternHash
8132c393a42Smrg
8142c393a42SmrgName
8152c393a42Smrg
816eceda581Smrg   FcPatternHash -- Compute a pattern hash value
8172c393a42Smrg
8182c393a42SmrgSynopsis
8192c393a42Smrg
820eceda581Smrg#include <fontconfig/fontconfig.h>
821a6844aabSmrg
822ca08ab68Smrg   FcChar32 FcPatternHash(const FcPattern *p);
8232c393a42Smrg
8242c393a42SmrgDescription
8252c393a42Smrg
826eceda581Smrg   Returns a 32-bit number which is the same for any two patterns
827eceda581Smrg   which are equal.
8282c393a42Smrg
829eceda581SmrgFcPatternAdd
8302c393a42Smrg
8312c393a42SmrgName
8322c393a42Smrg
833eceda581Smrg   FcPatternAdd -- Add a value to a pattern
8342c393a42Smrg
8352c393a42SmrgSynopsis
8362c393a42Smrg
837eceda581Smrg#include <fontconfig/fontconfig.h>
8382c393a42Smrg
839eceda581Smrg   FcBool FcPatternAdd(FcPattern *p, const char *object, FcValue
840eceda581Smrg   value, FcBool append);
8412c393a42Smrg
8422c393a42SmrgDescription
8432c393a42Smrg
844eceda581Smrg   Adds a single value to the list of values associated with the
845eceda581Smrg   property named `object. If `append is FcTrue, the value is
846eceda581Smrg   added at the end of any existing list, otherwise it is inserted
847eceda581Smrg   at the beginning. `value' is saved (with FcValueSave) when
848eceda581Smrg   inserted into the pattern so that the library retains no
849eceda581Smrg   reference to any application-supplied data structure.
8502c393a42Smrg
851eceda581SmrgFcPatternAddWeak
8522c393a42Smrg
8532c393a42SmrgName
8542c393a42Smrg
855eceda581Smrg   FcPatternAddWeak -- Add a value to a pattern with weak binding
8562c393a42Smrg
8572c393a42SmrgSynopsis
8582c393a42Smrg
859eceda581Smrg#include <fontconfig/fontconfig.h>
860a6844aabSmrg
861eceda581Smrg   FcBool FcPatternAddWeak(FcPattern *p, const char *object,
862eceda581Smrg   FcValue value, FcBool append);
8632c393a42Smrg
8642c393a42SmrgDescription
8652c393a42Smrg
866eceda581Smrg   FcPatternAddWeak is essentially the same as FcPatternAdd except
867eceda581Smrg   that any values added to the list have binding weak instead of
868eceda581Smrg   strong.
8692c393a42Smrg
870eceda581SmrgFcPatternAdd-Type
8712c393a42Smrg
8722c393a42SmrgName
8732c393a42Smrg
874ca08ab68Smrg   FcPatternAddInteger, FcPatternAddDouble, FcPatternAddString,
875ca08ab68Smrg   FcPatternAddMatrix, FcPatternAddCharSet, FcPatternAddBool,
876eceda581Smrg   FcPatternAddFTFace, FcPatternAddLangSet,
877eceda581Smrg   FcPatternAddRange -- Add a typed value to a pattern
8782c393a42Smrg
8792c393a42SmrgSynopsis
8802c393a42Smrg
881eceda581Smrg#include <fontconfig/fontconfig.h>
882a32e9e42Smrg
883eceda581Smrg   FcBool FcPatternAddInteger(FcPattern *p, const char *object,
884eceda581Smrg   int i);
8852c393a42Smrg
886eceda581Smrg   FcBool FcPatternAddDouble(FcPattern *p, const char *object,
887eceda581Smrg   double d);
8882c393a42Smrg
889eceda581Smrg   FcBool FcPatternAddString(FcPattern *p, const char *object,
890eceda581Smrg   const FcChar8 *s);
891a6844aabSmrg
892eceda581Smrg   FcBool FcPatternAddMatrix(FcPattern *p, const char *object,
893eceda581Smrg   const FcMatrix *m);
8942c393a42Smrg
895eceda581Smrg   FcBool FcPatternAddCharSet(FcPattern *p, const char *object,
896eceda581Smrg   const FcCharSet *c);
8972c393a42Smrg
898eceda581Smrg   FcBool FcPatternAddBool(FcPattern *p, const char *object,
899eceda581Smrg   FcBool b);
9002c393a42Smrg
901eceda581Smrg   FcBool FcPatternAddFTFace(FcPattern *p, const char *object,
902eceda581Smrg   const FT_Facef);
9032c393a42Smrg
904eceda581Smrg   FcBool FcPatternAddLangSet(FcPattern *p, const char *object,
905eceda581Smrg   const FcLangSet *l);
9062c393a42Smrg
907eceda581Smrg   FcBool FcPatternAddRange(FcPattern *p, const char *object,
908eceda581Smrg   const FcRange *r);
9092c393a42Smrg
9102c393a42SmrgDescription
9112c393a42Smrg
912eceda581Smrg   These are all convenience functions that insert objects of the
913eceda581Smrg   specified type into the pattern. Use these in preference to
914eceda581Smrg   FcPatternAdd as they will provide compile-time typechecking.
915eceda581Smrg   These all append values to any existing list of values.
916eceda581Smrg   FcPatternAddRange are available since 2.11.91.
9172c393a42Smrg
918eceda581SmrgFcPatternGetWithBinding
9192c393a42Smrg
9202c393a42SmrgName
9212c393a42Smrg
922eceda581Smrg   FcPatternGetWithBinding -- Return a value with binding from a
923eceda581Smrg   pattern
9242c393a42Smrg
9252c393a42SmrgSynopsis
9262c393a42Smrg
927eceda581Smrg#include <fontconfig/fontconfig.h>
928a32e9e42Smrg
929eceda581Smrg   FcResult FcPatternGetWithBinding(FcPattern *p, const char
930eceda581Smrg   *object, int id, FcValue *v, FcValueBinding *b);
9312c393a42Smrg
9322c393a42SmrgDescription
9332c393a42Smrg
934eceda581Smrg   Returns in v the id'th value and b binding for that associated
935eceda581Smrg   with the property object. The Value returned is not a copy, but
936eceda581Smrg   rather refers to the data stored within the pattern directly.
937eceda581Smrg   Applications must not free this value.
938a32e9e42Smrg
939a32e9e42SmrgSince
940a32e9e42Smrg
941a32e9e42Smrg   version 2.12.5
9422c393a42Smrg
943eceda581SmrgFcPatternGet
944a32e9e42Smrg
945a32e9e42SmrgName
946a32e9e42Smrg
947eceda581Smrg   FcPatternGet -- Return a value from a pattern
948a32e9e42Smrg
949a32e9e42SmrgSynopsis
950a32e9e42Smrg
951eceda581Smrg#include <fontconfig/fontconfig.h>
952a32e9e42Smrg
953eceda581Smrg   FcResult FcPatternGet(FcPattern *p, const char *object, int id,
954eceda581Smrg   FcValue *v);
955a32e9e42Smrg
956a32e9e42SmrgDescription
957a32e9e42Smrg
958eceda581Smrg   Returns in v the id'th value associated with the property
959eceda581Smrg   object. The value returned is not a copy, but rather refers to
960eceda581Smrg   the data stored within the pattern directly. Applications must
961eceda581Smrg   not free this value.
962a32e9e42Smrg
963eceda581SmrgFcPatternGet-Type
9642c393a42Smrg
9652c393a42SmrgName
9662c393a42Smrg
967ca08ab68Smrg   FcPatternGetInteger, FcPatternGetDouble, FcPatternGetString,
968ca08ab68Smrg   FcPatternGetMatrix, FcPatternGetCharSet, FcPatternGetBool,
969eceda581Smrg   FcPatternGetFTFace, FcPatternGetLangSet,
970eceda581Smrg   FcPatternGetRange -- Return a typed value from a pattern
9712c393a42Smrg
9722c393a42SmrgSynopsis
9732c393a42Smrg
974eceda581Smrg#include <fontconfig/fontconfig.h>
9752c393a42Smrg
976eceda581Smrg   FcResult FcPatternGetInteger(FcPattern *p, const char *object,
977eceda581Smrg   int n, int *i);
9782c393a42Smrg
979eceda581Smrg   FcResult FcPatternGetDouble(FcPattern *p, const char *object,
980eceda581Smrg   int n, double *d);
981a6844aabSmrg
982eceda581Smrg   FcResult FcPatternGetString(FcPattern *p, const char *object,
983eceda581Smrg   int n, FcChar8 **s);
9842c393a42Smrg
985eceda581Smrg   FcResult FcPatternGetMatrix(FcPattern *p, const char *object,
986eceda581Smrg   int n, FcMatrix **s);
9872c393a42Smrg
988eceda581Smrg   FcResult FcPatternGetCharSet(FcPattern *p, const char *object,
989eceda581Smrg   int n, FcCharSet **c);
9902c393a42Smrg
991eceda581Smrg   FcResult FcPatternGetBool(FcPattern *p, const char *object, int
992eceda581Smrg   n, FcBool *b);
9932c393a42Smrg
994eceda581Smrg   FcResult FcPatternGetFTFace(FcPattern *p, const char *object,
995eceda581Smrg   int n, FT_Face *f);
9962c393a42Smrg
997eceda581Smrg   FcResult FcPatternGetLangSet(FcPattern *p, const char *object,
998eceda581Smrg   int n, FcLangSet **l);
9992c393a42Smrg
1000eceda581Smrg   FcResult FcPatternGetRange(FcPattern *p, const char *object,
1001eceda581Smrg   int n, FcRange **r);
10022c393a42Smrg
10032c393a42SmrgDescription
10042c393a42Smrg
1005eceda581Smrg   These are convenience functions that call FcPatternGet and
1006eceda581Smrg   verify that the returned data is of the expected type. They
1007eceda581Smrg   return FcResultTypeMismatch if this is not the case. Note that
1008eceda581Smrg   these (like FcPatternGet) do not make a copy of any data
1009eceda581Smrg   structure referenced by the return value. Use these in
1010eceda581Smrg   preference to FcPatternGet to provide compile-time
1011eceda581Smrg   typechecking. FcPatternGetRange are available since 2.11.91.
10122c393a42Smrg
1013eceda581SmrgFcPatternBuild
10142c393a42Smrg
10152c393a42SmrgName
10162c393a42Smrg
1017eceda581Smrg   FcPatternBuild, FcPatternVaBuild, FcPatternVapBuild -- Create
1018eceda581Smrg   patterns from arguments
10192c393a42Smrg
10202c393a42SmrgSynopsis
10212c393a42Smrg
1022eceda581Smrg#include <fontconfig/fontconfig.h>
10232c393a42Smrg
1024ca08ab68Smrg   FcPattern * FcPatternBuild(FcPattern *pattern, ...);
10252c393a42Smrg
1026ca08ab68Smrg   FcPattern * FcPatternVaBuild(FcPattern *pattern, va_list va);
1027a6844aabSmrg
1028eceda581Smrg   void FcPatternVapBuild(FcPattern *result, FcPattern *pattern,
1029eceda581Smrg   va_list va);
10302c393a42Smrg
10312c393a42SmrgDescription
10322c393a42Smrg
1033eceda581Smrg   Builds a pattern using a list of objects, types and values.
1034eceda581Smrg   Each value to be entered in the pattern is specified with three
1035eceda581Smrg   arguments:
10362c393a42Smrg
1037eceda581Smrg    1. Object name, a string describing the property to be added.
1038eceda581Smrg    2. Object type, one of the FcType enumerated values
1039eceda581Smrg    3. Value, not an FcValue, but the raw type as passed to any of
1040eceda581Smrg       the FcPatternAdd<type> functions. Must match the type of
1041eceda581Smrg       the second argument.
10422c393a42Smrg
1043eceda581Smrg   The argument list is terminated by a null object name, no
1044eceda581Smrg   object type nor value need be passed for this. The values are
1045eceda581Smrg   added to `pattern', if `pattern' is null, a new pattern is
1046eceda581Smrg   created. In either case, the pattern is returned. Example
1047eceda581Smrgpattern = FcPatternBuild (0, FC_FAMILY, FcTypeString, "Times", (char *)
1048eceda581Smrg0);
1049a6844aabSmrg
1050eceda581Smrg   FcPatternVaBuild is used when the arguments are already in the
1051eceda581Smrg   form of a varargs value. FcPatternVapBuild is a macro version
1052eceda581Smrg   of FcPatternVaBuild which returns its result directly in the
1053eceda581Smrg   result variable.
1054a32e9e42Smrg
1055eceda581SmrgFcPatternDel
10562c393a42Smrg
10572c393a42SmrgName
10582c393a42Smrg
1059eceda581Smrg   FcPatternDel -- Delete a property from a pattern
10602c393a42Smrg
10612c393a42SmrgSynopsis
10622c393a42Smrg
1063eceda581Smrg#include <fontconfig/fontconfig.h>
1064a6844aabSmrg
1065ca08ab68Smrg   FcBool FcPatternDel(FcPattern *p, const char *object);
10662c393a42Smrg
10672c393a42SmrgDescription
10682c393a42Smrg
1069eceda581Smrg   Deletes all values associated with the property `object',
1070eceda581Smrg   returning whether the property existed or not.
1071a32e9e42Smrg
1072eceda581SmrgFcPatternRemove
1073a32e9e42Smrg
1074a32e9e42SmrgName
1075a32e9e42Smrg
1076eceda581Smrg   FcPatternRemove -- Remove one object of the specified type from
1077eceda581Smrg   the pattern
1078a32e9e42Smrg
1079a32e9e42SmrgSynopsis
1080a32e9e42Smrg
1081eceda581Smrg#include <fontconfig/fontconfig.h>
1082a32e9e42Smrg
1083eceda581Smrg   FcBool FcPatternRemove(FcPattern *p, const char *object, int
1084eceda581Smrg   id);
1085a32e9e42Smrg
1086a32e9e42SmrgDescription
1087a32e9e42Smrg
1088eceda581Smrg   Removes the value associated with the property `object' at
1089eceda581Smrg   position `id', returning whether the property existed and had a
1090eceda581Smrg   value at that position or not.
10912c393a42Smrg
1092eceda581SmrgFcPatternIterStart
10932c393a42Smrg
10942c393a42SmrgName
10952c393a42Smrg
1096eceda581Smrg   FcPatternIterStart -- Initialize the iterator with the first
1097eceda581Smrg   iterator in the pattern
10982c393a42Smrg
10992c393a42SmrgSynopsis
11002c393a42Smrg
1101eceda581Smrg#include <fontconfig/fontconfig.h>
1102a32e9e42Smrg
1103eceda581Smrg   void FcPatternIterStart(const FcPattern *p, FcPatternIter
1104eceda581Smrg   *iter);
11052c393a42Smrg
11062c393a42SmrgDescription
11072c393a42Smrg
1108eceda581Smrg   Initialize iter with the first iterator in p. If there are no
1109eceda581Smrg   objects in p, iter will not have any valid data.
1110a32e9e42Smrg
1111a32e9e42SmrgSince
1112a32e9e42Smrg
1113a32e9e42Smrg   version 2.13.1
11142c393a42Smrg
1115eceda581SmrgFcPatternIterNext
11162c393a42Smrg
11172c393a42SmrgName
11182c393a42Smrg
1119eceda581Smrg   FcPatternIterNext --
11202c393a42Smrg
11212c393a42SmrgSynopsis
11222c393a42Smrg
1123eceda581Smrg#include <fontconfig/fontconfig.h>
1124a6844aabSmrg
1125eceda581Smrg   FcBool FcPatternIterNext(const FcPattern *p, FcPatternIter
1126eceda581Smrg   *iter);
11272c393a42Smrg
11282c393a42SmrgDescription
11292c393a42Smrg
1130eceda581Smrg   Set iter to point to the next object in p and returns FcTrue if
1131eceda581Smrg   iter has been changed to the next object. returns FcFalse
1132eceda581Smrg   otherwise.
11332c393a42Smrg
1134a32e9e42SmrgSince
1135a32e9e42Smrg
1136a32e9e42Smrg   version 2.13.1
1137a32e9e42Smrg
1138eceda581SmrgFcPatternIterEqual
11392c393a42Smrg
11402c393a42SmrgName
11412c393a42Smrg
1142eceda581Smrg   FcPatternIterEqual -- Compare iterators
1143a32e9e42Smrg
1144a32e9e42SmrgSynopsis
1145a32e9e42Smrg
1146eceda581Smrg#include <fontconfig/fontconfig.h>
1147a32e9e42Smrg
1148eceda581Smrg   FcBool FcPatternIterEqual(const FcPattern *p1, FcPatternIter
1149eceda581Smrg   *i1, const FcPattern *p2, FcPatternIter *i2);
1150a32e9e42Smrg
1151a32e9e42SmrgDescription
1152a32e9e42Smrg
1153eceda581Smrg   Return FcTrue if both i1 and i2 point to same object and
1154eceda581Smrg   contains same values. return FcFalse otherwise.
1155a32e9e42Smrg
1156a32e9e42SmrgSince
1157a32e9e42Smrg
1158a32e9e42Smrg   version 2.13.1
1159a32e9e42Smrg
1160eceda581SmrgFcPatternFindIter
1161a32e9e42Smrg
1162a32e9e42SmrgName
1163a32e9e42Smrg
1164eceda581Smrg   FcPatternFindIter -- Set the iterator to point to the object in
1165eceda581Smrg   the pattern
11662c393a42Smrg
11672c393a42SmrgSynopsis
11682c393a42Smrg
1169eceda581Smrg#include <fontconfig/fontconfig.h>
1170a32e9e42Smrg
1171eceda581Smrg   FcBool FcPatternFindIter(const FcPattern *p, FcPatternIter
1172eceda581Smrg   *iter, const char *object);
1173a32e9e42Smrg
1174a32e9e42SmrgDescription
1175a32e9e42Smrg
1176eceda581Smrg   Set iter to point to object in p if any and returns FcTrue.
1177eceda581Smrg   returns FcFalse otherwise.
1178a32e9e42Smrg
1179a32e9e42SmrgSince
1180a32e9e42Smrg
1181a32e9e42Smrg   version 2.13.1
1182a32e9e42Smrg
1183eceda581SmrgFcPatternIterIsValid
1184a32e9e42Smrg
1185a32e9e42SmrgName
1186a32e9e42Smrg
1187eceda581Smrg   FcPatternIterIsValid -- Check whether the iterator is valid or
1188eceda581Smrg   not
1189a32e9e42Smrg
1190a32e9e42SmrgSynopsis
1191a32e9e42Smrg
1192eceda581Smrg#include <fontconfig/fontconfig.h>
1193a32e9e42Smrg
1194eceda581Smrg   FcBool FcPatternIterIsValid(const FcPattern *p, FcPatternIter
1195eceda581Smrg   :iter);
1196a32e9e42Smrg
1197a32e9e42SmrgDescription
1198a32e9e42Smrg
1199eceda581Smrg   Returns FcTrue if iter point to the valid entry in p. returns
1200eceda581Smrg   FcFalse otherwise.
1201a32e9e42Smrg
1202a32e9e42SmrgSince
1203a32e9e42Smrg
1204a32e9e42Smrg   version 2.13.1
1205a32e9e42Smrg
1206eceda581SmrgFcPatternIterGetObject
1207a32e9e42Smrg
1208a32e9e42SmrgName
1209a32e9e42Smrg
1210eceda581Smrg   FcPatternIterGetObject -- Returns an object name which the
1211eceda581Smrg   iterator point to
1212a32e9e42Smrg
1213a32e9e42SmrgSynopsis
1214a32e9e42Smrg
1215eceda581Smrg#include <fontconfig/fontconfig.h>
1216a32e9e42Smrg
1217eceda581Smrg   const char * FcPatternIterGetObject(const FcPattern *p,
1218eceda581Smrg   FcPatternIter *iter);
1219a32e9e42Smrg
1220a32e9e42SmrgDescription
1221a32e9e42Smrg
1222eceda581Smrg   Returns an object name in p which iter point to. returns NULL
1223eceda581Smrg   if iter isn't valid.
1224a32e9e42Smrg
1225a32e9e42SmrgSince
1226a32e9e42Smrg
1227a32e9e42Smrg   version 2.13.1
1228a32e9e42Smrg
1229eceda581SmrgFcPatternIterValueCount
1230a32e9e42Smrg
1231a32e9e42SmrgName
1232a32e9e42Smrg
1233eceda581Smrg   FcPatternIterValueCount -- Returns the number of the values
1234eceda581Smrg   which the iterator point to
1235a32e9e42Smrg
1236a32e9e42SmrgSynopsis
1237a32e9e42Smrg
1238eceda581Smrg#include <fontconfig/fontconfig.h>
1239a32e9e42Smrg
1240eceda581Smrg   int FcPatternIterValueCount(const FcPattern *p, FcPatternIter
1241eceda581Smrg   *iter);
1242a32e9e42Smrg
1243a32e9e42SmrgDescription
1244a32e9e42Smrg
1245eceda581Smrg   Returns the number of the values in the object which iter point
1246eceda581Smrg   to. if iter isn't valid, returns 0.
1247a32e9e42Smrg
1248a32e9e42SmrgSince
1249a32e9e42Smrg
1250a32e9e42Smrg   version 2.13.1
1251a32e9e42Smrg
1252eceda581SmrgFcPatternIterGetValue
1253a32e9e42Smrg
1254a32e9e42SmrgName
1255a32e9e42Smrg
1256eceda581Smrg   FcPatternIterGetValue -- Returns a value which the iterator
1257eceda581Smrg   point to
1258a32e9e42Smrg
1259a32e9e42SmrgSynopsis
1260a32e9e42Smrg
1261eceda581Smrg#include <fontconfig/fontconfig.h>
1262a32e9e42Smrg
1263eceda581Smrg   FcResult FcPatternIterGetValue(const FcPattern *p,
1264eceda581Smrg   FcPatternIter *iter, intid, FcValue *v, FcValueBinding *b);
1265a32e9e42Smrg
1266a32e9e42SmrgDescription
1267a32e9e42Smrg
1268eceda581Smrg   Returns in v the id'th value which iter point to. also binding
1269eceda581Smrg   to b if given. The value returned is not a copy, but rather
1270eceda581Smrg   refers to the data stored within the pattern directly.
1271eceda581Smrg   Applications must not free this value.
1272a32e9e42Smrg
1273a32e9e42SmrgSince
1274a32e9e42Smrg
1275a32e9e42Smrg   version 2.13.1
1276a32e9e42Smrg
1277eceda581SmrgFcPatternPrint
1278a32e9e42Smrg
1279a32e9e42SmrgName
1280a32e9e42Smrg
1281eceda581Smrg   FcPatternPrint -- Print a pattern for debugging
1282a32e9e42Smrg
1283a32e9e42SmrgSynopsis
1284a32e9e42Smrg
1285eceda581Smrg#include <fontconfig/fontconfig.h>
1286a32e9e42Smrg
1287a32e9e42Smrg   void FcPatternPrint(const FcPattern *p);
1288a32e9e42Smrg
1289a32e9e42SmrgDescription
1290a32e9e42Smrg
1291eceda581Smrg   Prints an easily readable version of the pattern to stdout.
1292eceda581Smrg   There is no provision for reparsing data in this format, it's
1293eceda581Smrg   just for diagnostics and debugging.
1294a32e9e42Smrg
1295eceda581SmrgFcDefaultSubstitute
1296a32e9e42Smrg
1297a32e9e42SmrgName
1298a32e9e42Smrg
1299eceda581Smrg   FcDefaultSubstitute -- Perform default substitutions in a
1300eceda581Smrg   pattern
1301a32e9e42Smrg
1302a32e9e42SmrgSynopsis
1303a32e9e42Smrg
1304eceda581Smrg#include <fontconfig/fontconfig.h>
1305a6844aabSmrg
1306ca08ab68Smrg   void FcDefaultSubstitute(FcPattern *pattern);
13072c393a42Smrg
13082c393a42SmrgDescription
13092c393a42Smrg
1310ca08ab68Smrg   Supplies default values for underspecified font patterns:
1311a6844aabSmrg
1312eceda581Smrg     * Patterns without a specified style or weight are set to
1313eceda581Smrg       Medium
1314eceda581Smrg     * Patterns without a specified style or slant are set to
1315eceda581Smrg       Roman
1316eceda581Smrg     * Patterns without a specified pixel size are given one
1317eceda581Smrg       computed from any specified point size (default 12), dpi
1318eceda581Smrg       (default 75) and scale (default 1).
13192c393a42Smrg
1320eceda581SmrgFcNameParse
13212c393a42Smrg
13222c393a42SmrgName
13232c393a42Smrg
1324eceda581Smrg   FcNameParse -- Parse a pattern string
13252c393a42Smrg
13262c393a42SmrgSynopsis
13272c393a42Smrg
1328eceda581Smrg#include <fontconfig/fontconfig.h>
1329a6844aabSmrg
1330ca08ab68Smrg   FcPattern * FcNameParse(const FcChar8 *name);
13312c393a42Smrg
13322c393a42SmrgDescription
13332c393a42Smrg
1334eceda581Smrg   Converts name from the standard text format described above
1335eceda581Smrg   into a pattern.
13362c393a42Smrg
1337eceda581SmrgFcNameUnparse
13382c393a42Smrg
13392c393a42SmrgName
13402c393a42Smrg
1341eceda581Smrg   FcNameUnparse -- Convert a pattern back into a string that can
1342eceda581Smrg   be parsed
13432c393a42Smrg
13442c393a42SmrgSynopsis
13452c393a42Smrg
1346eceda581Smrg#include <fontconfig/fontconfig.h>
1347a6844aabSmrg
1348ca08ab68Smrg   FcChar8 * FcNameUnparse(FcPattern *pat);
13492c393a42Smrg
13502c393a42SmrgDescription
13512c393a42Smrg
1352eceda581Smrg   Converts the given pattern into the standard text format
1353eceda581Smrg   described above. The return value is not static, but instead
1354eceda581Smrg   refers to newly allocated memory which should be freed by the
1355eceda581Smrg   caller using free().
1356eceda581Smrg
1357eceda581SmrgFcPatternFormat
1358eceda581Smrg
1359eceda581SmrgName
1360eceda581Smrg
1361eceda581Smrg   FcPatternFormat -- Format a pattern into a string according to
1362eceda581Smrg   a format specifier
1363eceda581Smrg
1364eceda581SmrgSynopsis
1365eceda581Smrg
1366eceda581Smrg#include <fontconfig/fontconfig.h>
1367eceda581Smrg
1368eceda581Smrg   FcChar8 * FcPatternFormat(FcPattern *pat, const FcChar8
1369eceda581Smrg   *format);
1370eceda581Smrg
1371eceda581SmrgDescription
1372eceda581Smrg
1373eceda581Smrg   Converts given pattern pat into text described by the format
1374eceda581Smrg   specifier format. The return value refers to newly allocated
1375eceda581Smrg   memory which should be freed by the caller using free(), or
1376eceda581Smrg   NULL if format is invalid.
1377eceda581Smrg
1378eceda581Smrg   The format is loosely modeled after printf-style format string.
1379eceda581Smrg   The format string is composed of zero or more directives:
1380eceda581Smrg   ordinary characters (not "%"), which are copied unchanged to
1381eceda581Smrg   the output stream; and tags which are interpreted to construct
1382eceda581Smrg   text from the pattern in a variety of ways (explained below).
1383eceda581Smrg   Special characters can be escaped using backslash. C-string
1384eceda581Smrg   style special characters like \n and \r are also supported
1385eceda581Smrg   (this is useful when the format string is not a C string
1386eceda581Smrg   literal). It is advisable to always escape curly braces that
1387eceda581Smrg   are meant to be copied to the output as ordinary characters.
1388eceda581Smrg
1389eceda581Smrg   Each tag is introduced by the character "%", followed by an
1390eceda581Smrg   optional minimum field width, followed by tag contents in curly
1391eceda581Smrg   braces ({}). If the minimum field width value is provided the
1392eceda581Smrg   tag will be expanded and the result padded to achieve the
1393eceda581Smrg   minimum width. If the minimum field width is positive, the
1394eceda581Smrg   padding will right-align the text. Negative field width will
1395eceda581Smrg   left-align. The rest of this section describes various
1396eceda581Smrg   supported tag contents and their expansion.
1397eceda581Smrg
1398eceda581Smrg   A simple tag is one where the content is an identifier. When
1399eceda581Smrg   simple tags are expanded, the named identifier will be looked
1400eceda581Smrg   up in pattern and the resulting list of values returned, joined
1401eceda581Smrg   together using comma. For example, to print the family name and
1402eceda581Smrg   style of the pattern, use the format "%{family} %{style}\n". To
1403eceda581Smrg   extend the family column to forty characters use
1404eceda581Smrg   "%-40{family}%{style}\n".
1405eceda581Smrg
1406eceda581Smrg   Simple tags expand to list of all values for an element. To
1407eceda581Smrg   only choose one of the values, one can index using the syntax
1408eceda581Smrg   "%{elt[idx]}". For example, to get the first family name only,
1409eceda581Smrg   use "%{family[0]}".
1410eceda581Smrg
1411eceda581Smrg   If a simple tag ends with "=" and the element is found in the
1412eceda581Smrg   pattern, the name of the element followed by "=" will be output
1413eceda581Smrg   before the list of values. For example, "%{weight=}" may expand
1414eceda581Smrg   to the string "weight=80". Or to the empty string if pattern
1415eceda581Smrg   does not have weight set.
1416eceda581Smrg
1417eceda581Smrg   If a simple tag starts with ":" and the element is found in the
1418eceda581Smrg   pattern, ":" will be printed first. For example, combining this
1419eceda581Smrg   with the =, the format "%{:weight=}" may expand to ":weight=80"
1420eceda581Smrg   or to the empty string if pattern does not have weight set.
1421eceda581Smrg
1422eceda581Smrg   If a simple tag contains the string ":-", the rest of the the
1423eceda581Smrg   tag contents will be used as a default string. The default
1424eceda581Smrg   string is output if the element is not found in the pattern.
1425eceda581Smrg   For example, the format "%{:weight=:-123}" may expand to
1426eceda581Smrg   ":weight=80" or to the string ":weight=123" if pattern does not
1427eceda581Smrg   have weight set.
1428eceda581Smrg
1429eceda581Smrg   A count tag is one that starts with the character "#" followed
1430eceda581Smrg   by an element name, and expands to the number of values for the
1431eceda581Smrg   element in the pattern. For example, "%{#family}" expands to
1432eceda581Smrg   the number of family names pattern has set, which may be zero.
1433eceda581Smrg
1434eceda581Smrg   A sub-expression tag is one that expands a sub-expression. The
1435eceda581Smrg   tag contents are the sub-expression to expand placed inside
1436eceda581Smrg   another set of curly braces. Sub-expression tags are useful for
1437eceda581Smrg   aligning an entire sub-expression, or to apply converters
1438eceda581Smrg   (explained later) to the entire sub-expression output. For
1439eceda581Smrg   example, the format "%40{{%{family} %{style}}}" expands the
1440eceda581Smrg   sub-expression to construct the family name followed by the
1441eceda581Smrg   style, then takes the entire string and pads it on the left to
1442eceda581Smrg   be at least forty characters.
1443eceda581Smrg
1444eceda581Smrg   A filter-out tag is one starting with the character "-"
1445eceda581Smrg   followed by a comma-separated list of element names, followed
1446eceda581Smrg   by a sub-expression enclosed in curly braces. The
1447eceda581Smrg   sub-expression will be expanded but with a pattern that has the
1448eceda581Smrg   listed elements removed from it. For example, the format
1449eceda581Smrg   "%{-size,pixelsize{sub-expr}}" will expand "sub-expr" with
1450eceda581Smrg   pattern sans the size and pixelsize elements.
1451eceda581Smrg
1452eceda581Smrg   A filter-in tag is one starting with the character "+" followed
1453eceda581Smrg   by a comma-separated list of element names, followed by a
1454eceda581Smrg   sub-expression enclosed in curly braces. The sub-expression
1455eceda581Smrg   will be expanded but with a pattern that only has the listed
1456eceda581Smrg   elements from the surrounding pattern. For example, the format
1457eceda581Smrg   "%{+family,familylang{sub-expr}}" will expand "sub-expr" with a
1458eceda581Smrg   sub-pattern consisting only the family and family lang elements
1459eceda581Smrg   of pattern.
1460eceda581Smrg
1461eceda581Smrg   A conditional tag is one starting with the character "?"
1462eceda581Smrg   followed by a comma-separated list of element conditions,
1463eceda581Smrg   followed by two sub-expression enclosed in curly braces. An
1464eceda581Smrg   element condition can be an element name, in which case it
1465eceda581Smrg   tests whether the element is defined in pattern, or the
1466eceda581Smrg   character "!" followed by an element name, in which case the
1467eceda581Smrg   test is negated. The conditional passes if all the element
1468eceda581Smrg   conditions pass. The tag expands the first sub-expression if
1469eceda581Smrg   the conditional passes, and expands the second sub-expression
1470eceda581Smrg   otherwise. For example, the format
1471eceda581Smrg   "%{?size,dpi,!pixelsize{pass}{fail}}" will expand to "pass" if
1472eceda581Smrg   pattern has size and dpi elements but no pixelsize element, and
1473eceda581Smrg   to "fail" otherwise.
1474eceda581Smrg
1475eceda581Smrg   An enumerate tag is one starting with the string "[]" followed
1476eceda581Smrg   by a comma-separated list of element names, followed by a
1477eceda581Smrg   sub-expression enclosed in curly braces. The list of values for
1478eceda581Smrg   the named elements are walked in parallel and the
1479eceda581Smrg   sub-expression expanded each time with a pattern just having a
1480eceda581Smrg   single value for those elements, starting from the first value
1481eceda581Smrg   and continuing as long as any of those elements has a value.
1482ca08ab68Smrg   For example, the format "%{[]family,familylang{%{family}
1483eceda581Smrg   (%{familylang})\n}}" will expand the pattern "%{family}
1484eceda581Smrg   (%{familylang})\n" with a pattern having only the first value
1485eceda581Smrg   of the family and familylang elements, then expands it with the
1486eceda581Smrg   second values, then the third, etc.
1487a6844aabSmrg
1488eceda581Smrg   As a special case, if an enumerate tag has only one element,
1489eceda581Smrg   and that element has only one value in the pattern, and that
1490eceda581Smrg   value is of type FcLangSet, the individual languages in the
1491eceda581Smrg   language set are enumerated.
1492a6844aabSmrg
1493eceda581Smrg   A builtin tag is one starting with the character "=" followed
1494eceda581Smrg   by a builtin name. The following builtins are defined:
1495a6844aabSmrg
1496ca08ab68Smrg   unparse
1497eceda581Smrg          Expands to the result of calling FcNameUnparse() on the
1498eceda581Smrg          pattern.
1499a6844aabSmrg
1500ca08ab68Smrg   fcmatch
1501eceda581Smrg          Expands to the output of the default output format of
1502eceda581Smrg          the fc-match command on the pattern, without the final
1503eceda581Smrg          newline.
1504a6844aabSmrg
1505ca08ab68Smrg   fclist
1506eceda581Smrg          Expands to the output of the default output format of
1507eceda581Smrg          the fc-list command on the pattern, without the final
1508eceda581Smrg          newline.
1509a6844aabSmrg
1510ca08ab68Smrg   fccat
1511eceda581Smrg          Expands to the output of the default output format of
1512eceda581Smrg          the fc-cat command on the pattern, without the final
1513eceda581Smrg          newline.
1514a6844aabSmrg
1515ca08ab68Smrg   pkgkit
1516eceda581Smrg          Expands to the list of PackageKit font() tags for the
1517eceda581Smrg          pattern. Currently this includes tags for each family
1518eceda581Smrg          name, and each language from the pattern, enumerated and
1519eceda581Smrg          sanitized into a set of tags terminated by newline.
1520eceda581Smrg          Package management systems can use these tags to tag
1521eceda581Smrg          their packages accordingly.
1522eceda581Smrg
1523eceda581Smrg   For example, the format "%{+family,style{%{=unparse}}}\n" will
1524eceda581Smrg   expand to an unparsed name containing only the family and style
1525eceda581Smrg   element values from pattern.
1526eceda581Smrg
1527eceda581Smrg   The contents of any tag can be followed by a set of zero or
1528eceda581Smrg   more converters. A converter is specified by the character "|"
1529eceda581Smrg   followed by the converter name and arguments. The following
1530eceda581Smrg   converters are defined:
1531a6844aabSmrg
1532ca08ab68Smrg   basename
1533eceda581Smrg          Replaces text with the results of calling
1534eceda581Smrg          FcStrBasename() on it.
1535a6844aabSmrg
1536ca08ab68Smrg   dirname
1537eceda581Smrg          Replaces text with the results of calling FcStrDirname()
1538eceda581Smrg          on it.
1539a6844aabSmrg
1540ca08ab68Smrg   downcase
1541eceda581Smrg          Replaces text with the results of calling
1542eceda581Smrg          FcStrDowncase() on it.
1543a6844aabSmrg
1544ca08ab68Smrg   shescape
1545eceda581Smrg          Escapes text for one level of shell expansion. (Escapes
1546eceda581Smrg          single-quotes, also encloses text in single-quotes.)
1547a6844aabSmrg
1548ca08ab68Smrg   cescape
1549eceda581Smrg          Escapes text such that it can be used as part of a C
1550eceda581Smrg          string literal. (Escapes backslash and double-quotes.)
1551a6844aabSmrg
1552ca08ab68Smrg   xmlescape
1553eceda581Smrg          Escapes text such that it can be used in XML and HTML.
1554eceda581Smrg          (Escapes less-than, greater-than, and ampersand.)
1555a6844aabSmrg
1556ca08ab68Smrg   delete(chars)
1557eceda581Smrg          Deletes all occurrences of each of the characters in
1558eceda581Smrg          chars from the text. FIXME: This converter is not UTF-8
1559eceda581Smrg          aware yet.
1560a6844aabSmrg
1561ca08ab68Smrg   escape(chars)
1562eceda581Smrg          Escapes all occurrences of each of the characters in
1563eceda581Smrg          chars by prepending it by the first character in chars.
1564eceda581Smrg          FIXME: This converter is not UTF-8 aware yet.
1565a6844aabSmrg
1566ca08ab68Smrg   translate(from,to)
1567eceda581Smrg          Translates all occurrences of each of the characters in
1568eceda581Smrg          from by replacing them with their corresponding
1569eceda581Smrg          character in to. If to has fewer characters than from,
1570eceda581Smrg          it will be extended by repeating its last character.
1571eceda581Smrg          FIXME: This converter is not UTF-8 aware yet.
1572ca08ab68Smrg
1573eceda581Smrg   For example, the format "%{family|downcase|delete( )}\n" will
1574eceda581Smrg   expand to the values of the family element in pattern,
1575eceda581Smrg   lower-cased and with spaces removed.
15762c393a42Smrg
1577b09479dcSmrgSince
15782c393a42Smrg
1579b09479dcSmrg   version 2.9.0
1580eceda581Smrg     __________________________________________________________
1581ca08ab68Smrg
1582eceda581SmrgFcFontSet
1583ca08ab68Smrg
1584ca08ab68Smrg   Table of Contents
1585eceda581Smrg   FcFontSetCreate -- Create a font set
1586eceda581Smrg   FcFontSetDestroy -- Destroy a font set
1587eceda581Smrg   FcFontSetAdd -- Add to a font set
1588eceda581Smrg   FcFontSetList -- List fonts from a set of font sets
1589eceda581Smrg   FcFontSetMatch -- Return the best font from a set of font sets
1590eceda581Smrg   FcFontSetPrint -- Print a set of patterns to stdout
1591eceda581Smrg   FcFontSetSort -- Add to a font set
1592eceda581Smrg   FcFontSetSortDestroy -- DEPRECATED destroy a font set
1593ca08ab68Smrg
1594eceda581Smrg   An FcFontSet simply holds a list of patterns; these are used to
1595eceda581Smrg   return the results of listing available fonts.
1596a32e9e42Smrg
1597eceda581SmrgFcFontSetCreate
15982c393a42Smrg
15992c393a42SmrgName
16002c393a42Smrg
1601eceda581Smrg   FcFontSetCreate -- Create a font set
16022c393a42Smrg
16032c393a42SmrgSynopsis
16042c393a42Smrg
1605eceda581Smrg#include <fontconfig/fontconfig.h>
1606a6844aabSmrg
1607ca08ab68Smrg   FcFontSet * FcFontSetCreate(void);
16082c393a42Smrg
16092c393a42SmrgDescription
16102c393a42Smrg
1611ca08ab68Smrg   Creates an empty font set.
16122c393a42Smrg
1613eceda581SmrgFcFontSetDestroy
16142c393a42Smrg
16152c393a42SmrgName
16162c393a42Smrg
1617eceda581Smrg   FcFontSetDestroy -- Destroy a font set
16182c393a42Smrg
16192c393a42SmrgSynopsis
16202c393a42Smrg
1621eceda581Smrg#include <fontconfig/fontconfig.h>
1622a6844aabSmrg
1623ca08ab68Smrg   void FcFontSetDestroy(FcFontSet *s);
16242c393a42Smrg
16252c393a42SmrgDescription
16262c393a42Smrg
1627eceda581Smrg   Destroys a font set. Note that this destroys any referenced
1628eceda581Smrg   patterns as well.
16292c393a42Smrg
1630eceda581SmrgFcFontSetAdd
16312c393a42Smrg
16322c393a42SmrgName
16332c393a42Smrg
1634eceda581Smrg   FcFontSetAdd -- Add to a font set
16352c393a42Smrg
16362c393a42SmrgSynopsis
16372c393a42Smrg
1638eceda581Smrg#include <fontconfig/fontconfig.h>
1639a6844aabSmrg
1640ca08ab68Smrg   FcBool FcFontSetAdd(FcFontSet *s, FcPattern *font);
16412c393a42Smrg
16422c393a42SmrgDescription
16432c393a42Smrg
1644eceda581Smrg   Adds a pattern to a font set. Note that the pattern is not
1645eceda581Smrg   copied before being inserted into the set. Returns FcFalse if
1646eceda581Smrg   the pattern cannot be inserted into the set (due to allocation
1647eceda581Smrg   failure). Otherwise returns FcTrue.
16482c393a42Smrg
1649eceda581SmrgFcFontSetList
16502c393a42Smrg
16512c393a42SmrgName
16522c393a42Smrg
1653eceda581Smrg   FcFontSetList -- List fonts from a set of font sets
16542c393a42Smrg
16552c393a42SmrgSynopsis
16562c393a42Smrg
1657eceda581Smrg#include <fontconfig/fontconfig.h>
1658a6844aabSmrg
1659eceda581Smrg   FcFontSet * FcFontSetList(FcConfig *config, FcFontSet **sets,
1660eceda581Smrg   intnsets, FcPattern *pattern, FcObjectSet *object_set);
16612c393a42Smrg
16622c393a42SmrgDescription
16632c393a42Smrg
1664eceda581Smrg   Selects fonts matching pattern from sets, creates patterns from
1665eceda581Smrg   those fonts containing only the objects in object_set and
1666eceda581Smrg   returns the set of unique such patterns. If config is NULL, the
1667eceda581Smrg   default configuration is checked to be up to date, and used.
16682c393a42Smrg
1669eceda581SmrgFcFontSetMatch
16702c393a42Smrg
16712c393a42SmrgName
16722c393a42Smrg
1673eceda581Smrg   FcFontSetMatch -- Return the best font from a set of font sets
16742c393a42Smrg
16752c393a42SmrgSynopsis
16762c393a42Smrg
1677eceda581Smrg#include <fontconfig/fontconfig.h>
1678a32e9e42Smrg
1679eceda581Smrg   FcPattern * FcFontSetMatch(FcConfig *config, FcFontSet **sets,
1680eceda581Smrg   intnsets, FcPattern *pattern, FcResult *result);
16812c393a42Smrg
16822c393a42SmrgDescription
16832c393a42Smrg
1684eceda581Smrg   Finds the font in sets most closely matching pattern and
1685eceda581Smrg   returns the result of FcFontRenderPrepare for that font and the
1686eceda581Smrg   provided pattern. This function should be called only after
1687eceda581Smrg   FcConfigSubstitute and FcDefaultSubstitute have been called for
1688eceda581Smrg   pattern; otherwise the results will not be correct. If config
1689eceda581Smrg   is NULL, the current configuration is used. Returns NULL if an
1690eceda581Smrg   error occurs during this process.
16912c393a42Smrg
1692eceda581SmrgFcFontSetPrint
16932c393a42Smrg
16942c393a42SmrgName
16952c393a42Smrg
1696eceda581Smrg   FcFontSetPrint -- Print a set of patterns to stdout
16972c393a42Smrg
16982c393a42SmrgSynopsis
16992c393a42Smrg
1700eceda581Smrg#include <fontconfig/fontconfig.h>
1701a6844aabSmrg
1702ca08ab68Smrg   void FcFontSetPrint(FcFontSet *set);
17032c393a42Smrg
17042c393a42SmrgDescription
17052c393a42Smrg
1706eceda581Smrg   This function is useful for diagnosing font related issues,
1707eceda581Smrg   printing the complete contents of every pattern in set. The
1708eceda581Smrg   format of the output is designed to be of help to users and
1709eceda581Smrg   developers, and may change at any time.
17102c393a42Smrg
1711eceda581SmrgFcFontSetSort
17122c393a42Smrg
17132c393a42SmrgName
17142c393a42Smrg
1715eceda581Smrg   FcFontSetSort -- Add to a font set
17162c393a42Smrg
17172c393a42SmrgSynopsis
17182c393a42Smrg
1719eceda581Smrg#include <fontconfig/fontconfig.h>
17202c393a42Smrg
1721eceda581Smrg   FcFontSet * FcFontSetSort(FcConfig *config, FcFontSet **sets,
1722eceda581Smrg   intnsets, FcPattern *pattern, FcBool trim, FcCharSet **csp,
1723eceda581Smrg   FcResult *result);
17242c393a42Smrg
17252c393a42SmrgDescription
17262c393a42Smrg
1727eceda581Smrg   Returns the list of fonts from sets sorted by closeness to
1728eceda581Smrg   pattern. If trim is FcTrue, elements in the list which don't
1729eceda581Smrg   include Unicode coverage not provided by earlier elements in
1730eceda581Smrg   the list are elided. The union of Unicode coverage of all of
1731eceda581Smrg   the fonts is returned in csp, if csp is not NULL. This function
1732eceda581Smrg   should be called only after FcConfigSubstitute and
1733eceda581Smrg   FcDefaultSubstitute have been called for p; otherwise the
1734eceda581Smrg   results will not be correct.
17352c393a42Smrg
1736eceda581Smrg   The returned FcFontSet references FcPattern structures which
1737eceda581Smrg   may be shared by the return value from multiple FcFontSort
1738eceda581Smrg   calls, applications cannot modify these patterns. Instead, they
1739eceda581Smrg   should be passed, along with pattern to FcFontRenderPrepare
1740eceda581Smrg   which combines them into a complete pattern.
17412c393a42Smrg
1742ca08ab68Smrg   The FcFontSet returned by FcFontSetSort is destroyed by calling
1743ca08ab68Smrg   FcFontSetDestroy.
17442c393a42Smrg
1745eceda581SmrgFcFontSetSortDestroy
17462c393a42Smrg
17472c393a42SmrgName
17482c393a42Smrg
1749eceda581Smrg   FcFontSetSortDestroy -- DEPRECATED destroy a font set
17502c393a42Smrg
17512c393a42SmrgSynopsis
17522c393a42Smrg
1753eceda581Smrg#include <fontconfig/fontconfig.h>
1754a6844aabSmrg
1755a4e54154Smrg   void FcFontSetSortDestroy(FcFontSet *set);
17562c393a42Smrg
17572c393a42SmrgDescription
17582c393a42Smrg
1759eceda581Smrg   This function is DEPRECATED. FcFontSetSortDestroy destroys set
1760eceda581Smrg   by calling FcFontSetDestroy. Applications should use
1761eceda581Smrg   FcFontSetDestroy directly instead.
1762eceda581Smrg     __________________________________________________________
1763a32e9e42Smrg
1764eceda581SmrgFcObjectSet
1765ca08ab68Smrg
1766ca08ab68Smrg   Table of Contents
1767eceda581Smrg   FcObjectSetCreate -- Create an object set
1768eceda581Smrg   FcObjectSetAdd -- Add to an object set
1769eceda581Smrg   FcObjectSetDestroy -- Destroy an object set
1770eceda581Smrg   FcObjectSetBuild -- Build object set from args
1771ca08ab68Smrg
1772eceda581Smrg   An FcObjectSet holds a list of pattern property names; it is
1773eceda581Smrg   used to indicate which properties are to be returned in the
1774eceda581Smrg   patterns from FcFontList.
1775a32e9e42Smrg
1776eceda581SmrgFcObjectSetCreate
17772c393a42Smrg
17782c393a42SmrgName
17792c393a42Smrg
1780eceda581Smrg   FcObjectSetCreate -- Create an object set
17812c393a42Smrg
17822c393a42SmrgSynopsis
17832c393a42Smrg
1784eceda581Smrg#include <fontconfig/fontconfig.h>
1785a6844aabSmrg
1786ca08ab68Smrg   FcObjectSet * FcObjectSetCreate(void);
17872c393a42Smrg
17882c393a42SmrgDescription
17892c393a42Smrg
1790ca08ab68Smrg   Creates an empty set.
17912c393a42Smrg
1792eceda581SmrgFcObjectSetAdd
17932c393a42Smrg
17942c393a42SmrgName
17952c393a42Smrg
1796eceda581Smrg   FcObjectSetAdd -- Add to an object set
17972c393a42Smrg
17982c393a42SmrgSynopsis
17992c393a42Smrg
1800eceda581Smrg#include <fontconfig/fontconfig.h>
1801a6844aabSmrg
1802ca08ab68Smrg   FcBool FcObjectSetAdd(FcObjectSet *os, const char *object);
18032c393a42Smrg
18042c393a42SmrgDescription
18052c393a42Smrg
1806eceda581Smrg   Adds a property name to the set. Returns FcFalse if the
1807eceda581Smrg   property name cannot be inserted into the set (due to
1808eceda581Smrg   allocation failure). Otherwise returns FcTrue.
18092c393a42Smrg
1810eceda581SmrgFcObjectSetDestroy
18112c393a42Smrg
18122c393a42SmrgName
18132c393a42Smrg
1814eceda581Smrg   FcObjectSetDestroy -- Destroy an object set
18152c393a42Smrg
18162c393a42SmrgSynopsis
18172c393a42Smrg
1818eceda581Smrg#include <fontconfig/fontconfig.h>
1819a6844aabSmrg
1820ca08ab68Smrg   void FcObjectSetDestroy(FcObjectSet *os);
18212c393a42Smrg
18222c393a42SmrgDescription
18232c393a42Smrg
1824ca08ab68Smrg   Destroys an object set.
18252c393a42Smrg
1826eceda581SmrgFcObjectSetBuild
18272c393a42Smrg
18282c393a42SmrgName
18292c393a42Smrg
1830eceda581Smrg   FcObjectSetBuild, FcObjectSetVaBuild,
1831eceda581Smrg   FcObjectSetVapBuild -- Build object set from args
18322c393a42Smrg
18332c393a42SmrgSynopsis
18342c393a42Smrg
1835eceda581Smrg#include <fontconfig/fontconfig.h>
18362c393a42Smrg
1837ca08ab68Smrg   FcObjectSet * FcObjectSetBuild(const char *first, ...);
18382c393a42Smrg
1839eceda581Smrg   FcObjectSet * FcObjectSetVaBuild(const char *first, va_list
1840a32e9e42Smrg   va);
18412c393a42Smrg
1842eceda581Smrg   void FcObjectSetVapBuild(FcObjectSet *result, const char
1843eceda581Smrg   *first, va_list va);
18442c393a42Smrg
1845eceda581SmrgDescription
1846ca08ab68Smrg
1847eceda581Smrg   These build an object set from a null-terminated list of
1848eceda581Smrg   property names. FcObjectSetVapBuild is a macro version of
1849eceda581Smrg   FcObjectSetVaBuild which returns the result in the result
1850eceda581Smrg   variable directly.
1851eceda581Smrg     __________________________________________________________
1852a32e9e42Smrg
1853eceda581SmrgFreeType specific functions
1854ca08ab68Smrg
1855ca08ab68Smrg   Table of Contents
1856eceda581Smrg   FcFreeTypeCharIndex -- map Unicode to glyph id
1857eceda581Smrg   FcFreeTypeCharSet -- compute Unicode coverage
1858eceda581Smrg   FcFreeTypeCharSetAndSpacing -- compute Unicode coverage and
1859eceda581Smrg          spacing type
1860ca08ab68Smrg
1861eceda581Smrg   FcFreeTypeQuery -- compute pattern from font file (and index)
1862eceda581Smrg   FcFreeTypeQueryAll -- compute all patterns from font file (and
1863eceda581Smrg          index)
18642c393a42Smrg
1865eceda581Smrg   FcFreeTypeQueryFace -- compute pattern from FT_Face
18662c393a42Smrg
1867eceda581Smrg   While the fontconfig library doesn't insist that FreeType be
1868eceda581Smrg   used as the rasterization mechanism for fonts, it does provide
1869eceda581Smrg   some convenience functions.
1870a32e9e42Smrg
1871eceda581SmrgFcFreeTypeCharIndex
18722c393a42Smrg
18732c393a42SmrgName
18742c393a42Smrg
1875eceda581Smrg   FcFreeTypeCharIndex -- map Unicode to glyph id
18762c393a42Smrg
18772c393a42SmrgSynopsis
18782c393a42Smrg
1879eceda581Smrg#include <fontconfig.h>
1880eceda581Smrg#include <fcfreetype.h>
1881a6844aabSmrg
1882ca08ab68Smrg   FT_UInt FcFreeTypeCharIndex(FT_Face face, FcChar32 ucs4);
18832c393a42Smrg
18842c393a42SmrgDescription
18852c393a42Smrg
1886eceda581Smrg   Maps a Unicode char to a glyph index. This function uses
1887eceda581Smrg   information from several possible underlying encoding tables to
1888eceda581Smrg   work around broken fonts. As a result, this function isn't
1889eceda581Smrg   designed to be used in performance sensitive areas; results
1890eceda581Smrg   from this function are intended to be cached by higher level
1891eceda581Smrg   functions.
18922c393a42Smrg
1893eceda581SmrgFcFreeTypeCharSet
18942c393a42Smrg
18952c393a42SmrgName
18962c393a42Smrg
1897eceda581Smrg   FcFreeTypeCharSet -- compute Unicode coverage
18982c393a42Smrg
18992c393a42SmrgSynopsis
19002c393a42Smrg
1901eceda581Smrg#include <fontconfig.h>
1902eceda581Smrg#include <fcfreetype.h>
1903a6844aabSmrg
1904ca08ab68Smrg   FcCharSet * FcFreeTypeCharSet(FT_Face face, FcBlanks *blanks);
19052c393a42Smrg
19062c393a42SmrgDescription
19072c393a42Smrg
1908eceda581Smrg   Scans a FreeType face and returns the set of encoded Unicode
1909eceda581Smrg   chars. FcBlanks is deprecated, blanks is ignored and accepted
1910eceda581Smrg   only for compatibility with older code.
1911a32e9e42Smrg
1912eceda581SmrgFcFreeTypeCharSetAndSpacing
1913a32e9e42Smrg
1914a32e9e42SmrgName
1915a32e9e42Smrg
1916eceda581Smrg   FcFreeTypeCharSetAndSpacing -- compute Unicode coverage and
1917eceda581Smrg   spacing type
1918a32e9e42Smrg
1919a32e9e42SmrgSynopsis
1920a32e9e42Smrg
1921eceda581Smrg#include <fontconfig.h>
1922eceda581Smrg#include <fcfreetype.h>
1923a32e9e42Smrg
1924eceda581Smrg   FcCharSet * FcFreeTypeCharSetAndSpacing(FT_Face face, FcBlanks
1925eceda581Smrg   *blanks, int *spacing);
1926a32e9e42Smrg
1927a32e9e42SmrgDescription
1928a32e9e42Smrg
1929eceda581Smrg   Scans a FreeType face and returns the set of encoded Unicode
1930eceda581Smrg   chars. FcBlanks is deprecated, blanks is ignored and accepted
1931eceda581Smrg   only for compatibility with older code. spacing receives the
1932eceda581Smrg   computed spacing type of the font, one of FC_MONO for a font
1933eceda581Smrg   where all glyphs have the same width, FC_DUAL, where the font
1934eceda581Smrg   has glyphs in precisely two widths, one twice as wide as the
1935eceda581Smrg   other, or FC_PROPORTIONAL where the font has glyphs of many
1936eceda581Smrg   widths.
19372c393a42Smrg
1938eceda581SmrgFcFreeTypeQuery
19392c393a42Smrg
19402c393a42SmrgName
19412c393a42Smrg
1942eceda581Smrg   FcFreeTypeQuery -- compute pattern from font file (and index)
19432c393a42Smrg
19442c393a42SmrgSynopsis
19452c393a42Smrg
1946eceda581Smrg#include <fontconfig.h>
1947eceda581Smrg#include <fcfreetype.h>
1948a6844aabSmrg
1949eceda581Smrg   FcPattern * FcFreeTypeQuery(const FcChar8 *file, int id,
1950eceda581Smrg   FcBlanks *blanks, int *count);
19512c393a42Smrg
19522c393a42SmrgDescription
19532c393a42Smrg
1954eceda581Smrg   Constructs a pattern representing the 'id'th face in 'file'.
1955eceda581Smrg   The number of faces in 'file' is returned in 'count'. FcBlanks
1956eceda581Smrg   is deprecated, blanks is ignored and accepted only for
1957eceda581Smrg   compatibility with older code.
19582c393a42Smrg
1959eceda581SmrgFcFreeTypeQueryAll
19602c393a42Smrg
19612c393a42SmrgName
19622c393a42Smrg
1963eceda581Smrg   FcFreeTypeQueryAll -- compute all patterns from font file (and
1964eceda581Smrg   index)
19652c393a42Smrg
19662c393a42SmrgSynopsis
19672c393a42Smrg
1968eceda581Smrg#include <fontconfig.h>
1969eceda581Smrg#include <fcfreetype.h>
1970a32e9e42Smrg
1971eceda581Smrg   unsigned int FcFreeTypeQueryAll(const FcChar8 *file, int id,
1972eceda581Smrg   FcBlanks *blanks, int *count, FcFontSet *set);
19732c393a42Smrg
19742c393a42SmrgDescription
19752c393a42Smrg
1976eceda581Smrg   Constructs patterns found in 'file'. If id is -1, then all
1977eceda581Smrg   patterns found in 'file' are added to 'set'. Otherwise, this
1978eceda581Smrg   function works exactly like FcFreeTypeQuery(). The number of
1979eceda581Smrg   faces in 'file' is returned in 'count'. The number of patterns
1980eceda581Smrg   added to 'set' is returned. FcBlanks is deprecated, blanks is
1981eceda581Smrg   ignored and accepted only for compatibility with older code.
1982a32e9e42Smrg
1983a32e9e42SmrgSince
1984a32e9e42Smrg
1985a32e9e42Smrg   version 2.12.91
19862c393a42Smrg
1987eceda581SmrgFcFreeTypeQueryFace
19882c393a42Smrg
19892c393a42SmrgName
19902c393a42Smrg
1991eceda581Smrg   FcFreeTypeQueryFace -- compute pattern from FT_Face
19922c393a42Smrg
19932c393a42SmrgSynopsis
19942c393a42Smrg
1995eceda581Smrg#include <fontconfig.h>
1996eceda581Smrg#include <fcfreetype.h>
1997a32e9e42Smrg
1998eceda581Smrg   FcPattern * FcFreeTypeQueryFace(const FT_Face face, const
1999eceda581Smrg   FcChar8 *file, int id, FcBlanks *blanks);
20002c393a42Smrg
20012c393a42SmrgDescription
20022c393a42Smrg
2003eceda581Smrg   Constructs a pattern representing 'face'. 'file' and 'id' are
2004eceda581Smrg   used solely as data for pattern elements (FC_FILE, FC_INDEX and
2005eceda581Smrg   sometimes FC_FAMILY). FcBlanks is deprecated, blanks is ignored
2006eceda581Smrg   and accepted only for compatibility with older code.
2007eceda581Smrg     __________________________________________________________
2008ca08ab68Smrg
2009eceda581SmrgFcValue
2010ca08ab68Smrg
2011ca08ab68Smrg   Table of Contents
2012eceda581Smrg   FcValueDestroy -- Free a value
2013eceda581Smrg   FcValueSave -- Copy a value
2014eceda581Smrg   FcValuePrint -- Print a value to stdout
2015eceda581Smrg   FcValueEqual -- Test two values for equality
2016ca08ab68Smrg
2017eceda581Smrg   FcValue is a structure containing a type tag and a union of all
2018eceda581Smrg   possible datatypes. The tag is an enum of type FcType and is
2019eceda581Smrg   intended to provide a measure of run-time typechecking,
2020eceda581Smrg   although that depends on careful programming.
2021a32e9e42Smrg
2022eceda581SmrgFcValueDestroy
20232c393a42Smrg
20242c393a42SmrgName
20252c393a42Smrg
2026eceda581Smrg   FcValueDestroy -- Free a value
20272c393a42Smrg
20282c393a42SmrgSynopsis
20292c393a42Smrg
2030eceda581Smrg#include <fontconfig/fontconfig.h>
2031a6844aabSmrg
2032ca08ab68Smrg   void FcValueDestroy(FcValue v);
20332c393a42Smrg
20342c393a42SmrgDescription
20352c393a42Smrg
2036ca08ab68Smrg   Frees any memory referenced by v. Values of type FcTypeString,
2037eceda581Smrg   FcTypeMatrix and FcTypeCharSet reference memory, the other
2038eceda581Smrg   types do not.
20392c393a42Smrg
2040eceda581SmrgFcValueSave
20412c393a42Smrg
20422c393a42SmrgName
20432c393a42Smrg
2044eceda581Smrg   FcValueSave -- Copy a value
20452c393a42Smrg
20462c393a42SmrgSynopsis
20472c393a42Smrg
2048eceda581Smrg#include <fontconfig/fontconfig.h>
2049a6844aabSmrg
2050ca08ab68Smrg   FcValue FcValueSave(FcValue v);
20512c393a42Smrg
20522c393a42SmrgDescription
20532c393a42Smrg
2054eceda581Smrg   Returns a copy of v duplicating any object referenced by it so
2055eceda581Smrg   that v may be safely destroyed without harming the new value.
20562c393a42Smrg
2057eceda581SmrgFcValuePrint
20582c393a42Smrg
20592c393a42SmrgName
20602c393a42Smrg
2061eceda581Smrg   FcValuePrint -- Print a value to stdout
20622c393a42Smrg
20632c393a42SmrgSynopsis
20642c393a42Smrg
2065eceda581Smrg#include <fontconfig/fontconfig.h>
2066a6844aabSmrg
2067ca08ab68Smrg   void FcValuePrint(FcValue v);
20682c393a42Smrg
20692c393a42SmrgDescription
20702c393a42Smrg
2071eceda581Smrg   Prints a human-readable representation of v to stdout. The
2072eceda581Smrg   format should not be considered part of the library
2073eceda581Smrg   specification as it may change in the future.
20742c393a42Smrg
2075eceda581SmrgFcValueEqual
20762c393a42Smrg
20772c393a42SmrgName
20782c393a42Smrg
2079eceda581Smrg   FcValueEqual -- Test two values for equality
20802c393a42Smrg
20812c393a42SmrgSynopsis
20822c393a42Smrg
2083eceda581Smrg#include <fontconfig/fontconfig.h>
2084a6844aabSmrg
2085ca08ab68Smrg   FcBool FcValueEqual(FcValue v_a, FcValue v_b);
20862c393a42Smrg
20872c393a42SmrgDescription
20882c393a42Smrg
2089eceda581Smrg   Compares two values. Integers and Doubles are compared as
2090eceda581Smrg   numbers; otherwise the two values have to be the same type to
2091eceda581Smrg   be considered equal. Strings are compared ignoring case.
2092eceda581Smrg     __________________________________________________________
2093a32e9e42Smrg
2094eceda581SmrgFcCharSet
2095ca08ab68Smrg
2096ca08ab68Smrg   Table of Contents
2097eceda581Smrg   FcCharSetCreate -- Create an empty character set
2098eceda581Smrg   FcCharSetDestroy -- Destroy a character set
2099eceda581Smrg   FcCharSetAddChar -- Add a character to a charset
2100eceda581Smrg   FcCharSetDelChar -- Add a character to a charset
2101eceda581Smrg   FcCharSetCopy -- Copy a charset
2102eceda581Smrg   FcCharSetEqual -- Compare two charsets
2103eceda581Smrg   FcCharSetIntersect -- Intersect charsets
2104eceda581Smrg   FcCharSetUnion -- Add charsets
2105eceda581Smrg   FcCharSetSubtract -- Subtract charsets
2106eceda581Smrg   FcCharSetMerge -- Merge charsets
2107eceda581Smrg   FcCharSetHasChar -- Check a charset for a char
2108eceda581Smrg   FcCharSetCount -- Count entries in a charset
2109eceda581Smrg   FcCharSetIntersectCount -- Intersect and count charsets
2110eceda581Smrg   FcCharSetSubtractCount -- Subtract and count charsets
2111eceda581Smrg   FcCharSetIsSubset -- Test for charset inclusion
2112eceda581Smrg   FcCharSetFirstPage -- Start enumerating charset contents
2113eceda581Smrg   FcCharSetNextPage -- Continue enumerating charset contents
2114eceda581Smrg   FcCharSetCoverage -- DEPRECATED return coverage for a Unicode
2115eceda581Smrg          page
2116ca08ab68Smrg
2117eceda581Smrg   FcCharSetNew -- DEPRECATED alias for FcCharSetCreate
2118a32e9e42Smrg
2119eceda581Smrg   An FcCharSet is a boolean array indicating a set of Unicode
2120eceda581Smrg   chars. Those associated with a font are marked constant and
2121eceda581Smrg   cannot be edited. FcCharSets may be reference counted
2122eceda581Smrg   internally to reduce memory consumption; this may be visible to
2123eceda581Smrg   applications as the result of FcCharSetCopy may return it's
2124eceda581Smrg   argument, and that CharSet may remain unmodifiable.
2125a32e9e42Smrg
2126eceda581SmrgFcCharSetCreate
2127ca08ab68Smrg
2128ca08ab68SmrgName
2129ca08ab68Smrg
2130eceda581Smrg   FcCharSetCreate -- Create an empty character set
2131ca08ab68Smrg
2132ca08ab68SmrgSynopsis
2133ca08ab68Smrg
2134eceda581Smrg#include <fontconfig/fontconfig.h>
2135ca08ab68Smrg
2136ca08ab68Smrg   FcCharSet * FcCharSetCreate(void);
2137ca08ab68Smrg
2138ca08ab68SmrgDescription
2139ca08ab68Smrg
2140eceda581Smrg   FcCharSetCreate allocates and initializes a new empty character
2141eceda581Smrg   set object.
2142ca08ab68Smrg
2143eceda581SmrgFcCharSetDestroy
21442c393a42Smrg
21452c393a42SmrgName
21462c393a42Smrg
2147eceda581Smrg   FcCharSetDestroy -- Destroy a character set
21482c393a42Smrg
21492c393a42SmrgSynopsis
21502c393a42Smrg
2151eceda581Smrg#include <fontconfig/fontconfig.h>
2152a6844aabSmrg
2153ca08ab68Smrg   void FcCharSetDestroy(FcCharSet *fcs);
21542c393a42Smrg
21552c393a42SmrgDescription
21562c393a42Smrg
2157eceda581Smrg   FcCharSetDestroy decrements the reference count fcs. If the
2158eceda581Smrg   reference count becomes zero, all memory referenced is freed.
21592c393a42Smrg
2160eceda581SmrgFcCharSetAddChar
21612c393a42Smrg
21622c393a42SmrgName
21632c393a42Smrg
2164eceda581Smrg   FcCharSetAddChar -- Add a character to a charset
21652c393a42Smrg
21662c393a42SmrgSynopsis
21672c393a42Smrg
2168eceda581Smrg#include <fontconfig/fontconfig.h>
2169a6844aabSmrg
2170ca08ab68Smrg   FcBool FcCharSetAddChar(FcCharSet *fcs, FcChar32 ucs4);
21712c393a42Smrg
21722c393a42SmrgDescription
21732c393a42Smrg
2174eceda581Smrg   FcCharSetAddChar adds a single Unicode char to the set,
2175eceda581Smrg   returning FcFalse on failure, either as a result of a constant
2176eceda581Smrg   set or from running out of memory.
21772c393a42Smrg
2178eceda581SmrgFcCharSetDelChar
21792c393a42Smrg
21802c393a42SmrgName
21812c393a42Smrg
2182eceda581Smrg   FcCharSetDelChar -- Add a character to a charset
21832c393a42Smrg
21842c393a42SmrgSynopsis
21852c393a42Smrg
2186eceda581Smrg#include <fontconfig/fontconfig.h>
2187a6844aabSmrg
2188ca08ab68Smrg   FcBool FcCharSetDelChar(FcCharSet *fcs, FcChar32 ucs4);
21892c393a42Smrg
21902c393a42SmrgDescription
21912c393a42Smrg
2192eceda581Smrg   FcCharSetDelChar deletes a single Unicode char from the set,
2193eceda581Smrg   returning FcFalse on failure, either as a result of a constant
2194eceda581Smrg   set or from running out of memory.
21952c393a42Smrg
2196b09479dcSmrgSince
21972c393a42Smrg
2198b09479dcSmrg   version 2.9.0
21992c393a42Smrg
2200eceda581SmrgFcCharSetCopy
22012c393a42Smrg
22022c393a42SmrgName
22032c393a42Smrg
2204eceda581Smrg   FcCharSetCopy -- Copy a charset
22052c393a42Smrg
22062c393a42SmrgSynopsis
22072c393a42Smrg
2208eceda581Smrg#include <fontconfig/fontconfig.h>
2209a6844aabSmrg
2210ca08ab68Smrg   FcCharSet * FcCharSetCopy(FcCharSet *src);
22112c393a42Smrg
22122c393a42SmrgDescription
22132c393a42Smrg
2214eceda581Smrg   Makes a copy of src; note that this may not actually do
2215eceda581Smrg   anything more than increment the reference count on src.
22162c393a42Smrg
2217eceda581SmrgFcCharSetEqual
22182c393a42Smrg
22192c393a42SmrgName
22202c393a42Smrg
2221eceda581Smrg   FcCharSetEqual -- Compare two charsets
22222c393a42Smrg
22232c393a42SmrgSynopsis
22242c393a42Smrg
2225eceda581Smrg#include <fontconfig/fontconfig.h>
2226a6844aabSmrg
2227ca08ab68Smrg   FcBool FcCharSetEqual(const FcCharSet *a, const FcCharSet *b);
22282c393a42Smrg
22292c393a42SmrgDescription
22302c393a42Smrg
2231ca08ab68Smrg   Returns whether a and b contain the same set of Unicode chars.
22322c393a42Smrg
2233eceda581SmrgFcCharSetIntersect
22342c393a42Smrg
22352c393a42SmrgName
22362c393a42Smrg
2237eceda581Smrg   FcCharSetIntersect -- Intersect charsets
22382c393a42Smrg
22392c393a42SmrgSynopsis
22402c393a42Smrg
2241eceda581Smrg#include <fontconfig/fontconfig.h>
22422c393a42Smrg
2243eceda581Smrg   FcCharSet * FcCharSetIntersect(const FcCharSet *a, const
2244eceda581Smrg   FcCharSet *b);
22452c393a42Smrg
22462c393a42SmrgDescription
22472c393a42Smrg
2248ca08ab68Smrg   Returns a set including only those chars found in both a and b.
22492c393a42Smrg
2250eceda581SmrgFcCharSetUnion
22512c393a42Smrg
22522c393a42SmrgName
22532c393a42Smrg
2254eceda581Smrg   FcCharSetUnion -- Add charsets
22552c393a42Smrg
22562c393a42SmrgSynopsis
22572c393a42Smrg
2258eceda581Smrg#include <fontconfig/fontconfig.h>
2259a6844aabSmrg
2260eceda581Smrg   FcCharSet * FcCharSetUnion(const FcCharSet *a, const FcCharSet
2261eceda581Smrg   *b);
22622c393a42Smrg
22632c393a42SmrgDescription
22642c393a42Smrg
2265eceda581Smrg   Returns a set including only those chars found in either a or
2266eceda581Smrg   b.
22672c393a42Smrg
2268eceda581SmrgFcCharSetSubtract
22692c393a42Smrg
22702c393a42SmrgName
22712c393a42Smrg
2272eceda581Smrg   FcCharSetSubtract -- Subtract charsets
22732c393a42Smrg
22742c393a42SmrgSynopsis
22752c393a42Smrg
2276eceda581Smrg#include <fontconfig/fontconfig.h>
2277a6844aabSmrg
2278eceda581Smrg   FcCharSet * FcCharSetSubtract(const FcCharSet *a, const
2279eceda581Smrg   FcCharSet *b);
22802c393a42Smrg
22812c393a42SmrgDescription
22822c393a42Smrg
2283ca08ab68Smrg   Returns a set including only those chars found in a but not b.
22842c393a42Smrg
2285eceda581SmrgFcCharSetMerge
2286a6844aabSmrg
2287a6844aabSmrgName
2288a6844aabSmrg
2289eceda581Smrg   FcCharSetMerge -- Merge charsets
2290a6844aabSmrg
2291a6844aabSmrgSynopsis
2292a6844aabSmrg
2293eceda581Smrg#include <fontconfig/fontconfig.h>
2294a6844aabSmrg
2295eceda581Smrg   FcBool FcCharSetMerge(FcCharSet *a, const FcCharSet *b, FcBool
2296eceda581Smrg   *changed);
2297a6844aabSmrg
2298a6844aabSmrgDescription
2299a6844aabSmrg
2300eceda581Smrg   Adds all chars in b to a. In other words, this is an in-place
2301eceda581Smrg   version of FcCharSetUnion. If changed is not NULL, then it
2302eceda581Smrg   returns whether any new chars from b were added to a. Returns
2303eceda581Smrg   FcFalse on failure, either when a is a constant set or from
2304eceda581Smrg   running out of memory.
2305a6844aabSmrg
2306eceda581SmrgFcCharSetHasChar
23072c393a42Smrg
23082c393a42SmrgName
23092c393a42Smrg
2310eceda581Smrg   FcCharSetHasChar -- Check a charset for a char
23112c393a42Smrg
23122c393a42SmrgSynopsis
23132c393a42Smrg
2314eceda581Smrg#include <fontconfig/fontconfig.h>
2315a6844aabSmrg
2316ca08ab68Smrg   FcBool FcCharSetHasChar(const FcCharSet *fcs, FcChar32 ucs4);
23172c393a42Smrg
23182c393a42SmrgDescription
23192c393a42Smrg
2320ca08ab68Smrg   Returns whether fcs contains the char ucs4.
23212c393a42Smrg
2322eceda581SmrgFcCharSetCount
23232c393a42Smrg
23242c393a42SmrgName
23252c393a42Smrg
2326eceda581Smrg   FcCharSetCount -- Count entries in a charset
23272c393a42Smrg
23282c393a42SmrgSynopsis
23292c393a42Smrg
2330eceda581Smrg#include <fontconfig/fontconfig.h>
2331a6844aabSmrg
2332ca08ab68Smrg   FcChar32 FcCharSetCount(const FcCharSet *a);
23332c393a42Smrg
23342c393a42SmrgDescription
23352c393a42Smrg
2336ca08ab68Smrg   Returns the total number of Unicode chars in a.
23372c393a42Smrg
2338eceda581SmrgFcCharSetIntersectCount
23392c393a42Smrg
23402c393a42SmrgName
23412c393a42Smrg
2342eceda581Smrg   FcCharSetIntersectCount -- Intersect and count charsets
23432c393a42Smrg
23442c393a42SmrgSynopsis
23452c393a42Smrg
2346eceda581Smrg#include <fontconfig/fontconfig.h>
2347a32e9e42Smrg
2348eceda581Smrg   FcChar32 FcCharSetIntersectCount(const FcCharSet *a, const
2349eceda581Smrg   FcCharSet *b);
23502c393a42Smrg
23512c393a42SmrgDescription
23522c393a42Smrg
2353ca08ab68Smrg   Returns the number of chars that are in both a and b.
23542c393a42Smrg
2355eceda581SmrgFcCharSetSubtractCount
23562c393a42Smrg
23572c393a42SmrgName
23582c393a42Smrg
2359eceda581Smrg   FcCharSetSubtractCount -- Subtract and count charsets
23602c393a42Smrg
23612c393a42SmrgSynopsis
23622c393a42Smrg
2363eceda581Smrg#include <fontconfig/fontconfig.h>
2364a32e9e42Smrg
2365eceda581Smrg   FcChar32 FcCharSetSubtractCount(const FcCharSet *a, const
2366eceda581Smrg   FcCharSet *b);
23672c393a42Smrg
23682c393a42SmrgDescription
23692c393a42Smrg
2370ca08ab68Smrg   Returns the number of chars that are in a but not in b.
23712c393a42Smrg
2372eceda581SmrgFcCharSetIsSubset
23732c393a42Smrg
23742c393a42SmrgName
23752c393a42Smrg
2376eceda581Smrg   FcCharSetIsSubset -- Test for charset inclusion
23772c393a42Smrg
23782c393a42SmrgSynopsis
23792c393a42Smrg
2380eceda581Smrg#include <fontconfig/fontconfig.h>
2381a32e9e42Smrg
2382eceda581Smrg   FcBool FcCharSetIsSubset(const FcCharSet *a, const FcCharSet
2383eceda581Smrg   *b);
23842c393a42Smrg
23852c393a42SmrgDescription
23862c393a42Smrg
2387ca08ab68Smrg   Returns whether a is a subset of b.
23882c393a42Smrg
2389eceda581SmrgFcCharSetFirstPage
23902c393a42Smrg
23912c393a42SmrgName
23922c393a42Smrg
2393eceda581Smrg   FcCharSetFirstPage -- Start enumerating charset contents
23942c393a42Smrg
23952c393a42SmrgSynopsis
23962c393a42Smrg
2397eceda581Smrg#include <fontconfig/fontconfig.h>
2398a6844aabSmrg
2399ca08ab68Smrg   FcChar32 FcCharSetFirstPage(const FcCharSet *a,
2400ca08ab68Smrg   FcChar32[FC_CHARSET_MAP_SIZE] map, FcChar32 *next);
24012c393a42Smrg
24022c393a42SmrgDescription
24032c393a42Smrg
2404eceda581Smrg   Builds an array of bits in map marking the first page of
2405eceda581Smrg   Unicode coverage of a. *next is set to contains the base code
2406eceda581Smrg   point for the next page in a. Returns the base code point for
2407eceda581Smrg   the page, or FC_CHARSET_DONE if a contains no pages. As an
2408eceda581Smrg   example, if FcCharSetFirstPage returns 0x300 and fills map with
2409eceda581Smrg0xffffffff 0xffffffff 0x01000008 0x44300002 0xffffd7f0 0xfffffffb 0xffff
2410eceda581Smrg7fff 0xffff0003
24116fc018e4Smrg
2412eceda581Smrg   Then the page contains code points 0x300 through 0x33f (the
2413eceda581Smrg   first 64 code points on the page) because map[0] and map[1]
2414eceda581Smrg   both have all their bits set. It also contains code points
2415eceda581Smrg   0x343 (0x300 + 32*2 + (4-1)) and 0x35e (0x300 + 32*2 + (31-1))
2416eceda581Smrg   because map[2] has the 4th and 31st bits set. The code points
2417eceda581Smrg   represented by map[3] and later are left as an exercise for the
2418eceda581Smrg   reader ;).
24192c393a42Smrg
2420eceda581SmrgFcCharSetNextPage
24212c393a42Smrg
24222c393a42SmrgName
24232c393a42Smrg
2424eceda581Smrg   FcCharSetNextPage -- Continue enumerating charset contents
24252c393a42Smrg
24262c393a42SmrgSynopsis
24272c393a42Smrg
2428eceda581Smrg#include <fontconfig/fontconfig.h>
2429a6844aabSmrg
2430ca08ab68Smrg   FcChar32 FcCharSetNextPage(const FcCharSet *a,
2431ca08ab68Smrg   FcChar32[FC_CHARSET_MAP_SIZE] map, FcChar32 *next);
24322c393a42Smrg
24332c393a42SmrgDescription
24342c393a42Smrg
2435eceda581Smrg   Builds an array of bits in map marking the Unicode coverage of
2436eceda581Smrg   a for page containing *next (see the FcCharSetFirstPage
2437eceda581Smrg   description for details). *next is set to contains the base
2438eceda581Smrg   code point for the next page in a. Returns the base of code
2439eceda581Smrg   point for the page, or FC_CHARSET_DONE if a does not contain
2440eceda581Smrg   *next.
24412c393a42Smrg
2442eceda581SmrgFcCharSetCoverage
24432c393a42Smrg
24442c393a42SmrgName
24452c393a42Smrg
2446eceda581Smrg   FcCharSetCoverage -- DEPRECATED return coverage for a Unicode
2447eceda581Smrg   page
24482c393a42Smrg
24492c393a42SmrgSynopsis
24502c393a42Smrg
2451eceda581Smrg#include <fontconfig/fontconfig.h>
2452a6844aabSmrg
2453ca08ab68Smrg   FcChar32 FcCharSetCoverage(const FcCharSet *a, FcChar32page,
2454ca08ab68Smrg   FcChar32[8]result);
24552c393a42Smrg
24562c393a42SmrgDescription
24572c393a42Smrg
2458eceda581Smrg   DEPRECATED This function returns a bitmask in result which
2459eceda581Smrg   indicates which code points in page are included in a.
2460eceda581Smrg   FcCharSetCoverage returns the next page in the charset which
2461eceda581Smrg   has any coverage.
24622c393a42Smrg
2463eceda581SmrgFcCharSetNew
24642c393a42Smrg
24652c393a42SmrgName
24662c393a42Smrg
2467eceda581Smrg   FcCharSetNew -- DEPRECATED alias for FcCharSetCreate
24682c393a42Smrg
24692c393a42SmrgSynopsis
24702c393a42Smrg
2471eceda581Smrg#include <fontconfig/fontconfig.h>
2472a6844aabSmrg
2473ca08ab68Smrg   FcCharSet * FcCharSetNew(void);
24742c393a42Smrg
24752c393a42SmrgDescription
24762c393a42Smrg
2477ca08ab68Smrg   FcCharSetNew is a DEPRECATED alias for FcCharSetCreate.
2478eceda581Smrg     __________________________________________________________
24792c393a42Smrg
2480eceda581SmrgFcLangSet
2481ca08ab68Smrg
2482ca08ab68Smrg   Table of Contents
2483eceda581Smrg   FcLangSetCreate -- create a langset object
2484eceda581Smrg   FcLangSetDestroy -- destroy a langset object
2485eceda581Smrg   FcLangSetCopy -- copy a langset object
2486eceda581Smrg   FcLangSetAdd -- add a language to a langset
2487eceda581Smrg   FcLangSetDel -- delete a language from a langset
2488eceda581Smrg   FcLangSetUnion -- Add langsets
2489eceda581Smrg   FcLangSetSubtract -- Subtract langsets
2490eceda581Smrg   FcLangSetCompare -- compare language sets
2491eceda581Smrg   FcLangSetContains -- check langset subset relation
2492eceda581Smrg   FcLangSetEqual -- test for matching langsets
2493eceda581Smrg   FcLangSetHash -- return a hash value for a langset
2494eceda581Smrg   FcLangSetHasLang -- test langset for language support
2495eceda581Smrg   FcGetDefaultLangs -- Get the default languages list
2496eceda581Smrg   FcLangSetGetLangs -- get the list of languages in the langset
2497eceda581Smrg   FcGetLangs -- Get list of languages
2498eceda581Smrg   FcLangNormalize -- Normalize the language string
2499eceda581Smrg   FcLangGetCharSet -- Get character map for a language
2500ca08ab68Smrg
2501eceda581Smrg   An FcLangSet is a set of language names (each of which include
2502eceda581Smrg   language and an optional territory). They are used when
2503eceda581Smrg   selecting fonts to indicate which languages the fonts need to
2504eceda581Smrg   support. Each font is marked, using language orthography
2505eceda581Smrg   information built into fontconfig, with the set of supported
2506eceda581Smrg   languages.
2507a32e9e42Smrg
2508eceda581SmrgFcLangSetCreate
2509ca08ab68Smrg
2510ca08ab68SmrgName
2511ca08ab68Smrg
2512eceda581Smrg   FcLangSetCreate -- create a langset object
2513ca08ab68Smrg
2514ca08ab68SmrgSynopsis
2515ca08ab68Smrg
2516eceda581Smrg#include <fontconfig/fontconfig.h>
2517ca08ab68Smrg
2518ca08ab68Smrg   FcLangSet * FcLangSetCreate(void);
2519ca08ab68Smrg
2520ca08ab68SmrgDescription
2521ca08ab68Smrg
2522ca08ab68Smrg   FcLangSetCreate creates a new FcLangSet object.
2523ca08ab68Smrg
2524eceda581SmrgFcLangSetDestroy
2525ca08ab68Smrg
2526ca08ab68SmrgName
2527ca08ab68Smrg
2528eceda581Smrg   FcLangSetDestroy -- destroy a langset object
2529ca08ab68Smrg
2530ca08ab68SmrgSynopsis
2531ca08ab68Smrg
2532eceda581Smrg#include <fontconfig/fontconfig.h>
2533ca08ab68Smrg
2534ca08ab68Smrg   void FcLangSetDestroy(FcLangSet *ls);
2535ca08ab68Smrg
2536ca08ab68SmrgDescription
2537ca08ab68Smrg
2538eceda581Smrg   FcLangSetDestroy destroys a FcLangSet object, freeing all
2539eceda581Smrg   memory associated with it.
2540ca08ab68Smrg
2541eceda581SmrgFcLangSetCopy
2542a6844aabSmrg
2543ca08ab68SmrgName
2544ca08ab68Smrg
2545eceda581Smrg   FcLangSetCopy -- copy a langset object
2546ca08ab68Smrg
2547ca08ab68SmrgSynopsis
2548ca08ab68Smrg
2549eceda581Smrg#include <fontconfig/fontconfig.h>
2550ca08ab68Smrg
2551ca08ab68Smrg   FcLangSet * FcLangSetCopy(const FcLangSet *ls);
2552ca08ab68Smrg
2553ca08ab68SmrgDescription
25542c393a42Smrg
2555eceda581Smrg   FcLangSetCopy creates a new FcLangSet object and populates it
2556eceda581Smrg   with the contents of ls.
25572c393a42Smrg
2558eceda581SmrgFcLangSetAdd
25592c393a42Smrg
25602c393a42SmrgName
25612c393a42Smrg
2562eceda581Smrg   FcLangSetAdd -- add a language to a langset
25632c393a42Smrg
25642c393a42SmrgSynopsis
25652c393a42Smrg
2566eceda581Smrg#include <fontconfig/fontconfig.h>
2567a6844aabSmrg
2568ca08ab68Smrg   FcBool FcLangSetAdd(FcLangSet *ls, const FcChar8 *lang);
25692c393a42Smrg
25702c393a42SmrgDescription
25712c393a42Smrg
2572eceda581Smrg   lang is added to ls. lang should be of the form Ll-Tt where Ll
2573eceda581Smrg   is a two or three letter language from ISO 639 and Tt is a
2574eceda581Smrg   territory from ISO 3166.
25752c393a42Smrg
2576eceda581SmrgFcLangSetDel
25772c393a42Smrg
25782c393a42SmrgName
25792c393a42Smrg
2580eceda581Smrg   FcLangSetDel -- delete a language from a langset
25812c393a42Smrg
25822c393a42SmrgSynopsis
25832c393a42Smrg
2584eceda581Smrg#include <fontconfig/fontconfig.h>
2585a6844aabSmrg
2586ca08ab68Smrg   FcBool FcLangSetDel(FcLangSet *ls, const FcChar8 *lang);
25872c393a42Smrg
25882c393a42SmrgDescription
25892c393a42Smrg
2590eceda581Smrg   lang is removed from ls. lang should be of the form Ll-Tt where
2591eceda581Smrg   Ll is a two or three letter language from ISO 639 and Tt is a
2592eceda581Smrg   territory from ISO 3166.
25932c393a42Smrg
2594b09479dcSmrgSince
25952c393a42Smrg
2596b09479dcSmrg   version 2.9.0
25972c393a42Smrg
2598eceda581SmrgFcLangSetUnion
25992c393a42Smrg
26002c393a42SmrgName
26012c393a42Smrg
2602eceda581Smrg   FcLangSetUnion -- Add langsets
26032c393a42Smrg
26042c393a42SmrgSynopsis
26052c393a42Smrg
2606eceda581Smrg#include <fontconfig/fontconfig.h>
26072c393a42Smrg
2608eceda581Smrg   FcLangSet * FcLangSetUnion(const FcLangSet *ls_a, const
2609eceda581Smrg   FcLangSet *ls_b);
26102c393a42Smrg
26112c393a42SmrgDescription
26122c393a42Smrg
2613eceda581Smrg   Returns a set including only those languages found in either
2614eceda581Smrg   ls_a or ls_b.
26152c393a42Smrg
2616b09479dcSmrgSince
26172c393a42Smrg
2618b09479dcSmrg   version 2.9.0
26192c393a42Smrg
2620eceda581SmrgFcLangSetSubtract
26212c393a42Smrg
26222c393a42SmrgName
26232c393a42Smrg
2624eceda581Smrg   FcLangSetSubtract -- Subtract langsets
26252c393a42Smrg
26262c393a42SmrgSynopsis
26272c393a42Smrg
2628eceda581Smrg#include <fontconfig/fontconfig.h>
2629a6844aabSmrg
2630eceda581Smrg   FcLangSet * FcLangSetSubtract(const FcLangSet *ls_a, const
2631eceda581Smrg   FcLangSet *ls_b);
26322c393a42Smrg
26332c393a42SmrgDescription
26342c393a42Smrg
2635eceda581Smrg   Returns a set including only those languages found in ls_a but
2636eceda581Smrg   not in ls_b.
26372c393a42Smrg
2638b09479dcSmrgSince
26392c393a42Smrg
2640b09479dcSmrg   version 2.9.0
26412c393a42Smrg
2642eceda581SmrgFcLangSetCompare
26432c393a42Smrg
26442c393a42SmrgName
26452c393a42Smrg
2646eceda581Smrg   FcLangSetCompare -- compare language sets
26472c393a42Smrg
26482c393a42SmrgSynopsis
26492c393a42Smrg
2650eceda581Smrg#include <fontconfig/fontconfig.h>
2651a32e9e42Smrg
2652eceda581Smrg   FcLangResult FcLangSetCompare(const FcLangSet *ls_a, const
2653eceda581Smrg   FcLangSet *ls_b);
26542c393a42Smrg
26552c393a42SmrgDescription
26562c393a42Smrg
2657eceda581Smrg   FcLangSetCompare compares language coverage for ls_a and ls_b.
2658eceda581Smrg   If they share any language and territory pair, this function
2659eceda581Smrg   returns FcLangEqual. If they share a language but differ in
2660eceda581Smrg   which territory that language is for, this function returns
2661eceda581Smrg   FcLangDifferentTerritory. If they share no languages in common,
2662eceda581Smrg   this function returns FcLangDifferentLang.
26632c393a42Smrg
2664eceda581SmrgFcLangSetContains
26652c393a42Smrg
26662c393a42SmrgName
26672c393a42Smrg
2668eceda581Smrg   FcLangSetContains -- check langset subset relation
26692c393a42Smrg
26702c393a42SmrgSynopsis
26712c393a42Smrg
2672eceda581Smrg#include <fontconfig/fontconfig.h>
2673a32e9e42Smrg
2674eceda581Smrg   FcBool FcLangSetContains(const FcLangSet *ls_a, const FcLangSet
2675eceda581Smrg   *ls_b);
26762c393a42Smrg
26772c393a42SmrgDescription
26782c393a42Smrg
2679eceda581Smrg   FcLangSetContains returns FcTrue if ls_a contains every
2680eceda581Smrg   language in ls_b. ls_a will 'contain' a language from ls_b if
2681eceda581Smrg   ls_a has exactly the language, or either the language or ls_a
2682eceda581Smrg   has no territory.
26832c393a42Smrg
2684eceda581SmrgFcLangSetEqual
26852c393a42Smrg
26862c393a42SmrgName
26872c393a42Smrg
2688eceda581Smrg   FcLangSetEqual -- test for matching langsets
26892c393a42Smrg
26902c393a42SmrgSynopsis
26912c393a42Smrg
2692eceda581Smrg#include <fontconfig/fontconfig.h>
26932c393a42Smrg
2694eceda581Smrg   FcBool FcLangSetEqual(const FcLangSet *ls_a, const FcLangSet
2695eceda581Smrg   *ls_b);
26962c393a42Smrg
26972c393a42SmrgDescription
26982c393a42Smrg
2699eceda581Smrg   Returns FcTrue if and only if ls_a supports precisely the same
2700eceda581Smrg   language and territory combinations as ls_b.
27012c393a42Smrg
2702eceda581SmrgFcLangSetHash
27032c393a42Smrg
27042c393a42SmrgName
27052c393a42Smrg
2706eceda581Smrg   FcLangSetHash -- return a hash value for a langset
27072c393a42Smrg
27082c393a42SmrgSynopsis
27092c393a42Smrg
2710eceda581Smrg#include <fontconfig/fontconfig.h>
2711a6844aabSmrg
2712ca08ab68Smrg   FcChar32 FcLangSetHash(const FcLangSet *ls);
27132c393a42Smrg
27142c393a42SmrgDescription
27152c393a42Smrg
2716eceda581Smrg   This function returns a value which depends solely on the
2717eceda581Smrg   languages supported by ls. Any language which equals ls will
2718eceda581Smrg   have the same result from FcLangSetHash. However, two langsets
2719eceda581Smrg   with the same hash value may not be equal.
27202c393a42Smrg
2721eceda581SmrgFcLangSetHasLang
27222c393a42Smrg
27232c393a42SmrgName
27242c393a42Smrg
2725eceda581Smrg   FcLangSetHasLang -- test langset for language support
2726a6844aabSmrg
2727a6844aabSmrgSynopsis
2728a6844aabSmrg
2729eceda581Smrg#include <fontconfig/fontconfig.h>
2730a6844aabSmrg
2731eceda581Smrg   FcLangResult FcLangSetHasLang(const FcLangSet *ls, const
2732eceda581Smrg   FcChar8 *lang);
2733a6844aabSmrg
2734a6844aabSmrgDescription
2735a6844aabSmrg
2736eceda581Smrg   FcLangSetHasLang checks whether ls supports lang. If ls has a
2737eceda581Smrg   matching language and territory pair, this function returns
2738eceda581Smrg   FcLangEqual. If ls has a matching language but differs in which
2739eceda581Smrg   territory that language is for, this function returns
2740eceda581Smrg   FcLangDifferentTerritory. If ls has no matching language, this
2741eceda581Smrg   function returns FcLangDifferentLang.
2742a6844aabSmrg
2743eceda581SmrgFcGetDefaultLangs
2744a6844aabSmrg
2745a6844aabSmrgName
2746a6844aabSmrg
2747eceda581Smrg   FcGetDefaultLangs -- Get the default languages list
27482c393a42Smrg
27492c393a42SmrgSynopsis
27502c393a42Smrg
2751eceda581Smrg#include <fontconfig/fontconfig.h>
2752a6844aabSmrg
2753b09479dcSmrg   FcStrSet * FcGetDefaultLangs(void);
27542c393a42Smrg
27552c393a42SmrgDescription
27562c393a42Smrg
2757eceda581Smrg   Returns a string set of the default languages according to the
2758eceda581Smrg   environment variables on the system. This function looks for
2759eceda581Smrg   them in order of FC_LANG, LC_ALL, LC_CTYPE and LANG then. If
2760eceda581Smrg   there are no valid values in those environment variables, "en"
2761eceda581Smrg   will be set as fallback.
27622c393a42Smrg
2763b09479dcSmrgSince
2764b09479dcSmrg
2765b09479dcSmrg   version 2.9.91
2766b09479dcSmrg
2767eceda581SmrgFcLangSetGetLangs
2768b09479dcSmrg
2769b09479dcSmrgName
2770b09479dcSmrg
2771eceda581Smrg   FcLangSetGetLangs -- get the list of languages in the langset
2772b09479dcSmrg
2773b09479dcSmrgSynopsis
2774b09479dcSmrg
2775eceda581Smrg#include <fontconfig/fontconfig.h>
2776b09479dcSmrg
2777b09479dcSmrg   FcStrSet * FcLangSetGetLangs(const FcLangSet *ls);
2778b09479dcSmrg
2779b09479dcSmrgDescription
2780b09479dcSmrg
2781b09479dcSmrg   Returns a string set of all languages in langset.
27822c393a42Smrg
2783eceda581SmrgFcGetLangs
27842c393a42Smrg
27852c393a42SmrgName
27862c393a42Smrg
2787eceda581Smrg   FcGetLangs -- Get list of languages
27882c393a42Smrg
27892c393a42SmrgSynopsis
27902c393a42Smrg
2791eceda581Smrg#include <fontconfig/fontconfig.h>
2792a6844aabSmrg
2793ca08ab68Smrg   FcStrSet * FcGetLangs(void);
27942c393a42Smrg
27952c393a42SmrgDescription
27962c393a42Smrg
2797ca08ab68Smrg   Returns a string set of all known languages.
27982c393a42Smrg
2799eceda581SmrgFcLangNormalize
2800c9710b42Smrg
2801c9710b42SmrgName
2802c9710b42Smrg
2803eceda581Smrg   FcLangNormalize -- Normalize the language string
2804c9710b42Smrg
2805c9710b42SmrgSynopsis
2806c9710b42Smrg
2807eceda581Smrg#include <fontconfig/fontconfig.h>
2808c9710b42Smrg
2809c9710b42Smrg   FcChar8 * FcLangNormalize(const FcChar8 *lang);
2810c9710b42Smrg
2811c9710b42SmrgDescription
2812c9710b42Smrg
2813c9710b42Smrg   Returns a string to make lang suitable on fontconfig.
2814c9710b42Smrg
2815b09479dcSmrgSince
2816c9710b42Smrg
2817b09479dcSmrg   version 2.10.91
28182c393a42Smrg
2819eceda581SmrgFcLangGetCharSet
28202c393a42Smrg
28212c393a42SmrgName
28222c393a42Smrg
2823eceda581Smrg   FcLangGetCharSet -- Get character map for a language
28242c393a42Smrg
28252c393a42SmrgSynopsis
28262c393a42Smrg
2827eceda581Smrg#include <fontconfig/fontconfig.h>
2828a6844aabSmrg
2829ca08ab68Smrg   const FcCharSet * FcLangGetCharSet(const FcChar8 *lang);
28302c393a42Smrg
28312c393a42SmrgDescription
28322c393a42Smrg
2833ca08ab68Smrg   Returns the FcCharMap for a language.
2834eceda581Smrg     __________________________________________________________
28352c393a42Smrg
2836eceda581SmrgFcMatrix
2837ca08ab68Smrg
2838ca08ab68Smrg   Table of Contents
2839eceda581Smrg   FcMatrixInit -- initialize an FcMatrix structure
2840eceda581Smrg   FcMatrixCopy -- Copy a matrix
2841eceda581Smrg   FcMatrixEqual -- Compare two matrices
2842eceda581Smrg   FcMatrixMultiply -- Multiply matrices
2843eceda581Smrg   FcMatrixRotate -- Rotate a matrix
2844eceda581Smrg   FcMatrixScale -- Scale a matrix
2845eceda581Smrg   FcMatrixShear -- Shear a matrix
2846ca08ab68Smrg
2847eceda581Smrg   FcMatrix structures hold an affine transformation in matrix
2848eceda581Smrg   form.
2849a32e9e42Smrg
2850eceda581SmrgFcMatrixInit
28512c393a42Smrg
2852953daebaSmrgName
28532c393a42Smrg
2854eceda581Smrg   FcMatrixInit -- initialize an FcMatrix structure
28552c393a42Smrg
2856953daebaSmrgSynopsis
28572c393a42Smrg
2858eceda581Smrg#include <fontconfig/fontconfig.h>
2859ca08ab68Smrg
2860953daebaSmrg   void FcMatrixInit(FcMatrix *matrix);
2861953daebaSmrg
2862953daebaSmrgDescription
2863ca08ab68Smrg
2864953daebaSmrg   FcMatrixInit initializes matrix to the identity matrix.
2865ca08ab68Smrg
2866eceda581SmrgFcMatrixCopy
28672c393a42Smrg
28682c393a42SmrgName
28692c393a42Smrg
2870eceda581Smrg   FcMatrixCopy -- Copy a matrix
28712c393a42Smrg
28722c393a42SmrgSynopsis
28732c393a42Smrg
2874eceda581Smrg#include <fontconfig/fontconfig.h>
2875a6844aabSmrg
2876953daebaSmrg   void FcMatrixCopy(const FcMatrix *matrix);
28772c393a42Smrg
28782c393a42SmrgDescription
28792c393a42Smrg
2880953daebaSmrg   FcMatrixCopy allocates a new FcMatrix and copies mat into it.
28812c393a42Smrg
2882eceda581SmrgFcMatrixEqual
28832c393a42Smrg
28842c393a42SmrgName
28852c393a42Smrg
2886eceda581Smrg   FcMatrixEqual -- Compare two matrices
28872c393a42Smrg
28882c393a42SmrgSynopsis
28892c393a42Smrg
2890eceda581Smrg#include <fontconfig/fontconfig.h>
2891a6844aabSmrg
2892eceda581Smrg   void FcMatrixEqual(const FcMatrix *matrix1, const FcMatrix
2893eceda581Smrg   *matrix2);
28942c393a42Smrg
28952c393a42SmrgDescription
28962c393a42Smrg
2897eceda581Smrg   FcMatrixEqual compares matrix1 and matrix2 returning FcTrue
2898eceda581Smrg   when they are equal and FcFalse when they are not.
28992c393a42Smrg
2900eceda581SmrgFcMatrixMultiply
29012c393a42Smrg
29022c393a42SmrgName
29032c393a42Smrg
2904eceda581Smrg   FcMatrixMultiply -- Multiply matrices
29052c393a42Smrg
29062c393a42SmrgSynopsis
29072c393a42Smrg
2908eceda581Smrg#include <fontconfig/fontconfig.h>
2909a32e9e42Smrg
2910eceda581Smrg   void FcMatrixMultiply(FcMatrix *result, const FcMatrix
2911eceda581Smrg   *matrix1, const FcMatrix *matrix2);
29122c393a42Smrg
29132c393a42SmrgDescription
29142c393a42Smrg
2915eceda581Smrg   FcMatrixMultiply multiplies matrix1 and matrix2 storing the
2916eceda581Smrg   result in result.
29172c393a42Smrg
2918eceda581SmrgFcMatrixRotate
29192c393a42Smrg
29202c393a42SmrgName
29212c393a42Smrg
2922eceda581Smrg   FcMatrixRotate -- Rotate a matrix
29232c393a42Smrg
29242c393a42SmrgSynopsis
29252c393a42Smrg
2926eceda581Smrg#include <fontconfig/fontconfig.h>
29272c393a42Smrg
2928953daebaSmrg   void FcMatrixRotate(FcMatrix *matrix, double cos, double sin);
29292c393a42Smrg
29302c393a42SmrgDescription
29312c393a42Smrg
2932eceda581Smrg   FcMatrixRotate rotates matrix by the angle who's sine is sin
2933eceda581Smrg   and cosine is cos. This is done by multiplying by the matrix:
2934eceda581Smrg  cos -sin
2935eceda581Smrg  sin  cos
2936a32e9e42Smrg
2937eceda581SmrgFcMatrixScale
29382c393a42Smrg
29392c393a42SmrgName
29402c393a42Smrg
2941eceda581Smrg   FcMatrixScale -- Scale a matrix
29422c393a42Smrg
29432c393a42SmrgSynopsis
29442c393a42Smrg
2945eceda581Smrg#include <fontconfig/fontconfig.h>
29462c393a42Smrg
2947953daebaSmrg   void FcMatrixScale(FcMatrix *matrix, double sx, double dy);
29482c393a42Smrg
29492c393a42SmrgDescription
29502c393a42Smrg
2951eceda581Smrg   FcMatrixScale multiplies matrix x values by sx and y values by
2952eceda581Smrg   dy. This is done by multiplying by the matrix:
2953eceda581Smrg   sx  0
2954eceda581Smrg   0   dy
2955a32e9e42Smrg
2956eceda581SmrgFcMatrixShear
29572c393a42Smrg
29582c393a42SmrgName
29592c393a42Smrg
2960eceda581Smrg   FcMatrixShear -- Shear a matrix
29612c393a42Smrg
29622c393a42SmrgSynopsis
29632c393a42Smrg
2964eceda581Smrg#include <fontconfig/fontconfig.h>
29652c393a42Smrg
2966953daebaSmrg   void FcMatrixShear(FcMatrix *matrix, double sh, double sv);
29672c393a42Smrg
29682c393a42SmrgDescription
29692c393a42Smrg
2970eceda581Smrg   FcMatrixShare shears matrix horizontally by sh and vertically
2971eceda581Smrg   by sv. This is done by multiplying by the matrix:
2972eceda581Smrg  1  sh
2973eceda581Smrg  sv  1
2974eceda581Smrg     __________________________________________________________
2975953daebaSmrg
2976eceda581SmrgFcRange
2977953daebaSmrg
2978953daebaSmrg   Table of Contents
2979eceda581Smrg   FcRangeCopy -- Copy a range object
2980eceda581Smrg   FcRangeCreateDouble -- create a range object for double
2981eceda581Smrg   FcRangeCreateInteger -- create a range object for integer
2982eceda581Smrg   FcRangeDestroy -- destroy a range object
2983eceda581Smrg   FcRangeGetDouble -- Get the range in double
2984a6844aabSmrg
2985953daebaSmrg   An FcRange holds two variables to indicate a range in between.
29862c393a42Smrg
2987eceda581SmrgFcRangeCopy
29882c393a42Smrg
29892c393a42SmrgName
29902c393a42Smrg
2991eceda581Smrg   FcRangeCopy -- Copy a range object
29922c393a42Smrg
29932c393a42SmrgSynopsis
29942c393a42Smrg
2995eceda581Smrg#include <fontconfig/fontconfig.h>
29962c393a42Smrg
2997953daebaSmrg   FcRange * FcRangeCopy(const FcRange *range);
29982c393a42Smrg
29992c393a42SmrgDescription
30002c393a42Smrg
3001eceda581Smrg   FcRangeCopy creates a new FcRange object and populates it with
3002eceda581Smrg   the contents of range.
3003ca08ab68Smrg
3004eceda581SmrgSince
3005a32e9e42Smrg
3006eceda581Smrg   version 2.11.91
3007a32e9e42Smrg
3008eceda581SmrgFcRangeCreateDouble
3009a32e9e42Smrg
3010eceda581SmrgName
3011a32e9e42Smrg
3012eceda581Smrg   FcRangeCreateDouble -- create a range object for double
3013a32e9e42Smrg
3014eceda581SmrgSynopsis
3015a32e9e42Smrg
3016eceda581Smrg#include <fontconfig/fontconfig.h>
3017a32e9e42Smrg
3018eceda581Smrg   FcRange * FcRangeCreateDouble(doublebegin, doubleend);
3019a32e9e42Smrg
3020eceda581SmrgDescription
3021a32e9e42Smrg
3022eceda581Smrg   FcRangeCreateDouble creates a new FcRange object with double
3023eceda581Smrg   sized value.
3024a32e9e42Smrg
3025eceda581SmrgSince
3026a32e9e42Smrg
3027eceda581Smrg   version 2.11.91
3028a32e9e42Smrg
3029eceda581SmrgFcRangeCreateInteger
3030a32e9e42Smrg
3031eceda581SmrgName
3032a32e9e42Smrg
3033eceda581Smrg   FcRangeCreateInteger -- create a range object for integer
3034a32e9e42Smrg
3035eceda581SmrgSynopsis
3036a32e9e42Smrg
3037eceda581Smrg#include <fontconfig/fontconfig.h>
3038a32e9e42Smrg
3039eceda581Smrg   FcRange * FcRangeCreateInteger(intbegin, intend);
3040a32e9e42Smrg
3041eceda581SmrgDescription
3042a32e9e42Smrg
3043eceda581Smrg   FcRangeCreateInteger creates a new FcRange object with integer
3044eceda581Smrg   sized value.
3045a32e9e42Smrg
3046eceda581SmrgSince
3047a32e9e42Smrg
3048eceda581Smrg   version 2.11.91
3049a32e9e42Smrg
3050eceda581SmrgFcRangeDestroy
3051a32e9e42Smrg
3052eceda581SmrgName
3053a32e9e42Smrg
3054eceda581Smrg   FcRangeDestroy -- destroy a range object
3055a32e9e42Smrg
3056eceda581SmrgSynopsis
3057a32e9e42Smrg
3058eceda581Smrg#include <fontconfig/fontconfig.h>
3059a32e9e42Smrg
3060eceda581Smrg   void FcRangeDestroy(FcRange *range);
3061a32e9e42Smrg
3062eceda581SmrgDescription
3063a32e9e42Smrg
3064eceda581Smrg   FcRangeDestroy destroys a FcRange object, freeing all memory
3065eceda581Smrg   associated with it.
3066a4e54154Smrg
3067eceda581SmrgSince
3068a32e9e42Smrg
3069eceda581Smrg   version 2.11.91
3070a32e9e42Smrg
3071eceda581SmrgFcRangeGetDouble
3072a32e9e42Smrg
3073eceda581SmrgName
3074a32e9e42Smrg
3075eceda581Smrg   FcRangeGetDouble -- Get the range in double
3076a32e9e42Smrg
3077eceda581SmrgSynopsis
3078a32e9e42Smrg
3079eceda581Smrg#include <fontconfig/fontconfig.h>
3080a32e9e42Smrg
3081eceda581Smrg   FcBool FcRangeGetDouble(const FcRange *range, double *begin,
3082eceda581Smrg   double *end);
3083a32e9e42Smrg
3084eceda581SmrgDescription
3085a32e9e42Smrg
3086eceda581Smrg   Returns in begin and end as the range.
3087a32e9e42Smrg
3088eceda581SmrgSince
3089a32e9e42Smrg
3090eceda581Smrg   version 2.11.91
3091eceda581Smrg     __________________________________________________________
3092a32e9e42Smrg
3093eceda581SmrgFcConfig
3094a32e9e42Smrg
3095eceda581Smrg   Table of Contents
3096eceda581Smrg   FcConfigCreate -- Create a configuration
3097eceda581Smrg   FcConfigReference -- Increment config reference count
3098eceda581Smrg   FcConfigDestroy -- Destroy a configuration
3099eceda581Smrg   FcConfigSetCurrent -- Set configuration as default
3100eceda581Smrg   FcConfigGetCurrent -- Return current configuration
3101eceda581Smrg   FcConfigUptoDate -- Check timestamps on config files
3102eceda581Smrg   FcConfigHome -- return the current home directory.
3103eceda581Smrg   FcConfigEnableHome -- controls use of the home directory.
3104eceda581Smrg   FcConfigBuildFonts -- Build font database
3105eceda581Smrg   FcConfigGetConfigDirs -- Get config directories
3106eceda581Smrg   FcConfigGetFontDirs -- Get font directories
3107eceda581Smrg   FcConfigGetConfigFiles -- Get config files
3108eceda581Smrg   FcConfigGetCache -- DEPRECATED used to return per-user cache
3109eceda581Smrg          filename
3110eceda581Smrg
3111eceda581Smrg   FcConfigGetCacheDirs -- return the list of directories searched
3112eceda581Smrg          for cache files
3113eceda581Smrg
3114eceda581Smrg   FcConfigGetFonts -- Get config font set
3115eceda581Smrg   FcConfigGetBlanks -- Get config blanks
3116eceda581Smrg   FcConfigGetRescanInterval -- Get config rescan interval
3117eceda581Smrg   FcConfigSetRescanInterval -- Set config rescan interval
3118eceda581Smrg   FcConfigAppFontAddFile -- Add font file to font database
3119eceda581Smrg   FcConfigAppFontAddDir -- Add fonts from directory to font
3120eceda581Smrg          database
3121eceda581Smrg
3122eceda581Smrg   FcConfigAppFontClear -- Remove all app fonts from font database
3123eceda581Smrg   FcConfigSubstituteWithPat -- Execute substitutions
3124eceda581Smrg   FcConfigSubstitute -- Execute substitutions
3125eceda581Smrg   FcFontMatch -- Return best font
3126eceda581Smrg   FcFontSort -- Return list of matching fonts
3127eceda581Smrg   FcFontRenderPrepare -- Prepare pattern for loading font file
3128eceda581Smrg   FcFontList -- List fonts
3129eceda581Smrg   FcConfigFilename -- Find a config file
3130eceda581Smrg   FcConfigGetFilename -- Find a config file
3131eceda581Smrg   FcConfigParseAndLoad -- load a configuration file
3132eceda581Smrg   FcConfigParseAndLoadFromMemory -- load a configuration from
3133eceda581Smrg          memory
3134eceda581Smrg
3135eceda581Smrg   FcConfigGetSysRoot -- Obtain the system root directory
3136eceda581Smrg   FcConfigSetSysRoot -- Set the system root directory
3137eceda581Smrg   FcConfigFileInfoIterInit -- Initialize the iterator
3138eceda581Smrg   FcConfigFileInfoIterNext -- Set the iterator to point to the
3139eceda581Smrg          next list
3140eceda581Smrg
3141eceda581Smrg   FcConfigFileInfoIterGet -- Obtain the configuration file
3142eceda581Smrg          information
3143eceda581Smrg
3144eceda581Smrg   An FcConfig object holds the internal representation of a
3145eceda581Smrg   configuration. There is a default configuration which
3146eceda581Smrg   applications may use by passing 0 to any function using the
3147eceda581Smrg   data within an FcConfig.
3148eceda581Smrg
3149eceda581SmrgFcConfigCreate
3150eceda581Smrg
3151eceda581SmrgName
3152eceda581Smrg
3153eceda581Smrg   FcConfigCreate -- Create a configuration
3154eceda581Smrg
3155eceda581SmrgSynopsis
3156eceda581Smrg
3157eceda581Smrg#include <fontconfig/fontconfig.h>
3158a6844aabSmrg
3159ca08ab68Smrg   FcConfig * FcConfigCreate(void);
31602c393a42Smrg
31612c393a42SmrgDescription
31622c393a42Smrg
3163ca08ab68Smrg   Creates an empty configuration.
31642c393a42Smrg
3165eceda581SmrgFcConfigReference
3166a6844aabSmrg
3167a6844aabSmrgName
3168a6844aabSmrg
3169eceda581Smrg   FcConfigReference -- Increment config reference count
3170a6844aabSmrg
3171a6844aabSmrgSynopsis
3172a6844aabSmrg
3173eceda581Smrg#include <fontconfig/fontconfig.h>
3174a6844aabSmrg
3175ca08ab68Smrg   FcConfig * FcConfigReference(FcConfig *config);
3176a6844aabSmrg
3177a6844aabSmrgDescription
3178a6844aabSmrg
3179eceda581Smrg   Add another reference to config. Configs are freed only when
3180eceda581Smrg   the reference count reaches zero. If config is NULL, the
3181eceda581Smrg   current configuration is used. In that case this function will
3182eceda581Smrg   be similar to FcConfigGetCurrent() except that it increments
3183eceda581Smrg   the reference count before returning and the user is
3184eceda581Smrg   responsible for destroying the configuration when not needed
3185eceda581Smrg   anymore.
3186a6844aabSmrg
3187eceda581SmrgFcConfigDestroy
31882c393a42Smrg
31892c393a42SmrgName
31902c393a42Smrg
3191eceda581Smrg   FcConfigDestroy -- Destroy a configuration
31922c393a42Smrg
31932c393a42SmrgSynopsis
31942c393a42Smrg
3195eceda581Smrg#include <fontconfig/fontconfig.h>
3196a6844aabSmrg
3197ca08ab68Smrg   void FcConfigDestroy(FcConfig *config);
31982c393a42Smrg
31992c393a42SmrgDescription
32002c393a42Smrg
3201eceda581Smrg   Decrements the config reference count. If all references are
3202eceda581Smrg   gone, destroys the configuration and any data associated with
3203eceda581Smrg   it. Note that calling this function with the return from
3204eceda581Smrg   FcConfigGetCurrent will cause a new configuration to be created
3205eceda581Smrg   for use as current configuration.
32062c393a42Smrg
3207eceda581SmrgFcConfigSetCurrent
32082c393a42Smrg
32092c393a42SmrgName
32102c393a42Smrg
3211eceda581Smrg   FcConfigSetCurrent -- Set configuration as default
32122c393a42Smrg
32132c393a42SmrgSynopsis
32142c393a42Smrg
3215eceda581Smrg#include <fontconfig/fontconfig.h>
3216a6844aabSmrg
3217ca08ab68Smrg   FcBool FcConfigSetCurrent(FcConfig *config);
32182c393a42Smrg
32192c393a42SmrgDescription
32202c393a42Smrg
3221eceda581Smrg   Sets the current default configuration to config. Implicitly
3222eceda581Smrg   calls FcConfigBuildFonts if necessary, and FcConfigReference()
3223eceda581Smrg   to inrease the reference count in config since 2.12.0,
3224eceda581Smrg   returning FcFalse if that call fails.
32252c393a42Smrg
3226eceda581SmrgFcConfigGetCurrent
32272c393a42Smrg
32282c393a42SmrgName
32292c393a42Smrg
3230eceda581Smrg   FcConfigGetCurrent -- Return current configuration
32312c393a42Smrg
32322c393a42SmrgSynopsis
32332c393a42Smrg
3234eceda581Smrg#include <fontconfig/fontconfig.h>
3235a6844aabSmrg
3236ca08ab68Smrg   FcConfig * FcConfigGetCurrent(void);
32372c393a42Smrg
32382c393a42SmrgDescription
32392c393a42Smrg
3240ca08ab68Smrg   Returns the current default configuration.
32412c393a42Smrg
3242eceda581SmrgFcConfigUptoDate
32432c393a42Smrg
32442c393a42SmrgName
32452c393a42Smrg
3246eceda581Smrg   FcConfigUptoDate -- Check timestamps on config files
32472c393a42Smrg
32482c393a42SmrgSynopsis
32492c393a42Smrg
3250eceda581Smrg#include <fontconfig/fontconfig.h>
3251a6844aabSmrg
3252ca08ab68Smrg   FcBool FcConfigUptoDate(FcConfig *config);
32532c393a42Smrg
32542c393a42SmrgDescription
32552c393a42Smrg
3256eceda581Smrg   Checks all of the files related to config and returns whether
3257eceda581Smrg   any of them has been modified since the configuration was
3258eceda581Smrg   created. If config is NULL, the current configuration is used.
32592c393a42Smrg
3260eceda581SmrgFcConfigHome
32612c393a42Smrg
32622c393a42SmrgName
32632c393a42Smrg
3264eceda581Smrg   FcConfigHome -- return the current home directory.
32652c393a42Smrg
32662c393a42SmrgSynopsis
32672c393a42Smrg
3268eceda581Smrg#include <fontconfig/fontconfig.h>
3269a6844aabSmrg
3270ca08ab68Smrg   FcChar8 * FcConfigHome(void);
32712c393a42Smrg
32722c393a42SmrgDescription
32732c393a42Smrg
3274eceda581Smrg   Return the current user's home directory, if it is available,
3275eceda581Smrg   and if using it is enabled, and NULL otherwise. See also
3276eceda581Smrg   FcConfigEnableHome).
32772c393a42Smrg
3278eceda581SmrgFcConfigEnableHome
32792c393a42Smrg
32802c393a42SmrgName
32812c393a42Smrg
3282eceda581Smrg   FcConfigEnableHome -- controls use of the home directory.
32832c393a42Smrg
32842c393a42SmrgSynopsis
32852c393a42Smrg
3286eceda581Smrg#include <fontconfig/fontconfig.h>
3287a6844aabSmrg
3288ca08ab68Smrg   FcBool FcConfigEnableHome(FcBool enable);
32892c393a42Smrg
32902c393a42SmrgDescription
32912c393a42Smrg
3292eceda581Smrg   If enable is FcTrue, then Fontconfig will use various files
3293eceda581Smrg   which are specified relative to the user's home directory
3294eceda581Smrg   (using the ~ notation in the configuration). When enable is
3295eceda581Smrg   FcFalse, then all use of the home directory in these contexts
3296eceda581Smrg   will be disabled. The previous setting of the value is
3297eceda581Smrg   returned.
32982c393a42Smrg
3299eceda581SmrgFcConfigBuildFonts
33002c393a42Smrg
33012c393a42SmrgName
33022c393a42Smrg
3303eceda581Smrg   FcConfigBuildFonts -- Build font database
33042c393a42Smrg
33052c393a42SmrgSynopsis
33062c393a42Smrg
3307eceda581Smrg#include <fontconfig/fontconfig.h>
3308a6844aabSmrg
3309ca08ab68Smrg   FcBool FcConfigBuildFonts(FcConfig *config);
33102c393a42Smrg
33112c393a42SmrgDescription
33122c393a42Smrg
3313eceda581Smrg   Builds the set of available fonts for the given configuration.
3314eceda581Smrg   Note that any changes to the configuration after this call have
3315eceda581Smrg   indeterminate effects. Returns FcFalse if this operation runs
3316eceda581Smrg   out of memory. If config is NULL, the current configuration is
3317eceda581Smrg   used.
33182c393a42Smrg
3319eceda581SmrgFcConfigGetConfigDirs
33202c393a42Smrg
33212c393a42SmrgName
33222c393a42Smrg
3323eceda581Smrg   FcConfigGetConfigDirs -- Get config directories
33242c393a42Smrg
33252c393a42SmrgSynopsis
33262c393a42Smrg
3327eceda581Smrg#include <fontconfig/fontconfig.h>
3328a6844aabSmrg
3329ca08ab68Smrg   FcStrList * FcConfigGetConfigDirs(FcConfig *config);
33302c393a42Smrg
33312c393a42SmrgDescription
33322c393a42Smrg
3333eceda581Smrg   Returns the list of font directories specified in the
3334eceda581Smrg   configuration files for config. Does not include any
3335eceda581Smrg   subdirectories. If config is NULL, the current configuration is
3336eceda581Smrg   used.
33372c393a42Smrg
3338eceda581SmrgFcConfigGetFontDirs
33392c393a42Smrg
33402c393a42SmrgName
33412c393a42Smrg
3342eceda581Smrg   FcConfigGetFontDirs -- Get font directories
33432c393a42Smrg
33442c393a42SmrgSynopsis
33452c393a42Smrg
3346eceda581Smrg#include <fontconfig/fontconfig.h>
3347a6844aabSmrg
3348ca08ab68Smrg   FcStrList * FcConfigGetFontDirs(FcConfig *config);
33492c393a42Smrg
33502c393a42SmrgDescription
33512c393a42Smrg
3352eceda581Smrg   Returns the list of font directories in config. This includes
3353eceda581Smrg   the configured font directories along with any directories
3354eceda581Smrg   below those in the filesystem. If config is NULL, the current
3355eceda581Smrg   configuration is used.
33562c393a42Smrg
3357eceda581SmrgFcConfigGetConfigFiles
33582c393a42Smrg
33592c393a42SmrgName
33602c393a42Smrg
3361eceda581Smrg   FcConfigGetConfigFiles -- Get config files
33622c393a42Smrg
33632c393a42SmrgSynopsis
33642c393a42Smrg
3365eceda581Smrg#include <fontconfig/fontconfig.h>
3366a6844aabSmrg
3367ca08ab68Smrg   FcStrList * FcConfigGetConfigFiles(FcConfig *config);
33682c393a42Smrg
33692c393a42SmrgDescription
33702c393a42Smrg
3371eceda581Smrg   Returns the list of known configuration files used to generate
3372eceda581Smrg   config. If config is NULL, the current configuration is used.
33732c393a42Smrg
3374eceda581SmrgFcConfigGetCache
33752c393a42Smrg
33762c393a42SmrgName
33772c393a42Smrg
3378eceda581Smrg   FcConfigGetCache -- DEPRECATED used to return per-user cache
3379eceda581Smrg   filename
33802c393a42Smrg
33812c393a42SmrgSynopsis
33822c393a42Smrg
3383eceda581Smrg#include <fontconfig/fontconfig.h>
3384a6844aabSmrg
3385ca08ab68Smrg   FcChar8 * FcConfigGetCache(FcConfig *config);
33862c393a42Smrg
33872c393a42SmrgDescription
33882c393a42Smrg
3389eceda581Smrg   With fontconfig no longer using per-user cache files, this
3390eceda581Smrg   function now simply returns NULL to indicate that no per-user
3391eceda581Smrg   file exists.
33922c393a42Smrg
3393eceda581SmrgFcConfigGetCacheDirs
33942c393a42Smrg
33952c393a42SmrgName
33962c393a42Smrg
3397eceda581Smrg   FcConfigGetCacheDirs -- return the list of directories searched
3398eceda581Smrg   for cache files
33992c393a42Smrg
34002c393a42SmrgSynopsis
34012c393a42Smrg
3402eceda581Smrg#include <fontconfig/fontconfig.h>
3403a6844aabSmrg
3404ca08ab68Smrg   FcStrList * FcConfigGetCacheDirs(const FcConfig *config);
34052c393a42Smrg
34062c393a42SmrgDescription
34072c393a42Smrg
3408eceda581Smrg   FcConfigGetCacheDirs returns a string list containing all of
3409eceda581Smrg   the directories that fontconfig will search when attempting to
3410eceda581Smrg   load a cache file for a font directory. If config is NULL, the
3411eceda581Smrg   current configuration is used.
34122c393a42Smrg
3413eceda581SmrgFcConfigGetFonts
34142c393a42Smrg
34152c393a42SmrgName
34162c393a42Smrg
3417eceda581Smrg   FcConfigGetFonts -- Get config font set
34182c393a42Smrg
34192c393a42SmrgSynopsis
34202c393a42Smrg
3421eceda581Smrg#include <fontconfig/fontconfig.h>
3422a6844aabSmrg
3423ca08ab68Smrg   FcFontSet * FcConfigGetFonts(FcConfig *config, FcSetName set);
34242c393a42Smrg
34252c393a42SmrgDescription
34262c393a42Smrg
3427eceda581Smrg   Returns one of the two sets of fonts from the configuration as
3428eceda581Smrg   specified by set. This font set is owned by the library and
3429eceda581Smrg   must not be modified or freed. If config is NULL, the current
3430eceda581Smrg   configuration is used.
34312c393a42Smrg
3432eceda581Smrg   This function isn't MT-safe. FcConfigReference must be called
3433eceda581Smrg   before using this and then FcConfigDestroy when the return
3434eceda581Smrg   value is no longer referenced.
3435a4e54154Smrg
3436eceda581SmrgFcConfigGetBlanks
34372c393a42Smrg
34382c393a42SmrgName
34392c393a42Smrg
3440eceda581Smrg   FcConfigGetBlanks -- Get config blanks
34412c393a42Smrg
34422c393a42SmrgSynopsis
34432c393a42Smrg
3444eceda581Smrg#include <fontconfig/fontconfig.h>
3445a6844aabSmrg
3446ca08ab68Smrg   FcBlanks * FcConfigGetBlanks(FcConfig *config);
34472c393a42Smrg
34482c393a42SmrgDescription
34492c393a42Smrg
3450a32e9e42Smrg   FcBlanks is deprecated. This function always returns NULL.
34512c393a42Smrg
3452eceda581SmrgFcConfigGetRescanInterval
34532c393a42Smrg
34542c393a42SmrgName
34552c393a42Smrg
3456eceda581Smrg   FcConfigGetRescanInterval -- Get config rescan interval
34572c393a42Smrg
34582c393a42SmrgSynopsis
34592c393a42Smrg
3460eceda581Smrg#include <fontconfig/fontconfig.h>
3461a6844aabSmrg
3462ca08ab68Smrg   int FcConfigGetRescanInterval(FcConfig *config);
34632c393a42Smrg
34642c393a42SmrgDescription
34652c393a42Smrg
3466eceda581Smrg   Returns the interval between automatic checks of the
3467eceda581Smrg   configuration (in seconds) specified in config. The
3468eceda581Smrg   configuration is checked during a call to FcFontList when this
3469eceda581Smrg   interval has passed since the last check. An interval setting
3470eceda581Smrg   of zero disables automatic checks. If config is NULL, the
3471ca08ab68Smrg   current configuration is used.
34722c393a42Smrg
3473eceda581SmrgFcConfigSetRescanInterval
34742c393a42Smrg
34752c393a42SmrgName
34762c393a42Smrg
3477eceda581Smrg   FcConfigSetRescanInterval -- Set config rescan interval
34782c393a42Smrg
34792c393a42SmrgSynopsis
34802c393a42Smrg
3481eceda581Smrg#include <fontconfig/fontconfig.h>
3482a6844aabSmrg
3483eceda581Smrg   FcBool FcConfigSetRescanInterval(FcConfig *config, int
3484eceda581Smrg   rescanInterval);
34852c393a42Smrg
34862c393a42SmrgDescription
34872c393a42Smrg
3488eceda581Smrg   Sets the rescan interval. Returns FcFalse if the interval
3489eceda581Smrg   cannot be set (due to allocation failure). Otherwise returns
3490eceda581Smrg   FcTrue. An interval setting of zero disables automatic checks.
3491eceda581Smrg   If config is NULL, the current configuration is used.
34922c393a42Smrg
3493eceda581SmrgFcConfigAppFontAddFile
34942c393a42Smrg
34952c393a42SmrgName
34962c393a42Smrg
3497eceda581Smrg   FcConfigAppFontAddFile -- Add font file to font database
34982c393a42Smrg
34992c393a42SmrgSynopsis
35002c393a42Smrg
3501eceda581Smrg#include <fontconfig/fontconfig.h>
3502a6844aabSmrg
3503eceda581Smrg   FcBool FcConfigAppFontAddFile(FcConfig *config, const FcChar8
3504eceda581Smrg   *file);
35052c393a42Smrg
35062c393a42SmrgDescription
35072c393a42Smrg
3508eceda581Smrg   Adds an application-specific font to the configuration. Returns
3509eceda581Smrg   FcFalse if the fonts cannot be added (due to allocation failure
3510eceda581Smrg   or no fonts found). Otherwise returns FcTrue. If config is
3511eceda581Smrg   NULL, the current configuration is used.
35122c393a42Smrg
3513eceda581SmrgFcConfigAppFontAddDir
35142c393a42Smrg
35152c393a42SmrgName
35162c393a42Smrg
3517eceda581Smrg   FcConfigAppFontAddDir -- Add fonts from directory to font
3518eceda581Smrg   database
35192c393a42Smrg
35202c393a42SmrgSynopsis
35212c393a42Smrg
3522eceda581Smrg#include <fontconfig/fontconfig.h>
35232c393a42Smrg
3524eceda581Smrg   FcBool FcConfigAppFontAddDir(FcConfig *config, const FcChar8
3525eceda581Smrg   *dir);
35262c393a42Smrg
35272c393a42SmrgDescription
35282c393a42Smrg
3529eceda581Smrg   Scans the specified directory for fonts, adding each one found
3530eceda581Smrg   to the application-specific set of fonts. Returns FcFalse if
3531eceda581Smrg   the fonts cannot be added (due to allocation failure).
3532eceda581Smrg   Otherwise returns FcTrue. If config is NULL, the current
3533eceda581Smrg   configuration is used.
35342c393a42Smrg
3535eceda581SmrgFcConfigAppFontClear
35362c393a42Smrg
35372c393a42SmrgName
35382c393a42Smrg
3539eceda581Smrg   FcConfigAppFontClear -- Remove all app fonts from font database
35402c393a42Smrg
35412c393a42SmrgSynopsis
35422c393a42Smrg
3543eceda581Smrg#include <fontconfig/fontconfig.h>
3544a6844aabSmrg
3545ca08ab68Smrg   void FcConfigAppFontClear(FcConfig *config);
35462c393a42Smrg
35472c393a42SmrgDescription
35482c393a42Smrg
3549eceda581Smrg   Clears the set of application-specific fonts. If config is
3550eceda581Smrg   NULL, the current configuration is used.
35512c393a42Smrg
3552eceda581SmrgFcConfigSubstituteWithPat
35532c393a42Smrg
35542c393a42SmrgName
35552c393a42Smrg
3556eceda581Smrg   FcConfigSubstituteWithPat -- Execute substitutions
35572c393a42Smrg
35582c393a42SmrgSynopsis
35592c393a42Smrg
3560eceda581Smrg#include <fontconfig/fontconfig.h>
35612c393a42Smrg
3562eceda581Smrg   FcBool FcConfigSubstituteWithPat(FcConfig *config, FcPattern
3563eceda581Smrg   *p, FcPattern *p_pat, FcMatchKind kind);
35642c393a42Smrg
35652c393a42SmrgDescription
35662c393a42Smrg
3567eceda581Smrg   Performs the sequence of pattern modification operations, if
3568eceda581Smrg   kind is FcMatchPattern, then those tagged as pattern operations
3569eceda581Smrg   are applied, else if kind is FcMatchFont, those tagged as font
3570eceda581Smrg   operations are applied and p_pat is used for <test> elements
3571eceda581Smrg   with target=pattern. Returns FcFalse if the substitution cannot
3572eceda581Smrg   be performed (due to allocation failure). Otherwise returns
3573eceda581Smrg   FcTrue. If config is NULL, the current configuration is used.
35742c393a42Smrg
3575eceda581SmrgFcConfigSubstitute
35762c393a42Smrg
35772c393a42SmrgName
35782c393a42Smrg
3579eceda581Smrg   FcConfigSubstitute -- Execute substitutions
35802c393a42Smrg
35812c393a42SmrgSynopsis
35822c393a42Smrg
3583eceda581Smrg#include <fontconfig/fontconfig.h>
3584a6844aabSmrg
3585eceda581Smrg   FcBool FcConfigSubstitute(FcConfig *config, FcPattern *p,
3586eceda581Smrg   FcMatchKind kind);
35872c393a42Smrg
35882c393a42SmrgDescription
35892c393a42Smrg
3590eceda581Smrg   Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns
3591eceda581Smrg   FcFalse if the substitution cannot be performed (due to
3592eceda581Smrg   allocation failure). Otherwise returns FcTrue. If config is
3593eceda581Smrg   NULL, the current configuration is used.
3594a32e9e42Smrg
3595eceda581SmrgFcFontMatch
3596a32e9e42Smrg
3597a32e9e42SmrgName
3598a32e9e42Smrg
3599eceda581Smrg   FcFontMatch -- Return best font
3600a32e9e42Smrg
3601a32e9e42SmrgSynopsis
3602a32e9e42Smrg
3603eceda581Smrg#include <fontconfig/fontconfig.h>
3604a32e9e42Smrg
3605eceda581Smrg   FcPattern * FcFontMatch(FcConfig *config, FcPattern *p,
3606eceda581Smrg   FcResult *result);
3607a32e9e42Smrg
3608a32e9e42SmrgDescription
3609a32e9e42Smrg
3610eceda581Smrg   Finds the font in sets most closely matching pattern and
3611eceda581Smrg   returns the result of FcFontRenderPrepare for that font and the
3612eceda581Smrg   provided pattern. This function should be called only after
3613eceda581Smrg   FcConfigSubstitute and FcDefaultSubstitute have been called for
3614eceda581Smrg   p; otherwise the results will not be correct. If config is
3615eceda581Smrg   NULL, the current configuration is used.
3616a32e9e42Smrg
3617eceda581SmrgFcFontSort
3618a32e9e42Smrg
3619a32e9e42SmrgName
3620a32e9e42Smrg
3621eceda581Smrg   FcFontSort -- Return list of matching fonts
3622a32e9e42Smrg
3623a32e9e42SmrgSynopsis
3624a32e9e42Smrg
3625eceda581Smrg#include <fontconfig/fontconfig.h>
3626a32e9e42Smrg
3627eceda581Smrg   FcFontSet * FcFontSort(FcConfig *config, FcPattern *p, FcBool
3628eceda581Smrg   trim, FcCharSet **csp, FcResult *result);
3629a32e9e42Smrg
3630a32e9e42SmrgDescription
36312c393a42Smrg
3632eceda581Smrg   Returns the list of fonts sorted by closeness to p. If trim is
3633eceda581Smrg   FcTrue, elements in the list which don't include Unicode
3634eceda581Smrg   coverage not provided by earlier elements in the list are
3635eceda581Smrg   elided. The union of Unicode coverage of all of the fonts is
3636eceda581Smrg   returned in csp, if csp is not NULL. This function should be
3637eceda581Smrg   called only after FcConfigSubstitute and FcDefaultSubstitute
3638eceda581Smrg   have been called for p; otherwise the results will not be
3639eceda581Smrg   correct.
3640a32e9e42Smrg
3641eceda581Smrg   The returned FcFontSet references FcPattern structures which
3642eceda581Smrg   may be shared by the return value from multiple FcFontSort
3643eceda581Smrg   calls, applications must not modify these patterns. Instead,
3644eceda581Smrg   they should be passed, along with p to FcFontRenderPrepare
3645eceda581Smrg   which combines them into a complete pattern.
3646a32e9e42Smrg
3647a32e9e42Smrg   The FcFontSet returned by FcFontSort is destroyed by calling
3648eceda581Smrg   FcFontSetDestroy. If config is NULL, the current configuration
3649eceda581Smrg   is used.
3650a32e9e42Smrg
3651eceda581SmrgFcFontRenderPrepare
3652a32e9e42Smrg
3653a32e9e42SmrgName
3654a32e9e42Smrg
3655eceda581Smrg   FcFontRenderPrepare -- Prepare pattern for loading font file
3656a32e9e42Smrg
3657a32e9e42SmrgSynopsis
3658a32e9e42Smrg
3659eceda581Smrg#include <fontconfig/fontconfig.h>
3660a32e9e42Smrg
3661eceda581Smrg   FcPattern * FcFontRenderPrepare(FcConfig *config, FcPattern
3662eceda581Smrg   *pat, FcPattern *font);
3663a32e9e42Smrg
3664a32e9e42SmrgDescription
3665a32e9e42Smrg
3666eceda581Smrg   Creates a new pattern consisting of elements of font not
3667eceda581Smrg   appearing in pat, elements of pat not appearing in font and the
3668eceda581Smrg   best matching value from pat for elements appearing in both.
3669eceda581Smrg   The result is passed to FcConfigSubstituteWithPat with kind
3670eceda581Smrg   FcMatchFont and then returned.
3671a32e9e42Smrg
3672eceda581SmrgFcFontList
36732c393a42Smrg
36742c393a42SmrgName
36752c393a42Smrg
3676eceda581Smrg   FcFontList -- List fonts
36772c393a42Smrg
36782c393a42SmrgSynopsis
36792c393a42Smrg
3680eceda581Smrg#include <fontconfig/fontconfig.h>
3681a32e9e42Smrg
3682eceda581Smrg   FcFontSet * FcFontList(FcConfig *config, FcPattern *p,
3683eceda581Smrg   FcObjectSet *os);
3684a32e9e42Smrg
3685a32e9e42SmrgDescription
3686a32e9e42Smrg
3687eceda581Smrg   Selects fonts matching p, creates patterns from those fonts
3688eceda581Smrg   containing only the objects in os and returns the set of unique
3689eceda581Smrg   such patterns. If config is NULL, the default configuration is
3690eceda581Smrg   checked to be up to date, and used.
3691a32e9e42Smrg
3692eceda581SmrgFcConfigFilename
3693a32e9e42Smrg
3694a32e9e42SmrgName
3695a32e9e42Smrg
3696eceda581Smrg   FcConfigFilename -- Find a config file
3697a32e9e42Smrg
3698a32e9e42SmrgSynopsis
3699a32e9e42Smrg
3700eceda581Smrg#include <fontconfig/fontconfig.h>
3701a32e9e42Smrg
3702a32e9e42Smrg   FcChar8 * FcConfigFilename(const FcChar8 *name);
37032c393a42Smrg
3704a4e54154SmrgDescription
3705a4e54154Smrg
3706eceda581Smrg   This function is deprecated and is replaced by
3707eceda581Smrg   FcConfigGetFilename.
3708a4e54154Smrg
3709eceda581SmrgFcConfigGetFilename
3710a4e54154Smrg
3711a4e54154SmrgName
3712a4e54154Smrg
3713eceda581Smrg   FcConfigGetFilename -- Find a config file
3714a4e54154Smrg
3715a4e54154SmrgSynopsis
3716a4e54154Smrg
3717eceda581Smrg#include <fontconfig/fontconfig.h>
3718a4e54154Smrg
3719eceda581Smrg   FcChar8 * FcConfigGetFilename(FcConfig *config, const FcChar8
3720eceda581Smrg   *name);
3721a4e54154Smrg
37222c393a42SmrgDescription
37232c393a42Smrg
3724eceda581Smrg   Given the specified external entity name, return the associated
3725eceda581Smrg   filename. This provides applications a way to convert various
3726eceda581Smrg   configuration file references into filename form.
3727a32e9e42Smrg
3728eceda581Smrg   A null or empty name indicates that the default configuration
3729eceda581Smrg   file should be used; which file this references can be
3730eceda581Smrg   overridden with the FONTCONFIG_FILE environment variable. Next,
3731eceda581Smrg   if the name starts with ~, it refers to a file in the current
3732eceda581Smrg   users home directory. Otherwise if the name doesn't start with
3733eceda581Smrg   '/', it refers to a file in the default configuration
3734eceda581Smrg   directory; the built-in default directory can be overridden
3735a32e9e42Smrg   with the FONTCONFIG_PATH environment variable.
37362c393a42Smrg
3737eceda581Smrg   The result of this function is affected by the
3738eceda581Smrg   FONTCONFIG_SYSROOT environment variable or equivalent
3739eceda581Smrg   functionality.
3740a4e54154Smrg
3741eceda581SmrgFcConfigParseAndLoad
37422c393a42Smrg
37432c393a42SmrgName
37442c393a42Smrg
3745eceda581Smrg   FcConfigParseAndLoad -- load a configuration file
37462c393a42Smrg
37472c393a42SmrgSynopsis
37482c393a42Smrg
3749eceda581Smrg#include <fontconfig/fontconfig.h>
37502c393a42Smrg
3751eceda581Smrg   FcBool FcConfigParseAndLoad(FcConfig *config, const FcChar8
3752eceda581Smrg   *file, FcBool complain);
37532c393a42Smrg
3754a32e9e42SmrgDescription
37552c393a42Smrg
3756a32e9e42Smrg   Walks the configuration in 'file' and constructs the internal
3757eceda581Smrg   representation in 'config'. Any include files referenced from
3758eceda581Smrg   within 'file' will be loaded and parsed. If 'complain' is
3759eceda581Smrg   FcFalse, no warning will be displayed if 'file' does not exist.
3760eceda581Smrg   Error and warning messages will be output to stderr. Returns
3761eceda581Smrg   FcFalse if some error occurred while loading the file, either a
3762eceda581Smrg   parse error, semantic error or allocation failure. Otherwise
3763eceda581Smrg   returns FcTrue.
37642c393a42Smrg
3765eceda581SmrgFcConfigParseAndLoadFromMemory
37662c393a42Smrg
37672c393a42SmrgName
37682c393a42Smrg
3769eceda581Smrg   FcConfigParseAndLoadFromMemory -- load a configuration from
3770eceda581Smrg   memory
37712c393a42Smrg
37722c393a42SmrgSynopsis
37732c393a42Smrg
3774eceda581Smrg#include <fontconfig/fontconfig.h>
3775a32e9e42Smrg
3776eceda581Smrg   FcBool FcConfigParseAndLoadFromMemory(FcConfig *config, const
3777eceda581Smrg   FcChar8 *buffer, FcBool complain);
37782c393a42Smrg
37792c393a42SmrgDescription
37802c393a42Smrg
3781a32e9e42Smrg   Walks the configuration in 'memory' and constructs the internal
3782eceda581Smrg   representation in 'config'. Any includes files referenced from
3783eceda581Smrg   within 'memory' will be loaded and dparsed. If 'complain' is
3784eceda581Smrg   FcFalse, no warning will be displayed if 'file' does not exist.
3785eceda581Smrg   Error and warning messages will be output to stderr. Returns
3786eceda581Smrg   FcFalse if fsome error occurred while loading the file, either
3787eceda581Smrg   a parse error, semantic error or allocation failure. Otherwise
3788eceda581Smrg   returns FcTrue.
37892c393a42Smrg
3790a32e9e42SmrgSince
3791a32e9e42Smrg
3792a32e9e42Smrg   version 2.12.5
3793a32e9e42Smrg
3794eceda581SmrgFcConfigGetSysRoot
37952c393a42Smrg
37962c393a42SmrgName
37972c393a42Smrg
3798eceda581Smrg   FcConfigGetSysRoot -- Obtain the system root directory
37992c393a42Smrg
38002c393a42SmrgSynopsis
38012c393a42Smrg
3802eceda581Smrg#include <fontconfig/fontconfig.h>
38032c393a42Smrg
3804a32e9e42Smrg   const FcChar8 * FcConfigGetSysRoot(const FcConfig *config);
38052c393a42Smrg
38062c393a42SmrgDescription
38072c393a42Smrg
3808eceda581Smrg   Obtains the system root directory in 'config' if available. All
3809eceda581Smrg   files (including file properties in patterns) obtained from
3810eceda581Smrg   this 'config' are relative to this system root directory.
3811a4e54154Smrg
3812eceda581Smrg   This function isn't MT-safe. FcConfigReference must be called
3813eceda581Smrg   before using this and then FcConfigDestroy when the return
3814eceda581Smrg   value is no longer referenced.
3815a32e9e42Smrg
3816a32e9e42SmrgSince
3817a32e9e42Smrg
3818a32e9e42Smrg   version 2.10.92
38192c393a42Smrg
3820eceda581SmrgFcConfigSetSysRoot
38212c393a42Smrg
38222c393a42SmrgName
38232c393a42Smrg
3824eceda581Smrg   FcConfigSetSysRoot -- Set the system root directory
38252c393a42Smrg
38262c393a42SmrgSynopsis
38272c393a42Smrg
3828eceda581Smrg#include <fontconfig/fontconfig.h>
3829a32e9e42Smrg
3830eceda581Smrg   void FcConfigSetSysRoot(FcConfig *config, const FcChar8
3831eceda581Smrg   *sysroot);
38322c393a42Smrg
38332c393a42SmrgDescription
38342c393a42Smrg
3835eceda581Smrg   Set 'sysroot' as the system root directory. All file paths used
3836eceda581Smrg   or created with this 'config' (including file properties in
3837eceda581Smrg   patterns) will be considered or made relative to this
3838eceda581Smrg   'sysroot'. This allows a host to generate caches for targets at
3839eceda581Smrg   build time. This also allows a cache to be re-targeted to a
3840eceda581Smrg   different base directory if 'FcConfigGetSysRoot' is used to
3841eceda581Smrg   resolve file paths. When setting this on the current config
3842eceda581Smrg   this causes changing current config (calls
3843eceda581Smrg   FcConfigSetCurrent()).
38442c393a42Smrg
3845a32e9e42SmrgSince
3846a32e9e42Smrg
3847a32e9e42Smrg   version 2.10.92
38482c393a42Smrg
3849eceda581SmrgFcConfigFileInfoIterInit
38502c393a42Smrg
38512c393a42SmrgName
38522c393a42Smrg
3853eceda581Smrg   FcConfigFileInfoIterInit -- Initialize the iterator
38542c393a42Smrg
38552c393a42SmrgSynopsis
38562c393a42Smrg
3857eceda581Smrg#include <fontconfig/fontconfig.h>
3858a32e9e42Smrg
3859eceda581Smrg   void FcConfigFileInfoIterInit(FcConfig *config,
3860eceda581Smrg   FcConfigFileInfoIter *iter);
38612c393a42Smrg
38622c393a42SmrgDescription
38632c393a42Smrg
3864eceda581Smrg   Initialize 'iter' with the first iterator in the config file
3865eceda581Smrg   information list.
38662c393a42Smrg
3867eceda581Smrg   The config file information list is stored in numerical order
3868eceda581Smrg   for filenames i.e. how fontconfig actually read them.
3869a4e54154Smrg
3870eceda581Smrg   This function isn't MT-safe. FcConfigReference must be called
3871eceda581Smrg   before using this and then FcConfigDestroy when the relevant
3872eceda581Smrg   values are no longer referenced.
3873a4e54154Smrg
3874a32e9e42SmrgSince
3875a32e9e42Smrg
3876a32e9e42Smrg   version 2.12.91
3877a32e9e42Smrg
3878eceda581SmrgFcConfigFileInfoIterNext
3879c9710b42Smrg
3880c9710b42SmrgName
3881c9710b42Smrg
3882eceda581Smrg   FcConfigFileInfoIterNext -- Set the iterator to point to the
3883eceda581Smrg   next list
3884c9710b42Smrg
3885c9710b42SmrgSynopsis
3886c9710b42Smrg
3887eceda581Smrg#include <fontconfig/fontconfig.h>
3888c9710b42Smrg
3889eceda581Smrg   FcBool FcConfigFileInfoIterNext(FcConfig *config,
3890eceda581Smrg   FcConfigFileInfoIter *iter);
3891c9710b42Smrg
3892c9710b42SmrgDescription
3893c9710b42Smrg
3894eceda581Smrg   Set 'iter' to point to the next node in the config file
3895eceda581Smrg   information list. If there is no next node, FcFalse is
3896eceda581Smrg   returned.
3897c9710b42Smrg
3898eceda581Smrg   This function isn't MT-safe. FcConfigReference must be called
3899eceda581Smrg   before using FcConfigFileInfoIterInit and then FcConfigDestroy
3900eceda581Smrg   when the relevant values are no longer referenced.
3901a4e54154Smrg
3902b09479dcSmrgSince
3903c9710b42Smrg
3904a32e9e42Smrg   version 2.12.91
3905c9710b42Smrg
3906eceda581SmrgFcConfigFileInfoIterGet
3907c9710b42Smrg
3908c9710b42SmrgName
3909c9710b42Smrg
3910eceda581Smrg   FcConfigFileInfoIterGet -- Obtain the configuration file
3911eceda581Smrg   information
3912c9710b42Smrg
3913c9710b42SmrgSynopsis
3914c9710b42Smrg
3915eceda581Smrg#include <fontconfig/fontconfig.h>
3916a32e9e42Smrg
3917eceda581Smrg   FcBool FcConfigFileInfoIterGet(FcConfig *config,
3918eceda581Smrg   FcConfigFileInfoIter *iter, FcChar8 **name, FcChar8
3919eceda581Smrg   **description, FcBool *enabled);
3920c9710b42Smrg
3921c9710b42SmrgDescription
3922c9710b42Smrg
3923eceda581Smrg   Obtain the filename, the description and the flag whether it is
3924eceda581Smrg   enabled or not for 'iter' where points to current configuration
3925eceda581Smrg   file information. If the iterator is invalid, FcFalse is
3926eceda581Smrg   returned.
3927c9710b42Smrg
3928eceda581Smrg   This function isn't MT-safe. FcConfigReference must be called
3929eceda581Smrg   before using FcConfigFileInfoIterInit and then FcConfigDestroy
3930eceda581Smrg   when the relevant values are no longer referenced.
3931a4e54154Smrg
3932b09479dcSmrgSince
3933c9710b42Smrg
3934a32e9e42Smrg   version 2.12.91
3935eceda581Smrg     __________________________________________________________
3936a32e9e42Smrg
3937eceda581SmrgFcObjectType
39382c393a42Smrg
3939ca08ab68Smrg   Table of Contents
3940eceda581Smrg   FcNameRegisterObjectTypes -- Register object types
3941eceda581Smrg   FcNameUnregisterObjectTypes -- Unregister object types
3942eceda581Smrg   FcNameGetObjectType -- Lookup an object type
39432c393a42Smrg
3944eceda581Smrg   Provides for application-specified font name object types so
3945eceda581Smrg   that new pattern elements can be generated from font names.
3946ca08ab68Smrg
3947eceda581SmrgFcNameRegisterObjectTypes
39482c393a42Smrg
39492c393a42SmrgName
39502c393a42Smrg
3951eceda581Smrg   FcNameRegisterObjectTypes -- Register object types
39522c393a42Smrg
39532c393a42SmrgSynopsis
39542c393a42Smrg
3955eceda581Smrg#include <fontconfig/fontconfig.h>
39562c393a42Smrg
3957eceda581Smrg   FcBool FcNameRegisterObjectTypes(const FcObjectType *types, int
3958eceda581Smrg   ntype);
39592c393a42Smrg
39602c393a42SmrgDescription
39612c393a42Smrg
3962c9710b42Smrg   Deprecated. Does nothing. Returns FcFalse.
39632c393a42Smrg
3964eceda581SmrgFcNameUnregisterObjectTypes
39652c393a42Smrg
39662c393a42SmrgName
39672c393a42Smrg
3968eceda581Smrg   FcNameUnregisterObjectTypes -- Unregister object types
39692c393a42Smrg
39702c393a42SmrgSynopsis
39712c393a42Smrg
3972eceda581Smrg#include <fontconfig/fontconfig.h>
3973a6844aabSmrg
3974eceda581Smrg   FcBool FcNameUnregisterObjectTypes(const FcObjectType *types,
3975eceda581Smrg   int ntype);
39762c393a42Smrg
39772c393a42SmrgDescription
39782c393a42Smrg
3979c9710b42Smrg   Deprecated. Does nothing. Returns FcFalse.
39802c393a42Smrg
3981eceda581SmrgFcNameGetObjectType
39822c393a42Smrg
39832c393a42SmrgName
39842c393a42Smrg
3985eceda581Smrg   FcNameGetObjectType -- Lookup an object type
39862c393a42Smrg
39872c393a42SmrgSynopsis
39882c393a42Smrg
3989eceda581Smrg#include <fontconfig/fontconfig.h>
3990a6844aabSmrg
3991ca08ab68Smrg   const FcObjectType * FcNameGetObjectType(const char *object);
39922c393a42Smrg
39932c393a42SmrgDescription
39942c393a42Smrg
3995ca08ab68Smrg   Return the object type for the pattern element named object.
3996eceda581Smrg     __________________________________________________________
39972c393a42Smrg
3998eceda581SmrgFcConstant
39992c393a42Smrg
4000ca08ab68Smrg   Table of Contents
4001eceda581Smrg   FcNameRegisterConstants -- Register symbolic constants
4002eceda581Smrg   FcNameUnregisterConstants -- Unregister symbolic constants
4003eceda581Smrg   FcNameGetConstant -- Lookup symbolic constant
4004eceda581Smrg   FcNameConstant -- Get the value for a symbolic constant
40052c393a42Smrg
4006eceda581Smrg   Provides for application-specified symbolic constants for font
4007eceda581Smrg   names.
40082c393a42Smrg
4009eceda581SmrgFcNameRegisterConstants
40102c393a42Smrg
40112c393a42SmrgName
40122c393a42Smrg
4013eceda581Smrg   FcNameRegisterConstants -- Register symbolic constants
40142c393a42Smrg
40152c393a42SmrgSynopsis
40162c393a42Smrg
4017eceda581Smrg#include <fontconfig/fontconfig.h>
40182c393a42Smrg
4019eceda581Smrg   FcBool FcNameRegisterConstants(const FcConstant *consts, int
4020eceda581Smrg   nconsts);
40212c393a42Smrg
40222c393a42SmrgDescription
40232c393a42Smrg
4024c9710b42Smrg   Deprecated. Does nothing. Returns FcFalse.
40252c393a42Smrg
4026eceda581SmrgFcNameUnregisterConstants
40272c393a42Smrg
40282c393a42SmrgName
40292c393a42Smrg
4030eceda581Smrg   FcNameUnregisterConstants -- Unregister symbolic constants
40312c393a42Smrg
40322c393a42SmrgSynopsis
40332c393a42Smrg
4034eceda581Smrg#include <fontconfig/fontconfig.h>
4035a6844aabSmrg
4036eceda581Smrg   FcBool FcNameUnregisterConstants(const FcConstant *consts, int
4037eceda581Smrg   nconsts);
40382c393a42Smrg
40392c393a42SmrgDescription
40402c393a42Smrg
4041c9710b42Smrg   Deprecated. Does nothing. Returns FcFalse.
40422c393a42Smrg
4043eceda581SmrgFcNameGetConstant
40442c393a42Smrg
40452c393a42SmrgName
40462c393a42Smrg
4047eceda581Smrg   FcNameGetConstant -- Lookup symbolic constant
40482c393a42Smrg
40492c393a42SmrgSynopsis
40502c393a42Smrg
4051eceda581Smrg#include <fontconfig/fontconfig.h>
4052a6844aabSmrg
4053ca08ab68Smrg   const FcConstant * FcNameGetConstant(FcChar8 *string);
40542c393a42Smrg
40552c393a42SmrgDescription
40562c393a42Smrg
4057eceda581Smrg   Return the FcConstant structure related to symbolic constant
4058eceda581Smrg   string.
40592c393a42Smrg
4060eceda581SmrgFcNameConstant
40612c393a42Smrg
40622c393a42SmrgName
40632c393a42Smrg
4064eceda581Smrg   FcNameConstant -- Get the value for a symbolic constant
40652c393a42Smrg
40662c393a42SmrgSynopsis
40672c393a42Smrg
4068eceda581Smrg#include <fontconfig/fontconfig.h>
4069a6844aabSmrg
4070ca08ab68Smrg   FcBool FcNameConstant(FcChar8 *string, int *result);
40712c393a42Smrg
40722c393a42SmrgDescription
40732c393a42Smrg
4074eceda581Smrg   Returns whether a symbolic constant with name string is
4075eceda581Smrg   registered, placing the value of the constant in result if
4076eceda581Smrg   present.
4077eceda581Smrg     __________________________________________________________
40782c393a42Smrg
4079eceda581SmrgFcWeight
40802c393a42Smrg
4081ca08ab68Smrg   Table of Contents
4082eceda581Smrg   FcWeightFromOpenTypeDouble -- Convert from OpenType weight
4083eceda581Smrg          values to fontconfig ones
4084953daebaSmrg
4085eceda581Smrg   FcWeightToOpenTypeDouble -- Convert from fontconfig weight
4086eceda581Smrg          values to OpenType ones
4087a32e9e42Smrg
4088eceda581Smrg   FcWeightFromOpenType -- Convert from OpenType weight values to
4089eceda581Smrg          fontconfig ones
4090a32e9e42Smrg
4091eceda581Smrg   FcWeightToOpenType -- Convert from fontconfig weight values to
4092eceda581Smrg          OpenType ones
4093953daebaSmrg
4094953daebaSmrg   Maps weights to and from OpenType weights.
4095953daebaSmrg
4096eceda581SmrgFcWeightFromOpenTypeDouble
4097953daebaSmrg
4098953daebaSmrgName
4099953daebaSmrg
4100eceda581Smrg   FcWeightFromOpenTypeDouble -- Convert from OpenType weight
4101eceda581Smrg   values to fontconfig ones
4102953daebaSmrg
4103953daebaSmrgSynopsis
4104953daebaSmrg
4105eceda581Smrg#include <fontconfig/fontconfig.h>
4106a32e9e42Smrg
4107a32e9e42Smrg   double FcWeightFromOpenTypeDouble(doubleot_weight);
4108a32e9e42Smrg
4109a32e9e42SmrgDescription
4110a32e9e42Smrg
4111eceda581Smrg   FcWeightFromOpenTypeDouble returns an double value to use with
4112eceda581Smrg   FC_WEIGHT, from an double in the 1..1000 range, resembling the
4113eceda581Smrg   numbers from OpenType specification's OS/2 usWeight numbers,
4114eceda581Smrg   which are also similar to CSS font-weight numbers. If input is
4115eceda581Smrg   negative, zero, or greater than 1000, returns -1. This function
4116eceda581Smrg   linearly interpolates between various FC_WEIGHT_* constants. As
4117eceda581Smrg   such, the returned value does not necessarily match any of the
4118eceda581Smrg   predefined constants.
4119a32e9e42Smrg
4120a32e9e42SmrgSince
4121a32e9e42Smrg
4122a32e9e42Smrg   version 2.12.92
4123a32e9e42Smrg
4124eceda581SmrgFcWeightToOpenTypeDouble
4125a32e9e42Smrg
4126a32e9e42SmrgName
4127a32e9e42Smrg
4128eceda581Smrg   FcWeightToOpenTypeDouble -- Convert from fontconfig weight
4129eceda581Smrg   values to OpenType ones
4130a32e9e42Smrg
4131a32e9e42SmrgSynopsis
4132a32e9e42Smrg
4133eceda581Smrg#include <fontconfig/fontconfig.h>
4134a32e9e42Smrg
4135a32e9e42Smrg   double FcWeightToOpenTypeDouble(doubleot_weight);
4136a32e9e42Smrg
4137a32e9e42SmrgDescription
4138a32e9e42Smrg
4139eceda581Smrg   FcWeightToOpenTypeDouble is the inverse of
4140eceda581Smrg   FcWeightFromOpenType. If the input is less than FC_WEIGHT_THIN
4141eceda581Smrg   or greater than FC_WEIGHT_EXTRABLACK, returns -1. Otherwise
4142eceda581Smrg   returns a number in the range 1 to 1000.
4143a32e9e42Smrg
4144a32e9e42SmrgSince
4145a32e9e42Smrg
4146a32e9e42Smrg   version 2.12.92
4147a32e9e42Smrg
4148eceda581SmrgFcWeightFromOpenType
4149a32e9e42Smrg
4150a32e9e42SmrgName
4151a32e9e42Smrg
4152eceda581Smrg   FcWeightFromOpenType -- Convert from OpenType weight values to
4153eceda581Smrg   fontconfig ones
4154a32e9e42Smrg
4155a32e9e42SmrgSynopsis
4156a32e9e42Smrg
4157eceda581Smrg#include <fontconfig/fontconfig.h>
41582c393a42Smrg
4159953daebaSmrg   int FcWeightFromOpenType(intot_weight);
41602c393a42Smrg
4161953daebaSmrgDescription
41622c393a42Smrg
4163eceda581Smrg   FcWeightFromOpenType is like FcWeightFromOpenTypeDouble but
4164eceda581Smrg   with integer arguments. Use the other function instead.
4165ca08ab68Smrg
4166953daebaSmrgSince
4167ca08ab68Smrg
4168953daebaSmrg   version 2.11.91
4169ca08ab68Smrg
4170eceda581SmrgFcWeightToOpenType
41712c393a42Smrg
41722c393a42SmrgName
41732c393a42Smrg
4174eceda581Smrg   FcWeightToOpenType -- Convert from fontconfig weight values to
4175eceda581Smrg   OpenType ones
41762c393a42Smrg
41772c393a42SmrgSynopsis
41782c393a42Smrg
4179eceda581Smrg#include <fontconfig/fontconfig.h>
41802c393a42Smrg
4181953daebaSmrg   int FcWeightToOpenType(intot_weight);
41822c393a42Smrg
41832c393a42SmrgDescription
41842c393a42Smrg
4185eceda581Smrg   FcWeightToOpenType is like FcWeightToOpenTypeDouble but with
4186eceda581Smrg   integer arguments. Use the other function instead.
4187953daebaSmrg
4188953daebaSmrgSince
4189953daebaSmrg
4190953daebaSmrg   version 2.11.91
4191eceda581Smrg     __________________________________________________________
4192953daebaSmrg
4193eceda581SmrgFcBlanks
4194953daebaSmrg
4195953daebaSmrg   Table of Contents
4196eceda581Smrg   FcBlanksCreate -- Create an FcBlanks
4197eceda581Smrg   FcBlanksDestroy -- Destroy and FcBlanks
4198eceda581Smrg   FcBlanksAdd -- Add a character to an FcBlanks
4199eceda581Smrg   FcBlanksIsMember -- Query membership in an FcBlanks
4200953daebaSmrg
4201eceda581Smrg   An FcBlanks object holds a list of Unicode chars which are
4202eceda581Smrg   expected to be blank when drawn. When scanning new fonts, any
4203eceda581Smrg   glyphs which are empty and not in this list will be assumed to
4204eceda581Smrg   be broken and not placed in the FcCharSet associated with the
4205eceda581Smrg   font. This provides a significantly more accurate CharSet for
4206eceda581Smrg   applications.
42072c393a42Smrg
4208eceda581Smrg   FcBlanks is deprecated and should not be used in newly written
4209eceda581Smrg   code. It is still accepted by some functions for compatibility
4210eceda581Smrg   with older code but will be removed in the future.
4211a32e9e42Smrg
4212eceda581SmrgFcBlanksCreate
42132c393a42Smrg
42142c393a42SmrgName
42152c393a42Smrg
4216eceda581Smrg   FcBlanksCreate -- Create an FcBlanks
42172c393a42Smrg
42182c393a42SmrgSynopsis
42192c393a42Smrg
4220eceda581Smrg#include <fontconfig/fontconfig.h>
42212c393a42Smrg
4222953daebaSmrg   FcBlanks * FcBlanksCreate(void);
42232c393a42Smrg
42242c393a42SmrgDescription
42252c393a42Smrg
4226a32e9e42Smrg   FcBlanks is deprecated. This function always returns NULL.
42272c393a42Smrg
4228eceda581SmrgFcBlanksDestroy
42292c393a42Smrg
42302c393a42SmrgName
42312c393a42Smrg
4232eceda581Smrg   FcBlanksDestroy -- Destroy and FcBlanks
42332c393a42Smrg
42342c393a42SmrgSynopsis
42352c393a42Smrg
4236eceda581Smrg#include <fontconfig/fontconfig.h>
4237a6844aabSmrg
4238953daebaSmrg   void FcBlanksDestroy(FcBlanks *b);
42392c393a42Smrg
42402c393a42SmrgDescription
42412c393a42Smrg
4242a32e9e42Smrg   FcBlanks is deprecated. This function does nothing.
42432c393a42Smrg
4244eceda581SmrgFcBlanksAdd
42452c393a42Smrg
42462c393a42SmrgName
42472c393a42Smrg
4248eceda581Smrg   FcBlanksAdd -- Add a character to an FcBlanks
42492c393a42Smrg
42502c393a42SmrgSynopsis
42512c393a42Smrg
4252eceda581Smrg#include <fontconfig/fontconfig.h>
4253a6844aabSmrg
4254953daebaSmrg   FcBool FcBlanksAdd(FcBlanks *b, FcChar32 ucs4);
42552c393a42Smrg
42562c393a42SmrgDescription
42572c393a42Smrg
4258a32e9e42Smrg   FcBlanks is deprecated. This function always returns FALSE.
42592c393a42Smrg
4260eceda581SmrgFcBlanksIsMember
4261ca08ab68Smrg
4262953daebaSmrgName
4263ca08ab68Smrg
4264eceda581Smrg   FcBlanksIsMember -- Query membership in an FcBlanks
4265ca08ab68Smrg
4266953daebaSmrgSynopsis
4267ca08ab68Smrg
4268eceda581Smrg#include <fontconfig/fontconfig.h>
4269a6844aabSmrg
4270953daebaSmrg   FcBool FcBlanksIsMember(FcBlanks *b, FcChar32 ucs4);
42712c393a42Smrg
4272953daebaSmrgDescription
42732c393a42Smrg
4274a32e9e42Smrg   FcBlanks is deprecated. This function always returns FALSE.
4275eceda581Smrg     __________________________________________________________
4276a32e9e42Smrg
4277eceda581SmrgFcAtomic
42782c393a42Smrg
4279953daebaSmrg   Table of Contents
4280eceda581Smrg   FcAtomicCreate -- create an FcAtomic object
4281eceda581Smrg   FcAtomicLock -- lock a file
4282eceda581Smrg   FcAtomicNewFile -- return new temporary file name
4283eceda581Smrg   FcAtomicOrigFile -- return original file name
4284eceda581Smrg   FcAtomicReplaceOrig -- replace original with new
4285eceda581Smrg   FcAtomicDeleteNew -- delete new file
4286eceda581Smrg   FcAtomicUnlock -- unlock a file
4287eceda581Smrg   FcAtomicDestroy -- destroy an FcAtomic object
4288ca08ab68Smrg
4289eceda581Smrg   These functions provide a safe way to update configuration
4290eceda581Smrg   files, allowing ongoing reading of the old configuration file
4291eceda581Smrg   while locked for writing and ensuring that a consistent and
4292eceda581Smrg   complete version of the configuration file is always available.
4293a32e9e42Smrg
4294eceda581SmrgFcAtomicCreate
42952c393a42Smrg
42962c393a42SmrgName
42972c393a42Smrg
4298eceda581Smrg   FcAtomicCreate -- create an FcAtomic object
42992c393a42Smrg
43002c393a42SmrgSynopsis
43012c393a42Smrg
4302eceda581Smrg#include <fontconfig/fontconfig.h>
4303a6844aabSmrg
4304ca08ab68Smrg   FcAtomic * FcAtomicCreate(const FcChar8 *file);
43052c393a42Smrg
43062c393a42SmrgDescription
43072c393a42Smrg
4308eceda581Smrg   Creates a data structure containing data needed to control
4309eceda581Smrg   access to file. Writing is done to a separate file. Once that
4310eceda581Smrg   file is complete, the original configuration file is atomically
4311eceda581Smrg   replaced so that reading process always see a consistent and
4312eceda581Smrg   complete file without the need to lock for reading.
43132c393a42Smrg
4314eceda581SmrgFcAtomicLock
43152c393a42Smrg
43162c393a42SmrgName
43172c393a42Smrg
4318eceda581Smrg   FcAtomicLock -- lock a file
43192c393a42Smrg
43202c393a42SmrgSynopsis
43212c393a42Smrg
4322eceda581Smrg#include <fontconfig/fontconfig.h>
4323a6844aabSmrg
4324ca08ab68Smrg   FcBool FcAtomicLock(FcAtomic *atomic);
43252c393a42Smrg
43262c393a42SmrgDescription
43272c393a42Smrg
4328eceda581Smrg   Attempts to lock the file referenced by atomic. Returns FcFalse
4329eceda581Smrg   if the file is already locked, else returns FcTrue and leaves
4330eceda581Smrg   the file locked.
43312c393a42Smrg
4332eceda581SmrgFcAtomicNewFile
43332c393a42Smrg
43342c393a42SmrgName
43352c393a42Smrg
4336eceda581Smrg   FcAtomicNewFile -- return new temporary file name
43372c393a42Smrg
43382c393a42SmrgSynopsis
43392c393a42Smrg
4340eceda581Smrg#include <fontconfig/fontconfig.h>
4341a6844aabSmrg
4342ca08ab68Smrg   FcChar8 * FcAtomicNewFile(FcAtomic *atomic);
43432c393a42Smrg
43442c393a42SmrgDescription
43452c393a42Smrg
4346eceda581Smrg   Returns the filename for writing a new version of the file
4347eceda581Smrg   referenced by atomic.
43482c393a42Smrg
4349eceda581SmrgFcAtomicOrigFile
43502c393a42Smrg
43512c393a42SmrgName
43522c393a42Smrg
4353eceda581Smrg   FcAtomicOrigFile -- return original file name
43542c393a42Smrg
43552c393a42SmrgSynopsis
43562c393a42Smrg
4357eceda581Smrg#include <fontconfig/fontconfig.h>
4358a6844aabSmrg
4359ca08ab68Smrg   FcChar8 * FcAtomicOrigFile(FcAtomic *atomic);
43602c393a42Smrg
43612c393a42SmrgDescription
43622c393a42Smrg
4363ca08ab68Smrg   Returns the file referenced by atomic.
43642c393a42Smrg
4365eceda581SmrgFcAtomicReplaceOrig
43662c393a42Smrg
43672c393a42SmrgName
43682c393a42Smrg
4369eceda581Smrg   FcAtomicReplaceOrig -- replace original with new
43702c393a42Smrg
43712c393a42SmrgSynopsis
43722c393a42Smrg
4373eceda581Smrg#include <fontconfig/fontconfig.h>
4374a6844aabSmrg
4375ca08ab68Smrg   FcBool FcAtomicReplaceOrig(FcAtomic *atomic);
43762c393a42Smrg
43772c393a42SmrgDescription
43782c393a42Smrg
4379eceda581Smrg   Replaces the original file referenced by atomic with the new
4380eceda581Smrg   file. Returns FcFalse if the file cannot be replaced due to
4381eceda581Smrg   permission issues in the filesystem. Otherwise returns FcTrue.
43822c393a42Smrg
4383eceda581SmrgFcAtomicDeleteNew
43842c393a42Smrg
43852c393a42SmrgName
43862c393a42Smrg
4387eceda581Smrg   FcAtomicDeleteNew -- delete new file
43882c393a42Smrg
43892c393a42SmrgSynopsis
43902c393a42Smrg
4391eceda581Smrg#include <fontconfig/fontconfig.h>
4392a6844aabSmrg
4393ca08ab68Smrg   void FcAtomicDeleteNew(FcAtomic *atomic);
43942c393a42Smrg
43952c393a42SmrgDescription
43962c393a42Smrg
4397eceda581Smrg   Deletes the new file. Used in error recovery to back out
4398eceda581Smrg   changes.
43992c393a42Smrg
4400eceda581SmrgFcAtomicUnlock
44012c393a42Smrg
44022c393a42SmrgName
44032c393a42Smrg
4404eceda581Smrg   FcAtomicUnlock -- unlock a file
44052c393a42Smrg
44062c393a42SmrgSynopsis
44072c393a42Smrg
4408eceda581Smrg#include <fontconfig/fontconfig.h>
4409a6844aabSmrg
4410ca08ab68Smrg   void FcAtomicUnlock(FcAtomic *atomic);
44112c393a42Smrg
44122c393a42SmrgDescription
44132c393a42Smrg
4414ca08ab68Smrg   Unlocks the file.
44152c393a42Smrg
4416eceda581SmrgFcAtomicDestroy
44172c393a42Smrg
44182c393a42SmrgName
44192c393a42Smrg
4420eceda581Smrg   FcAtomicDestroy -- destroy an FcAtomic object
44212c393a42Smrg
44222c393a42SmrgSynopsis
44232c393a42Smrg
4424eceda581Smrg#include <fontconfig/fontconfig.h>
4425a6844aabSmrg
4426ca08ab68Smrg   void FcAtomicDestroy(FcAtomic *atomic);
44272c393a42Smrg
44282c393a42SmrgDescription
44292c393a42Smrg
4430ca08ab68Smrg   Destroys atomic.
4431eceda581Smrg     __________________________________________________________
44322c393a42Smrg
4433eceda581SmrgFile and Directory routines
4434ca08ab68Smrg
4435ca08ab68Smrg   Table of Contents
4436eceda581Smrg   FcFileScan -- scan a font file
4437eceda581Smrg   FcFileIsDir -- check whether a file is a directory
4438eceda581Smrg   FcDirScan -- scan a font directory without caching it
4439eceda581Smrg   FcDirSave -- DEPRECATED: formerly used to save a directory
4440eceda581Smrg          cache
4441ca08ab68Smrg
4442eceda581Smrg   FcDirCacheUnlink -- Remove all caches related to dir
4443eceda581Smrg   FcDirCacheValid -- check directory cache
4444eceda581Smrg   FcDirCacheLoad -- load a directory cache
4445eceda581Smrg   FcDirCacheRescan -- Re-scan a directory cache
4446eceda581Smrg   FcDirCacheRead -- read or construct a directory cache
4447eceda581Smrg   FcDirCacheLoadFile -- load a cache file
4448eceda581Smrg   FcDirCacheUnload -- unload a cache file
44492c393a42Smrg
4450eceda581Smrg   These routines work with font files and directories, including
4451eceda581Smrg   font directory cache files.
4452a32e9e42Smrg
4453eceda581SmrgFcFileScan
44542c393a42Smrg
44552c393a42SmrgName
44562c393a42Smrg
4457eceda581Smrg   FcFileScan -- scan a font file
44582c393a42Smrg
44592c393a42SmrgSynopsis
44602c393a42Smrg
4461eceda581Smrg#include <fontconfig/fontconfig.h>
4462a32e9e42Smrg
4463eceda581Smrg   FcBool FcFileScan(FcFontSet *set, FcStrSet *dirs, FcFileCache
4464eceda581Smrg   *cache, FcBlanks *blanks, const FcChar8 *file, FcBool force);
44652c393a42Smrg
44662c393a42SmrgDescription
44672c393a42Smrg
4468eceda581Smrg   Scans a single file and adds all fonts found to set. If force
4469eceda581Smrg   is FcTrue, then the file is scanned even if associated
4470eceda581Smrg   information is found in cache. If file is a directory, it is
4471eceda581Smrg   added to dirs. Whether fonts are found depends on fontconfig
4472eceda581Smrg   policy as well as the current configuration. Internally,
4473eceda581Smrg   fontconfig will ignore BDF and PCF fonts which are not in
4474eceda581Smrg   Unicode (or the effectively equivalent ISO Latin-1) encoding as
4475eceda581Smrg   those are not usable by Unicode-based applications. The
4476eceda581Smrg   configuration can ignore fonts based on filename or contents of
4477eceda581Smrg   the font file itself. Returns FcFalse if any of the fonts
4478eceda581Smrg   cannot be added (due to allocation failure). Otherwise returns
4479eceda581Smrg   FcTrue.
44802c393a42Smrg
4481eceda581SmrgFcFileIsDir
44822c393a42Smrg
44832c393a42SmrgName
44842c393a42Smrg
4485eceda581Smrg   FcFileIsDir -- check whether a file is a directory
44862c393a42Smrg
44872c393a42SmrgSynopsis
44882c393a42Smrg
4489eceda581Smrg#include <fontconfig/fontconfig.h>
4490a6844aabSmrg
4491ca08ab68Smrg   FcBool FcFileIsDir(const FcChar8 *file);
44922c393a42Smrg
44932c393a42SmrgDescription
44942c393a42Smrg
4495eceda581Smrg   Returns FcTrue if file is a directory, otherwise returns
4496eceda581Smrg   FcFalse.
44972c393a42Smrg
4498eceda581SmrgFcDirScan
44992c393a42Smrg
45002c393a42SmrgName
45012c393a42Smrg
4502eceda581Smrg   FcDirScan -- scan a font directory without caching it
45032c393a42Smrg
45042c393a42SmrgSynopsis
45052c393a42Smrg
4506eceda581Smrg#include <fontconfig/fontconfig.h>
4507a32e9e42Smrg
4508eceda581Smrg   FcBool FcDirScan(FcFontSet *set, FcStrSet *dirs, FcFileCache
4509eceda581Smrg   *cache, FcBlanks *blanks, const FcChar8 *dir, FcBool force);
45102c393a42Smrg
45112c393a42SmrgDescription
45122c393a42Smrg
4513eceda581Smrg   If cache is not zero or if force is FcFalse, this function
4514eceda581Smrg   currently returns FcFalse. Otherwise, it scans an entire
4515eceda581Smrg   directory and adds all fonts found to set. Any subdirectories
4516eceda581Smrg   found are added to dirs. Calling this function does not create
4517eceda581Smrg   any cache files. Use FcDirCacheRead() if caching is desired.
45182c393a42Smrg
4519eceda581SmrgFcDirSave
45202c393a42Smrg
45212c393a42SmrgName
45222c393a42Smrg
4523eceda581Smrg   FcDirSave -- DEPRECATED: formerly used to save a directory
4524eceda581Smrg   cache
45252c393a42Smrg
45262c393a42SmrgSynopsis
45272c393a42Smrg
4528eceda581Smrg#include <fontconfig/fontconfig.h>
4529a32e9e42Smrg
4530eceda581Smrg   FcBool FcDirSave(FcFontSet *set, FcStrSet *dirs, const FcChar8
4531eceda581Smrg   *dir);
45322c393a42Smrg
45332c393a42SmrgDescription
45342c393a42Smrg
4535eceda581Smrg   This function now does nothing aside from returning FcFalse. It
4536eceda581Smrg   used to creates the per-directory cache file for dir and
4537eceda581Smrg   populates it with the fonts in set and subdirectories in dirs.
4538eceda581Smrg   All of this functionality is now automatically managed by
4539eceda581Smrg   FcDirCacheLoad and FcDirCacheRead.
45402c393a42Smrg
4541eceda581SmrgFcDirCacheUnlink
45422c393a42Smrg
45432c393a42SmrgName
45442c393a42Smrg
4545eceda581Smrg   FcDirCacheUnlink -- Remove all caches related to dir
45462c393a42Smrg
45472c393a42SmrgSynopsis
45482c393a42Smrg
4549eceda581Smrg#include <fontconfig/fontconfig.h>
4550a6844aabSmrg
4551ca08ab68Smrg   FcBool FcDirCacheUnlink(const FcChar8 *dir, FcConfig *config);
45522c393a42Smrg
45532c393a42SmrgDescription
45542c393a42Smrg
4555eceda581Smrg   Scans the cache directories in config, removing any instances
4556eceda581Smrg   of the cache file for dir. Returns FcFalse when some internal
4557eceda581Smrg   error occurs (out of memory, etc). Errors actually unlinking
4558eceda581Smrg   any files are ignored.
45592c393a42Smrg
4560eceda581SmrgFcDirCacheValid
45612c393a42Smrg
45622c393a42SmrgName
45632c393a42Smrg
4564eceda581Smrg   FcDirCacheValid -- check directory cache
45652c393a42Smrg
45662c393a42SmrgSynopsis
45672c393a42Smrg
4568eceda581Smrg#include <fontconfig/fontconfig.h>
4569a6844aabSmrg
4570ca08ab68Smrg   FcBool FcDirCacheValid(const FcChar8 *dir);
45712c393a42Smrg
45722c393a42SmrgDescription
45732c393a42Smrg
4574eceda581Smrg   Returns FcTrue if dir has an associated valid cache file, else
4575eceda581Smrg   returns FcFalse
45762c393a42Smrg
4577eceda581SmrgFcDirCacheLoad
45782c393a42Smrg
45792c393a42SmrgName
45802c393a42Smrg
4581eceda581Smrg   FcDirCacheLoad -- load a directory cache
45822c393a42Smrg
45832c393a42SmrgSynopsis
45842c393a42Smrg
4585eceda581Smrg#include <fontconfig/fontconfig.h>
4586a32e9e42Smrg
4587eceda581Smrg   FcCache * FcDirCacheLoad(const FcChar8 *dir, FcConfig *config,
4588eceda581Smrg   FcChar8 **cache_file);
45892c393a42Smrg
45902c393a42SmrgDescription
45912c393a42Smrg
4592eceda581Smrg   Loads the cache related to dir. If no cache file exists,
4593eceda581Smrg   returns NULL. The name of the cache file is returned in
4594eceda581Smrg   cache_file, unless that is NULL. See also FcDirCacheRead.
45952c393a42Smrg
4596eceda581SmrgFcDirCacheRescan
4597b09479dcSmrg
4598b09479dcSmrgName
4599b09479dcSmrg
4600eceda581Smrg   FcDirCacheRescan -- Re-scan a directory cache
4601b09479dcSmrg
4602b09479dcSmrgSynopsis
4603b09479dcSmrg
4604eceda581Smrg#include <fontconfig/fontconfig.h>
4605b09479dcSmrg
4606eceda581Smrg   FcCache * FcDirCacheRescan(const FcChar8 *dir, FcConfig
4607eceda581Smrg   *config);
4608b09479dcSmrg
4609b09479dcSmrgDescription
4610b09479dcSmrg
4611eceda581Smrg   Re-scan directories only at dir and update the cache. returns
4612eceda581Smrg   NULL if failed.
4613b09479dcSmrg
4614b09479dcSmrgSince
46152c393a42Smrg
4616b09479dcSmrg   version 2.11.1
46172c393a42Smrg
4618eceda581SmrgFcDirCacheRead
46192c393a42Smrg
46202c393a42SmrgName
46212c393a42Smrg
4622eceda581Smrg   FcDirCacheRead -- read or construct a directory cache
46232c393a42Smrg
46242c393a42SmrgSynopsis
46252c393a42Smrg
4626eceda581Smrg#include <fontconfig/fontconfig.h>
4627a32e9e42Smrg
4628eceda581Smrg   FcCache * FcDirCacheRead(const FcChar8 *dir, FcBool force,
4629eceda581Smrg   FcConfig *config);
46302c393a42Smrg
46312c393a42SmrgDescription
46322c393a42Smrg
4633eceda581Smrg   This returns a cache for dir. If force is FcFalse, then an
4634eceda581Smrg   existing, valid cache file will be used. Otherwise, a new cache
4635eceda581Smrg   will be created by scanning the directory and that returned.
46362c393a42Smrg
4637eceda581SmrgFcDirCacheLoadFile
46382c393a42Smrg
46392c393a42SmrgName
46402c393a42Smrg
4641eceda581Smrg   FcDirCacheLoadFile -- load a cache file
46422c393a42Smrg
46432c393a42SmrgSynopsis
46442c393a42Smrg
4645eceda581Smrg#include <fontconfig/fontconfig.h>
4646a32e9e42Smrg
4647eceda581Smrg   FcCache * FcDirCacheLoadFile(const FcChar8 *cache_file, struct
4648eceda581Smrg   stat *file_stat);
46492c393a42Smrg
46502c393a42SmrgDescription
46512c393a42Smrg
4652eceda581Smrg   This function loads a directory cache from cache_file. If
4653eceda581Smrg   file_stat is non-NULL, it will be filled with the results of
4654eceda581Smrg   stat(2) on the cache file.
46552c393a42Smrg
4656eceda581SmrgFcDirCacheUnload
46572c393a42Smrg
46582c393a42SmrgName
46592c393a42Smrg
4660eceda581Smrg   FcDirCacheUnload -- unload a cache file
46612c393a42Smrg
46622c393a42SmrgSynopsis
46632c393a42Smrg
4664eceda581Smrg#include <fontconfig/fontconfig.h>
4665a6844aabSmrg
4666ca08ab68Smrg   void FcDirCacheUnload(FcCache *cache);
46672c393a42Smrg
46682c393a42SmrgDescription
46692c393a42Smrg
4670eceda581Smrg   This function dereferences cache. When no other references to
4671eceda581Smrg   it remain, all memory associated with the cache will be freed.
4672eceda581Smrg     __________________________________________________________
4673a32e9e42Smrg
4674eceda581SmrgFcCache routines
4675ca08ab68Smrg
4676ca08ab68Smrg   Table of Contents
4677eceda581Smrg   FcCacheDir -- Return directory of cache
4678eceda581Smrg   FcCacheCopySet -- Returns a copy of the fontset from cache
4679eceda581Smrg   FcCacheSubdir -- Return the i'th subdirectory.
4680eceda581Smrg   FcCacheNumSubdir -- Return the number of subdirectories in
4681eceda581Smrg          cache.
4682ca08ab68Smrg
4683eceda581Smrg   FcCacheNumFont -- Returns the number of fonts in cache.
4684eceda581Smrg   FcDirCacheClean -- Clean up a cache directory
4685eceda581Smrg   FcCacheCreateTagFile -- Create CACHEDIR.TAG at cache directory.
4686eceda581Smrg   FcDirCacheCreateUUID -- Create .uuid file at a directory
4687eceda581Smrg   FcDirCacheDeleteUUID -- Delete .uuid file
46882c393a42Smrg
4689eceda581Smrg   These routines work with font directory caches, accessing their
4690eceda581Smrg   contents in limited ways. It is not expected that normal
4691eceda581Smrg   applications will need to use these functions.
4692ca08ab68Smrg
4693eceda581SmrgFcCacheDir
46942c393a42Smrg
46952c393a42SmrgName
46962c393a42Smrg
4697eceda581Smrg   FcCacheDir -- Return directory of cache
46982c393a42Smrg
46992c393a42SmrgSynopsis
47002c393a42Smrg
4701eceda581Smrg#include <fontconfig/fontconfig.h>
4702a6844aabSmrg
4703ca08ab68Smrg   const FcChar8 * FcCacheDir(const FcCache *cache);
47042c393a42Smrg
47052c393a42SmrgDescription
47062c393a42Smrg
4707eceda581Smrg   This function returns the directory from which the cache was
4708eceda581Smrg   constructed.
47092c393a42Smrg
4710eceda581SmrgFcCacheCopySet
47112c393a42Smrg
47122c393a42SmrgName
47132c393a42Smrg
4714eceda581Smrg   FcCacheCopySet -- Returns a copy of the fontset from cache
47152c393a42Smrg
47162c393a42SmrgSynopsis
47172c393a42Smrg
4718eceda581Smrg#include <fontconfig/fontconfig.h>
4719a6844aabSmrg
4720ca08ab68Smrg   FcFontSet * FcCacheCopySet(const FcCache *cache);
47212c393a42Smrg
47222c393a42SmrgDescription
47232c393a42Smrg
4724eceda581Smrg   The returned fontset contains each of the font patterns from
4725eceda581Smrg   cache. This fontset may be modified, but the patterns from the
4726eceda581Smrg   cache are read-only.
47272c393a42Smrg
4728eceda581SmrgFcCacheSubdir
47292c393a42Smrg
47302c393a42SmrgName
47312c393a42Smrg
4732eceda581Smrg   FcCacheSubdir -- Return the i'th subdirectory.
47332c393a42Smrg
47342c393a42SmrgSynopsis
47352c393a42Smrg
4736eceda581Smrg#include <fontconfig/fontconfig.h>
4737a6844aabSmrg
4738ca08ab68Smrg   const FcChar8 * FcCacheSubdir(const FcCache *cache, inti);
47392c393a42Smrg
47402c393a42SmrgDescription
47412c393a42Smrg
4742eceda581Smrg   The set of subdirectories stored in a cache file are indexed by
4743eceda581Smrg   this function, i should range from 0 to n-1, where n is the
4744eceda581Smrg   return value from FcCacheNumSubdir.
47452c393a42Smrg
4746eceda581SmrgFcCacheNumSubdir
47472c393a42Smrg
47482c393a42SmrgName
47492c393a42Smrg
4750eceda581Smrg   FcCacheNumSubdir -- Return the number of subdirectories in
4751eceda581Smrg   cache.
47522c393a42Smrg
47532c393a42SmrgSynopsis
47542c393a42Smrg
4755eceda581Smrg#include <fontconfig/fontconfig.h>
4756a6844aabSmrg
4757ca08ab68Smrg   int FcCacheNumSubdir(const FcCache *cache);
47582c393a42Smrg
47592c393a42SmrgDescription
47602c393a42Smrg
4761ca08ab68Smrg   This returns the total number of subdirectories in the cache.
47622c393a42Smrg
4763eceda581SmrgFcCacheNumFont
47642c393a42Smrg
47652c393a42SmrgName
47662c393a42Smrg
4767eceda581Smrg   FcCacheNumFont -- Returns the number of fonts in cache.
47682c393a42Smrg
47692c393a42SmrgSynopsis
47702c393a42Smrg
4771eceda581Smrg#include <fontconfig/fontconfig.h>
4772a6844aabSmrg
4773ca08ab68Smrg   int FcCacheNumFont(const FcCache *cache);
47742c393a42Smrg
47752c393a42SmrgDescription
47762c393a42Smrg
4777eceda581Smrg   This returns the number of fonts which would be included in the
4778eceda581Smrg   return from FcCacheCopySet.
47792c393a42Smrg
4780eceda581SmrgFcDirCacheClean
4781ca08ab68Smrg
4782ca08ab68SmrgName
4783ca08ab68Smrg
4784eceda581Smrg   FcDirCacheClean -- Clean up a cache directory
4785ca08ab68Smrg
4786ca08ab68SmrgSynopsis
4787ca08ab68Smrg
4788eceda581Smrg#include <fontconfig/fontconfig.h>
4789a6844aabSmrg
4790eceda581Smrg   FcBool FcDirCacheClean(const FcChar8 *cache_dir,
4791eceda581Smrg   FcBoolverbose);
4792ca08ab68Smrg
4793ca08ab68SmrgDescription
47942c393a42Smrg
4795eceda581Smrg   This tries to clean up the cache directory of cache_dir. This
4796eceda581Smrg   returns FcTrue if the operation is successfully complete.
4797eceda581Smrg   otherwise FcFalse.
4798a32e9e42Smrg
4799b09479dcSmrgSince
48002c393a42Smrg
4801b09479dcSmrg   version 2.9.91
4802ca08ab68Smrg
4803eceda581SmrgFcCacheCreateTagFile
48042c393a42Smrg
48052c393a42SmrgName
48062c393a42Smrg
4807eceda581Smrg   FcCacheCreateTagFile -- Create CACHEDIR.TAG at cache directory.
48082c393a42Smrg
48092c393a42SmrgSynopsis
48102c393a42Smrg
4811eceda581Smrg#include <fontconfig/fontconfig.h>
4812a6844aabSmrg
4813ca08ab68Smrg   void FcCacheCreateTagFile(const FcConfig *config);
48142c393a42Smrg
48152c393a42SmrgDescription
48162c393a42Smrg
4817eceda581Smrg   This tries to create CACHEDIR.TAG file at the cache directory
4818eceda581Smrg   registered to config.
48192c393a42Smrg
4820b09479dcSmrgSince
48212c393a42Smrg
4822b09479dcSmrg   version 2.9.91
4823ca08ab68Smrg
4824eceda581SmrgFcDirCacheCreateUUID
4825a32e9e42Smrg
4826a32e9e42SmrgName
4827a32e9e42Smrg
4828eceda581Smrg   FcDirCacheCreateUUID -- Create .uuid file at a directory
4829a32e9e42Smrg
4830a32e9e42SmrgSynopsis
4831a32e9e42Smrg
4832eceda581Smrg#include <fontconfig/fontconfig.h>
4833a32e9e42Smrg
4834eceda581Smrg   FcBool FcDirCacheCreateUUID(FcChar8 *dir, FcBoolforce, FcConfig
4835eceda581Smrg   *config);
4836a32e9e42Smrg
4837a32e9e42SmrgDescription
4838a32e9e42Smrg
4839a4e54154Smrg   This function is deprecated. it doesn't take any effects.
4840a32e9e42Smrg
4841a32e9e42SmrgSince
4842a32e9e42Smrg
4843a32e9e42Smrg   version 2.12.92
4844a32e9e42Smrg
4845eceda581SmrgFcDirCacheDeleteUUID
4846a32e9e42Smrg
4847a32e9e42SmrgName
4848a32e9e42Smrg
4849eceda581Smrg   FcDirCacheDeleteUUID -- Delete .uuid file
4850a32e9e42Smrg
4851a32e9e42SmrgSynopsis
4852a32e9e42Smrg
4853eceda581Smrg#include <fontconfig/fontconfig.h>
4854a32e9e42Smrg
4855eceda581Smrg   FcBool FcDirCacheDeleteUUID(const FcChar8 *dir, FcConfig
4856eceda581Smrg   *config);
4857a32e9e42Smrg
4858a32e9e42SmrgDescription
4859a32e9e42Smrg
4860eceda581Smrg   This is to delete .uuid file containing an UUID at a font
4861eceda581Smrg   directory of dir.
4862a32e9e42Smrg
4863a32e9e42SmrgSince
4864a32e9e42Smrg
4865a32e9e42Smrg   version 2.13.1
4866eceda581Smrg     __________________________________________________________
4867a32e9e42Smrg
4868eceda581SmrgFcStrSet and FcStrList
4869ca08ab68Smrg
4870ca08ab68Smrg   Table of Contents
4871eceda581Smrg   FcStrSetCreate -- create a string set
4872eceda581Smrg   FcStrSetMember -- check set for membership
4873eceda581Smrg   FcStrSetEqual -- check sets for equality
4874eceda581Smrg   FcStrSetAdd -- add to a string set
4875eceda581Smrg   FcStrSetAddFilename -- add a filename to a string set
4876eceda581Smrg   FcStrSetDel -- delete from a string set
4877eceda581Smrg   FcStrSetDestroy -- destroy a string set
4878eceda581Smrg   FcStrListCreate -- create a string iterator
4879eceda581Smrg   FcStrListFirst -- get first string in iteration
4880eceda581Smrg   FcStrListNext -- get next string in iteration
4881eceda581Smrg   FcStrListDone -- destroy a string iterator
4882ca08ab68Smrg
4883eceda581Smrg   A data structure for enumerating strings, used to list
4884eceda581Smrg   directories while scanning the configuration as directories are
4885eceda581Smrg   added while scanning.
4886a32e9e42Smrg
4887eceda581SmrgFcStrSetCreate
48882c393a42Smrg
48892c393a42SmrgName
48902c393a42Smrg
4891eceda581Smrg   FcStrSetCreate -- create a string set
48922c393a42Smrg
48932c393a42SmrgSynopsis
48942c393a42Smrg
4895eceda581Smrg#include <fontconfig/fontconfig.h>
4896a6844aabSmrg
4897ca08ab68Smrg   FcStrSet * FcStrSetCreate(void);
48982c393a42Smrg
48992c393a42SmrgDescription
49002c393a42Smrg
4901ca08ab68Smrg   Create an empty set.
49022c393a42Smrg
4903eceda581SmrgFcStrSetMember
49042c393a42Smrg
49052c393a42SmrgName
49062c393a42Smrg
4907eceda581Smrg   FcStrSetMember -- check set for membership
49082c393a42Smrg
49092c393a42SmrgSynopsis
49102c393a42Smrg
4911eceda581Smrg#include <fontconfig/fontconfig.h>
4912a6844aabSmrg
4913ca08ab68Smrg   FcBool FcStrSetMember(FcStrSet *set, const FcChar8 *s);
49142c393a42Smrg
49152c393a42SmrgDescription
49162c393a42Smrg
4917ca08ab68Smrg   Returns whether s is a member of set.
49182c393a42Smrg
4919eceda581SmrgFcStrSetEqual
49202c393a42Smrg
49212c393a42SmrgName
49222c393a42Smrg
4923eceda581Smrg   FcStrSetEqual -- check sets for equality
49242c393a42Smrg
49252c393a42SmrgSynopsis
49262c393a42Smrg
4927eceda581Smrg#include <fontconfig/fontconfig.h>
4928a6844aabSmrg
4929ca08ab68Smrg   FcBool FcStrSetEqual(FcStrSet *set_a, FcStrSet *set_b);
49302c393a42Smrg
49312c393a42SmrgDescription
49322c393a42Smrg
4933eceda581Smrg   Returns whether set_a contains precisely the same strings as
4934eceda581Smrg   set_b. Ordering of strings within the two sets is not
4935eceda581Smrg   considered.
49362c393a42Smrg
4937eceda581SmrgFcStrSetAdd
49382c393a42Smrg
49392c393a42SmrgName
49402c393a42Smrg
4941eceda581Smrg   FcStrSetAdd -- add to a string set
49422c393a42Smrg
49432c393a42SmrgSynopsis
49442c393a42Smrg
4945eceda581Smrg#include <fontconfig/fontconfig.h>
4946a6844aabSmrg
4947ca08ab68Smrg   FcBool FcStrSetAdd(FcStrSet *set, const FcChar8 *s);
49482c393a42Smrg
49492c393a42SmrgDescription
49502c393a42Smrg
4951ca08ab68Smrg   Adds a copy of s to set.
49522c393a42Smrg
4953eceda581SmrgFcStrSetAddFilename
49542c393a42Smrg
49552c393a42SmrgName
49562c393a42Smrg
4957eceda581Smrg   FcStrSetAddFilename -- add a filename to a string set
49582c393a42Smrg
49592c393a42SmrgSynopsis
49602c393a42Smrg
4961eceda581Smrg#include <fontconfig/fontconfig.h>
4962a6844aabSmrg
4963ca08ab68Smrg   FcBool FcStrSetAddFilename(FcStrSet *set, const FcChar8 *s);
49642c393a42Smrg
49652c393a42SmrgDescription
49662c393a42Smrg
4967eceda581Smrg   Adds a copy s to set, The copy is created with
4968eceda581Smrg   FcStrCopyFilename so that leading '~' values are replaced with
4969eceda581Smrg   the value of the HOME environment variable.
49702c393a42Smrg
4971eceda581SmrgFcStrSetDel
49722c393a42Smrg
49732c393a42SmrgName
49742c393a42Smrg
4975eceda581Smrg   FcStrSetDel -- delete from a string set
49762c393a42Smrg
49772c393a42SmrgSynopsis
49782c393a42Smrg
4979eceda581Smrg#include <fontconfig/fontconfig.h>
4980a6844aabSmrg
4981ca08ab68Smrg   FcBool FcStrSetDel(FcStrSet *set, const FcChar8 *s);
49822c393a42Smrg
49832c393a42SmrgDescription
49842c393a42Smrg
4985eceda581Smrg   Removes s from set, returning FcTrue if s was a member else
4986eceda581Smrg   FcFalse.
49872c393a42Smrg
4988eceda581SmrgFcStrSetDestroy
49892c393a42Smrg
49902c393a42SmrgName
49912c393a42Smrg
4992eceda581Smrg   FcStrSetDestroy -- destroy a string set
49932c393a42Smrg
49942c393a42SmrgSynopsis
49952c393a42Smrg
4996eceda581Smrg#include <fontconfig/fontconfig.h>
4997a6844aabSmrg
4998ca08ab68Smrg   void FcStrSetDestroy(FcStrSet *set);
49992c393a42Smrg
50002c393a42SmrgDescription
50012c393a42Smrg
5002ca08ab68Smrg   Destroys set.
50032c393a42Smrg
5004eceda581SmrgFcStrListCreate
50052c393a42Smrg
50062c393a42SmrgName
50072c393a42Smrg
5008eceda581Smrg   FcStrListCreate -- create a string iterator
50092c393a42Smrg
50102c393a42SmrgSynopsis
50112c393a42Smrg
5012eceda581Smrg#include <fontconfig/fontconfig.h>
5013a6844aabSmrg
5014ca08ab68Smrg   FcStrList * FcStrListCreate(FcStrSet *set);
50152c393a42Smrg
50162c393a42SmrgDescription
50172c393a42Smrg
5018ca08ab68Smrg   Creates an iterator to list the strings in set.
50192c393a42Smrg
5020eceda581SmrgFcStrListFirst
50216fc018e4Smrg
50226fc018e4SmrgName
50236fc018e4Smrg
5024eceda581Smrg   FcStrListFirst -- get first string in iteration
50256fc018e4Smrg
50266fc018e4SmrgSynopsis
50276fc018e4Smrg
5028eceda581Smrg#include <fontconfig/fontconfig.h>
50296fc018e4Smrg
50306fc018e4Smrg   void FcStrListFirst(FcStrList *list);
50316fc018e4Smrg
50326fc018e4SmrgDescription
50336fc018e4Smrg
50346fc018e4Smrg   Returns the first string in list.
50356fc018e4Smrg
5036b09479dcSmrgSince
50376fc018e4Smrg
5038b09479dcSmrg   version 2.11.0
50392c393a42Smrg
5040eceda581SmrgFcStrListNext
50412c393a42Smrg
50422c393a42SmrgName
50432c393a42Smrg
5044eceda581Smrg   FcStrListNext -- get next string in iteration
50452c393a42Smrg
50462c393a42SmrgSynopsis
50472c393a42Smrg
5048eceda581Smrg#include <fontconfig/fontconfig.h>
5049a6844aabSmrg
5050ca08ab68Smrg   FcChar8 * FcStrListNext(FcStrList *list);
50512c393a42Smrg
50522c393a42SmrgDescription
50532c393a42Smrg
50546fc018e4Smrg   Returns the next string in list.
50552c393a42Smrg
5056eceda581SmrgFcStrListDone
50572c393a42Smrg
5058ca08ab68SmrgName
5059ca08ab68Smrg
5060eceda581Smrg   FcStrListDone -- destroy a string iterator
5061ca08ab68Smrg
5062ca08ab68SmrgSynopsis
5063ca08ab68Smrg
5064eceda581Smrg#include <fontconfig/fontconfig.h>
5065ca08ab68Smrg
5066ca08ab68Smrg   void FcStrListDone(FcStrList *list);
5067ca08ab68Smrg
5068ca08ab68SmrgDescription
5069ca08ab68Smrg
5070ca08ab68Smrg   Destroys the enumerator list.
5071eceda581Smrg     __________________________________________________________
5072ca08ab68Smrg
5073eceda581SmrgString utilities
5074ca08ab68Smrg
5075ca08ab68Smrg   Table of Contents
5076eceda581Smrg   FcUtf8ToUcs4 -- convert UTF-8 to UCS4
5077eceda581Smrg   FcUcs4ToUtf8 -- convert UCS4 to UTF-8
5078eceda581Smrg   FcUtf8Len -- count UTF-8 encoded chars
5079eceda581Smrg   FcUtf16ToUcs4 -- convert UTF-16 to UCS4
5080eceda581Smrg   FcUtf16Len -- count UTF-16 encoded chars
5081eceda581Smrg   FcIsLower -- check for lower case ASCII character
5082eceda581Smrg   FcIsUpper -- check for upper case ASCII character
5083eceda581Smrg   FcToLower -- convert upper case ASCII to lower case
5084eceda581Smrg   FcStrCopy -- duplicate a string
5085eceda581Smrg   FcStrDowncase -- create a lower case translation of a string
5086eceda581Smrg   FcStrCopyFilename -- create a complete path from a filename
5087eceda581Smrg   FcStrCmp -- compare UTF-8 strings
5088eceda581Smrg   FcStrCmpIgnoreCase -- compare UTF-8 strings ignoring case
5089eceda581Smrg   FcStrStr -- locate UTF-8 substring
5090eceda581Smrg   FcStrStrIgnoreCase -- locate UTF-8 substring ignoring case
5091eceda581Smrg   FcStrPlus -- concatenate two strings
5092eceda581Smrg   FcStrFree -- free a string
5093eceda581Smrg   FcStrBuildFilename -- Concatenate strings as a file path
5094eceda581Smrg   FcStrDirname -- directory part of filename
5095eceda581Smrg   FcStrBasename -- last component of filename
5096ca08ab68Smrg
5097eceda581Smrg   Fontconfig manipulates many UTF-8 strings represented with the
5098eceda581Smrg   FcChar8 type. These functions are exposed to help applications
5099eceda581Smrg   deal with these UTF-8 strings in a locale-insensitive manner.
5100a32e9e42Smrg
5101eceda581SmrgFcUtf8ToUcs4
51022c393a42Smrg
51032c393a42SmrgName
51042c393a42Smrg
5105eceda581Smrg   FcUtf8ToUcs4 -- convert UTF-8 to UCS4
51062c393a42Smrg
51072c393a42SmrgSynopsis
51082c393a42Smrg
5109eceda581Smrg#include <fontconfig/fontconfig.h>
5110a6844aabSmrg
5111ca08ab68Smrg   int FcUtf8ToUcs4(FcChar8 *src, FcChar32 *dst, int len);
51122c393a42Smrg
51132c393a42SmrgDescription
51142c393a42Smrg
5115eceda581Smrg   Converts the next Unicode char from src into dst and returns
5116eceda581Smrg   the number of bytes containing the char. src must be at least
5117eceda581Smrg   len bytes long.
51182c393a42Smrg
5119eceda581SmrgFcUcs4ToUtf8
51202c393a42Smrg
51212c393a42SmrgName
51222c393a42Smrg
5123eceda581Smrg   FcUcs4ToUtf8 -- convert UCS4 to UTF-8
51242c393a42Smrg
51252c393a42SmrgSynopsis
51262c393a42Smrg
5127eceda581Smrg#include <fontconfig/fontconfig.h>
5128a6844aabSmrg
5129ca08ab68Smrg   int FcUcs4ToUtf8(FcChar32 src, FcChar8 dst[FC_UTF8_MAX_LEN]);
51302c393a42Smrg
51312c393a42SmrgDescription
51322c393a42Smrg
5133eceda581Smrg   Converts the Unicode char from src into dst and returns the
5134eceda581Smrg   number of bytes needed to encode the char.
51352c393a42Smrg
5136eceda581SmrgFcUtf8Len
51372c393a42Smrg
51382c393a42SmrgName
51392c393a42Smrg
5140eceda581Smrg   FcUtf8Len -- count UTF-8 encoded chars
51412c393a42Smrg
51422c393a42SmrgSynopsis
51432c393a42Smrg
5144eceda581Smrg#include <fontconfig/fontconfig.h>
5145a6844aabSmrg
5146eceda581Smrg   FcBool FcUtf8Len(FcChar8 *src, int len, int *nchar, int
5147eceda581Smrg   *wchar);
51482c393a42Smrg
51492c393a42SmrgDescription
51502c393a42Smrg
5151eceda581Smrg   Counts the number of Unicode chars in len bytes of src. Places
5152eceda581Smrg   that count in nchar. wchar contains 1, 2 or 4 depending on the
5153eceda581Smrg   number of bytes needed to hold the largest Unicode char
5154eceda581Smrg   counted. The return value indicates whether src is a
5155eceda581Smrg   well-formed UTF8 string.
51562c393a42Smrg
5157eceda581SmrgFcUtf16ToUcs4
51582c393a42Smrg
51592c393a42SmrgName
51602c393a42Smrg
5161eceda581Smrg   FcUtf16ToUcs4 -- convert UTF-16 to UCS4
51622c393a42Smrg
51632c393a42SmrgSynopsis
51642c393a42Smrg
5165eceda581Smrg#include <fontconfig/fontconfig.h>
5166a32e9e42Smrg
5167eceda581Smrg   int FcUtf16ToUcs4(FcChar8 *src, FcEndian endian, FcChar32 *dst,
5168eceda581Smrg   int len);
51692c393a42Smrg
51702c393a42SmrgDescription
51712c393a42Smrg
5172eceda581Smrg   Converts the next Unicode char from src into dst and returns
5173eceda581Smrg   the number of bytes containing the char. src must be at least
5174eceda581Smrg   len bytes long. Bytes of src are combined into 16-bit units
5175eceda581Smrg   according to endian.
51762c393a42Smrg
5177eceda581SmrgFcUtf16Len
51782c393a42Smrg
51792c393a42SmrgName
51802c393a42Smrg
5181eceda581Smrg   FcUtf16Len -- count UTF-16 encoded chars
51822c393a42Smrg
51832c393a42SmrgSynopsis
51842c393a42Smrg
5185eceda581Smrg#include <fontconfig/fontconfig.h>
5186a32e9e42Smrg
5187eceda581Smrg   FcBool FcUtf16Len(FcChar8 *src, FcEndian endian, int len, int
5188eceda581Smrg   *nchar, int *wchar);
51892c393a42Smrg
51902c393a42SmrgDescription
51912c393a42Smrg
5192eceda581Smrg   Counts the number of Unicode chars in len bytes of src. Bytes
5193eceda581Smrg   of src are combined into 16-bit units according to endian.
5194eceda581Smrg   Places that count in nchar. wchar contains 1, 2 or 4 depending
5195eceda581Smrg   on the number of bytes needed to hold the largest Unicode char
5196eceda581Smrg   counted. The return value indicates whether string is a
5197eceda581Smrg   well-formed UTF16 string.
51982c393a42Smrg
5199eceda581SmrgFcIsLower
52002c393a42Smrg
52012c393a42SmrgName
52022c393a42Smrg
5203eceda581Smrg   FcIsLower -- check for lower case ASCII character
52042c393a42Smrg
52052c393a42SmrgSynopsis
52062c393a42Smrg
5207eceda581Smrg#include <fontconfig/fontconfig.h>
5208a6844aabSmrg
5209ca08ab68Smrg   FcBool FcIsLower(FcChar8c);
52102c393a42Smrg
52112c393a42SmrgDescription
52122c393a42Smrg
5213ca08ab68Smrg   This macro checks whether c is an lower case ASCII letter.
52142c393a42Smrg
5215eceda581SmrgFcIsUpper
52162c393a42Smrg
52172c393a42SmrgName
52182c393a42Smrg
5219eceda581Smrg   FcIsUpper -- check for upper case ASCII character
52202c393a42Smrg
52212c393a42SmrgSynopsis
52222c393a42Smrg
5223eceda581Smrg#include <fontconfig/fontconfig.h>
5224a6844aabSmrg
5225ca08ab68Smrg   FcBool FcIsUpper(FcChar8c);
52262c393a42Smrg
52272c393a42SmrgDescription
52282c393a42Smrg
5229ca08ab68Smrg   This macro checks whether c is a upper case ASCII letter.
52302c393a42Smrg
5231eceda581SmrgFcToLower
52322c393a42Smrg
52332c393a42SmrgName
52342c393a42Smrg
5235eceda581Smrg   FcToLower -- convert upper case ASCII to lower case
52362c393a42Smrg
52372c393a42SmrgSynopsis
52382c393a42Smrg
5239eceda581Smrg#include <fontconfig/fontconfig.h>
5240a6844aabSmrg
5241ca08ab68Smrg   FcChar8 FcToLower(FcChar8c);
52422c393a42Smrg
52432c393a42SmrgDescription
52442c393a42Smrg
5245eceda581Smrg   This macro converts upper case ASCII c to the equivalent lower
5246eceda581Smrg   case letter.
52472c393a42Smrg
5248eceda581SmrgFcStrCopy
52492c393a42Smrg
52502c393a42SmrgName
52512c393a42Smrg
5252eceda581Smrg   FcStrCopy -- duplicate a string
52532c393a42Smrg
52542c393a42SmrgSynopsis
52552c393a42Smrg
5256eceda581Smrg#include <fontconfig/fontconfig.h>
5257a6844aabSmrg
5258ca08ab68Smrg   FcChar8 * FcStrCopy(const FcChar8 *s);
52592c393a42Smrg
52602c393a42SmrgDescription
52612c393a42Smrg
5262eceda581Smrg   Allocates memory, copies s and returns the resulting buffer.
5263eceda581Smrg   Yes, this is strdup, but that function isn't available on every
5264eceda581Smrg   platform.
52652c393a42Smrg
5266eceda581SmrgFcStrDowncase
52672c393a42Smrg
52682c393a42SmrgName
52692c393a42Smrg
5270eceda581Smrg   FcStrDowncase -- create a lower case translation of a string
52712c393a42Smrg
52722c393a42SmrgSynopsis
52732c393a42Smrg
5274eceda581Smrg#include <fontconfig/fontconfig.h>
5275a6844aabSmrg
5276ca08ab68Smrg   FcChar8 * FcStrDowncase(const FcChar8 *s);
52772c393a42Smrg
52782c393a42SmrgDescription
52792c393a42Smrg
5280eceda581Smrg   Allocates memory, copies s, converting upper case letters to
5281eceda581Smrg   lower case and returns the allocated buffer.
52822c393a42Smrg
5283eceda581SmrgFcStrCopyFilename
52842c393a42Smrg
52852c393a42SmrgName
52862c393a42Smrg
5287eceda581Smrg   FcStrCopyFilename -- create a complete path from a filename
52882c393a42Smrg
52892c393a42SmrgSynopsis
52902c393a42Smrg
5291eceda581Smrg#include <fontconfig/fontconfig.h>
5292a6844aabSmrg
5293ca08ab68Smrg   FcChar8 * FcStrCopyFilename(const FcChar8 *s);
52942c393a42Smrg
52952c393a42SmrgDescription
52962c393a42Smrg
5297eceda581Smrg   FcStrCopyFilename constructs an absolute pathname from s. It
5298eceda581Smrg   converts any leading '~' characters in to the value of the HOME
5299eceda581Smrg   environment variable, and any relative paths are converted to
5300eceda581Smrg   absolute paths using the current working directory. Sequences
5301eceda581Smrg   of '/' characters are converted to a single '/', and names
5302eceda581Smrg   containing the current directory '.' or parent directory '..'
5303eceda581Smrg   are correctly reconstructed. Returns NULL if '~' is the leading
5304eceda581Smrg   character and HOME is unset or disabled (see
5305eceda581Smrg   FcConfigEnableHome).
53062c393a42Smrg
5307eceda581SmrgFcStrCmp
53082c393a42Smrg
53092c393a42SmrgName
53102c393a42Smrg
5311eceda581Smrg   FcStrCmp -- compare UTF-8 strings
53122c393a42Smrg
53132c393a42SmrgSynopsis
53142c393a42Smrg
5315eceda581Smrg#include <fontconfig/fontconfig.h>
5316a6844aabSmrg
5317ca08ab68Smrg   int FcStrCmp(const FcChar8 *s1, const FcChar8 *s2);
53182c393a42Smrg
53192c393a42SmrgDescription
53202c393a42Smrg
5321ca08ab68Smrg   Returns the usual <0, 0, >0 result of comparing s1 and s2.
53222c393a42Smrg
5323eceda581SmrgFcStrCmpIgnoreCase
53242c393a42Smrg
53252c393a42SmrgName
53262c393a42Smrg
5327eceda581Smrg   FcStrCmpIgnoreCase -- compare UTF-8 strings ignoring case
53282c393a42Smrg
53292c393a42SmrgSynopsis
53302c393a42Smrg
5331eceda581Smrg#include <fontconfig/fontconfig.h>
5332a6844aabSmrg
5333ca08ab68Smrg   int FcStrCmpIgnoreCase(const FcChar8 *s1, const FcChar8 *s2);
53342c393a42Smrg
53352c393a42SmrgDescription
53362c393a42Smrg
5337eceda581Smrg   Returns the usual <0, 0, >0 result of comparing s1 and s2. This
5338eceda581Smrg   test is case-insensitive for all proper UTF-8 encoded strings.
53392c393a42Smrg
5340eceda581SmrgFcStrStr
53412c393a42Smrg
53422c393a42SmrgName
53432c393a42Smrg
5344eceda581Smrg   FcStrStr -- locate UTF-8 substring
53452c393a42Smrg
53462c393a42SmrgSynopsis
53472c393a42Smrg
5348eceda581Smrg#include <fontconfig/fontconfig.h>
5349a6844aabSmrg
5350ca08ab68Smrg   FcChar8 * FcStrStr(const FcChar8 *s1, const FcChar8 *s2);
53512c393a42Smrg
53522c393a42SmrgDescription
53532c393a42Smrg
5354eceda581Smrg   Returns the location of s2 in s1. Returns NULL if s2 is not
5355eceda581Smrg   present in s1. This test will operate properly with UTF8
5356eceda581Smrg   encoded strings.
53572c393a42Smrg
5358eceda581SmrgFcStrStrIgnoreCase
53592c393a42Smrg
53602c393a42SmrgName
53612c393a42Smrg
5362eceda581Smrg   FcStrStrIgnoreCase -- locate UTF-8 substring ignoring case
53632c393a42Smrg
53642c393a42SmrgSynopsis
53652c393a42Smrg
5366eceda581Smrg#include <fontconfig/fontconfig.h>
5367a32e9e42Smrg
5368eceda581Smrg   FcChar8 * FcStrStrIgnoreCase(const FcChar8 *s1, const FcChar8
5369eceda581Smrg   *s2);
53702c393a42Smrg
53712c393a42SmrgDescription
53722c393a42Smrg
5373eceda581Smrg   Returns the location of s2 in s1, ignoring case. Returns NULL
5374eceda581Smrg   if s2 is not present in s1. This test is case-insensitive for
5375eceda581Smrg   all proper UTF-8 encoded strings.
53762c393a42Smrg
5377eceda581SmrgFcStrPlus
53782c393a42Smrg
53792c393a42SmrgName
53802c393a42Smrg
5381eceda581Smrg   FcStrPlus -- concatenate two strings
53822c393a42Smrg
53832c393a42SmrgSynopsis
53842c393a42Smrg
5385eceda581Smrg#include <fontconfig/fontconfig.h>
5386a6844aabSmrg
5387ca08ab68Smrg   FcChar8 * FcStrPlus(const FcChar8 *s1, const FcChar8 *s2);
53882c393a42Smrg
53892c393a42SmrgDescription
53902c393a42Smrg
5391eceda581Smrg   This function allocates new storage and places the
5392eceda581Smrg   concatenation of s1 and s2 there, returning the new string.
53932c393a42Smrg
5394eceda581SmrgFcStrFree
53952c393a42Smrg
53962c393a42SmrgName
53972c393a42Smrg
5398eceda581Smrg   FcStrFree -- free a string
53992c393a42Smrg
54002c393a42SmrgSynopsis
54012c393a42Smrg
5402eceda581Smrg#include <fontconfig/fontconfig.h>
5403a6844aabSmrg
5404ca08ab68Smrg   void FcStrFree(FcChar8 *s);
54052c393a42Smrg
54062c393a42SmrgDescription
54072c393a42Smrg
5408eceda581Smrg   This is just a wrapper around free(3) which helps track memory
5409eceda581Smrg   usage of strings within the fontconfig library.
54102c393a42Smrg
5411eceda581SmrgFcStrBuildFilename
5412a4e54154Smrg
5413a4e54154SmrgName
5414a4e54154Smrg
5415eceda581Smrg   FcStrBuildFilename -- Concatenate strings as a file path
5416a4e54154Smrg
5417a4e54154SmrgSynopsis
5418a4e54154Smrg
5419eceda581Smrg#include <fontconfig/fontconfig.h>
5420a4e54154Smrg
5421a4e54154Smrg   FcChar8 * FcStrBuildFilename(const FcChar8 *path, ...);
5422a4e54154Smrg
5423a4e54154SmrgDescription
5424a4e54154Smrg
5425eceda581Smrg   Creates a filename from the given elements of strings as file
5426eceda581Smrg   paths and concatenate them with the appropriate file separator.
5427eceda581Smrg   Arguments must be null-terminated. This returns a
5428eceda581Smrg   newly-allocated memory which should be freed when no longer
5429eceda581Smrg   needed.
5430a4e54154Smrg
5431eceda581SmrgFcStrDirname
54322c393a42Smrg
54332c393a42SmrgName
54342c393a42Smrg
5435eceda581Smrg   FcStrDirname -- directory part of filename
54362c393a42Smrg
54372c393a42SmrgSynopsis
54382c393a42Smrg
5439eceda581Smrg#include <fontconfig/fontconfig.h>
5440a6844aabSmrg
5441ca08ab68Smrg   FcChar8 * FcStrDirname(const FcChar8 *file);
54422c393a42Smrg
54432c393a42SmrgDescription
54442c393a42Smrg
5445eceda581Smrg   Returns the directory containing file. This is returned in
5446eceda581Smrg   newly allocated storage which should be freed when no longer
5447eceda581Smrg   needed.
54482c393a42Smrg
5449eceda581SmrgFcStrBasename
54502c393a42Smrg
54512c393a42SmrgName
54522c393a42Smrg
5453eceda581Smrg   FcStrBasename -- last component of filename
54542c393a42Smrg
54552c393a42SmrgSynopsis
54562c393a42Smrg
5457eceda581Smrg#include <fontconfig/fontconfig.h>
5458a6844aabSmrg
5459ca08ab68Smrg   FcChar8 * FcStrBasename(const FcChar8 *file);
54602c393a42Smrg
54612c393a42SmrgDescription
54622c393a42Smrg
5463eceda581Smrg   Returns the filename of file stripped of any leading directory
5464eceda581Smrg   names. This is returned in newly allocated storage which should
5465eceda581Smrg   be freed when no longer needed.
5466