]> git.lyx.org Git - lyx.git/blobdiff - src/lyx_main.C
layout file converter for layout files in old format
[lyx.git] / src / lyx_main.C
index 2b08c9b95c5c009ba41138779c4aaae921559923..4729678c0cbf294510b722f2ad761c2aa5ed9648 100644 (file)
@@ -87,7 +87,7 @@ using std::system;
 #endif
 
 
-extern void QuitLyX();
+extern void QuitLyX(bool);
 
 extern LyXServer * lyxserver;
 
@@ -235,7 +235,7 @@ void LyX::priv_exec(int & argc, char * argv[])
        vector<string> files;
 
        for (int argi = argc - 1; argi >= 1; --argi)
-               files.push_back(argv[argi]);
+               files.push_back(os::internal_path(argv[argi]));
 
        if (first_start)
                files.push_back(i18nLibFileSearch("examples", "splash.lyx"));
@@ -271,14 +271,20 @@ void LyX::priv_exec(int & argc, char * argv[])
                if (last_loaded) {
                        bool success = false;
                        if (last_loaded->dispatch(batch_command, &success)) {
-                               QuitLyX();
+                               QuitLyX(false);
                                exit(!success);
                        }
                }
                files.clear(); // the files are already loaded
        }
 
-       lyx_gui::start(batch_command, files);
+       if (want_gui)
+               lyx_gui::start(batch_command, files);
+       else {
+               // Something went wrong above
+               QuitLyX(false);
+               exit(EXIT_FAILURE);
+       }
 }
 
 
@@ -400,13 +406,6 @@ void LyX::init(bool gui)
        signal(SIGTERM, error_handler);
        // SIGPIPE can be safely ignored.
 
-#if !defined (USE_POSIX_PACKAGING)
-       // Add the directory containing the LyX executable to the path
-       // so that LyX can find things like reLyX.
-       if (package().build_support().empty())
-               prependEnvPath("PATH", package().binary_dir());
-#endif
-
        // Check that user LyX directory is ok. We don't do that if
        // running in batch mode.
        bool reconfigure = false;
@@ -481,6 +480,13 @@ void LyX::init(bool gui)
        if (!lyxrc.path_prefix.empty())
                prependEnvPath("PATH", lyxrc.path_prefix);
 
+#if !defined (USE_POSIX_PACKAGING)
+       // Add the directory containing the LyX executable to the path
+       // so that LyX can find things like tex2lyx.
+       if (package().build_support().empty())
+               prependEnvPath("PATH", package().binary_dir());
+#endif
+
        // Having reset the PATH we're now in a position to run configure
        // if necessary.
        if (reconfigure)
@@ -525,7 +531,9 @@ void LyX::defaultKeyBindings(kb_keymap  * kbmap)
        kbmap->bind("Down", FuncRequest(LFUN_DOWN));
 
        kbmap->bind("Tab", FuncRequest(LFUN_CELL_FORWARD));
-       kbmap->bind("ISO_Left_Tab", FuncRequest(LFUN_CELL_FORWARD));
+       kbmap->bind("C-Tab", FuncRequest(LFUN_CELL_SPLIT));
+       kbmap->bind("~S-ISO_Left_Tab", FuncRequest(LFUN_CELL_BACKWARD));
+       kbmap->bind("~S-BackTab", FuncRequest(LFUN_CELL_BACKWARD));
 
        kbmap->bind("Home", FuncRequest(LFUN_HOME));
        kbmap->bind("End", FuncRequest(LFUN_END));
@@ -564,10 +572,6 @@ void LyX::defaultKeyBindings(kb_keymap  * kbmap)
        kbmap->bind("KP_End", FuncRequest(LFUN_END));
        kbmap->bind("KP_Prior", FuncRequest(LFUN_PRIOR));
        kbmap->bind("KP_Next", FuncRequest(LFUN_NEXT));
-
-       kbmap->bind("C-Tab", FuncRequest(LFUN_CELL_SPLIT));
-       kbmap->bind("S-Tab", FuncRequest(LFUN_CELL_BACKWARD));
-       kbmap->bind("S-ISO_Left_Tab", FuncRequest(LFUN_CELL_BACKWARD));
 }
 
 
@@ -636,8 +640,8 @@ bool LyX::queryUserLyXDir(bool explicit_userdir)
        // If the user specified explicitly a directory, ask whether
        // to create it. If the user says "no", then exit.
        if (explicit_userdir &&
-           !Alert::prompt(
-                   _("Missing LyX support directory"),
+           Alert::prompt(
+                   _("Missing user LyX directory"),
                    bformat(_("You have specified a non-existent user "
                              "LyX directory, %1$s.\n"
                              "It is needed to keep your own configuration."),
@@ -881,9 +885,6 @@ int parse_execute(string const & arg, string const &)
                exit(1);
        }
        batch = arg;
-       // Argh. Setting gui to false segfaults..
-       // FIXME: when ? how ?
-       // is_gui = false;
        return 1;
 }