Append version number to cache file names

This commit is contained in:
Keith Packard 2002-08-26 19:57:40 +00:00
parent 0f9a306e71
commit f21f40f347
4 changed files with 22 additions and 9 deletions

View File

@ -1,5 +1,5 @@
/* /*
* $XFree86: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.26 2002/08/19 19:32:04 keithp Exp $ * $XFree86: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.28 2002/08/24 20:08:53 keithp Exp $
* *
* Copyright © 2001 Keith Packard, member of The XFree86 Project, Inc. * Copyright © 2001 Keith Packard, member of The XFree86 Project, Inc.
* *
@ -41,6 +41,18 @@ typedef int FcBool;
#define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION)) #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
/*
* Current font cache file format version
* This is appended to the cache files so that multiple
* versions of the library will peacefully coexist
*
* Change this value whenever the disk format for the cache file
* changes in any non-compatible way. Try to avoid such changes as
* it means multiple copies of the font information.
*/
#define FC_CACHE_VERSION "1"
#define FcTrue 1 #define FcTrue 1
#define FcFalse 0 #define FcFalse 0
@ -72,8 +84,8 @@ typedef int FcBool;
#define FC_CHARSET "charset" /* CharSet */ #define FC_CHARSET "charset" /* CharSet */
#define FC_LANG "lang" /* String OS/2 CodePageRange */ #define FC_LANG "lang" /* String OS/2 CodePageRange */
#define FC_DIR_CACHE_FILE "fonts.cache" #define FC_DIR_CACHE_FILE "fonts.cache-"FC_CACHE_VERSION
#define FC_USER_CACHE_FILE ".fonts.cache" #define FC_USER_CACHE_FILE ".fonts.cache-"FC_CACHE_VERSION
/* Adjust outline rasterizer */ /* Adjust outline rasterizer */
#define FC_CHAR_WIDTH "charwidth" /* Int */ #define FC_CHAR_WIDTH "charwidth" /* Int */

View File

@ -1,5 +1,5 @@
/* /*
* $XFree86: xc/lib/fontconfig/src/fcdir.c,v 1.5 2002/05/21 17:06:22 keithp Exp $ * $XFree86: xc/lib/fontconfig/src/fcdir.c,v 1.7 2002/07/28 10:50:59 keithp Exp $
* *
* Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
* *
@ -169,13 +169,13 @@ FcDirScan (FcFontSet *set,
if (!force) if (!force)
{ {
/* /*
* Check fonts.cache file * Check fonts.cache-<version> file
*/ */
if (FcDirCacheReadDir (set, dirs, dir)) if (FcDirCacheReadDir (set, dirs, dir))
return FcTrue; return FcTrue;
/* /*
* Check ~/.fonts.cache file * Check ~/.fonts.cache-<version> file
*/ */
if (cache && FcGlobalCacheScanDir (set, dirs, cache, dir)) if (cache && FcGlobalCacheScanDir (set, dirs, cache, dir))
return FcTrue; return FcTrue;

View File

@ -200,7 +200,7 @@ typedef struct _FcStrBuf {
} FcStrBuf; } FcStrBuf;
/* /*
* The per-user ~/.fonts.cache file is loaded into * The per-user ~/.fonts.cache-<version> file is loaded into
* this data structure. Each directory gets a substructure * this data structure. Each directory gets a substructure
* which is validated by comparing the directory timestamp with * which is validated by comparing the directory timestamp with
* that saved in the cache. When valid, the entire directory cache * that saved in the cache. When valid, the entire directory cache

View File

@ -1195,7 +1195,8 @@ information. If it starts with '~', it refers to a file in the users
home directory. This file is used to hold information about fonts that home directory. This file is used to hold information about fonts that
isn't present in the per-directory cache files. It is automatically isn't present in the per-directory cache files. It is automatically
maintained by the fontconfig library. The default for this file maintained by the fontconfig library. The default for this file
is ``~/.fonts.cache''. is ``~/.fonts.cache-<version>'', where <version> is the font configuration
file version number (currently 1).
.SS <include ignore_missing="no"> .SS <include ignore_missing="no">
This element contains the name of an additional configuration file. When This element contains the name of an additional configuration file. When
@ -1451,7 +1452,7 @@ is a DTD that describes the format of the configuration files.
is the conventional location for per-user font configuration, although the is the conventional location for per-user font configuration, although the
actual location is specified in the global fonts.conf file. actual location is specified in the global fonts.conf file.
.B ~/.fonts.cache .B ~/.fonts.cache-*
is the conventional repository of font information that isn't found in the is the conventional repository of font information that isn't found in the
per-directory caches. This file is automatically maintained by fontconfig. per-directory caches. This file is automatically maintained by fontconfig.