mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 05:16:21 +00:00
parent
aa141bc293
commit
239dee34af
@ -1238,7 +1238,7 @@ def checkOtherEntries():
|
|||||||
rc_entry = [ r'\jbibtex_command "automatic"' ],
|
rc_entry = [ r'\jbibtex_command "automatic"' ],
|
||||||
alt_rc_entry = [ r'\jbibtex_alternatives "%%"' ])
|
alt_rc_entry = [ r'\jbibtex_alternatives "%%"' ])
|
||||||
checkProgAlternatives('available index processors',
|
checkProgAlternatives('available index processors',
|
||||||
['texindy $$x', 'makeindex -c -q', 'xindy $$x'],
|
['texindy $$x -t $$b.ilg', 'makeindex -c -q', 'xindy $$x -t $$b.ilg'],
|
||||||
rc_entry = [ r'\index_command "%%"' ],
|
rc_entry = [ r'\index_command "%%"' ],
|
||||||
alt_rc_entry = [ r'\index_alternatives "%%"' ])
|
alt_rc_entry = [ r'\index_alternatives "%%"' ])
|
||||||
checkProg('an index processor appropriate to Japanese',
|
checkProg('an index processor appropriate to Japanese',
|
||||||
|
@ -188,6 +188,7 @@ int LaTeX::run(TeXErrors & terr)
|
|||||||
{
|
{
|
||||||
int scanres = NO_ERRORS;
|
int scanres = NO_ERRORS;
|
||||||
int bscanres = NO_ERRORS;
|
int bscanres = NO_ERRORS;
|
||||||
|
int iscanres = NO_ERRORS;
|
||||||
unsigned int count = 0; // number of times run
|
unsigned int count = 0; // number of times run
|
||||||
num_errors = 0; // just to make sure.
|
num_errors = 0; // just to make sure.
|
||||||
unsigned int const MAX_RUN = 6;
|
unsigned int const MAX_RUN = 6;
|
||||||
@ -302,6 +303,9 @@ int LaTeX::run(TeXErrors & terr)
|
|||||||
runMakeIndex(onlyFileName(idxfile.absFileName()), runparams);
|
runMakeIndex(onlyFileName(idxfile.absFileName()), runparams);
|
||||||
if (ret == Systemcall::KILLED)
|
if (ret == Systemcall::KILLED)
|
||||||
return Systemcall::KILLED;
|
return Systemcall::KILLED;
|
||||||
|
FileName const ilgfile(changeExtension(file.absFileName(), ".ilg"));
|
||||||
|
if (ilgfile.exists())
|
||||||
|
iscanres = scanIlgFile(terr);
|
||||||
rerun = true;
|
rerun = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -426,7 +430,10 @@ int LaTeX::run(TeXErrors & terr)
|
|||||||
file.absFileName(), ".idx")), runparams);
|
file.absFileName(), ".idx")), runparams);
|
||||||
if (ret == Systemcall::KILLED)
|
if (ret == Systemcall::KILLED)
|
||||||
return Systemcall::KILLED;
|
return Systemcall::KILLED;
|
||||||
rerun = true;
|
FileName const ilgfile(changeExtension(file.absFileName(), ".ilg"));
|
||||||
|
if (ilgfile.exists())
|
||||||
|
iscanres = scanIlgFile(terr);
|
||||||
|
rerun = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// MSVC complains that bool |= int is unsafe. Not sure why.
|
// MSVC complains that bool |= int is unsafe. Not sure why.
|
||||||
@ -475,6 +482,9 @@ int LaTeX::run(TeXErrors & terr)
|
|||||||
if (bscanres & ERRORS)
|
if (bscanres & ERRORS)
|
||||||
return bscanres; // return on error
|
return bscanres; // return on error
|
||||||
|
|
||||||
|
if (iscanres & ERRORS)
|
||||||
|
return iscanres; // return on error
|
||||||
|
|
||||||
return scanres;
|
return scanres;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -516,6 +526,11 @@ int LaTeX::runMakeIndex(string const & f, OutputParams const & rp,
|
|||||||
tmp = subst(tmp, "$$x", xdyopts);
|
tmp = subst(tmp, "$$x", xdyopts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (contains(tmp, "$$b")) {
|
||||||
|
// advise xindy to write a log file
|
||||||
|
tmp = subst(tmp, "$$b", removeExtension(f));
|
||||||
|
}
|
||||||
|
|
||||||
LYXERR(Debug::LATEX,
|
LYXERR(Debug::LATEX,
|
||||||
"idx file has been made, running index processor ("
|
"idx file has been made, running index processor ("
|
||||||
<< tmp << ") on file " << f);
|
<< tmp << ") on file " << f);
|
||||||
@ -1510,4 +1525,42 @@ int LaTeX::scanBlgFile(DepTable & dep, TeXErrors & terr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} // namespace lyx
|
} // namespace lyx
|
||||||
|
@ -153,7 +153,9 @@ public:
|
|||||||
///
|
///
|
||||||
NONZERO_ERROR = 32768, // the command exited with nonzero status
|
NONZERO_ERROR = 32768, // the command exited with nonzero status
|
||||||
///
|
///
|
||||||
ERRORS = TEX_ERROR + LATEX_ERROR + NONZERO_ERROR + BIBTEX_ERROR,
|
INDEX_ERROR = 65536,
|
||||||
|
///
|
||||||
|
ERRORS = TEX_ERROR + LATEX_ERROR + NONZERO_ERROR + BIBTEX_ERROR + INDEX_ERROR,
|
||||||
///
|
///
|
||||||
WARNINGS = TEX_WARNING + LATEX_WARNING + PACKAGE_WARNING
|
WARNINGS = TEX_WARNING + LATEX_WARNING + PACKAGE_WARNING
|
||||||
};
|
};
|
||||||
@ -225,6 +227,9 @@ private:
|
|||||||
///
|
///
|
||||||
int scanBlgFile(DepTable & head, TeXErrors & terr);
|
int scanBlgFile(DepTable & head, TeXErrors & terr);
|
||||||
|
|
||||||
|
///
|
||||||
|
int scanIlgFile(TeXErrors & terr);
|
||||||
|
|
||||||
///
|
///
|
||||||
bool runBibTeX(std::vector<AuxInfo> const &,
|
bool runBibTeX(std::vector<AuxInfo> const &,
|
||||||
OutputParams const &, int & exit_code);
|
OutputParams const &, int & exit_code);
|
||||||
|
@ -47,9 +47,9 @@ namespace frontend {
|
|||||||
// Information
|
// Information
|
||||||
QRegExp exprInfo("^(Document Class:|LaTeX Font Info:|File:|Package:|Language:|.*> INFO - |\\(|\\\\).*$");
|
QRegExp exprInfo("^(Document Class:|LaTeX Font Info:|File:|Package:|Language:|.*> INFO - |\\(|\\\\).*$");
|
||||||
// Warnings
|
// Warnings
|
||||||
QRegExp exprWarning("^(LaTeX Warning|LaTeX Font Warning|Package [\\w\\.]+ Warning|Class \\w+ Warning|Warning--|Underfull|Overfull|.*> WARN - ).*$");
|
QRegExp exprWarning("^(## Warning|LaTeX Warning|LaTeX Font Warning|Package [\\w\\.]+ Warning|Class \\w+ Warning|Warning--|Underfull|Overfull|.*> WARN - ).*$");
|
||||||
// Errors
|
// Errors
|
||||||
QRegExp exprError("^(!|.*---line [0-9]+ of file|.*> FATAL - |.*> ERROR - |Missing character: There is no ).*$");
|
QRegExp exprError("^(ERROR: |!|.*---line [0-9]+ of file|.*> FATAL - |.*> ERROR - |Missing character: There is no ).*$");
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
Reference in New Issue
Block a user