From 715f005d6c318de87dc3d888ea8aba0191f26761 Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Tue, 27 Sep 2011 20:07:41 +0000 Subject: [PATCH] Fix bug #7796 (LyX creates file on startup that cannot be deleted) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39779 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/LyXRC.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/LyXRC.cpp b/src/LyXRC.cpp index d5b62eb7b8..b678af0a8b 100644 --- a/src/LyXRC.cpp +++ b/src/LyXRC.cpp @@ -402,11 +402,15 @@ bool LyXRC::read(FileName const & filename, bool check_format) LYXERR0 ("Unable to convert " << filename.absFileName() << " to format " << LYXRC_FILEFORMAT); return false; + } else { + // Keep this in the else branch, such that lexrc2 goes out + // of scope and releases the lock on tempfile before we + // attempt to remove it. This matters on Windows. + Lexer lexrc2(lyxrcTags); + lexrc2.setFile(tempfile); + LYXERR(Debug::LYXRC, "Reading '" << tempfile << "'..."); + retval = read(lexrc2, check_format); } - Lexer lexrc2(lyxrcTags); - lexrc2.setFile(tempfile); - LYXERR(Debug::LYXRC, "Reading '" << tempfile << "'..."); - retval = read(lexrc2, check_format); tempfile.removeFile(); return retval == ReadOK; } -- 2.39.5