X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyx_main.C;h=b881f3d78f55f3c383c1ffbaa09bfe24008f2650;hb=ba62665f966508db5a4de6864f4aa7374c5a5356;hp=b0a6b1713ada4db0815b9b6014ee6c6ea47ee550;hpb=6d7cd27910a3f35f722a59da31960f2986e80c7a;p=lyx.git diff --git a/src/lyx_main.C b/src/lyx_main.C index b0a6b1713a..b881f3d78f 100644 --- a/src/lyx_main.C +++ b/src/lyx_main.C @@ -53,11 +53,11 @@ #include "support/filetools.h" #include "support/lyxlib.h" #include "support/convert.h" +#include "support/ExceptionMessage.h" #include "support/os.h" #include "support/package.h" #include "support/path.h" #include "support/systemcall.h" -#include "support/unicode.h" #include #include @@ -149,7 +149,7 @@ void reconfigureUserLyXDir() /// The main application class private implementation. struct LyX::Singletons { - Singletons(): iconv(ucs4_codeset, "UTF-8") + Singletons() { // Set the default User Interface language as soon as possible. // The language used will be derived from the environment @@ -171,9 +171,6 @@ struct LyX::Singletons /// lyx session, containing lastfiles, lastfilepos, and lastopened boost::scoped_ptr session_; - /// - IconvProcessor iconv; - /// Files to load at start. vector files_to_load_; @@ -330,12 +327,6 @@ Converters & LyX::systemConverters() } -IconvProcessor & LyX::iconvProcessor() -{ - return pimpl_->iconv; -} - - kb_keymap const & LyX::topLevelKeymap() const { BOOST_ASSERT(pimpl_->toplevel_keymap_.get()); @@ -395,9 +386,17 @@ int LyX::exec(int & argc, char * argv[]) // we need to parse for "-dbg" and "-help" easyParse(argc, argv); - support::init_package(to_utf8(from_local8bit(argv[0])), + try { support::init_package(to_utf8(from_local8bit(argv[0])), cl_system_support, cl_user_support, support::top_build_dir_is_one_level_up); + } catch (support::ExceptionMessage const & message) { + if (message.type_ == support::ErrorException) { + Alert::error(message.title_, message.details_); + exit(1); + } else if (message.type_ == support::WarningException) { + Alert::warning(message.title_, message.details_); + } + } if (!use_gui) { // FIXME: create a ConsoleApplication @@ -871,7 +870,7 @@ bool LyX::init() if (!readRcFile("preferences")) return false; - if (!readEncodingsFile("encodings")) + if (!readEncodingsFile("encodings", "unicodesymbols")) return false; if (!readLanguagesFile("languages")) return false; @@ -1238,16 +1237,24 @@ bool LyX::readLanguagesFile(string const & name) // Read the encodings file `name' -bool LyX::readEncodingsFile(string const & name) +bool LyX::readEncodingsFile(string const & enc_name, + string const & symbols_name) { - lyxerr[Debug::INIT] << "About to read " << name << "..." << endl; + lyxerr[Debug::INIT] << "About to read " << enc_name << " and " + << symbols_name << "..." << endl; - FileName const enc_path = libFileSearch(string(), name); + FileName const symbols_path = libFileSearch(string(), symbols_name); + if (symbols_path.empty()) { + showFileError(symbols_name); + return false; + } + + FileName const enc_path = libFileSearch(string(), enc_name); if (enc_path.empty()) { - showFileError(name); + showFileError(enc_name); return false; } - encodings.read(enc_path); + encodings.read(enc_path, symbols_path); return true; } @@ -1516,12 +1523,6 @@ Movers & theSystemMovers() } -IconvProcessor & utf8ToUcs4() -{ - return LyX::ref().iconvProcessor(); -} - - Messages & getMessages(std::string const & language) { return LyX::ref().getMessages(language);