X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbufferparams.C;h=ae15380f54ddf1dbf4f4440a7674a78aa2a94b0a;hb=dacb5be6462e278d769686b7380984b584dd86ac;hp=435f7e8310e11b1098c486c042bec2247aebbac5;hpb=3227c66baf8ad482fb025b634067f40203e66fa6;p=lyx.git diff --git a/src/bufferparams.C b/src/bufferparams.C index 435f7e8310..ae15380f54 100644 --- a/src/bufferparams.C +++ b/src/bufferparams.C @@ -4,7 +4,7 @@ * LyX, The Document Processor * * Copyright 1995 Matthias Ettrich - * Copyright 1995-1999 The LyX Team. + * Copyright 1995-2000 The LyX Team. * * ====================================================== */ @@ -22,6 +22,11 @@ #include "debug.h" #include "support/lyxlib.h" #include "support/lstrings.h" +#include "lyxrc.h" +#include "language.h" + +using std::ostream; +using std::endl; BufferParams::BufferParams() { @@ -45,131 +50,122 @@ BufferParams::BufferParams() use_amsmath = false; secnumdepth = 3; tocdepth = 3; - language = "default"; + language = default_language; fonts = "default"; - inputenc = "latin1"; + inputenc = "auto"; graphicsDriver = "default"; sides = LyXTextClass::OneSide; columns = 1; pagestyle = "default"; - for(int iter = 0; iter < 4; iter++) { + for (int iter = 0; iter < 4; ++iter) { user_defined_bullets[iter] = temp_bullets[iter] = ITEMIZE_DEFAULTS[iter]; } - allowAccents = false; } -void BufferParams::writeFile(FILE * file) +void BufferParams::writeFile(ostream & os) const { // The top of the file is written by the buffer. // Prints out the buffer info into the .lyx file given by file // the textclass - fprintf(file, "\\textclass %s\n", - textclasslist.NameOfClass(textclass).c_str()); + os << "\\textclass " << textclasslist.NameOfClass(textclass) << '\n'; // then the the preamble if (!preamble.empty()) { - fprintf(file, "\\begin_preamble\n"); - { - // remove '\n' from the end of preamble - preamble = strip(preamble, '\n'); - - // write out the whole preamble in one go - fwrite(preamble.c_str(), - sizeof(char), - preamble.length(), - file); - fprintf(file, "\n\\end_preamble\n"); - } + // remove '\n' from the end of preamble + string tmppreamble = strip(preamble, '\n'); + os << "\\begin_preamble\n" + << tmppreamble + << "\n\\end_preamble\n"; } /* the options */ if (!options.empty()) { - fprintf(file, - "\\options %s\n", - options.c_str()); + os << "\\options " << options << '\n'; } - /* then the text parameters */ - fprintf(file, "\\language %s\n", language.c_str()); - fprintf(file, "\\inputencoding %s\n", inputenc.c_str()); - fprintf(file, "\\fontscheme %s\n", fonts.c_str()); - fprintf(file, "\\graphics %s\n", graphicsDriver.c_str()); + /* then the text parameters */ + os << "\\language " << language->lang() + << "\n\\inputencoding " << inputenc + << "\n\\fontscheme " << fonts + << "\n\\graphics " << graphicsDriver << '\n'; if (!float_placement.empty()) { - fprintf(file, - "\\float_placement %s\n", - float_placement.c_str()); + os << "\\float_placement " << float_placement << '\n'; } - fprintf(file, "\\paperfontsize %s\n", fontsize.c_str()); + os << "\\paperfontsize " << fontsize << '\n'; - spacing.writeFile(file); + spacing.writeFile(os); - fprintf(file, "\\papersize %s\n", string_papersize[papersize2]); - fprintf(file, "\\paperpackage %s\n", - string_paperpackages[paperpackage]); - fprintf(file, "\\use_geometry %d\n", use_geometry); - fprintf(file, "\\use_amsmath %d\n", use_amsmath); - fprintf(file, "\\paperorientation %s\n", - string_orientation[orientation]); + os << "\\papersize " << string_papersize[papersize2] + << "\n\\paperpackage " << string_paperpackages[paperpackage] + << "\n\\use_geometry " << use_geometry + << "\n\\use_amsmath " << use_amsmath + << "\n\\paperorientation " << string_orientation[orientation] + << '\n'; if (!paperwidth.empty()) - fprintf(file, "\\paperwidth %s\n", - VSpace(paperwidth).asLyXCommand().c_str()); + os << "\\paperwidth " + << VSpace(paperwidth).asLyXCommand() << '\n'; if (!paperheight.empty()) - fprintf(file, "\\paperheight %s\n", - VSpace(paperheight).asLyXCommand().c_str()); + os << "\\paperheight " + << VSpace(paperheight).asLyXCommand() << '\n'; if (!leftmargin.empty()) - fprintf(file, "\\leftmargin %s\n", - VSpace(leftmargin).asLyXCommand().c_str()); + os << "\\leftmargin " + << VSpace(leftmargin).asLyXCommand() << '\n'; if (!topmargin.empty()) - fprintf(file, "\\topmargin %s\n", - VSpace(topmargin).asLyXCommand().c_str()); + os << "\\topmargin " + << VSpace(topmargin).asLyXCommand() << '\n'; if (!rightmargin.empty()) - fprintf(file, "\\rightmargin %s\n", - VSpace(rightmargin).asLyXCommand().c_str()); + os << "\\rightmargin " + << VSpace(rightmargin).asLyXCommand() << '\n'; if (!bottommargin.empty()) - fprintf(file, "\\bottommargin %s\n", - VSpace(bottommargin).asLyXCommand().c_str()); + os << "\\bottommargin " + << VSpace(bottommargin).asLyXCommand() << '\n'; if (!headheight.empty()) - fprintf(file, "\\headheight %s\n", - VSpace(headheight).asLyXCommand().c_str()); + os << "\\headheight " + << VSpace(headheight).asLyXCommand() << '\n'; if (!headsep.empty()) - fprintf(file, "\\headsep %s\n", - VSpace(headsep).asLyXCommand().c_str()); + os << "\\headsep " + << VSpace(headsep).asLyXCommand() << '\n'; if (!footskip.empty()) - fprintf(file, "\\footskip %s\n", - VSpace(footskip).asLyXCommand().c_str()); - fprintf(file, "\\secnumdepth %d\n", secnumdepth); - fprintf(file, "\\tocdepth %d\n", tocdepth); - fprintf(file, "\\paragraph_separation %s\n", - string_paragraph_separation[paragraph_separation]); - fprintf(file, "\\defskip %s\n", defskip.asLyXCommand().c_str()); - fprintf(file, "\\quotes_language %s\n", - string_quotes_language[quotes_language]); - switch(quotes_times) { - case InsetQuotes::SingleQ: - fprintf(file, "\\quotes_times 1\n"); break; + os << "\\footskip " + << VSpace(footskip).asLyXCommand() << '\n'; + os << "\\secnumdepth " << secnumdepth + << "\n\\tocdepth " << tocdepth + << "\n\\paragraph_separation " + << string_paragraph_separation[paragraph_separation] + << "\n\\defskip " << defskip.asLyXCommand() + << "\n\\quotes_language " + << string_quotes_language[quotes_language] << '\n'; + switch (quotes_times) { + // An output operator for insetquotes would be nice + case InsetQuotes::SingleQ: + os << "\\quotes_times 1\n"; break; case InsetQuotes::DoubleQ: - fprintf(file, "\\quotes_times 2\n"); break; - } - fprintf(file, "\\papercolumns %d\n", columns); - fprintf(file, "\\papersides %d\n", sides); - fprintf(file, "\\paperpagestyle %s\n", pagestyle.c_str()); + os << "\\quotes_times 2\n"; break; + } + os << "\\papercolumns " << columns + << "\n\\papersides " << sides + << "\n\\paperpagestyle " << pagestyle << '\n'; for (int i = 0; i < 4; ++i) { if (user_defined_bullets[i] != ITEMIZE_DEFAULTS[i]) { if (user_defined_bullets[i].getFont() != -1) { - fprintf(file, "\\bullet %d\n\t%d\n\t%d\n\t%d\n\\end_bullet\n", - i, - user_defined_bullets[i].getFont(), - user_defined_bullets[i].getCharacter(), - user_defined_bullets[i].getSize()); + os << "\\bullet " << i + << "\n\t" + << user_defined_bullets[i].getFont() + << "\n\t" + << user_defined_bullets[i].getCharacter() + << "\n\t" + << user_defined_bullets[i].getSize() + << "\n\\end_bullet\n"; } else { - fprintf(file, "\\bulletLaTeX %d\n\t%s\n\\end_bullet\n", - i, - user_defined_bullets[i].c_str()); + os << "\\bulletLaTeX " << i + << "\n\t" + << user_defined_bullets[i].getText() + << "\n\\end_bullet\n"; } } } @@ -203,24 +199,16 @@ void BufferParams::readLanguage(LyXLex & lex) if (!lex.next()) return; string tmptok = lex.GetString(); - string test; - int n = 0; + // check if tmptok is part of tex_babel in tex-defs.h - while (true) { - test = tex_babel[n++]; - - if (test == tmptok) { - language = tmptok; - break; - } - else if (test.empty()) { - lyxerr << "Warning: language `" - << tmptok << "' not recognized!\n" - << " Setting language to `default'." - << endl; - language = "default"; - break; - } + language = languages.getLanguage(tmptok); + if (!language) { + // Language tmptok was not found + language = default_language; + lyxerr << "Warning: language `" + << tmptok << "' not recognized!\n" + << " Setting language to `" << language->lang() + << "'." << endl; } }