]> git.lyx.org Git - lyx.git/blobdiff - src/LyXRC.cpp
tex2lyx/text.cpp: code simplification
[lyx.git] / src / LyXRC.cpp
index ffe1aff2d9401dc7db2a1be0735f1d4e03288bea..b678af0a8bc72c37c8977c178029765412695cc3 100644 (file)
@@ -55,7 +55,7 @@ namespace os = support::os;
 
 namespace {
 
-static unsigned int const LYXRC_FILEFORMAT = 2;
+static unsigned int const LYXRC_FILEFORMAT = 3;
 
 // when adding something to this array keep it sorted!
 LexerKeyword lyxrcTags[] = {
@@ -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;
 }
@@ -1118,6 +1122,8 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
                                        flgs |= Format::document;
                                else if (flag == "vector")
                                        flgs |= Format::vector;
+                               else if (flag == "zipped=native")
+                                       flgs |= Format::zipped_native;
                                else if (flag == "menu=export")
                                        flgs |= Format::export_menu;
                                else
@@ -2750,6 +2756,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                                        flags.push_back("document");
                                if (cit->vectorFormat())
                                        flags.push_back("vector");
+                               if (cit->zippedNative())
+                                       flags.push_back("zipped=native");
                                if (cit->inExportMenu())
                                        flags.push_back("menu=export");