X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmain.C;h=dc5c978237bf584456fe4ba75547a970dd4b462b;hb=969ab85d985485f503790cb13f98a582d4e1cdb5;hp=1cc999e1ef0a5f166b8eaa5336fef0d87ec28ce4;hpb=260ae2415d605c39daaf0cbf680e58aafb88f9d9;p=lyx.git diff --git a/src/main.C b/src/main.C index 1cc999e1ef..dc5c978237 100644 --- a/src/main.C +++ b/src/main.C @@ -1,98 +1,49 @@ -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor - * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. +/** + * \file main.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * ====================================================== */ + * \author Lars Gullik Bjønnes + * \author Jean Marc Lasgouttes + * + * Full author contact details are available in file CREDITS. + */ #include -#include - -#ifdef KDEGUI -# include -#endif -#ifdef GTKGUI -# include -# include "frontends/gnome/mainapp.h" -GLyxAppWin * mainAppWin; -#endif - -#include FORMS_H_LOCATION +#include "debug.h" #include "lyx_main.h" #include "gettext.h" -#include "LString.h" -#include "support/filetools.h" +#include "support/os.h" + +#include -// I keep these here so that it will be processed as early in -// the compilation process as possible. -#if !defined(FL_REVISION) || FL_REVISION < 88 || FL_VERSION != 0 -#error LyX will not compile with this version of XForms.\ - Please get version 0.89.\ - If you want to try to compile anyway, delete this test in src/main.C. +#ifdef HAVE_IOS +#include #endif -using std::cerr; -using std::endl; -static int const xforms_include_version = FL_INCLUDE_VERSION; +namespace fs = boost::filesystem; int main(int argc, char * argv[]) { - // Check the XForms version in the forms.h header against - // the one in the libforms. If they don't match quit the - // execution of LyX. Better with a clean fast exit than - // a strange segfault later. - // I realize that this check have to be moved when we - // support several toolkits, but IMO all the toolkits - // should try to have the same kind of check. This could - // be done by having a CheckHeaderAndLib function in - // all the toolkit implementations, this function is - // responsible for notifing the user. - // if (!CheckHeaderAndLib()) { - // // header vs. lib version failed - // return 1; - // } - int xforms_lib_version = fl_library_version(0, 0); - if (xforms_include_version != xforms_lib_version) { - cerr << "You are either running LyX with wrong " - "version of a dynamic XForms library\n" - "or you have build LyX with conflicting header " - "and library (different\n" - "versions of XForms. Sorry but there is no point " - "in continuing executing LyX!" << endl; - return 1; - } - -#ifdef KDEGUI - KApplication a( argc, argv ); -#endif -#ifdef GTKGUI - string app_id(PACKAGE); - string app_version(VERSION); - Gnome::Main a(app_id, app_version, 1, argv); //argc, argv ); - GLyxAppWin appWin; - mainAppWin = &appWin; +#ifdef HAVE_IOS + std::ios_base::sync_with_stdio(false); #endif - - // lyx_localedir is used by gettext_init() is we have - // i18n support built-in - string lyx_localedir = GetEnvPath("LYX_LOCALEDIR"); - if (lyx_localedir.empty()) - lyx_localedir = LOCALEDIR; - + fs::path::default_name_check(fs::no_check); + + // To avoid ordering of global object problems with some + // stdlibs we do the initialization here, but still as + // early as possible. + lyx::lyxerr.rdbuf(std::cerr.rdbuf()); + + lyx::support::os::init(argc, argv); + // initialize for internationalized version *EK* - locale_init(); - gettext_init(); + lyx::locale_init(); -#ifdef __EMX__ - _wildcard(&argc, &argv); -#endif + lyx::LyX the_lyx_instance; - LyX lyx(&argc, argv); - return 0; // SUCCESS + return the_lyx_instance.exec(argc, argv); }