]> git.lyx.org Git - lyx.git/blobdiff - src/lyxrc.C
Fix bug 2485 and crash on middle mouse paste on math
[lyx.git] / src / lyxrc.C
index a0b794349cd2a58ec1c0c2728759e0e1528ee21c..d1276ba94cb1eb95687333c089ddf0f8ddbff4e6 100644 (file)
@@ -25,7 +25,7 @@
 #include "converter.h"
 #include "format.h"
 #include "gettext.h"
-#include "lastfiles.h"
+#include "session.h"
 #include "LColor.h"
 #include "lyxlex.h"
 #include "lyxfont.h"
 #include "graphics/GraphicsTypes.h"
 
 #include "support/convert.h"
+#include "support/environment.h"
 #include "support/filetools.h"
 #include "support/lstrings.h"
+#include "support/os.h"
 #include "support/userinfo.h"
 
+namespace os = lyx::support::os;
+
 using lyx::support::ascii_lowercase;
 using lyx::support::bformat;
-using lyx::support::ExpandPath;
-using lyx::support::GetEnv;
-using lyx::support::LibFileSearch;
+using lyx::support::expandPath;
+using lyx::support::getEnv;
+using lyx::support::libFileSearch;
 using lyx::support::token;
 
 using std::cout;
@@ -100,7 +104,7 @@ keyword_item lyxrcTags[] = {
        { "\\language_global_options", LyXRC::RC_LANGUAGE_GLOBAL_OPTIONS },
        { "\\language_package", LyXRC::RC_LANGUAGE_PACKAGE },
        { "\\language_use_babel", LyXRC::RC_LANGUAGE_USE_BABEL },
-       { "\\lastfiles", LyXRC::RC_LASTFILES },
+       { "\\load_session", LyXRC::RC_LOADSESSION },
        { "\\make_backup", LyXRC::RC_MAKE_BACKUP },
        { "\\mark_foreign_language", LyXRC::RC_MARK_FOREIGN_LANGUAGE },
        { "\\num_lastfiles", LyXRC::RC_NUMLASTFILES },
@@ -147,6 +151,9 @@ keyword_item lyxrcTags[] = {
        { "\\screen_font_sizes", LyXRC::RC_SCREEN_FONT_SIZES },
        { "\\screen_font_typewriter", LyXRC::RC_SCREEN_FONT_TYPEWRITER },
        { "\\screen_font_typewriter_foundry", LyXRC::RC_SCREEN_FONT_TYPEWRITER_FOUNDRY },
+       { "\\screen_geometry_height", LyXRC::RC_SCREEN_GEOMETRY_HEIGHT },
+       { "\\screen_geometry_width", LyXRC::RC_SCREEN_GEOMETRY_WIDTH },
+       { "\\screen_geometry_xysaved", LyXRC::RC_SCREEN_GEOMETRY_XYSAVED },
        { "\\screen_zoom", LyXRC::RC_SCREEN_ZOOM },
        { "\\serverpipe", LyXRC::RC_SERVERPIPE },
        { "\\set_color", LyXRC::RC_SET_COLOR },
@@ -154,10 +161,12 @@ keyword_item lyxrcTags[] = {
        { "\\spell_command", LyXRC::RC_SPELL_COMMAND },
        { "\\tempdir_path", LyXRC::RC_TEMPDIRPATH },
        { "\\template_path", LyXRC::RC_TEMPLATEPATH },
+       { "\\tex_allows_spaces", LyXRC::RC_TEX_ALLOWS_SPACES },
        { "\\ui_file", LyXRC::RC_UIFILE },
        { "\\use_alt_language", LyXRC::RC_USE_ALT_LANG },
        { "\\use_escape_chars", LyXRC::RC_USE_ESC_CHARS },
        { "\\use_input_encoding", LyXRC::RC_USE_INP_ENC },
+       { "\\use_lastfilepos", LyXRC::RC_USELASTFILEPOS },
        { "\\use_personal_dictionary", LyXRC::RC_USE_PERS_DICT },
        // compatibility with versions older than 1.4.0 only
        { "\\use_pspell", LyXRC::RC_USE_SPELL_LIB },
@@ -188,7 +197,7 @@ void LyXRC::setDefaults() {
        ui_file = "default";
        // Get printer from the environment. If fail, use default "",
        // assuming that everything is set up correctly.
-       printer = GetEnv("PRINTER");
+       printer = getEnv("PRINTER");
        print_adapt_output = false;
        print_command = "dvips";
        print_evenpage_flag = "-B";
@@ -204,9 +213,8 @@ void LyXRC::setDefaults() {
        print_paper_flag = "-t";
        print_paper_dimension_flag = "-T";
        document_path.erase();
-       tempdir_path = "/tmp";
        view_dvi_paper_option.erase();
-       default_papersize = PAPER_USLETTER;
+       default_papersize = PAPER_DEFAULT;
        custom_export_format = "ps";
        chktex_command = "chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38";
        bibtex_command = "bibtex";
@@ -215,6 +223,9 @@ void LyXRC::setDefaults() {
        dpi = 75;
        // Because a screen typically is wider than a piece of paper:
        zoom = 150;
+       geometry_width = 0;
+       geometry_height = 0;
+       geometry_xysaved = true;
        wheel_jump = 5;
        // Default LaTeX font size:
        font_sizes[LyXFont::SIZE_TINY] = "5.0";
@@ -242,6 +253,8 @@ void LyXRC::setDefaults() {
        ascii_linelen = 65;
        num_lastfiles = maxlastfiles;
        check_lastfiles = true;
+       use_lastfilepos = true;
+       load_session = true;
        make_backup = true;
        backupdir_path.erase();
        display_graphics = lyx::graphics::ColorDisplay;
@@ -267,6 +280,7 @@ void LyXRC::setDefaults() {
        default_language = "english";
        show_banner = true;
        cygwin_path_fix = false;
+       tex_allows_spaces = false;
        date_insert_format = "%A, %e %B %Y";
        cursor_follows_scrollbar = false;
        dialogs_iconify_with_main = false;
@@ -351,7 +365,7 @@ int LyXRC::read(LyXLex & lexrc)
                case RC_INPUT: // Include file
                        if (lexrc.next()) {
                                string const tmp =
-                                       LibFileSearch(string(),
+                                       libFileSearch(string(),
                                                      lexrc.getString());
                                if (read(tmp)) {
                                        lexrc.printError("Error reading "
@@ -359,15 +373,15 @@ int LyXRC::read(LyXLex & lexrc)
                                }
                        }
                        break;
-               case RC_BINDFILE:                     // RVDK_PATCH_5
+               case RC_BINDFILE:
                        if (lexrc.next()) {
-                               bind_file = lexrc.getString();
+                               bind_file = os::internal_path(lexrc.getString());
                        }
                        break;
 
                case RC_UIFILE:
                        if (lexrc.next()) {
-                               ui_file = lexrc.getString();
+                               ui_file = os::internal_path(lexrc.getString());
                        }
                        break;
 
@@ -383,24 +397,30 @@ int LyXRC::read(LyXLex & lexrc)
                        }
                        break;
 
-               case RC_KBMAP:
+               case RC_CYGWIN_PATH_FIX:
                        if (lexrc.next()) {
-                               use_kbmap = lexrc.getBool();
+                               cygwin_path_fix = lexrc.getBool();
                        }
                        break;
 
-               case RC_CYGWIN_PATH_FIX:
+               case RC_TEX_ALLOWS_SPACES:
                        if (lexrc.next()) {
-                               cygwin_path_fix = lexrc.getBool();
-                       }
-                       break;
+                               tex_allows_spaces = lexrc.getBool();
+                       }
+                       break;
+
+               case RC_KBMAP:
+                       if (lexrc.next()) {
+                               use_kbmap = lexrc.getBool();
+                       }
+                       break;
 
                case RC_KBMAP_PRIMARY:
                        if (lexrc.next()) {
-                               string const kmap(lexrc.getString());
+                               string const kmap(os::internal_path(lexrc.getString()));
                                if (kmap.empty()) {
                                        // nothing
-                               } else if (!LibFileSearch("kbd", kmap,
+                               } else if (!libFileSearch("kbd", kmap,
                                                          "kmap").empty()) {
                                        primary_kbmap = kmap;
                                } else {
@@ -411,10 +431,10 @@ int LyXRC::read(LyXLex & lexrc)
 
                case RC_KBMAP_SECONDARY:
                        if (lexrc.next()) {
-                               string const kmap(lexrc.getString());
+                               string const kmap(os::internal_path(lexrc.getString()));
                                if (kmap.empty()) {
                                        // nothing
-                               } else if (!LibFileSearch("kbd", kmap,
+                               } else if (!libFileSearch("kbd", kmap,
                                                          "kmap").empty()) {
                                        secondary_kbmap = kmap;
                                } else {
@@ -497,7 +517,7 @@ int LyXRC::read(LyXLex & lexrc)
 
                case RC_PRINTTOFILE:
                        if (lexrc.next()) {
-                               print_to_file = lexrc.getString();
+                               print_to_file = os::internal_path(lexrc.getString());
                        }
                        break;
 
@@ -558,22 +578,25 @@ int LyXRC::read(LyXLex & lexrc)
                                                PAPER_USLETTER;
                                else if (size == "legal")
                                        default_papersize =
-                                               PAPER_LEGALPAPER;
+                                               PAPER_USLEGAL;
                                else if (size == "executive")
                                        default_papersize =
-                                               PAPER_EXECUTIVEPAPER;
+                                               PAPER_USEXECUTIVE;
                                else if (size == "a3")
                                        default_papersize =
-                                               PAPER_A3PAPER;
+                                               PAPER_A3;
                                else if (size == "a4")
                                        default_papersize =
-                                               PAPER_A4PAPER;
+                                               PAPER_A4;
                                else if (size == "a5")
                                        default_papersize =
-                                               PAPER_A5PAPER;
+                                               PAPER_A5;
                                else if (size == "b5")
                                        default_papersize =
-                                               PAPER_B5PAPER;
+                                               PAPER_B5;
+                               else if (size == "default")
+                                       default_papersize =
+                                               PAPER_DEFAULT;
                        }
                        break;
 
@@ -615,6 +638,24 @@ int LyXRC::read(LyXLex & lexrc)
                        }
                        break;
 
+               case RC_SCREEN_GEOMETRY_HEIGHT:
+                       if (lexrc.next()) {
+                               geometry_height = lexrc.getInteger();
+                       }
+                       break;
+
+               case RC_SCREEN_GEOMETRY_WIDTH:
+                       if (lexrc.next()) {
+                               geometry_width = lexrc.getInteger();
+                       }
+                       break;
+
+               case RC_SCREEN_GEOMETRY_XYSAVED:
+                       if (lexrc.next()) {
+                               geometry_xysaved = lexrc.getBool();
+                       }
+                       break;
+
                case RC_WHEEL_JUMP:
                        if (lexrc.next()) {
                                wheel_jump = lexrc.getInteger();
@@ -678,19 +719,22 @@ int LyXRC::read(LyXLex & lexrc)
 
                case RC_DOCUMENTPATH:
                        if (lexrc.next()) {
-                               document_path = ExpandPath(lexrc.getString());
+                               document_path = os::internal_path(lexrc.getString());
+                               document_path = expandPath(document_path);
                        }
                        break;
 
                case RC_TEMPLATEPATH:
                        if (lexrc.next()) {
-                               template_path = ExpandPath(lexrc.getString());
+                               template_path = os::internal_path(lexrc.getString());
+                               template_path = expandPath(template_path);
                        }
                        break;
 
                case RC_TEMPDIRPATH:
                        if (lexrc.next()) {
-                               tempdir_path = ExpandPath(lexrc.getString());
+                               tempdir_path = os::internal_path(lexrc.getString());
+                               tempdir_path = expandPath(tempdir_path);
                        }
                        break;
 
@@ -700,9 +744,15 @@ int LyXRC::read(LyXLex & lexrc)
                        }
                        break;
 
-               case RC_LASTFILES:
+               case RC_USELASTFILEPOS:
+                       if (lexrc.next()) {
+                               use_lastfilepos = lexrc.getBool();
+                       }
+                       break;
+
+               case RC_LOADSESSION:
                        if (lexrc.next()) {
-                               lastfiles = ExpandPath(lexrc.getString());
+                               load_session = lexrc.getBool();
                        }
                        break;
 
@@ -825,7 +875,8 @@ int LyXRC::read(LyXLex & lexrc)
 
                case RC_SERVERPIPE:
                        if (lexrc.next()) {
-                               lyxpipes = ExpandPath(lexrc.getString());
+                               lyxpipes = os::internal_path(lexrc.getString());
+                               lyxpipes = expandPath(lyxpipes);
                        }
                        break;
 
@@ -894,7 +945,7 @@ int LyXRC::read(LyXLex & lexrc)
                        break;
                case RC_PERS_DICT:
                        if (lexrc.next()) {
-                               isp_pers_dict = lexrc.getString();
+                               isp_pers_dict = os::internal_path(lexrc.getString());
                        }
                        break;
                case RC_ESC_CHARS:
@@ -909,7 +960,8 @@ int LyXRC::read(LyXLex & lexrc)
                        break;
                case RC_BACKUPDIR_PATH:
                        if (lexrc.next()) {
-                               backupdir_path = ExpandPath(lexrc.getString());
+                               backupdir_path = os::internal_path(lexrc.getString());
+                               backupdir_path = expandPath(backupdir_path);
                        }
                        break;
                case RC_DATE_INSERT_FORMAT:
@@ -1162,7 +1214,8 @@ void LyXRC::print() const
 }
 
 
-struct SameMover {
+class SameMover {
+public:
        typedef std::pair<std::string, SpecialisedMover> Data;
 
        SameMover(Data const & comparison)
@@ -1207,7 +1260,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
        case RC_BINDFILE:
                if (ignore_system_lyxrc ||
                    bind_file != system_lyxrc.bind_file) {
-                       os << "\\bind_file " << bind_file << "\n";
+                       string const path = os::external_path(bind_file);
+                       os << "\\bind_file \"" << path << "\"\n";
                }
                //
                // Misc Section
@@ -1227,7 +1281,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
        case RC_UIFILE:
                if (ignore_system_lyxrc ||
                    ui_file != system_lyxrc.ui_file) {
-                       os << "\\ui_file \"" << ui_file << "\"\n";
+                       string const path = os::external_path(ui_file);
+                       os << "\\ui_file \"" << path << "\"\n";
                }
        case RC_AUTOREGIONDELETE:
                if (ignore_system_lyxrc ||
@@ -1277,21 +1332,25 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
                        os << "# The default papersize to use.\n"
                           << "\\default_papersize \"";
                        switch (default_papersize) {
+                       case PAPER_DEFAULT:
+                               os << "default"; break;
                        case PAPER_USLETTER:
                                os << "usletter"; break;
-                       case PAPER_LEGALPAPER:
+                       case PAPER_USLEGAL:
                                os << "legal"; break;
-                       case PAPER_EXECUTIVEPAPER:
+                       case PAPER_USEXECUTIVE:
                                os << "executive"; break;
-                       case PAPER_A3PAPER:
+                       case PAPER_A3:
                                os << "a3"; break;
-                       case PAPER_A4PAPER:
+                       case PAPER_A4:
                                os << "a4"; break;
-                       case PAPER_A5PAPER:
+                       case PAPER_A5:
                                os << "a5"; break;
-                       case PAPER_B5PAPER:
+                       case PAPER_B5:
                                os << "b5"; break;
-                       case PAPER_DEFAULT: break;
+                       case PAPER_CUSTOM:
+                       case PAPER_B3:
+                       case PAPER_B4: break;
                        }
                        os << "\"\n";
                }
@@ -1310,33 +1369,39 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
                    index_command != system_lyxrc.index_command) {
                        os << "\\index_command \"" << index_command << "\"\n";
                }
-       case RC_KBMAP:
-               if (ignore_system_lyxrc ||
-                   use_kbmap != system_lyxrc.use_kbmap) {
-                       os << "\\kbmap " << convert<string>(use_kbmap) << '\n';
-               }
-
        case RC_CYGWIN_PATH_FIX:
                if (ignore_system_lyxrc ||
                    cygwin_path_fix != system_lyxrc.cygwin_path_fix) {
                        os << "\\cygwin_path_fix_needed "
                           << convert<string>(cygwin_path_fix) << '\n';
                }
+       case RC_TEX_ALLOWS_SPACES:
+               if (tex_allows_spaces != system_lyxrc.tex_allows_spaces) {
+                       os << "\\tex_allows_spaces "
+                          << convert<string>(tex_allows_spaces) << '\n';
+               }
+       case RC_KBMAP:
+               if (ignore_system_lyxrc ||
+                   use_kbmap != system_lyxrc.use_kbmap) {
+                       os << "\\kbmap " << convert<string>(use_kbmap) << '\n';
+               }
        case RC_KBMAP_PRIMARY:
                if (ignore_system_lyxrc ||
                    primary_kbmap != system_lyxrc.primary_kbmap) {
-                       os << "\\kbmap_primary \"" << primary_kbmap << "\"\n";
+                       string const path = os::external_path(primary_kbmap);
+                       os << "\\kbmap_primary \"" << path << "\"\n";
                }
        case RC_KBMAP_SECONDARY:
                if (ignore_system_lyxrc ||
                    secondary_kbmap != system_lyxrc.secondary_kbmap) {
-                       os << "\\kbmap_secondary \"" << secondary_kbmap
-                          << "\"\n";
+                       string const path = os::external_path(secondary_kbmap);
+                       os << "\\kbmap_secondary \"" << path << "\"\n";
                }
        case RC_SERVERPIPE:
                if (ignore_system_lyxrc ||
                    lyxpipes != system_lyxrc.lyxpipes) {
-                       os << "\\serverpipe \"" << lyxpipes << "\"\n";
+                       string const path = os::external_path(lyxpipes);
+                       os << "\\serverpipe \"" << path << "\"\n";
                }
        case RC_DATE_INSERT_FORMAT:
                if (ignore_system_lyxrc ||
@@ -1428,6 +1493,24 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
                    zoom != system_lyxrc.zoom) {
                        os << "\\screen_zoom " << zoom << '\n';
                }
+       case RC_SCREEN_GEOMETRY_HEIGHT:
+               if (ignore_system_lyxrc ||
+                   geometry_height != system_lyxrc.geometry_height) {
+                       os << "\\screen_geometry_height " << geometry_height
+                          << '\n';
+               }
+       case RC_SCREEN_GEOMETRY_WIDTH:
+               if (ignore_system_lyxrc ||
+                   geometry_width != system_lyxrc.geometry_width) {
+                       os << "\\screen_geometry_width " << geometry_width
+                          << '\n';
+               }
+       case RC_SCREEN_GEOMETRY_XYSAVED:
+               if (ignore_system_lyxrc ||
+                   geometry_xysaved != system_lyxrc.geometry_xysaved) {
+                       os << "\\screen_geometry_xysaved " << convert<string>(geometry_xysaved)
+                          << '\n';
+               }
        case RC_WHEEL_JUMP:
                if (ignore_system_lyxrc ||
                    wheel_jump != system_lyxrc.wheel_jump) {
@@ -1658,7 +1741,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
        case RC_PRINTTOFILE:
                if (ignore_system_lyxrc ||
                    print_to_file != system_lyxrc.print_to_file) {
-                       os << "\\print_to_file \"" << print_to_file << "\"\n";
+                       string const path = os::external_path(print_to_file);
+                       os << "\\print_to_file \"" << path << "\"\n";
                }
        case RC_PRINTFILEEXTENSION:
                if (ignore_system_lyxrc ||
@@ -1705,12 +1789,20 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
        case RC_DOCUMENTPATH:
                if (ignore_system_lyxrc ||
                    document_path != system_lyxrc.document_path) {
-                       os << "\\document_path \"" << document_path << "\"\n";
+                       string const path = os::external_path(document_path);
+                       os << "\\document_path \"" << path << "\"\n";
                }
-       case RC_LASTFILES:
+       case RC_USELASTFILEPOS:
                if (ignore_system_lyxrc ||
-                   lastfiles != system_lyxrc.lastfiles) {
-                       os << "\\lastfiles \"" << lastfiles << "\"\n";
+                   use_lastfilepos != system_lyxrc.use_lastfilepos) {
+                       os << "\\use_session " << convert<string>(use_lastfilepos)
+                          << '\n';
+               }
+       case RC_LOADSESSION:
+               if (ignore_system_lyxrc ||
+                   load_session != system_lyxrc.load_session) {
+                       os << "\\load_session " << convert<string>(load_session)
+                          << "\n";
                }
        case RC_NUMLASTFILES:
                if (ignore_system_lyxrc ||
@@ -1726,12 +1818,14 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
        case RC_TEMPLATEPATH:
                if (ignore_system_lyxrc ||
                    template_path != system_lyxrc.template_path) {
-                       os << "\\template_path \"" << template_path << "\"\n";
+                       string const path = os::external_path(template_path);
+                       os << "\\template_path \"" << path << "\"\n";
                }
        case RC_TEMPDIRPATH:
                if (ignore_system_lyxrc ||
                    tempdir_path != system_lyxrc.tempdir_path) {
-                       os << "\\tempdir_path \"" << tempdir_path << "\"\n";
+                       string const path = os::external_path(tempdir_path);
+                       os << "\\tempdir_path \"" << path << "\"\n";
                }
        case RC_USETEMPDIR:
                // Ignore it
@@ -1748,7 +1842,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
        case RC_BACKUPDIR_PATH:
                if (ignore_system_lyxrc ||
                    backupdir_path != system_lyxrc.backupdir_path) {
-                       os << "\\backupdir_path \"" << backupdir_path << "\"\n";
+                       string const path = os::external_path(backupdir_path);
+                       os << "\\backupdir_path \"" << path << "\"\n";
                }
 
                os << "\n#\n"
@@ -1813,8 +1908,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
                }
        case RC_PERS_DICT:
                if (isp_pers_dict != system_lyxrc.isp_pers_dict) {
-                       os << "\\personal_dictionary \"" << isp_pers_dict
-                          << "\"\n";
+                       string const path = os::external_path(isp_pers_dict);
+                       os << "\\personal_dictionary \"" << path << "\"\n";
                }
        case RC_USE_INP_ENC:
                if (ignore_system_lyxrc ||
@@ -2040,11 +2135,11 @@ string const LyXRC::getDescription(LyXRCTags tag)
                break;
 
        case RC_ASCIIROFF_COMMAND:
-               str = _("Use to define an external program to render tables in the ASCII output. E.g. \"groff -t -Tlatin1 $$FName\" where $$FName is the input file. If \"none\" is specified, an internal routine is used.");
+               str = _("Use to define an external program to render tables in plain text output. E.g. \"groff -t -Tlatin1 $$FName\" where $$FName is the input file. If \"none\" is specified, an internal routine is used.");
                break;
 
        case RC_ASCII_LINELEN:
-               str = _("This is the maximum line length of an exported ASCII file (LaTeX, SGML or plain text).");
+               str = _("This is the maximum line length of an exported text file (LaTeX, SGML or plain text).");
                break;
 
        case RC_AUTOREGIONDELETE:
@@ -2187,8 +2282,12 @@ string const LyXRC::getDescription(LyXRCTags tag)
                str = _("De-select if you don't want babel to be used when the language of the document is the default language.");
                break;
 
-       case RC_LASTFILES:
-               str = _("The file where the last-files information should be stored.");
+       case RC_USELASTFILEPOS:
+               str = _("De-select if you do not want LyX to scroll to saved position.");
+               break;
+
+       case RC_LOADSESSION:
+               str = _("De-select to prevent loading files opened from the last lyx session.");
                break;
 
        case RC_MAKE_BACKUP:
@@ -2204,6 +2303,9 @@ string const LyXRC::getDescription(LyXRCTags tag)
                break;
 
        case RC_PATH_PREFIX:
+               str = _("Specify those directories which should be "
+                        "prepended to the PATH environment variable. "
+                        "Use the OS native format.");
                break;
 
        case RC_PERS_DICT:
@@ -2343,6 +2445,15 @@ string const LyXRC::getDescription(LyXRCTags tag)
                str = _("The zoom percentage for screen fonts. A setting of 100% will make the fonts roughly the same size as on paper.");
                break;
 
+       case RC_SCREEN_GEOMETRY_HEIGHT:
+       case RC_SCREEN_GEOMETRY_WIDTH:
+               str = _("Specify geometry of the main view in width x height (values from last session will not be used if non-zero values are specified).");
+               break;
+
+       case RC_SCREEN_GEOMETRY_XYSAVED:
+               str = _("Allow session manager to save and restore windows position.");
+               break;
+
        case RC_SERVERPIPE:
                str = _("This starts the lyxserver. The pipes get an additional extension \".in\" and \".out\". Only for advanced users.");
                break;
@@ -2355,7 +2466,7 @@ string const LyXRC::getDescription(LyXRCTags tag)
                break;
 
        case RC_SPELL_COMMAND:
-               str = _("What command runs the spell checker?");
+               str = _("What command runs the spellchecker?");
                break;
 
        case RC_TEMPDIRPATH:
@@ -2366,6 +2477,9 @@ string const LyXRC::getDescription(LyXRCTags tag)
                str = _("The path that LyX will set when offering to choose a template. An empty value selects the directory LyX was started from.");
                break;
 
+       case RC_TEX_ALLOWS_SPACES:
+               break;
+
        case RC_UIFILE:
                str = _("The UI (user interface) file. Can either specify an absolute path, or LyX will look in its global and local ui/ directories.");
                break;
@@ -2380,7 +2494,7 @@ string const LyXRC::getDescription(LyXRCTags tag)
                break;
 
        case RC_USE_INP_ENC:
-               str = _("Specify whether to pass the -T input encoding option to ispell. Enable this if you can't spellcheck words with international letters in them. This may not work with all dictionaries.");
+               str = _("Specify whether to pass the -T input encoding option to ispell. Enable this if you cannot check the spelling of words containing accented letters. This may not work with all dictionaries.");
                break;
 
        case RC_USE_SPELL_LIB: