annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/fontconfig/fontconfig.h @ 69:33d812a61356

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 17:55:14 -0400
parents
children
rev   line source
jpayne@69 1 /*
jpayne@69 2 * fontconfig/fontconfig/fontconfig.h
jpayne@69 3 *
jpayne@69 4 * Copyright © 2001 Keith Packard
jpayne@69 5 *
jpayne@69 6 * Permission to use, copy, modify, distribute, and sell this software and its
jpayne@69 7 * documentation for any purpose is hereby granted without fee, provided that
jpayne@69 8 * the above copyright notice appear in all copies and that both that
jpayne@69 9 * copyright notice and this permission notice appear in supporting
jpayne@69 10 * documentation, and that the name of the author(s) not be used in
jpayne@69 11 * advertising or publicity pertaining to distribution of the software without
jpayne@69 12 * specific, written prior permission. The authors make no
jpayne@69 13 * representations about the suitability of this software for any purpose. It
jpayne@69 14 * is provided "as is" without express or implied warranty.
jpayne@69 15 *
jpayne@69 16 * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
jpayne@69 17 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
jpayne@69 18 * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
jpayne@69 19 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
jpayne@69 20 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
jpayne@69 21 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
jpayne@69 22 * PERFORMANCE OF THIS SOFTWARE.
jpayne@69 23 */
jpayne@69 24
jpayne@69 25 #ifndef _FONTCONFIG_H_
jpayne@69 26 #define _FONTCONFIG_H_
jpayne@69 27
jpayne@69 28 #include <sys/types.h>
jpayne@69 29 #include <sys/stat.h>
jpayne@69 30 #include <stdarg.h>
jpayne@69 31 #include <limits.h>
jpayne@69 32
jpayne@69 33 #if defined(__GNUC__) && (__GNUC__ >= 4)
jpayne@69 34 #define FC_ATTRIBUTE_SENTINEL(x) __attribute__((__sentinel__(0)))
jpayne@69 35 #else
jpayne@69 36 #define FC_ATTRIBUTE_SENTINEL(x)
jpayne@69 37 #endif
jpayne@69 38
jpayne@69 39 #ifndef FcPublic
jpayne@69 40 #define FcPublic
jpayne@69 41 #endif
jpayne@69 42
jpayne@69 43 typedef unsigned char FcChar8;
jpayne@69 44 typedef unsigned short FcChar16;
jpayne@69 45 typedef unsigned int FcChar32;
jpayne@69 46 typedef int FcBool;
jpayne@69 47
jpayne@69 48 /*
jpayne@69 49 * Current Fontconfig version number. This same number
jpayne@69 50 * must appear in the fontconfig configure.in file. Yes,
jpayne@69 51 * it'a a pain to synchronize version numbers like this.
jpayne@69 52 */
jpayne@69 53
jpayne@69 54 #define FC_MAJOR 2
jpayne@69 55 #define FC_MINOR 14
jpayne@69 56 #define FC_REVISION 2
jpayne@69 57
jpayne@69 58 #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
jpayne@69 59
jpayne@69 60 /*
jpayne@69 61 * Current font cache file format version
jpayne@69 62 * This is appended to the cache files so that multiple
jpayne@69 63 * versions of the library will peacefully coexist
jpayne@69 64 *
jpayne@69 65 * Change this value whenever the disk format for the cache file
jpayne@69 66 * changes in any non-compatible way. Try to avoid such changes as
jpayne@69 67 * it means multiple copies of the font information.
jpayne@69 68 */
jpayne@69 69
jpayne@69 70 #define FC_CACHE_VERSION_NUMBER 8
jpayne@69 71 #define _FC_STRINGIFY_(s) #s
jpayne@69 72 #define _FC_STRINGIFY(s) _FC_STRINGIFY_(s)
jpayne@69 73 #define FC_CACHE_VERSION _FC_STRINGIFY(FC_CACHE_VERSION_NUMBER)
jpayne@69 74
jpayne@69 75 #define FcFalse 0
jpayne@69 76 #define FcTrue 1
jpayne@69 77 #define FcDontCare 2
jpayne@69 78
jpayne@69 79 #define FC_FAMILY "family" /* String */
jpayne@69 80 #define FC_STYLE "style" /* String */
jpayne@69 81 #define FC_SLANT "slant" /* Int */
jpayne@69 82 #define FC_WEIGHT "weight" /* Int */
jpayne@69 83 #define FC_SIZE "size" /* Range (double) */
jpayne@69 84 #define FC_ASPECT "aspect" /* Double */
jpayne@69 85 #define FC_PIXEL_SIZE "pixelsize" /* Double */
jpayne@69 86 #define FC_SPACING "spacing" /* Int */
jpayne@69 87 #define FC_FOUNDRY "foundry" /* String */
jpayne@69 88 #define FC_ANTIALIAS "antialias" /* Bool (depends) */
jpayne@69 89 #define FC_HINTING "hinting" /* Bool (true) */
jpayne@69 90 #define FC_HINT_STYLE "hintstyle" /* Int */
jpayne@69 91 #define FC_VERTICAL_LAYOUT "verticallayout" /* Bool (false) */
jpayne@69 92 #define FC_AUTOHINT "autohint" /* Bool (false) */
jpayne@69 93 /* FC_GLOBAL_ADVANCE is deprecated. this is simply ignored on freetype 2.4.5 or later */
jpayne@69 94 #define FC_GLOBAL_ADVANCE "globaladvance" /* Bool (true) */
jpayne@69 95 #define FC_WIDTH "width" /* Int */
jpayne@69 96 #define FC_FILE "file" /* String */
jpayne@69 97 #define FC_INDEX "index" /* Int */
jpayne@69 98 #define FC_FT_FACE "ftface" /* FT_Face */
jpayne@69 99 #define FC_RASTERIZER "rasterizer" /* String (deprecated) */
jpayne@69 100 #define FC_OUTLINE "outline" /* Bool */
jpayne@69 101 #define FC_SCALABLE "scalable" /* Bool */
jpayne@69 102 #define FC_COLOR "color" /* Bool */
jpayne@69 103 #define FC_VARIABLE "variable" /* Bool */
jpayne@69 104 #define FC_SCALE "scale" /* double (deprecated) */
jpayne@69 105 #define FC_SYMBOL "symbol" /* Bool */
jpayne@69 106 #define FC_DPI "dpi" /* double */
jpayne@69 107 #define FC_RGBA "rgba" /* Int */
jpayne@69 108 #define FC_MINSPACE "minspace" /* Bool use minimum line spacing */
jpayne@69 109 #define FC_SOURCE "source" /* String (deprecated) */
jpayne@69 110 #define FC_CHARSET "charset" /* CharSet */
jpayne@69 111 #define FC_LANG "lang" /* LangSet Set of RFC 3066 langs */
jpayne@69 112 #define FC_FONTVERSION "fontversion" /* Int from 'head' table */
jpayne@69 113 #define FC_FULLNAME "fullname" /* String */
jpayne@69 114 #define FC_FAMILYLANG "familylang" /* String RFC 3066 langs */
jpayne@69 115 #define FC_STYLELANG "stylelang" /* String RFC 3066 langs */
jpayne@69 116 #define FC_FULLNAMELANG "fullnamelang" /* String RFC 3066 langs */
jpayne@69 117 #define FC_CAPABILITY "capability" /* String */
jpayne@69 118 #define FC_FONTFORMAT "fontformat" /* String */
jpayne@69 119 #define FC_EMBOLDEN "embolden" /* Bool - true if emboldening needed*/
jpayne@69 120 #define FC_EMBEDDED_BITMAP "embeddedbitmap" /* Bool - true to enable embedded bitmaps */
jpayne@69 121 #define FC_DECORATIVE "decorative" /* Bool - true if style is a decorative variant */
jpayne@69 122 #define FC_LCD_FILTER "lcdfilter" /* Int */
jpayne@69 123 #define FC_FONT_FEATURES "fontfeatures" /* String */
jpayne@69 124 #define FC_FONT_VARIATIONS "fontvariations" /* String */
jpayne@69 125 #define FC_NAMELANG "namelang" /* String RFC 3866 langs */
jpayne@69 126 #define FC_PRGNAME "prgname" /* String */
jpayne@69 127 #define FC_HASH "hash" /* String (deprecated) */
jpayne@69 128 #define FC_POSTSCRIPT_NAME "postscriptname" /* String */
jpayne@69 129 #define FC_FONT_HAS_HINT "fonthashint" /* Bool - true if font has hinting */
jpayne@69 130 #define FC_ORDER "order" /* Integer */
jpayne@69 131 #define FC_DESKTOP_NAME "desktop" /* String */
jpayne@69 132
jpayne@69 133 #define FC_CACHE_SUFFIX ".cache-" FC_CACHE_VERSION
jpayne@69 134 #define FC_DIR_CACHE_FILE "fonts.cache-" FC_CACHE_VERSION
jpayne@69 135 #define FC_USER_CACHE_FILE ".fonts.cache-" FC_CACHE_VERSION
jpayne@69 136
jpayne@69 137 /* Adjust outline rasterizer */
jpayne@69 138 #define FC_CHARWIDTH "charwidth" /* Int */
jpayne@69 139 #define FC_CHAR_WIDTH FC_CHARWIDTH
jpayne@69 140 #define FC_CHAR_HEIGHT "charheight"/* Int */
jpayne@69 141 #define FC_MATRIX "matrix" /* FcMatrix */
jpayne@69 142
jpayne@69 143 #define FC_WEIGHT_THIN 0
jpayne@69 144 #define FC_WEIGHT_EXTRALIGHT 40
jpayne@69 145 #define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT
jpayne@69 146 #define FC_WEIGHT_LIGHT 50
jpayne@69 147 #define FC_WEIGHT_DEMILIGHT 55
jpayne@69 148 #define FC_WEIGHT_SEMILIGHT FC_WEIGHT_DEMILIGHT
jpayne@69 149 #define FC_WEIGHT_BOOK 75
jpayne@69 150 #define FC_WEIGHT_REGULAR 80
jpayne@69 151 #define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR
jpayne@69 152 #define FC_WEIGHT_MEDIUM 100
jpayne@69 153 #define FC_WEIGHT_DEMIBOLD 180
jpayne@69 154 #define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD
jpayne@69 155 #define FC_WEIGHT_BOLD 200
jpayne@69 156 #define FC_WEIGHT_EXTRABOLD 205
jpayne@69 157 #define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD
jpayne@69 158 #define FC_WEIGHT_BLACK 210
jpayne@69 159 #define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK
jpayne@69 160 #define FC_WEIGHT_EXTRABLACK 215
jpayne@69 161 #define FC_WEIGHT_ULTRABLACK FC_WEIGHT_EXTRABLACK
jpayne@69 162
jpayne@69 163 #define FC_SLANT_ROMAN 0
jpayne@69 164 #define FC_SLANT_ITALIC 100
jpayne@69 165 #define FC_SLANT_OBLIQUE 110
jpayne@69 166
jpayne@69 167 #define FC_WIDTH_ULTRACONDENSED 50
jpayne@69 168 #define FC_WIDTH_EXTRACONDENSED 63
jpayne@69 169 #define FC_WIDTH_CONDENSED 75
jpayne@69 170 #define FC_WIDTH_SEMICONDENSED 87
jpayne@69 171 #define FC_WIDTH_NORMAL 100
jpayne@69 172 #define FC_WIDTH_SEMIEXPANDED 113
jpayne@69 173 #define FC_WIDTH_EXPANDED 125
jpayne@69 174 #define FC_WIDTH_EXTRAEXPANDED 150
jpayne@69 175 #define FC_WIDTH_ULTRAEXPANDED 200
jpayne@69 176
jpayne@69 177 #define FC_PROPORTIONAL 0
jpayne@69 178 #define FC_DUAL 90
jpayne@69 179 #define FC_MONO 100
jpayne@69 180 #define FC_CHARCELL 110
jpayne@69 181
jpayne@69 182 /* sub-pixel order */
jpayne@69 183 #define FC_RGBA_UNKNOWN 0
jpayne@69 184 #define FC_RGBA_RGB 1
jpayne@69 185 #define FC_RGBA_BGR 2
jpayne@69 186 #define FC_RGBA_VRGB 3
jpayne@69 187 #define FC_RGBA_VBGR 4
jpayne@69 188 #define FC_RGBA_NONE 5
jpayne@69 189
jpayne@69 190 /* hinting style */
jpayne@69 191 #define FC_HINT_NONE 0
jpayne@69 192 #define FC_HINT_SLIGHT 1
jpayne@69 193 #define FC_HINT_MEDIUM 2
jpayne@69 194 #define FC_HINT_FULL 3
jpayne@69 195
jpayne@69 196 /* LCD filter */
jpayne@69 197 #define FC_LCD_NONE 0
jpayne@69 198 #define FC_LCD_DEFAULT 1
jpayne@69 199 #define FC_LCD_LIGHT 2
jpayne@69 200 #define FC_LCD_LEGACY 3
jpayne@69 201
jpayne@69 202 typedef enum _FcType {
jpayne@69 203 FcTypeUnknown = -1,
jpayne@69 204 FcTypeVoid,
jpayne@69 205 FcTypeInteger,
jpayne@69 206 FcTypeDouble,
jpayne@69 207 FcTypeString,
jpayne@69 208 FcTypeBool,
jpayne@69 209 FcTypeMatrix,
jpayne@69 210 FcTypeCharSet,
jpayne@69 211 FcTypeFTFace,
jpayne@69 212 FcTypeLangSet,
jpayne@69 213 FcTypeRange
jpayne@69 214 } FcType;
jpayne@69 215
jpayne@69 216 typedef struct _FcMatrix {
jpayne@69 217 double xx, xy, yx, yy;
jpayne@69 218 } FcMatrix;
jpayne@69 219
jpayne@69 220 #define FcMatrixInit(m) ((m)->xx = (m)->yy = 1, \
jpayne@69 221 (m)->xy = (m)->yx = 0)
jpayne@69 222
jpayne@69 223 /*
jpayne@69 224 * A data structure to represent the available glyphs in a font.
jpayne@69 225 * This is represented as a sparse boolean btree.
jpayne@69 226 */
jpayne@69 227
jpayne@69 228 typedef struct _FcCharSet FcCharSet;
jpayne@69 229
jpayne@69 230 typedef struct _FcObjectType {
jpayne@69 231 char *object;
jpayne@69 232 FcType type;
jpayne@69 233 } FcObjectType;
jpayne@69 234
jpayne@69 235 typedef struct _FcConstant {
jpayne@69 236 const FcChar8 *name;
jpayne@69 237 const char *object;
jpayne@69 238 int value;
jpayne@69 239 } FcConstant;
jpayne@69 240
jpayne@69 241 typedef enum _FcResult {
jpayne@69 242 FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId,
jpayne@69 243 FcResultOutOfMemory
jpayne@69 244 } FcResult;
jpayne@69 245
jpayne@69 246 typedef enum _FcValueBinding {
jpayne@69 247 FcValueBindingWeak, FcValueBindingStrong, FcValueBindingSame,
jpayne@69 248 /* to make sure sizeof (FcValueBinding) == 4 even with -fshort-enums */
jpayne@69 249 FcValueBindingEnd = INT_MAX
jpayne@69 250 } FcValueBinding;
jpayne@69 251
jpayne@69 252 typedef struct _FcPattern FcPattern;
jpayne@69 253
jpayne@69 254 typedef struct _FcPatternIter {
jpayne@69 255 void *dummy1;
jpayne@69 256 void *dummy2;
jpayne@69 257 } FcPatternIter;
jpayne@69 258
jpayne@69 259 typedef struct _FcLangSet FcLangSet;
jpayne@69 260
jpayne@69 261 typedef struct _FcRange FcRange;
jpayne@69 262
jpayne@69 263 typedef struct _FcValue {
jpayne@69 264 FcType type;
jpayne@69 265 union {
jpayne@69 266 const FcChar8 *s;
jpayne@69 267 int i;
jpayne@69 268 FcBool b;
jpayne@69 269 double d;
jpayne@69 270 const FcMatrix *m;
jpayne@69 271 const FcCharSet *c;
jpayne@69 272 void *f;
jpayne@69 273 const FcLangSet *l;
jpayne@69 274 const FcRange *r;
jpayne@69 275 } u;
jpayne@69 276 } FcValue;
jpayne@69 277
jpayne@69 278 typedef struct _FcFontSet {
jpayne@69 279 int nfont;
jpayne@69 280 int sfont;
jpayne@69 281 FcPattern **fonts;
jpayne@69 282 } FcFontSet;
jpayne@69 283
jpayne@69 284 typedef struct _FcObjectSet {
jpayne@69 285 int nobject;
jpayne@69 286 int sobject;
jpayne@69 287 const char **objects;
jpayne@69 288 } FcObjectSet;
jpayne@69 289
jpayne@69 290 typedef enum _FcMatchKind {
jpayne@69 291 FcMatchPattern, FcMatchFont, FcMatchScan,
jpayne@69 292 FcMatchKindEnd,
jpayne@69 293 FcMatchKindBegin = FcMatchPattern
jpayne@69 294 } FcMatchKind;
jpayne@69 295
jpayne@69 296 typedef enum _FcLangResult {
jpayne@69 297 FcLangEqual = 0,
jpayne@69 298 FcLangDifferentCountry = 1,
jpayne@69 299 FcLangDifferentTerritory = 1,
jpayne@69 300 FcLangDifferentLang = 2
jpayne@69 301 } FcLangResult;
jpayne@69 302
jpayne@69 303 typedef enum _FcSetName {
jpayne@69 304 FcSetSystem = 0,
jpayne@69 305 FcSetApplication = 1
jpayne@69 306 } FcSetName;
jpayne@69 307
jpayne@69 308 typedef struct _FcConfigFileInfoIter {
jpayne@69 309 void *dummy1;
jpayne@69 310 void *dummy2;
jpayne@69 311 void *dummy3;
jpayne@69 312 } FcConfigFileInfoIter;
jpayne@69 313
jpayne@69 314 typedef struct _FcAtomic FcAtomic;
jpayne@69 315
jpayne@69 316 #if defined(__cplusplus) || defined(c_plusplus) /* for C++ V2.0 */
jpayne@69 317 #define _FCFUNCPROTOBEGIN extern "C" { /* do not leave open across includes */
jpayne@69 318 #define _FCFUNCPROTOEND }
jpayne@69 319 #else
jpayne@69 320 #define _FCFUNCPROTOBEGIN
jpayne@69 321 #define _FCFUNCPROTOEND
jpayne@69 322 #endif
jpayne@69 323
jpayne@69 324 typedef enum { FcEndianBig, FcEndianLittle } FcEndian;
jpayne@69 325
jpayne@69 326 typedef struct _FcConfig FcConfig;
jpayne@69 327
jpayne@69 328 typedef struct _FcGlobalCache FcFileCache;
jpayne@69 329
jpayne@69 330 typedef struct _FcBlanks FcBlanks;
jpayne@69 331
jpayne@69 332 typedef struct _FcStrList FcStrList;
jpayne@69 333
jpayne@69 334 typedef struct _FcStrSet FcStrSet;
jpayne@69 335
jpayne@69 336 typedef struct _FcCache FcCache;
jpayne@69 337
jpayne@69 338 _FCFUNCPROTOBEGIN
jpayne@69 339
jpayne@69 340 /* fcblanks.c */
jpayne@69 341 FcPublic FcBlanks *
jpayne@69 342 FcBlanksCreate (void);
jpayne@69 343
jpayne@69 344 FcPublic void
jpayne@69 345 FcBlanksDestroy (FcBlanks *b);
jpayne@69 346
jpayne@69 347 FcPublic FcBool
jpayne@69 348 FcBlanksAdd (FcBlanks *b, FcChar32 ucs4);
jpayne@69 349
jpayne@69 350 FcPublic FcBool
jpayne@69 351 FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4);
jpayne@69 352
jpayne@69 353 /* fccache.c */
jpayne@69 354
jpayne@69 355 FcPublic const FcChar8 *
jpayne@69 356 FcCacheDir(const FcCache *c);
jpayne@69 357
jpayne@69 358 FcPublic FcFontSet *
jpayne@69 359 FcCacheCopySet(const FcCache *c);
jpayne@69 360
jpayne@69 361 FcPublic const FcChar8 *
jpayne@69 362 FcCacheSubdir (const FcCache *c, int i);
jpayne@69 363
jpayne@69 364 FcPublic int
jpayne@69 365 FcCacheNumSubdir (const FcCache *c);
jpayne@69 366
jpayne@69 367 FcPublic int
jpayne@69 368 FcCacheNumFont (const FcCache *c);
jpayne@69 369
jpayne@69 370 FcPublic FcBool
jpayne@69 371 FcDirCacheUnlink (const FcChar8 *dir, FcConfig *config);
jpayne@69 372
jpayne@69 373 FcPublic FcBool
jpayne@69 374 FcDirCacheValid (const FcChar8 *cache_file);
jpayne@69 375
jpayne@69 376 FcPublic FcBool
jpayne@69 377 FcDirCacheClean (const FcChar8 *cache_dir, FcBool verbose);
jpayne@69 378
jpayne@69 379 FcPublic void
jpayne@69 380 FcCacheCreateTagFile (FcConfig *config);
jpayne@69 381
jpayne@69 382 FcPublic FcBool
jpayne@69 383 FcDirCacheCreateUUID (FcChar8 *dir,
jpayne@69 384 FcBool force,
jpayne@69 385 FcConfig *config);
jpayne@69 386
jpayne@69 387 FcPublic FcBool
jpayne@69 388 FcDirCacheDeleteUUID (const FcChar8 *dir,
jpayne@69 389 FcConfig *config);
jpayne@69 390
jpayne@69 391 /* fccfg.c */
jpayne@69 392 FcPublic FcChar8 *
jpayne@69 393 FcConfigHome (void);
jpayne@69 394
jpayne@69 395 FcPublic FcBool
jpayne@69 396 FcConfigEnableHome (FcBool enable);
jpayne@69 397
jpayne@69 398 FcPublic FcChar8 *
jpayne@69 399 FcConfigGetFilename (FcConfig *config,
jpayne@69 400 const FcChar8 *url);
jpayne@69 401
jpayne@69 402 FcPublic FcChar8 *
jpayne@69 403 FcConfigFilename (const FcChar8 *url);
jpayne@69 404
jpayne@69 405 FcPublic FcConfig *
jpayne@69 406 FcConfigCreate (void);
jpayne@69 407
jpayne@69 408 FcPublic FcConfig *
jpayne@69 409 FcConfigReference (FcConfig *config);
jpayne@69 410
jpayne@69 411 FcPublic void
jpayne@69 412 FcConfigDestroy (FcConfig *config);
jpayne@69 413
jpayne@69 414 FcPublic FcBool
jpayne@69 415 FcConfigSetCurrent (FcConfig *config);
jpayne@69 416
jpayne@69 417 FcPublic FcConfig *
jpayne@69 418 FcConfigGetCurrent (void);
jpayne@69 419
jpayne@69 420 FcPublic FcBool
jpayne@69 421 FcConfigUptoDate (FcConfig *config);
jpayne@69 422
jpayne@69 423 FcPublic FcBool
jpayne@69 424 FcConfigBuildFonts (FcConfig *config);
jpayne@69 425
jpayne@69 426 FcPublic FcStrList *
jpayne@69 427 FcConfigGetFontDirs (FcConfig *config);
jpayne@69 428
jpayne@69 429 FcPublic FcStrList *
jpayne@69 430 FcConfigGetConfigDirs (FcConfig *config);
jpayne@69 431
jpayne@69 432 FcPublic FcStrList *
jpayne@69 433 FcConfigGetConfigFiles (FcConfig *config);
jpayne@69 434
jpayne@69 435 FcPublic FcChar8 *
jpayne@69 436 FcConfigGetCache (FcConfig *config);
jpayne@69 437
jpayne@69 438 FcPublic FcBlanks *
jpayne@69 439 FcConfigGetBlanks (FcConfig *config);
jpayne@69 440
jpayne@69 441 FcPublic FcStrList *
jpayne@69 442 FcConfigGetCacheDirs (FcConfig *config);
jpayne@69 443
jpayne@69 444 FcPublic int
jpayne@69 445 FcConfigGetRescanInterval (FcConfig *config);
jpayne@69 446
jpayne@69 447 FcPublic FcBool
jpayne@69 448 FcConfigSetRescanInterval (FcConfig *config, int rescanInterval);
jpayne@69 449
jpayne@69 450 FcPublic FcFontSet *
jpayne@69 451 FcConfigGetFonts (FcConfig *config,
jpayne@69 452 FcSetName set);
jpayne@69 453
jpayne@69 454 FcPublic FcBool
jpayne@69 455 FcConfigAppFontAddFile (FcConfig *config,
jpayne@69 456 const FcChar8 *file);
jpayne@69 457
jpayne@69 458 FcPublic FcBool
jpayne@69 459 FcConfigAppFontAddDir (FcConfig *config,
jpayne@69 460 const FcChar8 *dir);
jpayne@69 461
jpayne@69 462 FcPublic void
jpayne@69 463 FcConfigAppFontClear (FcConfig *config);
jpayne@69 464
jpayne@69 465 FcPublic FcBool
jpayne@69 466 FcConfigSubstituteWithPat (FcConfig *config,
jpayne@69 467 FcPattern *p,
jpayne@69 468 FcPattern *p_pat,
jpayne@69 469 FcMatchKind kind);
jpayne@69 470
jpayne@69 471 FcPublic FcBool
jpayne@69 472 FcConfigSubstitute (FcConfig *config,
jpayne@69 473 FcPattern *p,
jpayne@69 474 FcMatchKind kind);
jpayne@69 475
jpayne@69 476 FcPublic const FcChar8 *
jpayne@69 477 FcConfigGetSysRoot (const FcConfig *config);
jpayne@69 478
jpayne@69 479 FcPublic void
jpayne@69 480 FcConfigSetSysRoot (FcConfig *config,
jpayne@69 481 const FcChar8 *sysroot);
jpayne@69 482
jpayne@69 483 FcPublic void
jpayne@69 484 FcConfigFileInfoIterInit (FcConfig *config,
jpayne@69 485 FcConfigFileInfoIter *iter);
jpayne@69 486
jpayne@69 487 FcPublic FcBool
jpayne@69 488 FcConfigFileInfoIterNext (FcConfig *config,
jpayne@69 489 FcConfigFileInfoIter *iter);
jpayne@69 490
jpayne@69 491 FcPublic FcBool
jpayne@69 492 FcConfigFileInfoIterGet (FcConfig *config,
jpayne@69 493 FcConfigFileInfoIter *iter,
jpayne@69 494 FcChar8 **name,
jpayne@69 495 FcChar8 **description,
jpayne@69 496 FcBool *enabled);
jpayne@69 497
jpayne@69 498 /* fccharset.c */
jpayne@69 499 FcPublic FcCharSet*
jpayne@69 500 FcCharSetCreate (void);
jpayne@69 501
jpayne@69 502 /* deprecated alias for FcCharSetCreate */
jpayne@69 503 FcPublic FcCharSet *
jpayne@69 504 FcCharSetNew (void);
jpayne@69 505
jpayne@69 506 FcPublic void
jpayne@69 507 FcCharSetDestroy (FcCharSet *fcs);
jpayne@69 508
jpayne@69 509 FcPublic FcBool
jpayne@69 510 FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4);
jpayne@69 511
jpayne@69 512 FcPublic FcBool
jpayne@69 513 FcCharSetDelChar (FcCharSet *fcs, FcChar32 ucs4);
jpayne@69 514
jpayne@69 515 FcPublic FcCharSet*
jpayne@69 516 FcCharSetCopy (FcCharSet *src);
jpayne@69 517
jpayne@69 518 FcPublic FcBool
jpayne@69 519 FcCharSetEqual (const FcCharSet *a, const FcCharSet *b);
jpayne@69 520
jpayne@69 521 FcPublic FcCharSet*
jpayne@69 522 FcCharSetIntersect (const FcCharSet *a, const FcCharSet *b);
jpayne@69 523
jpayne@69 524 FcPublic FcCharSet*
jpayne@69 525 FcCharSetUnion (const FcCharSet *a, const FcCharSet *b);
jpayne@69 526
jpayne@69 527 FcPublic FcCharSet*
jpayne@69 528 FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b);
jpayne@69 529
jpayne@69 530 FcPublic FcBool
jpayne@69 531 FcCharSetMerge (FcCharSet *a, const FcCharSet *b, FcBool *changed);
jpayne@69 532
jpayne@69 533 FcPublic FcBool
jpayne@69 534 FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4);
jpayne@69 535
jpayne@69 536 FcPublic FcChar32
jpayne@69 537 FcCharSetCount (const FcCharSet *a);
jpayne@69 538
jpayne@69 539 FcPublic FcChar32
jpayne@69 540 FcCharSetIntersectCount (const FcCharSet *a, const FcCharSet *b);
jpayne@69 541
jpayne@69 542 FcPublic FcChar32
jpayne@69 543 FcCharSetSubtractCount (const FcCharSet *a, const FcCharSet *b);
jpayne@69 544
jpayne@69 545 FcPublic FcBool
jpayne@69 546 FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b);
jpayne@69 547
jpayne@69 548 #define FC_CHARSET_MAP_SIZE (256/32)
jpayne@69 549 #define FC_CHARSET_DONE ((FcChar32) -1)
jpayne@69 550
jpayne@69 551 FcPublic FcChar32
jpayne@69 552 FcCharSetFirstPage (const FcCharSet *a,
jpayne@69 553 FcChar32 map[FC_CHARSET_MAP_SIZE],
jpayne@69 554 FcChar32 *next);
jpayne@69 555
jpayne@69 556 FcPublic FcChar32
jpayne@69 557 FcCharSetNextPage (const FcCharSet *a,
jpayne@69 558 FcChar32 map[FC_CHARSET_MAP_SIZE],
jpayne@69 559 FcChar32 *next);
jpayne@69 560
jpayne@69 561 /*
jpayne@69 562 * old coverage API, rather hard to use correctly
jpayne@69 563 */
jpayne@69 564
jpayne@69 565 FcPublic FcChar32
jpayne@69 566 FcCharSetCoverage (const FcCharSet *a, FcChar32 page, FcChar32 *result);
jpayne@69 567
jpayne@69 568 /* fcdbg.c */
jpayne@69 569 FcPublic void
jpayne@69 570 FcValuePrint (const FcValue v);
jpayne@69 571
jpayne@69 572 FcPublic void
jpayne@69 573 FcPatternPrint (const FcPattern *p);
jpayne@69 574
jpayne@69 575 FcPublic void
jpayne@69 576 FcFontSetPrint (const FcFontSet *s);
jpayne@69 577
jpayne@69 578 /* fcdefault.c */
jpayne@69 579 FcPublic FcStrSet *
jpayne@69 580 FcGetDefaultLangs (void);
jpayne@69 581
jpayne@69 582 FcPublic void
jpayne@69 583 FcDefaultSubstitute (FcPattern *pattern);
jpayne@69 584
jpayne@69 585 /* fcdir.c */
jpayne@69 586 FcPublic FcBool
jpayne@69 587 FcFileIsDir (const FcChar8 *file);
jpayne@69 588
jpayne@69 589 FcPublic FcBool
jpayne@69 590 FcFileScan (FcFontSet *set,
jpayne@69 591 FcStrSet *dirs,
jpayne@69 592 FcFileCache *cache,
jpayne@69 593 FcBlanks *blanks,
jpayne@69 594 const FcChar8 *file,
jpayne@69 595 FcBool force);
jpayne@69 596
jpayne@69 597 FcPublic FcBool
jpayne@69 598 FcDirScan (FcFontSet *set,
jpayne@69 599 FcStrSet *dirs,
jpayne@69 600 FcFileCache *cache,
jpayne@69 601 FcBlanks *blanks,
jpayne@69 602 const FcChar8 *dir,
jpayne@69 603 FcBool force);
jpayne@69 604
jpayne@69 605 FcPublic FcBool
jpayne@69 606 FcDirSave (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir);
jpayne@69 607
jpayne@69 608 FcPublic FcCache *
jpayne@69 609 FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file);
jpayne@69 610
jpayne@69 611 FcPublic FcCache *
jpayne@69 612 FcDirCacheRescan (const FcChar8 *dir, FcConfig *config);
jpayne@69 613
jpayne@69 614 FcPublic FcCache *
jpayne@69 615 FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config);
jpayne@69 616
jpayne@69 617 FcPublic FcCache *
jpayne@69 618 FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat);
jpayne@69 619
jpayne@69 620 FcPublic void
jpayne@69 621 FcDirCacheUnload (FcCache *cache);
jpayne@69 622
jpayne@69 623 /* fcfreetype.c */
jpayne@69 624 FcPublic FcPattern *
jpayne@69 625 FcFreeTypeQuery (const FcChar8 *file, unsigned int id, FcBlanks *blanks, int *count);
jpayne@69 626
jpayne@69 627 FcPublic unsigned int
jpayne@69 628 FcFreeTypeQueryAll(const FcChar8 *file, unsigned int id, FcBlanks *blanks, int *count, FcFontSet *set);
jpayne@69 629
jpayne@69 630 /* fcfs.c */
jpayne@69 631
jpayne@69 632 FcPublic FcFontSet *
jpayne@69 633 FcFontSetCreate (void);
jpayne@69 634
jpayne@69 635 FcPublic void
jpayne@69 636 FcFontSetDestroy (FcFontSet *s);
jpayne@69 637
jpayne@69 638 FcPublic FcBool
jpayne@69 639 FcFontSetAdd (FcFontSet *s, FcPattern *font);
jpayne@69 640
jpayne@69 641 /* fcinit.c */
jpayne@69 642 FcPublic FcConfig *
jpayne@69 643 FcInitLoadConfig (void);
jpayne@69 644
jpayne@69 645 FcPublic FcConfig *
jpayne@69 646 FcInitLoadConfigAndFonts (void);
jpayne@69 647
jpayne@69 648 FcPublic FcBool
jpayne@69 649 FcInit (void);
jpayne@69 650
jpayne@69 651 FcPublic void
jpayne@69 652 FcFini (void);
jpayne@69 653
jpayne@69 654 FcPublic int
jpayne@69 655 FcGetVersion (void);
jpayne@69 656
jpayne@69 657 FcPublic FcBool
jpayne@69 658 FcInitReinitialize (void);
jpayne@69 659
jpayne@69 660 FcPublic FcBool
jpayne@69 661 FcInitBringUptoDate (void);
jpayne@69 662
jpayne@69 663 /* fclang.c */
jpayne@69 664 FcPublic FcStrSet *
jpayne@69 665 FcGetLangs (void);
jpayne@69 666
jpayne@69 667 FcPublic FcChar8 *
jpayne@69 668 FcLangNormalize (const FcChar8 *lang);
jpayne@69 669
jpayne@69 670 FcPublic const FcCharSet *
jpayne@69 671 FcLangGetCharSet (const FcChar8 *lang);
jpayne@69 672
jpayne@69 673 FcPublic FcLangSet*
jpayne@69 674 FcLangSetCreate (void);
jpayne@69 675
jpayne@69 676 FcPublic void
jpayne@69 677 FcLangSetDestroy (FcLangSet *ls);
jpayne@69 678
jpayne@69 679 FcPublic FcLangSet*
jpayne@69 680 FcLangSetCopy (const FcLangSet *ls);
jpayne@69 681
jpayne@69 682 FcPublic FcBool
jpayne@69 683 FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang);
jpayne@69 684
jpayne@69 685 FcPublic FcBool
jpayne@69 686 FcLangSetDel (FcLangSet *ls, const FcChar8 *lang);
jpayne@69 687
jpayne@69 688 FcPublic FcLangResult
jpayne@69 689 FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang);
jpayne@69 690
jpayne@69 691 FcPublic FcLangResult
jpayne@69 692 FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb);
jpayne@69 693
jpayne@69 694 FcPublic FcBool
jpayne@69 695 FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb);
jpayne@69 696
jpayne@69 697 FcPublic FcBool
jpayne@69 698 FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb);
jpayne@69 699
jpayne@69 700 FcPublic FcChar32
jpayne@69 701 FcLangSetHash (const FcLangSet *ls);
jpayne@69 702
jpayne@69 703 FcPublic FcStrSet *
jpayne@69 704 FcLangSetGetLangs (const FcLangSet *ls);
jpayne@69 705
jpayne@69 706 FcPublic FcLangSet *
jpayne@69 707 FcLangSetUnion (const FcLangSet *a, const FcLangSet *b);
jpayne@69 708
jpayne@69 709 FcPublic FcLangSet *
jpayne@69 710 FcLangSetSubtract (const FcLangSet *a, const FcLangSet *b);
jpayne@69 711
jpayne@69 712 /* fclist.c */
jpayne@69 713 FcPublic FcObjectSet *
jpayne@69 714 FcObjectSetCreate (void);
jpayne@69 715
jpayne@69 716 FcPublic FcBool
jpayne@69 717 FcObjectSetAdd (FcObjectSet *os, const char *object);
jpayne@69 718
jpayne@69 719 FcPublic void
jpayne@69 720 FcObjectSetDestroy (FcObjectSet *os);
jpayne@69 721
jpayne@69 722 FcPublic FcObjectSet *
jpayne@69 723 FcObjectSetVaBuild (const char *first, va_list va);
jpayne@69 724
jpayne@69 725 FcPublic FcObjectSet *
jpayne@69 726 FcObjectSetBuild (const char *first, ...) FC_ATTRIBUTE_SENTINEL(0);
jpayne@69 727
jpayne@69 728 FcPublic FcFontSet *
jpayne@69 729 FcFontSetList (FcConfig *config,
jpayne@69 730 FcFontSet **sets,
jpayne@69 731 int nsets,
jpayne@69 732 FcPattern *p,
jpayne@69 733 FcObjectSet *os);
jpayne@69 734
jpayne@69 735 FcPublic FcFontSet *
jpayne@69 736 FcFontList (FcConfig *config,
jpayne@69 737 FcPattern *p,
jpayne@69 738 FcObjectSet *os);
jpayne@69 739
jpayne@69 740 /* fcatomic.c */
jpayne@69 741
jpayne@69 742 FcPublic FcAtomic *
jpayne@69 743 FcAtomicCreate (const FcChar8 *file);
jpayne@69 744
jpayne@69 745 FcPublic FcBool
jpayne@69 746 FcAtomicLock (FcAtomic *atomic);
jpayne@69 747
jpayne@69 748 FcPublic FcChar8 *
jpayne@69 749 FcAtomicNewFile (FcAtomic *atomic);
jpayne@69 750
jpayne@69 751 FcPublic FcChar8 *
jpayne@69 752 FcAtomicOrigFile (FcAtomic *atomic);
jpayne@69 753
jpayne@69 754 FcPublic FcBool
jpayne@69 755 FcAtomicReplaceOrig (FcAtomic *atomic);
jpayne@69 756
jpayne@69 757 FcPublic void
jpayne@69 758 FcAtomicDeleteNew (FcAtomic *atomic);
jpayne@69 759
jpayne@69 760 FcPublic void
jpayne@69 761 FcAtomicUnlock (FcAtomic *atomic);
jpayne@69 762
jpayne@69 763 FcPublic void
jpayne@69 764 FcAtomicDestroy (FcAtomic *atomic);
jpayne@69 765
jpayne@69 766 /* fcmatch.c */
jpayne@69 767 FcPublic FcPattern *
jpayne@69 768 FcFontSetMatch (FcConfig *config,
jpayne@69 769 FcFontSet **sets,
jpayne@69 770 int nsets,
jpayne@69 771 FcPattern *p,
jpayne@69 772 FcResult *result);
jpayne@69 773
jpayne@69 774 FcPublic FcPattern *
jpayne@69 775 FcFontMatch (FcConfig *config,
jpayne@69 776 FcPattern *p,
jpayne@69 777 FcResult *result);
jpayne@69 778
jpayne@69 779 FcPublic FcPattern *
jpayne@69 780 FcFontRenderPrepare (FcConfig *config,
jpayne@69 781 FcPattern *pat,
jpayne@69 782 FcPattern *font);
jpayne@69 783
jpayne@69 784 FcPublic FcFontSet *
jpayne@69 785 FcFontSetSort (FcConfig *config,
jpayne@69 786 FcFontSet **sets,
jpayne@69 787 int nsets,
jpayne@69 788 FcPattern *p,
jpayne@69 789 FcBool trim,
jpayne@69 790 FcCharSet **csp,
jpayne@69 791 FcResult *result);
jpayne@69 792
jpayne@69 793 FcPublic FcFontSet *
jpayne@69 794 FcFontSort (FcConfig *config,
jpayne@69 795 FcPattern *p,
jpayne@69 796 FcBool trim,
jpayne@69 797 FcCharSet **csp,
jpayne@69 798 FcResult *result);
jpayne@69 799
jpayne@69 800 FcPublic void
jpayne@69 801 FcFontSetSortDestroy (FcFontSet *fs);
jpayne@69 802
jpayne@69 803 /* fcmatrix.c */
jpayne@69 804 FcPublic FcMatrix *
jpayne@69 805 FcMatrixCopy (const FcMatrix *mat);
jpayne@69 806
jpayne@69 807 FcPublic FcBool
jpayne@69 808 FcMatrixEqual (const FcMatrix *mat1, const FcMatrix *mat2);
jpayne@69 809
jpayne@69 810 FcPublic void
jpayne@69 811 FcMatrixMultiply (FcMatrix *result, const FcMatrix *a, const FcMatrix *b);
jpayne@69 812
jpayne@69 813 FcPublic void
jpayne@69 814 FcMatrixRotate (FcMatrix *m, double c, double s);
jpayne@69 815
jpayne@69 816 FcPublic void
jpayne@69 817 FcMatrixScale (FcMatrix *m, double sx, double sy);
jpayne@69 818
jpayne@69 819 FcPublic void
jpayne@69 820 FcMatrixShear (FcMatrix *m, double sh, double sv);
jpayne@69 821
jpayne@69 822 /* fcname.c */
jpayne@69 823
jpayne@69 824 /* Deprecated. Does nothing. Returns FcFalse. */
jpayne@69 825 FcPublic FcBool
jpayne@69 826 FcNameRegisterObjectTypes (const FcObjectType *types, int ntype);
jpayne@69 827
jpayne@69 828 /* Deprecated. Does nothing. Returns FcFalse. */
jpayne@69 829 FcPublic FcBool
jpayne@69 830 FcNameUnregisterObjectTypes (const FcObjectType *types, int ntype);
jpayne@69 831
jpayne@69 832 FcPublic const FcObjectType *
jpayne@69 833 FcNameGetObjectType (const char *object);
jpayne@69 834
jpayne@69 835 /* Deprecated. Does nothing. Returns FcFalse. */
jpayne@69 836 FcPublic FcBool
jpayne@69 837 FcNameRegisterConstants (const FcConstant *consts, int nconsts);
jpayne@69 838
jpayne@69 839 /* Deprecated. Does nothing. Returns FcFalse. */
jpayne@69 840 FcPublic FcBool
jpayne@69 841 FcNameUnregisterConstants (const FcConstant *consts, int nconsts);
jpayne@69 842
jpayne@69 843 FcPublic const FcConstant *
jpayne@69 844 FcNameGetConstant (const FcChar8 *string);
jpayne@69 845
jpayne@69 846 FcPublic const FcConstant *
jpayne@69 847 FcNameGetConstantFor (const FcChar8 *string, const char *object);
jpayne@69 848
jpayne@69 849 FcPublic FcBool
jpayne@69 850 FcNameConstant (const FcChar8 *string, int *result);
jpayne@69 851
jpayne@69 852 FcPublic FcPattern *
jpayne@69 853 FcNameParse (const FcChar8 *name);
jpayne@69 854
jpayne@69 855 FcPublic FcChar8 *
jpayne@69 856 FcNameUnparse (FcPattern *pat);
jpayne@69 857
jpayne@69 858 /* fcpat.c */
jpayne@69 859 FcPublic FcPattern *
jpayne@69 860 FcPatternCreate (void);
jpayne@69 861
jpayne@69 862 FcPublic FcPattern *
jpayne@69 863 FcPatternDuplicate (const FcPattern *p);
jpayne@69 864
jpayne@69 865 FcPublic void
jpayne@69 866 FcPatternReference (FcPattern *p);
jpayne@69 867
jpayne@69 868 FcPublic FcPattern *
jpayne@69 869 FcPatternFilter (FcPattern *p, const FcObjectSet *os);
jpayne@69 870
jpayne@69 871 FcPublic void
jpayne@69 872 FcValueDestroy (FcValue v);
jpayne@69 873
jpayne@69 874 FcPublic FcBool
jpayne@69 875 FcValueEqual (FcValue va, FcValue vb);
jpayne@69 876
jpayne@69 877 FcPublic FcValue
jpayne@69 878 FcValueSave (FcValue v);
jpayne@69 879
jpayne@69 880 FcPublic void
jpayne@69 881 FcPatternDestroy (FcPattern *p);
jpayne@69 882
jpayne@69 883 int
jpayne@69 884 FcPatternObjectCount (const FcPattern *pat);
jpayne@69 885
jpayne@69 886 FcPublic FcBool
jpayne@69 887 FcPatternEqual (const FcPattern *pa, const FcPattern *pb);
jpayne@69 888
jpayne@69 889 FcPublic FcBool
jpayne@69 890 FcPatternEqualSubset (const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os);
jpayne@69 891
jpayne@69 892 FcPublic FcChar32
jpayne@69 893 FcPatternHash (const FcPattern *p);
jpayne@69 894
jpayne@69 895 FcPublic FcBool
jpayne@69 896 FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append);
jpayne@69 897
jpayne@69 898 FcPublic FcBool
jpayne@69 899 FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append);
jpayne@69 900
jpayne@69 901 FcPublic FcResult
jpayne@69 902 FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v);
jpayne@69 903
jpayne@69 904 FcPublic FcResult
jpayne@69 905 FcPatternGetWithBinding (const FcPattern *p, const char *object, int id, FcValue *v, FcValueBinding *b);
jpayne@69 906
jpayne@69 907 FcPublic FcBool
jpayne@69 908 FcPatternDel (FcPattern *p, const char *object);
jpayne@69 909
jpayne@69 910 FcPublic FcBool
jpayne@69 911 FcPatternRemove (FcPattern *p, const char *object, int id);
jpayne@69 912
jpayne@69 913 FcPublic FcBool
jpayne@69 914 FcPatternAddInteger (FcPattern *p, const char *object, int i);
jpayne@69 915
jpayne@69 916 FcPublic FcBool
jpayne@69 917 FcPatternAddDouble (FcPattern *p, const char *object, double d);
jpayne@69 918
jpayne@69 919 FcPublic FcBool
jpayne@69 920 FcPatternAddString (FcPattern *p, const char *object, const FcChar8 *s);
jpayne@69 921
jpayne@69 922 FcPublic FcBool
jpayne@69 923 FcPatternAddMatrix (FcPattern *p, const char *object, const FcMatrix *s);
jpayne@69 924
jpayne@69 925 FcPublic FcBool
jpayne@69 926 FcPatternAddCharSet (FcPattern *p, const char *object, const FcCharSet *c);
jpayne@69 927
jpayne@69 928 FcPublic FcBool
jpayne@69 929 FcPatternAddBool (FcPattern *p, const char *object, FcBool b);
jpayne@69 930
jpayne@69 931 FcPublic FcBool
jpayne@69 932 FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls);
jpayne@69 933
jpayne@69 934 FcPublic FcBool
jpayne@69 935 FcPatternAddRange (FcPattern *p, const char *object, const FcRange *r);
jpayne@69 936
jpayne@69 937 FcPublic FcResult
jpayne@69 938 FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i);
jpayne@69 939
jpayne@69 940 FcPublic FcResult
jpayne@69 941 FcPatternGetDouble (const FcPattern *p, const char *object, int n, double *d);
jpayne@69 942
jpayne@69 943 FcPublic FcResult
jpayne@69 944 FcPatternGetString (const FcPattern *p, const char *object, int n, FcChar8 ** s);
jpayne@69 945
jpayne@69 946 FcPublic FcResult
jpayne@69 947 FcPatternGetMatrix (const FcPattern *p, const char *object, int n, FcMatrix **s);
jpayne@69 948
jpayne@69 949 FcPublic FcResult
jpayne@69 950 FcPatternGetCharSet (const FcPattern *p, const char *object, int n, FcCharSet **c);
jpayne@69 951
jpayne@69 952 FcPublic FcResult
jpayne@69 953 FcPatternGetBool (const FcPattern *p, const char *object, int n, FcBool *b);
jpayne@69 954
jpayne@69 955 FcPublic FcResult
jpayne@69 956 FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls);
jpayne@69 957
jpayne@69 958 FcPublic FcResult
jpayne@69 959 FcPatternGetRange (const FcPattern *p, const char *object, int id, FcRange **r);
jpayne@69 960
jpayne@69 961 FcPublic FcPattern *
jpayne@69 962 FcPatternVaBuild (FcPattern *p, va_list va);
jpayne@69 963
jpayne@69 964 FcPublic FcPattern *
jpayne@69 965 FcPatternBuild (FcPattern *p, ...) FC_ATTRIBUTE_SENTINEL(0);
jpayne@69 966
jpayne@69 967 FcPublic FcChar8 *
jpayne@69 968 FcPatternFormat (FcPattern *pat, const FcChar8 *format);
jpayne@69 969
jpayne@69 970 /* fcrange.c */
jpayne@69 971 FcPublic FcRange *
jpayne@69 972 FcRangeCreateDouble (double begin, double end);
jpayne@69 973
jpayne@69 974 FcPublic FcRange *
jpayne@69 975 FcRangeCreateInteger (FcChar32 begin, FcChar32 end);
jpayne@69 976
jpayne@69 977 FcPublic void
jpayne@69 978 FcRangeDestroy (FcRange *range);
jpayne@69 979
jpayne@69 980 FcPublic FcRange *
jpayne@69 981 FcRangeCopy (const FcRange *r);
jpayne@69 982
jpayne@69 983 FcPublic FcBool
jpayne@69 984 FcRangeGetDouble(const FcRange *range, double *begin, double *end);
jpayne@69 985
jpayne@69 986 FcPublic void
jpayne@69 987 FcPatternIterStart (const FcPattern *pat, FcPatternIter *iter);
jpayne@69 988
jpayne@69 989 FcPublic FcBool
jpayne@69 990 FcPatternIterNext (const FcPattern *pat, FcPatternIter *iter);
jpayne@69 991
jpayne@69 992 FcPublic FcBool
jpayne@69 993 FcPatternIterEqual (const FcPattern *p1, FcPatternIter *i1,
jpayne@69 994 const FcPattern *p2, FcPatternIter *i2);
jpayne@69 995
jpayne@69 996 FcPublic FcBool
jpayne@69 997 FcPatternFindIter (const FcPattern *pat, FcPatternIter *iter, const char *object);
jpayne@69 998
jpayne@69 999 FcPublic FcBool
jpayne@69 1000 FcPatternIterIsValid (const FcPattern *pat, FcPatternIter *iter);
jpayne@69 1001
jpayne@69 1002 FcPublic const char *
jpayne@69 1003 FcPatternIterGetObject (const FcPattern *pat, FcPatternIter *iter);
jpayne@69 1004
jpayne@69 1005 FcPublic int
jpayne@69 1006 FcPatternIterValueCount (const FcPattern *pat, FcPatternIter *iter);
jpayne@69 1007
jpayne@69 1008 FcPublic FcResult
jpayne@69 1009 FcPatternIterGetValue (const FcPattern *pat, FcPatternIter *iter, int id, FcValue *v, FcValueBinding *b);
jpayne@69 1010
jpayne@69 1011 /* fcweight.c */
jpayne@69 1012
jpayne@69 1013 FcPublic int
jpayne@69 1014 FcWeightFromOpenType (int ot_weight);
jpayne@69 1015
jpayne@69 1016 FcPublic double
jpayne@69 1017 FcWeightFromOpenTypeDouble (double ot_weight);
jpayne@69 1018
jpayne@69 1019 FcPublic int
jpayne@69 1020 FcWeightToOpenType (int fc_weight);
jpayne@69 1021
jpayne@69 1022 FcPublic double
jpayne@69 1023 FcWeightToOpenTypeDouble (double fc_weight);
jpayne@69 1024
jpayne@69 1025 /* fcstr.c */
jpayne@69 1026
jpayne@69 1027 FcPublic FcChar8 *
jpayne@69 1028 FcStrCopy (const FcChar8 *s);
jpayne@69 1029
jpayne@69 1030 FcPublic FcChar8 *
jpayne@69 1031 FcStrCopyFilename (const FcChar8 *s);
jpayne@69 1032
jpayne@69 1033 FcPublic FcChar8 *
jpayne@69 1034 FcStrPlus (const FcChar8 *s1, const FcChar8 *s2);
jpayne@69 1035
jpayne@69 1036 FcPublic void
jpayne@69 1037 FcStrFree (FcChar8 *s);
jpayne@69 1038
jpayne@69 1039 /* These are ASCII only, suitable only for pattern element names */
jpayne@69 1040 #define FcIsUpper(c) ((0101 <= (c) && (c) <= 0132))
jpayne@69 1041 #define FcIsLower(c) ((0141 <= (c) && (c) <= 0172))
jpayne@69 1042 #define FcToLower(c) (FcIsUpper(c) ? (c) - 0101 + 0141 : (c))
jpayne@69 1043
jpayne@69 1044 FcPublic FcChar8 *
jpayne@69 1045 FcStrDowncase (const FcChar8 *s);
jpayne@69 1046
jpayne@69 1047 FcPublic int
jpayne@69 1048 FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2);
jpayne@69 1049
jpayne@69 1050 FcPublic int
jpayne@69 1051 FcStrCmp (const FcChar8 *s1, const FcChar8 *s2);
jpayne@69 1052
jpayne@69 1053 FcPublic const FcChar8 *
jpayne@69 1054 FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2);
jpayne@69 1055
jpayne@69 1056 FcPublic const FcChar8 *
jpayne@69 1057 FcStrStr (const FcChar8 *s1, const FcChar8 *s2);
jpayne@69 1058
jpayne@69 1059 FcPublic int
jpayne@69 1060 FcUtf8ToUcs4 (const FcChar8 *src_orig,
jpayne@69 1061 FcChar32 *dst,
jpayne@69 1062 int len);
jpayne@69 1063
jpayne@69 1064 FcPublic FcBool
jpayne@69 1065 FcUtf8Len (const FcChar8 *string,
jpayne@69 1066 int len,
jpayne@69 1067 int *nchar,
jpayne@69 1068 int *wchar);
jpayne@69 1069
jpayne@69 1070 #define FC_UTF8_MAX_LEN 6
jpayne@69 1071
jpayne@69 1072 FcPublic int
jpayne@69 1073 FcUcs4ToUtf8 (FcChar32 ucs4,
jpayne@69 1074 FcChar8 dest[FC_UTF8_MAX_LEN]);
jpayne@69 1075
jpayne@69 1076 FcPublic int
jpayne@69 1077 FcUtf16ToUcs4 (const FcChar8 *src_orig,
jpayne@69 1078 FcEndian endian,
jpayne@69 1079 FcChar32 *dst,
jpayne@69 1080 int len); /* in bytes */
jpayne@69 1081
jpayne@69 1082 FcPublic FcBool
jpayne@69 1083 FcUtf16Len (const FcChar8 *string,
jpayne@69 1084 FcEndian endian,
jpayne@69 1085 int len, /* in bytes */
jpayne@69 1086 int *nchar,
jpayne@69 1087 int *wchar);
jpayne@69 1088
jpayne@69 1089 FcPublic FcChar8 *
jpayne@69 1090 FcStrBuildFilename (const FcChar8 *path,
jpayne@69 1091 ...);
jpayne@69 1092
jpayne@69 1093 FcPublic FcChar8 *
jpayne@69 1094 FcStrDirname (const FcChar8 *file);
jpayne@69 1095
jpayne@69 1096 FcPublic FcChar8 *
jpayne@69 1097 FcStrBasename (const FcChar8 *file);
jpayne@69 1098
jpayne@69 1099 FcPublic FcStrSet *
jpayne@69 1100 FcStrSetCreate (void);
jpayne@69 1101
jpayne@69 1102 FcPublic FcBool
jpayne@69 1103 FcStrSetMember (FcStrSet *set, const FcChar8 *s);
jpayne@69 1104
jpayne@69 1105 FcPublic FcBool
jpayne@69 1106 FcStrSetEqual (FcStrSet *sa, FcStrSet *sb);
jpayne@69 1107
jpayne@69 1108 FcPublic FcBool
jpayne@69 1109 FcStrSetAdd (FcStrSet *set, const FcChar8 *s);
jpayne@69 1110
jpayne@69 1111 FcPublic FcBool
jpayne@69 1112 FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s);
jpayne@69 1113
jpayne@69 1114 FcPublic FcBool
jpayne@69 1115 FcStrSetDel (FcStrSet *set, const FcChar8 *s);
jpayne@69 1116
jpayne@69 1117 FcPublic void
jpayne@69 1118 FcStrSetDestroy (FcStrSet *set);
jpayne@69 1119
jpayne@69 1120 FcPublic FcStrList *
jpayne@69 1121 FcStrListCreate (FcStrSet *set);
jpayne@69 1122
jpayne@69 1123 FcPublic void
jpayne@69 1124 FcStrListFirst (FcStrList *list);
jpayne@69 1125
jpayne@69 1126 FcPublic FcChar8 *
jpayne@69 1127 FcStrListNext (FcStrList *list);
jpayne@69 1128
jpayne@69 1129 FcPublic void
jpayne@69 1130 FcStrListDone (FcStrList *list);
jpayne@69 1131
jpayne@69 1132 /* fcxml.c */
jpayne@69 1133 FcPublic FcBool
jpayne@69 1134 FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain);
jpayne@69 1135
jpayne@69 1136 FcPublic FcBool
jpayne@69 1137 FcConfigParseAndLoadFromMemory (FcConfig *config,
jpayne@69 1138 const FcChar8 *buffer,
jpayne@69 1139 FcBool complain);
jpayne@69 1140
jpayne@69 1141 _FCFUNCPROTOEND
jpayne@69 1142
jpayne@69 1143 #undef FC_ATTRIBUTE_SENTINEL
jpayne@69 1144
jpayne@69 1145
jpayne@69 1146 #ifndef _FCINT_H_
jpayne@69 1147
jpayne@69 1148 /*
jpayne@69 1149 * Deprecated functions are placed here to help users fix their code without
jpayne@69 1150 * digging through documentation
jpayne@69 1151 */
jpayne@69 1152
jpayne@69 1153 #define FcConfigGetRescanInverval FcConfigGetRescanInverval_REPLACE_BY_FcConfigGetRescanInterval
jpayne@69 1154 #define FcConfigSetRescanInverval FcConfigSetRescanInverval_REPLACE_BY_FcConfigSetRescanInterval
jpayne@69 1155
jpayne@69 1156 #endif
jpayne@69 1157
jpayne@69 1158 #endif /* _FONTCONFIG_H_ */