* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
* \author Jean-Marc Lasgouttes
* \author Angus Leeming
* \author John Levon
- * \author André Pönitz
+ * \author André Pönitz
* \author Allan Rae
* \author Dekel Tsur
*
#include <config.h>
-#include <fstream>
-#include <iostream>
-
#include "LyXRC.h"
-#include "Color.h"
+#include "ColorSet.h"
#include "Converter.h"
+#include "FontEnums.h"
#include "Format.h"
-#include "Session.h"
#include "Lexer.h"
-#include "FontEnums.h"
#include "Mover.h"
+#include "Session.h"
+#include "version.h"
#include "graphics/GraphicsTypes.h"
#include "support/os.h"
#include "support/userinfo.h"
+#include <fstream>
+#include <iostream>
+
using namespace std;
using namespace lyx::support;
{ "\\auto_number", LyXRC::RC_AUTO_NUMBER },
{ "\\auto_region_delete", LyXRC::RC_AUTOREGIONDELETE },
{ "\\auto_reset_options", LyXRC::RC_AUTORESET_OPTIONS },
+ { "\\autocorrection_math", LyXRC::RC_AUTOCORRECTION_MATH },
{ "\\autosave", LyXRC::RC_AUTOSAVE },
{ "\\backupdir_path", LyXRC::RC_BACKUPDIR_PATH },
{ "\\bibtex_command", LyXRC::RC_BIBTEX_COMMAND },
{ "\\template_path", LyXRC::RC_TEMPLATEPATH },
{ "\\tex_allows_spaces", LyXRC::RC_TEX_ALLOWS_SPACES },
{ "\\tex_expects_windows_paths", LyXRC::RC_TEX_EXPECTS_WINDOWS_PATHS },
+ { "\\thesaurusdir_path", LyXRC::RC_THESAURUSDIRPATH },
{ "\\ui_file", LyXRC::RC_UIFILE },
{ "\\use_alt_language", LyXRC::RC_USE_ALT_LANG },
{ "\\use_converter_cache", LyXRC::RC_USE_CONVERTER_CACHE },
{ "\\use_pixmap_cache", LyXRC::RC_USE_PIXMAP_CACHE },
// compatibility with versions older than 1.4.0 only
{ "\\use_pspell", LyXRC::RC_USE_SPELL_LIB },
- { "\\use_spell_lib", LyXRC::RC_USE_SPELL_LIB },
// compatibility with versions older than 1.4.0 only
{ "\\use_tempdir", LyXRC::RC_USETEMPDIR },
{ "\\use_tooltip", LyXRC::RC_USE_TOOLTIP },
backupdir_path.erase();
display_graphics = true;
// Spellchecker settings:
- use_spell_lib = true;
- isp_command = "ispell";
- isp_accept_compound = false;
- isp_use_input_encoding = false;
- isp_use_alt_lang = false;
- isp_use_pers_dict = false;
- isp_use_esc_chars = false;
+ spellchecker_accept_compound = false;
+ spellchecker_use_input_encoding = false;
+ spellchecker_use_alt_lang = false;
+ spellchecker_use_pers_dict = false;
+ spellchecker_use_esc_chars = false;
use_kbmap = false;
rtl_support = true;
visual_cursor = false;
completion_popup_text = false;
completion_popup_delay = 2.0;
completion_popup_after_complete = true;
+ autocorrection_math = false;
completion_inline_math = true;
completion_inline_text = false;
completion_inline_dots = -1;
int LyXRC::read(Lexer & lexrc)
{
- if (!lexrc.isOK()) return -2;
+ if (!lexrc.isOK())
+ return -2;
while (lexrc.isOK()) {
// By using two switches we take advantage of the compiler
continue;
case Lexer::LEX_FEOF:
continue;
- default: break;
+ default:
+ break;
}
switch (static_cast<LyXRCTags>(le)) {
case RC_INPUT: // Include file
}
break;
case RC_BINDFILE:
- if (lexrc.next()) {
+ if (lexrc.next())
bind_file = os::internal_path(lexrc.getString());
- }
break;
case RC_DEFFILE:
- if (lexrc.next()) {
+ if (lexrc.next())
def_file = os::internal_path(lexrc.getString());
- }
break;
case RC_UIFILE:
- if (lexrc.next()) {
+ if (lexrc.next())
ui_file = os::internal_path(lexrc.getString());
- }
break;
case RC_AUTORESET_OPTIONS:
}
break;
+ case RC_THESAURUSDIRPATH:
+ if (lexrc.next()) {
+ thesaurusdir_path = os::internal_path(lexrc.getString());
+ thesaurusdir_path = expandPath(thesaurusdir_path);
+ }
+ break;
+
case RC_USETEMPDIR:
if (lexrc.next())
LYXERR0("Ignoring obsolete use_tempdir flag.");
lexrc >> completion_inline_dots;
break;
+ case RC_AUTOCORRECTION_MATH:
+ lexrc >> autocorrection_math;
+ break;
+
case RC_COMPLETION_POPUP_DELAY:
lexrc >> completion_popup_delay;
break;
lexrc >> dialogs_iconify_with_main;
break;
- case RC_PLAINTEXT_ROFF_COMMAND:
- if (lexrc.next(true)) {
- plaintext_roff_command = lexrc.getString();
- }
+ case RC_PLAINTEXT_ROFF_COMMAND:
+ (void) lexrc.getString(); // Obsoleted in 2.0
break;
case RC_PLAINTEXT_LINELEN:
lexrc >> plaintext_linelen;
break;
// Spellchecker settings:
- case RC_USE_SPELL_LIB:
- lexrc >> use_spell_lib;
- break;
- case RC_SPELL_COMMAND:
- if (lexrc.next(true))
- isp_command = lexrc.getString();
- break;
case RC_ACCEPT_COMPOUND:
- lexrc >> isp_accept_compound;
+ lexrc >> spellchecker_accept_compound;
break;
case RC_USE_INP_ENC:
- lexrc >> isp_use_input_encoding;
+ lexrc >> spellchecker_use_input_encoding;
break;
case RC_USE_ALT_LANG:
- lexrc >> isp_use_alt_lang;
+ lexrc >> spellchecker_use_alt_lang;
break;
case RC_USE_PERS_DICT:
- lexrc >> isp_use_pers_dict;
+ lexrc >> spellchecker_use_pers_dict;
break;
case RC_USE_TOOLTIP:
lexrc >> use_tooltip;
lexrc >> use_pixmap_cache;
break;
case RC_USE_ESC_CHARS:
- lexrc >> isp_use_esc_chars;
+ lexrc >> spellchecker_use_esc_chars;
break;
case RC_ALT_LANG:
- lexrc >> isp_alt_lang;
+ lexrc >> spellchecker_alt_lang;
break;
case RC_PERS_DICT:
if (lexrc.next())
- isp_pers_dict = os::internal_path(lexrc.getString());
+ spellchecker_pers_dict = os::internal_path(lexrc.getString());
break;
case RC_ESC_CHARS:
- lexrc >> isp_esc_chars;
+ lexrc >> spellchecker_esc_chars;
break;
case RC_MAKE_BACKUP:
lexrc >> make_backup;
lexrc >> open_buffers_in_tabs;
break;
+ // Obsoleted in 2.0
+ case RC_SPELL_COMMAND:
+ case RC_USE_SPELL_LIB:
+ (void) lexrc.getString();
+ break;
+
case RC_LAST:
break; // this is just a dummy
}
}
if (tag == RC_LAST)
- os << "# This file is written by LyX, if you want to make your own\n"
- << "# modifications you should do them from inside LyX and save\n"
+ os << "# LyX " << lyx_version
+ << " generated this file. If you want to make your own\n"
+ << "# modifications you should do them from inside LyX and save.\n"
<< "\n";
// Why the switch you might ask. It is a trick to ensure that all
}
if (tag != RC_LAST)
break;
+ case RC_AUTOCORRECTION_MATH:
+ if (ignore_system_lyxrc ||
+ autocorrection_math != system_lyxrc.autocorrection_math) {
+ os << "\\autocorrection_math "
+ << convert<string>(autocorrection_math) << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
case RC_COMPLETION_POPUP_DELAY:
if (ignore_system_lyxrc ||
completion_popup_delay != system_lyxrc.completion_popup_delay) {
}
if (tag != RC_LAST)
break;
+ case RC_THESAURUSDIRPATH:
+ if (ignore_system_lyxrc ||
+ thesaurusdir_path != system_lyxrc.thesaurusdir_path) {
+ string const path = os::external_path(thesaurusdir_path);
+ os << "\\thesaurusdir_path \"" << path << "\"\n";
+ }
+ if (tag != RC_LAST)
+ break;
case RC_USETEMPDIR:
if (tag != RC_LAST)
break;
// Ignore it
+ case RC_PLAINTEXT_ROFF_COMMAND: // Obsoleted in 2.0
+ if (tag != RC_LAST)
+ break;
case RC_PLAINTEXT_LINELEN:
if (ignore_system_lyxrc ||
plaintext_linelen != system_lyxrc.plaintext_linelen) {
<< "# PLAIN TEXT EXPORT SECTION ##############################\n"
<< "#\n\n";
- case RC_PLAINTEXT_ROFF_COMMAND:
- if (ignore_system_lyxrc ||
- plaintext_roff_command != system_lyxrc.plaintext_roff_command) {
- os << "\\plaintext_roff_command \"" << escapeCommand(plaintext_roff_command)
- << "\"\n";
- }
- if (tag != RC_LAST)
- break;
-
os << "\n#\n"
<< "# SPELLCHECKER SECTION ##############################\n"
<< "#\n\n";
- case RC_USE_SPELL_LIB:
- if (ignore_system_lyxrc ||
- use_spell_lib != system_lyxrc.use_spell_lib) {
- os << "\\use_spell_lib " << convert<string>(use_spell_lib) << '\n';
- }
- if (tag != RC_LAST)
- break;
case RC_SPELL_COMMAND:
- if (ignore_system_lyxrc ||
- isp_command != system_lyxrc.isp_command) {
- os << "\\spell_command \"" << escapeCommand(isp_command) << "\"\n";
- }
+ case RC_USE_SPELL_LIB:
+ // Obsoleted in 2.0
if (tag != RC_LAST)
break;
case RC_ACCEPT_COMPOUND:
if (ignore_system_lyxrc ||
- isp_accept_compound != system_lyxrc.isp_accept_compound) {
- os << "\\accept_compound " << convert<string>(isp_accept_compound)
+ spellchecker_accept_compound != system_lyxrc.spellchecker_accept_compound) {
+ os << "\\accept_compound " << convert<string>(spellchecker_accept_compound)
<< '\n';
}
if (tag != RC_LAST)
break;
case RC_USE_ALT_LANG:
if (ignore_system_lyxrc ||
- isp_use_alt_lang != system_lyxrc.isp_use_alt_lang) {
- os << "\\use_alt_language " << convert<string>(isp_use_alt_lang)
+ spellchecker_use_alt_lang != system_lyxrc.spellchecker_use_alt_lang) {
+ os << "\\use_alt_language " << convert<string>(spellchecker_use_alt_lang)
<< '\n';
}
if (tag != RC_LAST)
break;
case RC_ALT_LANG:
if (ignore_system_lyxrc ||
- isp_alt_lang != system_lyxrc.isp_alt_lang) {
- os << "\\alternate_language \"" << isp_alt_lang
+ spellchecker_alt_lang != system_lyxrc.spellchecker_alt_lang) {
+ os << "\\alternate_language \"" << spellchecker_alt_lang
<< "\"\n";
}
if (tag != RC_LAST)
break;
case RC_USE_ESC_CHARS:
if (ignore_system_lyxrc ||
- isp_use_esc_chars != system_lyxrc.isp_use_esc_chars) {
- os << "\\use_escape_chars " << convert<string>(isp_use_esc_chars)
+ spellchecker_use_esc_chars != system_lyxrc.spellchecker_use_esc_chars) {
+ os << "\\use_escape_chars " << convert<string>(spellchecker_use_esc_chars)
<< '\n';
}
if (tag != RC_LAST)
break;
case RC_ESC_CHARS:
if (ignore_system_lyxrc ||
- isp_esc_chars != system_lyxrc.isp_esc_chars) {
- os << "\\escape_chars \"" << isp_esc_chars << "\"\n";
+ spellchecker_esc_chars != system_lyxrc.spellchecker_esc_chars) {
+ os << "\\escape_chars \"" << spellchecker_esc_chars << "\"\n";
}
if (tag != RC_LAST)
break;
case RC_USE_PERS_DICT:
if (ignore_system_lyxrc ||
- isp_use_pers_dict != system_lyxrc.isp_use_pers_dict) {
+ spellchecker_use_pers_dict != system_lyxrc.spellchecker_use_pers_dict) {
os << "\\use_personal_dictionary "
- << convert<string>(isp_use_pers_dict)
+ << convert<string>(spellchecker_use_pers_dict)
<< '\n';
}
if (tag != RC_LAST)
<< '\n';
}
case RC_PERS_DICT:
- if (isp_pers_dict != system_lyxrc.isp_pers_dict) {
- string const path = os::external_path(isp_pers_dict);
+ if (spellchecker_pers_dict != system_lyxrc.spellchecker_pers_dict) {
+ string const path = os::external_path(spellchecker_pers_dict);
os << "\\personal_dictionary \"" << path << "\"\n";
}
if (tag != RC_LAST)
break;
case RC_USE_INP_ENC:
if (ignore_system_lyxrc ||
- isp_use_input_encoding
- != system_lyxrc.isp_use_input_encoding) {
+ spellchecker_use_input_encoding
+ != system_lyxrc.spellchecker_use_input_encoding) {
os << "\\use_input_encoding "
- << convert<string>(isp_use_input_encoding)
+ << convert<string>(spellchecker_use_input_encoding)
<< '\n';
}
if (tag != RC_LAST)
str = _("Use \"...\" to shorten long completions.");
break;
+ case RC_AUTOCORRECTION_MATH:
+ str = _("Allow TeXMacs shorthand, like => converting to \Rightarrow.");
+ break;
+
case RC_NUMLASTFILES:
str = bformat(_("Maximal number of lastfiles. Up to %1$d can appear in the file menu."),
maxlastfiles);
case RC_PERS_DICT:
case RC_USE_PERS_DICT:
- str = _("Specify an alternate personal dictionary file. E.g. \".ispell_english\".");
+ str = _("Specify an alternate personal dictionary file. E.g. \".aspell_english\".");
break;
case RC_PREVIEW:
str = _("De-select if you don't want the startup banner.");
break;
- case RC_SPELL_COMMAND:
- str = _("What command runs the spellchecker?");
- break;
-
case RC_TEMPDIRPATH:
str = _("LyX will place its temporary directories in this path. They will be deleted when you quit LyX.");
break;
+ case RC_THESAURUSDIRPATH:
+ str = _("This is the place where the files of the thesaurus library reside.");
+ break;
+
case RC_TEMPLATEPATH:
str = _("The path that LyX will set when offering to choose a template. An empty value selects the directory LyX was started from.");
break;
break;
case RC_USE_INP_ENC:
- 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.");
+ str = _("Specify whether to pass the -T input encoding option to aspell. Enable this if you cannot check the spelling of words containing accented letters. This may not work with all dictionaries.");
break;
case RC_USE_TOOLTIP: