X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbuffer.C;h=0e7944a17679fdc4efa4b75ebf8a803c88347575;hb=29b6f5cad958e3298fc76d8ca6af6b721fa038cb;hp=e0877225236d80d11965fe5c15af5cddd7dcc8cb;hpb=4d5282a7aca1e8d80d310ce3a3514562d6584b36;p=lyx.git diff --git a/src/buffer.C b/src/buffer.C index e087722523..0e7944a176 100644 --- a/src/buffer.C +++ b/src/buffer.C @@ -36,7 +36,6 @@ #include "lyxtext.h" #include "lyxrc.h" #include "lyxvc.h" -#include "lyx_main.h" #include "messages.h" #include "output.h" #include "output_docbook.h" @@ -229,7 +228,7 @@ Buffer::~Buffer() closing(); - if (!temppath().empty() && !destroyDir(temppath())) { + if (!temppath().empty() && !destroyDir(FileName(temppath()))) { Alert::warning(_("Could not remove temporary directory"), bformat(_("Could not remove the temporary directory %1$s"), from_utf8(temppath()))); @@ -570,11 +569,10 @@ void Buffer::insertStringAsLines(ParagraphList & pars, } -bool Buffer::readFile(string const & filename) +bool Buffer::readFile(FileName const & filename) { // Check if the file is compressed. - FileName const name(makeAbsPath(filename)); - string const format = getFormatFromContents(name); + string const format = getFormatFromContents(filename); if (format == "gzip" || format == "zip" || format == "compress") { params().compressed = true; } @@ -582,7 +580,7 @@ bool Buffer::readFile(string const & filename) // remove dummy empty par paragraphs().clear(); LyXLex lex(0, 0); - lex.setFile(name); + lex.setFile(filename); if (!readFile(lex, filename)) return false; @@ -607,13 +605,13 @@ void Buffer::fully_loaded(bool const value) } -bool Buffer::readFile(LyXLex & lex, string const & filename) +bool Buffer::readFile(LyXLex & lex, FileName const & filename) { BOOST_ASSERT(!filename.empty()); if (!lex.isOK()) { Alert::error(_("Document could not be read"), - bformat(_("%1$s could not be read."), from_utf8(filename))); + bformat(_("%1$s could not be read."), from_utf8(filename.absFilename()))); return false; } @@ -622,7 +620,7 @@ bool Buffer::readFile(LyXLex & lex, string const & filename) if (!lex.isOK()) { Alert::error(_("Document could not be read"), - bformat(_("%1$s could not be read."), from_utf8(filename))); + bformat(_("%1$s could not be read."), from_utf8(filename.absFilename()))); return false; } @@ -632,7 +630,7 @@ bool Buffer::readFile(LyXLex & lex, string const & filename) Alert::error(_("Document format failure"), bformat(_("%1$s is not a LyX document."), - from_utf8(filename))); + from_utf8(filename.absFilename()))); return false; } @@ -648,14 +646,14 @@ bool Buffer::readFile(LyXLex & lex, string const & filename) //lyxerr << "format: " << file_format << endl; if (file_format != LYX_FORMAT) { - string const tmpfile = tempName(); + FileName const tmpfile(tempName()); if (tmpfile.empty()) { Alert::error(_("Conversion failed"), bformat(_("%1$s is from an earlier" " version of LyX, but a temporary" " file for converting it could" " not be created."), - from_utf8(filename))); + from_utf8(filename.absFilename()))); return false; } FileName const lyx2lyx = libFileSearch("lyx2lyx", "lyx2lyx"); @@ -665,14 +663,15 @@ bool Buffer::readFile(LyXLex & lex, string const & filename) " version of LyX, but the" " conversion script lyx2lyx" " could not be found."), - from_utf8(filename))); + from_utf8(filename.absFilename()))); return false; } ostringstream command; - command << os::python() << ' ' << quoteName(lyx2lyx.toFilesystemEncoding()) - << " -t " << convert(LYX_FORMAT) - << " -o " << quoteName(tmpfile) << ' ' - << quoteName(filename); + command << os::python() + << ' ' << quoteName(lyx2lyx.toFilesystemEncoding()) + << " -t " << convert(LYX_FORMAT) + << " -o " << quoteName(tmpfile.toFilesystemEncoding()) + << ' ' << quoteName(filename.toFilesystemEncoding()); string const command_str = command.str(); lyxerr[Debug::INFO] << "Running '" @@ -685,7 +684,7 @@ bool Buffer::readFile(LyXLex & lex, string const & filename) bformat(_("%1$s is from an earlier version" " of LyX, but the lyx2lyx script" " failed to convert it."), - from_utf8(filename))); + from_utf8(filename.absFilename()))); return false; } else { bool const ret = readFile(tmpfile); @@ -699,7 +698,7 @@ bool Buffer::readFile(LyXLex & lex, string const & filename) Alert::error(_("Document format failure"), bformat(_("%1$s ended unexpectedly, which means" " that it is probably corrupted."), - from_utf8(filename))); + from_utf8(filename.absFilename()))); } //lyxerr << "removing " << MacroTable::localMacros().size() @@ -829,25 +828,12 @@ bool Buffer::do_writeFile(ostream & ofs) const } -bool Buffer::makeLaTeXFile(string const & fname, +bool Buffer::makeLaTeXFile(FileName const & fname, string const & original_path, OutputParams const & runparams, bool output_preamble, bool output_body) { - string encoding; - if (params().inputenc == "auto") - encoding = params().language->encoding()->iconvName(); - else { - Encoding const * enc = encodings.getFromLaTeXName(params().inputenc); - if (enc) - encoding = enc->iconvName(); - else { - lyxerr << "Unknown inputenc value `" - << params().inputenc - << "'. Using `auto' instead." << endl; - encoding = params().language->encoding()->iconvName(); - } - } + string const encoding = params().encoding().iconvName(); lyxerr[Debug::LATEX] << "makeLaTeXFile encoding: " << encoding << "..." << endl; @@ -1025,7 +1011,7 @@ bool Buffer::isDocBook() const } -void Buffer::makeDocBookFile(string const & fname, +void Buffer::makeDocBookFile(FileName const & fname, OutputParams const & runparams, bool const body_only) { @@ -1036,7 +1022,7 @@ void Buffer::makeDocBookFile(string const & fname, if (!openFileWrite(ofs, fname)) return; - writeDocBookSource(ofs, fname, runparams, body_only); + writeDocBookSource(ofs, fname.absFilename(), runparams, body_only); ofs.close(); if (ofs.fail()) @@ -1124,7 +1110,7 @@ int Buffer::runChktex() busy(true); // get LaTeX-Filename - string const name = getLatexName(); + string const name = getLatexName(false); string const path = temppath(); string const org_path = filePath(); @@ -1135,10 +1121,10 @@ int Buffer::runChktex() OutputParams runparams; runparams.flavor = OutputParams::LATEX; runparams.nice = false; - makeLaTeXFile(name, org_path, runparams); + makeLaTeXFile(FileName(name), org_path, runparams); TeXErrors terr; - Chktex chktex(lyxrc.chktex_command, name, filePath()); + Chktex chktex(lyxrc.chktex_command, onlyFilename(name), filePath()); int const res = chktex.run(terr); // run chktex if (res == -1) { @@ -1224,7 +1210,7 @@ void Buffer::getLabelList(vector & list) const // This is also a buffer property (ale) -void Buffer::fillWithBibKeys(vector > & keys) +void Buffer::fillWithBibKeys(vector > & keys) const { /// if this is a child document and the parent is already loaded @@ -1248,11 +1234,12 @@ void Buffer::fillWithBibKeys(vector > & keys) } else if (it->lyxCode() == InsetBase::BIBITEM_CODE) { InsetBibitem const & inset = dynamic_cast(*it); - string const key = inset.getContents(); - string const opt = inset.getOptions(); - string const ref; // = pit->asString(this, false); - string const info = opt + "TheBibliographyRef" + ref; - keys.push_back(pair(key, info)); + // FIXME UNICODE + string const key = to_utf8(inset.getParam("key")); + docstring const label = inset.getParam("label"); + docstring const ref; // = pit->asString(this, false); + docstring const info = label + "TheBibliographyRef" + ref; + keys.push_back(pair(key, info)); } } } @@ -1631,10 +1618,10 @@ void Buffer::changeRefsIfUnique(docstring const & from, docstring const & to, vector labels; if (code == InsetBase::CITE_CODE) { - vector > keys; + vector > keys; fillWithBibKeys(keys); - vector >::const_iterator bit = keys.begin(); - vector >::const_iterator bend = keys.end(); + vector >::const_iterator bit = keys.begin(); + vector >::const_iterator bend = keys.end(); for (; bit != bend; ++bit) // FIXME UNICODE @@ -1695,7 +1682,7 @@ void Buffer::getSourceCode(odocstream & os, pit_type par_begin, ErrorList const & Buffer::errorList(string const & type) const { static ErrorList const emptyErrorList; - std::map::const_iterator I = errorLists_.find(type); + std::map::const_iterator I = errorLists_.find(type); if (I == errorLists_.end()) return emptyErrorList;