Lowered temporary rooted_dir variable inside loop

This commit is contained in:
Chris McDonald 2018-11-26 11:46:21 -07:00
parent d36f977c76
commit 3c75a5a935
1 changed files with 12 additions and 19 deletions

View File

@ -142,7 +142,6 @@ 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
@ -158,12 +157,14 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force,
fflush (stdout);
}
if (rooted_dir)
if (FcStrSetMember (processed_dirs, dir))
{
FcStrFree(rooted_dir);
rooted_dir = NULL;
if (verbose)
printf (_("skipping, looped directory detected\n"));
continue;
}
FcChar8 *rooted_dir = NULL;
if (sysroot)
{
rooted_dir = FcStrPlus(sysroot, dir);
@ -172,13 +173,6 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force,
rooted_dir = FcStrCopy(dir);
}
if (FcStrSetMember (processed_dirs, dir))
{
if (verbose)
printf (_("skipping, looped directory detected\n"));
continue;
}
if (stat ((char *) rooted_dir, &statb) == -1)
{
switch (errno) {
@ -196,6 +190,9 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force,
continue;
}
FcStrFree(rooted_dir);
rooted_dir = NULL;
if (!S_ISDIR (statb.st_mode))
{
fprintf (stderr, _("\"%s\": not a directory, skipping\n"), dir);
@ -275,10 +272,6 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force,
FcStrListDone (sublist);
}
if (rooted_dir)
{
FcStrFree(rooted_dir);
}
if (error_on_no_fonts && !was_processed)
ret++;
return ret;