]> git.lyx.org Git - lyx.git/blobdiff - src/LyX.cpp
Make layout test compile
[lyx.git] / src / LyX.cpp
index a8849caf3cdef9ec167461f6246f31743d02c97e..b7848311b85a6a10450572285cab072a7bcf0f94 100644 (file)
@@ -188,7 +188,7 @@ struct LyX::Impl {
        bool first_start;
        /// the parsed command line batch command if any
        vector<string> batch_commands;
-       
+
        ///
        LaTeXFonts * latexfonts_;
 
@@ -272,7 +272,7 @@ int LyX::exec(int & argc, char * argv[])
        try {
                init_package(os::utf8_argv(0), string(), string());
                // we do not get to this point when init_package throws an exception
-               locale_init();
+               setLocale();
        } catch (ExceptionMessage const & message) {
                LYXERR(Debug::LOCALE, message.title_ + ", " + message.details_);
        }
@@ -294,7 +294,7 @@ int LyX::exec(int & argc, char * argv[])
 
        // Reinit the messages machinery in case package() knows
        // something interesting about the locale directory.
-       Messages::init();
+       setLocale();
 
        if (!use_gui) {
                // FIXME: create a ConsoleApplication
@@ -337,7 +337,7 @@ int LyX::exec(int & argc, char * argv[])
 
        // Reestablish our defaults, as Qt overwrites them
        // after createApplication()
-       locale_init();
+       setLocale();//???
 
        // Parse and remove all known arguments in the LyX singleton
        // Give an error for all remaining ones.
@@ -736,6 +736,18 @@ bool LyX::init()
        if (!setEnv("LyXDir", lyx_dir))
                LYXERR(Debug::INIT, "\t... failed!");
 
+       if (package().explicit_user_support() && getEnv(LYX_USERDIR_VER).empty()) {
+               // -userdir was given on the command line.
+               // Make it available to child processes, otherwise tex2lyx
+               // would not find all layout files, and other converters might
+               // use it as well.
+               string const user_dir = package().user_support().absFileName();
+               LYXERR(Debug::INIT, "Setting " LYX_USERDIR_VER "... to \""
+                                   << user_dir << '"');
+               if (!setEnv(LYX_USERDIR_VER, user_dir))
+                       LYXERR(Debug::INIT, "\t... failed!");
+       }
+
        //
        // Read configuration files
        //
@@ -755,8 +767,15 @@ bool LyX::init()
                prependEnvPath("PATH", replaceEnvironmentPath(lyxrc.path_prefix));
 
        // Check that user LyX directory is ok.
-       if (queryUserLyXDir(package().explicit_user_support()))
-               reconfigureUserLyXDir();
+       {
+               string const lock_file = package().user_support().absFileName() + ".lyx_configure_lock";
+               int fd = fileLock(lock_file.c_str());
+
+               if (queryUserLyXDir(package().explicit_user_support())) {
+                       reconfigureUserLyXDir();
+               }
+               fileUnlock(fd, lock_file.c_str());
+       }
 
        if (!use_gui) {
                // No need for a splash when there is no GUI
@@ -794,6 +813,9 @@ bool LyX::init()
        if (!readRcFile("preferences", true))
                return false;
 
+       // The language may have been set to someting useful through prefs
+       setLocale();
+
        if (!readEncodingsFile("encodings", "unicodesymbols"))
                return false;
        if (!readLanguagesFile("languages"))
@@ -823,6 +845,7 @@ bool LyX::init()
                lyxrc.print();
 
        os::windows_style_tex_paths(lyxrc.windows_style_tex_paths);
+       // Prepend path prefix a second time to take the user preferences into a account
        if (!lyxrc.path_prefix.empty())
                prependEnvPath("PATH", replaceEnvironmentPath(lyxrc.path_prefix));
 
@@ -1066,7 +1089,7 @@ int parse_version(string const &, string const &, string &)
 {
        cout << "LyX " << lyx_version
               << " (" << lyx_release_date << ")" << endl;
-       cout << to_utf8(bformat(_("Built on %1$s, %2$s"),
+       cout << to_utf8(bformat(_("Built on %1$s[[date]], %2$s[[time]]"),
                from_ascii(__DATE__), from_ascii(__TIME__))) << endl;
 
        cout << lyx_version_info << endl;
@@ -1379,19 +1402,7 @@ Messages const & getMessages(string const & language)
 Messages const & getGuiMessages()
 {
        LAPPERR(singleton_);
-       // A cache to translate full language name to language code
-       static string last_language = "auto";
-       static string code;
-       if (lyxrc.gui_language != last_language) {
-               if (lyxrc.gui_language == "auto")
-                       code.clear();
-               else {
-                       Language const * l = languages.getLanguage(lyxrc.gui_language);
-                       code = l ? l->code() : string();
-               }
-               last_language = lyxrc.gui_language;
-       }
-       return singleton_->messages(code);
+       return singleton_->messages(Messages::guiLanguage());
 }