getVectorFromString(file.fileContents("UTF-8"), from_ascii("\n"));
// Normalise paths like /foo//bar ==> /foo/bar
+ // No "auto const &" because doc is modified later
+ // coverity[auto_causes_copy]
for (auto doc : doclist) {
doc = subst(doc, from_ascii("\r"), docstring());
while (contains(doc, from_ascii("//")))
if (initialized_)
break;
// check in packages.lst
- if (LaTeXFeatures::isAvailable(params_.name)) {
+ bool available;
+ // we also allow version check with version separated by blank
+ if (contains(params_.name, ' ')) {
+ string name;
+ string const version = split(params_.name, name, ' ');
+ int const y = convert<int>(version.substr(0,4));
+ int const m = convert<int>(version.substr(4,2));
+ int const d = convert<int>(version.substr(6,2));
+ available = LaTeXFeatures::isAvailableAtLeastFrom(name, y, m, d);
+ } else
+ available = LaTeXFeatures::isAvailable(params_.name);
+
+ if (available) {
gui = _("yes");
info(from_ascii("yes"), params_.lang);
} else {