using std::endl;
using std::string;
-using std::auto_ptr;
using std::istringstream;
using std::ostream;
using std::ostringstream;
}
-auto_ptr<Inset> InsetInclude::doClone() const
+Inset * InsetInclude::clone() const
{
- return auto_ptr<Inset>(new InsetInclude(*this));
+ return new InsetInclude(*this);
}
Alert::warning(_("Different textclasses"), text);
//return 0;
}
+
+ // Make sure modules used in child are all included in master
+ //FIXME It might be worth loading the children's modules into the master
+ //over in BufferParams rather than doing this check.
+ vector<string> const masterModules = m_buffer->params().getModules();
+ vector<string> const childModules = tmp->params().getModules();
+ vector<string>::const_iterator it = childModules.begin();
+ vector<string>::const_iterator end = childModules.end();
+ for (; it != end; ++it) {
+ string const module = *it;
+ vector<string>::const_iterator found =
+ find(masterModules.begin(), masterModules.end(), module);
+ if (found != masterModules.end()) {
+ docstring text = bformat(_("Included file `%1$s'\n"
+ "uses module `%2$s'\n"
+ "which is not used in parent file."),
+ makeDisplayPath(included_file.absFilename()), from_utf8(module));
+ Alert::warning(_("Module not found"), text);
+ }
+ }
tmp->markDepClean(m_buffer->temppath());
}
+void InsetInclude::registerEmbeddedFiles(Buffer const & buffer,
+ EmbeddedFiles & files, ParConstIterator const & pit) const
+{
+ // include and input are temprarily not considered.
+ if (isVerbatim(params_) || isListings(params_))
+ files.registerFile(includedFilename(buffer, params_).absFilename(),
+ EmbeddedFile::AUTO, pit);
+}
+
+
string const InsetIncludeMailer::name_("include");
InsetIncludeMailer::InsetIncludeMailer(InsetInclude & inset)