fontconfig-devel.txt revision 953daeba
1953daebaSmrgFontconfig Developers Reference, Version 2.12.4
22c393a42Smrg
3ca08ab68Smrg   Copyright © 2002 Keith Packard
42c393a42Smrg
5953daebaSmrg   Permission to use, copy, modify, distribute, and sell this
6953daebaSmrg   software and its documentation for any purpose is hereby
7953daebaSmrg   granted without fee, provided that the above copyright notice
8953daebaSmrg   appear in all copies and that both that copyright notice and
9953daebaSmrg   this permission notice appear in supporting documentation, and
10953daebaSmrg   that the name of the author(s) not be used in advertising or
11953daebaSmrg   publicity pertaining to distribution of the software without
12953daebaSmrg   specific, written prior permission. The authors make no
13953daebaSmrg   representations about the suitability of this software for any
14953daebaSmrg   purpose. It is provided "as is" without express or implied
15953daebaSmrg   warranty.
16953daebaSmrg
17953daebaSmrg   THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
18953daebaSmrg   SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
19953daebaSmrg   AND FITNESS, IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY
20953daebaSmrg   SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
21953daebaSmrg   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
22953daebaSmrg   IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
23953daebaSmrg   ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
24953daebaSmrg   THIS SOFTWARE.
25953daebaSmrg           _______________________________________________
262c393a42Smrg
27ca08ab68Smrg   Table of Contents
28953daebaSmrg   DESCRIPTION
29953daebaSmrg   FUNCTIONAL OVERVIEW
30953daebaSmrg   Datatypes
31953daebaSmrg   FUNCTIONS
322c393a42Smrg
33a6844aabSmrgDESCRIPTION
342c393a42Smrg
35ca08ab68Smrg   Fontconfig is a library designed to provide system-wide font
36ca08ab68Smrg   configuration, customization and application access.
37953daebaSmrg     __________________________________________________________
382c393a42Smrg
39a6844aabSmrgFUNCTIONAL OVERVIEW
40a6844aabSmrg
41953daebaSmrg   Fontconfig contains two essential modules, the configuration
42953daebaSmrg   module which builds an internal configuration from XML files
43953daebaSmrg   and the matching module which accepts font patterns and returns
44953daebaSmrg   the nearest matching font.
45953daebaSmrg     __________________________________________________________
46953daebaSmrg
47953daebaSmrgFONT CONFIGURATION
48953daebaSmrg
49953daebaSmrg   The configuration module consists of the FcConfig datatype,
50953daebaSmrg   libexpat and FcConfigParse which walks over an XML tree and
51953daebaSmrg   amends a configuration with data found within. From an external
52953daebaSmrg   perspective, configuration of the library consists of
53953daebaSmrg   generating a valid XML tree and feeding that to FcConfigParse.
54953daebaSmrg   The only other mechanism provided to applications for changing
55953daebaSmrg   the running configuration is to add fonts and directories to
56953daebaSmrg   the list of application-provided font files.
57953daebaSmrg
58953daebaSmrg   The intent is to make font configurations relatively static,
59953daebaSmrg   and shared by as many applications as possible. It is hoped
60953daebaSmrg   that this will lead to more stable font selection when passing
61953daebaSmrg   names from one application to another. XML was chosen as a
62953daebaSmrg   configuration file format because it provides a format which is
63953daebaSmrg   easy for external agents to edit while retaining the correct
64ca08ab68Smrg   structure and syntax.
65a6844aabSmrg
66953daebaSmrg   Font configuration is separate from font matching; applications
67953daebaSmrg   needing to do their own matching can access the available fonts
68953daebaSmrg   from the library and perform private matching. The intent is to
69953daebaSmrg   permit applications to pick and choose appropriate
70953daebaSmrg   functionality from the library instead of forcing them to
71953daebaSmrg   choose between this library and a private configuration
72953daebaSmrg   mechanism. The hope is that this will ensure that configuration
73953daebaSmrg   of fonts for all applications can be centralized in one place.
74953daebaSmrg   Centralizing font configuration will simplify and regularize
75953daebaSmrg   font installation and customization.
76953daebaSmrg     __________________________________________________________
77953daebaSmrg
78953daebaSmrgFONT PROPERTIES
79953daebaSmrg
80953daebaSmrg   While font patterns may contain essentially any properties,
81953daebaSmrg   there are some well known properties with associated types.
82953daebaSmrg   Fontconfig uses some of these properties for font matching and
83953daebaSmrg   font completion. Others are provided as a convenience for the
84953daebaSmrg   application's rendering mechanism.
852c393a42Smrg                 Property Definitions
862c393a42Smrg
87ca08ab68Smrg    Property       C Preprocessor Symbol  Type    Description
882c393a42Smrg    ----------------------------------------------------
89ca08ab68Smrg    family         FC_FAMILY              String  Font family names
90953daebaSmrg    familylang     FC_FAMILYLANG          String  Language corresponding
91953daebaSmrg to
92ca08ab68Smrg                                                  each family name
93953daebaSmrg    style          FC_STYLE               String  Font style. Overrides
94953daebaSmrgweight
95ca08ab68Smrg                                                  and slant
96953daebaSmrg    stylelang      FC_STYLELANG           String  Language corresponding
97953daebaSmrg to
98ca08ab68Smrg                                                  each style name
99953daebaSmrg    fullname       FC_FULLNAME            String  Font face full name wh
100953daebaSmrgere
101953daebaSmrg                                                  different from family
102953daebaSmrgand
103ca08ab68Smrg                                                  family + style
104953daebaSmrg    fullnamelang   FC_FULLNAMELANG        String  Language corresponding
105953daebaSmrg to
106ca08ab68Smrg                                                  each fullname
107953daebaSmrg    slant          FC_SLANT               Int     Italic, oblique or rom
108953daebaSmrgan
109953daebaSmrg    weight         FC_WEIGHT              Int     Light, medium, demibol
110953daebaSmrgd,
111ca08ab68Smrg                                                  bold or black
112ca08ab68Smrg    size           FC_SIZE                Double  Point size
113953daebaSmrg    width          FC_WIDTH               Int     Condensed, normal or e
114953daebaSmrgxpanded
115953daebaSmrg    aspect         FC_ASPECT              Double  Stretches glyphs horiz
116953daebaSmrgontally
117ca08ab68Smrg                                                  before hinting
118ca08ab68Smrg    pixelsize      FC_PIXEL_SIZE          Double  Pixel size
119953daebaSmrg    spacing        FC_SPACING             Int     Proportional, dual-wid
120953daebaSmrgth,
121ca08ab68Smrg                                                  monospace or charcell
122ca08ab68Smrg    foundry        FC_FOUNDRY             String  Font foundry name
123ca08ab68Smrg    antialias      FC_ANTIALIAS           Bool    Whether glyphs can be
124ca08ab68Smrg                                                  antialiased
125953daebaSmrg    hinting        FC_HINTING             Bool    Whether the rasterizer
126953daebaSmrg should
127ca08ab68Smrg                                                  use hinting
128953daebaSmrg    hintstyle      FC_HINT_STYLE          Int     Automatic hinting styl
129953daebaSmrge
130ca08ab68Smrg    verticallayout FC_VERTICAL_LAYOUT     Bool    Use vertical layout
131953daebaSmrg    autohint       FC_AUTOHINT            Bool    Use autohinter instead
132953daebaSmrg of
133ca08ab68Smrg                                                  normal hinter
134953daebaSmrg    globaladvance  FC_GLOBAL_ADVANCE      Bool    Use font global advanc
135953daebaSmrge data (deprecated)
136953daebaSmrg    file           FC_FILE                String  The filename holding t
137953daebaSmrghe font
138953daebaSmrg    index          FC_INDEX               Int     The index of the font
139953daebaSmrgwithin
140ca08ab68Smrg                                                  the file
141953daebaSmrg    ftface         FC_FT_FACE             FT_Face Use the specified Free
142953daebaSmrgType
143ca08ab68Smrg                                                  face object
144953daebaSmrg    rasterizer     FC_RASTERIZER          String  Which rasterizer is in
145953daebaSmrg use (deprecated)
146953daebaSmrg    outline        FC_OUTLINE             Bool    Whether the glyphs are
147953daebaSmrg outlines
148953daebaSmrg    scalable       FC_SCALABLE            Bool    Whether glyphs can be
149953daebaSmrgscaled
150953daebaSmrg    scale          FC_SCALE               Double  Scale factor for point
151953daebaSmrg->pixel
152953daebaSmrg                                                  conversions (deprecate
153953daebaSmrgd)
154953daebaSmrg    symbol         FC_SYMBOL              Bool    Whether font uses MS s
155953daebaSmrgymbol-font encoding
156953daebaSmrg    color          FC_COLOR               Bool    Whether any glyphs hav
157953daebaSmrge color
158ca08ab68Smrg    dpi            FC_DPI                 Double  Target dots per inch
159953daebaSmrg    rgba           FC_RGBA                Int     unknown, rgb, bgr, vrg
160953daebaSmrgb,
161953daebaSmrg                                                  vbgr, none - subpixel
162953daebaSmrggeometry
163ca08ab68Smrg    lcdfilter      FC_LCD_FILTER          Int     Type of LCD filter
164953daebaSmrg    minspace       FC_MINSPACE            Bool    Eliminate leading from
165953daebaSmrg line
166ca08ab68Smrg                                                  spacing
167953daebaSmrg    charset        FC_CHARSET             CharSet Unicode chars encoded
168953daebaSmrgby
169ca08ab68Smrg                                                  the font
170ca08ab68Smrg    lang           FC_LANG                LangSet Set of RFC-3066-style
171953daebaSmrg                                                  languages this font su
172953daebaSmrgpports
173953daebaSmrg    fontversion    FC_FONTVERSION         Int     Version number of the
174953daebaSmrgfont
175953daebaSmrg    capability     FC_CAPABILITY          String  List of layout capabil
176953daebaSmrgities in
177ca08ab68Smrg                                                  the font
178953daebaSmrg    fontformat     FC_FONTFORMAT          String  String name of the fon
179953daebaSmrgt format
180ca08ab68Smrg    embolden       FC_EMBOLDEN            Bool    Rasterizer should
181953daebaSmrg                                                  synthetically embolden
182953daebaSmrg the font
183953daebaSmrg    embeddedbitmap FC_EMBEDDED_BITMAP     Bool    Use the embedded bitma
184953daebaSmrgp instead
185953daebaSmrg                                                  of the outline
186953daebaSmrg    decorative     FC_DECORATIVE          Bool    Whether the style is a
187953daebaSmrg decorative
188953daebaSmrg                                                  variant
189953daebaSmrg    fontfeatures   FC_FONT_FEATURES       String  List of extra feature
190953daebaSmrgtags in
191c9710b42Smrg                                                  OpenType to be enabled
192953daebaSmrg    namelang       FC_NAMELANG            String  Language name to be us
193953daebaSmrged for the
194953daebaSmrg                                                  default value of famil
195953daebaSmrgylang,
196953daebaSmrg                                                  stylelang and fullname
197953daebaSmrglang
198953daebaSmrg    prgname        FC_PRGNAME             String  Name of the running pr
199953daebaSmrgogram
200953daebaSmrg    hash           FC_HASH                String  SHA256 hash value of t
201953daebaSmrghe font data
202953daebaSmrg                                                  with "sha256:" prefix
203953daebaSmrg(deprecated)
204953daebaSmrg    postscriptname FC_POSTSCRIPT_NAME     String  Font name in PostScrip
205953daebaSmrgt
206953daebaSmrg     __________________________________________________________
207a6844aabSmrg
208a6844aabSmrgDatatypes
2092c393a42Smrg
210953daebaSmrg   Fontconfig uses abstract data types to hide internal
211953daebaSmrg   implementation details for most data structures. A few
212953daebaSmrg   structures are exposed where appropriate.
213953daebaSmrg     __________________________________________________________
214a6844aabSmrg
215953daebaSmrgFcChar8, FcChar16, FcChar32, FcBool
2162c393a42Smrg
217953daebaSmrg   These are primitive data types; the FcChar* types hold
218953daebaSmrg   precisely the number of bits stated (if supported by the C
219953daebaSmrg   implementation). FcBool holds one of two C preprocessor
220953daebaSmrg   symbols: FcFalse or FcTrue.
221953daebaSmrg     __________________________________________________________
2222c393a42Smrg
223953daebaSmrgFcMatrix
2242c393a42Smrg
225953daebaSmrg   An FcMatrix holds an affine transformation, usually used to
226953daebaSmrg   reshape glyphs. A small set of matrix operations are provided
227953daebaSmrg   to manipulate these.
228953daebaSmrg        typedef struct _FcMatrix {
229953daebaSmrg                double xx, xy, yx, yy;
230953daebaSmrg        } FcMatrix;
231953daebaSmrg     __________________________________________________________
232a6844aabSmrg
233953daebaSmrgFcCharSet
234a6844aabSmrg
235953daebaSmrg   An FcCharSet is an abstract type that holds the set of encoded
236953daebaSmrg   Unicode chars in a font. Operations to build and compare these
237953daebaSmrg   sets are provided.
238953daebaSmrg     __________________________________________________________
239a6844aabSmrg
240953daebaSmrgFcLangSet
241a6844aabSmrg
242953daebaSmrg   An FcLangSet is an abstract type that holds the set of
243953daebaSmrg   languages supported by a font. Operations to build and compare
244953daebaSmrg   these sets are provided. These are computed for a font based on
245953daebaSmrg   orthographic information built into the fontconfig library.
246953daebaSmrg   Fontconfig has orthographies for all of the ISO 639-1 languages
247953daebaSmrg   except for MS, NA, PA, PS, QU, RN, RW, SD, SG, SN, SU and ZA.
248953daebaSmrg   If you have orthographic information for any of these
249953daebaSmrg   languages, please submit them.
250953daebaSmrg     __________________________________________________________
2512c393a42Smrg
252953daebaSmrgFcLangResult
2532c393a42Smrg
254953daebaSmrg   An FcLangResult is an enumeration used to return the results of
255953daebaSmrg   comparing two language strings or FcLangSet objects.
256953daebaSmrg   FcLangEqual means the objects match language and territory.
257953daebaSmrg   FcLangDifferentTerritory means the objects match in language
258953daebaSmrg   but differ in territory. FcLangDifferentLang means the objects
259953daebaSmrg   differ in language.
260953daebaSmrg     __________________________________________________________
2612c393a42Smrg
262953daebaSmrgFcType
2632c393a42Smrg
264ca08ab68Smrg   Tags the kind of data stored in an FcValue.
265953daebaSmrg     __________________________________________________________
266953daebaSmrg
267953daebaSmrgFcValue
268953daebaSmrg
269953daebaSmrg   An FcValue object holds a single value with one of a number of
270953daebaSmrg   different types. The 'type' tag indicates which member is
271953daebaSmrg   valid.
272953daebaSmrg        typedef struct _FcValue {
273953daebaSmrg                FcType type;
274953daebaSmrg                union {
275953daebaSmrg                        const FcChar8 *s;
276953daebaSmrg                        int i;
277953daebaSmrg                        FcBool b;
278953daebaSmrg                        double d;
279953daebaSmrg                        const FcMatrix *m;
280953daebaSmrg                        const FcCharSet *c;
281953daebaSmrg                        void *f;
282953daebaSmrg                        const FcLangSet *l;
283953daebaSmrg                } u;
284953daebaSmrg        } FcValue;
285953daebaSmrg
286953daebaSmrg                  FcValue Members
287953daebaSmrg
288953daebaSmrg        Type            Union member    Datatype
289953daebaSmrg        --------------------------------
290953daebaSmrg        FcTypeVoid      (none)          (none)
291953daebaSmrg        FcTypeInteger   i               int
292953daebaSmrg        FcTypeDouble    d               double
293953daebaSmrg        FcTypeString    s               FcChar8 *
294953daebaSmrg        FcTypeBool      b               b
295953daebaSmrg        FcTypeMatrix    m               FcMatrix *
296953daebaSmrg        FcTypeCharSet   c               FcCharSet *
297953daebaSmrg        FcTypeFTFace    f               void * (FT_Face)
298953daebaSmrg        FcTypeLangSet   l               FcLangSet *
299953daebaSmrg     __________________________________________________________
300953daebaSmrg
301953daebaSmrgFcPattern
302953daebaSmrg
303953daebaSmrg   holds a set of names with associated value lists; each name
304953daebaSmrg   refers to a property of a font. FcPatterns are used as inputs
305953daebaSmrg   to the matching code as well as holding information about
306953daebaSmrg   specific fonts. Each property can hold one or more values;
307953daebaSmrg   conventionally all of the same type, although the interface
308953daebaSmrg   doesn't demand that.
309953daebaSmrg     __________________________________________________________
310953daebaSmrg
311953daebaSmrgFcFontSet
312953daebaSmrg
313953daebaSmrg        typedef struct _FcFontSet {
314953daebaSmrg                int nfont;
315953daebaSmrg                int sfont;
316953daebaSmrg                FcPattern **fonts;
317953daebaSmrg        } FcFontSet;
318953daebaSmrg
319953daebaSmrg   An FcFontSet contains a list of FcPatterns. Internally
320953daebaSmrg   fontconfig uses this data structure to hold sets of fonts.
321953daebaSmrg   Externally, fontconfig returns the results of listing fonts in
322953daebaSmrg   this format. 'nfont' holds the number of patterns in the
323953daebaSmrg   'fonts' array; 'sfont' is used to indicate the size of that
324953daebaSmrg   array.
325953daebaSmrg     __________________________________________________________
326953daebaSmrg
327953daebaSmrgFcStrSet, FcStrList
328953daebaSmrg
329953daebaSmrg   FcStrSet holds a list of strings that can be appended to and
330953daebaSmrg   enumerated. Its unique characteristic is that the enumeration
331953daebaSmrg   works even while strings are appended during enumeration.
332953daebaSmrg   FcStrList is used during enumeration to safely and correctly
333953daebaSmrg   walk the list of strings even while that list is edited in the
334953daebaSmrg   middle of enumeration.
335953daebaSmrg     __________________________________________________________
336953daebaSmrg
337953daebaSmrgFcObjectSet
338953daebaSmrg
339953daebaSmrg        typedef struct _FcObjectSet {
340953daebaSmrg                int nobject;
341953daebaSmrg                int sobject;
342953daebaSmrg                const char **objects;
343953daebaSmrg        } FcObjectSet;
344953daebaSmrg
345953daebaSmrg   holds a set of names and is used to specify which fields from
346953daebaSmrg   fonts are placed in the the list of returned patterns when
347953daebaSmrg   listing fonts.
348953daebaSmrg     __________________________________________________________
349953daebaSmrg
350953daebaSmrgFcObjectType
351953daebaSmrg
352953daebaSmrg        typedef struct _FcObjectType {
353953daebaSmrg                const char *object;
354953daebaSmrg                FcType type;
355953daebaSmrg        } FcObjectType;
356953daebaSmrg
357953daebaSmrg   marks the type of a pattern element generated when parsing font
358953daebaSmrg   names. Applications can add new object types so that font names
359953daebaSmrg   may contain the new elements.
360953daebaSmrg     __________________________________________________________
361953daebaSmrg
362953daebaSmrgFcConstant
363953daebaSmrg
364953daebaSmrg        typedef struct _FcConstant {
365953daebaSmrg            const FcChar8 *name;
366953daebaSmrg            const char *object;
367953daebaSmrg            int value;
368953daebaSmrg        } FcConstant;
369953daebaSmrg
370953daebaSmrg   Provides for symbolic constants for new pattern elements. When
371953daebaSmrg   'name' is seen in a font name, an 'object' element is created
372953daebaSmrg   with value 'value'.
373953daebaSmrg     __________________________________________________________
374953daebaSmrg
375953daebaSmrgFcBlanks
376953daebaSmrg
377953daebaSmrg   holds a list of Unicode chars which are expected to be blank;
378953daebaSmrg   unexpectedly blank chars are assumed to be invalid and are
379953daebaSmrg   elided from the charset associated with the font.
380953daebaSmrg     __________________________________________________________
381953daebaSmrg
382953daebaSmrgFcFileCache
383953daebaSmrg
384953daebaSmrg   holds the per-user cache information for use while loading the
385953daebaSmrg   font database. This is built automatically for the current
386953daebaSmrg   configuration when that is loaded. Applications must always
387953daebaSmrg   pass '0' when one is requested.
388953daebaSmrg     __________________________________________________________
389953daebaSmrg
390953daebaSmrgFcConfig
391953daebaSmrg
392953daebaSmrg   holds a complete configuration of the library; there is one
393953daebaSmrg   default configuration, other can be constructed from XML data
394953daebaSmrg   structures. All public entry points that need global data can
395953daebaSmrg   take an optional FcConfig* argument; passing 0 uses the default
396953daebaSmrg   configuration. FcConfig objects hold two sets of fonts, the
397953daebaSmrg   first contains those specified by the configuration, the second
398953daebaSmrg   set holds those added by the application at run-time.
399953daebaSmrg   Interfaces that need to reference a particular set use one of
400ca08ab68Smrg   the FcSetName enumerated values.
401953daebaSmrg     __________________________________________________________
402953daebaSmrg
403953daebaSmrgFcSetName
404953daebaSmrg
405953daebaSmrg   Specifies one of the two sets of fonts available in a
406953daebaSmrg   configuration; FcSetSystem for those fonts specified in the
407953daebaSmrg   configuration and FcSetApplication which holds fonts provided
408953daebaSmrg   by the application.
409953daebaSmrg     __________________________________________________________
410953daebaSmrg
411953daebaSmrgFcResult
412953daebaSmrg
413953daebaSmrg   Used as a return type for functions manipulating FcPattern
414953daebaSmrg   objects.
415953daebaSmrg      FcResult Values
416953daebaSmrg        Result Code             Meaning
417953daebaSmrg        -----------------------------------------------------------
418953daebaSmrg        FcResultMatch           Object exists with the specified ID
419953daebaSmrg        FcResultNoMatch         Object doesn't exist at all
420953daebaSmrg        FcResultTypeMismatch    Object exists, but the type doesn't matc
421953daebaSmrgh
422953daebaSmrg        FcResultNoId            Object exists, but has fewer values
423953daebaSmrg                                than specified
424953daebaSmrg        FcResultOutOfMemory     malloc failed
425953daebaSmrg     __________________________________________________________
426953daebaSmrg
427953daebaSmrgFcAtomic
428953daebaSmrg
429953daebaSmrg   Used for locking access to configuration files. Provides a safe
430953daebaSmrg   way to update configuration files.
431953daebaSmrg     __________________________________________________________
432953daebaSmrg
433953daebaSmrgFcCache
434953daebaSmrg
435953daebaSmrg   Holds information about the fonts contained in a single
436953daebaSmrg   directory. Normal applications need not worry about this as
437953daebaSmrg   caches for font access are automatically managed by the
438953daebaSmrg   library. Applications dealing with cache management may want to
439953daebaSmrg   use some of these objects in their work, however the included
440953daebaSmrg   'fc-cache' program generally suffices for all of that.
441953daebaSmrg     __________________________________________________________
4422c393a42Smrg
443a6844aabSmrgFUNCTIONS
4442c393a42Smrg
445953daebaSmrg   These are grouped by functionality, often using the main data
446953daebaSmrg   type being manipulated.
447953daebaSmrg     __________________________________________________________
4482c393a42Smrg
449953daebaSmrgInitialization
450a6844aabSmrg
451ca08ab68Smrg   Table of Contents
452953daebaSmrg   FcInitLoadConfig -- load configuration
453953daebaSmrg   FcInitLoadConfigAndFonts -- load configuration and font data
454953daebaSmrg   FcInit -- initialize fontconfig library
455953daebaSmrg   FcFini -- finalize fontconfig library
456953daebaSmrg   FcGetVersion -- library version number
457953daebaSmrg   FcInitReinitialize -- re-initialize library
458953daebaSmrg   FcInitBringUptoDate -- reload configuration files if needed
459a6844aabSmrg
460953daebaSmrg   These functions provide some control over how the library is
461953daebaSmrg   initialized.
462ca08ab68Smrg
463953daebaSmrgFcInitLoadConfig
4642c393a42Smrg
4652c393a42SmrgName
4662c393a42Smrg
467953daebaSmrg   FcInitLoadConfig -- load configuration
4682c393a42Smrg
4692c393a42SmrgSynopsis
4702c393a42Smrg
471953daebaSmrg#include <fontconfig/fontconfig.h>
472a6844aabSmrg
473ca08ab68Smrg   FcConfig * FcInitLoadConfig(void);
4742c393a42Smrg
4752c393a42SmrgDescription
4762c393a42Smrg
477ca08ab68Smrg   Loads the default configuration file and returns the resulting
478ca08ab68Smrg   configuration. Does not load any font information.
4792c393a42Smrg
480953daebaSmrgFcInitLoadConfigAndFonts
4812c393a42Smrg
4822c393a42SmrgName
4832c393a42Smrg
484953daebaSmrg   FcInitLoadConfigAndFonts -- load configuration and font data
4852c393a42Smrg
4862c393a42SmrgSynopsis
4872c393a42Smrg
488953daebaSmrg#include <fontconfig/fontconfig.h>
489a6844aabSmrg
490ca08ab68Smrg   FcConfig * FcInitLoadConfigAndFonts(void);
4912c393a42Smrg
4922c393a42SmrgDescription
4932c393a42Smrg
494953daebaSmrg   Loads the default configuration file and builds information
495953daebaSmrg   about the available fonts. Returns the resulting configuration.
4962c393a42Smrg
497953daebaSmrgFcInit
4982c393a42Smrg
4992c393a42SmrgName
5002c393a42Smrg
501953daebaSmrg   FcInit -- initialize fontconfig library
5022c393a42Smrg
5032c393a42SmrgSynopsis
5042c393a42Smrg
505953daebaSmrg#include <fontconfig/fontconfig.h>
506a6844aabSmrg
507ca08ab68Smrg   FcBool FcInit(void);
5082c393a42Smrg
5092c393a42SmrgDescription
5102c393a42Smrg
511953daebaSmrg   Loads the default configuration file and the fonts referenced
512953daebaSmrg   therein and sets the default configuration to that result.
513953daebaSmrg   Returns whether this process succeeded or not. If the default
514953daebaSmrg   configuration has already been loaded, this routine does
515953daebaSmrg   nothing and returns FcTrue.
5162c393a42Smrg
517953daebaSmrgFcFini
5182c393a42Smrg
5192c393a42SmrgName
5202c393a42Smrg
521953daebaSmrg   FcFini -- finalize fontconfig library
5222c393a42Smrg
5232c393a42SmrgSynopsis
5242c393a42Smrg
525953daebaSmrg#include <fontconfig/fontconfig.h>
526a6844aabSmrg
527ca08ab68Smrg   void FcFini(void);
5282c393a42Smrg
5292c393a42SmrgDescription
5302c393a42Smrg
531953daebaSmrg   Frees all data structures allocated by previous calls to
532953daebaSmrg   fontconfig functions. Fontconfig returns to an uninitialized
533953daebaSmrg   state, requiring a new call to one of the FcInit functions
534953daebaSmrg   before any other fontconfig function may be called.
5352c393a42Smrg
536953daebaSmrgFcGetVersion
5372c393a42Smrg
5382c393a42SmrgName
5392c393a42Smrg
540953daebaSmrg   FcGetVersion -- library version number
5412c393a42Smrg
5422c393a42SmrgSynopsis
5432c393a42Smrg
544953daebaSmrg#include <fontconfig/fontconfig.h>
545a6844aabSmrg
546ca08ab68Smrg   int FcGetVersion(void);
5472c393a42Smrg
5482c393a42SmrgDescription
5492c393a42Smrg
550ca08ab68Smrg   Returns the version number of the library.
5512c393a42Smrg
552953daebaSmrgFcInitReinitialize
5532c393a42Smrg
5542c393a42SmrgName
5552c393a42Smrg
556953daebaSmrg   FcInitReinitialize -- re-initialize library
5572c393a42Smrg
5582c393a42SmrgSynopsis
5592c393a42Smrg
560953daebaSmrg#include <fontconfig/fontconfig.h>
561a6844aabSmrg
562ca08ab68Smrg   FcBool FcInitReinitialize(void);
5632c393a42Smrg
5642c393a42SmrgDescription
5652c393a42Smrg
566953daebaSmrg   Forces the default configuration file to be reloaded and resets
567953daebaSmrg   the default configuration. Returns FcFalse if the configuration
568953daebaSmrg   cannot be reloaded (due to configuration file errors,
569953daebaSmrg   allocation failures or other issues) and leaves the existing
570953daebaSmrg   configuration unchanged. Otherwise returns FcTrue.
5712c393a42Smrg
572953daebaSmrgFcInitBringUptoDate
5732c393a42Smrg
5742c393a42SmrgName
5752c393a42Smrg
576953daebaSmrg   FcInitBringUptoDate -- reload configuration files if needed
5772c393a42Smrg
5782c393a42SmrgSynopsis
5792c393a42Smrg
580953daebaSmrg#include <fontconfig/fontconfig.h>
581a6844aabSmrg
582ca08ab68Smrg   FcBool FcInitBringUptoDate(void);
5832c393a42Smrg
5842c393a42SmrgDescription
5852c393a42Smrg
586953daebaSmrg   Checks the rescan interval in the default configuration,
587953daebaSmrg   checking the configuration if the interval has passed and
588953daebaSmrg   reloading the configuration if when any changes are detected.
589953daebaSmrg   Returns FcFalse if the configuration cannot be reloaded (see
590953daebaSmrg   FcInitReinitialize). Otherwise returns FcTrue.
591953daebaSmrg     __________________________________________________________
592ca08ab68Smrg
593953daebaSmrgFcPattern
594ca08ab68Smrg
595ca08ab68Smrg   Table of Contents
596953daebaSmrg   FcPatternCreate -- Create a pattern
597953daebaSmrg   FcPatternDuplicate -- Copy a pattern
598953daebaSmrg   FcPatternReference -- Increment pattern reference count
599953daebaSmrg   FcPatternDestroy -- Destroy a pattern
600953daebaSmrg   FcPatternEqual -- Compare patterns
601953daebaSmrg   FcPatternEqualSubset -- Compare portions of patterns
602953daebaSmrg   FcPatternFilter -- Filter the objects of pattern
603953daebaSmrg   FcPatternHash -- Compute a pattern hash value
604953daebaSmrg   FcPatternAdd -- Add a value to a pattern
605953daebaSmrg   FcPatternAddWeak -- Add a value to a pattern with weak binding
606953daebaSmrg   FcPatternAdd-Type -- Add a typed value to a pattern
607953daebaSmrg   FcPatternGet -- Return a value from a pattern
608953daebaSmrg   FcPatternGet-Type -- Return a typed value from a pattern
609953daebaSmrg   FcPatternBuild -- Create patterns from arguments
610953daebaSmrg   FcPatternDel -- Delete a property from a pattern
611953daebaSmrg   FcPatternRemove -- Remove one object of the specified type from
612953daebaSmrg          the pattern
613ca08ab68Smrg
614953daebaSmrg   FcPatternPrint -- Print a pattern for debugging
615953daebaSmrg   FcDefaultSubstitute -- Perform default substitutions in a
616953daebaSmrg          pattern
617ca08ab68Smrg
618953daebaSmrg   FcNameParse -- Parse a pattern string
619953daebaSmrg   FcNameUnparse -- Convert a pattern back into a string that can
620953daebaSmrg          be parsed
621ca08ab68Smrg
622953daebaSmrg   FcPatternFormat -- Format a pattern into a string according to
623953daebaSmrg          a format specifier
624ca08ab68Smrg
625953daebaSmrg   An FcPattern is an opaque type that holds both patterns to
626953daebaSmrg   match against the available fonts, as well as the information
627953daebaSmrg   about each font.
628ca08ab68Smrg
629953daebaSmrgFcPatternCreate
6302c393a42Smrg
6312c393a42SmrgName
6322c393a42Smrg
633953daebaSmrg   FcPatternCreate -- Create a pattern
6342c393a42Smrg
6352c393a42SmrgSynopsis
6362c393a42Smrg
637953daebaSmrg#include <fontconfig/fontconfig.h>
638a6844aabSmrg
639ca08ab68Smrg   FcPattern * FcPatternCreate(void);
6402c393a42Smrg
6412c393a42SmrgDescription
6422c393a42Smrg
643953daebaSmrg   Creates a pattern with no properties; used to build patterns
644953daebaSmrg   from scratch.
6452c393a42Smrg
646953daebaSmrgFcPatternDuplicate
6472c393a42Smrg
6482c393a42SmrgName
6492c393a42Smrg
650953daebaSmrg   FcPatternDuplicate -- Copy a pattern
6512c393a42Smrg
6522c393a42SmrgSynopsis
6532c393a42Smrg
654953daebaSmrg#include <fontconfig/fontconfig.h>
655a6844aabSmrg
656ca08ab68Smrg   FcPattern * FcPatternDuplicate(const FcPattern *p);
6572c393a42Smrg
6582c393a42SmrgDescription
6592c393a42Smrg
660953daebaSmrg   Copy a pattern, returning a new pattern that matches p. Each
661953daebaSmrg   pattern may be modified without affecting the other.
6622c393a42Smrg
663953daebaSmrgFcPatternReference
6642c393a42Smrg
6652c393a42SmrgName
6662c393a42Smrg
667953daebaSmrg   FcPatternReference -- Increment pattern reference count
6682c393a42Smrg
6692c393a42SmrgSynopsis
6702c393a42Smrg
671953daebaSmrg#include <fontconfig/fontconfig.h>
672a6844aabSmrg
673ca08ab68Smrg   void FcPatternReference(FcPattern *p);
6742c393a42Smrg
6752c393a42SmrgDescription
6762c393a42Smrg
677953daebaSmrg   Add another reference to p. Patterns are freed only when the
678953daebaSmrg   reference count reaches zero.
6792c393a42Smrg
680953daebaSmrgFcPatternDestroy
6812c393a42Smrg
6822c393a42SmrgName
6832c393a42Smrg
684953daebaSmrg   FcPatternDestroy -- Destroy a pattern
6852c393a42Smrg
6862c393a42SmrgSynopsis
6872c393a42Smrg
688953daebaSmrg#include <fontconfig/fontconfig.h>
689a6844aabSmrg
690ca08ab68Smrg   void FcPatternDestroy(FcPattern *p);
6912c393a42Smrg
6922c393a42SmrgDescription
6932c393a42Smrg
694953daebaSmrg   Decrement the pattern reference count. If all references are
695953daebaSmrg   gone, destroys the pattern, in the process destroying all
696953daebaSmrg   related values.
6972c393a42Smrg
698953daebaSmrgFcPatternEqual
6992c393a42Smrg
7002c393a42SmrgName
7012c393a42Smrg
702953daebaSmrg   FcPatternEqual -- Compare patterns
7032c393a42Smrg
7042c393a42SmrgSynopsis
7052c393a42Smrg
706953daebaSmrg#include <fontconfig/fontconfig.h>
707a6844aabSmrg
708953daebaSmrg   FcBool FcPatternEqual(const FcPattern *pa, const FcPattern
709953daebaSmrg   *pb);
7102c393a42Smrg
7112c393a42SmrgDescription
7122c393a42Smrg
713ca08ab68Smrg   Returns whether pa and pb are exactly alike.
7142c393a42Smrg
715953daebaSmrgFcPatternEqualSubset
7162c393a42Smrg
7172c393a42SmrgName
7182c393a42Smrg
719953daebaSmrg   FcPatternEqualSubset -- Compare portions of patterns
7202c393a42Smrg
7212c393a42SmrgSynopsis
7222c393a42Smrg
723953daebaSmrg#include <fontconfig/fontconfig.h>
724a6844aabSmrg
725953daebaSmrg   FcBool FcPatternEqualSubset(const FcPattern *pa, const
726953daebaSmrg   FcPattern *pb, const FcObjectSet *os);
7272c393a42Smrg
7282c393a42SmrgDescription
7292c393a42Smrg
730953daebaSmrg   Returns whether pa and pb have exactly the same values for all
731953daebaSmrg   of the objects in os.
7322c393a42Smrg
733953daebaSmrgFcPatternFilter
734a6844aabSmrg
735a6844aabSmrgName
736a6844aabSmrg
737953daebaSmrg   FcPatternFilter -- Filter the objects of pattern
738a6844aabSmrg
739a6844aabSmrgSynopsis
740a6844aabSmrg
741953daebaSmrg#include <fontconfig/fontconfig.h>
742a6844aabSmrg
743ca08ab68Smrg   FcPattern * FcPatternFilter(FcPattern *p, const FcObjectSet *);
744a6844aabSmrg
745a6844aabSmrgDescription
746a6844aabSmrg
747953daebaSmrg   Returns a new pattern that only has those objects from p that
748953daebaSmrg   are in os. If os is NULL, a duplicate of p is returned.
749a6844aabSmrg
750953daebaSmrgFcPatternHash
7512c393a42Smrg
7522c393a42SmrgName
7532c393a42Smrg
754953daebaSmrg   FcPatternHash -- Compute a pattern hash value
7552c393a42Smrg
7562c393a42SmrgSynopsis
7572c393a42Smrg
758953daebaSmrg#include <fontconfig/fontconfig.h>
759a6844aabSmrg
760ca08ab68Smrg   FcChar32 FcPatternHash(const FcPattern *p);
7612c393a42Smrg
7622c393a42SmrgDescription
7632c393a42Smrg
764953daebaSmrg   Returns a 32-bit number which is the same for any two patterns
765953daebaSmrg   which are equal.
7662c393a42Smrg
767953daebaSmrgFcPatternAdd
7682c393a42Smrg
7692c393a42SmrgName
7702c393a42Smrg
771953daebaSmrg   FcPatternAdd -- Add a value to a pattern
7722c393a42Smrg
7732c393a42SmrgSynopsis
7742c393a42Smrg
775953daebaSmrg#include <fontconfig/fontconfig.h>
7762c393a42Smrg
777953daebaSmrg   FcBool FcPatternAdd(FcPattern *p, const char *object, FcValue
778953daebaSmrg   value, FcBool append);
7792c393a42Smrg
7802c393a42SmrgDescription
7812c393a42Smrg
782953daebaSmrg   Adds a single value to the list of values associated with the
783953daebaSmrg   property named `object. If `append is FcTrue, the value is
784953daebaSmrg   added at the end of any existing list, otherwise it is inserted
785953daebaSmrg   at the beginning. `value' is saved (with FcValueSave) when
786953daebaSmrg   inserted into the pattern so that the library retains no
787953daebaSmrg   reference to any application-supplied data structure.
7882c393a42Smrg
789953daebaSmrgFcPatternAddWeak
7902c393a42Smrg
7912c393a42SmrgName
7922c393a42Smrg
793953daebaSmrg   FcPatternAddWeak -- Add a value to a pattern with weak binding
7942c393a42Smrg
7952c393a42SmrgSynopsis
7962c393a42Smrg
797953daebaSmrg#include <fontconfig/fontconfig.h>
798a6844aabSmrg
799953daebaSmrg   FcBool FcPatternAddWeak(FcPattern *p, const char *object,
800953daebaSmrg   FcValue value, FcBool append);
8012c393a42Smrg
8022c393a42SmrgDescription
8032c393a42Smrg
804953daebaSmrg   FcPatternAddWeak is essentially the same as FcPatternAdd except
805953daebaSmrg   that any values added to the list have binding weak instead of
806953daebaSmrg   strong.
8072c393a42Smrg
808953daebaSmrgFcPatternAdd-Type
8092c393a42Smrg
8102c393a42SmrgName
8112c393a42Smrg
812ca08ab68Smrg   FcPatternAddInteger, FcPatternAddDouble, FcPatternAddString,
813ca08ab68Smrg   FcPatternAddMatrix, FcPatternAddCharSet, FcPatternAddBool,
814953daebaSmrg   FcPatternAddFTFace, FcPatternAddLangSet,
815953daebaSmrg   FcPatternAddRange -- Add a typed value to a pattern
8162c393a42Smrg
8172c393a42SmrgSynopsis
8182c393a42Smrg
819953daebaSmrg#include <fontconfig/fontconfig.h>
8202c393a42Smrg
821953daebaSmrg   FcBool FcPatternAddInteger(FcPattern *p, const char *object,
822953daebaSmrg   int i);
8232c393a42Smrg
824953daebaSmrg   FcBool FcPatternAddDouble(FcPattern *p, const char *object,
825953daebaSmrg   double d);
826a6844aabSmrg
827953daebaSmrg   FcBool FcPatternAddString(FcPattern *p, const char *object,
828953daebaSmrg   const FcChar8 *s);
8292c393a42Smrg
830953daebaSmrg   FcBool FcPatternAddMatrix(FcPattern *p, const char *object,
831953daebaSmrg   const FcMatrix *m);
8322c393a42Smrg
833953daebaSmrg   FcBool FcPatternAddCharSet(FcPattern *p, const char *object,
834953daebaSmrg   const FcCharSet *c);
8352c393a42Smrg
836953daebaSmrg   FcBool FcPatternAddBool(FcPattern *p, const char *object,
837953daebaSmrg   FcBool b);
8382c393a42Smrg
839953daebaSmrg   FcBool FcPatternAddFTFace(FcPattern *p, const char *object,
840953daebaSmrg   const FT_Facef);
8412c393a42Smrg
842953daebaSmrg   FcBool FcPatternAddLangSet(FcPattern *p, const char *object,
843953daebaSmrg   const FcLangSet *l);
8442c393a42Smrg
845953daebaSmrg   FcBool FcPatternAddRange(FcPattern *p, const char *object,
846953daebaSmrg   const FcRange *r);
8472c393a42Smrg
8482c393a42SmrgDescription
8492c393a42Smrg
850953daebaSmrg   These are all convenience functions that insert objects of the
851953daebaSmrg   specified type into the pattern. Use these in preference to
852953daebaSmrg   FcPatternAdd as they will provide compile-time typechecking.
853953daebaSmrg   These all append values to any existing list of values.
854953daebaSmrg   FcPatternAddRange are available since 2.11.91.
8552c393a42Smrg
856953daebaSmrgFcPatternGet
8572c393a42Smrg
8582c393a42SmrgName
8592c393a42Smrg
860953daebaSmrg   FcPatternGet -- Return a value from a pattern
8612c393a42Smrg
8622c393a42SmrgSynopsis
8632c393a42Smrg
864953daebaSmrg#include <fontconfig/fontconfig.h>
865a6844aabSmrg
866953daebaSmrg   FcResult FcPatternGet(FcPattern *p, const char *object, int id,
867953daebaSmrg   FcValue *v);
8682c393a42Smrg
8692c393a42SmrgDescription
8702c393a42Smrg
871953daebaSmrg   Returns in v the id'th value associated with the property
872953daebaSmrg   object. The value returned is not a copy, but rather refers to
873953daebaSmrg   the data stored within the pattern directly. Applications must
874953daebaSmrg   not free this value.
8752c393a42Smrg
876953daebaSmrgFcPatternGet-Type
8772c393a42Smrg
8782c393a42SmrgName
8792c393a42Smrg
880ca08ab68Smrg   FcPatternGetInteger, FcPatternGetDouble, FcPatternGetString,
881ca08ab68Smrg   FcPatternGetMatrix, FcPatternGetCharSet, FcPatternGetBool,
882953daebaSmrg   FcPatternGetFTFace, FcPatternGetLangSet,
883953daebaSmrg   FcPatternGetRange -- Return a typed value from a pattern
8842c393a42Smrg
8852c393a42SmrgSynopsis
8862c393a42Smrg
887953daebaSmrg#include <fontconfig/fontconfig.h>
8882c393a42Smrg
889953daebaSmrg   FcResult FcPatternGetInteger(FcPattern *p, const char *object,
890953daebaSmrg   int n, int *i);
8912c393a42Smrg
892953daebaSmrg   FcResult FcPatternGetDouble(FcPattern *p, const char *object,
893953daebaSmrg   int n, double *d);
894a6844aabSmrg
895953daebaSmrg   FcResult FcPatternGetString(FcPattern *p, const char *object,
896953daebaSmrg   int n, FcChar8 **s);
8972c393a42Smrg
898953daebaSmrg   FcResult FcPatternGetMatrix(FcPattern *p, const char *object,
899953daebaSmrg   int n, FcMatrix **s);
9002c393a42Smrg
901953daebaSmrg   FcResult FcPatternGetCharSet(FcPattern *p, const char *object,
902953daebaSmrg   int n, FcCharSet **c);
9032c393a42Smrg
904953daebaSmrg   FcResult FcPatternGetBool(FcPattern *p, const char *object, int
905953daebaSmrg   n, FcBool *b);
9062c393a42Smrg
907953daebaSmrg   FcResult FcPatternGetFTFace(FcPattern *p, const char *object,
908953daebaSmrg   int n, FT_Face *f);
9092c393a42Smrg
910953daebaSmrg   FcResult FcPatternGetLangSet(FcPattern *p, const char *object,
911953daebaSmrg   int n, FcLangSet **l);
9122c393a42Smrg
913953daebaSmrg   FcResult FcPatternGetRange(FcPattern *p, const char *object,
914953daebaSmrg   int n, FcRange **r);
9152c393a42Smrg
9162c393a42SmrgDescription
9172c393a42Smrg
918953daebaSmrg   These are convenience functions that call FcPatternGet and
919953daebaSmrg   verify that the returned data is of the expected type. They
920953daebaSmrg   return FcResultTypeMismatch if this is not the case. Note that
921953daebaSmrg   these (like FcPatternGet) do not make a copy of any data
922953daebaSmrg   structure referenced by the return value. Use these in
923953daebaSmrg   preference to FcPatternGet to provide compile-time
924953daebaSmrg   typechecking. FcPatternGetRange are available since 2.11.91.
9252c393a42Smrg
926953daebaSmrgFcPatternBuild
9272c393a42Smrg
9282c393a42SmrgName
9292c393a42Smrg
930953daebaSmrg   FcPatternBuild, FcPatternVaBuild, FcPatternVapBuild -- Create
931953daebaSmrg   patterns from arguments
9322c393a42Smrg
9332c393a42SmrgSynopsis
9342c393a42Smrg
935953daebaSmrg#include <fontconfig/fontconfig.h>
9362c393a42Smrg
937ca08ab68Smrg   FcPattern * FcPatternBuild(FcPattern *pattern, ...);
9382c393a42Smrg
939ca08ab68Smrg   FcPattern * FcPatternVaBuild(FcPattern *pattern, va_list va);
940a6844aabSmrg
941953daebaSmrg   void FcPatternVapBuild(FcPattern *result, FcPattern *pattern,
942953daebaSmrg   va_list va);
9432c393a42Smrg
9442c393a42SmrgDescription
9452c393a42Smrg
946953daebaSmrg   Builds a pattern using a list of objects, types and values.
947953daebaSmrg   Each value to be entered in the pattern is specified with three
948953daebaSmrg   arguments:
9492c393a42Smrg
950953daebaSmrg    1. Object name, a string describing the property to be added.
951953daebaSmrg    2. Object type, one of the FcType enumerated values
952953daebaSmrg    3. Value, not an FcValue, but the raw type as passed to any of
953953daebaSmrg       the FcPatternAdd<type> functions. Must match the type of
954953daebaSmrg       the second argument.
9552c393a42Smrg
956953daebaSmrg   The argument list is terminated by a null object name, no
957953daebaSmrg   object type nor value need be passed for this. The values are
958953daebaSmrg   added to `pattern', if `pattern' is null, a new pattern is
959953daebaSmrg   created. In either case, the pattern is returned. Example
960953daebaSmrgpattern = FcPatternBuild (0, FC_FAMILY, FcTypeString, "Times", (char *)
961953daebaSmrg0);
9622c393a42Smrg
963953daebaSmrg   FcPatternVaBuild is used when the arguments are already in the
964953daebaSmrg   form of a varargs value. FcPatternVapBuild is a macro version
965953daebaSmrg   of FcPatternVaBuild which returns its result directly in the
966953daebaSmrg   result variable.
967a6844aabSmrg
968953daebaSmrgFcPatternDel
9692c393a42Smrg
9702c393a42SmrgName
9712c393a42Smrg
972953daebaSmrg   FcPatternDel -- Delete a property from a pattern
9732c393a42Smrg
9742c393a42SmrgSynopsis
9752c393a42Smrg
976953daebaSmrg#include <fontconfig/fontconfig.h>
977a6844aabSmrg
978ca08ab68Smrg   FcBool FcPatternDel(FcPattern *p, const char *object);
9792c393a42Smrg
9802c393a42SmrgDescription
9812c393a42Smrg
982953daebaSmrg   Deletes all values associated with the property `object',
983953daebaSmrg   returning whether the property existed or not.
9842c393a42Smrg
985953daebaSmrgFcPatternRemove
9862c393a42Smrg
9872c393a42SmrgName
9882c393a42Smrg
989953daebaSmrg   FcPatternRemove -- Remove one object of the specified type from
990953daebaSmrg   the pattern
9912c393a42Smrg
9922c393a42SmrgSynopsis
9932c393a42Smrg
994953daebaSmrg#include <fontconfig/fontconfig.h>
995a6844aabSmrg
996953daebaSmrg   FcBool FcPatternRemove(FcPattern *p, const char *object, int
997953daebaSmrg   id);
9982c393a42Smrg
9992c393a42SmrgDescription
10002c393a42Smrg
1001953daebaSmrg   Removes the value associated with the property `object' at
1002953daebaSmrg   position `id', returning whether the property existed and had a
1003953daebaSmrg   value at that position or not.
10042c393a42Smrg
1005953daebaSmrgFcPatternPrint
10062c393a42Smrg
10072c393a42SmrgName
10082c393a42Smrg
1009953daebaSmrg   FcPatternPrint -- Print a pattern for debugging
10102c393a42Smrg
10112c393a42SmrgSynopsis
10122c393a42Smrg
1013953daebaSmrg#include <fontconfig/fontconfig.h>
1014a6844aabSmrg
1015ca08ab68Smrg   void FcPatternPrint(const FcPattern *p);
10162c393a42Smrg
10172c393a42SmrgDescription
10182c393a42Smrg
1019953daebaSmrg   Prints an easily readable version of the pattern to stdout.
1020953daebaSmrg   There is no provision for reparsing data in this format, it's
1021953daebaSmrg   just for diagnostics and debugging.
10222c393a42Smrg
1023953daebaSmrgFcDefaultSubstitute
10242c393a42Smrg
10252c393a42SmrgName
10262c393a42Smrg
1027953daebaSmrg   FcDefaultSubstitute -- Perform default substitutions in a
1028953daebaSmrg   pattern
10292c393a42Smrg
10302c393a42SmrgSynopsis
10312c393a42Smrg
1032953daebaSmrg#include <fontconfig/fontconfig.h>
1033a6844aabSmrg
1034ca08ab68Smrg   void FcDefaultSubstitute(FcPattern *pattern);
10352c393a42Smrg
10362c393a42SmrgDescription
10372c393a42Smrg
1038ca08ab68Smrg   Supplies default values for underspecified font patterns:
1039a6844aabSmrg
1040953daebaSmrg     * Patterns without a specified style or weight are set to
1041953daebaSmrg       Medium
1042953daebaSmrg     * Patterns without a specified style or slant are set to
1043953daebaSmrg       Roman
1044953daebaSmrg     * Patterns without a specified pixel size are given one
1045953daebaSmrg       computed from any specified point size (default 12), dpi
1046953daebaSmrg       (default 75) and scale (default 1).
10472c393a42Smrg
1048953daebaSmrgFcNameParse
10492c393a42Smrg
10502c393a42SmrgName
10512c393a42Smrg
1052953daebaSmrg   FcNameParse -- Parse a pattern string
10532c393a42Smrg
10542c393a42SmrgSynopsis
10552c393a42Smrg
1056953daebaSmrg#include <fontconfig/fontconfig.h>
1057a6844aabSmrg
1058ca08ab68Smrg   FcPattern * FcNameParse(const FcChar8 *name);
10592c393a42Smrg
10602c393a42SmrgDescription
10612c393a42Smrg
1062953daebaSmrg   Converts name from the standard text format described above
1063953daebaSmrg   into a pattern.
10642c393a42Smrg
1065953daebaSmrgFcNameUnparse
10662c393a42Smrg
10672c393a42SmrgName
10682c393a42Smrg
1069953daebaSmrg   FcNameUnparse -- Convert a pattern back into a string that can
1070953daebaSmrg   be parsed
10712c393a42Smrg
10722c393a42SmrgSynopsis
10732c393a42Smrg
1074953daebaSmrg#include <fontconfig/fontconfig.h>
1075a6844aabSmrg
1076ca08ab68Smrg   FcChar8 * FcNameUnparse(FcPattern *pat);
10772c393a42Smrg
10782c393a42SmrgDescription
10792c393a42Smrg
1080953daebaSmrg   Converts the given pattern into the standard text format
1081953daebaSmrg   described above. The return value is not static, but instead
1082953daebaSmrg   refers to newly allocated memory which should be freed by the
1083953daebaSmrg   caller using free().
1084953daebaSmrg
1085953daebaSmrgFcPatternFormat
1086953daebaSmrg
1087953daebaSmrgName
1088953daebaSmrg
1089953daebaSmrg   FcPatternFormat -- Format a pattern into a string according to
1090953daebaSmrg   a format specifier
1091953daebaSmrg
1092953daebaSmrgSynopsis
1093953daebaSmrg
1094953daebaSmrg#include <fontconfig/fontconfig.h>
1095953daebaSmrg
1096953daebaSmrg   FcChar8 * FcPatternFormat(FcPattern *pat, const FcChar8
1097953daebaSmrg   *format);
1098953daebaSmrg
1099953daebaSmrgDescription
1100953daebaSmrg
1101953daebaSmrg   Converts given pattern pat into text described by the format
1102953daebaSmrg   specifier format. The return value refers to newly allocated
1103953daebaSmrg   memory which should be freed by the caller using free(), or
1104953daebaSmrg   NULL if format is invalid.
1105953daebaSmrg
1106953daebaSmrg   The format is loosely modeled after printf-style format string.
1107953daebaSmrg   The format string is composed of zero or more directives:
1108953daebaSmrg   ordinary characters (not "%"), which are copied unchanged to
1109953daebaSmrg   the output stream; and tags which are interpreted to construct
1110953daebaSmrg   text from the pattern in a variety of ways (explained below).
1111953daebaSmrg   Special characters can be escaped using backslash. C-string
1112953daebaSmrg   style special characters like \n and \r are also supported
1113953daebaSmrg   (this is useful when the format string is not a C string
1114953daebaSmrg   literal). It is advisable to always escape curly braces that
1115953daebaSmrg   are meant to be copied to the output as ordinary characters.
1116953daebaSmrg
1117953daebaSmrg   Each tag is introduced by the character "%", followed by an
1118953daebaSmrg   optional minimum field width, followed by tag contents in curly
1119953daebaSmrg   braces ({}). If the minimum field width value is provided the
1120953daebaSmrg   tag will be expanded and the result padded to achieve the
1121953daebaSmrg   minimum width. If the minimum field width is positive, the
1122953daebaSmrg   padding will right-align the text. Negative field width will
1123953daebaSmrg   left-align. The rest of this section describes various
1124953daebaSmrg   supported tag contents and their expansion.
1125953daebaSmrg
1126953daebaSmrg   A simple tag is one where the content is an identifier. When
1127953daebaSmrg   simple tags are expanded, the named identifier will be looked
1128953daebaSmrg   up in pattern and the resulting list of values returned, joined
1129953daebaSmrg   together using comma. For example, to print the family name and
1130953daebaSmrg   style of the pattern, use the format "%{family} %{style}\n". To
1131953daebaSmrg   extend the family column to forty characters use
1132953daebaSmrg   "%-40{family}%{style}\n".
1133953daebaSmrg
1134953daebaSmrg   Simple tags expand to list of all values for an element. To
1135953daebaSmrg   only choose one of the values, one can index using the syntax
1136953daebaSmrg   "%{elt[idx]}". For example, to get the first family name only,
1137953daebaSmrg   use "%{family[0]}".
1138953daebaSmrg
1139953daebaSmrg   If a simple tag ends with "=" and the element is found in the
1140953daebaSmrg   pattern, the name of the element followed by "=" will be output
1141953daebaSmrg   before the list of values. For example, "%{weight=}" may expand
1142953daebaSmrg   to the string "weight=80". Or to the empty string if pattern
1143953daebaSmrg   does not have weight set.
1144953daebaSmrg
1145953daebaSmrg   If a simple tag starts with ":" and the element is found in the
1146953daebaSmrg   pattern, ":" will be printed first. For example, combining this
1147953daebaSmrg   with the =, the format "%{:weight=}" may expand to ":weight=80"
1148953daebaSmrg   or to the empty string if pattern does not have weight set.
1149953daebaSmrg
1150953daebaSmrg   If a simple tag contains the string ":-", the rest of the the
1151953daebaSmrg   tag contents will be used as a default string. The default
1152953daebaSmrg   string is output if the element is not found in the pattern.
1153953daebaSmrg   For example, the format "%{:weight=:-123}" may expand to
1154953daebaSmrg   ":weight=80" or to the string ":weight=123" if pattern does not
1155953daebaSmrg   have weight set.
1156953daebaSmrg
1157953daebaSmrg   A count tag is one that starts with the character "#" followed
1158953daebaSmrg   by an element name, and expands to the number of values for the
1159953daebaSmrg   element in the pattern. For example, "%{#family}" expands to
1160953daebaSmrg   the number of family names pattern has set, which may be zero.
1161953daebaSmrg
1162953daebaSmrg   A sub-expression tag is one that expands a sub-expression. The
1163953daebaSmrg   tag contents are the sub-expression to expand placed inside
1164953daebaSmrg   another set of curly braces. Sub-expression tags are useful for
1165953daebaSmrg   aligning an entire sub-expression, or to apply converters
1166953daebaSmrg   (explained later) to the entire sub-expression output. For
1167953daebaSmrg   example, the format "%40{{%{family} %{style}}}" expands the
1168953daebaSmrg   sub-expression to construct the family name followed by the
1169953daebaSmrg   style, then takes the entire string and pads it on the left to
1170953daebaSmrg   be at least forty characters.
1171953daebaSmrg
1172953daebaSmrg   A filter-out tag is one starting with the character "-"
1173953daebaSmrg   followed by a comma-separated list of element names, followed
1174953daebaSmrg   by a sub-expression enclosed in curly braces. The
1175953daebaSmrg   sub-expression will be expanded but with a pattern that has the
1176953daebaSmrg   listed elements removed from it. For example, the format
1177953daebaSmrg   "%{-size,pixelsize{sub-expr}}" will expand "sub-expr" with
1178953daebaSmrg   pattern sans the size and pixelsize elements.
1179953daebaSmrg
1180953daebaSmrg   A filter-in tag is one starting with the character "+" followed
1181953daebaSmrg   by a comma-separated list of element names, followed by a
1182953daebaSmrg   sub-expression enclosed in curly braces. The sub-expression
1183953daebaSmrg   will be expanded but with a pattern that only has the listed
1184953daebaSmrg   elements from the surrounding pattern. For example, the format
1185953daebaSmrg   "%{+family,familylang{sub-expr}}" will expand "sub-expr" with a
1186953daebaSmrg   sub-pattern consisting only the family and family lang elements
1187953daebaSmrg   of pattern.
1188953daebaSmrg
1189953daebaSmrg   A conditional tag is one starting with the character "?"
1190953daebaSmrg   followed by a comma-separated list of element conditions,
1191953daebaSmrg   followed by two sub-expression enclosed in curly braces. An
1192953daebaSmrg   element condition can be an element name, in which case it
1193953daebaSmrg   tests whether the element is defined in pattern, or the
1194953daebaSmrg   character "!" followed by an element name, in which case the
1195953daebaSmrg   test is negated. The conditional passes if all the element
1196953daebaSmrg   conditions pass. The tag expands the first sub-expression if
1197953daebaSmrg   the conditional passes, and expands the second sub-expression
1198953daebaSmrg   otherwise. For example, the format
1199953daebaSmrg   "%{?size,dpi,!pixelsize{pass}{fail}}" will expand to "pass" if
1200953daebaSmrg   pattern has size and dpi elements but no pixelsize element, and
1201953daebaSmrg   to "fail" otherwise.
1202953daebaSmrg
1203953daebaSmrg   An enumerate tag is one starting with the string "[]" followed
1204953daebaSmrg   by a comma-separated list of element names, followed by a
1205953daebaSmrg   sub-expression enclosed in curly braces. The list of values for
1206953daebaSmrg   the named elements are walked in parallel and the
1207953daebaSmrg   sub-expression expanded each time with a pattern just having a
1208953daebaSmrg   single value for those elements, starting from the first value
1209953daebaSmrg   and continuing as long as any of those elements has a value.
1210ca08ab68Smrg   For example, the format "%{[]family,familylang{%{family}
1211953daebaSmrg   (%{familylang})\n}}" will expand the pattern "%{family}
1212953daebaSmrg   (%{familylang})\n" with a pattern having only the first value
1213953daebaSmrg   of the family and familylang elements, then expands it with the
1214953daebaSmrg   second values, then the third, etc.
1215a6844aabSmrg
1216953daebaSmrg   As a special case, if an enumerate tag has only one element,
1217953daebaSmrg   and that element has only one value in the pattern, and that
1218953daebaSmrg   value is of type FcLangSet, the individual languages in the
1219953daebaSmrg   language set are enumerated.
1220a6844aabSmrg
1221953daebaSmrg   A builtin tag is one starting with the character "=" followed
1222953daebaSmrg   by a builtin name. The following builtins are defined:
1223a6844aabSmrg
1224ca08ab68Smrg   unparse
1225953daebaSmrg          Expands to the result of calling FcNameUnparse() on the
1226953daebaSmrg          pattern.
1227a6844aabSmrg
1228ca08ab68Smrg   fcmatch
1229953daebaSmrg          Expands to the output of the default output format of
1230953daebaSmrg          the fc-match command on the pattern, without the final
1231953daebaSmrg          newline.
1232a6844aabSmrg
1233ca08ab68Smrg   fclist
1234953daebaSmrg          Expands to the output of the default output format of
1235953daebaSmrg          the fc-list command on the pattern, without the final
1236953daebaSmrg          newline.
1237a6844aabSmrg
1238ca08ab68Smrg   fccat
1239953daebaSmrg          Expands to the output of the default output format of
1240953daebaSmrg          the fc-cat command on the pattern, without the final
1241953daebaSmrg          newline.
1242a6844aabSmrg
1243ca08ab68Smrg   pkgkit
1244953daebaSmrg          Expands to the list of PackageKit font() tags for the
1245953daebaSmrg          pattern. Currently this includes tags for each family
1246953daebaSmrg          name, and each language from the pattern, enumerated and
1247953daebaSmrg          sanitized into a set of tags terminated by newline.
1248953daebaSmrg          Package management systems can use these tags to tag
1249953daebaSmrg          their packages accordingly.
1250953daebaSmrg
1251953daebaSmrg   For example, the format "%{+family,style{%{=unparse}}}\n" will
1252953daebaSmrg   expand to an unparsed name containing only the family and style
1253953daebaSmrg   element values from pattern.
1254953daebaSmrg
1255953daebaSmrg   The contents of any tag can be followed by a set of zero or
1256953daebaSmrg   more converters. A converter is specified by the character "|"
1257953daebaSmrg   followed by the converter name and arguments. The following
1258953daebaSmrg   converters are defined:
1259a6844aabSmrg
1260ca08ab68Smrg   basename
1261953daebaSmrg          Replaces text with the results of calling
1262953daebaSmrg          FcStrBasename() on it.
1263a6844aabSmrg
1264ca08ab68Smrg   dirname
1265953daebaSmrg          Replaces text with the results of calling FcStrDirname()
1266953daebaSmrg          on it.
1267a6844aabSmrg
1268ca08ab68Smrg   downcase
1269953daebaSmrg          Replaces text with the results of calling
1270953daebaSmrg          FcStrDowncase() on it.
1271a6844aabSmrg
1272ca08ab68Smrg   shescape
1273953daebaSmrg          Escapes text for one level of shell expansion. (Escapes
1274953daebaSmrg          single-quotes, also encloses text in single-quotes.)
1275a6844aabSmrg
1276ca08ab68Smrg   cescape
1277953daebaSmrg          Escapes text such that it can be used as part of a C
1278953daebaSmrg          string literal. (Escapes backslash and double-quotes.)
1279a6844aabSmrg
1280ca08ab68Smrg   xmlescape
1281953daebaSmrg          Escapes text such that it can be used in XML and HTML.
1282953daebaSmrg          (Escapes less-than, greater-than, and ampersand.)
1283a6844aabSmrg
1284ca08ab68Smrg   delete(chars)
1285953daebaSmrg          Deletes all occurrences of each of the characters in
1286953daebaSmrg          chars from the text. FIXME: This converter is not UTF-8
1287953daebaSmrg          aware yet.
1288a6844aabSmrg
1289ca08ab68Smrg   escape(chars)
1290953daebaSmrg          Escapes all occurrences of each of the characters in
1291953daebaSmrg          chars by prepending it by the first character in chars.
1292953daebaSmrg          FIXME: This converter is not UTF-8 aware yet.
1293a6844aabSmrg
1294ca08ab68Smrg   translate(from,to)
1295953daebaSmrg          Translates all occurrences of each of the characters in
1296953daebaSmrg          from by replacing them with their corresponding
1297953daebaSmrg          character in to. If to has fewer characters than from,
1298953daebaSmrg          it will be extended by repeating its last character.
1299953daebaSmrg          FIXME: This converter is not UTF-8 aware yet.
1300ca08ab68Smrg
1301953daebaSmrg   For example, the format "%{family|downcase|delete( )}\n" will
1302953daebaSmrg   expand to the values of the family element in pattern,
1303953daebaSmrg   lower-cased and with spaces removed.
13042c393a42Smrg
1305b09479dcSmrgSince
13062c393a42Smrg
1307b09479dcSmrg   version 2.9.0
1308953daebaSmrg     __________________________________________________________
1309ca08ab68Smrg
1310953daebaSmrgFcFontSet
1311ca08ab68Smrg
1312ca08ab68Smrg   Table of Contents
1313953daebaSmrg   FcFontSetCreate -- Create a font set
1314953daebaSmrg   FcFontSetDestroy -- Destroy a font set
1315953daebaSmrg   FcFontSetAdd -- Add to a font set
1316953daebaSmrg   FcFontSetList -- List fonts from a set of font sets
1317953daebaSmrg   FcFontSetMatch -- Return the best font from a set of font sets
1318953daebaSmrg   FcFontSetPrint -- Print a set of patterns to stdout
1319953daebaSmrg   FcFontSetSort -- Add to a font set
1320953daebaSmrg   FcFontSetSortDestroy -- DEPRECATED destroy a font set
1321ca08ab68Smrg
1322953daebaSmrg   An FcFontSet simply holds a list of patterns; these are used to
1323953daebaSmrg   return the results of listing available fonts.
1324a6844aabSmrg
1325953daebaSmrgFcFontSetCreate
13262c393a42Smrg
13272c393a42SmrgName
13282c393a42Smrg
1329953daebaSmrg   FcFontSetCreate -- Create a font set
13302c393a42Smrg
13312c393a42SmrgSynopsis
13322c393a42Smrg
1333953daebaSmrg#include <fontconfig/fontconfig.h>
1334a6844aabSmrg
1335ca08ab68Smrg   FcFontSet * FcFontSetCreate(void);
13362c393a42Smrg
13372c393a42SmrgDescription
13382c393a42Smrg
1339ca08ab68Smrg   Creates an empty font set.
13402c393a42Smrg
1341953daebaSmrgFcFontSetDestroy
13422c393a42Smrg
13432c393a42SmrgName
13442c393a42Smrg
1345953daebaSmrg   FcFontSetDestroy -- Destroy a font set
13462c393a42Smrg
13472c393a42SmrgSynopsis
13482c393a42Smrg
1349953daebaSmrg#include <fontconfig/fontconfig.h>
1350a6844aabSmrg
1351ca08ab68Smrg   void FcFontSetDestroy(FcFontSet *s);
13522c393a42Smrg
13532c393a42SmrgDescription
13542c393a42Smrg
1355953daebaSmrg   Destroys a font set. Note that this destroys any referenced
1356953daebaSmrg   patterns as well.
13572c393a42Smrg
1358953daebaSmrgFcFontSetAdd
13592c393a42Smrg
13602c393a42SmrgName
13612c393a42Smrg
1362953daebaSmrg   FcFontSetAdd -- Add to a font set
13632c393a42Smrg
13642c393a42SmrgSynopsis
13652c393a42Smrg
1366953daebaSmrg#include <fontconfig/fontconfig.h>
1367a6844aabSmrg
1368ca08ab68Smrg   FcBool FcFontSetAdd(FcFontSet *s, FcPattern *font);
13692c393a42Smrg
13702c393a42SmrgDescription
13712c393a42Smrg
1372953daebaSmrg   Adds a pattern to a font set. Note that the pattern is not
1373953daebaSmrg   copied before being inserted into the set. Returns FcFalse if
1374953daebaSmrg   the pattern cannot be inserted into the set (due to allocation
1375953daebaSmrg   failure). Otherwise returns FcTrue.
13762c393a42Smrg
1377953daebaSmrgFcFontSetList
13782c393a42Smrg
13792c393a42SmrgName
13802c393a42Smrg
1381953daebaSmrg   FcFontSetList -- List fonts from a set of font sets
13822c393a42Smrg
13832c393a42SmrgSynopsis
13842c393a42Smrg
1385953daebaSmrg#include <fontconfig/fontconfig.h>
1386a6844aabSmrg
1387953daebaSmrg   FcFontSet * FcFontSetList(FcConfig *config, FcFontSet **sets,
1388953daebaSmrg   intnsets, FcPattern *pattern, FcObjectSet *object_set);
13892c393a42Smrg
13902c393a42SmrgDescription
13912c393a42Smrg
1392953daebaSmrg   Selects fonts matching pattern from sets, creates patterns from
1393953daebaSmrg   those fonts containing only the objects in object_set and
1394953daebaSmrg   returns the set of unique such patterns. If config is NULL, the
1395953daebaSmrg   default configuration is checked to be up to date, and used.
13962c393a42Smrg
1397953daebaSmrgFcFontSetMatch
13982c393a42Smrg
13992c393a42SmrgName
14002c393a42Smrg
1401953daebaSmrg   FcFontSetMatch -- Return the best font from a set of font sets
14022c393a42Smrg
14032c393a42SmrgSynopsis
14042c393a42Smrg
1405953daebaSmrg#include <fontconfig/fontconfig.h>
1406a6844aabSmrg
1407953daebaSmrg   FcPattern * FcFontSetMatch(FcConfig *config, FcFontSet **sets,
1408953daebaSmrg   intnsets, FcPattern *pattern, FcResult *result);
14092c393a42Smrg
14102c393a42SmrgDescription
14112c393a42Smrg
1412953daebaSmrg   Finds the font in sets most closely matching pattern and
1413953daebaSmrg   returns the result of FcFontRenderPrepare for that font and the
1414953daebaSmrg   provided pattern. This function should be called only after
1415953daebaSmrg   FcConfigSubstitute and FcDefaultSubstitute have been called for
1416953daebaSmrg   pattern; otherwise the results will not be correct. If config
1417953daebaSmrg   is NULL, the current configuration is used. Returns NULL if an
1418953daebaSmrg   error occurs during this process.
14192c393a42Smrg
1420953daebaSmrgFcFontSetPrint
14212c393a42Smrg
14222c393a42SmrgName
14232c393a42Smrg
1424953daebaSmrg   FcFontSetPrint -- Print a set of patterns to stdout
14252c393a42Smrg
14262c393a42SmrgSynopsis
14272c393a42Smrg
1428953daebaSmrg#include <fontconfig/fontconfig.h>
1429a6844aabSmrg
1430ca08ab68Smrg   void FcFontSetPrint(FcFontSet *set);
14312c393a42Smrg
14322c393a42SmrgDescription
14332c393a42Smrg
1434953daebaSmrg   This function is useful for diagnosing font related issues,
1435953daebaSmrg   printing the complete contents of every pattern in set. The
1436953daebaSmrg   format of the output is designed to be of help to users and
1437953daebaSmrg   developers, and may change at any time.
14382c393a42Smrg
1439953daebaSmrgFcFontSetSort
14402c393a42Smrg
14412c393a42SmrgName
14422c393a42Smrg
1443953daebaSmrg   FcFontSetSort -- Add to a font set
14442c393a42Smrg
14452c393a42SmrgSynopsis
14462c393a42Smrg
1447953daebaSmrg#include <fontconfig/fontconfig.h>
14482c393a42Smrg
1449953daebaSmrg   FcFontSetSort(FcConfig *config, FcFontSet **sets, intnsets,
1450953daebaSmrg   FcPattern *pattern, FcBool trim, FcCharSet **csp, FcResult
1451953daebaSmrg   *result);
14522c393a42Smrg
14532c393a42SmrgDescription
14542c393a42Smrg
1455953daebaSmrg   Returns the list of fonts from sets sorted by closeness to
1456953daebaSmrg   pattern. If trim is FcTrue, elements in the list which don't
1457953daebaSmrg   include Unicode coverage not provided by earlier elements in
1458953daebaSmrg   the list are elided. The union of Unicode coverage of all of
1459953daebaSmrg   the fonts is returned in csp, if csp is not NULL. This function
1460953daebaSmrg   should be called only after FcConfigSubstitute and
1461953daebaSmrg   FcDefaultSubstitute have been called for p; otherwise the
1462953daebaSmrg   results will not be correct.
14632c393a42Smrg
1464953daebaSmrg   The returned FcFontSet references FcPattern structures which
1465953daebaSmrg   may be shared by the return value from multiple FcFontSort
1466953daebaSmrg   calls, applications cannot modify these patterns. Instead, they
1467953daebaSmrg   should be passed, along with pattern to FcFontRenderPrepare
1468953daebaSmrg   which combines them into a complete pattern.
14692c393a42Smrg
1470ca08ab68Smrg   The FcFontSet returned by FcFontSetSort is destroyed by calling
1471ca08ab68Smrg   FcFontSetDestroy.
14722c393a42Smrg
1473953daebaSmrgFcFontSetSortDestroy
14742c393a42Smrg
14752c393a42SmrgName
14762c393a42Smrg
1477953daebaSmrg   FcFontSetSortDestroy -- DEPRECATED destroy a font set
14782c393a42Smrg
14792c393a42SmrgSynopsis
14802c393a42Smrg
1481953daebaSmrg#include <fontconfig/fontconfig.h>
1482a6844aabSmrg
1483ca08ab68Smrg   FcFontSetSortDestroy(FcFontSet *set);
14842c393a42Smrg
14852c393a42SmrgDescription
14862c393a42Smrg
1487953daebaSmrg   This function is DEPRECATED. FcFontSetSortDestroy destroys set
1488953daebaSmrg   by calling FcFontSetDestroy. Applications should use
1489953daebaSmrg   FcFontSetDestroy directly instead.
1490953daebaSmrg     __________________________________________________________
14912c393a42Smrg
1492953daebaSmrgFcObjectSet
1493ca08ab68Smrg
1494ca08ab68Smrg   Table of Contents
1495953daebaSmrg   FcObjectSetCreate -- Create an object set
1496953daebaSmrg   FcObjectSetAdd -- Add to an object set
1497953daebaSmrg   FcObjectSetDestroy -- Destroy an object set
1498953daebaSmrg   FcObjectSetBuild -- Build object set from args
1499ca08ab68Smrg
1500953daebaSmrg   An FcObjectSet holds a list of pattern property names; it is
1501953daebaSmrg   used to indicate which properties are to be returned in the
1502953daebaSmrg   patterns from FcFontList.
15032c393a42Smrg
1504953daebaSmrgFcObjectSetCreate
15052c393a42Smrg
15062c393a42SmrgName
15072c393a42Smrg
1508953daebaSmrg   FcObjectSetCreate -- Create an object set
15092c393a42Smrg
15102c393a42SmrgSynopsis
15112c393a42Smrg
1512953daebaSmrg#include <fontconfig/fontconfig.h>
1513a6844aabSmrg
1514ca08ab68Smrg   FcObjectSet * FcObjectSetCreate(void);
15152c393a42Smrg
15162c393a42SmrgDescription
15172c393a42Smrg
1518ca08ab68Smrg   Creates an empty set.
15192c393a42Smrg
1520953daebaSmrgFcObjectSetAdd
15212c393a42Smrg
15222c393a42SmrgName
15232c393a42Smrg
1524953daebaSmrg   FcObjectSetAdd -- Add to an object set
15252c393a42Smrg
15262c393a42SmrgSynopsis
15272c393a42Smrg
1528953daebaSmrg#include <fontconfig/fontconfig.h>
1529a6844aabSmrg
1530ca08ab68Smrg   FcBool FcObjectSetAdd(FcObjectSet *os, const char *object);
15312c393a42Smrg
15322c393a42SmrgDescription
15332c393a42Smrg
1534953daebaSmrg   Adds a property name to the set. Returns FcFalse if the
1535953daebaSmrg   property name cannot be inserted into the set (due to
1536953daebaSmrg   allocation failure). Otherwise returns FcTrue.
15372c393a42Smrg
1538953daebaSmrgFcObjectSetDestroy
15392c393a42Smrg
15402c393a42SmrgName
15412c393a42Smrg
1542953daebaSmrg   FcObjectSetDestroy -- Destroy an object set
15432c393a42Smrg
15442c393a42SmrgSynopsis
15452c393a42Smrg
1546953daebaSmrg#include <fontconfig/fontconfig.h>
1547a6844aabSmrg
1548ca08ab68Smrg   void FcObjectSetDestroy(FcObjectSet *os);
15492c393a42Smrg
15502c393a42SmrgDescription
15512c393a42Smrg
1552ca08ab68Smrg   Destroys an object set.
15532c393a42Smrg
1554953daebaSmrgFcObjectSetBuild
15552c393a42Smrg
15562c393a42SmrgName
15572c393a42Smrg
1558953daebaSmrg   FcObjectSetBuild, FcObjectSetVaBuild,
1559953daebaSmrg   FcObjectSetVapBuild -- Build object set from args
15602c393a42Smrg
15612c393a42SmrgSynopsis
15622c393a42Smrg
1563953daebaSmrg#include <fontconfig/fontconfig.h>
15642c393a42Smrg
1565ca08ab68Smrg   FcObjectSet * FcObjectSetBuild(const char *first, ...);
15662c393a42Smrg
1567953daebaSmrg   FcObjectSet * FcObjectSetVaBuild(const char *first, va_list
1568ca08ab68Smrg   va);
15692c393a42Smrg
1570953daebaSmrg   void FcObjectSetVapBuild(FcObjectSet *result, const char
1571953daebaSmrg   *first, va_list va);
15722c393a42Smrg
1573953daebaSmrgDescription
15742c393a42Smrg
1575953daebaSmrg   These build an object set from a null-terminated list of
1576953daebaSmrg   property names. FcObjectSetVapBuild is a macro version of
1577953daebaSmrg   FcObjectSetVaBuild which returns the result in the result
1578953daebaSmrg   variable directly.
1579953daebaSmrg     __________________________________________________________
1580ca08ab68Smrg
1581953daebaSmrgFreeType specific functions
1582ca08ab68Smrg
1583ca08ab68Smrg   Table of Contents
1584953daebaSmrg   FcFreeTypeCharIndex -- map Unicode to glyph id
1585953daebaSmrg   FcFreeTypeCharSet -- compute Unicode coverage
1586953daebaSmrg   FcFreeTypeCharSetAndSpacing -- compute Unicode coverage and
1587953daebaSmrg          spacing type
1588ca08ab68Smrg
1589953daebaSmrg   FcFreeTypeQuery -- compute pattern from font file (and index)
1590953daebaSmrg   FcFreeTypeQueryFace -- compute pattern from FT_Face
15912c393a42Smrg
1592953daebaSmrg   While the fontconfig library doesn't insist that FreeType be
1593953daebaSmrg   used as the rasterization mechanism for fonts, it does provide
1594953daebaSmrg   some convenience functions.
15952c393a42Smrg
1596953daebaSmrgFcFreeTypeCharIndex
15972c393a42Smrg
15982c393a42SmrgName
15992c393a42Smrg
1600953daebaSmrg   FcFreeTypeCharIndex -- map Unicode to glyph id
16012c393a42Smrg
16022c393a42SmrgSynopsis
16032c393a42Smrg
1604953daebaSmrg#include <fontconfig.h>
1605953daebaSmrg#include <fcfreetype.h>
1606a6844aabSmrg
1607ca08ab68Smrg   FT_UInt FcFreeTypeCharIndex(FT_Face face, FcChar32 ucs4);
16082c393a42Smrg
16092c393a42SmrgDescription
16102c393a42Smrg
1611953daebaSmrg   Maps a Unicode char to a glyph index. This function uses
1612953daebaSmrg   information from several possible underlying encoding tables to
1613953daebaSmrg   work around broken fonts. As a result, this function isn't
1614953daebaSmrg   designed to be used in performance sensitive areas; results
1615953daebaSmrg   from this function are intended to be cached by higher level
1616953daebaSmrg   functions.
16172c393a42Smrg
1618953daebaSmrgFcFreeTypeCharSet
16192c393a42Smrg
16202c393a42SmrgName
16212c393a42Smrg
1622953daebaSmrg   FcFreeTypeCharSet -- compute Unicode coverage
16232c393a42Smrg
16242c393a42SmrgSynopsis
16252c393a42Smrg
1626953daebaSmrg#include <fontconfig.h>
1627953daebaSmrg#include <fcfreetype.h>
1628a6844aabSmrg
1629ca08ab68Smrg   FcCharSet * FcFreeTypeCharSet(FT_Face face, FcBlanks *blanks);
16302c393a42Smrg
16312c393a42SmrgDescription
16322c393a42Smrg
1633953daebaSmrg   Scans a FreeType face and returns the set of encoded Unicode
1634953daebaSmrg   chars. This scans several encoding tables to build as complete
1635953daebaSmrg   a list as possible. If 'blanks' is not 0, the glyphs in the
1636953daebaSmrg   font are examined and any blank glyphs not in 'blanks' are not
1637953daebaSmrg   placed in the returned FcCharSet.
16382c393a42Smrg
1639953daebaSmrgFcFreeTypeCharSetAndSpacing
16402c393a42Smrg
16412c393a42SmrgName
16422c393a42Smrg
1643953daebaSmrg   FcFreeTypeCharSetAndSpacing -- compute Unicode coverage and
1644953daebaSmrg   spacing type
16452c393a42Smrg
16462c393a42SmrgSynopsis
16472c393a42Smrg
1648953daebaSmrg#include <fontconfig.h>
1649953daebaSmrg#include <fcfreetype.h>
1650a6844aabSmrg
1651953daebaSmrg   FcCharSet * FcFreeTypeCharSetAndSpacing(FT_Face face, FcBlanks
1652953daebaSmrg   *blanks, int *spacing);
16532c393a42Smrg
16542c393a42SmrgDescription
16552c393a42Smrg
1656953daebaSmrg   Scans a FreeType face and returns the set of encoded Unicode
1657953daebaSmrg   chars. This scans several encoding tables to build as complete
1658953daebaSmrg   a list as possible. If 'blanks' is not 0, the glyphs in the
1659953daebaSmrg   font are examined and any blank glyphs not in 'blanks' are not
1660953daebaSmrg   placed in the returned FcCharSet. spacing receives the computed
1661953daebaSmrg   spacing type of the font, one of FC_MONO for a font where all
1662953daebaSmrg   glyphs have the same width, FC_DUAL, where the font has glyphs
1663ca08ab68Smrg   in precisely two widths, one twice as wide as the other, or
1664ca08ab68Smrg   FC_PROPORTIONAL where the font has glyphs of many widths.
16652c393a42Smrg
1666953daebaSmrgFcFreeTypeQuery
16672c393a42Smrg
16682c393a42SmrgName
16692c393a42Smrg
1670953daebaSmrg   FcFreeTypeQuery -- compute pattern from font file (and index)
16712c393a42Smrg
16722c393a42SmrgSynopsis
16732c393a42Smrg
1674953daebaSmrg#include <fontconfig.h>
1675953daebaSmrg#include <fcfreetype.h>
1676a6844aabSmrg
1677953daebaSmrg   FcPattern * FcFreeTypeQuery(const FcChar8 *file, int id,
1678953daebaSmrg   FcBlanks *blanks, int *count);
16792c393a42Smrg
16802c393a42SmrgDescription
16812c393a42Smrg
1682953daebaSmrg   Constructs a pattern representing the 'id'th font in 'file'.
1683953daebaSmrg   The number of fonts in 'file' is returned in 'count'.
16842c393a42Smrg
1685953daebaSmrgFcFreeTypeQueryFace
16862c393a42Smrg
16872c393a42SmrgName
16882c393a42Smrg
1689953daebaSmrg   FcFreeTypeQueryFace -- compute pattern from FT_Face
16902c393a42Smrg
16912c393a42SmrgSynopsis
16922c393a42Smrg
1693953daebaSmrg#include <fontconfig.h>
1694953daebaSmrg#include <fcfreetype.h>
16952c393a42Smrg
1696953daebaSmrg   FcPattern * FcFreeTypeQueryFace(const FT_Face face, const
1697953daebaSmrg   FcChar8 *file, int id, FcBlanks *blanks);
16982c393a42Smrg
16992c393a42SmrgDescription
17002c393a42Smrg
1701953daebaSmrg   Constructs a pattern representing 'face'. 'file' and 'id' are
1702953daebaSmrg   used solely as data for pattern elements (FC_FILE, FC_INDEX and
1703953daebaSmrg   sometimes FC_FAMILY).
1704953daebaSmrg     __________________________________________________________
1705ca08ab68Smrg
1706953daebaSmrgFcValue
1707ca08ab68Smrg
1708ca08ab68Smrg   Table of Contents
1709953daebaSmrg   FcValueDestroy -- Free a value
1710953daebaSmrg   FcValueSave -- Copy a value
1711953daebaSmrg   FcValuePrint -- Print a value to stdout
1712953daebaSmrg   FcValueEqual -- Test two values for equality
1713ca08ab68Smrg
1714953daebaSmrg   FcValue is a structure containing a type tag and a union of all
1715953daebaSmrg   possible datatypes. The tag is an enum of type FcType and is
1716953daebaSmrg   intended to provide a measure of run-time typechecking,
1717953daebaSmrg   although that depends on careful programming.
1718a6844aabSmrg
1719953daebaSmrgFcValueDestroy
17202c393a42Smrg
17212c393a42SmrgName
17222c393a42Smrg
1723953daebaSmrg   FcValueDestroy -- Free a value
17242c393a42Smrg
17252c393a42SmrgSynopsis
17262c393a42Smrg
1727953daebaSmrg#include <fontconfig/fontconfig.h>
1728a6844aabSmrg
1729ca08ab68Smrg   void FcValueDestroy(FcValue v);
17302c393a42Smrg
17312c393a42SmrgDescription
17322c393a42Smrg
1733ca08ab68Smrg   Frees any memory referenced by v. Values of type FcTypeString,
1734953daebaSmrg   FcTypeMatrix and FcTypeCharSet reference memory, the other
1735953daebaSmrg   types do not.
17362c393a42Smrg
1737953daebaSmrgFcValueSave
17382c393a42Smrg
17392c393a42SmrgName
17402c393a42Smrg
1741953daebaSmrg   FcValueSave -- Copy a value
17422c393a42Smrg
17432c393a42SmrgSynopsis
17442c393a42Smrg
1745953daebaSmrg#include <fontconfig/fontconfig.h>
1746a6844aabSmrg
1747ca08ab68Smrg   FcValue FcValueSave(FcValue v);
17482c393a42Smrg
17492c393a42SmrgDescription
17502c393a42Smrg
1751953daebaSmrg   Returns a copy of v duplicating any object referenced by it so
1752953daebaSmrg   that v may be safely destroyed without harming the new value.
17532c393a42Smrg
1754953daebaSmrgFcValuePrint
17552c393a42Smrg
17562c393a42SmrgName
17572c393a42Smrg
1758953daebaSmrg   FcValuePrint -- Print a value to stdout
17592c393a42Smrg
17602c393a42SmrgSynopsis
17612c393a42Smrg
1762953daebaSmrg#include <fontconfig/fontconfig.h>
1763a6844aabSmrg
1764ca08ab68Smrg   void FcValuePrint(FcValue v);
17652c393a42Smrg
17662c393a42SmrgDescription
17672c393a42Smrg
1768953daebaSmrg   Prints a human-readable representation of v to stdout. The
1769953daebaSmrg   format should not be considered part of the library
1770953daebaSmrg   specification as it may change in the future.
17712c393a42Smrg
1772953daebaSmrgFcValueEqual
17732c393a42Smrg
17742c393a42SmrgName
17752c393a42Smrg
1776953daebaSmrg   FcValueEqual -- Test two values for equality
17772c393a42Smrg
17782c393a42SmrgSynopsis
17792c393a42Smrg
1780953daebaSmrg#include <fontconfig/fontconfig.h>
1781a6844aabSmrg
1782ca08ab68Smrg   FcBool FcValueEqual(FcValue v_a, FcValue v_b);
17832c393a42Smrg
17842c393a42SmrgDescription
17852c393a42Smrg
1786953daebaSmrg   Compares two values. Integers and Doubles are compared as
1787953daebaSmrg   numbers; otherwise the two values have to be the same type to
1788953daebaSmrg   be considered equal. Strings are compared ignoring case.
1789953daebaSmrg     __________________________________________________________
17902c393a42Smrg
1791953daebaSmrgFcCharSet
1792ca08ab68Smrg
1793ca08ab68Smrg   Table of Contents
1794953daebaSmrg   FcCharSetCreate -- Create an empty character set
1795953daebaSmrg   FcCharSetDestroy -- Destroy a character set
1796953daebaSmrg   FcCharSetAddChar -- Add a character to a charset
1797953daebaSmrg   FcCharSetDelChar -- Add a character to a charset
1798953daebaSmrg   FcCharSetCopy -- Copy a charset
1799953daebaSmrg   FcCharSetEqual -- Compare two charsets
1800953daebaSmrg   FcCharSetIntersect -- Intersect charsets
1801953daebaSmrg   FcCharSetUnion -- Add charsets
1802953daebaSmrg   FcCharSetSubtract -- Subtract charsets
1803953daebaSmrg   FcCharSetMerge -- Merge charsets
1804953daebaSmrg   FcCharSetHasChar -- Check a charset for a char
1805953daebaSmrg   FcCharSetCount -- Count entries in a charset
1806953daebaSmrg   FcCharSetIntersectCount -- Intersect and count charsets
1807953daebaSmrg   FcCharSetSubtractCount -- Subtract and count charsets
1808953daebaSmrg   FcCharSetIsSubset -- Test for charset inclusion
1809953daebaSmrg   FcCharSetFirstPage -- Start enumerating charset contents
1810953daebaSmrg   FcCharSetNextPage -- Continue enumerating charset contents
1811953daebaSmrg   FcCharSetCoverage -- DEPRECATED return coverage for a Unicode
1812953daebaSmrg          page
1813ca08ab68Smrg
1814953daebaSmrg   FcCharSetNew -- DEPRECATED alias for FcCharSetCreate
1815ca08ab68Smrg
1816953daebaSmrg   An FcCharSet is a boolean array indicating a set of Unicode
1817953daebaSmrg   chars. Those associated with a font are marked constant and
1818953daebaSmrg   cannot be edited. FcCharSets may be reference counted
1819953daebaSmrg   internally to reduce memory consumption; this may be visible to
1820953daebaSmrg   applications as the result of FcCharSetCopy may return it's
1821953daebaSmrg   argument, and that CharSet may remain unmodifiable.
1822ca08ab68Smrg
1823953daebaSmrgFcCharSetCreate
1824ca08ab68Smrg
1825ca08ab68SmrgName
1826ca08ab68Smrg
1827953daebaSmrg   FcCharSetCreate -- Create an empty character set
1828ca08ab68Smrg
1829ca08ab68SmrgSynopsis
1830ca08ab68Smrg
1831953daebaSmrg#include <fontconfig/fontconfig.h>
1832ca08ab68Smrg
1833ca08ab68Smrg   FcCharSet * FcCharSetCreate(void);
1834ca08ab68Smrg
1835ca08ab68SmrgDescription
1836ca08ab68Smrg
1837953daebaSmrg   FcCharSetCreate allocates and initializes a new empty character
1838953daebaSmrg   set object.
1839ca08ab68Smrg
1840953daebaSmrgFcCharSetDestroy
18412c393a42Smrg
18422c393a42SmrgName
18432c393a42Smrg
1844953daebaSmrg   FcCharSetDestroy -- Destroy a character set
18452c393a42Smrg
18462c393a42SmrgSynopsis
18472c393a42Smrg
1848953daebaSmrg#include <fontconfig/fontconfig.h>
1849a6844aabSmrg
1850ca08ab68Smrg   void FcCharSetDestroy(FcCharSet *fcs);
18512c393a42Smrg
18522c393a42SmrgDescription
18532c393a42Smrg
1854953daebaSmrg   FcCharSetDestroy decrements the reference count fcs. If the
1855953daebaSmrg   reference count becomes zero, all memory referenced is freed.
18562c393a42Smrg
1857953daebaSmrgFcCharSetAddChar
18582c393a42Smrg
18592c393a42SmrgName
18602c393a42Smrg
1861953daebaSmrg   FcCharSetAddChar -- Add a character to a charset
18622c393a42Smrg
18632c393a42SmrgSynopsis
18642c393a42Smrg
1865953daebaSmrg#include <fontconfig/fontconfig.h>
1866a6844aabSmrg
1867ca08ab68Smrg   FcBool FcCharSetAddChar(FcCharSet *fcs, FcChar32 ucs4);
18682c393a42Smrg
18692c393a42SmrgDescription
18702c393a42Smrg
1871953daebaSmrg   FcCharSetAddChar adds a single Unicode char to the set,
1872953daebaSmrg   returning FcFalse on failure, either as a result of a constant
1873953daebaSmrg   set or from running out of memory.
18742c393a42Smrg
1875953daebaSmrgFcCharSetDelChar
18762c393a42Smrg
18772c393a42SmrgName
18782c393a42Smrg
1879953daebaSmrg   FcCharSetDelChar -- Add a character to a charset
18802c393a42Smrg
18812c393a42SmrgSynopsis
18822c393a42Smrg
1883953daebaSmrg#include <fontconfig/fontconfig.h>
1884a6844aabSmrg
1885ca08ab68Smrg   FcBool FcCharSetDelChar(FcCharSet *fcs, FcChar32 ucs4);
18862c393a42Smrg
18872c393a42SmrgDescription
18882c393a42Smrg
1889953daebaSmrg   FcCharSetDelChar deletes a single Unicode char from the set,
1890953daebaSmrg   returning FcFalse on failure, either as a result of a constant
1891953daebaSmrg   set or from running out of memory.
18922c393a42Smrg
1893b09479dcSmrgSince
18942c393a42Smrg
1895b09479dcSmrg   version 2.9.0
18962c393a42Smrg
1897953daebaSmrgFcCharSetCopy
18982c393a42Smrg
18992c393a42SmrgName
19002c393a42Smrg
1901953daebaSmrg   FcCharSetCopy -- Copy a charset
19022c393a42Smrg
19032c393a42SmrgSynopsis
19042c393a42Smrg
1905953daebaSmrg#include <fontconfig/fontconfig.h>
1906a6844aabSmrg
1907ca08ab68Smrg   FcCharSet * FcCharSetCopy(FcCharSet *src);
19082c393a42Smrg
19092c393a42SmrgDescription
19102c393a42Smrg
1911953daebaSmrg   Makes a copy of src; note that this may not actually do
1912953daebaSmrg   anything more than increment the reference count on src.
19132c393a42Smrg
1914953daebaSmrgFcCharSetEqual
19152c393a42Smrg
19162c393a42SmrgName
19172c393a42Smrg
1918953daebaSmrg   FcCharSetEqual -- Compare two charsets
19192c393a42Smrg
19202c393a42SmrgSynopsis
19212c393a42Smrg
1922953daebaSmrg#include <fontconfig/fontconfig.h>
1923a6844aabSmrg
1924ca08ab68Smrg   FcBool FcCharSetEqual(const FcCharSet *a, const FcCharSet *b);
19252c393a42Smrg
19262c393a42SmrgDescription
19272c393a42Smrg
1928ca08ab68Smrg   Returns whether a and b contain the same set of Unicode chars.
19292c393a42Smrg
1930953daebaSmrgFcCharSetIntersect
19312c393a42Smrg
19322c393a42SmrgName
19332c393a42Smrg
1934953daebaSmrg   FcCharSetIntersect -- Intersect charsets
19352c393a42Smrg
19362c393a42SmrgSynopsis
19372c393a42Smrg
1938953daebaSmrg#include <fontconfig/fontconfig.h>
19392c393a42Smrg
1940953daebaSmrg   FcCharSet * FcCharSetIntersect(const FcCharSet *a, const
1941953daebaSmrg   FcCharSet *b);
19422c393a42Smrg
19432c393a42SmrgDescription
19442c393a42Smrg
1945ca08ab68Smrg   Returns a set including only those chars found in both a and b.
19462c393a42Smrg
1947953daebaSmrgFcCharSetUnion
19482c393a42Smrg
19492c393a42SmrgName
19502c393a42Smrg
1951953daebaSmrg   FcCharSetUnion -- Add charsets
19522c393a42Smrg
19532c393a42SmrgSynopsis
19542c393a42Smrg
1955953daebaSmrg#include <fontconfig/fontconfig.h>
1956a6844aabSmrg
1957953daebaSmrg   FcCharSet * FcCharSetUnion(const FcCharSet *a, const FcCharSet
1958953daebaSmrg   *b);
19592c393a42Smrg
19602c393a42SmrgDescription
19612c393a42Smrg
1962953daebaSmrg   Returns a set including only those chars found in either a or
1963953daebaSmrg   b.
19642c393a42Smrg
1965953daebaSmrgFcCharSetSubtract
19662c393a42Smrg
19672c393a42SmrgName
19682c393a42Smrg
1969953daebaSmrg   FcCharSetSubtract -- Subtract charsets
19702c393a42Smrg
19712c393a42SmrgSynopsis
19722c393a42Smrg
1973953daebaSmrg#include <fontconfig/fontconfig.h>
1974a6844aabSmrg
1975953daebaSmrg   FcCharSet * FcCharSetSubtract(const FcCharSet *a, const
1976953daebaSmrg   FcCharSet *b);
19772c393a42Smrg
19782c393a42SmrgDescription
19792c393a42Smrg
1980ca08ab68Smrg   Returns a set including only those chars found in a but not b.
19812c393a42Smrg
1982953daebaSmrgFcCharSetMerge
1983a6844aabSmrg
1984a6844aabSmrgName
1985a6844aabSmrg
1986953daebaSmrg   FcCharSetMerge -- Merge charsets
1987a6844aabSmrg
1988a6844aabSmrgSynopsis
1989a6844aabSmrg
1990953daebaSmrg#include <fontconfig/fontconfig.h>
1991a6844aabSmrg
1992953daebaSmrg   FcBool FcCharSetMerge(FcCharSet *a, const FcCharSet *b, FcBool
1993953daebaSmrg   *changed);
1994a6844aabSmrg
1995a6844aabSmrgDescription
1996a6844aabSmrg
1997953daebaSmrg   Adds all chars in b to a. In other words, this is an in-place
1998953daebaSmrg   version of FcCharSetUnion. If changed is not NULL, then it
1999953daebaSmrg   returns whether any new chars from b were added to a. Returns
2000953daebaSmrg   FcFalse on failure, either when a is a constant set or from
2001953daebaSmrg   running out of memory.
2002a6844aabSmrg
2003953daebaSmrgFcCharSetHasChar
20042c393a42Smrg
20052c393a42SmrgName
20062c393a42Smrg
2007953daebaSmrg   FcCharSetHasChar -- Check a charset for a char
20082c393a42Smrg
20092c393a42SmrgSynopsis
20102c393a42Smrg
2011953daebaSmrg#include <fontconfig/fontconfig.h>
2012a6844aabSmrg
2013ca08ab68Smrg   FcBool FcCharSetHasChar(const FcCharSet *fcs, FcChar32 ucs4);
20142c393a42Smrg
20152c393a42SmrgDescription
20162c393a42Smrg
2017ca08ab68Smrg   Returns whether fcs contains the char ucs4.
20182c393a42Smrg
2019953daebaSmrgFcCharSetCount
20202c393a42Smrg
20212c393a42SmrgName
20222c393a42Smrg
2023953daebaSmrg   FcCharSetCount -- Count entries in a charset
20242c393a42Smrg
20252c393a42SmrgSynopsis
20262c393a42Smrg
2027953daebaSmrg#include <fontconfig/fontconfig.h>
2028a6844aabSmrg
2029ca08ab68Smrg   FcChar32 FcCharSetCount(const FcCharSet *a);
20302c393a42Smrg
20312c393a42SmrgDescription
20322c393a42Smrg
2033ca08ab68Smrg   Returns the total number of Unicode chars in a.
20342c393a42Smrg
2035953daebaSmrgFcCharSetIntersectCount
20362c393a42Smrg
20372c393a42SmrgName
20382c393a42Smrg
2039953daebaSmrg   FcCharSetIntersectCount -- Intersect and count charsets
20402c393a42Smrg
20412c393a42SmrgSynopsis
20422c393a42Smrg
2043953daebaSmrg#include <fontconfig/fontconfig.h>
20442c393a42Smrg
2045953daebaSmrg   FcChar32 FcCharSetIntersectCount(const FcCharSet *a, const
2046953daebaSmrg   FcCharSet *b);
20472c393a42Smrg
20482c393a42SmrgDescription
20492c393a42Smrg
2050ca08ab68Smrg   Returns the number of chars that are in both a and b.
20512c393a42Smrg
2052953daebaSmrgFcCharSetSubtractCount
20532c393a42Smrg
20542c393a42SmrgName
20552c393a42Smrg
2056953daebaSmrg   FcCharSetSubtractCount -- Subtract and count charsets
20572c393a42Smrg
20582c393a42SmrgSynopsis
20592c393a42Smrg
2060953daebaSmrg#include <fontconfig/fontconfig.h>
2061a6844aabSmrg
2062953daebaSmrg   FcChar32 FcCharSetSubtractCount(const FcCharSet *a, const
2063953daebaSmrg   FcCharSet *b);
20642c393a42Smrg
20652c393a42SmrgDescription
20662c393a42Smrg
2067ca08ab68Smrg   Returns the number of chars that are in a but not in b.
20682c393a42Smrg
2069953daebaSmrgFcCharSetIsSubset
20702c393a42Smrg
20712c393a42SmrgName
20722c393a42Smrg
2073953daebaSmrg   FcCharSetIsSubset -- Test for charset inclusion
20742c393a42Smrg
20752c393a42SmrgSynopsis
20762c393a42Smrg
2077953daebaSmrg#include <fontconfig/fontconfig.h>
2078a6844aabSmrg
2079953daebaSmrg   FcBool FcCharSetIsSubset(const FcCharSet *a, const FcCharSet
2080953daebaSmrg   *b);
20812c393a42Smrg
20822c393a42SmrgDescription
20832c393a42Smrg
2084ca08ab68Smrg   Returns whether a is a subset of b.
20852c393a42Smrg
2086953daebaSmrgFcCharSetFirstPage
20872c393a42Smrg
20882c393a42SmrgName
20892c393a42Smrg
2090953daebaSmrg   FcCharSetFirstPage -- Start enumerating charset contents
20912c393a42Smrg
20922c393a42SmrgSynopsis
20932c393a42Smrg
2094953daebaSmrg#include <fontconfig/fontconfig.h>
2095a6844aabSmrg
2096ca08ab68Smrg   FcChar32 FcCharSetFirstPage(const FcCharSet *a,
2097ca08ab68Smrg   FcChar32[FC_CHARSET_MAP_SIZE] map, FcChar32 *next);
20982c393a42Smrg
20992c393a42SmrgDescription
21002c393a42Smrg
2101953daebaSmrg   Builds an array of bits in map marking the first page of
2102953daebaSmrg   Unicode coverage of a. *next is set to contains the base code
2103953daebaSmrg   point for the next page in a. Returns the base code point for
2104953daebaSmrg   the page, or FC_CHARSET_DONE if a contains no pages. As an
2105953daebaSmrg   example, if FcCharSetFirstPage returns 0x300 and fills map with
2106953daebaSmrg0xffffffff 0xffffffff 0x01000008 0x44300002 0xffffd7f0 0xfffffffb 0xffff
2107953daebaSmrg7fff 0xffff0003
21086fc018e4Smrg
2109953daebaSmrg   Then the page contains code points 0x300 through 0x33f (the
2110953daebaSmrg   first 64 code points on the page) because map[0] and map[1]
2111953daebaSmrg   both have all their bits set. It also contains code points
2112953daebaSmrg   0x343 (0x300 + 32*2 + (4-1)) and 0x35e (0x300 + 32*2 + (31-1))
2113953daebaSmrg   because map[2] has the 4th and 31st bits set. The code points
2114953daebaSmrg   represented by map[3] and later are left as an excercise for
21156fc018e4Smrg   the reader ;).
21162c393a42Smrg
2117953daebaSmrgFcCharSetNextPage
21182c393a42Smrg
21192c393a42SmrgName
21202c393a42Smrg
2121953daebaSmrg   FcCharSetNextPage -- Continue enumerating charset contents
21222c393a42Smrg
21232c393a42SmrgSynopsis
21242c393a42Smrg
2125953daebaSmrg#include <fontconfig/fontconfig.h>
2126a6844aabSmrg
2127ca08ab68Smrg   FcChar32 FcCharSetNextPage(const FcCharSet *a,
2128ca08ab68Smrg   FcChar32[FC_CHARSET_MAP_SIZE] map, FcChar32 *next);
21292c393a42Smrg
21302c393a42SmrgDescription
21312c393a42Smrg
2132953daebaSmrg   Builds an array of bits in map marking the Unicode coverage of
2133953daebaSmrg   a for page containing *next (see the FcCharSetFirstPage
2134953daebaSmrg   description for details). *next is set to contains the base
2135953daebaSmrg   code point for the next page in a. Returns the base of code
2136953daebaSmrg   point for the page, or FC_CHARSET_DONE if a does not contain
2137953daebaSmrg   *next.
21382c393a42Smrg
2139953daebaSmrgFcCharSetCoverage
21402c393a42Smrg
21412c393a42SmrgName
21422c393a42Smrg
2143953daebaSmrg   FcCharSetCoverage -- DEPRECATED return coverage for a Unicode
2144953daebaSmrg   page
21452c393a42Smrg
21462c393a42SmrgSynopsis
21472c393a42Smrg
2148953daebaSmrg#include <fontconfig/fontconfig.h>
2149a6844aabSmrg
2150ca08ab68Smrg   FcChar32 FcCharSetCoverage(const FcCharSet *a, FcChar32page,
2151ca08ab68Smrg   FcChar32[8]result);
21522c393a42Smrg
21532c393a42SmrgDescription
21542c393a42Smrg
2155953daebaSmrg   DEPRECATED This function returns a bitmask in result which
2156953daebaSmrg   indicates which code points in page are included in a.
2157953daebaSmrg   FcCharSetCoverage returns the next page in the charset which
2158953daebaSmrg   has any coverage.
21592c393a42Smrg
2160953daebaSmrgFcCharSetNew
21612c393a42Smrg
21622c393a42SmrgName
21632c393a42Smrg
2164953daebaSmrg   FcCharSetNew -- DEPRECATED alias for FcCharSetCreate
21652c393a42Smrg
21662c393a42SmrgSynopsis
21672c393a42Smrg
2168953daebaSmrg#include <fontconfig/fontconfig.h>
2169a6844aabSmrg
2170ca08ab68Smrg   FcCharSet * FcCharSetNew(void);
21712c393a42Smrg
21722c393a42SmrgDescription
21732c393a42Smrg
2174ca08ab68Smrg   FcCharSetNew is a DEPRECATED alias for FcCharSetCreate.
2175953daebaSmrg     __________________________________________________________
21762c393a42Smrg
2177953daebaSmrgFcLangSet
2178ca08ab68Smrg
2179ca08ab68Smrg   Table of Contents
2180953daebaSmrg   FcLangSetCreate -- create a langset object
2181953daebaSmrg   FcLangSetDestroy -- destroy a langset object
2182953daebaSmrg   FcLangSetCopy -- copy a langset object
2183953daebaSmrg   FcLangSetAdd -- add a language to a langset
2184953daebaSmrg   FcLangSetDel -- delete a language from a langset
2185953daebaSmrg   FcLangSetUnion -- Add langsets
2186953daebaSmrg   FcLangSetSubtract -- Subtract langsets
2187953daebaSmrg   FcLangSetCompare -- compare language sets
2188953daebaSmrg   FcLangSetContains -- check langset subset relation
2189953daebaSmrg   FcLangSetEqual -- test for matching langsets
2190953daebaSmrg   FcLangSetHash -- return a hash value for a langset
2191953daebaSmrg   FcLangSetHasLang -- test langset for language support
2192953daebaSmrg   FcGetDefaultLangs -- Get the default languages list
2193953daebaSmrg   FcLangSetGetLangs -- get the list of languages in the langset
2194953daebaSmrg   FcGetLangs -- Get list of languages
2195953daebaSmrg   FcLangNormalize -- Normalize the language string
2196953daebaSmrg   FcLangGetCharSet -- Get character map for a language
2197ca08ab68Smrg
2198953daebaSmrg   An FcLangSet is a set of language names (each of which include
2199953daebaSmrg   language and an optional territory). They are used when
2200953daebaSmrg   selecting fonts to indicate which languages the fonts need to
2201953daebaSmrg   support. Each font is marked, using language orthography
2202953daebaSmrg   information built into fontconfig, with the set of supported
2203953daebaSmrg   languages.
2204ca08ab68Smrg
2205953daebaSmrgFcLangSetCreate
2206ca08ab68Smrg
2207ca08ab68SmrgName
2208ca08ab68Smrg
2209953daebaSmrg   FcLangSetCreate -- create a langset object
2210ca08ab68Smrg
2211ca08ab68SmrgSynopsis
2212ca08ab68Smrg
2213953daebaSmrg#include <fontconfig/fontconfig.h>
2214ca08ab68Smrg
2215ca08ab68Smrg   FcLangSet * FcLangSetCreate(void);
2216ca08ab68Smrg
2217ca08ab68SmrgDescription
2218ca08ab68Smrg
2219ca08ab68Smrg   FcLangSetCreate creates a new FcLangSet object.
2220ca08ab68Smrg
2221953daebaSmrgFcLangSetDestroy
2222ca08ab68Smrg
2223ca08ab68SmrgName
2224ca08ab68Smrg
2225953daebaSmrg   FcLangSetDestroy -- destroy a langset object
2226ca08ab68Smrg
2227ca08ab68SmrgSynopsis
2228ca08ab68Smrg
2229953daebaSmrg#include <fontconfig/fontconfig.h>
2230ca08ab68Smrg
2231ca08ab68Smrg   void FcLangSetDestroy(FcLangSet *ls);
2232ca08ab68Smrg
2233ca08ab68SmrgDescription
2234ca08ab68Smrg
2235953daebaSmrg   FcLangSetDestroy destroys a FcLangSet object, freeing all
2236953daebaSmrg   memory associated with it.
2237ca08ab68Smrg
2238953daebaSmrgFcLangSetCopy
2239a6844aabSmrg
2240ca08ab68SmrgName
2241ca08ab68Smrg
2242953daebaSmrg   FcLangSetCopy -- copy a langset object
2243ca08ab68Smrg
2244ca08ab68SmrgSynopsis
2245ca08ab68Smrg
2246953daebaSmrg#include <fontconfig/fontconfig.h>
2247ca08ab68Smrg
2248ca08ab68Smrg   FcLangSet * FcLangSetCopy(const FcLangSet *ls);
2249ca08ab68Smrg
2250ca08ab68SmrgDescription
22512c393a42Smrg
2252953daebaSmrg   FcLangSetCopy creates a new FcLangSet object and populates it
2253953daebaSmrg   with the contents of ls.
22542c393a42Smrg
2255953daebaSmrgFcLangSetAdd
22562c393a42Smrg
22572c393a42SmrgName
22582c393a42Smrg
2259953daebaSmrg   FcLangSetAdd -- add a language to a langset
22602c393a42Smrg
22612c393a42SmrgSynopsis
22622c393a42Smrg
2263953daebaSmrg#include <fontconfig/fontconfig.h>
2264a6844aabSmrg
2265ca08ab68Smrg   FcBool FcLangSetAdd(FcLangSet *ls, const FcChar8 *lang);
22662c393a42Smrg
22672c393a42SmrgDescription
22682c393a42Smrg
2269953daebaSmrg   lang is added to ls. lang should be of the form Ll-Tt where Ll
2270953daebaSmrg   is a two or three letter language from ISO 639 and Tt is a
2271953daebaSmrg   territory from ISO 3166.
22722c393a42Smrg
2273953daebaSmrgFcLangSetDel
22742c393a42Smrg
22752c393a42SmrgName
22762c393a42Smrg
2277953daebaSmrg   FcLangSetDel -- delete a language from a langset
22782c393a42Smrg
22792c393a42SmrgSynopsis
22802c393a42Smrg
2281953daebaSmrg#include <fontconfig/fontconfig.h>
2282a6844aabSmrg
2283ca08ab68Smrg   FcBool FcLangSetDel(FcLangSet *ls, const FcChar8 *lang);
22842c393a42Smrg
22852c393a42SmrgDescription
22862c393a42Smrg
2287953daebaSmrg   lang is removed from ls. lang should be of the form Ll-Tt where
2288953daebaSmrg   Ll is a two or three letter language from ISO 639 and Tt is a
2289953daebaSmrg   territory from ISO 3166.
22902c393a42Smrg
2291b09479dcSmrgSince
22922c393a42Smrg
2293b09479dcSmrg   version 2.9.0
22942c393a42Smrg
2295953daebaSmrgFcLangSetUnion
22962c393a42Smrg
22972c393a42SmrgName
22982c393a42Smrg
2299953daebaSmrg   FcLangSetUnion -- Add langsets
23002c393a42Smrg
23012c393a42SmrgSynopsis
23022c393a42Smrg
2303953daebaSmrg#include <fontconfig/fontconfig.h>
23042c393a42Smrg
2305953daebaSmrg   FcLangSet * FcLangSetUnion(const FcLangSet *ls_a, const
2306953daebaSmrg   FcLangSet *ls_b);
23072c393a42Smrg
23082c393a42SmrgDescription
23092c393a42Smrg
2310953daebaSmrg   Returns a set including only those languages found in either
2311953daebaSmrg   ls_a or ls_b.
23122c393a42Smrg
2313b09479dcSmrgSince
23142c393a42Smrg
2315b09479dcSmrg   version 2.9.0
23162c393a42Smrg
2317953daebaSmrgFcLangSetSubtract
23182c393a42Smrg
23192c393a42SmrgName
23202c393a42Smrg
2321953daebaSmrg   FcLangSetSubtract -- Subtract langsets
23222c393a42Smrg
23232c393a42SmrgSynopsis
23242c393a42Smrg
2325953daebaSmrg#include <fontconfig/fontconfig.h>
2326a6844aabSmrg
2327953daebaSmrg   FcLangSet * FcLangSetSubtract(const FcLangSet *ls_a, const
2328953daebaSmrg   FcLangSet *ls_b);
23292c393a42Smrg
23302c393a42SmrgDescription
23312c393a42Smrg
2332953daebaSmrg   Returns a set including only those languages found in ls_a but
2333953daebaSmrg   not in ls_b.
23342c393a42Smrg
2335b09479dcSmrgSince
23362c393a42Smrg
2337b09479dcSmrg   version 2.9.0
23382c393a42Smrg
2339953daebaSmrgFcLangSetCompare
23402c393a42Smrg
23412c393a42SmrgName
23422c393a42Smrg
2343953daebaSmrg   FcLangSetCompare -- compare language sets
23442c393a42Smrg
23452c393a42SmrgSynopsis
23462c393a42Smrg
2347953daebaSmrg#include <fontconfig/fontconfig.h>
2348a6844aabSmrg
2349953daebaSmrg   FcLangResult FcLangSetCompare(const FcLangSet *ls_a, const
2350953daebaSmrg   FcLangSet *ls_b);
23512c393a42Smrg
23522c393a42SmrgDescription
23532c393a42Smrg
2354953daebaSmrg   FcLangSetCompare compares language coverage for ls_a and ls_b.
2355953daebaSmrg   If they share any language and territory pair, this function
2356953daebaSmrg   returns FcLangEqual. If they share a language but differ in
2357953daebaSmrg   which territory that language is for, this function returns
2358953daebaSmrg   FcLangDifferentTerritory. If they share no languages in common,
2359953daebaSmrg   this function returns FcLangDifferentLang.
23602c393a42Smrg
2361953daebaSmrgFcLangSetContains
23622c393a42Smrg
23632c393a42SmrgName
23642c393a42Smrg
2365953daebaSmrg   FcLangSetContains -- check langset subset relation
23662c393a42Smrg
23672c393a42SmrgSynopsis
23682c393a42Smrg
2369953daebaSmrg#include <fontconfig/fontconfig.h>
23702c393a42Smrg
2371953daebaSmrg   FcBool FcLangSetContains(const FcLangSet *ls_a, const FcLangSet
2372953daebaSmrg   *ls_b);
23732c393a42Smrg
23742c393a42SmrgDescription
23752c393a42Smrg
2376953daebaSmrg   FcLangSetContains returns FcTrue if ls_a contains every
2377953daebaSmrg   language in ls_b. ls_a will 'contain' a language from ls_b if
2378953daebaSmrg   ls_a has exactly the language, or either the language or ls_a
2379953daebaSmrg   has no territory.
23802c393a42Smrg
2381953daebaSmrgFcLangSetEqual
23822c393a42Smrg
23832c393a42SmrgName
23842c393a42Smrg
2385953daebaSmrg   FcLangSetEqual -- test for matching langsets
23862c393a42Smrg
23872c393a42SmrgSynopsis
23882c393a42Smrg
2389953daebaSmrg#include <fontconfig/fontconfig.h>
23902c393a42Smrg
2391953daebaSmrg   FcBool FcLangSetEqual(const FcLangSet *ls_a, const FcLangSet
2392953daebaSmrg   *ls_b);
23932c393a42Smrg
23942c393a42SmrgDescription
23952c393a42Smrg
2396953daebaSmrg   Returns FcTrue if and only if ls_a supports precisely the same
2397953daebaSmrg   language and territory combinations as ls_b.
23982c393a42Smrg
2399953daebaSmrgFcLangSetHash
24002c393a42Smrg
24012c393a42SmrgName
24022c393a42Smrg
2403953daebaSmrg   FcLangSetHash -- return a hash value for a langset
24042c393a42Smrg
24052c393a42SmrgSynopsis
24062c393a42Smrg
2407953daebaSmrg#include <fontconfig/fontconfig.h>
2408a6844aabSmrg
2409ca08ab68Smrg   FcChar32 FcLangSetHash(const FcLangSet *ls);
24102c393a42Smrg
24112c393a42SmrgDescription
24122c393a42Smrg
2413953daebaSmrg   This function returns a value which depends solely on the
2414953daebaSmrg   languages supported by ls. Any language which equals ls will
2415953daebaSmrg   have the same result from FcLangSetHash. However, two langsets
2416953daebaSmrg   with the same hash value may not be equal.
24172c393a42Smrg
2418953daebaSmrgFcLangSetHasLang
24192c393a42Smrg
24202c393a42SmrgName
24212c393a42Smrg
2422953daebaSmrg   FcLangSetHasLang -- test langset for language support
2423a6844aabSmrg
2424a6844aabSmrgSynopsis
2425a6844aabSmrg
2426953daebaSmrg#include <fontconfig/fontconfig.h>
2427a6844aabSmrg
2428953daebaSmrg   FcLangResult FcLangSetHasLang(const FcLangSet *ls, const
2429953daebaSmrg   FcChar8 *lang);
2430a6844aabSmrg
2431a6844aabSmrgDescription
2432a6844aabSmrg
2433953daebaSmrg   FcLangSetHasLang checks whether ls supports lang. If ls has a
2434953daebaSmrg   matching language and territory pair, this function returns
2435953daebaSmrg   FcLangEqual. If ls has a matching language but differs in which
2436953daebaSmrg   territory that language is for, this function returns
2437953daebaSmrg   FcLangDifferentTerritory. If ls has no matching language, this
2438953daebaSmrg   function returns FcLangDifferentLang.
2439a6844aabSmrg
2440953daebaSmrgFcGetDefaultLangs
2441a6844aabSmrg
2442a6844aabSmrgName
2443a6844aabSmrg
2444953daebaSmrg   FcGetDefaultLangs -- Get the default languages list
24452c393a42Smrg
24462c393a42SmrgSynopsis
24472c393a42Smrg
2448953daebaSmrg#include <fontconfig/fontconfig.h>
2449a6844aabSmrg
2450b09479dcSmrg   FcStrSet * FcGetDefaultLangs(void);
24512c393a42Smrg
24522c393a42SmrgDescription
24532c393a42Smrg
2454953daebaSmrg   Returns a string set of the default languages according to the
2455953daebaSmrg   environment variables on the system. This function looks for
2456953daebaSmrg   them in order of FC_LANG, LC_ALL, LC_CTYPE and LANG then. If
2457953daebaSmrg   there are no valid values in those environment variables, "en"
2458953daebaSmrg   will be set as fallback.
24592c393a42Smrg
2460b09479dcSmrgSince
2461b09479dcSmrg
2462b09479dcSmrg   version 2.9.91
2463b09479dcSmrg
2464953daebaSmrgFcLangSetGetLangs
2465b09479dcSmrg
2466b09479dcSmrgName
2467b09479dcSmrg
2468953daebaSmrg   FcLangSetGetLangs -- get the list of languages in the langset
2469b09479dcSmrg
2470b09479dcSmrgSynopsis
2471b09479dcSmrg
2472953daebaSmrg#include <fontconfig/fontconfig.h>
2473b09479dcSmrg
2474b09479dcSmrg   FcStrSet * FcLangSetGetLangs(const FcLangSet *ls);
2475b09479dcSmrg
2476b09479dcSmrgDescription
2477b09479dcSmrg
2478b09479dcSmrg   Returns a string set of all languages in langset.
24792c393a42Smrg
2480953daebaSmrgFcGetLangs
24812c393a42Smrg
24822c393a42SmrgName
24832c393a42Smrg
2484953daebaSmrg   FcGetLangs -- Get list of languages
24852c393a42Smrg
24862c393a42SmrgSynopsis
24872c393a42Smrg
2488953daebaSmrg#include <fontconfig/fontconfig.h>
2489a6844aabSmrg
2490ca08ab68Smrg   FcStrSet * FcGetLangs(void);
24912c393a42Smrg
24922c393a42SmrgDescription
24932c393a42Smrg
2494ca08ab68Smrg   Returns a string set of all known languages.
24952c393a42Smrg
2496953daebaSmrgFcLangNormalize
2497c9710b42Smrg
2498c9710b42SmrgName
2499c9710b42Smrg
2500953daebaSmrg   FcLangNormalize -- Normalize the language string
2501c9710b42Smrg
2502c9710b42SmrgSynopsis
2503c9710b42Smrg
2504953daebaSmrg#include <fontconfig/fontconfig.h>
2505c9710b42Smrg
2506c9710b42Smrg   FcChar8 * FcLangNormalize(const FcChar8 *lang);
2507c9710b42Smrg
2508c9710b42SmrgDescription
2509c9710b42Smrg
2510c9710b42Smrg   Returns a string to make lang suitable on fontconfig.
2511c9710b42Smrg
2512b09479dcSmrgSince
2513c9710b42Smrg
2514b09479dcSmrg   version 2.10.91
25152c393a42Smrg
2516953daebaSmrgFcLangGetCharSet
25172c393a42Smrg
25182c393a42SmrgName
25192c393a42Smrg
2520953daebaSmrg   FcLangGetCharSet -- Get character map for a language
25212c393a42Smrg
25222c393a42SmrgSynopsis
25232c393a42Smrg
2524953daebaSmrg#include <fontconfig/fontconfig.h>
2525a6844aabSmrg
2526ca08ab68Smrg   const FcCharSet * FcLangGetCharSet(const FcChar8 *lang);
25272c393a42Smrg
25282c393a42SmrgDescription
25292c393a42Smrg
2530ca08ab68Smrg   Returns the FcCharMap for a language.
2531953daebaSmrg     __________________________________________________________
25322c393a42Smrg
2533953daebaSmrgFcMatrix
2534ca08ab68Smrg
2535ca08ab68Smrg   Table of Contents
2536953daebaSmrg   FcMatrixInit -- initialize an FcMatrix structure
2537953daebaSmrg   FcMatrixCopy -- Copy a matrix
2538953daebaSmrg   FcMatrixEqual -- Compare two matrices
2539953daebaSmrg   FcMatrixMultiply -- Multiply matrices
2540953daebaSmrg   FcMatrixRotate -- Rotate a matrix
2541953daebaSmrg   FcMatrixScale -- Scale a matrix
2542953daebaSmrg   FcMatrixShear -- Shear a matrix
2543ca08ab68Smrg
2544953daebaSmrg   FcMatrix structures hold an affine transformation in matrix
2545953daebaSmrg   form.
2546a6844aabSmrg
2547953daebaSmrgFcMatrixInit
25482c393a42Smrg
2549953daebaSmrgName
25502c393a42Smrg
2551953daebaSmrg   FcMatrixInit -- initialize an FcMatrix structure
25522c393a42Smrg
2553953daebaSmrgSynopsis
25542c393a42Smrg
2555953daebaSmrg#include <fontconfig/fontconfig.h>
2556ca08ab68Smrg
2557953daebaSmrg   void FcMatrixInit(FcMatrix *matrix);
2558953daebaSmrg
2559953daebaSmrgDescription
2560ca08ab68Smrg
2561953daebaSmrg   FcMatrixInit initializes matrix to the identity matrix.
2562ca08ab68Smrg
2563953daebaSmrgFcMatrixCopy
25642c393a42Smrg
25652c393a42SmrgName
25662c393a42Smrg
2567953daebaSmrg   FcMatrixCopy -- Copy a matrix
25682c393a42Smrg
25692c393a42SmrgSynopsis
25702c393a42Smrg
2571953daebaSmrg#include <fontconfig/fontconfig.h>
2572a6844aabSmrg
2573953daebaSmrg   void FcMatrixCopy(const FcMatrix *matrix);
25742c393a42Smrg
25752c393a42SmrgDescription
25762c393a42Smrg
2577953daebaSmrg   FcMatrixCopy allocates a new FcMatrix and copies mat into it.
25782c393a42Smrg
2579953daebaSmrgFcMatrixEqual
25802c393a42Smrg
25812c393a42SmrgName
25822c393a42Smrg
2583953daebaSmrg   FcMatrixEqual -- Compare two matrices
25842c393a42Smrg
25852c393a42SmrgSynopsis
25862c393a42Smrg
2587953daebaSmrg#include <fontconfig/fontconfig.h>
2588a6844aabSmrg
2589953daebaSmrg   void FcMatrixEqual(const FcMatrix *matrix1, const FcMatrix
2590953daebaSmrg   *matrix2);
25912c393a42Smrg
25922c393a42SmrgDescription
25932c393a42Smrg
2594953daebaSmrg   FcMatrixEqual compares matrix1 and matrix2 returning FcTrue
2595953daebaSmrg   when they are equal and FcFalse when they are not.
25962c393a42Smrg
2597953daebaSmrgFcMatrixMultiply
25982c393a42Smrg
25992c393a42SmrgName
26002c393a42Smrg
2601953daebaSmrg   FcMatrixMultiply -- Multiply matrices
26022c393a42Smrg
26032c393a42SmrgSynopsis
26042c393a42Smrg
2605953daebaSmrg#include <fontconfig/fontconfig.h>
2606a6844aabSmrg
2607953daebaSmrg   void FcMatrixMultiply(FcMatrix *result, const FcMatrix
2608953daebaSmrg   *matrix1, const FcMatrix *matrix2);
26092c393a42Smrg
26102c393a42SmrgDescription
26112c393a42Smrg
2612953daebaSmrg   FcMatrixMultiply multiplies matrix1 and matrix2 storing the
2613953daebaSmrg   result in result.
26142c393a42Smrg
2615953daebaSmrgFcMatrixRotate
26162c393a42Smrg
26172c393a42SmrgName
26182c393a42Smrg
2619953daebaSmrg   FcMatrixRotate -- Rotate a matrix
26202c393a42Smrg
26212c393a42SmrgSynopsis
26222c393a42Smrg
2623953daebaSmrg#include <fontconfig/fontconfig.h>
26242c393a42Smrg
2625953daebaSmrg   void FcMatrixRotate(FcMatrix *matrix, double cos, double sin);
26262c393a42Smrg
26272c393a42SmrgDescription
26282c393a42Smrg
2629953daebaSmrg   FcMatrixRotate rotates matrix by the angle who's sine is sin
2630953daebaSmrg   and cosine is cos. This is done by multiplying by the matrix:
2631953daebaSmrg  cos -sin
2632953daebaSmrg  sin  cos
26332c393a42Smrg
2634953daebaSmrgFcMatrixScale
26352c393a42Smrg
26362c393a42SmrgName
26372c393a42Smrg
2638953daebaSmrg   FcMatrixScale -- Scale a matrix
26392c393a42Smrg
26402c393a42SmrgSynopsis
26412c393a42Smrg
2642953daebaSmrg#include <fontconfig/fontconfig.h>
26432c393a42Smrg
2644953daebaSmrg   void FcMatrixScale(FcMatrix *matrix, double sx, double dy);
26452c393a42Smrg
26462c393a42SmrgDescription
26472c393a42Smrg
2648953daebaSmrg   FcMatrixScale multiplies matrix x values by sx and y values by
2649953daebaSmrg   dy. This is done by multiplying by the matrix:
2650953daebaSmrg   sx  0
2651953daebaSmrg   0   dy
26522c393a42Smrg
2653953daebaSmrgFcMatrixShear
26542c393a42Smrg
26552c393a42SmrgName
26562c393a42Smrg
2657953daebaSmrg   FcMatrixShear -- Shear a matrix
26582c393a42Smrg
26592c393a42SmrgSynopsis
26602c393a42Smrg
2661953daebaSmrg#include <fontconfig/fontconfig.h>
26622c393a42Smrg
2663953daebaSmrg   void FcMatrixShear(FcMatrix *matrix, double sh, double sv);
26642c393a42Smrg
26652c393a42SmrgDescription
26662c393a42Smrg
2667953daebaSmrg   FcMatrixShare shears matrix horizontally by sh and vertically
2668953daebaSmrg   by sv. This is done by multiplying by the matrix:
2669953daebaSmrg  1  sh
2670953daebaSmrg  sv  1
2671953daebaSmrg     __________________________________________________________
2672953daebaSmrg
2673953daebaSmrgFcRange
2674953daebaSmrg
2675953daebaSmrg   Table of Contents
2676953daebaSmrg   FcRangeCopy -- Copy a range object
2677953daebaSmrg   FcRangeCreateDouble -- create a range object for double
2678953daebaSmrg   FcRangeCreateInteger -- create a range object for integer
2679953daebaSmrg   FcRangeDestroy -- destroy a range object
2680953daebaSmrg   FcRangeGetDouble -- Get the range in double
2681a6844aabSmrg
2682953daebaSmrg   An FcRange holds two variables to indicate a range in between.
26832c393a42Smrg
2684953daebaSmrgFcRangeCopy
26852c393a42Smrg
26862c393a42SmrgName
26872c393a42Smrg
2688953daebaSmrg   FcRangeCopy -- Copy a range object
26892c393a42Smrg
26902c393a42SmrgSynopsis
26912c393a42Smrg
2692953daebaSmrg#include <fontconfig/fontconfig.h>
26932c393a42Smrg
2694953daebaSmrg   FcRange * FcRangeCopy(const FcRange *range);
26952c393a42Smrg
26962c393a42SmrgDescription
26972c393a42Smrg
2698953daebaSmrg   FcRangeCopy creates a new FcRange object and populates it with
2699953daebaSmrg   the contents of range.
2700a6844aabSmrg
2701953daebaSmrgSince
27022c393a42Smrg
2703953daebaSmrg   version 2.11.91
2704ca08ab68Smrg
2705953daebaSmrgFcRangeCreateDouble
2706ca08ab68Smrg
2707953daebaSmrgName
2708953daebaSmrg
2709953daebaSmrg   FcRangeCreateDouble -- create a range object for double
2710ca08ab68Smrg
2711953daebaSmrgSynopsis
2712ca08ab68Smrg
2713953daebaSmrg#include <fontconfig/fontconfig.h>
2714ca08ab68Smrg
2715953daebaSmrg   FcRange * FcRangeCreateDouble(doublebegin, doubleend);
2716ca08ab68Smrg
2717953daebaSmrgDescription
2718ca08ab68Smrg
2719953daebaSmrg   FcRangeCreateDouble creates a new FcRange object with double
2720953daebaSmrg   sized value.
2721ca08ab68Smrg
2722953daebaSmrgSince
2723ca08ab68Smrg
2724953daebaSmrg   version 2.11.91
2725ca08ab68Smrg
2726953daebaSmrgFcRangeCreateInteger
2727ca08ab68Smrg
2728953daebaSmrgName
2729ca08ab68Smrg
2730953daebaSmrg   FcRangeCreateInteger -- create a range object for integer
2731ca08ab68Smrg
2732953daebaSmrgSynopsis
2733ca08ab68Smrg
2734953daebaSmrg#include <fontconfig/fontconfig.h>
2735ca08ab68Smrg
2736953daebaSmrg   FcRange * FcRangeCreateInteger(intbegin, intend);
2737ca08ab68Smrg
2738953daebaSmrgDescription
2739ca08ab68Smrg
2740953daebaSmrg   FcRangeCreateInteger creates a new FcRange object with integer
2741953daebaSmrg   sized value.
2742ca08ab68Smrg
2743953daebaSmrgSince
2744a6844aabSmrg
2745953daebaSmrg   version 2.11.91
2746a6844aabSmrg
2747953daebaSmrgFcRangeDestroy
2748a6844aabSmrg
2749953daebaSmrgName
2750a6844aabSmrg
2751953daebaSmrg   FcRangeDestroy -- destroy a range object
27522c393a42Smrg
2753953daebaSmrgSynopsis
2754ca08ab68Smrg
2755953daebaSmrg#include <fontconfig/fontconfig.h>
2756ca08ab68Smrg
2757953daebaSmrg   void FcRangeDestroy(FcRange *range);
2758ca08ab68Smrg
2759953daebaSmrgDescription
2760ca08ab68Smrg
2761953daebaSmrg   FcRangeDestroy destroys a FcRange object, freeing all memory
2762953daebaSmrg   associated with it.
2763ca08ab68Smrg
2764953daebaSmrgSince
2765ca08ab68Smrg
2766953daebaSmrg   version 2.11.91
2767ca08ab68Smrg
2768953daebaSmrgFcRangeGetDouble
2769ca08ab68Smrg
2770953daebaSmrgName
2771c9710b42Smrg
2772953daebaSmrg   FcRangeGetDouble -- Get the range in double
2773c9710b42Smrg
2774953daebaSmrgSynopsis
2775ca08ab68Smrg
2776953daebaSmrg#include <fontconfig/fontconfig.h>
2777ca08ab68Smrg
2778953daebaSmrg   FcBool FcRangeGetDouble(const FcRange *range, double *begin,
2779953daebaSmrg   double *end);
27802c393a42Smrg
2781953daebaSmrgDescription
27822c393a42Smrg
2783953daebaSmrg   Returns in begin and end as the range.
27842c393a42Smrg
2785953daebaSmrgSince
27862c393a42Smrg
2787953daebaSmrg   version 2.11.91
2788953daebaSmrg     __________________________________________________________
27892c393a42Smrg
2790953daebaSmrgFcConfig
2791953daebaSmrg
2792953daebaSmrg   Table of Contents
2793953daebaSmrg   FcConfigCreate -- Create a configuration
2794953daebaSmrg   FcConfigReference -- Increment config reference count
2795953daebaSmrg   FcConfigDestroy -- Destroy a configuration
2796953daebaSmrg   FcConfigSetCurrent -- Set configuration as default
2797953daebaSmrg   FcConfigGetCurrent -- Return current configuration
2798953daebaSmrg   FcConfigUptoDate -- Check timestamps on config files
2799953daebaSmrg   FcConfigHome -- return the current home directory.
2800953daebaSmrg   FcConfigEnableHome -- controls use of the home directory.
2801953daebaSmrg   FcConfigBuildFonts -- Build font database
2802953daebaSmrg   FcConfigGetConfigDirs -- Get config directories
2803953daebaSmrg   FcConfigGetFontDirs -- Get font directories
2804953daebaSmrg   FcConfigGetConfigFiles -- Get config files
2805953daebaSmrg   FcConfigGetCache -- DEPRECATED used to return per-user cache
2806953daebaSmrg          filename
2807953daebaSmrg
2808953daebaSmrg   FcConfigGetCacheDirs -- return the list of directories searched
2809953daebaSmrg          for cache files
2810953daebaSmrg
2811953daebaSmrg   FcConfigGetFonts -- Get config font set
2812953daebaSmrg   FcConfigGetBlanks -- Get config blanks
2813953daebaSmrg   FcConfigGetRescanInterval -- Get config rescan interval
2814953daebaSmrg   FcConfigSetRescanInterval -- Set config rescan interval
2815953daebaSmrg   FcConfigAppFontAddFile -- Add font file to font database
2816953daebaSmrg   FcConfigAppFontAddDir -- Add fonts from directory to font
2817953daebaSmrg          database
2818953daebaSmrg
2819953daebaSmrg   FcConfigAppFontClear -- Remove all app fonts from font database
2820953daebaSmrg   FcConfigSubstituteWithPat -- Execute substitutions
2821953daebaSmrg   FcConfigSubstitute -- Execute substitutions
2822953daebaSmrg   FcFontMatch -- Return best font
2823953daebaSmrg   FcFontSort -- Return list of matching fonts
2824953daebaSmrg   FcFontRenderPrepare -- Prepare pattern for loading font file
2825953daebaSmrg   FcFontList -- List fonts
2826953daebaSmrg   FcConfigFilename -- Find a config file
2827953daebaSmrg   FcConfigParseAndLoad -- load a configuration file
2828953daebaSmrg   FcConfigGetSysRoot -- Obtain the system root directory
2829953daebaSmrg   FcConfigSetSysRoot -- Set the system root directory
2830953daebaSmrg
2831953daebaSmrg   An FcConfig object holds the internal representation of a
2832953daebaSmrg   configuration. There is a default configuration which
2833953daebaSmrg   applications may use by passing 0 to any function using the
2834953daebaSmrg   data within an FcConfig.
2835953daebaSmrg
2836953daebaSmrgFcConfigCreate
2837953daebaSmrg
2838953daebaSmrgName
2839953daebaSmrg
2840953daebaSmrg   FcConfigCreate -- Create a configuration
2841953daebaSmrg
2842953daebaSmrgSynopsis
2843953daebaSmrg
2844953daebaSmrg#include <fontconfig/fontconfig.h>
2845a6844aabSmrg
2846ca08ab68Smrg   FcConfig * FcConfigCreate(void);
28472c393a42Smrg
28482c393a42SmrgDescription
28492c393a42Smrg
2850ca08ab68Smrg   Creates an empty configuration.
28512c393a42Smrg
2852953daebaSmrgFcConfigReference
2853a6844aabSmrg
2854a6844aabSmrgName
2855a6844aabSmrg
2856953daebaSmrg   FcConfigReference -- Increment config reference count
2857a6844aabSmrg
2858a6844aabSmrgSynopsis
2859a6844aabSmrg
2860953daebaSmrg#include <fontconfig/fontconfig.h>
2861a6844aabSmrg
2862ca08ab68Smrg   FcConfig * FcConfigReference(FcConfig *config);
2863a6844aabSmrg
2864a6844aabSmrgDescription
2865a6844aabSmrg
2866953daebaSmrg   Add another reference to config. Configs are freed only when
2867953daebaSmrg   the reference count reaches zero. If config is NULL, the
2868953daebaSmrg   current configuration is used. In that case this function will
2869953daebaSmrg   be similar to FcConfigGetCurrent() except that it increments
2870953daebaSmrg   the reference count before returning and the user is
2871953daebaSmrg   responsible for destroying the configuration when not needed
2872953daebaSmrg   anymore.
2873a6844aabSmrg
2874953daebaSmrgFcConfigDestroy
28752c393a42Smrg
28762c393a42SmrgName
28772c393a42Smrg
2878953daebaSmrg   FcConfigDestroy -- Destroy a configuration
28792c393a42Smrg
28802c393a42SmrgSynopsis
28812c393a42Smrg
2882953daebaSmrg#include <fontconfig/fontconfig.h>
2883a6844aabSmrg
2884ca08ab68Smrg   void FcConfigDestroy(FcConfig *config);
28852c393a42Smrg
28862c393a42SmrgDescription
28872c393a42Smrg
2888953daebaSmrg   Decrements the config reference count. If all references are
2889953daebaSmrg   gone, destroys the configuration and any data associated with
2890953daebaSmrg   it. Note that calling this function with the return from
2891953daebaSmrg   FcConfigGetCurrent will cause a new configuration to be created
2892953daebaSmrg   for use as current configuration.
28932c393a42Smrg
2894953daebaSmrgFcConfigSetCurrent
28952c393a42Smrg
28962c393a42SmrgName
28972c393a42Smrg
2898953daebaSmrg   FcConfigSetCurrent -- Set configuration as default
28992c393a42Smrg
29002c393a42SmrgSynopsis
29012c393a42Smrg
2902953daebaSmrg#include <fontconfig/fontconfig.h>
2903a6844aabSmrg
2904ca08ab68Smrg   FcBool FcConfigSetCurrent(FcConfig *config);
29052c393a42Smrg
29062c393a42SmrgDescription
29072c393a42Smrg
2908953daebaSmrg   Sets the current default configuration to config. Implicitly
2909953daebaSmrg   calls FcConfigBuildFonts if necessary, and FcConfigReference()
2910953daebaSmrg   to inrease the reference count in config since 2.12.0,
2911953daebaSmrg   returning FcFalse if that call fails.
29122c393a42Smrg
2913953daebaSmrgFcConfigGetCurrent
29142c393a42Smrg
29152c393a42SmrgName
29162c393a42Smrg
2917953daebaSmrg   FcConfigGetCurrent -- Return current configuration
29182c393a42Smrg
29192c393a42SmrgSynopsis
29202c393a42Smrg
2921953daebaSmrg#include <fontconfig/fontconfig.h>
2922a6844aabSmrg
2923ca08ab68Smrg   FcConfig * FcConfigGetCurrent(void);
29242c393a42Smrg
29252c393a42SmrgDescription
29262c393a42Smrg
2927ca08ab68Smrg   Returns the current default configuration.
29282c393a42Smrg
2929953daebaSmrgFcConfigUptoDate
29302c393a42Smrg
29312c393a42SmrgName
29322c393a42Smrg
2933953daebaSmrg   FcConfigUptoDate -- Check timestamps on config files
29342c393a42Smrg
29352c393a42SmrgSynopsis
29362c393a42Smrg
2937953daebaSmrg#include <fontconfig/fontconfig.h>
2938a6844aabSmrg
2939ca08ab68Smrg   FcBool FcConfigUptoDate(FcConfig *config);
29402c393a42Smrg
29412c393a42SmrgDescription
29422c393a42Smrg
2943953daebaSmrg   Checks all of the files related to config and returns whether
2944953daebaSmrg   any of them has been modified since the configuration was
2945953daebaSmrg   created. If config is NULL, the current configuration is used.
29462c393a42Smrg
2947953daebaSmrgFcConfigHome
29482c393a42Smrg
29492c393a42SmrgName
29502c393a42Smrg
2951953daebaSmrg   FcConfigHome -- return the current home directory.
29522c393a42Smrg
29532c393a42SmrgSynopsis
29542c393a42Smrg
2955953daebaSmrg#include <fontconfig/fontconfig.h>
2956a6844aabSmrg
2957ca08ab68Smrg   FcChar8 * FcConfigHome(void);
29582c393a42Smrg
29592c393a42SmrgDescription
29602c393a42Smrg
2961953daebaSmrg   Return the current user's home directory, if it is available,
2962953daebaSmrg   and if using it is enabled, and NULL otherwise. See also
2963953daebaSmrg   FcConfigEnableHome).
29642c393a42Smrg
2965953daebaSmrgFcConfigEnableHome
29662c393a42Smrg
29672c393a42SmrgName
29682c393a42Smrg
2969953daebaSmrg   FcConfigEnableHome -- controls use of the home directory.
29702c393a42Smrg
29712c393a42SmrgSynopsis
29722c393a42Smrg
2973953daebaSmrg#include <fontconfig/fontconfig.h>
2974a6844aabSmrg
2975ca08ab68Smrg   FcBool FcConfigEnableHome(FcBool enable);
29762c393a42Smrg
29772c393a42SmrgDescription
29782c393a42Smrg
2979953daebaSmrg   If enable is FcTrue, then Fontconfig will use various files
2980953daebaSmrg   which are specified relative to the user's home directory
2981953daebaSmrg   (using the ~ notation in the configuration). When enable is
2982953daebaSmrg   FcFalse, then all use of the home directory in these contexts
2983953daebaSmrg   will be disabled. The previous setting of the value is
2984953daebaSmrg   returned.
29852c393a42Smrg
2986953daebaSmrgFcConfigBuildFonts
29872c393a42Smrg
29882c393a42SmrgName
29892c393a42Smrg
2990953daebaSmrg   FcConfigBuildFonts -- Build font database
29912c393a42Smrg
29922c393a42SmrgSynopsis
29932c393a42Smrg
2994953daebaSmrg#include <fontconfig/fontconfig.h>
2995a6844aabSmrg
2996ca08ab68Smrg   FcBool FcConfigBuildFonts(FcConfig *config);
29972c393a42Smrg
29982c393a42SmrgDescription
29992c393a42Smrg
3000953daebaSmrg   Builds the set of available fonts for the given configuration.
3001953daebaSmrg   Note that any changes to the configuration after this call have
3002953daebaSmrg   indeterminate effects. Returns FcFalse if this operation runs
3003953daebaSmrg   out of memory. If config is NULL, the current configuration is
3004953daebaSmrg   used.
30052c393a42Smrg
3006953daebaSmrgFcConfigGetConfigDirs
30072c393a42Smrg
30082c393a42SmrgName
30092c393a42Smrg
3010953daebaSmrg   FcConfigGetConfigDirs -- Get config directories
30112c393a42Smrg
30122c393a42SmrgSynopsis
30132c393a42Smrg
3014953daebaSmrg#include <fontconfig/fontconfig.h>
3015a6844aabSmrg
3016ca08ab68Smrg   FcStrList * FcConfigGetConfigDirs(FcConfig *config);
30172c393a42Smrg
30182c393a42SmrgDescription
30192c393a42Smrg
3020953daebaSmrg   Returns the list of font directories specified in the
3021953daebaSmrg   configuration files for config. Does not include any
3022953daebaSmrg   subdirectories. If config is NULL, the current configuration is
3023953daebaSmrg   used.
30242c393a42Smrg
3025953daebaSmrgFcConfigGetFontDirs
30262c393a42Smrg
30272c393a42SmrgName
30282c393a42Smrg
3029953daebaSmrg   FcConfigGetFontDirs -- Get font directories
30302c393a42Smrg
30312c393a42SmrgSynopsis
30322c393a42Smrg
3033953daebaSmrg#include <fontconfig/fontconfig.h>
3034a6844aabSmrg
3035ca08ab68Smrg   FcStrList * FcConfigGetFontDirs(FcConfig *config);
30362c393a42Smrg
30372c393a42SmrgDescription
30382c393a42Smrg
3039953daebaSmrg   Returns the list of font directories in config. This includes
3040953daebaSmrg   the configured font directories along with any directories
3041953daebaSmrg   below those in the filesystem. If config is NULL, the current
3042953daebaSmrg   configuration is used.
30432c393a42Smrg
3044953daebaSmrgFcConfigGetConfigFiles
30452c393a42Smrg
30462c393a42SmrgName
30472c393a42Smrg
3048953daebaSmrg   FcConfigGetConfigFiles -- Get config files
30492c393a42Smrg
30502c393a42SmrgSynopsis
30512c393a42Smrg
3052953daebaSmrg#include <fontconfig/fontconfig.h>
3053a6844aabSmrg
3054ca08ab68Smrg   FcStrList * FcConfigGetConfigFiles(FcConfig *config);
30552c393a42Smrg
30562c393a42SmrgDescription
30572c393a42Smrg
3058953daebaSmrg   Returns the list of known configuration files used to generate
3059953daebaSmrg   config. If config is NULL, the current configuration is used.
30602c393a42Smrg
3061953daebaSmrgFcConfigGetCache
30622c393a42Smrg
30632c393a42SmrgName
30642c393a42Smrg
3065953daebaSmrg   FcConfigGetCache -- DEPRECATED used to return per-user cache
3066953daebaSmrg   filename
30672c393a42Smrg
30682c393a42SmrgSynopsis
30692c393a42Smrg
3070953daebaSmrg#include <fontconfig/fontconfig.h>
3071a6844aabSmrg
3072ca08ab68Smrg   FcChar8 * FcConfigGetCache(FcConfig *config);
30732c393a42Smrg
30742c393a42SmrgDescription
30752c393a42Smrg
3076953daebaSmrg   With fontconfig no longer using per-user cache files, this
3077953daebaSmrg   function now simply returns NULL to indicate that no per-user
3078953daebaSmrg   file exists.
30792c393a42Smrg
3080953daebaSmrgFcConfigGetCacheDirs
30812c393a42Smrg
30822c393a42SmrgName
30832c393a42Smrg
3084953daebaSmrg   FcConfigGetCacheDirs -- return the list of directories searched
3085953daebaSmrg   for cache files
30862c393a42Smrg
30872c393a42SmrgSynopsis
30882c393a42Smrg
3089953daebaSmrg#include <fontconfig/fontconfig.h>
3090a6844aabSmrg
3091ca08ab68Smrg   FcStrList * FcConfigGetCacheDirs(const FcConfig *config);
30922c393a42Smrg
30932c393a42SmrgDescription
30942c393a42Smrg
3095953daebaSmrg   FcConfigGetCacheDirs returns a string list containing all of
3096953daebaSmrg   the directories that fontconfig will search when attempting to
3097953daebaSmrg   load a cache file for a font directory. If config is NULL, the
3098953daebaSmrg   current configuration is used.
30992c393a42Smrg
3100953daebaSmrgFcConfigGetFonts
31012c393a42Smrg
31022c393a42SmrgName
31032c393a42Smrg
3104953daebaSmrg   FcConfigGetFonts -- Get config font set
31052c393a42Smrg
31062c393a42SmrgSynopsis
31072c393a42Smrg
3108953daebaSmrg#include <fontconfig/fontconfig.h>
3109a6844aabSmrg
3110ca08ab68Smrg   FcFontSet * FcConfigGetFonts(FcConfig *config, FcSetName set);
31112c393a42Smrg
31122c393a42SmrgDescription
31132c393a42Smrg
3114953daebaSmrg   Returns one of the two sets of fonts from the configuration as
3115953daebaSmrg   specified by set. This font set is owned by the library and
3116953daebaSmrg   must not be modified or freed. If config is NULL, the current
3117953daebaSmrg   configuration is used.
31182c393a42Smrg
3119953daebaSmrgFcConfigGetBlanks
31202c393a42Smrg
31212c393a42SmrgName
31222c393a42Smrg
3123953daebaSmrg   FcConfigGetBlanks -- Get config blanks
31242c393a42Smrg
31252c393a42SmrgSynopsis
31262c393a42Smrg
3127953daebaSmrg#include <fontconfig/fontconfig.h>
3128a6844aabSmrg
3129ca08ab68Smrg   FcBlanks * FcConfigGetBlanks(FcConfig *config);
31302c393a42Smrg
31312c393a42SmrgDescription
31322c393a42Smrg
3133953daebaSmrg   Returns the FcBlanks object associated with the given
3134953daebaSmrg   configuration, if no blanks were present in the configuration,
3135953daebaSmrg   this function will return 0. The returned FcBlanks object if
3136953daebaSmrg   not NULL, is valid as long as the owning FcConfig is alive. If
3137953daebaSmrg   config is NULL, the current configuration is used.
31382c393a42Smrg
3139953daebaSmrgFcConfigGetRescanInterval
31402c393a42Smrg
31412c393a42SmrgName
31422c393a42Smrg
3143953daebaSmrg   FcConfigGetRescanInterval -- Get config rescan interval
31442c393a42Smrg
31452c393a42SmrgSynopsis
31462c393a42Smrg
3147953daebaSmrg#include <fontconfig/fontconfig.h>
3148a6844aabSmrg
3149ca08ab68Smrg   int FcConfigGetRescanInterval(FcConfig *config);
31502c393a42Smrg
31512c393a42SmrgDescription
31522c393a42Smrg
3153953daebaSmrg   Returns the interval between automatic checks of the
3154953daebaSmrg   configuration (in seconds) specified in config. The
3155953daebaSmrg   configuration is checked during a call to FcFontList when this
3156953daebaSmrg   interval has passed since the last check. An interval setting
3157953daebaSmrg   of zero disables automatic checks. If config is NULL, the
3158ca08ab68Smrg   current configuration is used.
31592c393a42Smrg
3160953daebaSmrgFcConfigSetRescanInterval
31612c393a42Smrg
31622c393a42SmrgName
31632c393a42Smrg
3164953daebaSmrg   FcConfigSetRescanInterval -- Set config rescan interval
31652c393a42Smrg
31662c393a42SmrgSynopsis
31672c393a42Smrg
3168953daebaSmrg#include <fontconfig/fontconfig.h>
3169a6844aabSmrg
3170953daebaSmrg   FcBool FcConfigSetRescanInterval(FcConfig *config, int
3171953daebaSmrg   rescanInterval);
31722c393a42Smrg
31732c393a42SmrgDescription
31742c393a42Smrg
3175953daebaSmrg   Sets the rescan interval. Returns FcFalse if the interval
3176953daebaSmrg   cannot be set (due to allocation failure). Otherwise returns
3177953daebaSmrg   FcTrue. An interval setting of zero disables automatic checks.
3178953daebaSmrg   If config is NULL, the current configuration is used.
31792c393a42Smrg
3180953daebaSmrgFcConfigAppFontAddFile
31812c393a42Smrg
31822c393a42SmrgName
31832c393a42Smrg
3184953daebaSmrg   FcConfigAppFontAddFile -- Add font file to font database
31852c393a42Smrg
31862c393a42SmrgSynopsis
31872c393a42Smrg
3188953daebaSmrg#include <fontconfig/fontconfig.h>
3189a6844aabSmrg
3190953daebaSmrg   FcBool FcConfigAppFontAddFile(FcConfig *config, const FcChar8
3191953daebaSmrg   *file);
31922c393a42Smrg
31932c393a42SmrgDescription
31942c393a42Smrg
3195953daebaSmrg   Adds an application-specific font to the configuration. Returns
3196953daebaSmrg   FcFalse if the fonts cannot be added (due to allocation failure
3197953daebaSmrg   or no fonts found). Otherwise returns FcTrue. If config is
3198953daebaSmrg   NULL, the current configuration is used.
31992c393a42Smrg
3200953daebaSmrgFcConfigAppFontAddDir
32012c393a42Smrg
32022c393a42SmrgName
32032c393a42Smrg
3204953daebaSmrg   FcConfigAppFontAddDir -- Add fonts from directory to font
3205953daebaSmrg   database
32062c393a42Smrg
32072c393a42SmrgSynopsis
32082c393a42Smrg
3209953daebaSmrg#include <fontconfig/fontconfig.h>
32102c393a42Smrg
3211953daebaSmrg   FcBool FcConfigAppFontAddDir(FcConfig *config, const FcChar8
3212953daebaSmrg   *dir);
32132c393a42Smrg
32142c393a42SmrgDescription
32152c393a42Smrg
3216953daebaSmrg   Scans the specified directory for fonts, adding each one found
3217953daebaSmrg   to the application-specific set of fonts. Returns FcFalse if
3218953daebaSmrg   the fonts cannot be added (due to allocation failure).
3219953daebaSmrg   Otherwise returns FcTrue. If config is NULL, the current
3220953daebaSmrg   configuration is used.
32212c393a42Smrg
3222953daebaSmrgFcConfigAppFontClear
32232c393a42Smrg
32242c393a42SmrgName
32252c393a42Smrg
3226953daebaSmrg   FcConfigAppFontClear -- Remove all app fonts from font database
32272c393a42Smrg
32282c393a42SmrgSynopsis
32292c393a42Smrg
3230953daebaSmrg#include <fontconfig/fontconfig.h>
3231a6844aabSmrg
3232ca08ab68Smrg   void FcConfigAppFontClear(FcConfig *config);
32332c393a42Smrg
32342c393a42SmrgDescription
32352c393a42Smrg
3236953daebaSmrg   Clears the set of application-specific fonts. If config is
3237953daebaSmrg   NULL, the current configuration is used.
32382c393a42Smrg
3239953daebaSmrgFcConfigSubstituteWithPat
32402c393a42Smrg
32412c393a42SmrgName
32422c393a42Smrg
3243953daebaSmrg   FcConfigSubstituteWithPat -- Execute substitutions
32442c393a42Smrg
32452c393a42SmrgSynopsis
32462c393a42Smrg
3247953daebaSmrg#include <fontconfig/fontconfig.h>
32482c393a42Smrg
3249953daebaSmrg   FcBool FcConfigSubstituteWithPat(FcConfig *config, FcPattern
3250953daebaSmrg   *p, FcPattern *p_pat, FcMatchKind kind);
32512c393a42Smrg
32522c393a42SmrgDescription
32532c393a42Smrg
3254953daebaSmrg   Performs the sequence of pattern modification operations, if
3255953daebaSmrg   kind is FcMatchPattern, then those tagged as pattern operations
3256953daebaSmrg   are applied, else if kind is FcMatchFont, those tagged as font
3257953daebaSmrg   operations are applied and p_pat is used for <test> elements
3258953daebaSmrg   with target=pattern. Returns FcFalse if the substitution cannot
3259953daebaSmrg   be performed (due to allocation failure). Otherwise returns
3260953daebaSmrg   FcTrue. If config is NULL, the current configuration is used.
32612c393a42Smrg
3262953daebaSmrgFcConfigSubstitute
32632c393a42Smrg
32642c393a42SmrgName
32652c393a42Smrg
3266953daebaSmrg   FcConfigSubstitute -- Execute substitutions
32672c393a42Smrg
32682c393a42SmrgSynopsis
32692c393a42Smrg
3270953daebaSmrg#include <fontconfig/fontconfig.h>
3271a6844aabSmrg
3272953daebaSmrg   FcBool FcConfigSubstitute(FcConfig *config, FcPattern *p,
3273953daebaSmrg   FcMatchKind kind);
32742c393a42Smrg
32752c393a42SmrgDescription
32762c393a42Smrg
3277953daebaSmrg   Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns
3278953daebaSmrg   FcFalse if the substitution cannot be performed (due to
3279953daebaSmrg   allocation failure). Otherwise returns FcTrue. If config is
3280953daebaSmrg   NULL, the current configuration is used.
32812c393a42Smrg
3282953daebaSmrgFcFontMatch
32832c393a42Smrg
32842c393a42SmrgName
32852c393a42Smrg
3286953daebaSmrg   FcFontMatch -- Return best font
32872c393a42Smrg
32882c393a42SmrgSynopsis
32892c393a42Smrg
3290953daebaSmrg#include <fontconfig/fontconfig.h>
32912c393a42Smrg
3292953daebaSmrg   FcPattern * FcFontMatch(FcConfig *config, FcPattern *p,
3293953daebaSmrg   FcResult *result);
32942c393a42Smrg
32952c393a42SmrgDescription
32962c393a42Smrg
3297953daebaSmrg   Finds the font in sets most closely matching pattern and
3298953daebaSmrg   returns the result of FcFontRenderPrepare for that font and the
3299953daebaSmrg   provided pattern. This function should be called only after
3300953daebaSmrg   FcConfigSubstitute and FcDefaultSubstitute have been called for
3301953daebaSmrg   p; otherwise the results will not be correct. If config is
3302953daebaSmrg   NULL, the current configuration is used.
33032c393a42Smrg
3304953daebaSmrgFcFontSort
33052c393a42Smrg
33062c393a42SmrgName
33072c393a42Smrg
3308953daebaSmrg   FcFontSort -- Return list of matching fonts
33092c393a42Smrg
33102c393a42SmrgSynopsis
33112c393a42Smrg
3312953daebaSmrg#include <fontconfig/fontconfig.h>
33132c393a42Smrg
3314953daebaSmrg   FcFontSet * FcFontSort(FcConfig *config, FcPattern *p, FcBool
3315953daebaSmrg   trim, FcCharSet **csp, FcResult *result);
33162c393a42Smrg
33172c393a42SmrgDescription
33182c393a42Smrg
3319953daebaSmrg   Returns the list of fonts sorted by closeness to p. If trim is
3320953daebaSmrg   FcTrue, elements in the list which don't include Unicode
3321953daebaSmrg   coverage not provided by earlier elements in the list are
3322953daebaSmrg   elided. The union of Unicode coverage of all of the fonts is
3323953daebaSmrg   returned in csp, if csp is not NULL. This function should be
3324953daebaSmrg   called only after FcConfigSubstitute and FcDefaultSubstitute
3325953daebaSmrg   have been called for p; otherwise the results will not be
3326953daebaSmrg   correct.
33272c393a42Smrg
3328953daebaSmrg   The returned FcFontSet references FcPattern structures which
3329953daebaSmrg   may be shared by the return value from multiple FcFontSort
3330953daebaSmrg   calls, applications must not modify these patterns. Instead,
3331953daebaSmrg   they should be passed, along with p to FcFontRenderPrepare
3332953daebaSmrg   which combines them into a complete pattern.
33332c393a42Smrg
3334ca08ab68Smrg   The FcFontSet returned by FcFontSort is destroyed by calling
3335953daebaSmrg   FcFontSetDestroy. If config is NULL, the current configuration
3336953daebaSmrg   is used.
33372c393a42Smrg
3338953daebaSmrgFcFontRenderPrepare
33392c393a42Smrg
33402c393a42SmrgName
33412c393a42Smrg
3342953daebaSmrg   FcFontRenderPrepare -- Prepare pattern for loading font file
33432c393a42Smrg
33442c393a42SmrgSynopsis
33452c393a42Smrg
3346953daebaSmrg#include <fontconfig/fontconfig.h>
3347a6844aabSmrg
3348953daebaSmrg   FcPattern * FcFontRenderPrepare(FcConfig *config, FcPattern
3349953daebaSmrg   *pat, FcPattern *font);
33502c393a42Smrg
33512c393a42SmrgDescription
33522c393a42Smrg
3353953daebaSmrg   Creates a new pattern consisting of elements of font not
3354953daebaSmrg   appearing in pat, elements of pat not appearing in font and the
3355953daebaSmrg   best matching value from pat for elements appearing in both.
3356953daebaSmrg   The result is passed to FcConfigSubstituteWithPat with kind
3357953daebaSmrg   FcMatchFont and then returned.
33582c393a42Smrg
3359953daebaSmrgFcFontList
33602c393a42Smrg
33612c393a42SmrgName
33622c393a42Smrg
3363953daebaSmrg   FcFontList -- List fonts
33642c393a42Smrg
33652c393a42SmrgSynopsis
33662c393a42Smrg
3367953daebaSmrg#include <fontconfig/fontconfig.h>
33682c393a42Smrg
3369953daebaSmrg   FcFontSet * FcFontList(FcConfig *config, FcPattern *p,
3370953daebaSmrg   FcObjectSet *os);
33712c393a42Smrg
33722c393a42SmrgDescription
33732c393a42Smrg
3374953daebaSmrg   Selects fonts matching p, creates patterns from those fonts
3375953daebaSmrg   containing only the objects in os and returns the set of unique
3376953daebaSmrg   such patterns. If config is NULL, the default configuration is
3377953daebaSmrg   checked to be up to date, and used.
33782c393a42Smrg
3379953daebaSmrgFcConfigFilename
33802c393a42Smrg
33812c393a42SmrgName
33822c393a42Smrg
3383953daebaSmrg   FcConfigFilename -- Find a config file
33842c393a42Smrg
33852c393a42SmrgSynopsis
33862c393a42Smrg
3387953daebaSmrg#include <fontconfig/fontconfig.h>
3388a6844aabSmrg
3389ca08ab68Smrg   FcChar8 * FcConfigFilename(const FcChar8 *name);
33902c393a42Smrg
33912c393a42SmrgDescription
33922c393a42Smrg
3393953daebaSmrg   Given the specified external entity name, return the associated
3394953daebaSmrg   filename. This provides applications a way to convert various
3395953daebaSmrg   configuration file references into filename form.
33962c393a42Smrg
3397953daebaSmrg   A null or empty name indicates that the default configuration
3398953daebaSmrg   file should be used; which file this references can be
3399953daebaSmrg   overridden with the FONTCONFIG_FILE environment variable. Next,
3400953daebaSmrg   if the name starts with ~, it refers to a file in the current
3401953daebaSmrg   users home directory. Otherwise if the name doesn't start with
3402953daebaSmrg   '/', it refers to a file in the default configuration
3403953daebaSmrg   directory; the built-in default directory can be overridden
3404ca08ab68Smrg   with the FONTCONFIG_PATH environment variable.
34052c393a42Smrg
3406953daebaSmrgFcConfigParseAndLoad
34072c393a42Smrg
34082c393a42SmrgName
34092c393a42Smrg
3410953daebaSmrg   FcConfigParseAndLoad -- load a configuration file
34112c393a42Smrg
34122c393a42SmrgSynopsis
34132c393a42Smrg
3414953daebaSmrg#include <fontconfig/fontconfig.h>
34152c393a42Smrg
3416953daebaSmrg   FcBool FcConfigParseAndLoad(FcConfig *config, const FcChar8
3417953daebaSmrg   *file, FcBool complain);
34182c393a42Smrg
34192c393a42SmrgDescription
34202c393a42Smrg
3421ca08ab68Smrg   Walks the configuration in 'file' and constructs the internal
3422953daebaSmrg   representation in 'config'. Any include files referenced from
3423953daebaSmrg   within 'file' will be loaded and parsed. If 'complain' is
3424953daebaSmrg   FcFalse, no warning will be displayed if 'file' does not exist.
3425953daebaSmrg   Error and warning messages will be output to stderr. Returns
3426953daebaSmrg   FcFalse if some error occurred while loading the file, either a
3427953daebaSmrg   parse error, semantic error or allocation failure. Otherwise
3428953daebaSmrg   returns FcTrue.
34292c393a42Smrg
3430953daebaSmrgFcConfigGetSysRoot
3431c9710b42Smrg
3432c9710b42SmrgName
3433c9710b42Smrg
3434953daebaSmrg   FcConfigGetSysRoot -- Obtain the system root directory
3435c9710b42Smrg
3436c9710b42SmrgSynopsis
3437c9710b42Smrg
3438953daebaSmrg#include <fontconfig/fontconfig.h>
3439c9710b42Smrg
3440c9710b42Smrg   const FcChar8 * FcConfigGetSysRoot(const FcConfig *config);
3441c9710b42Smrg
3442c9710b42SmrgDescription
3443c9710b42Smrg
3444c9710b42Smrg   Obtrains the system root directory in 'config' if available.
3445c9710b42Smrg
3446b09479dcSmrgSince
3447c9710b42Smrg
3448b09479dcSmrg   version 2.10.92
3449c9710b42Smrg
3450953daebaSmrgFcConfigSetSysRoot
3451c9710b42Smrg
3452c9710b42SmrgName
3453c9710b42Smrg
3454953daebaSmrg   FcConfigSetSysRoot -- Set the system root directory
3455c9710b42Smrg
3456c9710b42SmrgSynopsis
3457c9710b42Smrg
3458953daebaSmrg#include <fontconfig/fontconfig.h>
3459c9710b42Smrg
3460953daebaSmrg   void FcConfigSetSysRoot(FcConfig *config, const FcChar8
3461953daebaSmrg   *sysroot);
3462c9710b42Smrg
3463c9710b42SmrgDescription
3464c9710b42Smrg
3465953daebaSmrg   Set 'sysroot' as the system root directory. fontconfig prepend
3466953daebaSmrg   'sysroot' to the cache directories in order to allow people to
3467953daebaSmrg   generate caches at the build time. Note that this causes
3468953daebaSmrg   changing current config. i.e. this function calls
3469953daebaSmrg   FcConfigSetCurrent() internally.
3470c9710b42Smrg
3471b09479dcSmrgSince
3472c9710b42Smrg
3473b09479dcSmrg   version 2.10.92
3474953daebaSmrg     __________________________________________________________
3475ca08ab68Smrg
3476953daebaSmrgFcObjectType
34772c393a42Smrg
3478ca08ab68Smrg   Table of Contents
3479953daebaSmrg   FcNameRegisterObjectTypes -- Register object types
3480953daebaSmrg   FcNameUnregisterObjectTypes -- Unregister object types
3481953daebaSmrg   FcNameGetObjectType -- Lookup an object type
34822c393a42Smrg
3483953daebaSmrg   Provides for application-specified font name object types so
3484953daebaSmrg   that new pattern elements can be generated from font names.
3485ca08ab68Smrg
3486953daebaSmrgFcNameRegisterObjectTypes
34872c393a42Smrg
34882c393a42SmrgName
34892c393a42Smrg
3490953daebaSmrg   FcNameRegisterObjectTypes -- Register object types
34912c393a42Smrg
34922c393a42SmrgSynopsis
34932c393a42Smrg
3494953daebaSmrg#include <fontconfig/fontconfig.h>
34952c393a42Smrg
3496953daebaSmrg   FcBool FcNameRegisterObjectTypes(const FcObjectType *types, int
3497953daebaSmrg   ntype);
34982c393a42Smrg
34992c393a42SmrgDescription
35002c393a42Smrg
3501c9710b42Smrg   Deprecated. Does nothing. Returns FcFalse.
35022c393a42Smrg
3503953daebaSmrgFcNameUnregisterObjectTypes
35042c393a42Smrg
35052c393a42SmrgName
35062c393a42Smrg
3507953daebaSmrg   FcNameUnregisterObjectTypes -- Unregister object types
35082c393a42Smrg
35092c393a42SmrgSynopsis
35102c393a42Smrg
3511953daebaSmrg#include <fontconfig/fontconfig.h>
3512a6844aabSmrg
3513953daebaSmrg   FcBool FcNameUnregisterObjectTypes(const FcObjectType *types,
3514953daebaSmrg   int ntype);
35152c393a42Smrg
35162c393a42SmrgDescription
35172c393a42Smrg
3518c9710b42Smrg   Deprecated. Does nothing. Returns FcFalse.
35192c393a42Smrg
3520953daebaSmrgFcNameGetObjectType
35212c393a42Smrg
35222c393a42SmrgName
35232c393a42Smrg
3524953daebaSmrg   FcNameGetObjectType -- Lookup an object type
35252c393a42Smrg
35262c393a42SmrgSynopsis
35272c393a42Smrg
3528953daebaSmrg#include <fontconfig/fontconfig.h>
3529a6844aabSmrg
3530ca08ab68Smrg   const FcObjectType * FcNameGetObjectType(const char *object);
35312c393a42Smrg
35322c393a42SmrgDescription
35332c393a42Smrg
3534ca08ab68Smrg   Return the object type for the pattern element named object.
3535953daebaSmrg     __________________________________________________________
35362c393a42Smrg
3537953daebaSmrgFcConstant
35382c393a42Smrg
3539ca08ab68Smrg   Table of Contents
3540953daebaSmrg   FcNameRegisterConstants -- Register symbolic constants
3541953daebaSmrg   FcNameUnregisterConstants -- Unregister symbolic constants
3542953daebaSmrg   FcNameGetConstant -- Lookup symbolic constant
3543953daebaSmrg   FcNameConstant -- Get the value for a symbolic constant
35442c393a42Smrg
3545953daebaSmrg   Provides for application-specified symbolic constants for font
3546953daebaSmrg   names.
35472c393a42Smrg
3548953daebaSmrgFcNameRegisterConstants
35492c393a42Smrg
35502c393a42SmrgName
35512c393a42Smrg
3552953daebaSmrg   FcNameRegisterConstants -- Register symbolic constants
35532c393a42Smrg
35542c393a42SmrgSynopsis
35552c393a42Smrg
3556953daebaSmrg#include <fontconfig/fontconfig.h>
35572c393a42Smrg
3558953daebaSmrg   FcBool FcNameRegisterConstants(const FcConstant *consts, int
3559953daebaSmrg   nconsts);
35602c393a42Smrg
35612c393a42SmrgDescription
35622c393a42Smrg
3563c9710b42Smrg   Deprecated. Does nothing. Returns FcFalse.
35642c393a42Smrg
3565953daebaSmrgFcNameUnregisterConstants
35662c393a42Smrg
35672c393a42SmrgName
35682c393a42Smrg
3569953daebaSmrg   FcNameUnregisterConstants -- Unregister symbolic constants
35702c393a42Smrg
35712c393a42SmrgSynopsis
35722c393a42Smrg
3573953daebaSmrg#include <fontconfig/fontconfig.h>
3574a6844aabSmrg
3575953daebaSmrg   FcBool FcNameUnregisterConstants(const FcConstant *consts, int
3576953daebaSmrg   nconsts);
35772c393a42Smrg
35782c393a42SmrgDescription
35792c393a42Smrg
3580c9710b42Smrg   Deprecated. Does nothing. Returns FcFalse.
35812c393a42Smrg
3582953daebaSmrgFcNameGetConstant
35832c393a42Smrg
35842c393a42SmrgName
35852c393a42Smrg
3586953daebaSmrg   FcNameGetConstant -- Lookup symbolic constant
35872c393a42Smrg
35882c393a42SmrgSynopsis
35892c393a42Smrg
3590953daebaSmrg#include <fontconfig/fontconfig.h>
3591a6844aabSmrg
3592ca08ab68Smrg   const FcConstant * FcNameGetConstant(FcChar8 *string);
35932c393a42Smrg
35942c393a42SmrgDescription
35952c393a42Smrg
3596953daebaSmrg   Return the FcConstant structure related to symbolic constant
3597953daebaSmrg   string.
35982c393a42Smrg
3599953daebaSmrgFcNameConstant
36002c393a42Smrg
36012c393a42SmrgName
36022c393a42Smrg
3603953daebaSmrg   FcNameConstant -- Get the value for a symbolic constant
36042c393a42Smrg
36052c393a42SmrgSynopsis
36062c393a42Smrg
3607953daebaSmrg#include <fontconfig/fontconfig.h>
3608a6844aabSmrg
3609ca08ab68Smrg   FcBool FcNameConstant(FcChar8 *string, int *result);
36102c393a42Smrg
36112c393a42SmrgDescription
36122c393a42Smrg
3613953daebaSmrg   Returns whether a symbolic constant with name string is
3614953daebaSmrg   registered, placing the value of the constant in result if
3615953daebaSmrg   present.
3616953daebaSmrg     __________________________________________________________
36172c393a42Smrg
3618953daebaSmrgFcWeight
36192c393a42Smrg
3620ca08ab68Smrg   Table of Contents
3621953daebaSmrg   FcWeightFromOpenType -- Convert from OpenType weight values to
3622953daebaSmrg          fontconfig ones
3623953daebaSmrg
3624953daebaSmrg   FcWeightToOpenType -- Convert from fontconfig weight values to
3625953daebaSmrg          OpenType ones
3626953daebaSmrg
3627953daebaSmrg   Maps weights to and from OpenType weights.
3628953daebaSmrg
3629953daebaSmrgFcWeightFromOpenType
3630953daebaSmrg
3631953daebaSmrgName
3632953daebaSmrg
3633953daebaSmrg   FcWeightFromOpenType -- Convert from OpenType weight values to
3634953daebaSmrg   fontconfig ones
3635953daebaSmrg
3636953daebaSmrgSynopsis
3637953daebaSmrg
3638953daebaSmrg#include <fontconfig/fontconfig.h>
36392c393a42Smrg
3640953daebaSmrg   int FcWeightFromOpenType(intot_weight);
36412c393a42Smrg
3642953daebaSmrgDescription
36432c393a42Smrg
3644953daebaSmrg   FcWeightFromOpenType returns an integer value to use with
3645953daebaSmrg   FC_WEIGHT, from an integer in the 1..1000 range, resembling the
3646953daebaSmrg   numbers from OpenType specification's OS/2 usWeight numbers,
3647953daebaSmrg   which are also similar to CSS font-weight numbers. If input is
3648953daebaSmrg   negative, zero, or greater than 1000, returns -1. This function
3649953daebaSmrg   linearly interpolates between various FC_WEIGHT_* constants. As
3650953daebaSmrg   such, the returned value does not necessarily match any of the
3651953daebaSmrg   predefined constants.
3652ca08ab68Smrg
3653953daebaSmrgSince
3654ca08ab68Smrg
3655953daebaSmrg   version 2.11.91
3656ca08ab68Smrg
3657953daebaSmrgFcWeightToOpenType
36582c393a42Smrg
36592c393a42SmrgName
36602c393a42Smrg
3661953daebaSmrg   FcWeightToOpenType -- Convert from fontconfig weight values to
3662953daebaSmrg   OpenType ones
36632c393a42Smrg
36642c393a42SmrgSynopsis
36652c393a42Smrg
3666953daebaSmrg#include <fontconfig/fontconfig.h>
36672c393a42Smrg
3668953daebaSmrg   int FcWeightToOpenType(intot_weight);
36692c393a42Smrg
36702c393a42SmrgDescription
36712c393a42Smrg
3672953daebaSmrg   FcWeightToOpenType is the inverse of FcWeightFromOpenType. If
3673953daebaSmrg   the input is less than FC_WEIGHT_THIN or greater than
3674953daebaSmrg   FC_WEIGHT_EXTRABLACK, returns -1. Otherwise returns a number in
3675953daebaSmrg   the range 1 to 1000.
3676953daebaSmrg
3677953daebaSmrgSince
3678953daebaSmrg
3679953daebaSmrg   version 2.11.91
3680953daebaSmrg     __________________________________________________________
3681953daebaSmrg
3682953daebaSmrgFcBlanks
3683953daebaSmrg
3684953daebaSmrg   Table of Contents
3685953daebaSmrg   FcBlanksCreate -- Create an FcBlanks
3686953daebaSmrg   FcBlanksDestroy -- Destroy and FcBlanks
3687953daebaSmrg   FcBlanksAdd -- Add a character to an FcBlanks
3688953daebaSmrg   FcBlanksIsMember -- Query membership in an FcBlanks
3689953daebaSmrg
3690953daebaSmrg   An FcBlanks object holds a list of Unicode chars which are
3691953daebaSmrg   expected to be blank when drawn. When scanning new fonts, any
3692953daebaSmrg   glyphs which are empty and not in this list will be assumed to
3693953daebaSmrg   be broken and not placed in the FcCharSet associated with the
3694953daebaSmrg   font. This provides a significantly more accurate CharSet for
3695953daebaSmrg   applications.
36962c393a42Smrg
3697953daebaSmrgFcBlanksCreate
36982c393a42Smrg
36992c393a42SmrgName
37002c393a42Smrg
3701953daebaSmrg   FcBlanksCreate -- Create an FcBlanks
37022c393a42Smrg
37032c393a42SmrgSynopsis
37042c393a42Smrg
3705953daebaSmrg#include <fontconfig/fontconfig.h>
37062c393a42Smrg
3707953daebaSmrg   FcBlanks * FcBlanksCreate(void);
37082c393a42Smrg
37092c393a42SmrgDescription
37102c393a42Smrg
3711953daebaSmrg   Creates an empty FcBlanks object.
37122c393a42Smrg
3713953daebaSmrgFcBlanksDestroy
37142c393a42Smrg
37152c393a42SmrgName
37162c393a42Smrg
3717953daebaSmrg   FcBlanksDestroy -- Destroy and FcBlanks
37182c393a42Smrg
37192c393a42SmrgSynopsis
37202c393a42Smrg
3721953daebaSmrg#include <fontconfig/fontconfig.h>
3722a6844aabSmrg
3723953daebaSmrg   void FcBlanksDestroy(FcBlanks *b);
37242c393a42Smrg
37252c393a42SmrgDescription
37262c393a42Smrg
3727953daebaSmrg   Destroys an FcBlanks object, freeing any associated memory.
37282c393a42Smrg
3729953daebaSmrgFcBlanksAdd
37302c393a42Smrg
37312c393a42SmrgName
37322c393a42Smrg
3733953daebaSmrg   FcBlanksAdd -- Add a character to an FcBlanks
37342c393a42Smrg
37352c393a42SmrgSynopsis
37362c393a42Smrg
3737953daebaSmrg#include <fontconfig/fontconfig.h>
3738a6844aabSmrg
3739953daebaSmrg   FcBool FcBlanksAdd(FcBlanks *b, FcChar32 ucs4);
37402c393a42Smrg
37412c393a42SmrgDescription
37422c393a42Smrg
3743953daebaSmrg   Adds a single character to an FcBlanks object, returning
3744953daebaSmrg   FcFalse if this process ran out of memory.
37452c393a42Smrg
3746953daebaSmrgFcBlanksIsMember
3747ca08ab68Smrg
3748953daebaSmrgName
3749ca08ab68Smrg
3750953daebaSmrg   FcBlanksIsMember -- Query membership in an FcBlanks
3751ca08ab68Smrg
3752953daebaSmrgSynopsis
3753ca08ab68Smrg
3754953daebaSmrg#include <fontconfig/fontconfig.h>
3755a6844aabSmrg
3756953daebaSmrg   FcBool FcBlanksIsMember(FcBlanks *b, FcChar32 ucs4);
37572c393a42Smrg
3758953daebaSmrgDescription
37592c393a42Smrg
3760953daebaSmrg   Returns whether the specified FcBlanks object contains the
3761953daebaSmrg   indicated Unicode value.
3762953daebaSmrg     __________________________________________________________
37632c393a42Smrg
3764953daebaSmrgFcAtomic
37652c393a42Smrg
3766953daebaSmrg   Table of Contents
3767953daebaSmrg   FcAtomicCreate -- create an FcAtomic object
3768953daebaSmrg   FcAtomicLock -- lock a file
3769953daebaSmrg   FcAtomicNewFile -- return new temporary file name
3770953daebaSmrg   FcAtomicOrigFile -- return original file name
3771953daebaSmrg   FcAtomicReplaceOrig -- replace original with new
3772953daebaSmrg   FcAtomicDeleteNew -- delete new file
3773953daebaSmrg   FcAtomicUnlock -- unlock a file
3774953daebaSmrg   FcAtomicDestroy -- destroy an FcAtomic object
3775ca08ab68Smrg
3776953daebaSmrg   These functions provide a safe way to update configuration
3777953daebaSmrg   files, allowing ongoing reading of the old configuration file
3778953daebaSmrg   while locked for writing and ensuring that a consistent and
3779953daebaSmrg   complete version of the configuration file is always available.
3780ca08ab68Smrg
3781953daebaSmrgFcAtomicCreate
37822c393a42Smrg
37832c393a42SmrgName
37842c393a42Smrg
3785953daebaSmrg   FcAtomicCreate -- create an FcAtomic object
37862c393a42Smrg
37872c393a42SmrgSynopsis
37882c393a42Smrg
3789953daebaSmrg#include <fontconfig/fontconfig.h>
3790a6844aabSmrg
3791ca08ab68Smrg   FcAtomic * FcAtomicCreate(const FcChar8 *file);
37922c393a42Smrg
37932c393a42SmrgDescription
37942c393a42Smrg
3795953daebaSmrg   Creates a data structure containing data needed to control
3796953daebaSmrg   access to file. Writing is done to a separate file. Once that
3797953daebaSmrg   file is complete, the original configuration file is atomically
3798953daebaSmrg   replaced so that reading process always see a consistent and
3799953daebaSmrg   complete file without the need to lock for reading.
38002c393a42Smrg
3801953daebaSmrgFcAtomicLock
38022c393a42Smrg
38032c393a42SmrgName
38042c393a42Smrg
3805953daebaSmrg   FcAtomicLock -- lock a file
38062c393a42Smrg
38072c393a42SmrgSynopsis
38082c393a42Smrg
3809953daebaSmrg#include <fontconfig/fontconfig.h>
3810a6844aabSmrg
3811ca08ab68Smrg   FcBool FcAtomicLock(FcAtomic *atomic);
38122c393a42Smrg
38132c393a42SmrgDescription
38142c393a42Smrg
3815953daebaSmrg   Attempts to lock the file referenced by atomic. Returns FcFalse
3816953daebaSmrg   if the file is already locked, else returns FcTrue and leaves
3817953daebaSmrg   the file locked.
38182c393a42Smrg
3819953daebaSmrgFcAtomicNewFile
38202c393a42Smrg
38212c393a42SmrgName
38222c393a42Smrg
3823953daebaSmrg   FcAtomicNewFile -- return new temporary file name
38242c393a42Smrg
38252c393a42SmrgSynopsis
38262c393a42Smrg
3827953daebaSmrg#include <fontconfig/fontconfig.h>
3828a6844aabSmrg
3829ca08ab68Smrg   FcChar8 * FcAtomicNewFile(FcAtomic *atomic);
38302c393a42Smrg
38312c393a42SmrgDescription
38322c393a42Smrg
3833953daebaSmrg   Returns the filename for writing a new version of the file
3834953daebaSmrg   referenced by atomic.
38352c393a42Smrg
3836953daebaSmrgFcAtomicOrigFile
38372c393a42Smrg
38382c393a42SmrgName
38392c393a42Smrg
3840953daebaSmrg   FcAtomicOrigFile -- return original file name
38412c393a42Smrg
38422c393a42SmrgSynopsis
38432c393a42Smrg
3844953daebaSmrg#include <fontconfig/fontconfig.h>
3845a6844aabSmrg
3846ca08ab68Smrg   FcChar8 * FcAtomicOrigFile(FcAtomic *atomic);
38472c393a42Smrg
38482c393a42SmrgDescription
38492c393a42Smrg
3850ca08ab68Smrg   Returns the file referenced by atomic.
38512c393a42Smrg
3852953daebaSmrgFcAtomicReplaceOrig
38532c393a42Smrg
38542c393a42SmrgName
38552c393a42Smrg
3856953daebaSmrg   FcAtomicReplaceOrig -- replace original with new
38572c393a42Smrg
38582c393a42SmrgSynopsis
38592c393a42Smrg
3860953daebaSmrg#include <fontconfig/fontconfig.h>
3861a6844aabSmrg
3862ca08ab68Smrg   FcBool FcAtomicReplaceOrig(FcAtomic *atomic);
38632c393a42Smrg
38642c393a42SmrgDescription
38652c393a42Smrg
3866953daebaSmrg   Replaces the original file referenced by atomic with the new
3867953daebaSmrg   file. Returns FcFalse if the file cannot be replaced due to
3868953daebaSmrg   permission issues in the filesystem. Otherwise returns FcTrue.
38692c393a42Smrg
3870953daebaSmrgFcAtomicDeleteNew
38712c393a42Smrg
38722c393a42SmrgName
38732c393a42Smrg
3874953daebaSmrg   FcAtomicDeleteNew -- delete new file
38752c393a42Smrg
38762c393a42SmrgSynopsis
38772c393a42Smrg
3878953daebaSmrg#include <fontconfig/fontconfig.h>
3879a6844aabSmrg
3880ca08ab68Smrg   void FcAtomicDeleteNew(FcAtomic *atomic);
38812c393a42Smrg
38822c393a42SmrgDescription
38832c393a42Smrg
3884953daebaSmrg   Deletes the new file. Used in error recovery to back out
3885953daebaSmrg   changes.
38862c393a42Smrg
3887953daebaSmrgFcAtomicUnlock
38882c393a42Smrg
38892c393a42SmrgName
38902c393a42Smrg
3891953daebaSmrg   FcAtomicUnlock -- unlock a file
38922c393a42Smrg
38932c393a42SmrgSynopsis
38942c393a42Smrg
3895953daebaSmrg#include <fontconfig/fontconfig.h>
3896a6844aabSmrg
3897ca08ab68Smrg   void FcAtomicUnlock(FcAtomic *atomic);
38982c393a42Smrg
38992c393a42SmrgDescription
39002c393a42Smrg
3901ca08ab68Smrg   Unlocks the file.
39022c393a42Smrg
3903953daebaSmrgFcAtomicDestroy
39042c393a42Smrg
39052c393a42SmrgName
39062c393a42Smrg
3907953daebaSmrg   FcAtomicDestroy -- destroy an FcAtomic object
39082c393a42Smrg
39092c393a42SmrgSynopsis
39102c393a42Smrg
3911953daebaSmrg#include <fontconfig/fontconfig.h>
3912a6844aabSmrg
3913ca08ab68Smrg   void FcAtomicDestroy(FcAtomic *atomic);
39142c393a42Smrg
39152c393a42SmrgDescription
39162c393a42Smrg
3917ca08ab68Smrg   Destroys atomic.
3918953daebaSmrg     __________________________________________________________
39192c393a42Smrg
3920953daebaSmrgFile and Directory routines
3921ca08ab68Smrg
3922ca08ab68Smrg   Table of Contents
3923953daebaSmrg   FcFileScan -- scan a font file
3924953daebaSmrg   FcFileIsDir -- check whether a file is a directory
3925953daebaSmrg   FcDirScan -- scan a font directory without caching it
3926953daebaSmrg   FcDirSave -- DEPRECATED: formerly used to save a directory
3927953daebaSmrg          cache
3928ca08ab68Smrg
3929953daebaSmrg   FcDirCacheUnlink -- Remove all caches related to dir
3930953daebaSmrg   FcDirCacheValid -- check directory cache
3931953daebaSmrg   FcDirCacheLoad -- load a directory cache
3932953daebaSmrg   FcDirCacheRescan -- Re-scan a directory cache
3933953daebaSmrg   FcDirCacheRead -- read or construct a directory cache
3934953daebaSmrg   FcDirCacheLoadFile -- load a cache file
3935953daebaSmrg   FcDirCacheUnload -- unload a cache file
39362c393a42Smrg
3937953daebaSmrg   These routines work with font files and directories, including
3938953daebaSmrg   font directory cache files.
39392c393a42Smrg
3940953daebaSmrgFcFileScan
39412c393a42Smrg
39422c393a42SmrgName
39432c393a42Smrg
3944953daebaSmrg   FcFileScan -- scan a font file
39452c393a42Smrg
39462c393a42SmrgSynopsis
39472c393a42Smrg
3948953daebaSmrg#include <fontconfig/fontconfig.h>
39492c393a42Smrg
3950953daebaSmrg   FcBool FcFileScan(FcFontSet *set, FcStrSet *dirs, FcFileCache
3951953daebaSmrg   *cache, FcBlanks *blanks, const FcChar8 *file, FcBool force);
39522c393a42Smrg
39532c393a42SmrgDescription
39542c393a42Smrg
3955953daebaSmrg   Scans a single file and adds all fonts found to set. If force
3956953daebaSmrg   is FcTrue, then the file is scanned even if associated
3957953daebaSmrg   information is found in cache. If file is a directory, it is
3958953daebaSmrg   added to dirs. Whether fonts are found depends on fontconfig
3959953daebaSmrg   policy as well as the current configuration. Internally,
3960953daebaSmrg   fontconfig will ignore BDF and PCF fonts which are not in
3961953daebaSmrg   Unicode (or the effectively equivalent ISO Latin-1) encoding as
3962953daebaSmrg   those are not usable by Unicode-based applications. The
3963953daebaSmrg   configuration can ignore fonts based on filename or contents of
3964953daebaSmrg   the font file itself. Returns FcFalse if any of the fonts
3965953daebaSmrg   cannot be added (due to allocation failure). Otherwise returns
3966953daebaSmrg   FcTrue.
39672c393a42Smrg
3968953daebaSmrgFcFileIsDir
39692c393a42Smrg
39702c393a42SmrgName
39712c393a42Smrg
3972953daebaSmrg   FcFileIsDir -- check whether a file is a directory
39732c393a42Smrg
39742c393a42SmrgSynopsis
39752c393a42Smrg
3976953daebaSmrg#include <fontconfig/fontconfig.h>
3977a6844aabSmrg
3978ca08ab68Smrg   FcBool FcFileIsDir(const FcChar8 *file);
39792c393a42Smrg
39802c393a42SmrgDescription
39812c393a42Smrg
3982953daebaSmrg   Returns FcTrue if file is a directory, otherwise returns
3983953daebaSmrg   FcFalse.
39842c393a42Smrg
3985953daebaSmrgFcDirScan
39862c393a42Smrg
39872c393a42SmrgName
39882c393a42Smrg
3989953daebaSmrg   FcDirScan -- scan a font directory without caching it
39902c393a42Smrg
39912c393a42SmrgSynopsis
39922c393a42Smrg
3993953daebaSmrg#include <fontconfig/fontconfig.h>
3994a6844aabSmrg
3995953daebaSmrg   FcBool FcDirScan(FcFontSet *set, FcStrSet *dirs, FcFileCache
3996953daebaSmrg   *cache, FcBlanks *blanks, const FcChar8 *dir, FcBool force);
39972c393a42Smrg
39982c393a42SmrgDescription
39992c393a42Smrg
4000953daebaSmrg   If cache is not zero or if force is FcFalse, this function
4001953daebaSmrg   currently returns FcFalse. Otherwise, it scans an entire
4002953daebaSmrg   directory and adds all fonts found to set. Any subdirectories
4003953daebaSmrg   found are added to dirs. Calling this function does not create
4004953daebaSmrg   any cache files. Use FcDirCacheRead() if caching is desired.
40052c393a42Smrg
4006953daebaSmrgFcDirSave
40072c393a42Smrg
40082c393a42SmrgName
40092c393a42Smrg
4010953daebaSmrg   FcDirSave -- DEPRECATED: formerly used to save a directory
4011953daebaSmrg   cache
40122c393a42Smrg
40132c393a42SmrgSynopsis
40142c393a42Smrg
4015953daebaSmrg#include <fontconfig/fontconfig.h>
40162c393a42Smrg
4017953daebaSmrg   FcBool FcDirSave(FcFontSet *set, FcStrSet *dirs, const FcChar8
4018953daebaSmrg   *dir);
40192c393a42Smrg
40202c393a42SmrgDescription
40212c393a42Smrg
4022953daebaSmrg   This function now does nothing aside from returning FcFalse. It
4023953daebaSmrg   used to creates the per-directory cache file for dir and
4024953daebaSmrg   populates it with the fonts in set and subdirectories in dirs.
4025953daebaSmrg   All of this functionality is now automatically managed by
4026953daebaSmrg   FcDirCacheLoad and FcDirCacheRead.
40272c393a42Smrg
4028953daebaSmrgFcDirCacheUnlink
40292c393a42Smrg
40302c393a42SmrgName
40312c393a42Smrg
4032953daebaSmrg   FcDirCacheUnlink -- Remove all caches related to dir
40332c393a42Smrg
40342c393a42SmrgSynopsis
40352c393a42Smrg
4036953daebaSmrg#include <fontconfig/fontconfig.h>
4037a6844aabSmrg
4038ca08ab68Smrg   FcBool FcDirCacheUnlink(const FcChar8 *dir, FcConfig *config);
40392c393a42Smrg
40402c393a42SmrgDescription
40412c393a42Smrg
4042953daebaSmrg   Scans the cache directories in config, removing any instances
4043953daebaSmrg   of the cache file for dir. Returns FcFalse when some internal
4044953daebaSmrg   error occurs (out of memory, etc). Errors actually unlinking
4045953daebaSmrg   any files are ignored.
40462c393a42Smrg
4047953daebaSmrgFcDirCacheValid
40482c393a42Smrg
40492c393a42SmrgName
40502c393a42Smrg
4051953daebaSmrg   FcDirCacheValid -- check directory cache
40522c393a42Smrg
40532c393a42SmrgSynopsis
40542c393a42Smrg
4055953daebaSmrg#include <fontconfig/fontconfig.h>
4056a6844aabSmrg
4057ca08ab68Smrg   FcBool FcDirCacheValid(const FcChar8 *dir);
40582c393a42Smrg
40592c393a42SmrgDescription
40602c393a42Smrg
4061953daebaSmrg   Returns FcTrue if dir has an associated valid cache file, else
4062953daebaSmrg   returns FcFalse
40632c393a42Smrg
4064953daebaSmrgFcDirCacheLoad
40652c393a42Smrg
40662c393a42SmrgName
40672c393a42Smrg
4068953daebaSmrg   FcDirCacheLoad -- load a directory cache
40692c393a42Smrg
40702c393a42SmrgSynopsis
40712c393a42Smrg
4072953daebaSmrg#include <fontconfig/fontconfig.h>
4073a6844aabSmrg
4074953daebaSmrg   FcCache * FcDirCacheLoad(const FcChar8 *dir, FcConfig *config,
4075953daebaSmrg   FcChar8 **cache_file);
40762c393a42Smrg
40772c393a42SmrgDescription
40782c393a42Smrg
4079953daebaSmrg   Loads the cache related to dir. If no cache file exists,
4080953daebaSmrg   returns NULL. The name of the cache file is returned in
4081953daebaSmrg   cache_file, unless that is NULL. See also FcDirCacheRead.
40822c393a42Smrg
4083953daebaSmrgFcDirCacheRescan
4084b09479dcSmrg
4085b09479dcSmrgName
4086b09479dcSmrg
4087953daebaSmrg   FcDirCacheRescan -- Re-scan a directory cache
4088b09479dcSmrg
4089b09479dcSmrgSynopsis
4090b09479dcSmrg
4091953daebaSmrg#include <fontconfig/fontconfig.h>
4092b09479dcSmrg
4093953daebaSmrg   FcCache * FcDirCacheRescan(const FcChar8 *dir, FcConfig
4094953daebaSmrg   *config);
4095b09479dcSmrg
4096b09479dcSmrgDescription
4097b09479dcSmrg
4098953daebaSmrg   Re-scan directories only at dir and update the cache. returns
4099953daebaSmrg   NULL if failed.
4100b09479dcSmrg
4101b09479dcSmrgSince
41022c393a42Smrg
4103b09479dcSmrg   version 2.11.1
41042c393a42Smrg
4105953daebaSmrgFcDirCacheRead
41062c393a42Smrg
41072c393a42SmrgName
41082c393a42Smrg
4109953daebaSmrg   FcDirCacheRead -- read or construct a directory cache
41102c393a42Smrg
41112c393a42SmrgSynopsis
41122c393a42Smrg
4113953daebaSmrg#include <fontconfig/fontconfig.h>
41142c393a42Smrg
4115953daebaSmrg   FcCache * FcDirCacheRead(const FcChar8 *dir, FcBool force,
4116953daebaSmrg   FcConfig *config);
41172c393a42Smrg
41182c393a42SmrgDescription
41192c393a42Smrg
4120953daebaSmrg   This returns a cache for dir. If force is FcFalse, then an
4121953daebaSmrg   existing, valid cache file will be used. Otherwise, a new cache
4122953daebaSmrg   will be created by scanning the directory and that returned.
41232c393a42Smrg
4124953daebaSmrgFcDirCacheLoadFile
41252c393a42Smrg
41262c393a42SmrgName
41272c393a42Smrg
4128953daebaSmrg   FcDirCacheLoadFile -- load a cache file
41292c393a42Smrg
41302c393a42SmrgSynopsis
41312c393a42Smrg
4132953daebaSmrg#include <fontconfig/fontconfig.h>
41332c393a42Smrg
4134953daebaSmrg   FcCache * FcDirCacheLoadFile(const FcChar8 *cache_file, struct
4135953daebaSmrg   stat *file_stat);
41362c393a42Smrg
41372c393a42SmrgDescription
41382c393a42Smrg
4139953daebaSmrg   This function loads a directory cache from cache_file. If
4140953daebaSmrg   file_stat is non-NULL, it will be filled with the results of
4141953daebaSmrg   stat(2) on the cache file.
41422c393a42Smrg
4143953daebaSmrgFcDirCacheUnload
41442c393a42Smrg
41452c393a42SmrgName
41462c393a42Smrg
4147953daebaSmrg   FcDirCacheUnload -- unload a cache file
41482c393a42Smrg
41492c393a42SmrgSynopsis
41502c393a42Smrg
4151953daebaSmrg#include <fontconfig/fontconfig.h>
4152a6844aabSmrg
4153ca08ab68Smrg   void FcDirCacheUnload(FcCache *cache);
41542c393a42Smrg
41552c393a42SmrgDescription
41562c393a42Smrg
4157953daebaSmrg   This function dereferences cache. When no other references to
4158953daebaSmrg   it remain, all memory associated with the cache will be freed.
4159953daebaSmrg     __________________________________________________________
41602c393a42Smrg
4161953daebaSmrgFcCache routines
4162ca08ab68Smrg
4163ca08ab68Smrg   Table of Contents
4164953daebaSmrg   FcCacheDir -- Return directory of cache
4165953daebaSmrg   FcCacheCopySet -- Returns a copy of the fontset from cache
4166953daebaSmrg   FcCacheSubdir -- Return the i'th subdirectory.
4167953daebaSmrg   FcCacheNumSubdir -- Return the number of subdirectories in
4168953daebaSmrg          cache.
4169ca08ab68Smrg
4170953daebaSmrg   FcCacheNumFont -- Returns the number of fonts in cache.
4171953daebaSmrg   FcDirCacheClean -- This tries to clean up the cache directory
4172953daebaSmrg          of cache_dir. This returns FcTrue if the operation is
4173953daebaSmrg          successfully complete. otherwise FcFalse.
41742c393a42Smrg
4175953daebaSmrg   FcCacheCreateTagFile -- Create CACHEDIR.TAG at cache directory.
41762c393a42Smrg
4177953daebaSmrg   These routines work with font directory caches, accessing their
4178953daebaSmrg   contents in limited ways. It is not expected that normal
4179953daebaSmrg   applications will need to use these functions.
4180ca08ab68Smrg
4181953daebaSmrgFcCacheDir
41822c393a42Smrg
41832c393a42SmrgName
41842c393a42Smrg
4185953daebaSmrg   FcCacheDir -- Return directory of cache
41862c393a42Smrg
41872c393a42SmrgSynopsis
41882c393a42Smrg
4189953daebaSmrg#include <fontconfig/fontconfig.h>
4190a6844aabSmrg
4191ca08ab68Smrg   const FcChar8 * FcCacheDir(const FcCache *cache);
41922c393a42Smrg
41932c393a42SmrgDescription
41942c393a42Smrg
4195953daebaSmrg   This function returns the directory from which the cache was
4196953daebaSmrg   constructed.
41972c393a42Smrg
4198953daebaSmrgFcCacheCopySet
41992c393a42Smrg
42002c393a42SmrgName
42012c393a42Smrg
4202953daebaSmrg   FcCacheCopySet -- Returns a copy of the fontset from cache
42032c393a42Smrg
42042c393a42SmrgSynopsis
42052c393a42Smrg
4206953daebaSmrg#include <fontconfig/fontconfig.h>
4207a6844aabSmrg
4208ca08ab68Smrg   FcFontSet * FcCacheCopySet(const FcCache *cache);
42092c393a42Smrg
42102c393a42SmrgDescription
42112c393a42Smrg
4212953daebaSmrg   The returned fontset contains each of the font patterns from
4213953daebaSmrg   cache. This fontset may be modified, but the patterns from the
4214953daebaSmrg   cache are read-only.
42152c393a42Smrg
4216953daebaSmrgFcCacheSubdir
42172c393a42Smrg
42182c393a42SmrgName
42192c393a42Smrg
4220953daebaSmrg   FcCacheSubdir -- Return the i'th subdirectory.
42212c393a42Smrg
42222c393a42SmrgSynopsis
42232c393a42Smrg
4224953daebaSmrg#include <fontconfig/fontconfig.h>
4225a6844aabSmrg
4226ca08ab68Smrg   const FcChar8 * FcCacheSubdir(const FcCache *cache, inti);
42272c393a42Smrg
42282c393a42SmrgDescription
42292c393a42Smrg
4230953daebaSmrg   The set of subdirectories stored in a cache file are indexed by
4231953daebaSmrg   this function, i should range from 0 to n-1, where n is the
4232953daebaSmrg   return value from FcCacheNumSubdir.
42332c393a42Smrg
4234953daebaSmrgFcCacheNumSubdir
42352c393a42Smrg
42362c393a42SmrgName
42372c393a42Smrg
4238953daebaSmrg   FcCacheNumSubdir -- Return the number of subdirectories in
4239953daebaSmrg   cache.
42402c393a42Smrg
42412c393a42SmrgSynopsis
42422c393a42Smrg
4243953daebaSmrg#include <fontconfig/fontconfig.h>
4244a6844aabSmrg
4245ca08ab68Smrg   int FcCacheNumSubdir(const FcCache *cache);
42462c393a42Smrg
42472c393a42SmrgDescription
42482c393a42Smrg
4249ca08ab68Smrg   This returns the total number of subdirectories in the cache.
42502c393a42Smrg
4251953daebaSmrgFcCacheNumFont
42522c393a42Smrg
42532c393a42SmrgName
42542c393a42Smrg
4255953daebaSmrg   FcCacheNumFont -- Returns the number of fonts in cache.
42562c393a42Smrg
42572c393a42SmrgSynopsis
42582c393a42Smrg
4259953daebaSmrg#include <fontconfig/fontconfig.h>
4260a6844aabSmrg
4261ca08ab68Smrg   int FcCacheNumFont(const FcCache *cache);
42622c393a42Smrg
42632c393a42SmrgDescription
42642c393a42Smrg
4265953daebaSmrg   This returns the number of fonts which would be included in the
4266953daebaSmrg   return from FcCacheCopySet.
42672c393a42Smrg
4268953daebaSmrgFcDirCacheClean
4269ca08ab68Smrg
4270ca08ab68SmrgName
4271ca08ab68Smrg
4272953daebaSmrg   FcDirCacheClean -- This tries to clean up the cache directory
4273953daebaSmrg   of cache_dir. This returns FcTrue if the operation is
4274953daebaSmrg   successfully complete. otherwise FcFalse.
4275ca08ab68Smrg
4276ca08ab68SmrgSynopsis
4277ca08ab68Smrg
4278953daebaSmrg#include <fontconfig/fontconfig.h>
4279a6844aabSmrg
4280953daebaSmrg   FcBool FcDirCacheClean(const FcChar8 *cache_dir,
4281953daebaSmrg   FcBoolverbose);
4282ca08ab68Smrg
4283ca08ab68SmrgDescription
42842c393a42Smrg
4285b09479dcSmrgSince
42862c393a42Smrg
4287b09479dcSmrg   version 2.9.91
4288ca08ab68Smrg
4289953daebaSmrgFcCacheCreateTagFile
42902c393a42Smrg
42912c393a42SmrgName
42922c393a42Smrg
4293953daebaSmrg   FcCacheCreateTagFile -- Create CACHEDIR.TAG at cache directory.
42942c393a42Smrg
42952c393a42SmrgSynopsis
42962c393a42Smrg
4297953daebaSmrg#include <fontconfig/fontconfig.h>
4298a6844aabSmrg
4299ca08ab68Smrg   void FcCacheCreateTagFile(const FcConfig *config);
43002c393a42Smrg
43012c393a42SmrgDescription
43022c393a42Smrg
4303953daebaSmrg   This tries to create CACHEDIR.TAG file at the cache directory
4304953daebaSmrg   registered to config.
43052c393a42Smrg
4306b09479dcSmrgSince
43072c393a42Smrg
4308b09479dcSmrg   version 2.9.91
4309953daebaSmrg     __________________________________________________________
4310ca08ab68Smrg
4311953daebaSmrgFcStrSet and FcStrList
4312ca08ab68Smrg
4313ca08ab68Smrg   Table of Contents
4314953daebaSmrg   FcStrSetCreate -- create a string set
4315953daebaSmrg   FcStrSetMember -- check set for membership
4316953daebaSmrg   FcStrSetEqual -- check sets for equality
4317953daebaSmrg   FcStrSetAdd -- add to a string set
4318953daebaSmrg   FcStrSetAddFilename -- add a filename to a string set
4319953daebaSmrg   FcStrSetDel -- delete from a string set
4320953daebaSmrg   FcStrSetDestroy -- destroy a string set
4321953daebaSmrg   FcStrListCreate -- create a string iterator
4322953daebaSmrg   FcStrListFirst -- get first string in iteration
4323953daebaSmrg   FcStrListNext -- get next string in iteration
4324953daebaSmrg   FcStrListDone -- destroy a string iterator
4325ca08ab68Smrg
4326953daebaSmrg   A data structure for enumerating strings, used to list
4327953daebaSmrg   directories while scanning the configuration as directories are
4328953daebaSmrg   added while scanning.
4329ca08ab68Smrg
4330953daebaSmrgFcStrSetCreate
43312c393a42Smrg
43322c393a42SmrgName
43332c393a42Smrg
4334953daebaSmrg   FcStrSetCreate -- create a string set
43352c393a42Smrg
43362c393a42SmrgSynopsis
43372c393a42Smrg
4338953daebaSmrg#include <fontconfig/fontconfig.h>
4339a6844aabSmrg
4340ca08ab68Smrg   FcStrSet * FcStrSetCreate(void);
43412c393a42Smrg
43422c393a42SmrgDescription
43432c393a42Smrg
4344ca08ab68Smrg   Create an empty set.
43452c393a42Smrg
4346953daebaSmrgFcStrSetMember
43472c393a42Smrg
43482c393a42SmrgName
43492c393a42Smrg
4350953daebaSmrg   FcStrSetMember -- check set for membership
43512c393a42Smrg
43522c393a42SmrgSynopsis
43532c393a42Smrg
4354953daebaSmrg#include <fontconfig/fontconfig.h>
4355a6844aabSmrg
4356ca08ab68Smrg   FcBool FcStrSetMember(FcStrSet *set, const FcChar8 *s);
43572c393a42Smrg
43582c393a42SmrgDescription
43592c393a42Smrg
4360ca08ab68Smrg   Returns whether s is a member of set.
43612c393a42Smrg
4362953daebaSmrgFcStrSetEqual
43632c393a42Smrg
43642c393a42SmrgName
43652c393a42Smrg
4366953daebaSmrg   FcStrSetEqual -- check sets for equality
43672c393a42Smrg
43682c393a42SmrgSynopsis
43692c393a42Smrg
4370953daebaSmrg#include <fontconfig/fontconfig.h>
4371a6844aabSmrg
4372ca08ab68Smrg   FcBool FcStrSetEqual(FcStrSet *set_a, FcStrSet *set_b);
43732c393a42Smrg
43742c393a42SmrgDescription
43752c393a42Smrg
4376953daebaSmrg   Returns whether set_a contains precisely the same strings as
4377953daebaSmrg   set_b. Ordering of strings within the two sets is not
4378953daebaSmrg   considered.
43792c393a42Smrg
4380953daebaSmrgFcStrSetAdd
43812c393a42Smrg
43822c393a42SmrgName
43832c393a42Smrg
4384953daebaSmrg   FcStrSetAdd -- add to a string set
43852c393a42Smrg
43862c393a42SmrgSynopsis
43872c393a42Smrg
4388953daebaSmrg#include <fontconfig/fontconfig.h>
4389a6844aabSmrg
4390ca08ab68Smrg   FcBool FcStrSetAdd(FcStrSet *set, const FcChar8 *s);
43912c393a42Smrg
43922c393a42SmrgDescription
43932c393a42Smrg
4394ca08ab68Smrg   Adds a copy of s to set.
43952c393a42Smrg
4396953daebaSmrgFcStrSetAddFilename
43972c393a42Smrg
43982c393a42SmrgName
43992c393a42Smrg
4400953daebaSmrg   FcStrSetAddFilename -- add a filename to a string set
44012c393a42Smrg
44022c393a42SmrgSynopsis
44032c393a42Smrg
4404953daebaSmrg#include <fontconfig/fontconfig.h>
4405a6844aabSmrg
4406ca08ab68Smrg   FcBool FcStrSetAddFilename(FcStrSet *set, const FcChar8 *s);
44072c393a42Smrg
44082c393a42SmrgDescription
44092c393a42Smrg
4410953daebaSmrg   Adds a copy s to set, The copy is created with
4411953daebaSmrg   FcStrCopyFilename so that leading '~' values are replaced with
4412953daebaSmrg   the value of the HOME environment variable.
44132c393a42Smrg
4414953daebaSmrgFcStrSetDel
44152c393a42Smrg
44162c393a42SmrgName
44172c393a42Smrg
4418953daebaSmrg   FcStrSetDel -- delete from a string set
44192c393a42Smrg
44202c393a42SmrgSynopsis
44212c393a42Smrg
4422953daebaSmrg#include <fontconfig/fontconfig.h>
4423a6844aabSmrg
4424ca08ab68Smrg   FcBool FcStrSetDel(FcStrSet *set, const FcChar8 *s);
44252c393a42Smrg
44262c393a42SmrgDescription
44272c393a42Smrg
4428953daebaSmrg   Removes s from set, returning FcTrue if s was a member else
4429953daebaSmrg   FcFalse.
44302c393a42Smrg
4431953daebaSmrgFcStrSetDestroy
44322c393a42Smrg
44332c393a42SmrgName
44342c393a42Smrg
4435953daebaSmrg   FcStrSetDestroy -- destroy a string set
44362c393a42Smrg
44372c393a42SmrgSynopsis
44382c393a42Smrg
4439953daebaSmrg#include <fontconfig/fontconfig.h>
4440a6844aabSmrg
4441ca08ab68Smrg   void FcStrSetDestroy(FcStrSet *set);
44422c393a42Smrg
44432c393a42SmrgDescription
44442c393a42Smrg
4445ca08ab68Smrg   Destroys set.
44462c393a42Smrg
4447953daebaSmrgFcStrListCreate
44482c393a42Smrg
44492c393a42SmrgName
44502c393a42Smrg
4451953daebaSmrg   FcStrListCreate -- create a string iterator
44522c393a42Smrg
44532c393a42SmrgSynopsis
44542c393a42Smrg
4455953daebaSmrg#include <fontconfig/fontconfig.h>
4456a6844aabSmrg
4457ca08ab68Smrg   FcStrList * FcStrListCreate(FcStrSet *set);
44582c393a42Smrg
44592c393a42SmrgDescription
44602c393a42Smrg
4461ca08ab68Smrg   Creates an iterator to list the strings in set.
44622c393a42Smrg
4463953daebaSmrgFcStrListFirst
44646fc018e4Smrg
44656fc018e4SmrgName
44666fc018e4Smrg
4467953daebaSmrg   FcStrListFirst -- get first string in iteration
44686fc018e4Smrg
44696fc018e4SmrgSynopsis
44706fc018e4Smrg
4471953daebaSmrg#include <fontconfig/fontconfig.h>
44726fc018e4Smrg
44736fc018e4Smrg   void FcStrListFirst(FcStrList *list);
44746fc018e4Smrg
44756fc018e4SmrgDescription
44766fc018e4Smrg
44776fc018e4Smrg   Returns the first string in list.
44786fc018e4Smrg
4479b09479dcSmrgSince
44806fc018e4Smrg
4481b09479dcSmrg   version 2.11.0
44822c393a42Smrg
4483953daebaSmrgFcStrListNext
44842c393a42Smrg
44852c393a42SmrgName
44862c393a42Smrg
4487953daebaSmrg   FcStrListNext -- get next string in iteration
44882c393a42Smrg
44892c393a42SmrgSynopsis
44902c393a42Smrg
4491953daebaSmrg#include <fontconfig/fontconfig.h>
4492a6844aabSmrg
4493ca08ab68Smrg   FcChar8 * FcStrListNext(FcStrList *list);
44942c393a42Smrg
44952c393a42SmrgDescription
44962c393a42Smrg
44976fc018e4Smrg   Returns the next string in list.
44982c393a42Smrg
4499953daebaSmrgFcStrListDone
45002c393a42Smrg
4501ca08ab68SmrgName
4502ca08ab68Smrg
4503953daebaSmrg   FcStrListDone -- destroy a string iterator
4504ca08ab68Smrg
4505ca08ab68SmrgSynopsis
4506ca08ab68Smrg
4507953daebaSmrg#include <fontconfig/fontconfig.h>
4508ca08ab68Smrg
4509ca08ab68Smrg   void FcStrListDone(FcStrList *list);
4510ca08ab68Smrg
4511ca08ab68SmrgDescription
4512ca08ab68Smrg
4513ca08ab68Smrg   Destroys the enumerator list.
4514953daebaSmrg     __________________________________________________________
4515ca08ab68Smrg
4516953daebaSmrgString utilities
4517ca08ab68Smrg
4518ca08ab68Smrg   Table of Contents
4519953daebaSmrg   FcUtf8ToUcs4 -- convert UTF-8 to UCS4
4520953daebaSmrg   FcUcs4ToUtf8 -- convert UCS4 to UTF-8
4521953daebaSmrg   FcUtf8Len -- count UTF-8 encoded chars
4522953daebaSmrg   FcUtf16ToUcs4 -- convert UTF-16 to UCS4
4523953daebaSmrg   FcUtf16Len -- count UTF-16 encoded chars
4524953daebaSmrg   FcIsLower -- check for lower case ASCII character
4525953daebaSmrg   FcIsUpper -- check for upper case ASCII character
4526953daebaSmrg   FcToLower -- convert upper case ASCII to lower case
4527953daebaSmrg   FcStrCopy -- duplicate a string
4528953daebaSmrg   FcStrDowncase -- create a lower case translation of a string
4529953daebaSmrg   FcStrCopyFilename -- create a complete path from a filename
4530953daebaSmrg   FcStrCmp -- compare UTF-8 strings
4531953daebaSmrg   FcStrCmpIgnoreCase -- compare UTF-8 strings ignoring case
4532953daebaSmrg   FcStrStr -- locate UTF-8 substring
4533953daebaSmrg   FcStrStrIgnoreCase -- locate UTF-8 substring ignoring ASCII
4534953daebaSmrg          case
4535ca08ab68Smrg
4536953daebaSmrg   FcStrPlus -- concatenate two strings
4537953daebaSmrg   FcStrFree -- free a string
4538953daebaSmrg   FcStrDirname -- directory part of filename
4539953daebaSmrg   FcStrBasename -- last component of filename
4540ca08ab68Smrg
4541953daebaSmrg   Fontconfig manipulates many UTF-8 strings represented with the
4542953daebaSmrg   FcChar8 type. These functions are exposed to help applications
4543953daebaSmrg   deal with these UTF-8 strings in a locale-insensitive manner.
4544ca08ab68Smrg
4545953daebaSmrgFcUtf8ToUcs4
45462c393a42Smrg
45472c393a42SmrgName
45482c393a42Smrg
4549953daebaSmrg   FcUtf8ToUcs4 -- convert UTF-8 to UCS4
45502c393a42Smrg
45512c393a42SmrgSynopsis
45522c393a42Smrg
4553953daebaSmrg#include <fontconfig/fontconfig.h>
4554a6844aabSmrg
4555ca08ab68Smrg   int FcUtf8ToUcs4(FcChar8 *src, FcChar32 *dst, int len);
45562c393a42Smrg
45572c393a42SmrgDescription
45582c393a42Smrg
4559953daebaSmrg   Converts the next Unicode char from src into dst and returns
4560953daebaSmrg   the number of bytes containing the char. src must be at least
4561953daebaSmrg   len bytes long.
45622c393a42Smrg
4563953daebaSmrgFcUcs4ToUtf8
45642c393a42Smrg
45652c393a42SmrgName
45662c393a42Smrg
4567953daebaSmrg   FcUcs4ToUtf8 -- convert UCS4 to UTF-8
45682c393a42Smrg
45692c393a42SmrgSynopsis
45702c393a42Smrg
4571953daebaSmrg#include <fontconfig/fontconfig.h>
4572a6844aabSmrg
4573ca08ab68Smrg   int FcUcs4ToUtf8(FcChar32 src, FcChar8 dst[FC_UTF8_MAX_LEN]);
45742c393a42Smrg
45752c393a42SmrgDescription
45762c393a42Smrg
4577953daebaSmrg   Converts the Unicode char from src into dst and returns the
4578953daebaSmrg   number of bytes needed to encode the char.
45792c393a42Smrg
4580953daebaSmrgFcUtf8Len
45812c393a42Smrg
45822c393a42SmrgName
45832c393a42Smrg
4584953daebaSmrg   FcUtf8Len -- count UTF-8 encoded chars
45852c393a42Smrg
45862c393a42SmrgSynopsis
45872c393a42Smrg
4588953daebaSmrg#include <fontconfig/fontconfig.h>
4589a6844aabSmrg
4590953daebaSmrg   FcBool FcUtf8Len(FcChar8 *src, int len, int *nchar, int
4591953daebaSmrg   *wchar);
45922c393a42Smrg
45932c393a42SmrgDescription
45942c393a42Smrg
4595953daebaSmrg   Counts the number of Unicode chars in len bytes of src. Places
4596953daebaSmrg   that count in nchar. wchar contains 1, 2 or 4 depending on the
4597953daebaSmrg   number of bytes needed to hold the largest Unicode char
4598953daebaSmrg   counted. The return value indicates whether src is a
4599953daebaSmrg   well-formed UTF8 string.
46002c393a42Smrg
4601953daebaSmrgFcUtf16ToUcs4
46022c393a42Smrg
46032c393a42SmrgName
46042c393a42Smrg
4605953daebaSmrg   FcUtf16ToUcs4 -- convert UTF-16 to UCS4
46062c393a42Smrg
46072c393a42SmrgSynopsis
46082c393a42Smrg
4609953daebaSmrg#include <fontconfig/fontconfig.h>
4610a6844aabSmrg
4611953daebaSmrg   int FcUtf16ToUcs4(FcChar8 *src, FcEndian endian, FcChar32 *dst,
4612953daebaSmrg   int len);
46132c393a42Smrg
46142c393a42SmrgDescription
46152c393a42Smrg
4616953daebaSmrg   Converts the next Unicode char from src into dst and returns
4617953daebaSmrg   the number of bytes containing the char. src must be at least
4618953daebaSmrg   len bytes long. Bytes of src are combined into 16-bit units
4619953daebaSmrg   according to endian.
46202c393a42Smrg
4621953daebaSmrgFcUtf16Len
46222c393a42Smrg
46232c393a42SmrgName
46242c393a42Smrg
4625953daebaSmrg   FcUtf16Len -- count UTF-16 encoded chars
46262c393a42Smrg
46272c393a42SmrgSynopsis
46282c393a42Smrg
4629953daebaSmrg#include <fontconfig/fontconfig.h>
46302c393a42Smrg
4631953daebaSmrg   FcBool FcUtf16Len(FcChar8 *src, FcEndian endian, int len, int
4632953daebaSmrg   *nchar, int *wchar);
46332c393a42Smrg
46342c393a42SmrgDescription
46352c393a42Smrg
4636953daebaSmrg   Counts the number of Unicode chars in len bytes of src. Bytes
4637953daebaSmrg   of src are combined into 16-bit units according to endian.
4638953daebaSmrg   Places that count in nchar. wchar contains 1, 2 or 4 depending
4639953daebaSmrg   on the number of bytes needed to hold the largest Unicode char
4640953daebaSmrg   counted. The return value indicates whether string is a
4641953daebaSmrg   well-formed UTF16 string.
46422c393a42Smrg
4643953daebaSmrgFcIsLower
46442c393a42Smrg
46452c393a42SmrgName
46462c393a42Smrg
4647953daebaSmrg   FcIsLower -- check for lower case ASCII character
46482c393a42Smrg
46492c393a42SmrgSynopsis
46502c393a42Smrg
4651953daebaSmrg#include <fontconfig/fontconfig.h>
4652a6844aabSmrg
4653ca08ab68Smrg   FcBool FcIsLower(FcChar8c);
46542c393a42Smrg
46552c393a42SmrgDescription
46562c393a42Smrg
4657ca08ab68Smrg   This macro checks whether c is an lower case ASCII letter.
46582c393a42Smrg
4659953daebaSmrgFcIsUpper
46602c393a42Smrg
46612c393a42SmrgName
46622c393a42Smrg
4663953daebaSmrg   FcIsUpper -- check for upper case ASCII character
46642c393a42Smrg
46652c393a42SmrgSynopsis
46662c393a42Smrg
4667953daebaSmrg#include <fontconfig/fontconfig.h>
4668a6844aabSmrg
4669ca08ab68Smrg   FcBool FcIsUpper(FcChar8c);
46702c393a42Smrg
46712c393a42SmrgDescription
46722c393a42Smrg
4673ca08ab68Smrg   This macro checks whether c is a upper case ASCII letter.
46742c393a42Smrg
4675953daebaSmrgFcToLower
46762c393a42Smrg
46772c393a42SmrgName
46782c393a42Smrg
4679953daebaSmrg   FcToLower -- convert upper case ASCII to lower case
46802c393a42Smrg
46812c393a42SmrgSynopsis
46822c393a42Smrg
4683953daebaSmrg#include <fontconfig/fontconfig.h>
4684a6844aabSmrg
4685ca08ab68Smrg   FcChar8 FcToLower(FcChar8c);
46862c393a42Smrg
46872c393a42SmrgDescription
46882c393a42Smrg
4689953daebaSmrg   This macro converts upper case ASCII c to the equivalent lower
4690953daebaSmrg   case letter.
46912c393a42Smrg
4692953daebaSmrgFcStrCopy
46932c393a42Smrg
46942c393a42SmrgName
46952c393a42Smrg
4696953daebaSmrg   FcStrCopy -- duplicate a string
46972c393a42Smrg
46982c393a42SmrgSynopsis
46992c393a42Smrg
4700953daebaSmrg#include <fontconfig/fontconfig.h>
4701a6844aabSmrg
4702ca08ab68Smrg   FcChar8 * FcStrCopy(const FcChar8 *s);
47032c393a42Smrg
47042c393a42SmrgDescription
47052c393a42Smrg
4706953daebaSmrg   Allocates memory, copies s and returns the resulting buffer.
4707953daebaSmrg   Yes, this is strdup, but that function isn't available on every
4708953daebaSmrg   platform.
47092c393a42Smrg
4710953daebaSmrgFcStrDowncase
47112c393a42Smrg
47122c393a42SmrgName
47132c393a42Smrg
4714953daebaSmrg   FcStrDowncase -- create a lower case translation of a string
47152c393a42Smrg
47162c393a42SmrgSynopsis
47172c393a42Smrg
4718953daebaSmrg#include <fontconfig/fontconfig.h>
4719a6844aabSmrg
4720ca08ab68Smrg   FcChar8 * FcStrDowncase(const FcChar8 *s);
47212c393a42Smrg
47222c393a42SmrgDescription
47232c393a42Smrg
4724953daebaSmrg   Allocates memory, copies s, converting upper case letters to
4725953daebaSmrg   lower case and returns the allocated buffer.
47262c393a42Smrg
4727953daebaSmrgFcStrCopyFilename
47282c393a42Smrg
47292c393a42SmrgName
47302c393a42Smrg
4731953daebaSmrg   FcStrCopyFilename -- create a complete path from a filename
47322c393a42Smrg
47332c393a42SmrgSynopsis
47342c393a42Smrg
4735953daebaSmrg#include <fontconfig/fontconfig.h>
4736a6844aabSmrg
4737ca08ab68Smrg   FcChar8 * FcStrCopyFilename(const FcChar8 *s);
47382c393a42Smrg
47392c393a42SmrgDescription
47402c393a42Smrg
4741953daebaSmrg   FcStrCopyFilename constructs an absolute pathname from s. It
4742953daebaSmrg   converts any leading '~' characters in to the value of the HOME
4743953daebaSmrg   environment variable, and any relative paths are converted to
4744953daebaSmrg   absolute paths using the current working directory. Sequences
4745953daebaSmrg   of '/' characters are converted to a single '/', and names
4746953daebaSmrg   containing the current directory '.' or parent directory '..'
4747953daebaSmrg   are correctly reconstructed. Returns NULL if '~' is the leading
4748953daebaSmrg   character and HOME is unset or disabled (see
4749953daebaSmrg   FcConfigEnableHome).
47502c393a42Smrg
4751953daebaSmrgFcStrCmp
47522c393a42Smrg
47532c393a42SmrgName
47542c393a42Smrg
4755953daebaSmrg   FcStrCmp -- compare UTF-8 strings
47562c393a42Smrg
47572c393a42SmrgSynopsis
47582c393a42Smrg
4759953daebaSmrg#include <fontconfig/fontconfig.h>
4760a6844aabSmrg
4761ca08ab68Smrg   int FcStrCmp(const FcChar8 *s1, const FcChar8 *s2);
47622c393a42Smrg
47632c393a42SmrgDescription
47642c393a42Smrg
4765ca08ab68Smrg   Returns the usual <0, 0, >0 result of comparing s1 and s2.
47662c393a42Smrg
4767953daebaSmrgFcStrCmpIgnoreCase
47682c393a42Smrg
47692c393a42SmrgName
47702c393a42Smrg
4771953daebaSmrg   FcStrCmpIgnoreCase -- compare UTF-8 strings ignoring case
47722c393a42Smrg
47732c393a42SmrgSynopsis
47742c393a42Smrg
4775953daebaSmrg#include <fontconfig/fontconfig.h>
4776a6844aabSmrg
4777ca08ab68Smrg   int FcStrCmpIgnoreCase(const FcChar8 *s1, const FcChar8 *s2);
47782c393a42Smrg
47792c393a42SmrgDescription
47802c393a42Smrg
4781953daebaSmrg   Returns the usual <0, 0, >0 result of comparing s1 and s2. This
4782953daebaSmrg   test is case-insensitive for all proper UTF-8 encoded strings.
47832c393a42Smrg
4784953daebaSmrgFcStrStr
47852c393a42Smrg
47862c393a42SmrgName
47872c393a42Smrg
4788953daebaSmrg   FcStrStr -- locate UTF-8 substring
47892c393a42Smrg
47902c393a42SmrgSynopsis
47912c393a42Smrg
4792953daebaSmrg#include <fontconfig/fontconfig.h>
4793a6844aabSmrg
4794ca08ab68Smrg   FcChar8 * FcStrStr(const FcChar8 *s1, const FcChar8 *s2);
47952c393a42Smrg
47962c393a42SmrgDescription
47972c393a42Smrg
4798953daebaSmrg   Returns the location of s2 in s1. Returns NULL if s2 is not
4799953daebaSmrg   present in s1. This test will operate properly with UTF8
4800953daebaSmrg   encoded strings.
48012c393a42Smrg
4802953daebaSmrgFcStrStrIgnoreCase
48032c393a42Smrg
48042c393a42SmrgName
48052c393a42Smrg
4806953daebaSmrg   FcStrStrIgnoreCase -- locate UTF-8 substring ignoring ASCII
4807953daebaSmrg   case
48082c393a42Smrg
48092c393a42SmrgSynopsis
48102c393a42Smrg
4811953daebaSmrg#include <fontconfig/fontconfig.h>
4812a6844aabSmrg
4813953daebaSmrg   FcChar8 * FcStrStrIgnoreCase(const FcChar8 *s1, const FcChar8
4814953daebaSmrg   *s2);
48152c393a42Smrg
48162c393a42SmrgDescription
48172c393a42Smrg
4818953daebaSmrg   Returns the location of s2 in s1, ignoring case. Returns NULL
4819953daebaSmrg   if s2 is not present in s1. This test is case-insensitive for
4820953daebaSmrg   all proper UTF-8 encoded strings.
48212c393a42Smrg
4822953daebaSmrgFcStrPlus
48232c393a42Smrg
48242c393a42SmrgName
48252c393a42Smrg
4826953daebaSmrg   FcStrPlus -- concatenate two strings
48272c393a42Smrg
48282c393a42SmrgSynopsis
48292c393a42Smrg
4830953daebaSmrg#include <fontconfig/fontconfig.h>
4831a6844aabSmrg
4832ca08ab68Smrg   FcChar8 * FcStrPlus(const FcChar8 *s1, const FcChar8 *s2);
48332c393a42Smrg
48342c393a42SmrgDescription
48352c393a42Smrg
4836953daebaSmrg   This function allocates new storage and places the
4837953daebaSmrg   concatenation of s1 and s2 there, returning the new string.
48382c393a42Smrg
4839953daebaSmrgFcStrFree
48402c393a42Smrg
48412c393a42SmrgName
48422c393a42Smrg
4843953daebaSmrg   FcStrFree -- free a string
48442c393a42Smrg
48452c393a42SmrgSynopsis
48462c393a42Smrg
4847953daebaSmrg#include <fontconfig/fontconfig.h>
4848a6844aabSmrg
4849ca08ab68Smrg   void FcStrFree(FcChar8 *s);
48502c393a42Smrg
48512c393a42SmrgDescription
48522c393a42Smrg
4853953daebaSmrg   This is just a wrapper around free(3) which helps track memory
4854953daebaSmrg   usage of strings within the fontconfig library.
48552c393a42Smrg
4856953daebaSmrgFcStrDirname
48572c393a42Smrg
48582c393a42SmrgName
48592c393a42Smrg
4860953daebaSmrg   FcStrDirname -- directory part of filename
48612c393a42Smrg
48622c393a42SmrgSynopsis
48632c393a42Smrg
4864953daebaSmrg#include <fontconfig/fontconfig.h>
4865a6844aabSmrg
4866ca08ab68Smrg   FcChar8 * FcStrDirname(const FcChar8 *file);
48672c393a42Smrg
48682c393a42SmrgDescription
48692c393a42Smrg
4870953daebaSmrg   Returns the directory containing file. This is returned in
4871953daebaSmrg   newly allocated storage which should be freed when no longer
4872953daebaSmrg   needed.
48732c393a42Smrg
4874953daebaSmrgFcStrBasename
48752c393a42Smrg
48762c393a42SmrgName
48772c393a42Smrg
4878953daebaSmrg   FcStrBasename -- last component of filename
48792c393a42Smrg
48802c393a42SmrgSynopsis
48812c393a42Smrg
4882953daebaSmrg#include <fontconfig/fontconfig.h>
4883a6844aabSmrg
4884ca08ab68Smrg   FcChar8 * FcStrBasename(const FcChar8 *file);
48852c393a42Smrg
48862c393a42SmrgDescription
48872c393a42Smrg
4888953daebaSmrg   Returns the filename of file stripped of any leading directory
4889953daebaSmrg   names. This is returned in newly allocated storage which should
4890953daebaSmrg   be freed when no longer needed.
4891