]> git.lyx.org Git - lyx.git/blobdiff - src/lyx_main.C
re-enable mathrm toggling with C-m (was disabled by accident)
[lyx.git] / src / lyx_main.C
index d95b6a9842535f740b60bab71e673078095fda9a..46143a7020e2fe952b26a3979831f6b1b878be6f 100644 (file)
@@ -9,32 +9,25 @@
  * ====================================================== */
 
 #include <config.h>
-
-#include <cstdlib>
-#include <csignal>
+#include <version.h>
 
 #ifdef __GNUG__
 #pragma implementation
 #endif
 
-#include <version.h>
 #include "lyx_main.h"
 #include "lyx_gui.h"
 #include "LyXView.h"
 #include "lyxfunc.h"
-#include "frontends/Alert.h"
-#include "frontends/GUIRunTime.h"
 #include "lyxrc.h"
-#include "support/path.h"
-#include "support/filetools.h"
 #include "buffer.h"
 #include "bufferlist.h"
 #include "debug.h"
-#include "support/FileInfo.h"
 #include "lastfiles.h"
 #include "intl.h"
 #include "lyxserver.h"
-#include "layout.h"
+//#include "layout.h"
+#include "lyxtextclasslist.h"
 #include "gettext.h"
 #include "kbmap.h"
 #include "MenuBackend.h"
 #include "encoding.h"
 #include "converter.h"
 #include "language.h"
+
+#include "frontends/Alert.h"
+#include "frontends/GUIRunTime.h"
+
+#include "support/path.h"
+#include "support/filetools.h"
+#include "support/FileInfo.h"
 #include "support/os.h"
 
+#include <cstdlib>
+#include <csignal>
+
 using std::endl;
 
 #ifndef CXX_GLOBAL_CSTD
@@ -164,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()->verboseDispatch(batch_command, false);
 
                // fall through...
        }
@@ -240,17 +243,17 @@ void LyX::init(bool gui)
        // Determine path of binary
        //
 
-       string fullbinpath;
        string binpath = os::binpath();
        string binname = os::binname();
-       fullbinpath = binpath;
-
+       string fullbinname = MakeAbsPath(binname, binpath);
+       
        if (binpath.empty()) {
                lyxerr << _("Warning: could not determine path of binary.")
                       << "\n"
                       << _("If you have problems, try starting LyX with an absolute path.")
                       << endl;
        }
+       lyxerr[Debug::INIT] << "Name of binary: " << binname << endl;
        lyxerr[Debug::INIT] << "Path of binary: " << binpath << endl;
 
        //
@@ -284,30 +287,34 @@ void LyX::init(bool gui)
                searchpath += lyxdir + ';';
        }
 
-       // <path of binary>/TOP_SRCDIR/lib
-       build_lyxdir = MakeAbsPath("../lib", binpath);
-       if (!FileSearch(build_lyxdir, "lyxrc.defaults").empty()) {
-               searchpath += MakeAbsPath(AddPath(TOP_SRCDIR, "lib"),
-                                         binpath) + ';';
-               lyxerr[Debug::INIT] << "Checking whether LyX is run in "
-                       "place... yes" << endl;
-       } else {
-               lyxerr[Debug::INIT]
-                       << "Checking whether LyX is run in place... no"
-                       << endl;
-               build_lyxdir.erase();
+       string fullbinpath = binpath;
+       FileInfo file(fullbinname, true);
+       if (file.isLink()) {
+               lyxerr[Debug::INIT] << "binary is a link" << endl;
+               string link;
+               if (LyXReadLink(fullbinname, link)) {
+                       // Path of binary/../share/name of binary/
+                       searchpath += NormalizePath(AddPath(binpath,
+                                                           "../share/") 
+                                                   + OnlyFilename(binname));
+                       searchpath += ';';
+                       fullbinpath = link;
+                       binpath = MakeAbsPath(OnlyPath(fullbinpath));
+               }
        }
-
+       
         bool followlink;
        do {
-         // Path of binary/../share/name of binary/
+               // Path of binary/../share/name of binary/
                searchpath += NormalizePath(AddPath(binpath, "../share/") + 
                      OnlyFilename(binname)) + ';';
 
-         // Follow Symlinks
+               // Follow Symlinks
                FileInfo file(fullbinpath, true);
                followlink = file.isLink();
                if (followlink) {
+                       lyxerr << " directory " << fullbinpath
+                              << " is a link" << endl;
                        string link;
                        if (LyXReadLink(fullbinpath, link)) {
                                fullbinpath = link;
@@ -319,6 +326,20 @@ void LyX::init(bool gui)
                }
        } while (followlink);
 
+       // <path of binary>/TOP_SRCDIR/lib
+       build_lyxdir = MakeAbsPath("../lib", binpath);
+       if (!FileSearch(build_lyxdir, "lyxrc.defaults").empty()) {
+               searchpath += MakeAbsPath(AddPath(TOP_SRCDIR, "lib"),
+                                         binpath) + ';';
+               lyxerr[Debug::INIT] << "Checking whether LyX is run in "
+                       "place... yes" << endl;
+       } else {
+               lyxerr[Debug::INIT]
+                       << "Checking whether LyX is run in place... no"
+                       << endl;
+               build_lyxdir.erase();
+       }
+
        // Hardcoded dir
        searchpath += LYX_DIR;
 
@@ -413,12 +434,12 @@ void LyX::init(bool gui)
        //
 
        // Default template path: system_dir/templates
-       if (lyxrc.template_path.empty()){
+       if (lyxrc.template_path.empty()) {
                lyxrc.template_path = AddPath(system_lyxdir, "templates");
        }
    
        // Default lastfiles file: $HOME/.lyx/lastfiles
-       if (lyxrc.lastfiles.empty()){
+       if (lyxrc.lastfiles.empty()) {
                lyxrc.lastfiles = AddName(user_lyxdir, "lastfiles");
        }
 
@@ -646,7 +667,7 @@ bool LyX::readRcFile(string const & name)
        lyxerr[Debug::INIT] << "About to read " << name << "..." << endl;
        
        string const lyxrc_path = LibFileSearch(string(), name);
-       if (!lyxrc_path.empty()){
+       if (!lyxrc_path.empty()) {
                lyxerr[Debug::INIT] << "Found " << name
                                    << " in " << lyxrc_path << endl;
                if (lyxrc.read(lyxrc_path) < 0) { 
@@ -711,7 +732,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;