}
if (new_label != old_label) {
- label_->updateCommand(new_label);
+ label_->updateLabelAndRefs(new_label, &cur);
// the label might have been adapted (duplicate)
if (new_label != label_->getParam("name")) {
new_params.addParam("label", "{" +
from_utf8(masterBuffer->filePath())));
}
+ string exppath = incfile;
+ if (!runparams.export_folder.empty()) {
+ exppath = makeAbsPath(exppath, runparams.export_folder).realPath();
+ FileName(exppath).onlyPath().createPath();
+ }
+
// write it to a file (so far the complete file)
string exportfile;
string mangled;
// bug 5681
if (type(params()) == LISTINGS) {
- exportfile = incfile;
+ exportfile = exppath;
mangled = DocFileName(included_file).mangledFileName();
} else {
- exportfile = changeExtension(incfile, ".tex");
+ exportfile = changeExtension(exppath, ".tex");
mangled = DocFileName(changeExtension(included_file.absFileName(), ".tex")).
mangledFileName();
}
LYXERR(Debug::LATEX, "exportfile:" << exportfile);
LYXERR(Debug::LATEX, "writefile:" << writefile);
- string const tex_format = (runparams.flavor == OutputParams::LATEX) ?
- "latex" : "pdflatex";
+ string const tex_format = flavor2format(runparams.flavor);
if (runparams.inComment || runparams.dryrun) {
//Don't try to load or copy the file if we're
//in a comment or doing a dryrun
isLyXFileName(included_file.absFileName())) {
// if it's a LyX file and we're inputting or including,
// try to load it so we can write the associated latex
-
+
Buffer * tmp = loadIfNeeded();
if (!tmp) {
docstring text = bformat(_("Could not load included "
tmp->markDepClean(masterBuffer->temppath());
// Don't assume the child's format is latex
- string const inc_format = tmp->bufferFormat();
+ string const inc_format = tmp->params().bufferFormat();
FileName const tmpwritefile(changeExtension(writefile.absFileName(),
formats.extension(inc_format)));
// FIXME: handle non existing files
- // FIXME: Second argument is irrelevant!
- // since only_body is true, makeLaTeXFile will not look at second
- // argument. Should we set it to string(), or should makeLaTeXFile
- // make use of it somehow? (JMarc 20031002)
// The included file might be written in a different encoding
// and language.
Encoding const * const oldEnc = runparams.encoding;
runparams.par_begin = 0;
runparams.par_end = tmp->paragraphs().size();
if (!tmp->makeLaTeXFile(tmpwritefile, masterFileName(buffer()).
- onlyPath().absFileName(), runparams, false)) {
+ onlyPath().absFileName(), runparams, Buffer::OnlyBody)) {
docstring msg = bformat(_("Included file `%1$s' "
"was not exported correctly.\nWarning: "
"LaTeX export is probably incomplete."),
included_file.displayName());
- ErrorList & el = tmp->errorList("Export");
+ ErrorList const & el = tmp->errorList("Export");
if (!el.empty())
msg = bformat(from_ascii("%1$s\n\n%2$s\n\n%3$s"),
msg, el.begin()->error,
runparams.encoding = oldEnc;
runparams.master_language = oldLang;
- // Use converters to produce a latex file from the child
- ErrorList el;
- bool const success =
- theConverters().convert(tmp, tmpwritefile, writefile, included_file,
- inc_format, tex_format, el);
-
- if (!success) {
- docstring msg = bformat(_("Included file `%1$s' "
- "was not exported correctly.\nWarning: "
- "LaTeX export is probably incomplete."),
- included_file.displayName());
- if (!el.empty())
- msg = bformat(from_ascii("%1$s\n\n%2$s\n\n%3$s"),
- msg, el.begin()->error,
- el.begin()->description);
- Alert::warning(_("Export failure"), msg);
+ // If needed, use converters to produce a latex file from the child
+ if (tmpwritefile != writefile) {
+ ErrorList el;
+ bool const success =
+ theConverters().convert(tmp, tmpwritefile, writefile,
+ included_file,
+ inc_format, tex_format, el);
+
+ if (!success) {
+ docstring msg = bformat(_("Included file `%1$s' "
+ "was not exported correctly.\nWarning: "
+ "LaTeX export is probably incomplete."),
+ included_file.displayName());
+ if (!el.empty())
+ msg = bformat(from_ascii("%1$s\n\n%2$s\n\n%3$s"),
+ msg, el.begin()->error,
+ el.begin()->description);
+ Alert::warning(_("Export failure"), msg);
+ }
}
} else {
// In this case, it's not a LyX file, so we copy the file
// to the temp dir, so that .aux files etc. are not created
// in the original dir. Files included by this file will be
- // found via input@path, see ../Buffer.cpp.
+ // found via either the environment variable TEXINPUTS, or
+ // input@path, see ../Buffer.cpp.
unsigned long const checksum_in = included_file.checksum();
unsigned long const checksum_out = writefile.checksum();
os << '\\' << from_ascii(params().getCmdName())
<< '{' << from_utf8(incfile) << '}';
} else {
- incfile = changeExtension(incfile, ".tex");
- incfile = latex_path(incfile);
+ incfile = changeExtension(incfile, ".tex");
+ incfile = latex_path(incfile);
// FIXME UNICODE
os << '\\' << from_ascii(params().getCmdName())
<< '{' << from_utf8(incfile) << '}';
break;
}
case LISTINGS: {
+ runparams.exportdata->addExternalFile(tex_format, writefile,
+ exportfile);
os << '\\' << from_ascii(params().getCmdName());
string const opt = to_utf8(params()["lstparams"]);
// opt is set in QInclude dialog and should have passed validation.
}
-docstring InsetInclude::xhtml(XHTMLStream & xs, OutputParams const &rp) const
+docstring InsetInclude::xhtml(XHTMLStream & xs, OutputParams const & rp) const
{
if (rp.inComment)
return docstring();
Buffer const * const ibuf = loadIfNeeded();
if (!ibuf)
return docstring();
- ibuf->writeLyXHTMLSource(xs.os(), rp, true);
+
+ // are we generating only some paragraphs, or all of them?
+ bool const all_pars = !rp.dryrun ||
+ (rp.par_begin == 0 &&
+ rp.par_end == (int)buffer().text().paragraphs().size());
+
+ OutputParams op = rp;
+ if (all_pars) {
+ op.par_begin = 0;
+ op.par_end = 0;
+ ibuf->writeLyXHTMLSource(xs.os(), op, Buffer::OnlyBody);
+ } else
+ xs << XHTMLStream::ESCAPE_NONE
+ << "<!-- Included file: "
+ << from_utf8(included_file.absFileName())
+ << XHTMLStream::ESCAPE_NONE
+ << " -->";
return docstring();
}
return 0;
}
+ string exppath = incfile;
+ if (!runparams.export_folder.empty()) {
+ exppath = makeAbsPath(exppath, runparams.export_folder).realPath();
+ FileName(exppath).onlyPath().createPath();
+ }
+
// write it to a file (so far the complete file)
- string const exportfile = changeExtension(incfile, ".sgml");
+ string const exportfile = changeExtension(exppath, ".sgml");
DocFileName writefile(changeExtension(included_file, ".sgml"));
Buffer * tmp = loadIfNeeded();
LYXERR(Debug::LATEX, "exportfile:" << exportfile);
LYXERR(Debug::LATEX, "writefile:" << writefile);
- tmp->makeDocBookFile(writefile, runparams, true);
+ tmp->makeDocBookFile(writefile, runparams, Buffer::OnlyBody);
}
runparams.exportdata->addExternalFile("docbook", writefile,
features.includeFile(include_label, writefile);
+ features.useInsetLayout(getLayout());
if (isVerbatim(params()))
features.require("verbatim");
else if (isListings(params()))
}
-docstring InsetInclude::contextMenuName() const
+string InsetInclude::contextMenuName() const
{
- return from_ascii("context-include");
+ return "context-include";
}
}
+docstring InsetInclude::layoutName() const
+{
+ if (isListings(params()))
+ return from_ascii("IncludeListings");
+ return InsetCommand::layoutName();
+}
+
//
// preview stuff
return;
docstring old_label = label_->getParam("name");
- label_->updateCommand(old_label, false);
+ label_->updateLabel(old_label);
// the label might have been adapted (duplicate)
docstring new_label = label_->getParam("name");
if (old_label == new_label)
setParams(p);
}
+
void InsetInclude::updateBuffer(ParIterator const & it, UpdateType utype)
{
Buffer const * const childbuffer = getChildBuffer();