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