+ // FIXME: allow to add cite macros
+ /*
+ buffer().params().documentClass().addCiteMacro("!textbefore", to_utf8(before));
+ buffer().params().documentClass().addCiteMacro("!textafter", to_utf8(after));
+ */
+ docstring label;
+ // we only really want the last 'false', to suppress trimming, but
+ // we need to give the other defaults, too, to set it.
+ vector<docstring> keys =
+ getVectorFromString(key, from_ascii(","), false, false);
+ CitationStyle cs = getCitationStyle(buffer().masterParams(),
+ cite_type, buffer().masterParams().citeStyles());
+ bool const qualified = cs.hasQualifiedList
+ && (keys.size() > 1
+ || !getParam("pretextlist").empty()
+ || !getParam("posttextlist").empty());
+ map<docstring, docstring> pres = getQualifiedLists(getParam("pretextlist"));
+ map<docstring, docstring> posts = getQualifiedLists(getParam("posttextlist"));
+
+ CiteItem ci;
+ ci.textBefore = getParam("before");
+ ci.textAfter = getParam("after");
+ ci.forceUpperCase = uppercase;
+ ci.Starred = starred;
+ ci.max_size = UINT_MAX;
+ ci.isQualified = qualified;
+ ci.pretexts = pres;
+ ci.posttexts = posts;
+ if (for_xhtml) {
+ ci.max_key_size = UINT_MAX;
+ ci.context = CiteItem::Export;