/**
* \file ispell.C
- * Copyright 2002 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
* \author unknown
- * \author John Levon <levon@movementarian.org>
+ * \author Angus Leeming
+ * \author John Levon
+ *
+ * Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "ispell.h"
#include "WordLangTuple.h"
#include "gettext.h"
+#include "bufferparams.h"
#include "support/forkedcall.h"
#include "support/lstrings.h"
+// HP-UX 11.x doesn't have this header
+#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
+#endif
+#include <sys/time.h>
+
+using namespace lyx::support;
#ifndef CXX_GLOBAL_CSTD
using std::strcpy;
namespace {
-class LaunchIspell : public ForkedProcess {
+class LaunchIspell : public lyx::support::ForkedProcess {
public:
///
LaunchIspell(BufferParams const & p, string const & l,
int * in, int * out, int * err)
: params(p), lang(l), pipein(in), pipeout(out), pipeerr(err) {}
///
- virtual ForkedProcess * clone() const {
+ virtual lyx::support::ForkedProcess * clone() const {
return new LaunchIspell(*this);
}
///
int LaunchIspell::start()
{
- command_ = "ispell";
+ command_ = lyxrc.isp_command;
return runNonBlocking();
}
// static due to the setvbuf. Ugly.
static char o_buf[BUFSIZ];
-
+
// We need to throw an exception not do this
pipein[0] = pipein[1] = pipeout[0] = pipeout[1]
= pipeerr[0] = pipeerr[1] = -1;
child_.reset(li);
if (li->start() == -1) {
error_ = _("Could not create an ispell process.\nYou may not have "
- " the right languages installed.");
+ "the right languages installed.");
child_.reset(0);
return;
}
bool error = select(err_read);
if (error) {
- error_ = _("Could not communicate with the spell-checker program");
+ error_ = _("Could not communicate with the spell-checker program.");
return UNKNOWN;
}