namespace {
-CitationStyle asValidLatexCommand(string const & input, vector<CitationStyle> const valid_styles)
+CitationStyle asValidLatexCommand(string const & input, vector<CitationStyle> const & valid_styles)
{
CitationStyle cs = valid_styles[0];
cs.forceUpperCase = false;
{
if (!cache.recalculate && buffer().citeLabelsValid())
return;
-
// The label may have changed, so we have to re-create it.
docstring const glabel = generateLabel();
-
- unsigned int const maxLabelChars = 45;
-
- docstring label = glabel;
- if (label.size() > maxLabelChars) {
- label.erase(maxLabelChars - 3);
- label += "...";
- }
-
cache.recalculate = false;
cache.generated_label = glabel;
- cache.screen_label = label;
+ unsigned int const maxLabelChars = 45;
+ cache.screen_label = glabel.substr(0, maxLabelChars + 1);
+ support::truncateWithEllipsis(cache.screen_label, maxLabelChars);
}
-void InsetCitation::addToToc(DocIterator const & cpit, bool output_active) const
+void InsetCitation::addToToc(DocIterator const & cpit, bool output_active,
+ UpdateType) const
{
// NOTE
// BiblioInfo::collectCitedEntries() uses the TOC to collect the citations
// by both XHTML and plaintext output. So, if we change what goes into the TOC,
// then we will also need to change that routine.
docstring const tocitem = getParam("key");
- Toc & toc = buffer().tocBackend().toc("citation");
- toc.push_back(TocItem(cpit, 0, tocitem, output_active));
+ shared_ptr<Toc> toc = buffer().tocBackend().toc("citation");
+ toc->push_back(TocItem(cpit, 0, tocitem, output_active));
}
}
-void InsetCitation::forOutliner(docstring & os, size_t) const
+void InsetCitation::forOutliner(docstring & os, size_t const, bool const) const
{
os += screenLabel();
}