namespace lyx {
+// FIXME THREAD
int InsetBibitem::key_counter = 0;
docstring const key_prefix = from_ascii("key-");
void InsetBibitem::updateCommand(docstring const & new_key, bool)
{
docstring key = new_key;
-
vector<docstring> bibkeys = buffer().masterBibInfo().getKeys();
- int i = 1;
-
if (find(bibkeys.begin(), bibkeys.end(), key) != bibkeys.end()) {
+ int i = 1;
// generate unique label
key = new_key + '-' + convert<docstring>(i);
while (find(bibkeys.begin(), bibkeys.end(), key) != bibkeys.end()) {
docstring label = p["label"];
// definitions for escaping
- int previous;
static docstring const backslash = from_ascii("\\");
static docstring const lbrace = from_ascii("{");
static docstring const rbrace = from_ascii("}");
static char_type const brackets_escape[2] = {'[', ']'};
if (!label.empty()) {
+ int previous;
// The characters in chars_name[] need to be changed to a command when
// they are in the name field.
for (int k = 0; k < 6; k++)
docstring InsetBibitem::bibLabel() const
{
+ BufferParams const & bp = buffer().masterBuffer()->params();
+ if (bp.citeEngineType() == ENGINE_TYPE_NUMERICAL)
+ return autolabel_;
docstring const & label = getParam("label");
return label.empty() ? autolabel_ : label;
}
// ale070405
docstring bibitemWidest(Buffer const & buffer, OutputParams const & runparams)
{
+ BufferParams const & bp = buffer.masterBuffer()->params();
+ if (bp.citeEngineType() == ENGINE_TYPE_NUMERICAL)
+ return from_ascii("99");
+
int w = 0;
InsetBibitem const * bitem = 0;
BibTeXInfo keyvalmap(false);
keyvalmap.key(key);
keyvalmap.label(label);
+
+ BufferParams const & bp = buffer().masterBuffer()->params();
+ Counters & counters = bp.documentClass().counters();
+ docstring const bibitem = from_ascii("bibitem");
+ if (bp.citeEngineType() == ENGINE_TYPE_NUMERICAL || getParam("label").empty()) {
+ if (counters.hasCounter(bibitem))
+ counters.step(bibitem, InternalUpdate);
+ string const & lang = it.paragraph().getParLanguage(bp)->code();
+ keyvalmap.setCiteNumber(counters.theCounter(bibitem, lang));
+ }
+
DocIterator doc_it(it);
doc_it.forwardPos();
keyvalmap[from_ascii("ref")] = doc_it.paragraph().asString(
BufferParams const & bp = buffer().masterBuffer()->params();
Counters & counters = bp.documentClass().counters();
docstring const bibitem = from_ascii("bibitem");
- if (getParam("label").empty()) {
+ if (bp.citeEngineType() == ENGINE_TYPE_NUMERICAL || getParam("label").empty()) {
if (counters.hasCounter(bibitem))
counters.step(bibitem, utype);
string const & lang = it.paragraph().getParLanguage(bp)->code();