]> git.lyx.org Git - lyx.git/blobdiff - src/Chktex.cpp
Revert UI fix for two digit numbers. It actually does not work.
[lyx.git] / src / Chktex.cpp
index c88aefb2ba9a2da00fd534b5d21751700ceef08f..2db47b44c5b6968085dec793f09f11f8654293fc 100644 (file)
 #include "support/lstrings.h"
 #include "support/Systemcall.h"
 
-#include <boost/format.hpp>
-
-using std::getline;
-using std::string;
-
+using namespace std;
+using namespace lyx::support;
 
 namespace lyx {
 
-using support::changeExtension;
-using support::FileName;
-using support::makeAbsPath;
-using support::onlyFilename;
-using support::split;
-using support::Systemcall;
-
 
 Chktex::Chktex(string const & chktex, string const & f, string const & p)
                : cmd(chktex), file(f), path(p)
-{
-}
+{}
 
 
 int Chktex::run(TeXErrors &terr)
 {
-       // run bibtex
-       string log = onlyFilename(changeExtension(file, ".log"));
+       // run chktex
+       string log = onlyFileName(changeExtension(file, ".log"));
        string tmp = cmd + " -q -v0 -b0 -x " + file + " -o " + log;
        Systemcall one;
        int result = one.startscript(Systemcall::Wait, tmp);
-       if (result == 0) {
-               result = scanLogFile(terr);
-       } else {
+       // ChkTeX (as of v. 1.7.7) has the following return values:
+       // 0 = EXIT_SUCCESS : program ran successfully, nothing to report
+       // 1 = EXIT_FAILURE : program ran unsucessfully
+       // 2 = EXIT_WARNINGS : program ran successfully, only warnings to report
+       // 3 = EXIT_ERRORS : program ran successfully, errors to report
+       // We only check for EXIT_FAILURE here, since older versions of ChkTeX
+       // returned 0 also in case 2 and 3.
+       if (result == EXIT_FAILURE)
                result = -1;
-       }
+       else
+               result = scanLogFile(terr);
        return result;
 }
 
@@ -63,19 +58,15 @@ int Chktex::scanLogFile(TeXErrors & terr)
 {
        int retval = 0;
 
-       // FIXME: Find out whether onlyFilename() is really needed,
-       // or whether makeAbsPath(onlyFilename()) is a noop here
-       FileName const tmp(makeAbsPath(onlyFilename(changeExtension(file, ".log"))));
+       // FIXME: Find out whether onlyFileName() is really needed,
+       // or whether makeAbsPath(onlyFileName()) is a noop here
+       FileName const tmp(makeAbsPath(onlyFileName(changeExtension(file, ".log"))));
 
-#if USE_BOOST_FORMAT
-       boost::basic_format<char_type> msg(_("ChkTeX warning id # %1$d"));
-#else
-       docstring const msg(_("ChkTeX warning id # "));
-#endif
+       docstring const msg(_("ChkTeX warning id # %1$s"));
        docstring token;
        // FIXME UNICODE
        // We have no idea what the encoding of the error file is
-       idocfstream ifs(tmp.toFilesystemEncoding().c_str());
+       ifdocstream ifs(tmp.toFilesystemEncoding().c_str());
        while (getline(ifs, token)) {
                docstring srcfile;
                docstring line;
@@ -90,13 +81,7 @@ int Chktex::scanLogFile(TeXErrors & terr)
 
                int const lineno = convert<int>(line);
 
-#if USE_BOOST_FORMAT
-               msg % warno;
-               terr.insertError(lineno, msg.str(), warning);
-               msg.clear();
-#else
-               terr.insertError(lineno, msg + warno, warning);
-#endif
+               terr.insertError(lineno, bformat(msg, warno), warning);
 
                ++retval;
        }