+ else if (regex_match(token, sub, bibtexError)
+ || regex_match(token, sub, bibtexError2)
+ || regex_match(token, sub, bibtexError4)
+ || regex_match(token, sub, bibtexError5)) {
+ retval |= BIBTEX_ERROR;
+ string errstr = N_("BibTeX error: ") + token;
+ string msg;
+ if ((prefixIs(token, "while executing---line")
+ || prefixIs(token, "---line ")
+ || prefixIs(token, "*Please notify the BibTeX"))
+ && !prevtoken.empty()) {
+ errstr = N_("BibTeX error: ") + prevtoken;
+ msg = prevtoken + '\n';
+ }
+ msg += token;
+ terr.insertError(0,
+ from_local8bit(errstr),
+ from_local8bit(msg));
+ } else if (regex_match(prevtoken, sub, bibtexError3)) {
+ retval |= BIBTEX_ERROR;
+ string errstr = N_("BibTeX error: ") + prevtoken;
+ string msg = prevtoken + '\n' + token;
+ terr.insertError(0,
+ from_local8bit(errstr),
+ from_local8bit(msg));
+ } else if (regex_match(token, sub, biberError)) {
+ retval |= BIBTEX_ERROR;
+ string errstr = N_("Biber error: ") + sub.str(2);
+ string msg = token;
+ terr.insertError(0,
+ from_local8bit(errstr),
+ from_local8bit(msg));
+ }
+ prevtoken = token;
+ }
+ return retval;
+}
+
+
+int LaTeX::scanIlgFile(TeXErrors & terr)
+{
+ FileName const ilg_file(changeExtension(file.absFileName(), "ilg"));
+ LYXERR(Debug::LATEX, "Scanning ilg file: " << ilg_file);
+
+ ifstream ifs(ilg_file.toFilesystemEncoding().c_str());
+ string token;
+ int retval = NO_ERRORS;
+
+ string prevtoken;
+ while (getline(ifs, token)) {
+ token = rtrim(token, "\r");
+ smatch sub;
+ if (prefixIs(token, "!! "))
+ prevtoken = token;
+ else if (!prevtoken.empty()) {
+ retval |= INDEX_ERROR;
+ string errstr = N_("Makeindex error: ") + prevtoken;
+ string msg = prevtoken + '\n';
+ msg += token;
+ terr.insertError(0,
+ from_local8bit(errstr),
+ from_local8bit(msg));
+ prevtoken.clear();
+ } else if (prefixIs(token, "ERROR: ")) {
+ retval |= BIBTEX_ERROR;
+ string errstr = N_("Xindy error: ") + token.substr(6);
+ string msg = token;
+ terr.insertError(0,
+ from_local8bit(errstr),
+ from_local8bit(msg));
+ }
+ }
+ return retval;