#include "BufferView.h"
#include "Counters.h"
#include "DispatchResult.h"
+#include "Encoding.h"
#include "FuncRequest.h"
#include "InsetIterator.h"
#include "InsetList.h"
#include "Language.h"
#include "Lexer.h"
#include "output_xhtml.h"
+#include "OutputParams.h"
#include "Paragraph.h"
#include "ParagraphList.h"
#include "ParIterator.h"
#include "frontends/alert.h"
#include "support/convert.h"
+#include "support/debug.h"
#include "support/docstream.h"
#include "support/gettext.h"
#include "support/lstrings.h"
}
setParam("key", key);
- buffer().updateLabels();
+ buffer().updateBuffer();
}
{
static ParamInfo param_info_;
if (param_info_.empty()) {
- param_info_.add("label", ParamInfo::LATEX_OPTIONAL);
- param_info_.add("key", ParamInfo::LATEX_REQUIRED);
+ param_info_.add("label", ParamInfo::LATEX_OPTIONAL,
+ ParamInfo::HANDLING_LATEXIFY);
+ param_info_.add("key", ParamInfo::LATEX_REQUIRED,
+ ParamInfo::HANDLING_ESCAPE);
}
return param_info_;
}
// ale070405
-docstring bibitemWidest(Buffer const & buffer)
+docstring bibitemWidest(Buffer const & buffer, OutputParams const & runparams)
{
int w = 0;
}
}
- if (!lbl.empty())
- return lbl;
+ if (!lbl.empty()) {
+ docstring latex_lbl;
+ for (size_t n = 0; n < lbl.size(); ++n) {
+ try {
+ latex_lbl += runparams.encoding->latexChar(lbl[n]);
+ } catch (EncodingException & /* e */) {
+ if (runparams.dryrun) {
+ latex_lbl += "<" + _("LyX Warning: ")
+ + _("uncodable character") + " '";
+ latex_lbl += docstring(1, lbl[n]);
+ latex_lbl += "'>";
+ }
+ }
+ }
+ return latex_lbl;
+ }
return from_ascii("99");
}
// Update the counters of this inset and of its contents
-void InsetBibitem::updateLabels(ParIterator const & it)
+void InsetBibitem::updateBuffer(ParIterator const & it, UpdateType utype)
{
BufferParams const & bp = buffer().masterBuffer()->params();
Counters & counters = bp.documentClass().counters();
docstring const bibitem = from_ascii("bibitem");
if (counters.hasCounter(bibitem) && getParam("label").empty()) {
- counters.step(bibitem);
+ counters.step(bibitem, utype);
string const & lang = it.paragraph().getParLanguage(bp)->code();
autolabel_ = counters.theCounter(bibitem, lang);
} else {
// handle jumping to ids. If we don't do that, though, we can just put the
// id into the span tag.
string const attrs = "id='" + to_utf8(getParam("key")) + "'";
- xs << CompTag("a", attrs);
- xs << StartTag("span", "class='biblabel'");
+ xs << html::CompTag("a", attrs);
+ xs << html::StartTag("span", "class='bibitemlabel'");
xs << bibLabel();
- xs << EndTag("span");
+ xs << html::EndTag("span");
return docstring();
}