Respect sysroot option for file path passed to stat
This commit is contained in:
parent
2bd559f75d
commit
d36f977c76
|
@ -142,6 +142,7 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force,
|
|||
FcBool was_valid, was_processed = FcFalse;
|
||||
int i;
|
||||
const FcChar8 *sysroot = FcConfigGetSysRoot (config);
|
||||
FcChar8 *rooted_dir = NULL;
|
||||
|
||||
/*
|
||||
* Now scan all of the directories into separate databases
|
||||
|
@ -157,6 +158,20 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force,
|
|||
fflush (stdout);
|
||||
}
|
||||
|
||||
if (rooted_dir)
|
||||
{
|
||||
FcStrFree(rooted_dir);
|
||||
rooted_dir = NULL;
|
||||
}
|
||||
|
||||
if (sysroot)
|
||||
{
|
||||
rooted_dir = FcStrPlus(sysroot, dir);
|
||||
}
|
||||
else {
|
||||
rooted_dir = FcStrCopy(dir);
|
||||
}
|
||||
|
||||
if (FcStrSetMember (processed_dirs, dir))
|
||||
{
|
||||
if (verbose)
|
||||
|
@ -164,7 +179,7 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force,
|
|||
continue;
|
||||
}
|
||||
|
||||
if (stat ((char *) dir, &statb) == -1)
|
||||
if (stat ((char *) rooted_dir, &statb) == -1)
|
||||
{
|
||||
switch (errno) {
|
||||
case ENOENT:
|
||||
|
@ -259,6 +274,11 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force,
|
|||
ret += scanDirs (sublist, config, force, really_force, verbose, error_on_no_fonts, changed);
|
||||
FcStrListDone (sublist);
|
||||
}
|
||||
|
||||
if (rooted_dir)
|
||||
{
|
||||
FcStrFree(rooted_dir);
|
||||
}
|
||||
if (error_on_no_fonts && !was_processed)
|
||||
ret++;
|
||||
return ret;
|
||||
|
|
Loading…
Reference in New Issue