+ ofstream ofs(filename.c_str());
+ if (ofs)
+ output(ofs);
+}
+
+
+void LyXRC::print() const
+{
+ if (lyxerr.debugging())
+ output(lyxerr);
+ else
+ output(cout);
+}
+
+
+void LyXRC::output(ostream & os) const
+{
+ os << "### This file is part of\n"
+ << "### ========================================================\n"
+ << "### LyX, The Document Processor\n"
+ << "###\n"
+ << "### Copyright 1995 Matthias Ettrich\n"
+ << "### Copyright 1995-1998 The LyX Team.\n"
+ << "###\n"
+ << "### ========================================================\n"
+ << "\n"
+ << "# 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"
+ << "# your preferences, or you can also make your modifications\n"
+ << "# to lyxrc by hand. It is not advisable to edit this file.\n"
+ << "\n";
+
+ // Why the switch you might ask. It is a trick to ensure that all
+ // the elements in the LyXRCTags enum is handled. As you can see
+ // 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
+ // if we forget an element.
+ LyXRCTags tag = RC_LAST;
+ switch(tag) {
+ case RC_LAST:
+ case RC_INPUT:
+ // input/include files are not done here
+ case RC_BIND:
+ // bindings is not written to the preferences file.
+ case RC_BINDFILE:
+ // bind files are not done here.
+ case RC_BEGINTOOLBAR:
+ // Toolbar is not written here (yet).
+ case RC_FONT_ENCODING:
+ os << "\\font_encoding \"" << fontenc << "\"\n";
+ case RC_PRINTER:
+ os << "\\printer \"" << printer << "\"\n";
+ case RC_PRINT_COMMAND:
+ os << "\\print_command \"" << print_command << "\"\n";
+ case RC_PRINTEVENPAGEFLAG:
+ os << "\\print_evenpage_flag \"" << print_evenpage_flag
+ << "\"\n";
+ case RC_PRINTODDPAGEFLAG:
+ os << "\\print_oddpage_flag \"" << print_oddpage_flag
+ << "\"\n";
+ case RC_PRINTPAGERANGEFLAG:
+ os << "\\print_pagerange_flag \"" << print_pagerange_flag
+ << "\"\n";
+ case RC_PRINTCOPIESFLAG:
+ os << "\\print_copies_flag \"" << print_copies_flag << "\"\n";
+ case RC_PRINTCOLLCOPIESFLAG:
+ os << "\\print_collcopies_flag \"" << print_collcopies_flag
+ << "\"\n";
+ case RC_PRINTREVERSEFLAG:
+ os << "\\print_reverse_flag \"" << print_reverse_flag
+ << "\"\n";
+ case RC_PRINTLANDSCAPEFLAG:
+ os << "\\print_landscape_flag \"" << print_landscape_flag
+ << "\"\n";
+ case RC_PRINTTOPRINTER:
+ os << "\\print_to_printer \"" << print_to_printer << "\"\n";
+ case RC_PRINT_ADAPTOUTPUT:
+ os << "\\print_adapt_output " << tostr(print_adapt_output)
+ << "\n";
+ case RC_PRINTTOFILE:
+ os << "\\print_to_file \"" << print_to_file << "\"\n";
+ case RC_PRINTFILEEXTENSION:
+ os << "\\print_file_extension \"" << print_file_extension
+ << "\"\n";
+ case RC_PRINTEXSTRAOPTIONS:
+ os << "\\print_extra_options \"" << print_extra_options
+ << "\"\n";
+ case RC_PRINTSPOOL_COMMAND:
+ os << "\\print_spool_command \"" << print_spool_command
+ << "\"\n";
+ case RC_PRINTSPOOL_PRINTERPREFIX:
+ os << "\\print_spool_printerprefix \""
+ << print_spool_printerprefix << "\"\n";
+ case RC_PRINTPAPERDIMENSIONFLAG:
+ os << "\\print_paper_dimension_flag \""
+ << print_paper_dimension_flag << "\"\n";
+ case RC_PRINTPAPERFLAG:
+ os << "\\print_paper_flag \"" << print_paper_flag << "\"\n";
+ case RC_CUSTOM_EXPORT_COMMAND:
+ os << "\\custom_export_command \"" << custom_export_command
+ << "\"\n";
+ case RC_CUSTOM_EXPORT_FORMAT:
+ os << "\\custom_export_format \"" << custom_export_format
+ << "\"\n";
+ case RC_PDF_MODE:
+ os << "\\pdf_mode " << tostr(pdf_mode) << "\n";
+ case RC_LATEX_COMMAND:
+ os << "\\latex_command \"" << latex_command << "\"\n";
+ case RC_PDFLATEX_COMMAND:
+ os << "\\pdflatex_command \"" << pdflatex_command << "\"\n";
+ case RC_PDF_TO_PS_COMMAND:
+ os << "\\pdf_to_ps_command \"" << pdf_to_ps_command << "\"\n";
+ case RC_DVI_TO_PS_COMMAND:
+ os << "\\dvi_to_ps_command \"" << dvi_to_ps_command << "\"\n";
+ case RC_LITERATE_COMMAND:
+ os << "\\literate_command \"" << literate_command << "\"\n";
+ case RC_LITERATE_EXTENSION:
+ os << "\\literate_extension \"" << literate_extension
+ << "\"\n";
+ case RC_LITERATE_ERROR_FILTER:
+ os << "\\literate_error_filter \"" << literate_error_filter
+ << "\"\n";
+ case RC_BUILD_COMMAND:
+ os << "\\build_command \"" << build_command << "\"\n";
+ case RC_BUILD_ERROR_FILTER:
+ os << "\\build_error_filter \"" << build_error_filter
+ << "\"\n";
+ case RC_SCREEN_DPI:
+ os << "\\screen_dpi " << dpi << "\n";
+ case RC_SCREEN_ZOOM:
+ os << "\\screen_zoom " << zoom << "\n";
+ case RC_SCREEN_FONT_SIZES:
+ os.setf(ios::fixed);
+ os.precision(2);
+ os << "\\screen_font_sizes";
+ os << " " << font_sizes[LyXFont::SIZE_TINY];
+ os << " " << font_sizes[LyXFont::SIZE_SCRIPT];
+ os << " " << font_sizes[LyXFont::SIZE_FOOTNOTE];
+ os << " " << font_sizes[LyXFont::SIZE_SMALL];
+ os << " " << font_sizes[LyXFont::SIZE_NORMAL];
+ os << " " << font_sizes[LyXFont::SIZE_LARGE];
+ os << " " << font_sizes[LyXFont::SIZE_LARGER];
+ os << " " << font_sizes[LyXFont::SIZE_LARGEST];
+ os << " " << font_sizes[LyXFont::SIZE_HUGE];
+ os << " " << font_sizes[LyXFont::SIZE_HUGER];
+ os << "\n";
+ case RC_AUTOREGIONDELETE:
+ os << "\\auto_region_delete " << tostr(auto_region_delete)
+ << "\n";
+ case RC_AUTOSAVE:
+ os << "\\autosave " << autosave << "\n";
+ case RC_EXIT_CONFIRMATION:
+ os << "\\exit_confirmation " << tostr(exit_confirmation)
+ << "\n";
+ case RC_DISPLAY_SHORTCUTS:
+ os << "\\display_shortcuts " << tostr(display_shortcuts)
+ << "\n";
+ case RC_VIEWDVI_COMMAND:
+ os << "\\view_dvi_command \"" << view_dvi_command << "\"\n";
+ case RC_VIEWPDF_COMMAND:
+ os << "\\view_pdf_command \"" << view_pdf_command << "\"\n";
+ case RC_DEFAULT_PAPERSIZE:
+ os << "\\default_papersize \"";
+ switch (default_papersize) {
+ case BufferParams::PAPER_USLETTER:
+ os << "usletter"; break;
+ case BufferParams::PAPER_LEGALPAPER:
+ os << "legal"; break;
+ case BufferParams::PAPER_EXECUTIVEPAPER:
+ os << "executive"; break;
+ case BufferParams::PAPER_A3PAPER:
+ os << "a3"; break;
+ case BufferParams::PAPER_A4PAPER:
+ os << "a4"; break;
+ case BufferParams::PAPER_A5PAPER:
+ os << "a5"; break;
+ case BufferParams::PAPER_B5PAPER:
+ os << "b5"; break;
+ case BufferParams::PAPER_DEFAULT: break;
+ }
+ os << "\"\n";
+ case RC_VIEWPS_COMMAND:
+ os << "\\view_ps_command \"" << view_ps_command << "\"\n";
+ case RC_VIEWPSPIC_COMMAND:
+ os << "\\view_pspic_command \"" << view_pspic_command
+ << "\"\n";
+ case RC_PS_COMMAND:
+ os << "\\ps_command \"" << ps_command << "\"\n";
+ case RC_CHKTEX_COMMAND:
+ os << "\\chktex_command \"" << chktex_command << "\"\n";
+ case RC_HTML_COMMAND:
+ os << "\\html_command \"" << html_command << "\"\n";
+ case RC_SGML_EXTRA_OPTIONS:
+ os << "\\sgml_extra_options \"" << sgml_extra_options
+ << "\"\n";
+ case RC_KBMAP:
+ os << "\\kbmap " << tostr(use_kbmap) << "\n";
+ case RC_KBMAP_PRIMARY:
+ os << "\\kbmap_primary \"" << primary_kbmap << "\"\n";
+ case RC_KBMAP_SECONDARY:
+ os << "\\kbmap_secondary \"" << secondary_kbmap << "\"\n";
+ case RC_SERVERPIPE:
+ os << "\\serverpipe \"" << lyxpipes << "\"\n";
+ case RC_RELYX_COMMAND:
+ os << "\\relyx_command \"" << relyx_command << "\"\n";
+ case RC_DOCUMENTPATH:
+ os << "\\document_path \"" << document_path << "\"\n";
+ case RC_TEMPLATEPATH:
+ os << "\\template_path \"" << template_path << "\"\n";
+ case RC_TEMPDIRPATH:
+ os << "\\tempdir_path \"" << tempdir_path << "\"\n";
+ case RC_USETEMPDIR:
+ os << "\\use_tempdir " << tostr(use_tempdir) << "\n";
+ case RC_LASTFILES:
+ os << "\\lastfiles \"" << lastfiles << "\"\n";
+ case RC_NUMLASTFILES:
+ os << "\\num_lastfiles " << num_lastfiles << "\n";
+ case RC_CHECKLASTFILES:
+ os << "\\check_lastfiles " << tostr(check_lastfiles) << "\n";
+ case RC_SCREEN_FONT_ROMAN:
+ os << "\\screen_font_roman \"" << roman_font_name << "\"\n";
+ case RC_SCREEN_FONT_SANS:
+ os << "\\screen_font_sans \"" << sans_font_name << "\"\n";
+ case RC_SCREEN_FONT_TYPEWRITER:
+ os << "\\screen_font_typewriter \""
+ << typewriter_font_name << "\"\n";
+ case RC_SCREEN_FONT_MENU:
+ os << "\\screen_font_menu \"" << menu_font_name << "\"\n";
+ case RC_SCREEN_FONT_POPUP:
+ os << "\\screen_font_popup \"" << popup_font_name << "\"\n";
+ case RC_SCREEN_FONT_ENCODING:
+ os << "\\screen_font_encoding \"" << font_norm << "\"\n";
+ case RC_SCREEN_FONT_SCALABLE:
+ os << "\\screen_font_scalable " << tostr(use_scalable_fonts)
+ << "\n";
+ case RC_CURSOR_FOLLOWS_SCROLLBAR:
+ os << "\\cursor_follows_scrollbar "
+ << tostr(cursor_follows_scrollbar) << "\n";
+ case RC_FAST_SELECTION:
+ os << "\\fast_selection "
+ << tostr(static_cast<bool>(fast_selection)) << "\n";
+ case RC_BACKGROUND_COLOR:
+ os << "\\background_color \"" << background_color << "\"\n";
+ case RC_SELECTION_COLOR:
+ os << "\\selection_color \"" << selection_color << "\"\n";
+ case RC_FAX_COMMAND:
+ os << "\\fax_command \"" << fax_command << "\"\n";
+ case RC_FAXPROGRAM:
+ os << "\\fax_program \"" << fax_program << "\"\n";
+ case RC_PHONEBOOK:
+ os << "\\phone_book \"" << phone_book << "\"\n";
+ case RC_ASCIIROFF_COMMAND:
+ os << "\\ascii_roff_command \"" << ascii_roff_command
+ << "\"\n";
+ case RC_ASCII_LINELEN:
+ os << "\\ascii_linelen " << ascii_linelen << "\n";
+ case RC_SPELL_COMMAND:
+ os << "\\spell_command \"" << isp_command << "\"\n";
+ case RC_ACCEPT_COMPOUND:
+ os << "\\accept_compound " << tostr(isp_accept_compound)
+ << "\n";
+ case RC_USE_INP_ENC:
+ os << "\\use_input_encoding " << tostr(isp_use_input_encoding)
+ << "\n";
+ case RC_USE_ALT_LANG:
+ os << "\\use_alt_language " << tostr(isp_use_alt_lang) << "\n";
+ case RC_USE_PERS_DICT:
+ os << "\\use_personal_dictionary " << tostr(isp_use_pers_dict)
+ << "\n";
+ case RC_USE_ESC_CHARS:
+ os << "\\use_escape_chars " << tostr(isp_use_esc_chars)
+ << "\n";
+ case RC_ALT_LANG:
+ os << "\\alternate_language \"" << isp_alt_lang << "\"\n";
+ case RC_PERS_DICT:
+ os << "\\personal_dictionary \"" << isp_pers_dict << "\"\n";
+ case RC_ESC_CHARS:
+ os << "\\escape_chars \"" << isp_esc_chars << "\"\n";
+ case RC_MAKE_BACKUP:
+ os << "\\make_backup " << tostr(make_backup) << "\n";
+ }
+ os.flush();