/* This file is part of
- * ======================================================
+ * ======================================================
*
* LyX, The Document Processor
* Copyright 1995 Matthias Ettrich
- * Copyright 1995-1999 The LyX Team.
+ * Copyright 1995-2000 The LyX Team.
*
* This file is Copyright 1997-1998
* Asger Alstrup
*
- *======================================================
+ * ======================================================
*/
#include <config.h>
-#include <cstdlib> // atoi
+#include <fstream>
#ifdef __GNUG__
#pragma implementation
#include "debug.h"
#include "support/syscall.h"
#include "support/syscontr.h"
-#include "pathstack.h"
+#include "support/path.h"
#include "gettext.h"
+using std::ifstream;
+using std::getline;
+
/*
* CLASS Chktex
*/
int Chktex::run(TeXErrors &terr)
{
// run bibtex
- string log = ChangeExtension(file, ".log", true);
+ string log = OnlyFilename(ChangeExtension(file, ".log"));
string tmp = cmd + " -q -v0 -b0 -x " + file + " -o " + log;
Systemcalls one;
int result= one.startscript(Systemcalls::System, tmp);
}
-int Chktex::scanLogFile(TeXErrors &terr)
+int Chktex::scanLogFile(TeXErrors & terr)
{
string token;
int retval = 0;
- LyXLex lex(0, 0);
-
- string tmp = ChangeExtension(file, ".log", true);
-
- if (!lex.setFile(tmp)) {
- // Unable to open file. Return at once
- return -1;
- }
-
- while (lex.IsOK()) {
- if (lex.EatLine())
- token = lex.GetString();
- else // blank line in the file being read
- continue;
+ string tmp = OnlyFilename(ChangeExtension(file, ".log"));
+ ifstream ifs(tmp.c_str());
+ while (getline(ifs, token)) {
string srcfile, line, pos, warno, warning;
- token=split(token, srcfile, ':');
- token=split(token, line, ':');
- token=split(token, pos, ':');
- token=split(token, warno, ':');
- token=split(token, warning, ':');
+ token = split(token, srcfile, ':');
+ token = split(token, line, ':');
+ token = split(token, pos, ':');
+ token = split(token, warno, ':');
+ token = split(token, warning, ':');
- int lineno = atoi(line.c_str());
+ int lineno = lyx::atoi(line);
warno = _("ChkTeX warning id #") + warno;
terr.insertError(lineno, warno, warning);
- retval++;
+ ++retval;
}
return retval;
}