#include "Lexer.h"
#include "support/convert.h"
+#include "support/debug.h"
#include "support/FileName.h"
#include "support/filetools.h"
#include "support/lstrings.h"
+#include "support/Package.h"
using namespace std;
packages_.clear();
bool finished = false;
+ string lstformat = "1";
// Parse config-file
while (lex.isOK() && !finished) {
switch (lex.lex()) {
// Parse optional version info
lex.eatLine();
string const v = trim(lex.getString());
+ if (p == "!!fileformat") {
+ lstformat = v;
+ continue;
+ }
packages_.insert(make_pair(p, v));
}
}
}
+ // Check if the pkglist has current format.
+ // Reconfigure and re-parse if not.
+ if (lstformat != "2") {
+ package().reconfigureUserLyXDir("");
+ getAvailable();
+ }
}
// required date as int (yyyymmdd)
int const req_date = (y * 10000) + (m * 100) + d;
for (auto const & package : packages_) {
- if (package.first == name && !package.second.empty())
+ if (package.first == name && !package.second.empty()) {
+ if (!isStrInt(package.second)) {
+ LYXERR0("Warning: Invalid date of package "
+ << package.first << " (" << package.second << ")");
+ continue;
+ }
// required date not newer than available date
return req_date <= convert<int>(package.second);
+ }
}
return false;
}