From: Richard Kimberly Heck Date: Fri, 31 May 2019 00:32:35 +0000 (-0400) Subject: Fix bug #11588. X-Git-Tag: 2.3.4~90 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=1e985809885de8cbf3d0d99e49a36bd214e6da04;p=features.git Fix bug #11588. Check for the local file before calling kpsewhich. (cherry picked from commit 2e433654c7f3db02bfd0e4dd09eb04cd8ab44bb9) --- diff --git a/src/Buffer.cpp b/src/Buffer.cpp index c5dd9a4b71..dd0cca6243 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -2468,17 +2468,25 @@ FileName Buffer::getBibfilePath(docstring const & bibid) const map::const_iterator it = bibfileCache.find(bibid); if (it != bibfileCache.end()) { - // i.e., bibfileCache[bibid] + // i.e., return bibfileCache[bibid]; return it->second; } LYXERR(Debug::FILES, "Reading file location for " << bibid); - string texfile = changeExtension(to_utf8(bibid), "bib"); - // note that, if the filename can be found directly from the path, - // findtexfile will just return a FileName object for that path. - FileName file(findtexfile(texfile, "bib")); - if (file.empty()) - file = FileName(makeAbsPath(texfile, filePath())); + string const texfile = changeExtension(to_utf8(bibid), "bib"); + // we need to check first if this file exists where it's said to be. + // there's a weird bug that occurs otherwise: if the file is in the + // Buffer's directory but has the same name as some file that would be + // found by kpsewhich, then we find the latter, not the former. + FileName const local_file = makeAbsPath(texfile, filePath()); + FileName file = local_file; + if (!file.exists()) { + // there's no need now to check whether the file can be found + // locally + file = findtexfile(texfile, "bib", true); + if (file.empty()) + file = local_file; + } LYXERR(Debug::FILES, "Found at: " << file); bibfileCache[bibid] = file; diff --git a/status.23x b/status.23x index 759309196d..bf9a957269 100644 --- a/status.23x +++ b/status.23x @@ -65,6 +65,9 @@ Avoid using text mode for unicode symbols representable in math mode (bug 9616). - Fix problem on Windows with saving files in Dropbox folders (bug 10091). +- Find local bib files when they exist in the same directory as the LyX + file (bug 11588). + * USER INTERFACE