]> git.lyx.org Git - lyx.git/blobdiff - src/LyX.cpp
More requires --> required, for C++2a.
[lyx.git] / src / LyX.cpp
index f0fc71cfe955654c8ec4b00b1d96403382f11b8b..20c5e83b01de8af67b0296a4ef802dae1d8f0e0a 100644 (file)
@@ -150,7 +150,7 @@ void showFileError(string const & error)
                           "Please check your installation."), from_utf8(error)));
 }
 
-} // namespace anon
+} // namespace
 
 /// The main application class private implementation.
 struct LyX::Impl {
@@ -192,7 +192,7 @@ struct LyX::Impl {
        Converters converters_;
        /// The system converters after reading lyxrc.defaults.
        Converters system_converters_;
-       
+
        /// Global format information
        Formats formats_;
        /// The system formats after reading lyxrc.defaults.
@@ -394,7 +394,7 @@ int LyX::exec(int & argc, char * argv[])
                        FileName(package().temp_dir().absFileName() + "/lyxsocket")));
 
        // Start the real execution loop.
-       if (!theServer().deferredLoadingToOtherInstance())
+       if (!pimpl_->lyx_server_->deferredLoadingToOtherInstance())
                exit_status = pimpl_->application_->exec();
        else if (!pimpl_->files_to_load_.empty()) {
                vector<string>::const_iterator it = pimpl_->files_to_load_.begin();
@@ -419,8 +419,12 @@ void LyX::prepareExit()
        // Write the index file of the converter cache
        ConverterCache::get().writeIndex();
 
-       // close buffers first
-       pimpl_->buffer_list_.closeAll();
+       // closing buffer may throw exceptions, but we ignore them since we
+       // are quitting.
+       try {
+               // close buffers first
+               pimpl_->buffer_list_.closeAll();
+       } catch (ExceptionMessage const &) {}
 
        // register session changes and shutdown server and socket
        if (use_gui) {
@@ -434,17 +438,16 @@ void LyX::prepareExit()
        // do any other cleanup procedures now
        if (package().temp_dir() != package().system_temp_dir()) {
                string const abs_tmpdir = package().temp_dir().absFileName();
-               if (!contains(package().temp_dir().absFileName(), "lyx_tmpdir")) {
+               if (!contains(abs_tmpdir, "lyx_tmpdir")) {
                        docstring const msg =
                                bformat(_("%1$s does not appear like a LyX created temporary directory."),
                                from_utf8(abs_tmpdir));
                        Alert::warning(_("Cannot remove temporary directory"), msg);
                } else {
-                       LYXERR(Debug::INFO, "Deleting tmp dir "
-                               << package().temp_dir().absFileName());
+                       LYXERR(Debug::INFO, "Deleting tmp dir " << abs_tmpdir);
                        if (!package().temp_dir().destroyDirectory()) {
                                LYXERR0(bformat(_("Unable to remove the temporary directory %1$s"),
-                                       from_utf8(package().temp_dir().absFileName())));
+                                       from_utf8(abs_tmpdir)));
                        }
                }
        }
@@ -496,7 +499,7 @@ int LyX::init(int & argc, char * argv[])
 
        if (first_start) {
                pimpl_->files_to_load_.push_back(
-                       i18nLibFileSearch("examples", "splash.lyx").absFileName());
+                       i18nLibFileSearch("examples", "Welcome.lyx").absFileName());
        }
 
        return EXIT_SUCCESS;
@@ -512,7 +515,7 @@ int LyX::execWithoutGui(int & argc, char * argv[])
        }
 
        // Used to keep track of which buffers were explicitly loaded by user request.
-       // This is necessary because master and child document buffers are loaded, even 
+       // This is necessary because master and child document buffers are loaded, even
        // if they were not named on the command line. We do not want to dispatch to
        // those.
        vector<Buffer *> command_line_buffers;
@@ -771,7 +774,7 @@ namespace {
                        return std::string(line, nameLen);
                }
        }
-}
+} // namespace
 
 void cleanDuplicateEnvVars()
 {
@@ -865,7 +868,7 @@ bool LyX::init()
 #endif
 
        lyxrc.tempdir_path = package().temp_dir().absFileName();
-       lyxrc.document_path = ".";
+       lyxrc.document_path = package().document_dir().absFileName();
 
        if (lyxrc.example_path.empty()) {
                lyxrc.example_path = addPath(package().system_support().absFileName(),
@@ -1057,7 +1060,8 @@ bool LyX::queryUserLyXDir(bool explicit_userdir)
                        || configFileNeedsUpdate("lyxmodules.lst")
                        || configFileNeedsUpdate("textclass.lst")
                        || configFileNeedsUpdate("packages.lst")
-                       || configFileNeedsUpdate("lyxciteengines.lst");
+                       || configFileNeedsUpdate("lyxciteengines.lst")
+                       || configFileNeedsUpdate("xtemplates.lst");
        }
 
        first_start = !explicit_userdir;
@@ -1379,7 +1383,7 @@ int parse_force(string const & arg, string const &, string &)
 }
 
 
-} // namespace anon
+} // namespace
 
 
 void LyX::easyParse(int & argc, char * argv[])