]> git.wh0rd.org - fontconfig.git/blame - doc/fontconfig-devel.sgml
Documentation fixes
[fontconfig.git] / doc / fontconfig-devel.sgml
CommitLineData
22671e25 1<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
39381776
KP
2<!ENTITY fcatomic SYSTEM "fcatomic.sgml">
3<!ENTITY fcblanks SYSTEM "fcblanks.sgml">
dc7b6f1d 4<!ENTITY fccache SYSTEM "fccache.sgml">
22671e25 5<!ENTITY fccharset SYSTEM "fccharset.sgml">
39381776
KP
6<!ENTITY fcconfig SYSTEM "fcconfig.sgml">
7<!ENTITY fcconstant SYSTEM "fcconstant.sgml">
dc7b6f1d 8<!ENTITY fcdircache SYSTEM "fcdircache.sgml">
39381776 9<!ENTITY fcfile SYSTEM "fcfile.sgml">
bfc2dc3a 10<!ENTITY fcfontset SYSTEM "fcfontset.sgml">
caeea376 11<!ENTITY fcformat SYSTEM "fcformat.sgml">
39381776
KP
12<!ENTITY fcfreetype SYSTEM "fcfreetype.sgml">
13<!ENTITY fcinit SYSTEM "fcinit.sgml">
dc7b6f1d 14<!ENTITY fclangset SYSTEM "fclangset.sgml">
39381776 15<!ENTITY fcmatrix SYSTEM "fcmatrix.sgml">
bfc2dc3a
KP
16<!ENTITY fcobjectset SYSTEM "fcobjectset.sgml">
17<!ENTITY fcobjecttype SYSTEM "fcobjecttype.sgml">
39381776
KP
18<!ENTITY fcpattern SYSTEM "fcpattern.sgml">
19<!ENTITY fcstring SYSTEM "fcstring.sgml">
20<!ENTITY fcstrset SYSTEM "fcstrset.sgml">
21<!ENTITY fcvalue SYSTEM "fcvalue.sgml">
fddb839b 22<!ENTITY version SYSTEM "version.sgml">
22671e25 23]>
584ac89a 24<!--
e690fbb2 25 fontconfig/doc/local-fontconfig-devel.sgml
584ac89a 26
46b51147 27 Copyright © 2003 Keith Packard
584ac89a
KP
28
29 Permission to use, copy, modify, distribute, and sell this software and its
30 documentation for any purpose is hereby granted without fee, provided that
31 the above copyright notice appear in all copies and that both that
32 copyright notice and this permission notice appear in supporting
5aaf466d 33 documentation, and that the name of the author(s) not be used in
584ac89a 34 advertising or publicity pertaining to distribution of the software without
5aaf466d 35 specific, written prior permission. The authors make no
584ac89a
KP
36 representations about the suitability of this software for any purpose. It
37 is provided "as is" without express or implied warranty.
38
3074a73b 39 THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
584ac89a 40 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
3074a73b 41 EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
584ac89a
KP
42 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
43 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
44 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
45 PERFORMANCE OF THIS SOFTWARE.
46-->
47<article>
fddb839b 48 <title>Fontconfig Developers Reference, Version &version; </title>
22671e25
KP
49 <artheader>
50 <author>
51 <firstname>Keith</firstname>
52 <surname>Packard</surname>
53 <affiliation><orgname>
54 HP Cambridge Research Lab
55 </orgname></affiliation>
56 </author>
57 <authorinitials>KRP</authorinitials>
58 <productname>Fontconfig</productname>
fddb839b 59 <productnumber>&version;</productnumber>
22671e25
KP
60 <LegalNotice>
61 <simpara>
46b51147 62Copyright © 2002 Keith Packard
22671e25
KP
63 </simpara><simpara>
64Permission to use, copy, modify, distribute, and sell this software and its
65documentation for any purpose is hereby granted without fee, provided that
66the above copyright notice appear in all copies and that both that
67copyright notice and this permission notice appear in supporting
5aaf466d 68documentation, and that the name of the author(s) not be used in
22671e25 69advertising or publicity pertaining to distribution of the software without
5aaf466d 70specific, written prior permission. The authors make no
22671e25
KP
71representations about the suitability of this software for any purpose. It
72is provided "as is" without express or implied warranty.
73 </simpara><simpara>
3074a73b 74THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
22671e25 75INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
3074a73b 76EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
22671e25
KP
77CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
78DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
79TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
80PERFORMANCE OF THIS SOFTWARE.
81 </simpara>
82 </LegalNotice>
83 </artheader>
584ac89a
KP
84<sect1><title>DESCRIPTION</title>
85 <para>
86Fontconfig is a library designed to provide system-wide font configuration,
87customization and application access.
88 </para>
89</sect1>
90<sect1><title>FUNCTIONAL OVERVIEW</title>
91 <para>
92Fontconfig contains two essential modules, the configuration module which
93builds an internal configuration from XML files and the matching module
94which accepts font patterns and returns the nearest matching font.
95 </para>
96 <sect2><title>FONT CONFIGURATION</title>
97 <para>
98The configuration module consists of the FcConfig datatype, libexpat and
7baa20c7 99FcConfigParse which walks over an XML tree and amends a configuration with
584ac89a
KP
100data found within. From an external perspective, configuration of the
101library consists of generating a valid XML tree and feeding that to
102FcConfigParse. The only other mechanism provided to applications for
103changing the running configuration is to add fonts and directories to the
104list of application-provided font files.
105 </para><para>
106The intent is to make font configurations relatively static, and shared by
107as many applications as possible. It is hoped that this will lead to more
108stable font selection when passing names from one application to another.
109XML was chosen as a configuration file format because it provides a format
110which is easy for external agents to edit while retaining the correct
111structure and syntax.
112 </para><para>
113Font configuration is separate from font matching; applications needing to
114do their own matching can access the available fonts from the library and
115perform private matching. The intent is to permit applications to pick and
116choose appropriate functionality from the library instead of forcing them to
117choose between this library and a private configuration mechanism. The hope
118is that this will ensure that configuration of fonts for all applications
119can be centralized in one place. Centralizing font configuration will
120simplify and regularize font installation and customization.
121 </para>
122 </sect2>
123 <sect2>
124 <title>FONT PROPERTIES</title>
125 <para>
126While font patterns may contain essentially any properties, there are some
127well known properties with associated types. Fontconfig uses some of these
128properties for font matching and font completion. Others are provided as a
7baa20c7 129convenience for the application's rendering mechanism.
584ac89a 130 </para>
22671e25
KP
131 <programlisting>
132 Property Definitions
133
7baa20c7 134 Property C Preprocessor Symbol Type Description
22671e25 135 ----------------------------------------------------
7baa20c7
BH
136 family FC_FAMILY String Font family names
137 familylang FC_FAMILYLANG String Language corresponding to
138 each family name
139 style FC_STYLE String Font style. Overrides weight
140 and slant
141 stylelang FC_STYLELANG String Language corresponding to
142 each style name
143 fullname FC_FULLNAME String Font face full name where
144 different from family and
145 family + style
146 fullnamelang FC_FULLNAMELANG String Language corresponding to
147 each fullname
148 slant FC_SLANT Int Italic, oblique or roman
149 weight FC_WEIGHT Int Light, medium, demibold,
150 bold or black
151 size FC_SIZE Double Point size
152 width FC_WIDTH Int Condensed, normal or expanded
153 aspect FC_ASPECT Double Stretches glyphs horizontally
154 before hinting
155 pixelsize FC_PIXEL_SIZE Double Pixel size
156 spacing FC_SPACING Int Proportional, dual-width,
157 monospace or charcell
158 foundry FC_FOUNDRY String Font foundry name
159 antialias FC_ANTIALIAS Bool Whether glyphs can be
160 antialiased
161 hinting FC_HINTING Bool Whether the rasterizer should
162 use hinting
163 hintstyle FC_HINT_STYLE Int Automatic hinting style
164 verticallayout FC_VERTICAL_LAYOUT Bool Use vertical layout
165 autohint FC_AUTOHINT Bool Use autohinter instead of
166 normal hinter
167 globaladvance FC_GLOBAL_ADVANCE Bool Use font global advance data
168 file FC_FILE String The filename holding the font
169 index FC_INDEX Int The index of the font within
170 the file
171 ftface FC_FT_FACE FT_Face Use the specified FreeType
172 face object
173 rasterizer FC_RASTERIZER String Which rasterizer is in use
174 outline FC_OUTLINE Bool Whether the glyphs are outlines
175 scalable FC_SCALABLE Bool Whether glyphs can be scaled
176 scale FC_SCALE Double Scale factor for point->pixel
177 conversions
178 dpi FC_DPI Double Target dots per inch
179 rgba FC_RGBA Int unknown, rgb, bgr, vrgb,
180 vbgr, none - subpixel geometry
181 lcdfilter FC_LCD_FILTER Int Type of LCD filter
182 minspace FC_MINSPACE Bool Eliminate leading from line
183 spacing
184 charset FC_CHARSET CharSet Unicode chars encoded by
185 the font
186 lang FC_LANG LangSet Set of RFC-3066-style
187 languages this font supports
188 fontversion FC_FONTVERSION Int Version number of the font
189 capability FC_CAPABILITY String List of layout capabilities in
190 the font
191 embolden FC_EMBOLDEN Bool Rasterizer should
192 synthetically embolden the font
22671e25 193 </programlisting>
584ac89a 194 </sect2>
22dc6fc6 195</sect1>
39381776 196<sect1><title>Datatypes</title>
584ac89a 197 <para>
7baa20c7 198Fontconfig uses abstract data types to hide internal implementation details
584ac89a
KP
199for most data structures. A few structures are exposed where appropriate.
200 </para>
39381776 201 <sect2><title>FcChar8, FcChar16, FcChar32, FcBool</title>
22671e25 202 <para>
7baa20c7 203These are primitive data types; the FcChar* types hold precisely the number
584ac89a 204of bits stated (if supported by the C implementation). FcBool holds
7baa20c7 205one of two C preprocessor symbols: FcFalse or FcTrue.
22671e25 206 </para>
39381776
KP
207 </sect2>
208 <sect2><title>FcMatrix</title>
584ac89a
KP
209 <para>
210An FcMatrix holds an affine transformation, usually used to reshape glyphs.
211A small set of matrix operations are provided to manipulate these.
212 <programlisting>
22671e25
KP
213 typedef struct _FcMatrix {
214 double xx, xy, yx, yy;
215 } FcMatrix;
584ac89a
KP
216 </programlisting>
217 </para>
39381776
KP
218 </sect2>
219 <sect2><title>FcCharSet</title>
584ac89a 220 <para>
7baa20c7 221An FcCharSet is an abstract type that holds the set of encoded Unicode chars
584ac89a
KP
222in a font. Operations to build and compare these sets are provided.
223 </para>
39381776 224 </sect2>
a190678e
KP
225 <sect2><title>FcLangSet</title>
226 <para>
227An FcLangSet is an abstract type that holds the set of languages supported
228by a font. Operations to build and compare these sets are provided. These
229are computed for a font based on orthographic information built into the
230fontconfig library. Fontconfig has orthographies for all of the ISO 639-1
231languages except for MS, NA, PA, PS, QU, RN, RW, SD, SG, SN, SU and ZA. If
232you have orthographic information for any of these languages, please submit
233them.
234 </para>
235 </sect2>
236 <sect2><title>FcLangResult</title>
237 <para>
238An FcLangResult is an enumeration used to return the results of comparing
239two language strings or FcLangSet objects. FcLangEqual means the
240objects match language and territory. FcLangDifferentTerritory means
241the objects match in language but differ in territory.
242FcLangDifferentLang means the objects differ in language.
243 </para>
244 </sect2>
39381776 245 <sect2><title>FcType</title>
584ac89a
KP
246 <para>
247Tags the kind of data stored in an FcValue.
22dc6fc6 248 </para>
39381776
KP
249 </sect2>
250 <sect2><title>FcValue</title>
584ac89a
KP
251 <para>
252An FcValue object holds a single value with one of a number of different
253types. The 'type' tag indicates which member is valid.
254 <programlisting>
22671e25
KP
255 typedef struct _FcValue {
256 FcType type;
257 union {
258 const FcChar8 *s;
259 int i;
260 FcBool b;
261 double d;
262 const FcMatrix *m;
263 const FcCharSet *c;
a190678e
KP
264 void *f;
265 const FcLangSet *l;
22671e25
KP
266 } u;
267 } FcValue;
268 </programlisting>
269 <programlisting>
270 FcValue Members
271
272 Type Union member Datatype
273 --------------------------------
274 FcTypeVoid (none) (none)
275 FcTypeInteger i int
276 FcTypeDouble d double
f2772d6b 277 FcTypeString s FcChar8 *
22671e25
KP
278 FcTypeBool b b
279 FcTypeMatrix m FcMatrix *
280 FcTypeCharSet c FcCharSet *
a190678e
KP
281 FcTypeFTFace f void * (FT_Face)
282 FcTypeLangSet l FcLangSet *
584ac89a 283 </programlisting>
22dc6fc6 284 </para>
39381776
KP
285 </sect2>
286 <sect2><title>FcPattern</title>
584ac89a
KP
287 <para>
288holds a set of names with associated value lists; each name refers to a
289property of a font. FcPatterns are used as inputs to the matching code as
290well as holding information about specific fonts. Each property can hold
291one or more values; conventionally all of the same type, although the
292interface doesn't demand that.
22dc6fc6 293 </para>
39381776
KP
294 </sect2>
295 <sect2><title>FcFontSet</title>
584ac89a
KP
296 <para>
297 <programlisting>
22671e25
KP
298 typedef struct _FcFontSet {
299 int nfont;
300 int sfont;
301 FcPattern **fonts;
302 } FcFontSet;
584ac89a
KP
303 </programlisting>
304An FcFontSet contains a list of FcPatterns. Internally fontconfig uses this
305data structure to hold sets of fonts. Externally, fontconfig returns the
306results of listing fonts in this format. 'nfont' holds the number of
307patterns in the 'fonts' array; 'sfont' is used to indicate the size of that
308array.
309 </para>
39381776
KP
310 </sect2>
311 <sect2><title>FcStrSet, FcStrList</title>
584ac89a
KP
312 <para>
313FcStrSet holds a list of strings that can be appended to and enumerated.
314Its unique characteristic is that the enumeration works even while strings
315are appended during enumeration. FcStrList is used during enumeration to
316safely and correctly walk the list of strings even while that list is edited
317in the middle of enumeration.
318 </para>
39381776
KP
319 </sect2>
320 <sect2><title>FcObjectSet</title>
584ac89a
KP
321 <para>
322 <programlisting>
22671e25
KP
323 typedef struct _FcObjectSet {
324 int nobject;
325 int sobject;
326 const char **objects;
327 } FcObjectSet;
584ac89a
KP
328 </programlisting>
329holds a set of names and is used to specify which fields from fonts are
330placed in the the list of returned patterns when listing fonts.
331 </para>
39381776
KP
332 </sect2>
333 <sect2><title>FcObjectType</title>
584ac89a
KP
334 <para>
335 <programlisting>
22671e25
KP
336 typedef struct _FcObjectType {
337 const char *object;
338 FcType type;
339 } FcObjectType;
584ac89a
KP
340 </programlisting>
341marks the type of a pattern element generated when parsing font names.
342Applications can add new object types so that font names may contain the new
343elements.
344 </para>
39381776
KP
345 </sect2>
346 <sect2><title>FcConstant</title>
584ac89a
KP
347 <para>
348 <programlisting>
22671e25
KP
349 typedef struct _FcConstant {
350 const FcChar8 *name;
351 const char *object;
352 int value;
353 } FcConstant;
584ac89a
KP
354 </programlisting>
355Provides for symbolic constants for new pattern elements. When 'name' is
356seen in a font name, an 'object' element is created with value 'value'.
357 </para>
39381776
KP
358 </sect2>
359 <sect2><title>FcBlanks</title>
584ac89a
KP
360 <para>
361holds a list of Unicode chars which are expected to be blank; unexpectedly
362blank chars are assumed to be invalid and are elided from the charset
363associated with the font.
364 </para>
39381776
KP
365 </sect2>
366 <sect2><title>FcFileCache</title>
584ac89a
KP
367 <para>
368holds the per-user cache information for use while loading the font
369database. This is built automatically for the current configuration when
370that is loaded. Applications must always pass '0' when one is requested.
371 </para>
39381776
KP
372 </sect2>
373 <sect2><title>FcConfig</title>
584ac89a
KP
374 <para>
375holds a complete configuration of the library; there is one default
376configuration, other can be constructed from XML data structures. All
377public entry points that need global data can take an optional FcConfig*
378argument; passing 0 uses the default configuration. FcConfig objects hold two
379sets of fonts, the first contains those specified by the configuration, the
380second set holds those added by the application at run-time. Interfaces
7baa20c7 381that need to reference a particular set use one of the FcSetName enumerated
584ac89a
KP
382values.
383 </para>
39381776
KP
384 </sect2>
385 <sect2><title>FcSetName</title>
584ac89a
KP
386 <para>
387Specifies one of the two sets of fonts available in a configuration;
388FcSetSystem for those fonts specified in the configuration and
389FcSetApplication which holds fonts provided by the application.
390 </para>
39381776
KP
391 </sect2>
392 <sect2><title>FcResult</title>
584ac89a
KP
393 <para>
394Used as a return type for functions manipulating FcPattern objects.
22671e25
KP
395 <programlisting>
396 FcResult Values
397 Result Code Meaning
398 -----------------------------------------------------------
399 FcResultMatch Object exists with the specified ID
400 FcResultNoMatch Object doesn't exist at all
401 FcResultTypeMismatch Object exists, but the type doesn't match
402 FcResultNoId Object exists, but has fewer values
403 than specified
7baa20c7 404 FcResultOutOfMemory malloc failed
22671e25 405 </programlisting>
584ac89a 406 </para>
39381776
KP
407 </sect2>
408 <sect2><title>FcAtomic</title>
584ac89a 409 <para>
7baa20c7 410Used for locking access to configuration files. Provides a safe way to update
584ac89a
KP
411configuration files.
412 </para>
39381776 413 </sect2>
dc7b6f1d
KP
414 <sect2><title>FcCache</title>
415 <para>
416Holds information about the fonts contained in a single directory. Normal
417applications need not worry about this as caches for font access are
418automatically managed by the library. Applications dealing with cache
419management may want to use some of these objects in their work, however the
420included 'fc-cache' program generally suffices for all of that.
421 </para>
422 </sect2>
584ac89a
KP
423</sect1>
424<sect1><title>FUNCTIONS</title>
425 <para>
7baa20c7 426These are grouped by functionality, often using the main data type being
39381776 427manipulated.
584ac89a 428 </para>
39381776 429 <sect2><title>Initialization</title>
584ac89a 430 <para>
39381776 431These functions provide some control over how the library is initialized.
584ac89a 432 </para>
39381776 433 &fcinit;
584ac89a
KP
434 </sect2>
435 <sect2><title>FcPattern</title>
436 <para>
437An FcPattern is an opaque type that holds both patterns to match against the
438available fonts, as well as the information about each font.
439 </para>
22671e25 440 &fcpattern;
caeea376 441 &fcformat;
584ac89a
KP
442 </sect2>
443 <sect2><title>FcFontSet</title>
444 <para>
445An FcFontSet simply holds a list of patterns; these are used to return the
446results of listing available fonts.
447 </para>
bfc2dc3a
KP
448 &fcfontset;
449 </sect2>
584ac89a
KP
450 <sect2><title>FcObjectSet</title>
451 <para>
452An FcObjectSet holds a list of pattern property names; it is used to
7baa20c7 453indicate which properties are to be returned in the patterns from
584ac89a
KP
454FcFontList.
455 </para>
bfc2dc3a
KP
456 &fcobjectset;
457 </sect2>
39381776
KP
458 <sect2><title>FreeType specific functions</title>
459 <para>
460While the fontconfig library doesn't insist that FreeType be used as the
461rasterization mechanism for fonts, it does provide some convenience
462functions.
463 </para>
464 &fcfreetype;
465 </sect2>
466 <sect2><title>FcValue</title>
467 <para>
468FcValue is a structure containing a type tag and a union of all possible
469datatypes. The tag is an enum of type
470<emphasis>FcType</emphasis>
471and is intended to provide a measure of run-time
472typechecking, although that depends on careful programming.
473 </para>
474 &fcvalue;
475 </sect2>
476 <sect2><title>FcCharSet</title>
477 <para>
7baa20c7 478An FcCharSet is a boolean array indicating a set of Unicode chars. Those
39381776
KP
479associated with a font are marked constant and cannot be edited.
480FcCharSets may be reference counted internally to reduce memory consumption;
481this may be visible to applications as the result of FcCharSetCopy may
482return it's argument, and that CharSet may remain unmodifiable.
483 </para>
484 &fccharset;
485 </sect2>
dc7b6f1d
KP
486 <sect2><title>FcLangSet</title>
487 <para>
488An FcLangSet is a set of language names (each of which include language and
489an optional territory). They are used when selecting fonts to indicate which
490languages the fonts need to support. Each font is marked, using language
491orthography information built into fontconfig, with the set of supported
492languages.
493 </para>
494 &fclangset;
495 </sect2>
39381776
KP
496 <sect2><title>FcMatrix</title>
497 <para>
498FcMatrix structures hold an affine transformation in matrix form.
499 </para>
500 &fcmatrix;
501 </sect2>
502 <sect2><title>FcConfig</title>
503 <para>
504An FcConfig object holds the internal representation of a configuration.
505There is a default configuration which applications may use by passing 0 to
506any function using the data within an FcConfig.
507 </para>
508 &fcconfig;
509 </sect2>
584ac89a
KP
510 <sect2><title>FcObjectType</title>
511 <para>
7baa20c7 512Provides for application-specified font name object types so that new
584ac89a
KP
513pattern elements can be generated from font names.
514 </para>
bfc2dc3a
KP
515 &fcobjecttype;
516 </sect2>
584ac89a
KP
517 <sect2><title>FcConstant</title>
518 <para>
519Provides for application-specified symbolic constants for font names.
520 </para>
bfc2dc3a
KP
521 &fcconstant;
522 </sect2>
584ac89a
KP
523 <sect2><title>FcBlanks</title>
524 <para>
525An FcBlanks object holds a list of Unicode chars which are expected to
526be blank when drawn. When scanning new fonts, any glyphs which are
527empty and not in this list will be assumed to be broken and not placed in
528the FcCharSet associated with the font. This provides a significantly more
529accurate CharSet for applications.
530 </para>
bfc2dc3a
KP
531 &fcblanks;
532 </sect2>
584ac89a
KP
533 <sect2><title>FcAtomic</title>
534 <para>
7baa20c7
BH
535These functions provide a safe way to update configuration files, allowing ongoing
536reading of the old configuration file while locked for writing and ensuring that a
537consistent and complete version of the configuration file is always available.
584ac89a 538 </para>
39381776
KP
539 &fcatomic;
540 </sect2>
584ac89a 541 <sect2><title>File and Directory routines</title>
39381776
KP
542 <para>
543These routines work with font files and directories, including font
544directory cache files.
8c87b429 545 </para>
39381776 546 &fcfile;
dc7b6f1d
KP
547 &fcdircache;
548 </sect2>
549 <sect2><title>FcCache routines</title>
550 <para>
551These routines work with font directory caches, accessing their contents in
552limited ways. It is not expected that normal applications will need to use
553these functions.
554 </para>
555 &fccache;
39381776 556 </sect2>
584ac89a
KP
557 <sect2><title>FcStrSet and FcStrList</title>
558 <para>
559A data structure for enumerating strings, used to list directories while
560scanning the configuration as directories are added while scanning.
561 </para>
39381776
KP
562 &fcstrset;
563 </sect2>
584ac89a 564 <sect2><title>String utilities</title>
39381776
KP
565 <para>
566Fontconfig manipulates many UTF-8 strings represented with the FcChar8 type.
567These functions are exposed to help applications deal with these UTF-8
568strings in a locale-insensitive manner.
569 </para>
570 &fcstring;
571 </sect2>
584ac89a
KP
572</sect1>
573</article>