]> git.lyx.org Git - lyx.git/blobdiff - src/LyX.cpp
cmake: remove 2.8 warning
[lyx.git] / src / LyX.cpp
index 78f9d9f24b4e761d82ce1c2919268c142d8ab494..8321251751a7d22457f2555ac02c49546010926d 100644 (file)
@@ -292,11 +292,11 @@ int LyX::exec(int & argc, char * argv[])
        try {
                init_package(os::utf8_argv(0), string(), string(),
                        top_build_dir_is_one_level_up);
+               // we do not get to this point when init_package throws an exception
+               locale_init();
        } catch (ExceptionMessage const & message) {
                LYXERR(Debug::LOCALE, message.title_ + ", " + message.details_);
        }
-       // FIXME: This breaks out of source build under Windows.
-       locale_init();
 
        // Here we need to parse the command line. At least
        // we need to parse for "-dbg" and "-help"
@@ -555,7 +555,7 @@ void LyX::execCommands()
                                "try to reconfigure without checking your LaTeX installation, or continue."),
                        0, 2,
                        _("&Reconfigure"),
-                       _("&Use Defaults"),
+                       _("&Without LaTeX"),
                        _("&Continue")))
                {
                case 0:
@@ -671,7 +671,7 @@ static void error_handler(int err_sig)
                          "hope you have not lost any data.\n"
                          "Please read the bug-reporting instructions "
                          "in 'Help->Introduction' and send us a bug report, "
-                         "if necessary. Thanks !\nBye.");
+                         "if necessary. Thanks!\nBye.");
                break;
        case SIGINT:
        case SIGTERM:
@@ -745,6 +745,12 @@ bool LyX::init()
                                              "templates");
        }
 
+       // init LyXDir environment variable
+       string const lyx_dir = package().lyx_dir().absFileName();
+       LYXERR(Debug::INIT, "Setting LyXDir... to \"" << lyx_dir << "\"");
+       if (!setEnv("LyXDir", lyx_dir))
+               LYXERR(Debug::INIT, "\t... failed!");
+
        //
        // Read configuration files
        //
@@ -764,7 +770,7 @@ bool LyX::init()
                prependEnvPath("PATH", package().binary_dir().absFileName());
 #endif
        if (!lyxrc.path_prefix.empty())
-               prependEnvPath("PATH", lyxrc.path_prefix);
+               prependEnvPath("PATH", replaceEnvironmentPath(lyxrc.path_prefix));
 
        // Check that user LyX directory is ok.
        if (queryUserLyXDir(package().explicit_user_support()))
@@ -806,7 +812,7 @@ bool LyX::init()
        system_lcolor = lcolor;
 
        // This one is edited through the preferences dialog.
-       if (!readRcFile("preferences"))
+       if (!readRcFile("preferences", true))
                return false;
 
        if (!readEncodingsFile("encodings", "unicodesymbols"))
@@ -842,7 +848,7 @@ bool LyX::init()
 
        os::windows_style_tex_paths(lyxrc.windows_style_tex_paths);
        if (!lyxrc.path_prefix.empty())
-               prependEnvPath("PATH", lyxrc.path_prefix);
+               prependEnvPath("PATH", replaceEnvironmentPath(lyxrc.path_prefix));
 
        FileName const document_path(lyxrc.document_path);
        if (document_path.exists() && document_path.isDirectory())
@@ -960,21 +966,22 @@ bool LyX::queryUserLyXDir(bool explicit_userdir)
 }
 
 
-bool LyX::readRcFile(string const & name)
+bool LyX::readRcFile(string const & name, bool check_format)
 {
        LYXERR(Debug::INIT, "About to read " << name << "... ");
 
        FileName const lyxrc_path = libFileSearch(string(), name);
-       if (!lyxrc_path.empty()) {
-               LYXERR(Debug::INIT, "Found in " << lyxrc_path);
-               if (lyxrc.read(lyxrc_path) < 0) {
-                       showFileError(name);
-                       return false;
-               }
-       } else {
+       if (lyxrc_path.empty()) {
                LYXERR(Debug::INIT, "Not found." << lyxrc_path);
+               // FIXME
+               // This was the previous logic, but can it be right??
+               return true;
        }
-       return true;
+       LYXERR(Debug::INIT, "Found in " << lyxrc_path);
+       bool const success = lyxrc.read(lyxrc_path, check_format);
+       if (!success)
+               showFileError(name);
+       return success;
 }
 
 // Read the languages file `name'