Rerun makeindex if all nomencl entries have been removed (#8905)

This commit is contained in:
Juergen Spitzmueller 2013-12-02 14:35:42 +01:00
parent 44df37ab2a
commit 027b5dc4af

View File

@ -268,7 +268,12 @@ int LaTeX::run(TeXErrors & terr)
runparams); runparams);
} }
FileName const nlofile(changeExtension(file.absFileName(), ".nlo")); FileName const nlofile(changeExtension(file.absFileName(), ".nlo"));
if (head.haschanged(nlofile)) // If all nomencl entries are removed, nomencl writes an empty nlo file.
// DepTable::hasChanged() returns false in this case, since it does not
// distinguish empty files from non-existing files. This is why we need
// the extra checks here (to trigger a rerun). Cf. discussions in #8905.
// FIXME: Sort out the real problem in DepTable.
if (head.haschanged(nlofile) || (nlofile.exists() && nlofile.isFileEmpty()))
rerun |= runMakeIndexNomencl(file, ".nlo", ".nls"); rerun |= runMakeIndexNomencl(file, ".nlo", ".nls");
FileName const glofile(changeExtension(file.absFileName(), ".glo")); FileName const glofile(changeExtension(file.absFileName(), ".glo"));
if (head.haschanged(glofile)) if (head.haschanged(glofile))