+ docstring data = lex.getDocString();
+ if (buffer && token == "filename") {
+ data = from_utf8(buffer->includedFilePath(to_utf8(data)));
+ } else if (buffer && token == "bibfiles") {
+ int i = 0;
+ docstring newdata;
+ docstring bib = support::token(data, ',', i);
+ while (!bib.empty()) {
+ bib = from_utf8(buffer->includedFilePath(to_utf8(bib), "bib"));
+ if (!newdata.empty())
+ newdata.append(1, ',');
+ newdata.append(bib);
+ bib = support::token(data, ',', ++i);
+ }
+ data = newdata;
+ } else if (buffer && token == "options") {
+ data = from_utf8(buffer->includedFilePath(to_utf8(data), "bst"));
+ }
+ params_[token] = data;