#include "graphics/Previews.h"
+#include "support/LAssert.h"
#include "support/textutils.h"
#include "support/filetools.h"
#include "support/path.h"
#include "support/FileInfo.h"
#include "support/lyxmanip.h"
#include "support/lyxtime.h"
+#include "support/gzstream.h"
#include <boost/bind.hpp>
#include <boost/tuple/tuple.hpp>
namespace {
-const int LYX_FORMAT = 224;
+const int LYX_FORMAT = 225;
bool openFileWrite(ofstream & ofs, string const & fname)
{
return false;
}
+ bool const compressed = (fname.substr(fname.size() - 3, 3) == ".gz");
+
+ if (compressed) {
+ gz::ogzstream ofs(fname.c_str());
+
+ if (!ofs)
+ return false;
+
+ return do_writeFile(ofs);
+
+ }
+
ofstream ofs(fname.c_str());
if (!ofs)
return false;
+ return do_writeFile(ofs);
+}
+
+
+bool Buffer::do_writeFile(ostream & ofs) const
+{
+
#ifdef HAVE_LOCALE
// Use the standard "C" locale for file output.
ofs.imbue(std::locale::classic());
// Write marker that shows file is complete
ofs << "\n\\the_end" << endl;
- ofs.close();
+ // Shouldn't really be needed....
+ //ofs.close();
// how to check if close went ok?
// Following is an attempt... (BE 20001011)
void Buffer::makeLaTeXFile(string const & fname,
string const & original_path,
LatexRunParams const & runparams,
- bool only_body, bool only_preamble)
+ bool output_preamble, bool output_body)
{
lyxerr[Debug::LATEX] << "makeLaTeXFile..." << endl;
return;
makeLaTeXFile(ofs, original_path,
- runparams, only_body, only_preamble);
+ runparams, output_preamble, output_body);
ofs.close();
if (ofs.fail()) {
void Buffer::makeLaTeXFile(ostream & os,
string const & original_path,
LatexRunParams const & runparams_in,
- bool only_body, bool only_preamble)
+ bool output_preamble, bool output_body)
{
LatexRunParams runparams = runparams_in;
niceFile = runparams.nice; // this will be used by Insetincludes.
// first paragraph of the document. (Asger)
texrow.start(paragraphs.begin()->id(), 0);
- if (!only_body && runparams.nice) {
+ if (output_preamble && runparams.nice) {
os << "%% " << lyx_docversion << " created this file. "
"For more info, see http://www.lyx.org/.\n"
"%% Do not edit unless you really know what "
// input@path is set when the actual parameter
// original_path is set. This is done for usual tex-file, but not
// for nice-latex-file. (Matthias 250696)
- if (!only_body) {
+ if (output_preamble) {
if (!runparams.nice) {
// code for usual, NOT nice-latex-file
os << "\\batchmode\n"; // changed
// Write the preamble
runparams.use_babel = params.writeLaTeX(os, features, texrow);
- if (only_preamble)
+ if (!output_body)
return;
// make the body.
os << "\\begin{document}\n";
texrow.newline();
- } // only_body
+ } // output_preamble
lyxerr[Debug::INFO] << "preamble finished, now the body." << endl;
if (!lyxrc.language_auto_begin) {
texrow.newline();
}
- if (!only_body) {
+ if (output_preamble) {
os << "\\end{document}\n";
texrow.newline();