From 4984242e3681a50a9c19f352783f145f91ecb868 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 4 Sep 2006 00:47:07 -0700 Subject: [PATCH] Hide private functions in shared library. Export functionality for utilities. Borrowing header stuff written for cairo, fontconfig now exposes in the shared library only the symbols which are included in the public header files. All private symbols are hidden using suitable compiler directives. A few new public functions were required for the fontconfig utility programs (fc-cat and fc-cache) so those were added, bumping the .so minor version number in the process. --- configure.in | 9 +- fc-cache/fc-cache.c | 30 ++- fc-cat/Makefile.am | 2 +- fc-cat/fc-cat.c | 37 ++-- fontconfig/fcfreetype.h | 14 +- fontconfig/fontconfig.h | 403 +++++++++++++++++++++++----------------- src/fccache.c | 48 +++++ src/fccharset.c | 5 - src/fcint.h | 337 ++++++++++++++++----------------- 9 files changed, 481 insertions(+), 404 deletions(-) diff --git a/configure.in b/configure.in index e8e1062..8aac36e 100644 --- a/configure.in +++ b/configure.in @@ -38,11 +38,14 @@ AM_MAINTAINER_MODE dnl libtool versioning -LT_CURRENT=1 -LT_REVISION=4 +dnl bump revision when fixing bugs +dnl bump current and age, reset revision to zero when adding APIs +dnl bump current, leave age, reset revision to zero when changing/removing APIS +LT_CURRENT=2 +LT_REVISION=0 AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) -LT_AGE=0 +LT_AGE=1 LT_VERSION_INFO="$LT_CURRENT:$LT_REVISION:$LT_AGE" AC_SUBST(LT_VERSION_INFO) diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c index f20d3a7..de29351 100644 --- a/fc-cache/fc-cache.c +++ b/fc-cache/fc-cache.c @@ -31,7 +31,7 @@ #define HAVE_GETOPT 1 #endif -#include "fcint.h" +#include #include #include #include @@ -130,15 +130,14 @@ nsubdirs (FcStrSet *set) static int scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose) { - int ret = 0; - const FcChar8 *dir; - FcFontSet *set; - FcStrSet *subdirs; - FcStrList *sublist; - FcCache *cache; - struct stat statb; - FcBool was_valid; - int i; + int ret = 0; + const FcChar8 *dir; + FcStrSet *subdirs; + FcStrList *sublist; + FcCache *cache; + struct stat statb; + FcBool was_valid; + int i; /* * Now scan all of the directories into separate databases @@ -223,19 +222,17 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, } } - set = FcCacheSet (cache); - if (was_valid) { if (verbose) printf ("skipping, %d fonts, %d dirs\n", - set->nfont, cache->dirs_count); + FcCacheNumFont (cache), FcCacheNumSubdir (cache)); } else { if (verbose) printf ("caching, %d fonts, %d dirs\n", - set->nfont, cache->dirs_count); + FcCacheNumFont (cache), FcCacheNumSubdir (cache)); if (!FcDirCacheValid (dir)) { @@ -253,7 +250,7 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcDirCacheUnload (cache); continue; } - for (i = 0; i < cache->dirs_count; i++) + for (i = 0; i < FcCacheNumSubdir (cache); i++) FcStrSetAdd (subdirs, FcCacheSubdir (cache, i)); FcDirCacheUnload (cache); @@ -264,7 +261,6 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, { fprintf (stderr, "%s: Can't create subdir list\n", dir); ret++; - FcDirCacheUnload (cache); continue; } FcStrSetAdd (processed_dirs, dir); @@ -311,7 +307,7 @@ cleanCacheDirectory (FcConfig *config, FcChar8 *dir, FcBool verbose) while ((ent = readdir (d))) { FcChar8 *file_name; - FcChar8 *target_dir; + const FcChar8 *target_dir; if (ent->d_name[0] == '.') continue; diff --git a/fc-cat/Makefile.am b/fc-cat/Makefile.am index 91e5ad7..828f138 100644 --- a/fc-cat/Makefile.am +++ b/fc-cat/Makefile.am @@ -27,7 +27,7 @@ FC_CAT_SRC=${top_srcdir}/fc-cat SGML = ${FC_CAT_SRC}/fc-cat.sgml -INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) +INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) bin_PROGRAMS=fc-cat diff --git a/fc-cat/fc-cat.c b/fc-cat/fc-cat.c index bb804ab..476798e 100644 --- a/fc-cat/fc-cat.c +++ b/fc-cat/fc-cat.c @@ -31,10 +31,11 @@ #define HAVE_GETOPT 1 #endif -#include "../src/fccache.c" +#include #include "../fc-arch/fcarch.h" #include #include +#include #include #include #include @@ -173,20 +174,20 @@ usage (char *program) */ static const FcChar8 * -file_base_name (const char *cache, const FcChar8 *file) +file_base_name (const FcChar8 *cache, const FcChar8 *file) { - const FcChar8 *cache_slash; - int cache_len = strlen (cache); + int cache_len = strlen ((char *) cache); - if (!strncmp (cache, file, cache_len) && file[cache_len] == '/') + if (!strncmp ((char *) cache, (char *) file, cache_len) && file[cache_len] == '/') return file + cache_len + 1; return file; } +#define FC_FONT_FILE_DIR ((FcChar8 *) ".dir") + static FcBool -cache_print_set (FcFontSet *set, FcStrSet *dirs, char *base_name, FcBool verbose) +cache_print_set (FcFontSet *set, FcStrSet *dirs, const FcChar8 *base_name, FcBool verbose) { - FcPattern *font; FcChar8 *name, *dir; const FcChar8 *file, *base; int ret; @@ -219,9 +220,7 @@ cache_print_set (FcFontSet *set, FcStrSet *dirs, char *base_name, FcBool verbose for (n = 0; n < set->nfont; n++) { - FcPattern **fonts = FcFontSetFonts (set); - FcPattern *encoded_font = fonts[n]; - FcPattern *font = FcEncodedOffsetToPtr (set, encoded_font, FcPattern); + FcPattern *font = set->fonts[n]; if (FcPatternGetString (font, FC_FILE, 0, (FcChar8 **) &file) != FcResultMatch) goto bail3; @@ -321,7 +320,7 @@ main (int argc, char **argv) { for (; i < argc; i++) { - if (!FcStrSetAddFilename (args, argv[i])) + if (!FcStrSetAddFilename (args, (const FcChar8 *) argv[i])) { fprintf (stderr, "%s: malloc failure\n", argv[0]); return 1; @@ -356,8 +355,6 @@ main (int argc, char **argv) while ((arg = FcStrListNext (arglist))) { int j; - off_t size; - intptr_t *cache_dirs; FcChar8 *cache_file = NULL; struct stat file_stat; @@ -373,17 +370,12 @@ main (int argc, char **argv) } dirs = FcStrSetCreate (); - fs = FcCacheSet (cache); - cache_dirs = FcCacheDirs (cache); - for (j = 0; j < cache->dirs_count; j++) + fs = FcCacheCopySet (cache); + for (j = 0; j < FcCacheNumSubdir (cache); j++) { - FcStrSetAdd (dirs, FcOffsetToPtr (cache_dirs, - cache_dirs[j], - FcChar8)); + FcStrSetAdd (dirs, FcCacheSubdir (cache, j)); if (recurse) - FcStrSetAdd (args, FcOffsetToPtr (cache_dirs, - cache_dirs[j], - FcChar8)); + FcStrSetAdd (args, FcCacheSubdir (cache, j)); } if (verbose) @@ -398,6 +390,7 @@ main (int argc, char **argv) FcStrSetDestroy (dirs); + FcFontSetDestroy (fs); FcDirCacheUnload (cache); if (cache_file) FcStrFree (cache_file); diff --git a/fontconfig/fcfreetype.h b/fontconfig/fcfreetype.h index a6cf2e6..0c2a81c 100644 --- a/fontconfig/fcfreetype.h +++ b/fontconfig/fcfreetype.h @@ -27,21 +27,25 @@ #include #include FT_FREETYPE_H +#ifndef FcPublic +#define FcPublic +#endif + _FCFUNCPROTOBEGIN -FT_UInt +FcPublic FT_UInt FcFreeTypeCharIndex (FT_Face face, FcChar32 ucs4); -FcCharSet * +FcPublic FcCharSet * FcFreeTypeCharSetAndSpacing (FT_Face face, FcBlanks *blanks, int *spacing); -FcCharSet * +FcPublic FcCharSet * FcFreeTypeCharSet (FT_Face face, FcBlanks *blanks); -FcResult +FcPublic FcResult FcPatternGetFTFace (const FcPattern *p, const char *object, int n, FT_Face *f); -FcBool +FcPublic FcBool FcPatternAddFTFace (FcPattern *p, const char *object, const FT_Face f); _FCFUNCPROTOEND diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h index 6ca1cf4..92a6d08 100644 --- a/fontconfig/fontconfig.h +++ b/fontconfig/fontconfig.h @@ -25,6 +25,9 @@ #ifndef _FONTCONFIG_H_ #define _FONTCONFIG_H_ +#include +#include +#include #include #if defined(__GNUC__) && (__GNUC__ >= 4) @@ -33,6 +36,10 @@ #define FC_ATTRIBUTE_SENTINEL(x) #endif +#ifndef FcPublic +#define FcPublic +#endif + typedef unsigned char FcChar8; typedef unsigned short FcChar16; typedef unsigned int FcChar32; @@ -271,59 +278,81 @@ typedef struct _FcStrList FcStrList; typedef struct _FcStrSet FcStrSet; -_FCFUNCPROTOBEGIN +typedef struct _FcCache FcCache; -FcBool -FcDirCacheValid (const FcChar8 *cache_file); +_FCFUNCPROTOBEGIN /* fcblanks.c */ -FcBlanks * +FcPublic FcBlanks * FcBlanksCreate (void); -void +FcPublic void FcBlanksDestroy (FcBlanks *b); -FcBool +FcPublic FcBool FcBlanksAdd (FcBlanks *b, FcChar32 ucs4); -FcBool +FcPublic FcBool FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4); +/* fccache.c */ + +FcPublic const FcChar8 * +FcCacheDir(const FcCache *c); + +FcPublic FcFontSet * +FcCacheCopySet(const FcCache *c); + +FcPublic const FcChar8 * +FcCacheSubdir (const FcCache *c, int i); + +FcPublic int +FcCacheNumSubdir (const FcCache *c); + +FcPublic int +FcCacheNumFont (const FcCache *c); + +FcBool +FcDirCacheUnlink (const FcChar8 *dir, FcConfig *config); + +FcPublic FcBool +FcDirCacheValid (const FcChar8 *cache_file); + /* fccfg.c */ -FcChar8 * +FcPublic FcChar8 * FcConfigHome (void); -FcBool +FcPublic FcBool FcConfigEnableHome (FcBool enable); -FcChar8 * +FcPublic FcChar8 * FcConfigFilename (const FcChar8 *url); -FcConfig * +FcPublic FcConfig * FcConfigCreate (void); -void +FcPublic void FcConfigDestroy (FcConfig *config); -FcBool +FcPublic FcBool FcConfigSetCurrent (FcConfig *config); -FcConfig * +FcPublic FcConfig * FcConfigGetCurrent (void); -FcBool +FcPublic FcBool FcConfigUptoDate (FcConfig *config); -FcBool +FcPublic FcBool FcConfigBuildFonts (FcConfig *config); -FcStrList * +FcPublic FcStrList * FcConfigGetFontDirs (FcConfig *config); -FcStrList * +FcPublic FcStrList * FcConfigGetConfigDirs (FcConfig *config); -FcStrList * +FcPublic FcStrList * FcConfigGetConfigFiles (FcConfig *config); FcChar8 * @@ -332,108 +361,124 @@ FcConfigGetCache (FcConfig *config); FcBlanks * FcConfigGetBlanks (FcConfig *config); -int +FcPublic FcStrList * +FcConfigGetCacheDirs (FcConfig *config); + +FcPublic int FcConfigGetRescanInverval (FcConfig *config); -FcBool +FcPublic FcBool FcConfigSetRescanInverval (FcConfig *config, int rescanInterval); -FcFontSet * +FcPublic FcFontSet * FcConfigGetFonts (FcConfig *config, FcSetName set); -FcBool +FcPublic FcBool FcConfigAppFontAddFile (FcConfig *config, const FcChar8 *file); -FcBool +FcPublic FcBool FcConfigAppFontAddDir (FcConfig *config, const FcChar8 *dir); -void +FcPublic void FcConfigAppFontClear (FcConfig *config); -FcBool +FcPublic FcBool FcConfigSubstituteWithPat (FcConfig *config, FcPattern *p, FcPattern *p_pat, FcMatchKind kind); -FcBool +FcPublic FcBool FcConfigSubstitute (FcConfig *config, FcPattern *p, FcMatchKind kind); /* fccharset.c */ -FcCharSet * +FcPublic FcCharSet* FcCharSetCreate (void); -void +/* deprecated alias for FcCharSetCreate */ +FcPublic FcCharSet * +FcCharSetNew (void); + +FcPublic void FcCharSetDestroy (FcCharSet *fcs); -FcBool +FcPublic FcBool FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4); -FcCharSet * +FcPublic FcCharSet* FcCharSetCopy (FcCharSet *src); -FcBool +FcPublic FcBool FcCharSetEqual (const FcCharSet *a, const FcCharSet *b); -FcCharSet * +FcPublic FcCharSet* FcCharSetIntersect (const FcCharSet *a, const FcCharSet *b); -FcCharSet * +FcPublic FcCharSet* FcCharSetUnion (const FcCharSet *a, const FcCharSet *b); -FcCharSet * +FcPublic FcCharSet* FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b); -FcBool +FcPublic FcBool FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4); -FcChar32 +FcPublic FcChar32 FcCharSetCount (const FcCharSet *a); -FcChar32 +FcPublic FcChar32 FcCharSetIntersectCount (const FcCharSet *a, const FcCharSet *b); -FcChar32 +FcPublic FcChar32 FcCharSetSubtractCount (const FcCharSet *a, const FcCharSet *b); -FcBool +FcPublic FcBool FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b); #define FC_CHARSET_MAP_SIZE (256/32) #define FC_CHARSET_DONE ((FcChar32) -1) -FcChar32 +FcPublic FcChar32 FcCharSetFirstPage (const FcCharSet *a, FcChar32 map[FC_CHARSET_MAP_SIZE], FcChar32 *next); -FcChar32 +FcPublic FcChar32 FcCharSetNextPage (const FcCharSet *a, FcChar32 map[FC_CHARSET_MAP_SIZE], FcChar32 *next); +/* + * old coverage API, rather hard to use correctly + */ + +FcPublic FcChar32 +FcCharSetCoverage (const FcCharSet *a, FcChar32 page, FcChar32 *result); /* fcdbg.c */ -void +FcPublic void FcValuePrint (const FcValue v); -void +FcPublic void FcPatternPrint (const FcPattern *p); -void +FcPublic void FcFontSetPrint (const FcFontSet *s); /* fcdefault.c */ -void +FcPublic void FcDefaultSubstitute (FcPattern *pattern); /* fcdir.c */ -FcBool +FcPublic FcBool +FcFileIsDir (const FcChar8 *file); + +FcPublic FcBool FcFileScan (FcFontSet *set, FcStrSet *dirs, FcFileCache *cache, @@ -441,7 +486,7 @@ FcFileScan (FcFontSet *set, const FcChar8 *file, FcBool force); -FcBool +FcPublic FcBool FcDirScan (FcFontSet *set, FcStrSet *dirs, FcFileCache *cache, @@ -449,147 +494,159 @@ FcDirScan (FcFontSet *set, const FcChar8 *dir, FcBool force); -FcBool +FcPublic FcBool FcDirSave (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir); +FcPublic FcCache * +FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file); + +FcPublic FcCache * +FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config); + +FcPublic FcCache * +FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat); + +FcPublic void +FcDirCacheUnload (FcCache *cache); + /* fcfreetype.c */ -FcPattern * +FcPublic FcPattern * FcFreeTypeQuery (const FcChar8 *file, int id, FcBlanks *blanks, int *count); /* fcfs.c */ -FcFontSet * +FcPublic FcFontSet * FcFontSetCreate (void); -void +FcPublic void FcFontSetDestroy (FcFontSet *s); -FcBool +FcPublic FcBool FcFontSetAdd (FcFontSet *s, FcPattern *font); /* fcinit.c */ -FcConfig * +FcPublic FcConfig * FcInitLoadConfig (void); -FcConfig * +FcPublic FcConfig * FcInitLoadConfigAndFonts (void); -FcBool +FcPublic FcBool FcInit (void); -void +FcPublic void FcFini (void); -int +FcPublic int FcGetVersion (void); -FcBool +FcPublic FcBool FcInitReinitialize (void); -FcBool +FcPublic FcBool FcInitBringUptoDate (void); /* fclang.c */ -FcLangSet * +FcPublic FcLangSet* FcLangSetCreate (void); -void +FcPublic void FcLangSetDestroy (FcLangSet *ls); -FcLangSet * +FcPublic FcLangSet* FcLangSetCopy (const FcLangSet *ls); -FcBool +FcPublic FcBool FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang); -FcLangResult +FcPublic FcLangResult FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang); -FcLangResult +FcPublic FcLangResult FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb); -FcBool +FcPublic FcBool FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb); -FcBool +FcPublic FcBool FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb); -FcChar32 +FcPublic FcChar32 FcLangSetHash (const FcLangSet *ls); /* fclist.c */ -FcObjectSet * +FcPublic FcObjectSet * FcObjectSetCreate (void); -FcBool +FcPublic FcBool FcObjectSetAdd (FcObjectSet *os, const char *object); -void +FcPublic void FcObjectSetDestroy (FcObjectSet *os); -FcObjectSet * +FcPublic FcObjectSet * FcObjectSetVaBuild (const char *first, va_list va); -FcObjectSet * +FcPublic FcObjectSet * FcObjectSetBuild (const char *first, ...) FC_ATTRIBUTE_SENTINEL(0); -FcFontSet * +FcPublic FcFontSet * FcFontSetList (FcConfig *config, FcFontSet **sets, int nsets, FcPattern *p, FcObjectSet *os); -FcFontSet * +FcPublic FcFontSet * FcFontList (FcConfig *config, FcPattern *p, FcObjectSet *os); /* fcatomic.c */ -FcAtomic * +FcPublic FcAtomic * FcAtomicCreate (const FcChar8 *file); -FcBool +FcPublic FcBool FcAtomicLock (FcAtomic *atomic); -FcChar8 * +FcPublic FcChar8 * FcAtomicNewFile (FcAtomic *atomic); -FcChar8 * +FcPublic FcChar8 * FcAtomicOrigFile (FcAtomic *atomic); -FcBool +FcPublic FcBool FcAtomicReplaceOrig (FcAtomic *atomic); -void +FcPublic void FcAtomicDeleteNew (FcAtomic *atomic); -void +FcPublic void FcAtomicUnlock (FcAtomic *atomic); -void +FcPublic void FcAtomicDestroy (FcAtomic *atomic); /* fcmatch.c */ -FcPattern * +FcPublic FcPattern * FcFontSetMatch (FcConfig *config, FcFontSet **sets, int nsets, FcPattern *p, FcResult *result); -FcPattern * +FcPublic FcPattern * FcFontMatch (FcConfig *config, FcPattern *p, FcResult *result); -FcPattern * +FcPublic FcPattern * FcFontRenderPrepare (FcConfig *config, FcPattern *pat, FcPattern *font); -FcFontSet * +FcPublic FcFontSet * FcFontSetSort (FcConfig *config, FcFontSet **sets, int nsets, @@ -598,192 +655,198 @@ FcFontSetSort (FcConfig *config, FcCharSet **csp, FcResult *result); -FcFontSet * +FcPublic FcFontSet * FcFontSort (FcConfig *config, FcPattern *p, FcBool trim, FcCharSet **csp, FcResult *result); -void +FcPublic void FcFontSetSortDestroy (FcFontSet *fs); /* fcmatrix.c */ -FcMatrix * +FcPublic FcMatrix * FcMatrixCopy (const FcMatrix *mat); -FcBool +FcPublic FcBool FcMatrixEqual (const FcMatrix *mat1, const FcMatrix *mat2); -void +FcPublic void FcMatrixMultiply (FcMatrix *result, const FcMatrix *a, const FcMatrix *b); -void +FcPublic void FcMatrixRotate (FcMatrix *m, double c, double s); -void +FcPublic void FcMatrixScale (FcMatrix *m, double sx, double sy); -void +FcPublic void FcMatrixShear (FcMatrix *m, double sh, double sv); /* fcname.c */ -FcBool +FcPublic FcBool FcNameRegisterObjectTypes (const FcObjectType *types, int ntype); -FcBool +FcPublic FcBool FcNameUnregisterObjectTypes (const FcObjectType *types, int ntype); -const FcObjectType * +FcPublic const FcObjectType * FcNameGetObjectType (const char *object); -FcBool +FcPublic FcBool FcNameRegisterConstants (const FcConstant *consts, int nconsts); -FcBool +FcPublic FcBool FcNameUnregisterConstants (const FcConstant *consts, int nconsts); -const FcConstant * +FcPublic const FcConstant * FcNameGetConstant (FcChar8 *string); -FcBool +FcPublic FcBool FcNameConstant (FcChar8 *string, int *result); -FcPattern * +FcPublic FcPattern * FcNameParse (const FcChar8 *name); -FcChar8 * +FcPublic FcChar8 * FcNameUnparse (FcPattern *pat); /* fcpat.c */ -FcPattern * +FcPublic FcPattern * FcPatternCreate (void); -FcPattern * +FcPublic FcPattern * FcPatternDuplicate (const FcPattern *p); -void +FcPublic void FcPatternReference (FcPattern *p); -void +FcPublic void FcValueDestroy (FcValue v); -FcBool +FcPublic FcBool FcValueEqual (FcValue va, FcValue vb); -FcValue +FcPublic FcValue FcValueSave (FcValue v); -void +FcPublic void FcPatternDestroy (FcPattern *p); -FcBool +FcPublic FcBool FcPatternEqual (const FcPattern *pa, const FcPattern *pb); -FcBool +FcPublic FcBool FcPatternEqualSubset (const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os); -FcChar32 +FcPublic FcChar32 FcPatternHash (const FcPattern *p); -FcBool +FcPublic FcBool FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append); -FcBool +FcPublic FcBool FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append); -FcResult +FcPublic FcResult FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v); -FcBool +FcPublic FcBool FcPatternDel (FcPattern *p, const char *object); -FcBool +FcPublic FcBool FcPatternRemove (FcPattern *p, const char *object, int id); -FcBool +FcPublic FcBool FcPatternAddInteger (FcPattern *p, const char *object, int i); -FcBool +FcPublic FcBool FcPatternAddDouble (FcPattern *p, const char *object, double d); -FcBool +FcPublic FcBool FcPatternAddString (FcPattern *p, const char *object, const FcChar8 *s); -FcBool +FcPublic FcBool FcPatternAddMatrix (FcPattern *p, const char *object, const FcMatrix *s); -FcBool +FcPublic FcBool FcPatternAddCharSet (FcPattern *p, const char *object, const FcCharSet *c); -FcBool +FcPublic FcBool FcPatternAddBool (FcPattern *p, const char *object, FcBool b); -FcBool +FcPublic FcBool FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls); -FcResult +FcPublic FcResult FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i); -FcResult +FcPublic FcResult FcPatternGetDouble (const FcPattern *p, const char *object, int n, double *d); -FcResult +FcPublic FcResult FcPatternGetString (const FcPattern *p, const char *object, int n, FcChar8 ** s); -FcResult +FcPublic FcResult FcPatternGetMatrix (const FcPattern *p, const char *object, int n, FcMatrix **s); -FcResult +FcPublic FcResult FcPatternGetCharSet (const FcPattern *p, const char *object, int n, FcCharSet **c); -FcResult +FcPublic FcResult FcPatternGetBool (const FcPattern *p, const char *object, int n, FcBool *b); -FcResult +FcPublic FcResult FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls); -FcPattern * +FcPublic FcPattern * FcPatternVaBuild (FcPattern *orig, va_list va); -FcPattern * +FcPublic FcPattern * FcPatternBuild (FcPattern *orig, ...) FC_ATTRIBUTE_SENTINEL(0); /* fcstr.c */ -FcChar8 * +FcPublic FcChar8 * FcStrCopy (const FcChar8 *s); -FcChar8 * +FcPublic FcChar8 * FcStrCopyFilename (const FcChar8 *s); +FcPublic FcChar8 * +FcStrPlus (const FcChar8 *s1, const FcChar8 *s2); + +FcPublic void +FcStrFree (FcChar8 *s); + /* These are ASCII only, suitable only for pattern element names */ #define FcIsUpper(c) ((0101 <= (c) && (c) <= 0132)) #define FcIsLower(c) ((0141 <= (c) && (c) <= 0172)) #define FcToLower(c) (FcIsUpper(c) ? (c) - 0101 + 0141 : (c)) -FcChar8 * +FcPublic FcChar8 * FcStrDowncase (const FcChar8 *s); -int +FcPublic int FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); -int +FcPublic int FcStrCmp (const FcChar8 *s1, const FcChar8 *s2); -const FcChar8 * +FcPublic const FcChar8 * FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); -const FcChar8 * +FcPublic const FcChar8 * FcStrStr (const FcChar8 *s1, const FcChar8 *s2); -int +FcPublic int FcUtf8ToUcs4 (const FcChar8 *src_orig, FcChar32 *dst, int len); -FcBool +FcPublic FcBool FcUtf8Len (const FcChar8 *string, int len, int *nchar, @@ -791,61 +854,61 @@ FcUtf8Len (const FcChar8 *string, #define FC_UTF8_MAX_LEN 6 -int +FcPublic int FcUcs4ToUtf8 (FcChar32 ucs4, FcChar8 dest[FC_UTF8_MAX_LEN]); -int +FcPublic int FcUtf16ToUcs4 (const FcChar8 *src_orig, FcEndian endian, FcChar32 *dst, int len); /* in bytes */ -FcBool +FcPublic FcBool FcUtf16Len (const FcChar8 *string, FcEndian endian, int len, /* in bytes */ int *nchar, int *wchar); -FcChar8 * +FcPublic FcChar8 * FcStrDirname (const FcChar8 *file); -FcChar8 * +FcPublic FcChar8 * FcStrBasename (const FcChar8 *file); -FcStrSet * +FcPublic FcStrSet * FcStrSetCreate (void); -FcBool -FcStrSetMember (FcStrSet *set, const FcChar8 *s); +FcPublic FcBool +FcStrSetMember (FcPublic FcStrSet *set, const FcChar8 *s); -FcBool -FcStrSetEqual (FcStrSet *sa, FcStrSet *sb); +FcPublic FcBool +FcStrSetEqual (FcPublic FcStrSet *sa, FcPublic FcStrSet *sb); -FcBool -FcStrSetAdd (FcStrSet *set, const FcChar8 *s); +FcPublic FcBool +FcStrSetAdd (FcPublic FcStrSet *set, const FcChar8 *s); -FcBool -FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s); +FcPublic FcBool +FcStrSetAddFilename (FcPublic FcStrSet *set, const FcChar8 *s); -FcBool -FcStrSetDel (FcStrSet *set, const FcChar8 *s); +FcPublic FcBool +FcStrSetDel (FcPublic FcStrSet *set, const FcChar8 *s); -void -FcStrSetDestroy (FcStrSet *set); +FcPublic void +FcStrSetDestroy (FcPublic FcStrSet *set); -FcStrList * -FcStrListCreate (FcStrSet *set); +FcPublic FcStrList * +FcPublic FcStrListCreate (FcPublic FcStrSet *set); -FcChar8 * -FcStrListNext (FcStrList *list); +FcPublic FcChar8 * +FcPublic FcStrListNext (FcStrList *list); -void -FcStrListDone (FcStrList *list); +FcPublic void +FcPublic FcStrListDone (FcStrList *list); /* fcxml.c */ -FcBool +FcPublic FcBool FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain); _FCFUNCPROTOEND diff --git a/src/fccache.c b/src/fccache.c index 05dc7ee..aa03990 100644 --- a/src/fccache.c +++ b/src/fccache.c @@ -575,6 +575,54 @@ FcDirCacheWrite (FcCache *cache, FcConfig *config) return FcFalse; } +/* + * Hokey little macro trick to permit the definitions of C functions + * with the same name as CPP macros + */ +#define args(x...) (x) + +const FcChar8 * +FcCacheDir args(const FcCache *c) +{ + return FcCacheDir (c); +} + +FcFontSet * +FcCacheCopySet args(const FcCache *c) +{ + FcFontSet *old = FcCacheSet (c); + FcFontSet *new = FcFontSetCreate (); + int i; + + if (!new) + return NULL; + for (i = 0; i < old->nfont; i++) + if (!FcFontSetAdd (new, FcFontSetFont (old, i))) + { + FcFontSetDestroy (new); + return NULL; + } + return new; +} + +const FcChar8 * +FcCacheSubdir args(const FcCache *c, int i) +{ + return FcCacheSubdir (c, i); +} + +int +FcCacheNumSubdir args(const FcCache *c) +{ + return c->dirs_count; +} + +int +FcCacheNumFont args(const FcCache *c) +{ + return FcCacheSet(c)->nfont; +} + /* * This code implements the MD5 message-digest algorithm. * The algorithm is due to Ron Rivest. This code was diff --git a/src/fccharset.c b/src/fccharset.c index 3dac4ce..fdff91f 100644 --- a/src/fccharset.c +++ b/src/fccharset.c @@ -43,9 +43,6 @@ FcCharSetCreate (void) return fcs; } -FcCharSet * -FcCharSetNew (void); - FcCharSet * FcCharSetNew (void) { @@ -693,8 +690,6 @@ FcCharSetFirstPage (const FcCharSet *a, /* * old coverage API, rather hard to use correctly */ -FcChar32 -FcCharSetCoverage (const FcCharSet *a, FcChar32 page, FcChar32 *result); FcChar32 FcCharSetCoverage (const FcCharSet *a, FcChar32 page, FcChar32 *result) diff --git a/src/fcint.h b/src/fcint.h index 3b9f3c8..6cdb7cb 100644 --- a/src/fcint.h +++ b/src/fcint.h @@ -53,9 +53,6 @@ #define FC_CONFIG_PATH "fonts.conf" #endif -#define FC_FONT_FILE_INVALID ((FcChar8 *) ".") -#define FC_FONT_FILE_DIR ((FcChar8 *) ".dir") - #ifdef _WIN32 #define FC_SEARCH_PATH_SEPARATOR ';' #else @@ -113,6 +110,15 @@ #define FC_BANK_FIRST 1 #define FC_BANK_LANGS 0xfcfcfcfc +/* slim_internal.h */ +#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__) +#define FcPrivate __attribute__((__visibility__("hidden"))) +#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) +#define FcPrivate __hidden +#else /* not gcc >= 3.3 and not Sun Studio >= 8 */ +#define FcPrivate +#endif + typedef enum _FcValueBinding { FcValueBindingWeak, FcValueBindingStrong, FcValueBindingSame } FcValueBinding; @@ -306,7 +312,7 @@ typedef struct _FcStrBuf { int size; } FcStrBuf; -typedef struct _FcCache { +struct _FcCache { int magic; /* FC_CACHE_MAGIC_MMAP or FC_CACHE_ALLOC */ int version; /* FC_CACHE_CONTENT_VERSION */ intptr_t size; /* size of file */ @@ -314,13 +320,13 @@ typedef struct _FcCache { intptr_t dirs; /* offset to subdirs */ int dirs_count; /* number of subdir strings */ intptr_t set; /* offset to font set */ -} FcCache; +}; #define FcCacheDir(c) FcOffsetMember(c,dir,FcChar8) #define FcCacheDirs(c) FcOffsetMember(c,dirs,intptr_t) #define FcCacheSet(c) FcOffsetMember(c,set,FcFontSet) -#define FcCacheSubdir(c,i) FcOffsetToPtr (FcCacheDirs(cache),\ - FcCacheDirs(cache)[i], \ +#define FcCacheSubdir(c,i) FcOffsetToPtr (FcCacheDirs(c),\ + FcCacheDirs(c)[i], \ FcChar8) /* @@ -483,7 +489,7 @@ struct _FcConfig { int rescanInterval; /* interval between scans */ }; -extern FcConfig *_fcConfig; +extern FcPrivate FcConfig *_fcConfig; typedef struct _FcFileTime { time_t time; @@ -499,208 +505,186 @@ typedef struct _FcCharMap FcCharMap; /* fccache.c */ -FcBool -FcDirCacheUnlink (const FcChar8 *dir, FcConfig *config); - -void -FcDirCacheUnload (FcCache *cache); - -FcCache * +FcPrivate FcCache * FcDirCacheScan (const FcChar8 *dir, FcConfig *config); -FcCache * -FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file); - -FcCache * -FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat); - -FcBool -FcDirCacheValid (const FcChar8 *dir); - -FcCache * +FcPrivate FcCache * FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, FcStrSet *dirs); -FcBool +FcPrivate FcBool FcDirCacheWrite (FcCache *cache, FcConfig *config); /* fccfg.c */ -FcBool +FcPrivate FcBool FcConfigAddConfigDir (FcConfig *config, const FcChar8 *d); -FcBool +FcPrivate FcBool FcConfigAddFontDir (FcConfig *config, const FcChar8 *d); -FcBool +FcPrivate FcBool FcConfigAddDir (FcConfig *config, const FcChar8 *d); -FcBool +FcPrivate FcBool FcConfigAddCacheDir (FcConfig *config, const FcChar8 *d); -FcStrList * -FcConfigGetCacheDirs (FcConfig *config); - -FcBool +FcPrivate FcBool FcConfigAddConfigFile (FcConfig *config, const FcChar8 *f); -FcBool +FcPrivate FcBool FcConfigAddBlank (FcConfig *config, FcChar32 blank); -FcBool +FcPrivate FcBool FcConfigAddEdit (FcConfig *config, FcTest *test, FcEdit *edit, FcMatchKind kind); -void +FcPrivate void FcConfigSetFonts (FcConfig *config, FcFontSet *fonts, FcSetName set); -FcBool +FcPrivate FcBool FcConfigCompareValue (const FcValue *m, FcOp op, const FcValue *v); -FcBool +FcPrivate FcBool FcConfigGlobAdd (FcConfig *config, const FcChar8 *glob, FcBool accept); -FcBool +FcPrivate FcBool FcConfigAcceptFilename (FcConfig *config, const FcChar8 *filename); -FcBool +FcPrivate FcBool FcConfigPatternsAdd (FcConfig *config, FcPattern *pattern, FcBool accept); -FcBool +FcPrivate FcBool FcConfigAcceptFont (FcConfig *config, const FcPattern *font); -FcFileTime +FcPrivate FcFileTime FcConfigModifiedTime (FcConfig *config); -FcBool +FcPrivate FcBool FcConfigAddCache (FcConfig *config, FcCache *cache); /* fcserialize.c */ -intptr_t +FcPrivate intptr_t FcAlignSize (intptr_t size); -FcSerialize * +FcPrivate FcSerialize * FcSerializeCreate (void); -void +FcPrivate void FcSerializeDestroy (FcSerialize *serialize); -FcBool +FcPrivate FcBool FcSerializeAlloc (FcSerialize *serialize, const void *object, int size); -intptr_t +FcPrivate intptr_t FcSerializeReserve (FcSerialize *serialize, int size); -intptr_t +FcPrivate intptr_t FcSerializeOffset (FcSerialize *serialize, const void *object); -void * +FcPrivate void * FcSerializePtr (FcSerialize *serialize, const void *object); -FcBool +FcPrivate FcBool FcLangSetSerializeAlloc (FcSerialize *serialize, const FcLangSet *l); -FcLangSet * +FcPrivate FcLangSet * FcLangSetSerialize(FcSerialize *serialize, const FcLangSet *l); /* fccharset.c */ -void +FcPrivate void FcLangCharSetPopulate (void); -FcCharSetFreezer * +FcPrivate FcCharSetFreezer * FcCharSetFreezerCreate (void); -const FcCharSet * +FcPrivate const FcCharSet * FcCharSetFreeze (FcCharSetFreezer *freezer, const FcCharSet *fcs); -void +FcPrivate void FcCharSetFreezerDestroy (FcCharSetFreezer *freezer); -FcBool +FcPrivate FcBool FcNameUnparseCharSet (FcStrBuf *buf, const FcCharSet *c); -FcCharSet * +FcPrivate FcCharSet * FcNameParseCharSet (FcChar8 *string); -FcCharLeaf * +FcPrivate FcCharLeaf * FcCharSetFindLeafCreate (FcCharSet *fcs, FcChar32 ucs4); -FcBool +FcPrivate FcBool FcCharSetSerializeAlloc(FcSerialize *serialize, const FcCharSet *cs); -FcCharSet * +FcPrivate FcCharSet * FcCharSetSerialize(FcSerialize *serialize, const FcCharSet *cs); -FcChar16 * +FcPrivate FcChar16 * FcCharSetGetNumbers(const FcCharSet *c); /* fcdbg.c */ -void +FcPrivate void FcValueListPrint (const FcValueListPtr l); -void +FcPrivate void FcLangSetPrint (const FcLangSet *ls); -void +FcPrivate void FcOpPrint (FcOp op); -void +FcPrivate void FcTestPrint (const FcTest *test); -void +FcPrivate void FcExprPrint (const FcExpr *expr); -void +FcPrivate void FcEditPrint (const FcEdit *edit); -void +FcPrivate void FcSubstPrint (const FcSubst *subst); -void +FcPrivate void FcCharSetPrint (const FcCharSet *c); -extern int FcDebugVal; +extern FcPrivate int FcDebugVal; -static inline int -FcDebug (void) { return FcDebugVal; } +#define FcDebug() (FcDebugVal) -void +FcPrivate void FcInitDebug (void); /* fcdefault.c */ -FcChar8 * +FcPrivate FcChar8 * FcGetDefaultLang (void); /* fcdir.c */ -FcBool -FcFileIsDir (const FcChar8 *file); - -FcBool +FcPrivate FcBool FcFileScanConfig (FcFontSet *set, FcStrSet *dirs, FcBlanks *blanks, const FcChar8 *file, FcConfig *config); -FcBool +FcPrivate FcBool FcDirScanConfig (FcFontSet *set, FcStrSet *dirs, FcBlanks *blanks, @@ -708,123 +692,120 @@ FcDirScanConfig (FcFontSet *set, FcBool force, FcConfig *config); -FcCache * -FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config); - /* fcfont.c */ -int +FcPrivate int FcFontDebug (void); /* fcfreetype.c */ -FcBool +FcPrivate FcBool FcFreeTypeIsExclusiveLang (const FcChar8 *lang); -FcBool +FcPrivate FcBool FcFreeTypeHasLang (FcPattern *pattern, const FcChar8 *lang); -FcChar32 +FcPrivate FcChar32 FcFreeTypeUcs4ToPrivate (FcChar32 ucs4, const FcCharMap *map); -FcChar32 +FcPrivate FcChar32 FcFreeTypePrivateToUcs4 (FcChar32 private, const FcCharMap *map); -const FcCharMap * +FcPrivate const FcCharMap * FcFreeTypeGetPrivateMap (FT_Encoding encoding); /* fcfs.c */ -FcBool +FcPrivate FcBool FcFontSetSerializeAlloc (FcSerialize *serialize, const FcFontSet *s); -FcFontSet * +FcPrivate FcFontSet * FcFontSetSerialize (FcSerialize *serialize, const FcFontSet * s); /* fcgram.y */ -int +FcPrivate int FcConfigparse (void); -int +FcPrivate int FcConfigwrap (void); -void +FcPrivate void FcConfigerror (char *fmt, ...); -char * +FcPrivate char * FcConfigSaveField (const char *field); -void +FcPrivate void FcTestDestroy (FcTest *test); -FcExpr * +FcPrivate FcExpr * FcExprCreateInteger (int i); -FcExpr * +FcPrivate FcExpr * FcExprCreateDouble (double d); -FcExpr * +FcPrivate FcExpr * FcExprCreateString (const FcChar8 *s); -FcExpr * +FcPrivate FcExpr * FcExprCreateMatrix (const FcMatrix *m); -FcExpr * +FcPrivate FcExpr * FcExprCreateBool (FcBool b); -FcExpr * +FcPrivate FcExpr * FcExprCreateNil (void); -FcExpr * +FcPrivate FcExpr * FcExprCreateField (const char *field); -FcExpr * +FcPrivate FcExpr * FcExprCreateConst (const FcChar8 *constant); -FcExpr * +FcPrivate FcExpr * FcExprCreateOp (FcExpr *left, FcOp op, FcExpr *right); -void +FcPrivate void FcExprDestroy (FcExpr *e); -void +FcPrivate void FcEditDestroy (FcEdit *e); /* fcinit.c */ -void +FcPrivate void FcMemReport (void); -void +FcPrivate void FcMemAlloc (int kind, int size); -void +FcPrivate void FcMemFree (int kind, int size); /* fclang.c */ -FcLangSet * +FcPrivate FcLangSet * FcFreeTypeLangSet (const FcCharSet *charset, const FcChar8 *exclusiveLang); -FcLangResult +FcPrivate FcLangResult FcLangCompare (const FcChar8 *s1, const FcChar8 *s2); -const FcCharSet * +FcPrivate const FcCharSet * FcCharSetForLang (const FcChar8 *lang); -FcLangSet * +FcPrivate FcLangSet * FcLangSetPromote (const FcChar8 *lang); -FcLangSet * +FcPrivate FcLangSet * FcNameParseLangSet (const FcChar8 *string); -FcBool +FcPrivate FcBool FcNameUnparseLangSet (FcStrBuf *buf, const FcLangSet *ls); -FcChar8 * +FcPrivate FcChar8 * FcNameUnparseEscaped (FcPattern *pat, FcBool escape); /* fclist.c */ -FcBool +FcPrivate FcBool FcListPatternMatchAny (const FcPattern *p, const FcPattern *font); @@ -878,190 +859,184 @@ FcListPatternMatchAny (const FcPattern *p, #define FC_EMBEDDED_BITMAP_OBJECT 39 #define FC_DECORATIVE_OBJECT 40 -FcBool +FcPrivate FcBool FcNameBool (const FcChar8 *v, FcBool *result); -FcBool +FcPrivate FcBool FcObjectValidType (FcObject object, FcType type); -FcObject +FcPrivate FcObject FcObjectFromName (const char * name); -const char * +FcPrivate const char * FcObjectName (FcObject object); -FcBool +FcPrivate FcBool FcObjectInit (void); -void +FcPrivate void FcObjectFini (void); #define FcObjectCompare(a, b) ((int) a - (int) b) /* fcpat.c */ -FcValue +FcPrivate FcValue FcValueCanonicalize (const FcValue *v); -void +FcPrivate void FcValueListDestroy (FcValueListPtr l); -FcPatternElt * +FcPrivate FcPatternElt * FcPatternObjectFindElt (const FcPattern *p, FcObject object); -FcPatternElt * +FcPrivate FcPatternElt * FcPatternObjectInsertElt (FcPattern *p, FcObject object); -FcBool +FcPrivate FcBool FcPatternObjectAddWithBinding (FcPattern *p, FcObject object, FcValue value, FcValueBinding binding, FcBool append); -FcBool +FcPrivate FcBool FcPatternObjectAdd (FcPattern *p, FcObject object, FcValue value, FcBool append); -FcBool +FcPrivate FcBool FcPatternObjectAddWeak (FcPattern *p, FcObject object, FcValue value, FcBool append); -FcResult +FcPrivate FcResult FcPatternObjectGet (const FcPattern *p, FcObject object, int id, FcValue *v); -FcBool +FcPrivate FcBool FcPatternObjectDel (FcPattern *p, FcObject object); -FcBool +FcPrivate FcBool FcPatternObjectRemove (FcPattern *p, FcObject object, int id); -FcBool +FcPrivate FcBool FcPatternObjectAddInteger (FcPattern *p, FcObject object, int i); -FcBool +FcPrivate FcBool FcPatternObjectAddDouble (FcPattern *p, FcObject object, double d); -FcBool +FcPrivate FcBool FcPatternObjectAddString (FcPattern *p, FcObject object, const FcChar8 *s); -FcBool +FcPrivate FcBool FcPatternObjectAddMatrix (FcPattern *p, FcObject object, const FcMatrix *s); -FcBool +FcPrivate FcBool FcPatternObjectAddCharSet (FcPattern *p, FcObject object, const FcCharSet *c); -FcBool +FcPrivate FcBool FcPatternObjectAddBool (FcPattern *p, FcObject object, FcBool b); -FcBool +FcPrivate FcBool FcPatternObjectAddLangSet (FcPattern *p, FcObject object, const FcLangSet *ls); -FcResult +FcPrivate FcResult FcPatternObjectGetInteger (const FcPattern *p, FcObject object, int n, int *i); -FcResult +FcPrivate FcResult FcPatternObjectGetDouble (const FcPattern *p, FcObject object, int n, double *d); -FcResult +FcPrivate FcResult FcPatternObjectGetString (const FcPattern *p, FcObject object, int n, FcChar8 ** s); -FcResult +FcPrivate FcResult FcPatternObjectGetMatrix (const FcPattern *p, FcObject object, int n, FcMatrix **s); -FcResult +FcPrivate FcResult FcPatternObjectGetCharSet (const FcPattern *p, FcObject object, int n, FcCharSet **c); -FcResult +FcPrivate FcResult FcPatternObjectGetBool (const FcPattern *p, FcObject object, int n, FcBool *b); -FcResult +FcPrivate FcResult FcPatternObjectGetLangSet (const FcPattern *p, FcObject object, int n, FcLangSet **ls); -void +FcPrivate void FcPatternFini (void); -FcBool +FcPrivate FcBool FcPatternAppend (FcPattern *p, FcPattern *s); -const FcChar8 * +FcPrivate const FcChar8 * FcStrStaticName (const FcChar8 *name); -FcChar32 +FcPrivate FcChar32 FcStringHash (const FcChar8 *s); -FcBool +FcPrivate FcBool FcPatternSerializeAlloc (FcSerialize *serialize, const FcPattern *pat); -FcPattern * +FcPrivate FcPattern * FcPatternSerialize (FcSerialize *serialize, const FcPattern *pat); -FcBool +FcPrivate FcBool FcValueListSerializeAlloc (FcSerialize *serialize, const FcValueList *pat); -FcValueList * +FcPrivate FcValueList * FcValueListSerialize (FcSerialize *serialize, const FcValueList *pat); /* fcrender.c */ /* fcmatrix.c */ -extern const FcMatrix FcIdentityMatrix; +extern FcPrivate const FcMatrix FcIdentityMatrix; -void +FcPrivate void FcMatrixFree (FcMatrix *mat); /* fcstr.c */ -void +FcPrivate void FcStrSetSort (FcStrSet * set); -FcChar8 * -FcStrPlus (const FcChar8 *s1, const FcChar8 *s2); - -void -FcStrFree (FcChar8 *s); - -void +FcPrivate void FcStrBufInit (FcStrBuf *buf, FcChar8 *init, int size); -void +FcPrivate void FcStrBufDestroy (FcStrBuf *buf); -FcChar8 * +FcPrivate FcChar8 * FcStrBufDone (FcStrBuf *buf); -FcBool +FcPrivate FcBool FcStrBufChar (FcStrBuf *buf, FcChar8 c); -FcBool +FcPrivate FcBool FcStrBufString (FcStrBuf *buf, const FcChar8 *s); -FcBool +FcPrivate FcBool FcStrBufData (FcStrBuf *buf, const FcChar8 *s, int len); -int +FcPrivate int FcStrCmpIgnoreBlanksAndCase (const FcChar8 *s1, const FcChar8 *s2); -const FcChar8 * +FcPrivate const FcChar8 * FcStrContainsIgnoreBlanksAndCase (const FcChar8 *s1, const FcChar8 *s2); -const FcChar8 * +FcPrivate const FcChar8 * FcStrContainsIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); -FcBool +FcPrivate FcBool FcStrUsesHome (const FcChar8 *s); -FcChar8 * +FcPrivate FcChar8 * FcStrLastSlash (const FcChar8 *path); -FcChar32 +FcPrivate FcChar32 FcStrHashIgnoreCase (const FcChar8 *s); -FcChar8 * +FcPrivate FcChar8 * FcStrCanonFilename (const FcChar8 *s); -FcBool +FcPrivate FcBool FcStrSerializeAlloc (FcSerialize *serialize, const FcChar8 *str); -FcChar8 * +FcPrivate FcChar8 * FcStrSerialize (FcSerialize *serialize, const FcChar8 *str); #endif /* _FC_INT_H_ */ -- 2.39.5