}
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();
}
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,
// 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();