namespace {
-int const LYX_FORMAT = 309; // Bernhard Reiter: support for \nocite
+int const LYX_FORMAT = 311; // Richard Heck: a dummy format to drive the AMS conversion
} // namespace anon
map<string, ErrorList> errorLists;
/// all embedded files of this buffer
- EmbeddedFiles embedded_files;
+ EmbeddedFileList embedded_files;
/// timestamp and checksum used to test if the file has been externally
/// modified. (Used to properly enable 'File->Revert to saved', bug 4114).
/// A cache for the bibfiles (including bibfiles of loaded child
/// documents), needed for appropriate update of natbib labels.
- mutable FileNameList bibfilesCache_;
+ mutable EmbeddedFileList bibfilesCache_;
};
/// Creates the per buffer temporary directory
: parent_buffer(0), lyx_clean(true), bak_clean(true), unnamed(false),
read_only(readonly_), filename(file), file_fully_loaded(false),
inset(params), toc_backend(&parent), macro_lock(false),
- embedded_files(&parent), timestamp_(0), checksum_(0), wa_(0),
+ embedded_files(), timestamp_(0), checksum_(0), wa_(0),
undo_(parent)
{
temppath = createBufferTmpDir();
}
-EmbeddedFiles & Buffer::embeddedFiles()
+EmbeddedFileList & Buffer::embeddedFiles()
{
return d->embedded_files;
}
-EmbeddedFiles const & Buffer::embeddedFiles() const
+EmbeddedFileList const & Buffer::embeddedFiles() const
{
return d->embedded_files;
}
+bool Buffer::embedded() const
+{
+ return params().embedded;
+}
+
+
Undo & Buffer::undo()
{
return d->undo_;
errorList.push_back(ErrorItem(_("Document header error"),
s, -1, 0, 0));
}
+
+ params().makeTextClass();
return unknown_tokens;
}
BOOST_ASSERT(paragraphs().empty());
readHeader(lex);
- TextClass const & baseClass = textclasslist[params().getBaseClass()];
- if (!baseClass.load(filePath())) {
- string theclass = baseClass.name();
- Alert::error(_("Can't load document class"), bformat(
- _("Using the default document class, because the "
- "class %1$s could not be loaded."), from_utf8(theclass)));
- params().setBaseClass(defaultTextclass());
- }
if (params().outputChanges) {
bool dvipost = LaTeXFeatures::isAvailable("dvipost");
FileName lyxfile(addName(temppath(), "content.lyx"));
// if both manifest.txt and file.lyx exist, this is am embedded file
if (lyxfile.exists()) {
+ // if in bundled format, save checksum of the compressed file, not content.lyx
+ saveCheckSum(filename);
params().embedded = true;
fname = lyxfile;
}
}
removeAutosaveFile(d->filename.absFilename());
+
+ if (params().embedded) {
+ message(str + _(" writing embedded files!."));
+ // if embedding is enabled, write file.lyx and all the embedded files
+ // to the zip file fname.
+ if (!d->embedded_files.writeFile(fname, *this)) {
+ message(str + _(" could not write embedded files!."));
+ return false;
+ }
+ }
saveCheckSum(d->filename);
message(str + _(" done."));
- if (!params().embedded)
- return true;
-
- message(str + _(" writing embedded files!."));
- // if embedding is enabled, write file.lyx and all the embedded files
- // to the zip file fname.
- if (!d->embedded_files.writeFile(fname)) {
- message(str + _(" could not write embedded files!."));
- return false;
- }
- message(str + _(" error while writing embedded files."));
return true;
}
runparams, output_preamble, output_body);
}
catch (EncodingException & e) {
- docstring msg = _("Could not find LaTeX command for character '%'");
- msg[msg.size() - 2] = e.failed_char;
+ odocstringstream ods;
+ ods.put(e.failed_char);
+ ostringstream oss;
+ oss << "0x" << hex << e.failed_char << dec;
+ docstring msg = bformat(_("Could not find LaTeX command for character '%1$s'"
+ " (code point %2$s)"),
+ ods.str(), from_utf8(oss.str()));
errorList.push_back(ErrorItem(msg, _("Some characters of your document are probably not "
"representable in the chosen encoding.\n"
"Changing the document encoding to utf8 could help."),
{
LYXERR(Debug::LATEX, "makeDocBookFile...");
- //ofstream ofs;
odocfstream ofs;
if (!openFileWrite(ofs, fname))
return;
if (it->lyxCode() == BIBTEX_CODE) {
InsetBibtex const & inset =
static_cast<InsetBibtex const &>(*it);
- FileNameList const bibfiles = inset.getFiles(*this);
+ EmbeddedFileList const bibfiles = inset.getFiles(*this);
d->bibfilesCache_.insert(d->bibfilesCache_.end(),
bibfiles.begin(),
bibfiles.end());
InsetInclude & inset =
static_cast<InsetInclude &>(*it);
inset.updateBibfilesCache(*this);
- FileNameList const & bibfiles =
+ EmbeddedFileList const & bibfiles =
inset.getBibfilesCache(*this);
d->bibfilesCache_.insert(d->bibfilesCache_.end(),
bibfiles.begin(),
}
-FileNameList const & Buffer::getBibfilesCache() const
+EmbeddedFileList const & Buffer::getBibfilesCache() const
{
// if this is a child document and the parent is already loaded
// use the parent's cache instead
string Buffer::filePath() const
{
- return d->filename.onlyPath().absFilename();
+ return d->filename.onlyPath().absFilename() + "/";
}
MacroData const * Buffer::getBufferMacro(docstring const & name,
DocIterator const & pos) const
{
- LYXERR(Debug::DEBUG, "Searching for " << to_ascii(name) << " at " << pos);
+ LYXERR(Debug::MACROS, "Searching for " << to_ascii(name) << " at " << pos);
// if paragraphs have no macro context set, pos will be empty
if (pos.empty())
if (d->macro_lock)
return;
- LYXERR(Debug::DEBUG, "updateMacro of " << d->filename.onlyFileName());
+ LYXERR(Debug::MACROS, "updateMacro of " << d->filename.onlyFileName());
// start with empty table
d->macros.clear();
void Buffer::updateMacroInstances() const
{
- LYXERR(Debug::DEBUG, "updateMacroInstances for " << d->filename.onlyFileName());
+ LYXERR(Debug::MACROS, "updateMacroInstances for " << d->filename.onlyFileName());
ParIterator it = par_iterator_begin();
ParIterator end = par_iterator_end();
for (; it != end; it.forwardPos()) {