From 9f4d9b92b9cf6225375fc1ce57541458746d968c Mon Sep 17 00:00:00 2001 From: Angus Leeming Date: Mon, 5 Apr 2004 18:21:25 +0000 Subject: [PATCH] Bug fix: enable the frontend to ignore the contents of system_lyxrc when posting the user's changes to lyxrc back to the core. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8611 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ChangeLog | 6 + src/frontends/controllers/ChangeLog | 5 + src/frontends/controllers/ControlPrefs.C | 2 +- src/lyxfunc.C | 2 +- src/lyxrc.C | 280 +++++++++++++++-------- src/lyxrc.h | 6 +- 6 files changed, 202 insertions(+), 99 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 59ece2c11f..618d0467dd 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2004-04-05 Angus Leeming + + * lyxrc.[Ch] (write): now takes a 'bool ignore_system_lyxrc' arg + to enable the frontends to export changes to lyxrc correctly. + + * lyxfunc.C (dispatch): output lyxrc.write("preferences", false). 2004-04-05 André Pönitz diff --git a/src/frontends/controllers/ChangeLog b/src/frontends/controllers/ChangeLog index 3f72166bd6..207db79c34 100644 --- a/src/frontends/controllers/ChangeLog +++ b/src/frontends/controllers/ChangeLog @@ -1,3 +1,8 @@ +2004-04-05 Angus Leeming + + * ControlPrefs.C (dispatchParams): ignore system_lyxrc when writing + the contents of rc_ to the stringstream. + 2004-04-05 Angus Leeming * ControlErrorList.C: wrap #warning calls inside #ifdef diff --git a/src/frontends/controllers/ControlPrefs.C b/src/frontends/controllers/ControlPrefs.C index 3aa72c32be..12f6b7e07f 100644 --- a/src/frontends/controllers/ControlPrefs.C +++ b/src/frontends/controllers/ControlPrefs.C @@ -63,7 +63,7 @@ bool ControlPrefs::initialiseParams(std::string const &) void ControlPrefs::dispatchParams() { ostringstream ss; - rc_.write(ss); + rc_.write(ss, true); kernel().dispatch(FuncRequest(LFUN_LYXRC_APPLY, ss.str())); // FIXME: these need lfuns diff --git a/src/lyxfunc.C b/src/lyxfunc.C index cd137e1fce..35cf569e33 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -1189,7 +1189,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd, bool verbose) case LFUN_SAVEPREFERENCES: { Path p(user_lyxdir()); - lyxrc.write("preferences"); + lyxrc.write("preferences", false); break; } diff --git a/src/lyxrc.C b/src/lyxrc.C index 1952b1b6bc..4227736810 100644 --- a/src/lyxrc.C +++ b/src/lyxrc.C @@ -1071,24 +1071,24 @@ int LyXRC::read(LyXLex & lexrc) } -void LyXRC::write(string const & filename) const +void LyXRC::write(string const & filename, bool ignore_system_lyxrc) const { ofstream ofs(filename.c_str()); if (ofs) - write(ofs); + write(ofs, ignore_system_lyxrc); } void LyXRC::print() const { if (lyxerr.debugging()) - write(lyxerr); + write(lyxerr, false); else - write(cout); + write(cout, false); } -void LyXRC::write(ostream & os) const +void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const { os << "### This file is part of\n" << "### ========================================================\n" @@ -1114,7 +1114,8 @@ void LyXRC::write(ostream & os) const case RC_INPUT: // input/include files are not done here case RC_BINDFILE: - if (bind_file != system_lyxrc.bind_file) { + if (ignore_system_lyxrc || + bind_file != system_lyxrc.bind_file) { os << "\\bind_file " << bind_file << "\n"; } // @@ -1126,30 +1127,35 @@ void LyXRC::write(ostream & os) const // bind files are not done here. case RC_UIFILE: - if (ui_file != system_lyxrc.ui_file) { + if (ignore_system_lyxrc || + ui_file != system_lyxrc.ui_file) { os << "\\ui_file \"" << ui_file << "\"\n"; } case RC_AUTOREGIONDELETE: - if (auto_region_delete != system_lyxrc.auto_region_delete) { + if (ignore_system_lyxrc || + auto_region_delete != system_lyxrc.auto_region_delete) { os << "# Set to false to inhibit automatic replacement of\n" << "# the current selection.\n" << "\\auto_region_delete " << tostr(auto_region_delete) << '\n'; } case RC_AUTORESET_OPTIONS: - if (auto_reset_options != system_lyxrc.auto_reset_options) { + if (ignore_system_lyxrc || + auto_reset_options != system_lyxrc.auto_reset_options) { os << "# Set to false to inhibit automatic reset of\n" << "# the class options to defaults on class change.\n" << "\\auto_reset_options " << tostr(auto_reset_options) << '\n'; } case RC_AUTOSAVE: - if (autosave != system_lyxrc.autosave) { + if (ignore_system_lyxrc || + autosave != system_lyxrc.autosave) { os << "# The time interval between auto-saves in seconds.\n" << "\\autosave " << autosave << '\n'; } case RC_DISPLAY_GRAPHICS: - if (display_graphics != system_lyxrc.display_graphics) { + if (ignore_system_lyxrc || + display_graphics != system_lyxrc.display_graphics) { os << "# Display graphics within LyX\n" << "# monochrome|grayscale|color|none\n" << "\\display_graphics " @@ -1158,7 +1164,8 @@ void LyXRC::write(ostream & os) const } case RC_VIEWDVI_PAPEROPTION: - if (view_dvi_paper_option + if (ignore_system_lyxrc || + view_dvi_paper_option != system_lyxrc.view_dvi_paper_option) { os << "# Options used to specify paper size to the\n" << "# view_dvi_command (e.g. -paper)\n" @@ -1166,7 +1173,8 @@ void LyXRC::write(ostream & os) const << view_dvi_paper_option << "\"\n"; } case RC_DEFAULT_PAPERSIZE: - if (default_papersize != system_lyxrc.default_papersize) { + if (ignore_system_lyxrc || + default_papersize != system_lyxrc.default_papersize) { os << "# The default papersize to use.\n" << "\\default_papersize \""; switch (default_papersize) { @@ -1189,37 +1197,45 @@ void LyXRC::write(ostream & os) const os << "\"\n"; } case RC_CHKTEX_COMMAND: - if (chktex_command != system_lyxrc.chktex_command) { + if (ignore_system_lyxrc || + chktex_command != system_lyxrc.chktex_command) { os << "\\chktex_command \"" << chktex_command << "\"\n"; } case RC_BIBTEX_COMMAND: - if (bibtex_command != system_lyxrc.bibtex_command) { + if (ignore_system_lyxrc || + bibtex_command != system_lyxrc.bibtex_command) { os << "\\bibtex_command \"" << bibtex_command << "\"\n"; } case RC_KBMAP: - if (use_kbmap != system_lyxrc.use_kbmap) { + if (ignore_system_lyxrc || + use_kbmap != system_lyxrc.use_kbmap) { os << "\\kbmap " << tostr(use_kbmap) << '\n'; } case RC_KBMAP_PRIMARY: - if (primary_kbmap != system_lyxrc.primary_kbmap) { + if (ignore_system_lyxrc || + primary_kbmap != system_lyxrc.primary_kbmap) { os << "\\kbmap_primary \"" << primary_kbmap << "\"\n"; } case RC_KBMAP_SECONDARY: - if (secondary_kbmap != system_lyxrc.secondary_kbmap) { + if (ignore_system_lyxrc || + secondary_kbmap != system_lyxrc.secondary_kbmap) { os << "\\kbmap_secondary \"" << secondary_kbmap << "\"\n"; } case RC_SERVERPIPE: - if (lyxpipes != system_lyxrc.lyxpipes) { + if (ignore_system_lyxrc || + lyxpipes != system_lyxrc.lyxpipes) { os << "\\serverpipe \"" << lyxpipes << "\"\n"; } case RC_DATE_INSERT_FORMAT: - if (date_insert_format != system_lyxrc.date_insert_format) { + if (ignore_system_lyxrc || + date_insert_format != system_lyxrc.date_insert_format) { os << "\\date_insert_format \"" << date_insert_format << "\"\n"; } case RC_LABEL_INIT_LENGTH: - if (label_init_length != system_lyxrc.label_init_length) { + if (ignore_system_lyxrc || + label_init_length != system_lyxrc.label_init_length) { os << "\\label_init_length " << label_init_length << '\n'; } @@ -1231,24 +1247,28 @@ void LyXRC::write(ostream & os) const os << "\\user_email \"" << user_email << "\"\n"; case RC_SHOW_BANNER: - if (show_banner != system_lyxrc.show_banner) { + if (ignore_system_lyxrc || + show_banner != system_lyxrc.show_banner) { os << "\\show_banner " << tostr(show_banner) << '\n'; } case RC_PREVIEW: - if (preview != system_lyxrc.preview) { + if (ignore_system_lyxrc || + preview != system_lyxrc.preview) { os << "\\preview " << tostr(preview) << '\n'; } case RC_PREVIEW_HASHED_LABELS: - if (preview_hashed_labels != + if (ignore_system_lyxrc || + preview_hashed_labels != system_lyxrc.preview_hashed_labels) { os << "\\preview_hashed_labels " << tostr(preview_hashed_labels) << '\n'; } case RC_PREVIEW_SCALE_FACTOR: - if (preview_scale_factor != system_lyxrc.preview_scale_factor) { + if (ignore_system_lyxrc || + preview_scale_factor != system_lyxrc.preview_scale_factor) { os << "\\preview_scale_factor " << preview_scale_factor << '\n'; } @@ -1258,88 +1278,105 @@ void LyXRC::write(ostream & os) const << "#\n\n"; case RC_POPUP_NORMAL_FONT: - if (popup_normal_font != system_lyxrc.popup_normal_font) { + if (ignore_system_lyxrc || + popup_normal_font != system_lyxrc.popup_normal_font) { os << "\\popup_normal_font \"" << popup_normal_font << "\"\n"; } case RC_POPUP_BOLD_FONT: - if (popup_bold_font != system_lyxrc.popup_bold_font) { + if (ignore_system_lyxrc || + popup_bold_font != system_lyxrc.popup_bold_font) { os << "\\popup_bold_font \"" << popup_bold_font << "\"\n"; } case RC_POPUP_FONT_ENCODING: - if (popup_font_encoding != system_lyxrc.popup_font_encoding) { + if (ignore_system_lyxrc || + popup_font_encoding != system_lyxrc.popup_font_encoding) { os << "\\popup_font_encoding \"" << popup_font_encoding << "\"\n"; } case RC_SCREEN_DPI: - if (dpi != system_lyxrc.dpi) { + if (ignore_system_lyxrc || + dpi != system_lyxrc.dpi) { os << "\\screen_dpi " << dpi << '\n'; } case RC_SCREEN_ZOOM: - if (zoom != system_lyxrc.zoom) { + if (ignore_system_lyxrc || + zoom != system_lyxrc.zoom) { os << "\\screen_zoom " << zoom << '\n'; } case RC_WHEEL_JUMP: - if (wheel_jump != system_lyxrc.wheel_jump) { + if (ignore_system_lyxrc || + wheel_jump != system_lyxrc.wheel_jump) { os << "\\wheel_jump " << wheel_jump << '\n'; } case RC_CURSOR_FOLLOWS_SCROLLBAR: - if (cursor_follows_scrollbar + if (ignore_system_lyxrc || + cursor_follows_scrollbar != system_lyxrc.cursor_follows_scrollbar) { os << "\\cursor_follows_scrollbar " << tostr(cursor_follows_scrollbar) << '\n'; } case RC_DIALOGS_ICONIFY_WITH_MAIN: - if (dialogs_iconify_with_main + if (ignore_system_lyxrc || + dialogs_iconify_with_main != system_lyxrc.dialogs_iconify_with_main) { os << "\\dialogs_iconify_with_main " << tostr(dialogs_iconify_with_main) << '\n'; } case RC_SCREEN_FONT_ROMAN: - if (roman_font_name != system_lyxrc.roman_font_name) { + if (ignore_system_lyxrc || + roman_font_name != system_lyxrc.roman_font_name) { os << "\\screen_font_roman \"" << roman_font_name << "\"\n"; } case RC_SCREEN_FONT_ROMAN_FOUNDRY: - if (roman_font_foundry != system_lyxrc.roman_font_foundry) { + if (ignore_system_lyxrc || + roman_font_foundry != system_lyxrc.roman_font_foundry) { os << "\\screen_font_roman_foundry \"" << roman_font_foundry << "\"\n"; } case RC_SCREEN_FONT_SANS: - if (sans_font_name != system_lyxrc.sans_font_name) { + if (ignore_system_lyxrc || + sans_font_name != system_lyxrc.sans_font_name) { os << "\\screen_font_sans \"" << sans_font_name << "\"\n"; } case RC_SCREEN_FONT_SANS_FOUNDRY: - if (sans_font_foundry != system_lyxrc.sans_font_foundry) { + if (ignore_system_lyxrc || + sans_font_foundry != system_lyxrc.sans_font_foundry) { os << "\\screen_font_sans_foundry \"" << sans_font_foundry << "\"\n"; } case RC_SCREEN_FONT_TYPEWRITER: - if (typewriter_font_name != system_lyxrc.typewriter_font_name) { + if (ignore_system_lyxrc || + typewriter_font_name != system_lyxrc.typewriter_font_name) { os << "\\screen_font_typewriter \"" << typewriter_font_name << "\"\n"; } case RC_SCREEN_FONT_TYPEWRITER_FOUNDRY: - if (typewriter_font_foundry != system_lyxrc.typewriter_font_foundry) { + if (ignore_system_lyxrc || + typewriter_font_foundry != system_lyxrc.typewriter_font_foundry) { os << "\\screen_font_typewriter_foundry \"" << typewriter_font_foundry << "\"\n"; } case RC_SCREEN_FONT_SCALABLE: - if (use_scalable_fonts != system_lyxrc.use_scalable_fonts) { + if (ignore_system_lyxrc || + use_scalable_fonts != system_lyxrc.use_scalable_fonts) { os << "\\screen_font_scalable " << tostr(use_scalable_fonts) << '\n'; } case RC_SCREEN_FONT_ENCODING: - if (font_norm != system_lyxrc.font_norm) { + if (ignore_system_lyxrc || + font_norm != system_lyxrc.font_norm) { os << "\\screen_font_encoding \"" << font_norm << "\"\n"; } case RC_SCREEN_FONT_SIZES: - if (font_sizes[LyXFont::SIZE_TINY] + if (ignore_system_lyxrc || + font_sizes[LyXFont::SIZE_TINY] != system_lyxrc.font_sizes[LyXFont::SIZE_TINY] || font_sizes[LyXFont::SIZE_SCRIPT] != system_lyxrc.font_sizes[LyXFont::SIZE_SCRIPT] || @@ -1384,7 +1421,8 @@ void LyXRC::write(ostream & os) const LColor::color lc = static_cast(i); string const col(lcolor.getX11Name(lc)); - if (col != system_lcolor.getX11Name(lc)) { + if (ignore_system_lyxrc || + col != system_lcolor.getX11Name(lc)) { os << "\\set_color \"" << lcolor.getLyXName(lc) << "\" \"" << col << "\"\n"; @@ -1396,94 +1434,112 @@ void LyXRC::write(ostream & os) const << "#\n\n"; case RC_PRINTER: - if (printer != system_lyxrc.printer) { + if (ignore_system_lyxrc || + printer != system_lyxrc.printer) { os << "\\printer \"" << printer << "\"\n"; } case RC_PRINT_ADAPTOUTPUT: - if (print_adapt_output != system_lyxrc.print_adapt_output) { + if (ignore_system_lyxrc || + print_adapt_output != system_lyxrc.print_adapt_output) { os << "\\print_adapt_output " << tostr(print_adapt_output) << '\n'; } case RC_PRINT_COMMAND: - if (print_command != system_lyxrc.print_command) { + if (ignore_system_lyxrc || + print_command != system_lyxrc.print_command) { os << "\\print_command \"" << print_command << "\"\n"; } case RC_PRINTEXSTRAOPTIONS: - if (print_extra_options != system_lyxrc.print_extra_options) { + if (ignore_system_lyxrc || + print_extra_options != system_lyxrc.print_extra_options) { os << "\\print_extra_options \"" << print_extra_options << "\"\n"; } case RC_PRINTSPOOL_COMMAND: - if (print_spool_command != system_lyxrc.print_spool_command) { + if (ignore_system_lyxrc || + print_spool_command != system_lyxrc.print_spool_command) { os << "\\print_spool_command \"" << print_spool_command << "\"\n"; } case RC_PRINTSPOOL_PRINTERPREFIX: - if (print_spool_printerprefix + if (ignore_system_lyxrc || + print_spool_printerprefix != system_lyxrc.print_spool_printerprefix) { os << "\\print_spool_printerprefix \"" << print_spool_printerprefix << "\"\n"; } case RC_PRINTEVENPAGEFLAG: - if (print_evenpage_flag != system_lyxrc.print_evenpage_flag) { + if (ignore_system_lyxrc || + print_evenpage_flag != system_lyxrc.print_evenpage_flag) { os << "\\print_evenpage_flag \"" << print_evenpage_flag << "\"\n"; } case RC_PRINTODDPAGEFLAG: - if (print_oddpage_flag != system_lyxrc.print_oddpage_flag) { + if (ignore_system_lyxrc || + print_oddpage_flag != system_lyxrc.print_oddpage_flag) { os << "\\print_oddpage_flag \"" << print_oddpage_flag << "\"\n"; } case RC_PRINTREVERSEFLAG: - if (print_reverse_flag != system_lyxrc.print_reverse_flag) { + if (ignore_system_lyxrc || + print_reverse_flag != system_lyxrc.print_reverse_flag) { os << "\\print_reverse_flag \"" << print_reverse_flag << "\"\n"; } case RC_PRINTLANDSCAPEFLAG: - if (print_landscape_flag != system_lyxrc.print_landscape_flag) { + if (ignore_system_lyxrc || + print_landscape_flag != system_lyxrc.print_landscape_flag) { os << "\\print_landscape_flag \"" << print_landscape_flag << "\"\n"; } case RC_PRINTPAGERANGEFLAG: - if (print_pagerange_flag != system_lyxrc.print_pagerange_flag) { + if (ignore_system_lyxrc || + print_pagerange_flag != system_lyxrc.print_pagerange_flag) { os << "\\print_pagerange_flag \"" << print_pagerange_flag << "\"\n"; } case RC_PRINTCOPIESFLAG: - if (print_copies_flag != system_lyxrc.print_copies_flag) { + if (ignore_system_lyxrc || + print_copies_flag != system_lyxrc.print_copies_flag) { os << "\\print_copies_flag \"" << print_copies_flag << "\"\n"; } case RC_PRINTCOLLCOPIESFLAG: - if (print_collcopies_flag + if (ignore_system_lyxrc || + print_collcopies_flag != system_lyxrc.print_collcopies_flag) { os << "\\print_collcopies_flag \"" << print_collcopies_flag << "\"\n"; } case RC_PRINTPAPERFLAG: - if (print_paper_flag != system_lyxrc.print_paper_flag) { + if (ignore_system_lyxrc || + print_paper_flag != system_lyxrc.print_paper_flag) { os << "\\print_paper_flag \"" << print_paper_flag << "\"\n"; } case RC_PRINTPAPERDIMENSIONFLAG: - if (print_paper_dimension_flag + if (ignore_system_lyxrc || + print_paper_dimension_flag != system_lyxrc.print_paper_dimension_flag) { os << "\\print_paper_dimension_flag \"" << print_paper_dimension_flag << "\"\n"; } case RC_PRINTTOPRINTER: - if (print_to_printer != system_lyxrc.print_to_printer) { + if (ignore_system_lyxrc || + print_to_printer != system_lyxrc.print_to_printer) { os << "\\print_to_printer \"" << print_to_printer << "\"\n"; } case RC_PRINTTOFILE: - if (print_to_file != system_lyxrc.print_to_file) { + if (ignore_system_lyxrc || + print_to_file != system_lyxrc.print_to_file) { os << "\\print_to_file \"" << print_to_file << "\"\n"; } case RC_PRINTFILEEXTENSION: - if (print_file_extension != system_lyxrc.print_file_extension) { + if (ignore_system_lyxrc || + print_file_extension != system_lyxrc.print_file_extension) { os << "\\print_file_extension \"" << print_file_extension << "\"\n"; @@ -1494,14 +1550,16 @@ void LyXRC::write(ostream & os) const << "#\n\n"; case RC_CUSTOM_EXPORT_COMMAND: - if (custom_export_command + if (ignore_system_lyxrc || + custom_export_command != system_lyxrc.custom_export_command) { os << "\\custom_export_command \"" << custom_export_command << "\"\n"; } case RC_CUSTOM_EXPORT_FORMAT: - if (custom_export_format + if (ignore_system_lyxrc || + custom_export_format != system_lyxrc.custom_export_format) { os << "\\custom_export_format \"" << custom_export_format << "\"\n"; @@ -1512,7 +1570,8 @@ void LyXRC::write(ostream & os) const << "#\n\n"; case RC_FONT_ENCODING: - if (fontenc != system_lyxrc.fontenc) { + if (ignore_system_lyxrc || + fontenc != system_lyxrc.fontenc) { os << "\\font_encoding \"" << fontenc << "\"\n"; } @@ -1521,42 +1580,51 @@ void LyXRC::write(ostream & os) const << "#\n\n"; case RC_DOCUMENTPATH: - if (document_path != system_lyxrc.document_path) { + if (ignore_system_lyxrc || + document_path != system_lyxrc.document_path) { os << "\\document_path \"" << document_path << "\"\n"; } case RC_LASTFILES: - if (lastfiles != system_lyxrc.lastfiles) { + if (ignore_system_lyxrc || + lastfiles != system_lyxrc.lastfiles) { os << "\\lastfiles \"" << lastfiles << "\"\n"; } case RC_NUMLASTFILES: - if (num_lastfiles != system_lyxrc.num_lastfiles) { + if (ignore_system_lyxrc || + num_lastfiles != system_lyxrc.num_lastfiles) { os << "\\num_lastfiles " << num_lastfiles << '\n'; } case RC_CHECKLASTFILES: - if (check_lastfiles != system_lyxrc.check_lastfiles) { + if (ignore_system_lyxrc || + check_lastfiles != system_lyxrc.check_lastfiles) { os << "\\check_lastfiles " << tostr(check_lastfiles) << '\n'; } case RC_TEMPLATEPATH: - if (template_path != system_lyxrc.template_path) { + if (ignore_system_lyxrc || + template_path != system_lyxrc.template_path) { os << "\\template_path \"" << template_path << "\"\n"; } case RC_TEMPDIRPATH: - if (tempdir_path != system_lyxrc.tempdir_path) { + if (ignore_system_lyxrc || + tempdir_path != system_lyxrc.tempdir_path) { os << "\\tempdir_path \"" << tempdir_path << "\"\n"; } case RC_USETEMPDIR: // Ignore it case RC_ASCII_LINELEN: - if (ascii_linelen != system_lyxrc.ascii_linelen) { + if (ignore_system_lyxrc || + ascii_linelen != system_lyxrc.ascii_linelen) { os << "\\ascii_linelen " << ascii_linelen << '\n'; } case RC_MAKE_BACKUP: - if (make_backup != system_lyxrc.make_backup) { + if (ignore_system_lyxrc || + make_backup != system_lyxrc.make_backup) { os << "\\make_backup " << tostr(make_backup) << '\n'; } case RC_BACKUPDIR_PATH: - if (backupdir_path != system_lyxrc.backupdir_path) { + if (ignore_system_lyxrc || + backupdir_path != system_lyxrc.backupdir_path) { os << "\\backupdir_path \"" << backupdir_path << "\"\n"; } @@ -1565,7 +1633,8 @@ void LyXRC::write(ostream & os) const << "#\n\n"; case RC_ASCIIROFF_COMMAND: - if (ascii_roff_command != system_lyxrc.ascii_roff_command) { + if (ignore_system_lyxrc || + ascii_roff_command != system_lyxrc.ascii_roff_command) { os << "\\ascii_roff_command \"" << ascii_roff_command << "\"\n"; } @@ -1574,39 +1643,47 @@ void LyXRC::write(ostream & os) const << "# SPELLCHECKER SECTION ##############################\n" << "#\n\n"; case RC_USE_SPELL_LIB: - if (use_spell_lib != system_lyxrc.use_spell_lib) { + if (ignore_system_lyxrc || + use_spell_lib != system_lyxrc.use_spell_lib) { os << "\\use_spell_lib " << tostr(use_spell_lib) << '\n'; } case RC_SPELL_COMMAND: - if (isp_command != system_lyxrc.isp_command) { + if (ignore_system_lyxrc || + isp_command != system_lyxrc.isp_command) { os << "\\spell_command \"" << isp_command << "\"\n"; } case RC_ACCEPT_COMPOUND: - if (isp_accept_compound != system_lyxrc.isp_accept_compound) { + if (ignore_system_lyxrc || + isp_accept_compound != system_lyxrc.isp_accept_compound) { os << "\\accept_compound " << tostr(isp_accept_compound) << '\n'; } case RC_USE_ALT_LANG: - if (isp_use_alt_lang != system_lyxrc.isp_use_alt_lang) { + if (ignore_system_lyxrc || + isp_use_alt_lang != system_lyxrc.isp_use_alt_lang) { os << "\\use_alt_language " << tostr(isp_use_alt_lang) << '\n'; } case RC_ALT_LANG: - if (isp_alt_lang != system_lyxrc.isp_alt_lang) { + if (ignore_system_lyxrc || + isp_alt_lang != system_lyxrc.isp_alt_lang) { os << "\\alternate_language \"" << isp_alt_lang << "\"\n"; } case RC_USE_ESC_CHARS: - if (isp_use_esc_chars != system_lyxrc.isp_use_esc_chars) { + if (ignore_system_lyxrc || + isp_use_esc_chars != system_lyxrc.isp_use_esc_chars) { os << "\\use_escape_chars " << tostr(isp_use_esc_chars) << '\n'; } case RC_ESC_CHARS: - if (isp_esc_chars != system_lyxrc.isp_esc_chars) { + if (ignore_system_lyxrc || + isp_esc_chars != system_lyxrc.isp_esc_chars) { os << "\\escape_chars \"" << isp_esc_chars << "\"\n"; } case RC_USE_PERS_DICT: - if (isp_use_pers_dict != system_lyxrc.isp_use_pers_dict) { + if (ignore_system_lyxrc || + isp_use_pers_dict != system_lyxrc.isp_use_pers_dict) { os << "\\use_personal_dictionary " << tostr(isp_use_pers_dict) << '\n'; @@ -1617,7 +1694,8 @@ void LyXRC::write(ostream & os) const << "\"\n"; } case RC_USE_INP_ENC: - if (isp_use_input_encoding + if (ignore_system_lyxrc || + isp_use_input_encoding != system_lyxrc.isp_use_input_encoding) { os << "\\use_input_encoding " << tostr(isp_use_input_encoding) @@ -1629,59 +1707,69 @@ void LyXRC::write(ostream & os) const << "#\n\n"; case RC_RTL_SUPPORT: - if (rtl_support != system_lyxrc.rtl_support) { + if (ignore_system_lyxrc || + rtl_support != system_lyxrc.rtl_support) { os << "\\rtl " << tostr(rtl_support) << '\n'; } case RC_LANGUAGE_PACKAGE: - if (language_package != system_lyxrc.language_package) { + if (ignore_system_lyxrc || + language_package != system_lyxrc.language_package) { os << "\\language_package \"" << language_package << "\"\n"; } case RC_LANGUAGE_GLOBAL_OPTIONS: - if (language_global_options + if (ignore_system_lyxrc || + language_global_options != system_lyxrc.language_global_options) { os << "\\language_global_options \"" << tostr(language_global_options) << "\"\n"; } case RC_LANGUAGE_USE_BABEL: - if (language_use_babel != system_lyxrc.language_use_babel) { + if (ignore_system_lyxrc || + language_use_babel != system_lyxrc.language_use_babel) { os << "\\language_use_babel \"" << tostr(language_use_babel) << "\"\n"; } case RC_LANGUAGE_COMMAND_BEGIN: - if (language_command_begin + if (ignore_system_lyxrc || + language_command_begin != system_lyxrc.language_command_begin) { os << "\\language_command_begin \"" << language_command_begin << "\"\n"; } case RC_LANGUAGE_COMMAND_END: - if (language_command_end + if (ignore_system_lyxrc || + language_command_end != system_lyxrc.language_command_end) { os << "\\language_command_end \"" << language_command_end << "\"\n"; } case RC_LANGUAGE_COMMAND_LOCAL: - if (language_command_local + if (ignore_system_lyxrc || + language_command_local != system_lyxrc.language_command_local) { os << "\\language_command_local \"" << language_command_local << "\"\n"; } case RC_LANGUAGE_AUTO_BEGIN: - if (language_auto_begin != system_lyxrc.language_auto_begin) { + if (ignore_system_lyxrc || + language_auto_begin != system_lyxrc.language_auto_begin) { os << "\\language_auto_begin " << tostr(language_auto_begin) << '\n'; } case RC_LANGUAGE_AUTO_END: - if (language_auto_end != system_lyxrc.language_auto_end) { + if (ignore_system_lyxrc || + language_auto_end != system_lyxrc.language_auto_end) { os << "\\language_auto_end " << tostr(language_auto_end) << '\n'; } case RC_MARK_FOREIGN_LANGUAGE: - if (mark_foreign_language + if (ignore_system_lyxrc || + mark_foreign_language != system_lyxrc.mark_foreign_language) { os << "\\mark_foreign_language " << tostr(mark_foreign_language) << '\n'; @@ -1692,11 +1780,13 @@ void LyXRC::write(ostream & os) const << "#\n\n"; case RC_AUTO_NUMBER: - if (auto_number != system_lyxrc.auto_number) { + if (ignore_system_lyxrc || + auto_number != system_lyxrc.auto_number) { os << "\\auto_number " << tostr(auto_number) << '\n'; } case RC_DEFAULT_LANGUAGE: - if (default_language != system_lyxrc.default_language) { + if (ignore_system_lyxrc || + default_language != system_lyxrc.default_language) { os << "\\default_language " << default_language << '\n'; } diff --git a/src/lyxrc.h b/src/lyxrc.h index 9390133dae..6f17e49565 100644 --- a/src/lyxrc.h +++ b/src/lyxrc.h @@ -148,9 +148,11 @@ private: int read(LyXLex &); public: /// - void write(std::string const & filename) const; + void write(std::string const & filename, + bool ignore_system_lyxrc) const; /// - void write(std::ostream & os) const; + void write(std::ostream & os, + bool ignore_system_lyxrc) const; /// void print() const; /// -- 2.39.2