InsetInfo: add LYXRC_INFO (lyxrc bind_file ==> cua)

NOTE: The syntax in LyXRC.cpp is ugly, and this feature is not extremely useful. Therefore, this patch may be reverted in the end.
	* src/insets/InsetInfo.h|cpp: support LYXRC_INFO
	* src/LyXRC.h|cpp: allow output of a specific RC item.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20908 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Bo Peng 2007-10-11 15:23:52 +00:00
parent 4ed5939d2e
commit f847e0776b
4 changed files with 251 additions and 21 deletions

View File

@ -1210,8 +1210,17 @@ private:
}; };
void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) const
{ {
LyXRCTags tag = RC_LAST;
if (!name.empty()) {
for (size_t i = 0; i < lyxrcCount; ++i)
if ("\\" + name == lyxrcTags[i].tag)
tag = static_cast<LyXRCTags>(lyxrcTags[i].code);
}
if (tag == RC_LAST)
os << "### This file is part of\n" os << "### This file is part of\n"
<< "### ========================================================\n" << "### ========================================================\n"
<< "### LyX, The Document Processor\n" << "### LyX, The Document Processor\n"
@ -1230,7 +1239,6 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
// there are no breaks at all. So it is just a huge fall-through. // there are no breaks at all. So it is just a huge fall-through.
// The nice thing is that we will get a warning from the compiler // The nice thing is that we will get a warning from the compiler
// if we forget an element. // if we forget an element.
LyXRCTags tag = RC_LAST;
switch (tag) { switch (tag) {
case RC_LAST: case RC_LAST:
case RC_INPUT: case RC_INPUT:
@ -1241,13 +1249,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
string const path = os::external_path(bind_file); string const path = os::external_path(bind_file);
os << "\\bind_file \"" << path << "\"\n"; os << "\\bind_file \"" << path << "\"\n";
} }
if (tag != RC_LAST)
break;
// //
// Misc Section // Misc Section
// //
os << "\n#\n" os << "\n#\n"
<< "# MISC SECTION ######################################\n" << "# MISC SECTION ######################################\n"
<< "#\n\n"; << "#\n\n";
// bind files are not done here. // bind files are not done here.
case RC_PATH_PREFIX: case RC_PATH_PREFIX:
@ -1255,13 +1265,16 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
path_prefix != system_lyxrc.path_prefix) { path_prefix != system_lyxrc.path_prefix) {
os << "\\path_prefix \"" << path_prefix << "\"\n"; os << "\\path_prefix \"" << path_prefix << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_UIFILE: case RC_UIFILE:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
ui_file != system_lyxrc.ui_file) { ui_file != system_lyxrc.ui_file) {
string const path = os::external_path(ui_file); string const path = os::external_path(ui_file);
os << "\\ui_file \"" << path << "\"\n"; os << "\\ui_file \"" << path << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_AUTOREGIONDELETE: case RC_AUTOREGIONDELETE:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
auto_region_delete != system_lyxrc.auto_region_delete) { auto_region_delete != system_lyxrc.auto_region_delete) {
@ -1270,6 +1283,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< "\\auto_region_delete " << convert<string>(auto_region_delete) << "\\auto_region_delete " << convert<string>(auto_region_delete)
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_AUTORESET_OPTIONS: case RC_AUTORESET_OPTIONS:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
auto_reset_options != system_lyxrc.auto_reset_options) { auto_reset_options != system_lyxrc.auto_reset_options) {
@ -1279,12 +1294,16 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< convert<string>(auto_reset_options) << convert<string>(auto_reset_options)
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_AUTOSAVE: case RC_AUTOSAVE:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
autosave != system_lyxrc.autosave) { autosave != system_lyxrc.autosave) {
os << "# The time interval between auto-saves in seconds.\n" os << "# The time interval between auto-saves in seconds.\n"
<< "\\autosave " << autosave << '\n'; << "\\autosave " << autosave << '\n';
} }
if (tag != RC_LAST)
break;
case RC_DISPLAY_GRAPHICS: case RC_DISPLAY_GRAPHICS:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
display_graphics != system_lyxrc.display_graphics) { display_graphics != system_lyxrc.display_graphics) {
@ -1294,6 +1313,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< graphics::displayTranslator().find(display_graphics) << graphics::displayTranslator().find(display_graphics)
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_VIEWDVI_PAPEROPTION: case RC_VIEWDVI_PAPEROPTION:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
@ -1304,6 +1325,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< "\\view_dvi_paper_option \"" << "\\view_dvi_paper_option \""
<< view_dvi_paper_option << "\"\n"; << view_dvi_paper_option << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_DEFAULT_PAPERSIZE: case RC_DEFAULT_PAPERSIZE:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
default_papersize != system_lyxrc.default_papersize) { default_papersize != system_lyxrc.default_papersize) {
@ -1332,79 +1355,109 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
} }
os << "\"\n"; os << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_CHKTEX_COMMAND: case RC_CHKTEX_COMMAND:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
chktex_command != system_lyxrc.chktex_command) { chktex_command != system_lyxrc.chktex_command) {
os << "\\chktex_command \"" << chktex_command << "\"\n"; os << "\\chktex_command \"" << chktex_command << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_BIBTEX_COMMAND: case RC_BIBTEX_COMMAND:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
bibtex_command != system_lyxrc.bibtex_command) { bibtex_command != system_lyxrc.bibtex_command) {
os << "\\bibtex_command \"" << bibtex_command << "\"\n"; os << "\\bibtex_command \"" << bibtex_command << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_INDEX_COMMAND: case RC_INDEX_COMMAND:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
index_command != system_lyxrc.index_command) { index_command != system_lyxrc.index_command) {
os << "\\index_command \"" << index_command << "\"\n"; os << "\\index_command \"" << index_command << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_TEX_EXPECTS_WINDOWS_PATHS: case RC_TEX_EXPECTS_WINDOWS_PATHS:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
windows_style_tex_paths != system_lyxrc.windows_style_tex_paths) { windows_style_tex_paths != system_lyxrc.windows_style_tex_paths) {
os << "\\tex_expects_windows_paths " os << "\\tex_expects_windows_paths "
<< convert<string>(windows_style_tex_paths) << '\n'; << convert<string>(windows_style_tex_paths) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_TEX_ALLOWS_SPACES: case RC_TEX_ALLOWS_SPACES:
if (tex_allows_spaces != system_lyxrc.tex_allows_spaces) { if (tex_allows_spaces != system_lyxrc.tex_allows_spaces) {
os << "\\tex_allows_spaces " os << "\\tex_allows_spaces "
<< convert<string>(tex_allows_spaces) << '\n'; << convert<string>(tex_allows_spaces) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_KBMAP: case RC_KBMAP:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
use_kbmap != system_lyxrc.use_kbmap) { use_kbmap != system_lyxrc.use_kbmap) {
os << "\\kbmap " << convert<string>(use_kbmap) << '\n'; os << "\\kbmap " << convert<string>(use_kbmap) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_KBMAP_PRIMARY: case RC_KBMAP_PRIMARY:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
primary_kbmap != system_lyxrc.primary_kbmap) { primary_kbmap != system_lyxrc.primary_kbmap) {
string const path = os::external_path(primary_kbmap); string const path = os::external_path(primary_kbmap);
os << "\\kbmap_primary \"" << path << "\"\n"; os << "\\kbmap_primary \"" << path << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_KBMAP_SECONDARY: case RC_KBMAP_SECONDARY:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
secondary_kbmap != system_lyxrc.secondary_kbmap) { secondary_kbmap != system_lyxrc.secondary_kbmap) {
string const path = os::external_path(secondary_kbmap); string const path = os::external_path(secondary_kbmap);
os << "\\kbmap_secondary \"" << path << "\"\n"; os << "\\kbmap_secondary \"" << path << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_SERVERPIPE: case RC_SERVERPIPE:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
lyxpipes != system_lyxrc.lyxpipes) { lyxpipes != system_lyxrc.lyxpipes) {
string const path = os::external_path(lyxpipes); string const path = os::external_path(lyxpipes);
os << "\\serverpipe \"" << path << "\"\n"; os << "\\serverpipe \"" << path << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_DATE_INSERT_FORMAT: case RC_DATE_INSERT_FORMAT:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
date_insert_format != system_lyxrc.date_insert_format) { date_insert_format != system_lyxrc.date_insert_format) {
os << "\\date_insert_format \"" << date_insert_format os << "\\date_insert_format \"" << date_insert_format
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_LABEL_INIT_LENGTH: case RC_LABEL_INIT_LENGTH:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
label_init_length != system_lyxrc.label_init_length) { label_init_length != system_lyxrc.label_init_length) {
os << "\\label_init_length " << label_init_length os << "\\label_init_length " << label_init_length
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_USER_NAME: case RC_USER_NAME:
os << "\\user_name \"" << user_name << "\"\n"; os << "\\user_name \"" << user_name << "\"\n";
if (tag != RC_LAST)
break;
case RC_USER_EMAIL: case RC_USER_EMAIL:
os << "\\user_email \"" << user_email << "\"\n"; os << "\\user_email \"" << user_email << "\"\n";
if (tag != RC_LAST)
break;
case RC_SHOW_BANNER: case RC_SHOW_BANNER:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
show_banner != system_lyxrc.show_banner) { show_banner != system_lyxrc.show_banner) {
os << "\\show_banner " << convert<string>(show_banner) << '\n'; os << "\\show_banner " << convert<string>(show_banner) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_PREVIEW: case RC_PREVIEW:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
@ -1423,6 +1476,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
} }
os << "\\preview " << status << '\n'; os << "\\preview " << status << '\n';
} }
if (tag != RC_LAST)
break;
case RC_PREVIEW_HASHED_LABELS: case RC_PREVIEW_HASHED_LABELS:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
@ -1431,6 +1486,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
os << "\\preview_hashed_labels " os << "\\preview_hashed_labels "
<< convert<string>(preview_hashed_labels) << '\n'; << convert<string>(preview_hashed_labels) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_PREVIEW_SCALE_FACTOR: case RC_PREVIEW_SCALE_FACTOR:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
@ -1438,6 +1495,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
os << "\\preview_scale_factor " os << "\\preview_scale_factor "
<< preview_scale_factor << '\n'; << preview_scale_factor << '\n';
} }
if (tag != RC_LAST)
break;
case RC_USE_CONVERTER_CACHE: case RC_USE_CONVERTER_CACHE:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
@ -1445,6 +1504,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
os << "\\use_converter_cache " os << "\\use_converter_cache "
<< convert<string>(use_converter_cache) << '\n'; << convert<string>(use_converter_cache) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_CONVERTER_CACHE_MAXAGE: case RC_CONVERTER_CACHE_MAXAGE:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
@ -1452,6 +1513,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
os << "\\converter_cache_maxage " os << "\\converter_cache_maxage "
<< converter_cache_maxage << '\n'; << converter_cache_maxage << '\n';
} }
if (tag != RC_LAST)
break;
os << "\n#\n" os << "\n#\n"
<< "# SCREEN & FONTS SECTION ############################\n" << "# SCREEN & FONTS SECTION ############################\n"
@ -1462,29 +1525,39 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
dpi != system_lyxrc.dpi) { dpi != system_lyxrc.dpi) {
os << "\\screen_dpi " << dpi << '\n'; os << "\\screen_dpi " << dpi << '\n';
} }
if (tag != RC_LAST)
break;
case RC_SCREEN_ZOOM: case RC_SCREEN_ZOOM:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
zoom != system_lyxrc.zoom) { zoom != system_lyxrc.zoom) {
os << "\\screen_zoom " << zoom << '\n'; os << "\\screen_zoom " << zoom << '\n';
} }
if (tag != RC_LAST)
break;
case RC_SCREEN_GEOMETRY_HEIGHT: case RC_SCREEN_GEOMETRY_HEIGHT:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
geometry_height != system_lyxrc.geometry_height) { geometry_height != system_lyxrc.geometry_height) {
os << "\\screen_geometry_height " << geometry_height os << "\\screen_geometry_height " << geometry_height
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_SCREEN_GEOMETRY_WIDTH: case RC_SCREEN_GEOMETRY_WIDTH:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
geometry_width != system_lyxrc.geometry_width) { geometry_width != system_lyxrc.geometry_width) {
os << "\\screen_geometry_width " << geometry_width os << "\\screen_geometry_width " << geometry_width
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_SCREEN_GEOMETRY_XYSAVED: case RC_SCREEN_GEOMETRY_XYSAVED:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
geometry_xysaved != system_lyxrc.geometry_xysaved) { geometry_xysaved != system_lyxrc.geometry_xysaved) {
os << "\\screen_geometry_xysaved " << convert<string>(geometry_xysaved) os << "\\screen_geometry_xysaved " << convert<string>(geometry_xysaved)
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_CURSOR_FOLLOWS_SCROLLBAR: case RC_CURSOR_FOLLOWS_SCROLLBAR:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
cursor_follows_scrollbar cursor_follows_scrollbar
@ -1492,6 +1565,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
os << "\\cursor_follows_scrollbar " os << "\\cursor_follows_scrollbar "
<< convert<string>(cursor_follows_scrollbar) << '\n'; << convert<string>(cursor_follows_scrollbar) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_DIALOGS_ICONIFY_WITH_MAIN: case RC_DIALOGS_ICONIFY_WITH_MAIN:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
dialogs_iconify_with_main dialogs_iconify_with_main
@ -1499,42 +1574,56 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
os << "\\dialogs_iconify_with_main " os << "\\dialogs_iconify_with_main "
<< convert<string>(dialogs_iconify_with_main) << '\n'; << convert<string>(dialogs_iconify_with_main) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_SCREEN_FONT_ROMAN: case RC_SCREEN_FONT_ROMAN:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
roman_font_name != system_lyxrc.roman_font_name) { roman_font_name != system_lyxrc.roman_font_name) {
os << "\\screen_font_roman \"" << roman_font_name os << "\\screen_font_roman \"" << roman_font_name
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_SCREEN_FONT_ROMAN_FOUNDRY: case RC_SCREEN_FONT_ROMAN_FOUNDRY:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
roman_font_foundry != system_lyxrc.roman_font_foundry) { roman_font_foundry != system_lyxrc.roman_font_foundry) {
os << "\\screen_font_roman_foundry \"" << roman_font_foundry os << "\\screen_font_roman_foundry \"" << roman_font_foundry
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_SCREEN_FONT_SANS: case RC_SCREEN_FONT_SANS:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
sans_font_name != system_lyxrc.sans_font_name) { sans_font_name != system_lyxrc.sans_font_name) {
os << "\\screen_font_sans \"" << sans_font_name os << "\\screen_font_sans \"" << sans_font_name
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_SCREEN_FONT_SANS_FOUNDRY: case RC_SCREEN_FONT_SANS_FOUNDRY:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
sans_font_foundry != system_lyxrc.sans_font_foundry) { sans_font_foundry != system_lyxrc.sans_font_foundry) {
os << "\\screen_font_sans_foundry \"" << sans_font_foundry os << "\\screen_font_sans_foundry \"" << sans_font_foundry
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_SCREEN_FONT_TYPEWRITER: case RC_SCREEN_FONT_TYPEWRITER:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
typewriter_font_name != system_lyxrc.typewriter_font_name) { typewriter_font_name != system_lyxrc.typewriter_font_name) {
os << "\\screen_font_typewriter \"" os << "\\screen_font_typewriter \""
<< typewriter_font_name << "\"\n"; << typewriter_font_name << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_SCREEN_FONT_TYPEWRITER_FOUNDRY: case RC_SCREEN_FONT_TYPEWRITER_FOUNDRY:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
typewriter_font_foundry != system_lyxrc.typewriter_font_foundry) { typewriter_font_foundry != system_lyxrc.typewriter_font_foundry) {
os << "\\screen_font_typewriter_foundry \"" os << "\\screen_font_typewriter_foundry \""
<< typewriter_font_foundry << "\"\n"; << typewriter_font_foundry << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_SCREEN_FONT_SCALABLE: case RC_SCREEN_FONT_SCALABLE:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
@ -1543,6 +1632,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< convert<string>(use_scalable_fonts) << convert<string>(use_scalable_fonts)
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_SCREEN_FONT_SIZES: case RC_SCREEN_FONT_SIZES:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
font_sizes[Font::SIZE_TINY] font_sizes[Font::SIZE_TINY]
@ -1580,6 +1671,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< ' ' << font_sizes[Font::SIZE_HUGER] << ' ' << font_sizes[Font::SIZE_HUGER]
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
os << "\n#\n" os << "\n#\n"
<< "# COLOR SECTION ###################################\n" << "# COLOR SECTION ###################################\n"
@ -1597,6 +1690,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< col << "\"\n"; << col << "\"\n";
} }
} }
if (tag != RC_LAST)
break;
os << "\n#\n" os << "\n#\n"
<< "# PRINTER SECTION ###################################\n" << "# PRINTER SECTION ###################################\n"
@ -1607,6 +1702,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
printer != system_lyxrc.printer) { printer != system_lyxrc.printer) {
os << "\\printer \"" << printer << "\"\n"; os << "\\printer \"" << printer << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINT_ADAPTOUTPUT: case RC_PRINT_ADAPTOUTPUT:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_adapt_output != system_lyxrc.print_adapt_output) { print_adapt_output != system_lyxrc.print_adapt_output) {
@ -1614,23 +1711,31 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< convert<string>(print_adapt_output) << convert<string>(print_adapt_output)
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_PRINT_COMMAND: case RC_PRINT_COMMAND:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_command != system_lyxrc.print_command) { print_command != system_lyxrc.print_command) {
os << "\\print_command \"" << print_command << "\"\n"; os << "\\print_command \"" << print_command << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTEXSTRAOPTIONS: case RC_PRINTEXSTRAOPTIONS:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_extra_options != system_lyxrc.print_extra_options) { print_extra_options != system_lyxrc.print_extra_options) {
os << "\\print_extra_options \"" << print_extra_options os << "\\print_extra_options \"" << print_extra_options
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTSPOOL_COMMAND: case RC_PRINTSPOOL_COMMAND:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_spool_command != system_lyxrc.print_spool_command) { print_spool_command != system_lyxrc.print_spool_command) {
os << "\\print_spool_command \"" << print_spool_command os << "\\print_spool_command \"" << print_spool_command
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTSPOOL_PRINTERPREFIX: case RC_PRINTSPOOL_PRINTERPREFIX:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_spool_printerprefix print_spool_printerprefix
@ -1638,42 +1743,56 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
os << "\\print_spool_printerprefix \"" os << "\\print_spool_printerprefix \""
<< print_spool_printerprefix << "\"\n"; << print_spool_printerprefix << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTEVENPAGEFLAG: case RC_PRINTEVENPAGEFLAG:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_evenpage_flag != system_lyxrc.print_evenpage_flag) { print_evenpage_flag != system_lyxrc.print_evenpage_flag) {
os << "\\print_evenpage_flag \"" << print_evenpage_flag os << "\\print_evenpage_flag \"" << print_evenpage_flag
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTODDPAGEFLAG: case RC_PRINTODDPAGEFLAG:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_oddpage_flag != system_lyxrc.print_oddpage_flag) { print_oddpage_flag != system_lyxrc.print_oddpage_flag) {
os << "\\print_oddpage_flag \"" << print_oddpage_flag os << "\\print_oddpage_flag \"" << print_oddpage_flag
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTREVERSEFLAG: case RC_PRINTREVERSEFLAG:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_reverse_flag != system_lyxrc.print_reverse_flag) { print_reverse_flag != system_lyxrc.print_reverse_flag) {
os << "\\print_reverse_flag \"" << print_reverse_flag os << "\\print_reverse_flag \"" << print_reverse_flag
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTLANDSCAPEFLAG: case RC_PRINTLANDSCAPEFLAG:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_landscape_flag != system_lyxrc.print_landscape_flag) { print_landscape_flag != system_lyxrc.print_landscape_flag) {
os << "\\print_landscape_flag \"" << print_landscape_flag os << "\\print_landscape_flag \"" << print_landscape_flag
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTPAGERANGEFLAG: case RC_PRINTPAGERANGEFLAG:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_pagerange_flag != system_lyxrc.print_pagerange_flag) { print_pagerange_flag != system_lyxrc.print_pagerange_flag) {
os << "\\print_pagerange_flag \"" << print_pagerange_flag os << "\\print_pagerange_flag \"" << print_pagerange_flag
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTCOPIESFLAG: case RC_PRINTCOPIESFLAG:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_copies_flag != system_lyxrc.print_copies_flag) { print_copies_flag != system_lyxrc.print_copies_flag) {
os << "\\print_copies_flag \"" << print_copies_flag os << "\\print_copies_flag \"" << print_copies_flag
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTCOLLCOPIESFLAG: case RC_PRINTCOLLCOPIESFLAG:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_collcopies_flag print_collcopies_flag
@ -1682,12 +1801,16 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< print_collcopies_flag << print_collcopies_flag
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTPAPERFLAG: case RC_PRINTPAPERFLAG:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_paper_flag != system_lyxrc.print_paper_flag) { print_paper_flag != system_lyxrc.print_paper_flag) {
os << "\\print_paper_flag \"" << print_paper_flag os << "\\print_paper_flag \"" << print_paper_flag
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTPAPERDIMENSIONFLAG: case RC_PRINTPAPERDIMENSIONFLAG:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_paper_dimension_flag print_paper_dimension_flag
@ -1695,18 +1818,24 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
os << "\\print_paper_dimension_flag \"" os << "\\print_paper_dimension_flag \""
<< print_paper_dimension_flag << "\"\n"; << print_paper_dimension_flag << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTTOPRINTER: case RC_PRINTTOPRINTER:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_to_printer != system_lyxrc.print_to_printer) { print_to_printer != system_lyxrc.print_to_printer) {
os << "\\print_to_printer \"" << print_to_printer os << "\\print_to_printer \"" << print_to_printer
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTTOFILE: case RC_PRINTTOFILE:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_to_file != system_lyxrc.print_to_file) { print_to_file != system_lyxrc.print_to_file) {
string const path = os::external_path(print_to_file); string const path = os::external_path(print_to_file);
os << "\\print_to_file \"" << path << "\"\n"; os << "\\print_to_file \"" << path << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_PRINTFILEEXTENSION: case RC_PRINTFILEEXTENSION:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
print_file_extension != system_lyxrc.print_file_extension) { print_file_extension != system_lyxrc.print_file_extension) {
@ -1714,6 +1843,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< print_file_extension << print_file_extension
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
os << "\n#\n" os << "\n#\n"
<< "# EXPORT SECTION ####################################\n" << "# EXPORT SECTION ####################################\n"
@ -1727,6 +1858,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< custom_export_command << custom_export_command
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_CUSTOM_EXPORT_FORMAT: case RC_CUSTOM_EXPORT_FORMAT:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
custom_export_format custom_export_format
@ -1734,6 +1867,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
os << "\\custom_export_format \"" << custom_export_format os << "\\custom_export_format \"" << custom_export_format
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
os << "\n#\n" os << "\n#\n"
<< "# TEX SECTION #######################################\n" << "# TEX SECTION #######################################\n"
@ -1744,6 +1879,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
fontenc != system_lyxrc.fontenc) { fontenc != system_lyxrc.fontenc) {
os << "\\font_encoding \"" << fontenc << "\"\n"; os << "\\font_encoding \"" << fontenc << "\"\n";
} }
if (tag != RC_LAST)
break;
os << "\n#\n" os << "\n#\n"
<< "# FILE SECTION ######################################\n" << "# FILE SECTION ######################################\n"
@ -1755,59 +1892,81 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
string const path = os::external_path(document_path); string const path = os::external_path(document_path);
os << "\\document_path \"" << path << "\"\n"; os << "\\document_path \"" << path << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_USELASTFILEPOS: case RC_USELASTFILEPOS:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
use_lastfilepos != system_lyxrc.use_lastfilepos) { use_lastfilepos != system_lyxrc.use_lastfilepos) {
os << "\\use_lastfilepos " << convert<string>(use_lastfilepos) os << "\\use_lastfilepos " << convert<string>(use_lastfilepos)
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_LOADSESSION: case RC_LOADSESSION:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
load_session != system_lyxrc.load_session) { load_session != system_lyxrc.load_session) {
os << "\\load_session " << convert<string>(load_session) os << "\\load_session " << convert<string>(load_session)
<< "\n"; << "\n";
} }
if (tag != RC_LAST)
break;
case RC_NUMLASTFILES: case RC_NUMLASTFILES:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
num_lastfiles != system_lyxrc.num_lastfiles) { num_lastfiles != system_lyxrc.num_lastfiles) {
os << "\\num_lastfiles " << num_lastfiles << '\n'; os << "\\num_lastfiles " << num_lastfiles << '\n';
} }
if (tag != RC_LAST)
break;
case RC_CHECKLASTFILES: case RC_CHECKLASTFILES:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
check_lastfiles != system_lyxrc.check_lastfiles) { check_lastfiles != system_lyxrc.check_lastfiles) {
os << "\\check_lastfiles " << convert<string>(check_lastfiles) os << "\\check_lastfiles " << convert<string>(check_lastfiles)
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_TEMPLATEPATH: case RC_TEMPLATEPATH:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
template_path != system_lyxrc.template_path) { template_path != system_lyxrc.template_path) {
string const path = os::external_path(template_path); string const path = os::external_path(template_path);
os << "\\template_path \"" << path << "\"\n"; os << "\\template_path \"" << path << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_TEMPDIRPATH: case RC_TEMPDIRPATH:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
tempdir_path != system_lyxrc.tempdir_path) { tempdir_path != system_lyxrc.tempdir_path) {
string const path = os::external_path(tempdir_path); string const path = os::external_path(tempdir_path);
os << "\\tempdir_path \"" << path << "\"\n"; os << "\\tempdir_path \"" << path << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_USETEMPDIR: case RC_USETEMPDIR:
if (tag != RC_LAST)
break;
// Ignore it // Ignore it
case RC_PLAINTEXT_LINELEN: case RC_PLAINTEXT_LINELEN:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
plaintext_linelen != system_lyxrc.plaintext_linelen) { plaintext_linelen != system_lyxrc.plaintext_linelen) {
os << "\\plaintext_linelen " << plaintext_linelen << '\n'; os << "\\plaintext_linelen " << plaintext_linelen << '\n';
} }
if (tag != RC_LAST)
break;
case RC_MAKE_BACKUP: case RC_MAKE_BACKUP:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
make_backup != system_lyxrc.make_backup) { make_backup != system_lyxrc.make_backup) {
os << "\\make_backup " << convert<string>(make_backup) << '\n'; os << "\\make_backup " << convert<string>(make_backup) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_BACKUPDIR_PATH: case RC_BACKUPDIR_PATH:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
backupdir_path != system_lyxrc.backupdir_path) { backupdir_path != system_lyxrc.backupdir_path) {
string const path = os::external_path(backupdir_path); string const path = os::external_path(backupdir_path);
os << "\\backupdir_path \"" << path << "\"\n"; os << "\\backupdir_path \"" << path << "\"\n";
} }
if (tag != RC_LAST)
break;
os << "\n#\n" os << "\n#\n"
<< "# PLAIN TEXT EXPORT SECTION ##############################\n" << "# PLAIN TEXT EXPORT SECTION ##############################\n"
@ -1819,6 +1978,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
os << "\\plaintext_roff_command \"" << plaintext_roff_command os << "\\plaintext_roff_command \"" << plaintext_roff_command
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
os << "\n#\n" os << "\n#\n"
<< "# SPELLCHECKER SECTION ##############################\n" << "# SPELLCHECKER SECTION ##############################\n"
@ -1828,40 +1989,54 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
use_spell_lib != system_lyxrc.use_spell_lib) { use_spell_lib != system_lyxrc.use_spell_lib) {
os << "\\use_spell_lib " << convert<string>(use_spell_lib) << '\n'; os << "\\use_spell_lib " << convert<string>(use_spell_lib) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_SPELL_COMMAND: case RC_SPELL_COMMAND:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
isp_command != system_lyxrc.isp_command) { isp_command != system_lyxrc.isp_command) {
os << "\\spell_command \"" << isp_command << "\"\n"; os << "\\spell_command \"" << isp_command << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_ACCEPT_COMPOUND: case RC_ACCEPT_COMPOUND:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
isp_accept_compound != system_lyxrc.isp_accept_compound) { isp_accept_compound != system_lyxrc.isp_accept_compound) {
os << "\\accept_compound " << convert<string>(isp_accept_compound) os << "\\accept_compound " << convert<string>(isp_accept_compound)
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_USE_ALT_LANG: case RC_USE_ALT_LANG:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
isp_use_alt_lang != system_lyxrc.isp_use_alt_lang) { isp_use_alt_lang != system_lyxrc.isp_use_alt_lang) {
os << "\\use_alt_language " << convert<string>(isp_use_alt_lang) os << "\\use_alt_language " << convert<string>(isp_use_alt_lang)
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_ALT_LANG: case RC_ALT_LANG:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
isp_alt_lang != system_lyxrc.isp_alt_lang) { isp_alt_lang != system_lyxrc.isp_alt_lang) {
os << "\\alternate_language \"" << isp_alt_lang os << "\\alternate_language \"" << isp_alt_lang
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_USE_ESC_CHARS: case RC_USE_ESC_CHARS:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
isp_use_esc_chars != system_lyxrc.isp_use_esc_chars) { isp_use_esc_chars != system_lyxrc.isp_use_esc_chars) {
os << "\\use_escape_chars " << convert<string>(isp_use_esc_chars) os << "\\use_escape_chars " << convert<string>(isp_use_esc_chars)
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_ESC_CHARS: case RC_ESC_CHARS:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
isp_esc_chars != system_lyxrc.isp_esc_chars) { isp_esc_chars != system_lyxrc.isp_esc_chars) {
os << "\\escape_chars \"" << isp_esc_chars << "\"\n"; os << "\\escape_chars \"" << isp_esc_chars << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_USE_PERS_DICT: case RC_USE_PERS_DICT:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
isp_use_pers_dict != system_lyxrc.isp_use_pers_dict) { isp_use_pers_dict != system_lyxrc.isp_use_pers_dict) {
@ -1869,11 +2044,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< convert<string>(isp_use_pers_dict) << convert<string>(isp_use_pers_dict)
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
case RC_PERS_DICT: case RC_PERS_DICT:
if (isp_pers_dict != system_lyxrc.isp_pers_dict) { if (isp_pers_dict != system_lyxrc.isp_pers_dict) {
string const path = os::external_path(isp_pers_dict); string const path = os::external_path(isp_pers_dict);
os << "\\personal_dictionary \"" << path << "\"\n"; os << "\\personal_dictionary \"" << path << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_USE_INP_ENC: case RC_USE_INP_ENC:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
isp_use_input_encoding isp_use_input_encoding
@ -1882,6 +2061,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< convert<string>(isp_use_input_encoding) << convert<string>(isp_use_input_encoding)
<< '\n'; << '\n';
} }
if (tag != RC_LAST)
break;
os << "\n#\n" os << "\n#\n"
<< "# LANGUAGE SUPPORT SECTION ##########################\n" << "# LANGUAGE SUPPORT SECTION ##########################\n"
@ -1892,12 +2073,16 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
rtl_support != system_lyxrc.rtl_support) { rtl_support != system_lyxrc.rtl_support) {
os << "\\rtl " << convert<string>(rtl_support) << '\n'; os << "\\rtl " << convert<string>(rtl_support) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_LANGUAGE_PACKAGE: case RC_LANGUAGE_PACKAGE:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
language_package != system_lyxrc.language_package) { language_package != system_lyxrc.language_package) {
os << "\\language_package \"" << language_package os << "\\language_package \"" << language_package
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_LANGUAGE_GLOBAL_OPTIONS: case RC_LANGUAGE_GLOBAL_OPTIONS:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
language_global_options language_global_options
@ -1906,6 +2091,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< convert<string>(language_global_options) << convert<string>(language_global_options)
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_LANGUAGE_USE_BABEL: case RC_LANGUAGE_USE_BABEL:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
language_use_babel != system_lyxrc.language_use_babel) { language_use_babel != system_lyxrc.language_use_babel) {
@ -1913,6 +2100,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< convert<string>(language_use_babel) << convert<string>(language_use_babel)
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_LANGUAGE_COMMAND_BEGIN: case RC_LANGUAGE_COMMAND_BEGIN:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
language_command_begin language_command_begin
@ -1921,6 +2110,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< language_command_begin << language_command_begin
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_LANGUAGE_COMMAND_END: case RC_LANGUAGE_COMMAND_END:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
language_command_end language_command_end
@ -1928,6 +2119,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
os << "\\language_command_end \"" << language_command_end os << "\\language_command_end \"" << language_command_end
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_LANGUAGE_COMMAND_LOCAL: case RC_LANGUAGE_COMMAND_LOCAL:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
language_command_local language_command_local
@ -1936,18 +2129,24 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< language_command_local << language_command_local
<< "\"\n"; << "\"\n";
} }
if (tag != RC_LAST)
break;
case RC_LANGUAGE_AUTO_BEGIN: case RC_LANGUAGE_AUTO_BEGIN:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
language_auto_begin != system_lyxrc.language_auto_begin) { language_auto_begin != system_lyxrc.language_auto_begin) {
os << "\\language_auto_begin " os << "\\language_auto_begin "
<< convert<string>(language_auto_begin) << '\n'; << convert<string>(language_auto_begin) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_LANGUAGE_AUTO_END: case RC_LANGUAGE_AUTO_END:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
language_auto_end != system_lyxrc.language_auto_end) { language_auto_end != system_lyxrc.language_auto_end) {
os << "\\language_auto_end " os << "\\language_auto_end "
<< convert<string>(language_auto_end) << '\n'; << convert<string>(language_auto_end) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_MARK_FOREIGN_LANGUAGE: case RC_MARK_FOREIGN_LANGUAGE:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
mark_foreign_language mark_foreign_language
@ -1955,6 +2154,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
os << "\\mark_foreign_language " << os << "\\mark_foreign_language " <<
convert<string>(mark_foreign_language) << '\n'; convert<string>(mark_foreign_language) << '\n';
} }
if (tag != RC_LAST)
break;
os << "\n#\n" os << "\n#\n"
<< "# 2nd MISC SUPPORT SECTION ##########################\n" << "# 2nd MISC SUPPORT SECTION ##########################\n"
@ -1965,11 +2166,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
auto_number != system_lyxrc.auto_number) { auto_number != system_lyxrc.auto_number) {
os << "\\auto_number " << convert<string>(auto_number) << '\n'; os << "\\auto_number " << convert<string>(auto_number) << '\n';
} }
if (tag != RC_LAST)
break;
case RC_DEFAULT_LANGUAGE: case RC_DEFAULT_LANGUAGE:
if (ignore_system_lyxrc || if (ignore_system_lyxrc ||
default_language != system_lyxrc.default_language) { default_language != system_lyxrc.default_language) {
os << "\\default_language " << default_language << '\n'; os << "\\default_language " << default_language << '\n';
} }
if (tag != RC_LAST)
break;
os << "\n#\n" os << "\n#\n"
<< "# FORMATS SECTION ##########################\n" << "# FORMATS SECTION ##########################\n"
@ -2011,8 +2216,12 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
if (!formats.getFormat(cit->name())) if (!formats.getFormat(cit->name()))
os << "\\format \"" << cit->name() os << "\\format \"" << cit->name()
<< "\" \"\" \"\" \"\" \"\" \"\" \"\"\n"; << "\" \"\" \"\" \"\" \"\" \"\" \"\"\n";
if (tag != RC_LAST)
break;
case RC_VIEWER: case RC_VIEWER:
// Ignore it // Ignore it
if (tag != RC_LAST)
break;
os << "\n#\n" os << "\n#\n"
<< "# CONVERTERS SECTION ##########################\n" << "# CONVERTERS SECTION ##########################\n"
@ -2040,8 +2249,11 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
if (!theConverters().getConverter(cit->from, cit->to)) if (!theConverters().getConverter(cit->from, cit->to))
os << "\\converter \"" << cit->from os << "\\converter \"" << cit->from
<< "\" \"" << cit->to << "\" \"\" \"\"\n"; << "\" \"" << cit->to << "\" \"\" \"\"\n";
if (tag != RC_LAST)
break;
case RC_COPIER: case RC_COPIER:
if (tag == RC_LAST)
os << "\n#\n" os << "\n#\n"
<< "# COPIERS SECTION ##########################\n" << "# COPIERS SECTION ##########################\n"
<< "#\n\n"; << "#\n\n";
@ -2064,6 +2276,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< " \"" << command << "\"\n"; << " \"" << command << "\"\n";
} }
} }
if (tag != RC_LAST)
break;
// We don't actually delete SpecialisedMover(s) from the // We don't actually delete SpecialisedMover(s) from the
// map, just clear their 'command', so there's no need // map, just clear their 'command', so there's no need

View File

@ -160,9 +160,10 @@ public:
/// ///
void write(support::FileName const & filename, void write(support::FileName const & filename,
bool ignore_system_lyxrc) const; bool ignore_system_lyxrc) const;
/// /// write rc. If a specific tag is given, only output that one.
void write(std::ostream & os, void write(std::ostream & os,
bool ignore_system_lyxrc) const; bool ignore_system_lyxrc,
std::string const & tag = std::string()) const;
/// ///
void print() const; void print() const;
// FIXME unused (was used for xforms. Do we still need this?) // FIXME unused (was used for xforms. Do we still need this?)

View File

@ -23,6 +23,7 @@
#include "KeyMap.h" #include "KeyMap.h"
#include "LaTeXFeatures.h" #include "LaTeXFeatures.h"
#include "LyXAction.h" #include "LyXAction.h"
#include "LyXRC.h"
#include "Lexer.h" #include "Lexer.h"
#include "MenuBackend.h" #include "MenuBackend.h"
#include "MetricsInfo.h" #include "MetricsInfo.h"
@ -82,6 +83,7 @@ Translator<InsetInfo::info_type, string> const initTranslator()
Translator<InsetInfo::info_type, string> translator(InsetInfo::UNKNOWN_INFO, "unknown"); Translator<InsetInfo::info_type, string> translator(InsetInfo::UNKNOWN_INFO, "unknown");
translator.addPair(InsetInfo::SHORTCUT_INFO, "shortcut"); translator.addPair(InsetInfo::SHORTCUT_INFO, "shortcut");
translator.addPair(InsetInfo::LYXRC_INFO, "lyxrc");
translator.addPair(InsetInfo::PACKAGE_INFO, "package"); translator.addPair(InsetInfo::PACKAGE_INFO, "package");
translator.addPair(InsetInfo::TEXTCLASS_INFO, "textclass"); translator.addPair(InsetInfo::TEXTCLASS_INFO, "textclass");
translator.addPair(InsetInfo::MENU_INFO, "menu"); translator.addPair(InsetInfo::MENU_INFO, "menu");
@ -182,6 +184,18 @@ void InsetInfo::updateInfo()
bp_.getFont(), false); bp_.getFont(), false);
break; break;
} }
case LYXRC_INFO: {
ostringstream oss;
lyxrc.write(oss, true, name_);
string result = oss.str();
// remove leading \\name
result = result.substr(name_.size() + 2);
// remove \n and ""
result = rtrim(result, "\n");
result = trim(result, "\"");
setText(from_utf8(result), bp_.getFont(), false);
break;
}
case PACKAGE_INFO: case PACKAGE_INFO:
// check in packages.lst // check in packages.lst
setText(LaTeXFeatures::isAvailable(name_) ? _("yes") : _("no"), setText(LaTeXFeatures::isAvailable(name_) ? _("yes") : _("no"),

View File

@ -27,6 +27,7 @@ public:
enum info_type { enum info_type {
UNKNOWN_INFO, // Invalid type UNKNOWN_INFO, // Invalid type
SHORTCUT_INFO, // Keyboard shortcut SHORTCUT_INFO, // Keyboard shortcut
LYXRC_INFO, // RC entry
PACKAGE_INFO, // Availability of package PACKAGE_INFO, // Availability of package
TEXTCLASS_INFO, // Availability of textclass TEXTCLASS_INFO, // Availability of textclass
MENU_INFO, // Which menu item is used for certain function MENU_INFO, // Which menu item is used for certain function