source: trunk/poppler/fontconfig-2.3.2-os2/fontconfig/fontconfig.h @ 2

Last change on this file since 2 was 2, checked in by Eugene Romanenko, 15 years ago

First import

File size: 18.7 KB
Line 
1/*
2 * $RCSId: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.30 2002/09/26 00:17:27 keithp Exp $
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 Keith Packard not be used in
11 * advertising or publicity pertaining to distribution of the software without
12 * specific, written prior permission.  Keith Packard makes 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 * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18 * EVENT SHALL KEITH PACKARD 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 <stdarg.h>
29
30typedef unsigned char   FcChar8;
31typedef unsigned short  FcChar16;
32typedef unsigned int    FcChar32;
33typedef int             FcBool;
34
35/*
36 * Current Fontconfig version number.  This same number
37 * must appear in the fontconfig configure.in file. Yes,
38 * it'a a pain to synchronize version numbers like this.
39 */
40
41#define FC_MAJOR        2
42#define FC_MINOR        3
43#define FC_REVISION     2
44
45#define FC_VERSION      ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
46
47/*
48 * Current font cache file format version
49 * This is appended to the cache files so that multiple
50 * versions of the library will peacefully coexist
51 *
52 * Change this value whenever the disk format for the cache file
53 * changes in any non-compatible way.  Try to avoid such changes as
54 * it means multiple copies of the font information.
55 */
56
57#define FC_CACHE_VERSION    "1"
58
59#define FcTrue          1
60#define FcFalse         0
61
62#define FC_FAMILY           "family"            /* String */
63#define FC_STYLE            "style"             /* String */
64#define FC_SLANT            "slant"             /* Int */
65#define FC_WEIGHT           "weight"            /* Int */
66#define FC_SIZE             "size"              /* Double */
67#define FC_ASPECT           "aspect"            /* Double */
68#define FC_PIXEL_SIZE       "pixelsize"         /* Double */
69#define FC_SPACING          "spacing"           /* Int */
70#define FC_FOUNDRY          "foundry"           /* String */
71#define FC_ANTIALIAS        "antialias"         /* Bool (depends) */
72#define FC_HINTING          "hinting"           /* Bool (true) */
73#define FC_HINT_STYLE       "hintstyle"         /* Int */
74#define FC_VERTICAL_LAYOUT  "verticallayout"    /* Bool (false) */
75#define FC_AUTOHINT         "autohint"          /* Bool (false) */
76#define FC_GLOBAL_ADVANCE   "globaladvance"     /* Bool (true) */
77#define FC_WIDTH            "width"             /* Int */
78#define FC_FILE             "file"              /* String */
79#define FC_INDEX            "index"             /* Int */
80#define FC_FT_FACE          "ftface"            /* FT_Face */
81#define FC_RASTERIZER       "rasterizer"        /* String */
82#define FC_OUTLINE          "outline"           /* Bool */
83#define FC_SCALABLE         "scalable"          /* Bool */
84#define FC_SCALE            "scale"             /* double */
85#define FC_DPI              "dpi"               /* double */
86#define FC_RGBA             "rgba"              /* Int */
87#define FC_MINSPACE         "minspace"          /* Bool use minimum line spacing */
88#define FC_SOURCE           "source"            /* String (deprecated) */
89#define FC_CHARSET          "charset"           /* CharSet */
90#define FC_LANG             "lang"              /* String RFC 3066 langs */
91#define FC_FONTVERSION      "fontversion"       /* Int from 'head' table */
92#define FC_FULLNAME         "fullname"          /* String */
93#define FC_FAMILYLANG       "familylang"        /* String RFC 3066 langs */
94#define FC_STYLELANG        "stylelang"         /* String RFC 3066 langs */
95#define FC_FULLNAMELANG     "fullnamelang"      /* String RFC 3066 langs */
96#define FC_CAPABILITY       "capability"        /* String */
97#define FC_FONTFORMAT       "fontformat"        /* String */
98#define FC_EMBOLDEN         "embolden"          /* Bool - true if emboldening needed*/
99
100#define FC_DIR_CACHE_FILE           "fonts.cache-"FC_CACHE_VERSION
101#define FC_USER_CACHE_FILE          ".fonts.cache-"FC_CACHE_VERSION
102
103/* Adjust outline rasterizer */
104#define FC_CHAR_WIDTH       "charwidth" /* Int */
105#define FC_CHAR_HEIGHT      "charheight"/* Int */
106#define FC_MATRIX           "matrix"    /* FcMatrix */
107
108#define FC_WEIGHT_THIN              0
109#define FC_WEIGHT_EXTRALIGHT        40
110#define FC_WEIGHT_ULTRALIGHT        FC_WEIGHT_EXTRALIGHT
111#define FC_WEIGHT_LIGHT             50
112#define FC_WEIGHT_BOOK              75
113#define FC_WEIGHT_REGULAR           80
114#define FC_WEIGHT_NORMAL            FC_WEIGHT_REGULAR
115#define FC_WEIGHT_MEDIUM            100
116#define FC_WEIGHT_DEMIBOLD          180
117#define FC_WEIGHT_SEMIBOLD          FC_WEIGHT_DEMIBOLD
118#define FC_WEIGHT_BOLD              200
119#define FC_WEIGHT_EXTRABOLD         205
120#define FC_WEIGHT_ULTRABOLD         FC_WEIGHT_EXTRABOLD
121#define FC_WEIGHT_BLACK             210
122#define FC_WEIGHT_HEAVY             FC_WEIGHT_BLACK
123
124#define FC_SLANT_ROMAN              0
125#define FC_SLANT_ITALIC             100
126#define FC_SLANT_OBLIQUE            110
127
128#define FC_WIDTH_ULTRACONDENSED     50
129#define FC_WIDTH_EXTRACONDENSED     63
130#define FC_WIDTH_CONDENSED          75
131#define FC_WIDTH_SEMICONDENSED      87
132#define FC_WIDTH_NORMAL             100
133#define FC_WIDTH_SEMIEXPANDED       113
134#define FC_WIDTH_EXPANDED           125
135#define FC_WIDTH_EXTRAEXPANDED      150
136#define FC_WIDTH_ULTRAEXPANDED      200
137
138#define FC_PROPORTIONAL             0
139#define FC_DUAL                     90
140#define FC_MONO                     100
141#define FC_CHARCELL                 110
142
143/* sub-pixel order */
144#define FC_RGBA_UNKNOWN     0
145#define FC_RGBA_RGB         1
146#define FC_RGBA_BGR         2
147#define FC_RGBA_VRGB        3
148#define FC_RGBA_VBGR        4
149#define FC_RGBA_NONE        5
150
151/* hinting style */
152#define FC_HINT_NONE        0
153#define FC_HINT_SLIGHT      1
154#define FC_HINT_MEDIUM      2
155#define FC_HINT_FULL        3
156 
157typedef enum _FcType {
158    FcTypeVoid, 
159    FcTypeInteger, 
160    FcTypeDouble, 
161    FcTypeString, 
162    FcTypeBool,
163    FcTypeMatrix,
164    FcTypeCharSet,
165    FcTypeFTFace,
166    FcTypeLangSet
167} FcType;
168
169typedef struct _FcMatrix {
170    double xx, xy, yx, yy;
171} FcMatrix;
172
173#define FcMatrixInit(m) ((m)->xx = (m)->yy = 1, \
174                         (m)->xy = (m)->yx = 0)
175
176/*
177 * A data structure to represent the available glyphs in a font.
178 * This is represented as a sparse boolean btree.
179 */
180
181typedef struct _FcCharSet FcCharSet;
182
183typedef struct _FcObjectType {
184    const char  *object;
185    FcType      type;
186} FcObjectType;
187
188typedef struct _FcConstant {
189    const FcChar8  *name;
190    const char  *object;
191    int         value;
192} FcConstant;
193
194typedef enum _FcResult {
195    FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId,
196    FcResultOutOfMemory
197} FcResult;
198
199typedef struct _FcPattern   FcPattern;
200
201typedef struct _FcLangSet   FcLangSet;
202
203typedef struct _FcValue {
204    FcType      type;
205    union {
206        const FcChar8   *s;
207        int             i;
208        FcBool          b;
209        double          d;
210        const FcMatrix  *m;
211        const FcCharSet *c;
212        void            *f;
213        const FcPattern *p;
214        const FcLangSet *l;
215    } u;
216} FcValue;
217
218typedef struct _FcFontSet {
219    int         nfont;
220    int         sfont;
221    FcPattern   **fonts;
222} FcFontSet;
223
224typedef struct _FcObjectSet {
225    int         nobject;
226    int         sobject;
227    const char  **objects;
228} FcObjectSet;
229   
230typedef enum _FcMatchKind {
231    FcMatchPattern, FcMatchFont
232} FcMatchKind;
233
234typedef enum _FcLangResult {
235    FcLangEqual, FcLangDifferentCountry, FcLangDifferentLang
236} FcLangResult;
237
238typedef enum _FcSetName {
239    FcSetSystem = 0,
240    FcSetApplication = 1
241} FcSetName;
242
243typedef struct _FcAtomic FcAtomic;
244
245#if defined(__cplusplus) || defined(c_plusplus) /* for C++ V2.0 */
246#define _FCFUNCPROTOBEGIN extern "C" {  /* do not leave open across includes */
247#define _FCFUNCPROTOEND }
248#else
249#define _FCFUNCPROTOBEGIN
250#define _FCFUNCPROTOEND
251#endif
252
253typedef enum { FcEndianBig, FcEndianLittle } FcEndian;
254
255typedef struct _FcConfig    FcConfig;
256
257typedef struct _FcGlobalCache   FcFileCache;
258
259typedef struct _FcBlanks    FcBlanks;
260
261typedef struct _FcStrList   FcStrList;
262
263typedef struct _FcStrSet    FcStrSet;
264
265_FCFUNCPROTOBEGIN
266
267FcBool
268FcDirCacheValid (const FcChar8 *cache_file);
269
270/* fcblanks.c */
271FcBlanks *
272FcBlanksCreate (void);
273
274void
275FcBlanksDestroy (FcBlanks *b);
276
277FcBool
278FcBlanksAdd (FcBlanks *b, FcChar32 ucs4);
279
280FcBool
281FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4);
282
283/* fccfg.c */
284FcChar8 *
285FcConfigHome (void);
286
287FcBool
288FcConfigEnableHome (FcBool enable);
289
290FcChar8 *
291FcConfigFilename (const FcChar8 *url);
292   
293FcConfig *
294FcConfigCreate (void);
295
296void
297FcConfigDestroy (FcConfig *config);
298
299FcBool
300FcConfigSetCurrent (FcConfig *config);
301
302FcConfig *
303FcConfigGetCurrent (void);
304
305FcBool
306FcConfigUptoDate (FcConfig *config);
307   
308FcBool
309FcConfigBuildFonts (FcConfig *config);
310
311FcStrList *
312FcConfigGetFontDirs (FcConfig   *config);
313
314FcStrList *
315FcConfigGetConfigDirs (FcConfig   *config);
316
317FcStrList *
318FcConfigGetConfigFiles (FcConfig    *config);
319
320FcChar8 *
321FcConfigGetCache (FcConfig  *config);
322
323FcBlanks *
324FcConfigGetBlanks (FcConfig *config);
325
326int
327FcConfigGetRescanInverval (FcConfig *config);
328
329FcBool
330FcConfigSetRescanInverval (FcConfig *config, int rescanInterval);
331
332FcFontSet *
333FcConfigGetFonts (FcConfig      *config,
334                  FcSetName     set);
335
336FcBool
337FcConfigAppFontAddFile (FcConfig    *config,
338                        const FcChar8  *file);
339
340FcBool
341FcConfigAppFontAddDir (FcConfig     *config,
342                       const FcChar8   *dir);
343
344void
345FcConfigAppFontClear (FcConfig      *config);
346
347FcBool
348FcConfigSubstituteWithPat (FcConfig     *config,
349                           FcPattern    *p,
350                           FcPattern    *p_pat,
351                           FcMatchKind  kind);
352
353FcBool
354FcConfigSubstitute (FcConfig    *config,
355                    FcPattern   *p,
356                    FcMatchKind kind);
357
358/* fccharset.c */
359FcCharSet *
360FcCharSetCreate (void);
361
362void
363FcCharSetDestroy (FcCharSet *fcs);
364
365FcBool
366FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4);
367
368FcCharSet *
369FcCharSetCopy (FcCharSet *src);
370
371FcBool
372FcCharSetEqual (const FcCharSet *a, const FcCharSet *b);
373
374FcCharSet *
375FcCharSetIntersect (const FcCharSet *a, const FcCharSet *b);
376
377FcCharSet *
378FcCharSetUnion (const FcCharSet *a, const FcCharSet *b);
379
380FcCharSet *
381FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b);
382
383FcBool
384FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4);
385
386FcChar32
387FcCharSetCount (const FcCharSet *a);
388
389FcChar32
390FcCharSetIntersectCount (const FcCharSet *a, const FcCharSet *b);
391
392FcChar32
393FcCharSetSubtractCount (const FcCharSet *a, const FcCharSet *b);
394
395FcBool
396FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b);
397
398#define FC_CHARSET_MAP_SIZE (256/32)
399#define FC_CHARSET_DONE ((FcChar32) -1)
400
401FcChar32
402FcCharSetFirstPage (const FcCharSet *a, 
403                    FcChar32        map[FC_CHARSET_MAP_SIZE],
404                    FcChar32        *next);
405
406FcChar32
407FcCharSetNextPage (const FcCharSet  *a, 
408                   FcChar32         map[FC_CHARSET_MAP_SIZE],
409                   FcChar32         *next);
410
411
412/* fcdbg.c */
413void
414FcValuePrint (const FcValue v);
415
416void
417FcPatternPrint (const FcPattern *p);
418
419void
420FcFontSetPrint (const FcFontSet *s);
421
422/* fcdefault.c */
423void
424FcDefaultSubstitute (FcPattern *pattern);
425
426/* fcdir.c */
427FcBool
428FcFileScan (FcFontSet       *set,
429            FcStrSet        *dirs,
430            FcFileCache     *cache,
431            FcBlanks        *blanks,
432            const FcChar8   *file,
433            FcBool          force);
434
435FcBool
436FcDirScan (FcFontSet        *set,
437           FcStrSet         *dirs,
438           FcFileCache      *cache,
439           FcBlanks         *blanks,
440           const FcChar8    *dir,
441           FcBool           force);
442
443FcBool
444FcDirSave (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir);
445
446/* fcfreetype.c */
447FcPattern *
448FcFreeTypeQuery (const FcChar8 *file, int id, FcBlanks *blanks, int *count);
449
450/* fcfs.c */
451
452FcFontSet *
453FcFontSetCreate (void);
454
455void
456FcFontSetDestroy (FcFontSet *s);
457
458FcBool
459FcFontSetAdd (FcFontSet *s, FcPattern *font);
460
461/* fcinit.c */
462FcConfig *
463FcInitLoadConfig (void);
464
465FcConfig *
466FcInitLoadConfigAndFonts (void);
467
468FcBool
469FcInit (void);
470
471void
472FcFini (void);
473
474int
475FcGetVersion (void);
476
477FcBool
478FcInitReinitialize (void);
479
480FcBool
481FcInitBringUptoDate (void);
482
483/* fclang.c */
484FcLangSet *
485FcLangSetCreate (void);
486
487void
488FcLangSetDestroy (FcLangSet *ls);
489
490FcLangSet *
491FcLangSetCopy (const FcLangSet *ls);
492
493FcBool
494FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang);
495
496FcLangResult
497FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang);
498
499FcLangResult
500FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb);
501
502FcBool
503FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb);
504
505FcBool
506FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb);
507
508FcChar32
509FcLangSetHash (const FcLangSet *ls);
510
511/* fclist.c */
512FcObjectSet *
513FcObjectSetCreate (void);
514
515FcBool
516FcObjectSetAdd (FcObjectSet *os, const char *object);
517
518void
519FcObjectSetDestroy (FcObjectSet *os);
520
521FcObjectSet *
522FcObjectSetVaBuild (const char *first, va_list va);
523
524FcObjectSet *
525FcObjectSetBuild (const char *first, ...);
526
527FcFontSet *
528FcFontSetList (FcConfig     *config,
529               FcFontSet    **sets,
530               int          nsets,
531               FcPattern    *p,
532               FcObjectSet  *os);
533
534FcFontSet *
535FcFontList (FcConfig    *config,
536            FcPattern   *p,
537            FcObjectSet *os);
538
539/* fcatomic.c */
540
541FcAtomic *
542FcAtomicCreate (const FcChar8   *file);
543
544FcBool
545FcAtomicLock (FcAtomic *atomic);
546
547FcChar8 *
548FcAtomicNewFile (FcAtomic *atomic);
549
550FcChar8 *
551FcAtomicOrigFile (FcAtomic *atomic);
552
553FcBool
554FcAtomicReplaceOrig (FcAtomic *atomic);
555
556void
557FcAtomicDeleteNew (FcAtomic *atomic);
558
559void
560FcAtomicUnlock (FcAtomic *atomic);
561
562void
563FcAtomicDestroy (FcAtomic *atomic);
564
565/* fcmatch.c */
566FcPattern *
567FcFontSetMatch (FcConfig    *config,
568                FcFontSet   **sets,
569                int         nsets,
570                FcPattern   *p,
571                FcResult    *result);
572
573FcPattern *
574FcFontMatch (FcConfig   *config,
575             FcPattern  *p, 
576             FcResult   *result);
577
578FcPattern *
579FcFontRenderPrepare (FcConfig       *config,
580                     FcPattern      *pat,
581                     FcPattern      *font);
582
583FcFontSet *
584FcFontSetSort (FcConfig     *config,
585               FcFontSet    **sets,
586               int          nsets,
587               FcPattern    *p,
588               FcBool       trim,
589               FcCharSet    **csp,
590               FcResult     *result);
591
592FcFontSet *
593FcFontSort (FcConfig     *config,
594            FcPattern    *p,
595            FcBool       trim,
596            FcCharSet    **csp,
597            FcResult     *result);
598
599void
600FcFontSetSortDestroy (FcFontSet *fs);
601
602/* fcmatrix.c */
603FcMatrix *
604FcMatrixCopy (const FcMatrix *mat);
605
606FcBool
607FcMatrixEqual (const FcMatrix *mat1, const FcMatrix *mat2);
608
609void
610FcMatrixMultiply (FcMatrix *result, const FcMatrix *a, const FcMatrix *b);
611
612void
613FcMatrixRotate (FcMatrix *m, double c, double s);
614
615void
616FcMatrixScale (FcMatrix *m, double sx, double sy);
617
618void
619FcMatrixShear (FcMatrix *m, double sh, double sv);
620
621/* fcname.c */
622
623FcBool
624FcNameRegisterObjectTypes (const FcObjectType *types, int ntype);
625
626FcBool
627FcNameUnregisterObjectTypes (const FcObjectType *types, int ntype);
628   
629const FcObjectType *
630FcNameGetObjectType (const char *object);
631
632FcBool
633FcNameRegisterConstants (const FcConstant *consts, int nconsts);
634
635FcBool
636FcNameUnregisterConstants (const FcConstant *consts, int nconsts);
637   
638const FcConstant *
639FcNameGetConstant (FcChar8 *string);
640
641FcBool
642FcNameConstant (FcChar8 *string, int *result);
643
644FcPattern *
645FcNameParse (const FcChar8 *name);
646
647FcChar8 *
648FcNameUnparse (FcPattern *pat);
649
650/* fcpat.c */
651FcPattern *
652FcPatternCreate (void);
653
654FcPattern *
655FcPatternDuplicate (const FcPattern *p);
656
657void
658FcPatternReference (FcPattern *p);
659
660void
661FcValueDestroy (FcValue v);
662
663FcBool
664FcValueEqual (FcValue va, FcValue vb);
665
666FcValue
667FcValueSave (FcValue v);
668
669void
670FcPatternDestroy (FcPattern *p);
671
672FcBool
673FcPatternEqual (const FcPattern *pa, const FcPattern *pb);
674
675FcBool
676FcPatternEqualSubset (const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os);
677
678FcChar32
679FcPatternHash (const FcPattern *p);
680
681FcBool
682FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append);
683   
684FcBool
685FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append);
686   
687FcResult
688FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v);
689   
690FcBool
691FcPatternDel (FcPattern *p, const char *object);
692
693FcBool
694FcPatternRemove (FcPattern *p, const char *object, int id);
695
696FcBool
697FcPatternAddInteger (FcPattern *p, const char *object, int i);
698
699FcBool
700FcPatternAddDouble (FcPattern *p, const char *object, double d);
701
702FcBool
703FcPatternAddString (FcPattern *p, const char *object, const FcChar8 *s);
704
705FcBool
706FcPatternAddMatrix (FcPattern *p, const char *object, const FcMatrix *s);
707
708FcBool
709FcPatternAddCharSet (FcPattern *p, const char *object, const FcCharSet *c);
710
711FcBool
712FcPatternAddBool (FcPattern *p, const char *object, FcBool b);
713
714FcBool
715FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls);
716
717FcResult
718FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i);
719
720FcResult
721FcPatternGetDouble (const FcPattern *p, const char *object, int n, double *d);
722
723FcResult
724FcPatternGetString (const FcPattern *p, const char *object, int n, FcChar8 ** s);
725
726FcResult
727FcPatternGetMatrix (const FcPattern *p, const char *object, int n, FcMatrix **s);
728
729FcResult
730FcPatternGetCharSet (const FcPattern *p, const char *object, int n, FcCharSet **c);
731
732FcResult
733FcPatternGetBool (const FcPattern *p, const char *object, int n, FcBool *b);
734
735FcResult
736FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls);
737
738FcPattern *
739FcPatternVaBuild (FcPattern *orig, va_list va);
740   
741FcPattern *
742FcPatternBuild (FcPattern *orig, ...);
743
744/* fcstr.c */
745
746FcChar8 *
747FcStrCopy (const FcChar8 *s);
748
749FcChar8 *
750FcStrCopyFilename (const FcChar8 *s);
751   
752/* These are ASCII only, suitable only for pattern element names */
753#define FcIsUpper(c)    ((0101 <= (c) && (c) <= 0132))
754#define FcIsLower(c)    ((0141 <= (c) && (c) <= 0172))
755#define FcToLower(c)    (FcIsUpper(c) ? (c) - 0101 + 0141 : (c))
756
757FcChar8 *
758FcStrDowncase (const FcChar8 *s);
759
760int
761FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2);
762
763int
764FcStrCmp (const FcChar8 *s1, const FcChar8 *s2);
765
766const FcChar8 *
767FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2);
768
769const FcChar8 *
770FcStrStr (const FcChar8 *s1, const FcChar8 *s2);
771
772int
773FcUtf8ToUcs4 (const FcChar8 *src_orig,
774              FcChar32      *dst,
775              int           len);
776
777FcBool
778FcUtf8Len (const FcChar8    *string,
779           int              len,
780           int              *nchar,
781           int              *wchar);
782
783#define FC_UTF8_MAX_LEN 6
784
785int
786FcUcs4ToUtf8 (FcChar32  ucs4,
787              FcChar8   dest[FC_UTF8_MAX_LEN]);
788
789int
790FcUtf16ToUcs4 (const FcChar8    *src_orig,
791               FcEndian         endian,
792               FcChar32         *dst,
793               int              len);       /* in bytes */
794
795FcBool
796FcUtf16Len (const FcChar8   *string,
797            FcEndian        endian,
798            int             len,            /* in bytes */
799            int             *nchar,
800            int             *wchar);
801
802FcChar8 *
803FcStrDirname (const FcChar8 *file);
804
805FcChar8 *
806FcStrBasename (const FcChar8 *file);
807
808FcStrSet *
809FcStrSetCreate (void);
810
811FcBool
812FcStrSetMember (FcStrSet *set, const FcChar8 *s);
813
814FcBool
815FcStrSetEqual (FcStrSet *sa, FcStrSet *sb);
816
817FcBool
818FcStrSetAdd (FcStrSet *set, const FcChar8 *s);
819
820FcBool
821FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s);
822
823FcBool
824FcStrSetDel (FcStrSet *set, const FcChar8 *s);
825
826void
827FcStrSetDestroy (FcStrSet *set);
828
829FcStrList *
830FcStrListCreate (FcStrSet *set);
831
832FcChar8 *
833FcStrListNext (FcStrList *list);
834
835void
836FcStrListDone (FcStrList *list);
837
838/* fcxml.c */
839FcBool
840FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain);
841
842_FCFUNCPROTOEND
843
844#endif /* _FONTCONFIG_H_ */
Note: See TracBrowser for help on using the repository browser.