X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBuffer.cpp;h=e78a443a88ab3c44e721f15d7b493c85109bc080;hb=110445e3e2fe9beab1c38d2806cfd126dae967a9;hp=e848b0f69be238521ffced888e603e07097ba3c9;hpb=9d1031771e4a30548d89efa49580e3d8b6dae119;p=lyx.git diff --git a/src/Buffer.cpp b/src/Buffer.cpp index e848b0f69b..e78a443a88 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -2106,8 +2106,7 @@ Buffer::ExportStatus Buffer::makeDocBookFile(FileName const & fname, updateBuffer(); updateMacroInstances(OutputUpdate); - ExportStatus const retval = - writeDocBookSource(ofs, runparams, output); + ExportStatus const retval = writeDocBookSource(ofs, runparams, output); if (retval == ExportKilled) return ExportKilled; @@ -2144,12 +2143,23 @@ Buffer::ExportStatus Buffer::writeDocBookSource(odocstream & os, << "\n"; + // Prepare the name space declaration for MathML depending on document preferences. + string mathmlNamespace; + if (params().docbook_mathml_prefix != BufferParams::NoPrefix) { + string mathmlPrefix; + if (params().docbook_mathml_prefix == BufferParams::MPrefix) + mathmlPrefix = "m"; + else if (params().docbook_mathml_prefix == BufferParams::MMLPrefix) + mathmlPrefix = "mml"; + mathmlNamespace = + " xmlns:" + mathmlPrefix + "=\"http://www.w3.org/1998/Math/MathML\""; + } + // Directly output the root tag, based on the current type of document. string languageCode = params().language->code(); string params = "xml:lang=\"" + languageCode + '"' + " xmlns=\"http://docbook.org/ns/docbook\"" + " xmlns:xlink=\"http://www.w3.org/1999/xlink\"" - + " xmlns:m=\"http://www.w3.org/1998/Math/MathML\"" + + mathmlNamespace + " xmlns:xi=\"http://www.w3.org/2001/XInclude\"" + " version=\"5.2\""; @@ -3816,7 +3826,7 @@ void Buffer::Impl::updateMacros(DocIterator & it, DocIterator & scope) // FIXME (Abdel), I don't understand why we pass 'it' here // instead of 'macroTemplate' defined above... is this correct? macros[macroTemplate.name()][it] = - Impl::ScopeMacro(scope, MacroData(const_cast(owner_), it)); + Impl::ScopeMacro(scope, MacroData(owner_, it)); } // next paragraph @@ -4360,6 +4370,9 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir void Buffer::setMathFlavor(OutputParams & op) const { + // Passes the way to generate formulae to the XHTML output code. + // In particular, this function has no impact on the DocBook code, as it + // uses another mechanism to handle math flavours. switch (params().html_math_output) { case BufferParams::MathML: op.math_flavor = OutputParams::MathAsMathML; @@ -4403,7 +4416,7 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir Converters converters = theConverters(); bool need_nice_file = false; if (find(backs.begin(), backs.end(), format) == backs.end()) { - // Get shortest path to format + // Get the shortest path to format converters.buildGraph(); Graph::EdgePath path; for (string const & sit : backs) { @@ -4569,7 +4582,7 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir result_file = changeExtension(d->exportFileName().absFileName(), ext); else result_file = dest_filename; - // We need to copy referenced files (e. g. included graphics + // We need to copy referenced files (e.g. included graphics // if format == "dvi") to the result dir. vector const extfiles = runparams.exportdata->externalFiles(format); @@ -4770,17 +4783,18 @@ Buffer::ReadStatus Buffer::loadEmergency() } case 2: { - string f1 = d->filename.absFileName(); - string f2 = emergencyFile.absFileName(); + string const f1 = d->filename.absFileName(); + string const f2 = emergencyFile.absFileName(); if (loadThisLyXFile(d->filename) != ReadSuccess) return ReadCancel; - string par = "compare run-blocking " + quoteName(f1) + " " + quoteName(f2); + string const par = "compare run-blocking " + quoteName(f1) + " " + quoteName(f2); LYXERR(Debug::FILES, par << "\n"); lyx::dispatch(FuncRequest(LFUN_DIALOG_SHOW, par)); //release the emergency buffer loaded by compare Buffer * emerBuffer = theBufferList().getBuffer(emergencyFile); - if (emerBuffer) theBufferList().release(emerBuffer); + if (emerBuffer) + theBufferList().release(emerBuffer); return ReadCancel; //Release the buffer of Original immediatelly } @@ -4913,6 +4927,13 @@ void Buffer::bufferRefs(TeXErrors const & terr, ErrorList & errorList) const } +void Buffer::updateBuffer() const +{ + updateBuffer(UpdateMaster, InternalUpdate); + d->need_update = false; +} + + void Buffer::updateBuffer(UpdateScope scope, UpdateType utype) const { LBUFERR(!text().paragraphs().empty());