Also check configDirs mtimes in FcConfigUptoDate

Checking only config files and font directories can miss changes which
affect only a configuration directory. Check those to catch any changes.
This commit is contained in:
Keith Packard 2007-10-25 21:23:36 -07:00
parent 89d6119c02
commit ad27687f72
1 changed files with 3 additions and 14 deletions

View File

@ -138,23 +138,10 @@ FcConfigNewestFile (FcStrSet *files)
return newest; return newest;
} }
FcFileTime
FcConfigModifiedTime (FcConfig *config)
{
if (!config)
{
FcFileTime v = { 0, FcFalse };
config = FcConfigGetCurrent ();
if (!config)
return v;
}
return FcConfigNewestFile (config->configFiles);
}
FcBool FcBool
FcConfigUptoDate (FcConfig *config) FcConfigUptoDate (FcConfig *config)
{ {
FcFileTime config_time, font_time; FcFileTime config_time, config_dir_time, font_time;
time_t now = time(0); time_t now = time(0);
if (!config) if (!config)
{ {
@ -163,8 +150,10 @@ FcConfigUptoDate (FcConfig *config)
return FcFalse; return FcFalse;
} }
config_time = FcConfigNewestFile (config->configFiles); config_time = FcConfigNewestFile (config->configFiles);
config_dir_time = FcConfigNewestFile (config->configDirs);
font_time = FcConfigNewestFile (config->fontDirs); font_time = FcConfigNewestFile (config->fontDirs);
if ((config_time.set && config_time.time - config->rescanTime > 0) || if ((config_time.set && config_time.time - config->rescanTime > 0) ||
(config_dir_time.set && (config_dir_time.time - config->rescanTime) > 0) ||
(font_time.set && (font_time.time - config->rescanTime) > 0)) (font_time.set && (font_time.time - config->rescanTime) > 0))
{ {
return FcFalse; return FcFalse;