X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyx_main.C;h=0197a8a4b38eb4bd1e0b4133817e91dc53df74c0;hb=32ef0d04c48a1751abbb5e3b17d1bec25f22c255;hp=c3122ef1e7ee4bd774b6d998f439bbf4d10793e9;hpb=cdcb9b2cc09bed252d5247d89602bbef698a1487;p=lyx.git diff --git a/src/lyx_main.C b/src/lyx_main.C index c3122ef1e7..0197a8a4b3 100644 --- a/src/lyx_main.C +++ b/src/lyx_main.C @@ -4,7 +4,7 @@ * LyX, The Document Processor * * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. + * Copyright 1995-2001 The LyX Team. * * ====================================================== */ @@ -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... } @@ -235,7 +237,7 @@ void LyX::init(bool gui) searchpath= MakeAbsPath(system_lyxdir) + ';'; // LYX_DIR_11x environment variable - string lyxdir = GetEnvPath("LYX_DIR_11x"); + string const lyxdir = GetEnvPath("LYX_DIR_11x"); if (!lyxdir.empty()) { lyxerr[Debug::INIT] << "LYX_DIR_11x: " << lyxdir << endl; @@ -256,7 +258,7 @@ void LyX::init(bool gui) build_lyxdir.erase(); } - bool FollowLink; + bool followlink; do { // Path of binary/../share/name of binary/ searchpath += NormalizePath(AddPath(binpath, "../share/") + @@ -264,18 +266,18 @@ void LyX::init(bool gui) // Follow Symlinks FileInfo file(fullbinpath, true); - FollowLink = file.isLink(); - if (FollowLink) { - string Link; - if (LyXReadLink(fullbinpath, Link)) { - fullbinpath = Link; + followlink = file.isLink(); + if (followlink) { + string link; + if (LyXReadLink(fullbinpath, link)) { + fullbinpath = link; binpath = MakeAbsPath(OnlyPath(fullbinpath)); } else { - FollowLink = false; + followlink = false; } } - } while (FollowLink); + } while (followlink); // Hardcoded dir searchpath += LYX_DIR; @@ -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. @@ -464,34 +474,37 @@ void LyX::defaultKeyBindings(kb_keymap * kbmap) kbmap->bind("Next", LFUN_NEXT); kbmap->bind("Return", LFUN_BREAKPARAGRAPH); - kbmap->bind("~C-~S-~M-nobreakspace", LFUN_PROTECTEDSPACE); + //kbmap->bind("~C-~S-~M-nobreakspace", LFUN_PROTECTEDSPACE); kbmap->bind("Delete", LFUN_DELETE); kbmap->bind("BackSpace", LFUN_BACKSPACE); // kbmap->bindings to enable the use of the numeric keypad // e.g. Num Lock set - kbmap->bind("KP_0", LFUN_SELFINSERT); - kbmap->bind("KP_Decimal", LFUN_SELFINSERT); - kbmap->bind("KP_Enter", LFUN_SELFINSERT); - kbmap->bind("KP_1", LFUN_SELFINSERT); - kbmap->bind("KP_2", LFUN_SELFINSERT); - kbmap->bind("KP_3", LFUN_SELFINSERT); - kbmap->bind("KP_4", LFUN_SELFINSERT); - kbmap->bind("KP_5", LFUN_SELFINSERT); - kbmap->bind("KP_6", LFUN_SELFINSERT); - kbmap->bind("KP_Add", LFUN_SELFINSERT); - kbmap->bind("KP_7", LFUN_SELFINSERT); - kbmap->bind("KP_8", LFUN_SELFINSERT); - kbmap->bind("KP_9", LFUN_SELFINSERT); - kbmap->bind("KP_Divide", LFUN_SELFINSERT); - kbmap->bind("KP_Multiply", LFUN_SELFINSERT); - kbmap->bind("KP_Subtract", LFUN_SELFINSERT); - - /* Most self-insert keys are handled in the 'default:' section of - * WorkAreaKeyPress - so we don't have to define them all. - * However keys explicit decleared as self-insert are - * handled seperatly (LFUN_SELFINSERT.) Lgb. */ + //kbmap->bind("KP_0", LFUN_SELFINSERT); + //kbmap->bind("KP_Decimal", LFUN_SELFINSERT); + kbmap->bind("KP_Enter", LFUN_BREAKPARAGRAPH); + //kbmap->bind("KP_1", LFUN_SELFINSERT); + //kbmap->bind("KP_2", LFUN_SELFINSERT); + //kbmap->bind("KP_3", LFUN_SELFINSERT); + //kbmap->bind("KP_4", LFUN_SELFINSERT); + //kbmap->bind("KP_5", LFUN_SELFINSERT); + //kbmap->bind("KP_6", LFUN_SELFINSERT); + //kbmap->bind("KP_Add", LFUN_SELFINSERT); + //kbmap->bind("KP_7", LFUN_SELFINSERT); + //kbmap->bind("KP_8", LFUN_SELFINSERT); + //kbmap->bind("KP_9", LFUN_SELFINSERT); + //kbmap->bind("KP_Divide", LFUN_SELFINSERT); + //kbmap->bind("KP_Multiply", LFUN_SELFINSERT); + //kbmap->bind("KP_Subtract", LFUN_SELFINSERT); + kbmap->bind("KP_Right", LFUN_RIGHT); + kbmap->bind("KP_Left", LFUN_LEFT); + kbmap->bind("KP_Up", LFUN_UP); + kbmap->bind("KP_Down", LFUN_DOWN); + kbmap->bind("KP_Home", LFUN_HOME); + kbmap->bind("KP_End", LFUN_END); + kbmap->bind("KP_Prior", LFUN_PRIOR); + kbmap->bind("KP_Next", LFUN_NEXT); kbmap->bind("C-Tab", LFUN_TABINSERT); // ale970515 kbmap->bind("S-Tab", LFUN_SHIFT_TAB); // jug20000522 @@ -536,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; @@ -574,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, @@ -611,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; @@ -623,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; } @@ -631,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); @@ -642,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; @@ -652,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(); @@ -667,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;