X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyx_main.C;h=0197a8a4b38eb4bd1e0b4133817e91dc53df74c0;hb=32ef0d04c48a1751abbb5e3b17d1bec25f22c255;hp=2a8c8456657d347bb523f92531cb82144cb70a50;hpb=07ea5f51f03223a1cce9bb5b8260f5a5e9dba9de;p=lyx.git diff --git a/src/lyx_main.C b/src/lyx_main.C index 2a8c845665..0197a8a4b3 100644 --- a/src/lyx_main.C +++ b/src/lyx_main.C @@ -26,6 +26,7 @@ #include "lyxrc.h" #include "support/path.h" #include "support/filetools.h" +#include "buffer.h" #include "bufferlist.h" #include "debug.h" #include "support/FileInfo.h" @@ -128,7 +129,8 @@ LyX::LyX(int * argc, char * argv[]) } if (first_start) { - string splash = i18nLibFileSearch("examples", "splash.lyx"); + string const splash = + i18nLibFileSearch("examples", "splash.lyx"); lyxerr[Debug::INIT] << "Opening splash document " << splash << "..." << endl; Buffer * loadb = bufferlist.loadLyXFile(splash); @@ -153,7 +155,7 @@ LyX::LyX(int * argc, char * argv[]) last_loaded = bufferlist.newFile("tmpfile", string()); // try to dispatch to last loaded buffer first - bool dispatched = last_loaded->Dispatch(batch_command); + bool dispatched = last_loaded->dispatch(batch_command); // if this was successful, return. // Maybe we could do something more clever than aborting... @@ -165,7 +167,7 @@ LyX::LyX(int * argc, char * argv[]) // otherwise, let the GUI handle the batch command lyxGUI->regBuf(last_loaded); - lyxGUI->getLyXView()->getLyXFunc()->Dispatch(batch_command); + lyxGUI->getLyXView()->getLyXFunc()->dispatch(batch_command); // fall through... } @@ -285,7 +287,7 @@ void LyX::init(bool gui) << searchpath << endl; string const filename = "chkconfig.ltx"; - string temp = FileOpenSearch(searchpath, filename, string()); + string const temp = FileOpenSearch(searchpath, filename, string()); system_lyxdir = OnlyPath(temp); // Reduce "path/../path" stuff out of system directory @@ -311,12 +313,19 @@ void LyX::init(bool gui) <<_("set the environment variable LYX_DIR_11x to the " "LyX system directory ") << _("containing the file `chkconfig.ltx'.") << endl; - if (!path_shown) + if (!path_shown) { + FileInfo fi(LYX_DIR); + if (!fi.exist()) { + lyxerr << "Couldn't even find the default LYX_DIR." << endl + << "Giving up." << endl; + exit(1); + } lyxerr << _("Using built-in default ") << LYX_DIR << _(" but expect problems.") << endl; - else + } else { lyxerr << _("Expect problems.") << endl; + } system_lyxdir = LYX_DIR; path_shown = true; } @@ -354,11 +363,12 @@ void LyX::init(bool gui) // Check that user LyX directory is ok. We don't do that if // running in batch mode. - if (gui) + if (gui) { queryUserLyXDir(explicit_userdir); - else + } else { first_start = false; - + } + // // Shine up lyxrc defaults // @@ -390,7 +400,7 @@ void LyX::init(bool gui) // Read configuration files // - ReadRcFile("lyxrc.defaults"); + readRcFile("lyxrc.defaults"); system_lyxrc = lyxrc; system_formats = formats; system_converters = converters; @@ -398,13 +408,13 @@ void LyX::init(bool gui) // If there is a preferences file we read that instead // of the old lyxrc file. - if (!ReadRcFile("preferences")) - ReadRcFile("lyxrc"); + if (!readRcFile("preferences")) + readRcFile("lyxrc"); // Read encodings - ReadEncodingsFile("encodings"); + readEncodingsFile("encodings"); // Read languages - ReadLanguagesFile("languages"); + readLanguagesFile("languages"); // Load the layouts lyxerr[Debug::INIT] << "Reading layouts..." << endl; @@ -415,7 +425,7 @@ void LyX::init(bool gui) lyxrc.readBindFileIfNeeded(); // Read menus - ReadUIFile(lyxrc.ui_file); + readUIFile(lyxrc.ui_file); // Bind the X dead keys to the corresponding LyX functions if // necessary. @@ -539,15 +549,13 @@ void LyX::queryUserLyXDir(bool explicit_userdir) first_start = false; return; } else { - first_start = true; + first_start = !explicit_userdir; } - // Nope - // Different wording if the user specifically requested a directory - if (!AskQuestion( explicit_userdir - ? _("You have specified an invalid LyX directory.") - : _("You don't have a personal LyX directory.") , - + // If the user specified explicitely a directory, ask whether + // to create it (otherwise, always create it) + if (explicit_userdir && + !AskQuestion(_("You have specified an invalid LyX directory."), _("It is needed to keep your own configuration."), _("Should I try to set it up for you (recommended)?"))) { lyxerr << _("Running without personal LyX directory.") << endl; @@ -577,29 +585,31 @@ void LyX::queryUserLyXDir(bool explicit_userdir) // Read the rc file `name' -bool LyX::ReadRcFile(string const & name) +bool LyX::readRcFile(string const & name) { lyxerr[Debug::INIT] << "About to read " << name << "..." << endl; - string lyxrc_path = LibFileSearch(string(), name); + string const lyxrc_path = LibFileSearch(string(), name); if (!lyxrc_path.empty()){ lyxerr[Debug::INIT] << "Found " << name << " in " << lyxrc_path << endl; if (lyxrc.read(lyxrc_path) < 0) { WriteAlert(_("LyX Warning!"), - _("Error while reading ")+lyxrc_path+".", + _("Error while reading ") + lyxrc_path + ".", _("Using built-in defaults.")); return false; } return true; - } else + } else { lyxerr[Debug::INIT] << "Could not find " << name << endl; + } + return false; } // Read the ui file `name' -void LyX::ReadUIFile(string const & name) +void LyX::readUIFile(string const & name) { enum Uitags { ui_menuset = 1, @@ -614,7 +624,7 @@ void LyX::ReadUIFile(string const & name) lyxerr[Debug::INIT] << "About to read " << name << "..." << endl; - string ui_path = LibFileSearch("ui", name, "ui"); + string const ui_path = LibFileSearch("ui", name, "ui"); if (ui_path.empty()) { lyxerr[Debug::INIT] << "Could not find " << name << endl; @@ -626,7 +636,7 @@ void LyX::ReadUIFile(string const & name) << " in " << ui_path << endl; LyXLex lex(uitags, ui_last - 1); lex.setFile(ui_path); - if (!lex.IsOK()) { + if (!lex.isOK()) { lyxerr << "Unable to set LyXLeX for ui file: " << ui_path << endl; } @@ -634,7 +644,7 @@ void LyX::ReadUIFile(string const & name) if (lyxerr.debugging(Debug::PARSER)) lex.printTable(lyxerr); - while (lex.IsOK()) { + while (lex.isOK()) { switch (lex.lex()) { case ui_menuset: menubackend.read(lex); @@ -645,7 +655,7 @@ void LyX::ReadUIFile(string const & name) break; default: - if(!strip(lex.GetString()).empty()) + if(!strip(lex.getString()).empty()) lex.printError("LyX::ReadUIFile: " "Unknown menu tag: `$$Token'"); break; @@ -655,11 +665,11 @@ void LyX::ReadUIFile(string const & name) // Read the languages file `name' -void LyX::ReadLanguagesFile(string const & name) +void LyX::readLanguagesFile(string const & name) { lyxerr[Debug::INIT] << "About to read " << name << "..." << endl; - string lang_path = LibFileSearch(string(), name); + string const lang_path = LibFileSearch(string(), name); if (lang_path.empty()) { lyxerr[Debug::INIT] << "Could not find " << name << endl; languages.setDefaults(); @@ -670,11 +680,11 @@ void LyX::ReadLanguagesFile(string const & name) // Read the encodings file `name' -void LyX::ReadEncodingsFile(string const & name) +void LyX::readEncodingsFile(string const & name) { lyxerr[Debug::INIT] << "About to read " << name << "..." << endl; - string enc_path = LibFileSearch(string(), name); + string const enc_path = LibFileSearch(string(), name); if (enc_path.empty()) { lyxerr[Debug::INIT] << "Could not find " << name << endl; return;