#include "converter.h"
#include "format.h"
#include "gettext.h"
+#include "lastfiles.h"
#include "LColor.h"
#include "lyxlex.h"
#include "lyxfont.h"
#include "support/filetools.h"
#include "support/lstrings.h"
-#include "support/translator.h"
#include "support/tostr.h"
#include "support/userinfo.h"
using lyx::support::ascii_lowercase;
+using lyx::support::bformat;
using lyx::support::ExpandPath;
using lyx::support::GetEnv;
using lyx::support::LibFileSearch;
{ "\\escape_chars", LyXRC::RC_ESC_CHARS },
{ "\\font_encoding", LyXRC::RC_FONT_ENCODING },
{ "\\format", LyXRC::RC_FORMAT },
+ { "\\index_command", LyXRC::RC_INDEX_COMMAND },
{ "\\input", LyXRC::RC_INPUT },
{ "\\kbmap", LyXRC::RC_KBMAP },
{ "\\kbmap_primary", LyXRC::RC_KBMAP_PRIMARY },
{ "\\user_email", LyXRC::RC_USER_EMAIL },
{ "\\user_name", LyXRC::RC_USER_NAME },
{ "\\view_dvi_paper_option", LyXRC::RC_VIEWDVI_PAPEROPTION },
+ // compatibility with versions older than 1.4.0 only
{ "\\viewer" ,LyXRC::RC_VIEWER},
{ "\\wheel_jump", LyXRC::RC_WHEEL_JUMP }
};
chktex_command = "chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38";
bibtex_command = "bibtex";
fontenc = "default";
+ index_command = "makeindex -c -q";
dpi = 75;
// Because a screen typically is wider than a piece of paper:
zoom = 150;
auto_region_delete = true;
auto_reset_options = false;
ascii_linelen = 65;
- num_lastfiles = 4;
+ num_lastfiles = maxlastfiles;
check_lastfiles = true;
make_backup = true;
backupdir_path.erase();
cursor_follows_scrollbar = false;
dialogs_iconify_with_main = false;
label_init_length = 3;
- preview = false;
+ preview = PREVIEW_OFF;
preview_hashed_labels = false;
preview_scale_factor = 0.9;
user_name = lyx::support::user_name();
user_email = lyx::support::user_email();
-
- if (user_email.empty())
- user_email = _("email address unknown");
}
}
break;
+ case RC_INDEX_COMMAND:
+ if (lexrc.next()) {
+ index_command = lexrc.getString();
+ }
+ break;
+
case RC_SCREEN_DPI:
if (lexrc.next()) {
dpi = lexrc.getInteger();
break;
}
- LColor::color col = lcolor.getFromLyXName(lyx_name);
+ LColor::color const col =
+ lcolor.getFromLyXName(lyx_name);
+ if (col == LColor::none ||
+ col == LColor::inherit ||
+ col == LColor::ignore)
+ break;
+
if (!lcolor.setColor(col, x11_name)) {
lyxerr << "Bad lyxrc set_color for "
<< lyx_name << endl;
}
break;
}
+ // compatibility with versions older than 1.4.0 only
case RC_VIEWER: {
string format, command;
if (lexrc.next()) {
if (lexrc.next()) {
shortcut = lexrc.getString();
}
+ string viewer, editor;
+ // Hack to ensure compatibility with versions older
+ // than 1.4.0
+ int le = lexrc.lex();
+ if (le != LyXLex::LEX_FEOF && le != LyXLex::LEX_UNDEF) {
+ viewer = lexrc.getString();
+ if (le == LyXLex::LEX_DATA) {
+ if (token(viewer, ' ', 0) == "none")
+ viewer.erase();
+ if (lexrc.next()) {
+ editor = lexrc.getString();
+ if (token(editor, ' ', 0) == "none")
+ editor.erase();
+ }
+ } else {
+ // We have got a known token.
+ // Therefore this is an old style
+ // format definition without
+ // viewer and editor.
+ lexrc.pushToken(viewer);
+ viewer.erase();
+ }
+ }
if (prettyname.empty()) {
if (converters.formatIsUsed(format)) {
lyxerr << "Can't delete format "
}
} else {
formats.add(format, extension, prettyname,
- shortcut);
+ shortcut, viewer, editor);
}
break;
}
case RC_PREVIEW:
if (lexrc.next()) {
- preview = lexrc.getBool();
+ string const tmp = lexrc.getString();
+ if (tmp == "true" || tmp == "on")
+ preview = PREVIEW_ON;
+ else if (tmp == "no_math")
+ preview = PREVIEW_NO_MATH;
+ else {
+ preview = PREVIEW_OFF;
+ if (tmp != "false" && tmp != "off")
+ lyxerr << "Unrecognized "
+ "preview status \""
+ << tmp << '\n' << endl;
+ }
}
break;
bibtex_command != system_lyxrc.bibtex_command) {
os << "\\bibtex_command \"" << bibtex_command << "\"\n";
}
+ case RC_INDEX_COMMAND:
+ if (ignore_system_lyxrc ||
+ 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) {
case RC_PREVIEW:
if (ignore_system_lyxrc ||
preview != system_lyxrc.preview) {
- os << "\\preview " << tostr(preview) << '\n';
+ string status;
+ switch (preview) {
+ case PREVIEW_ON:
+ status = "on";
+ break;
+ case PREVIEW_NO_MATH:
+ status = "no_math";
+ break;
+ case PREVIEW_OFF:
+ status = "off";
+ break;
+ }
+ os << "\\preview " << status << '\n';
}
case RC_PREVIEW_HASHED_LABELS:
<< "#\n\n";
case RC_FORMAT:
- // Look for deleted formats
+ // New/modifed formats
for (Formats::const_iterator cit = formats.begin();
cit != formats.end(); ++cit) {
Format const * format =
if (!format ||
format->extension() != cit->extension() ||
format->prettyname() != cit->prettyname() ||
- format->shortcut() != cit->shortcut())
+ format->shortcut() != cit->shortcut() ||
+ format->viewer() != cit->viewer() ||
+ format->editor() != cit->editor())
os << "\\format \"" << cit->name() << "\" \""
<< cit->extension() << "\" \""
<< cit->prettyname() << "\" \""
- << cit->shortcut() << "\"\n";
+ << cit->shortcut() << "\" \""
+ << cit->viewer() << "\" \""
+ << cit->editor() << "\"\n";
}
- // New/modifed formats
+ // Look for deleted formats
for (Formats::const_iterator cit = system_formats.begin();
cit != system_formats.end(); ++cit)
if (!formats.getFormat(cit->name()))
os << "\\format \"" << cit->name()
- << "\" \"\" \"\" \"\"\n";
+ << "\" \"\" \"\" \"\" \"\" \"\"\n";
case RC_VIEWER:
- for (Formats::const_iterator cit = formats.begin();
- cit != formats.end(); ++cit) {
- Format const * format =
- system_formats.getFormat(cit->name());
- if ((!format || format->viewer() != cit->viewer()) &&
- (format || !cit->viewer().empty()))
- os << "\\viewer \"" << cit->name() << "\" \""
- << cit->viewer() << "\"\n";
- }
+ // Ignore it
os << "\n#\n"
<< "# CONVERTERS SECTION ##########################\n"
break;
case RC_NUMLASTFILES:
- str = _("Maximal number of lastfiles. Up to 9 can appear in the file menu.");
+ str = bformat(_("Maximal number of lastfiles. Up to %1$s can appear in the file menu."), tostr(maxlastfiles));
break;
case RC_CHECKLASTFILES:
break;
case RC_BIBTEX_COMMAND:
- str = _("Define the options of bibtex (cf. man bibtex) or select and alternative compiler (e.g. mlbibtex or bibulus).");
+ str = _("Define the options of bibtex (cf. man bibtex) or select an alternative compiler (e.g. mlbibtex or bibulus).");
+ break;
+
+ case RC_INDEX_COMMAND:
+ str = _("Define the options of makeindex (cf. man makeindex) or select an alternative compiler. E.g., using xindy/make-rules, the command string would be \"makeindex.sh -m $$lang\".");
break;
case RC_CURSOR_FOLLOWS_SCROLLBAR: