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