X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fispell.h;h=d8a3c9ca138951a08b45ef8fe2b1d53d153ae287;hb=24f8676130d1e0769db394b7142dae7eeb1d955e;hp=2e89f00fbb91aa72d67994bb18ee520b3b0796bb;hpb=02e94723740cea9a28f90f406c4cab55d7f6b5b9;p=lyx.git diff --git a/src/ispell.h b/src/ispell.h index 2e89f00fbb..d8a3c9ca13 100644 --- a/src/ispell.h +++ b/src/ispell.h @@ -1,20 +1,30 @@ // -*- C++ -*- /** * \file ispell.h - * 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 + * + * Full author contact details are available in file CREDITS. */ #ifndef SP_ISPELL_H #define SP_ISPELL_H -#include - #include "SpellBase.h" +#include + +#include + class BufferParams; +namespace lyx { +namespace support { +class ForkedProcess; +} +} /// i/a spell process-based spellchecker class ISpell : public SpellBase { @@ -26,15 +36,9 @@ public: /// return true if the spellchecker instance still exists virtual bool alive(); - /// clean up on messy exit - virtual void cleanUp(); - /// check the given word and return the result virtual enum Result check(WordLangTuple const & word); - /// finish this spellchecker instance - virtual void close(); - /// insert the given word into the personal dictionary virtual void insert(WordLangTuple const & word); @@ -44,18 +48,33 @@ public: /// return the next near miss after a MISSED result virtual string const nextMiss(); - /// give an error message on messy exit + /// give an error message on messy exit virtual string const error(); private: + /// read some data. Returns true on an error. Sets err_read + /// to true if the data was from stderr. + bool select(bool & err_read); + /// instream to communicate with ispell FILE * in; /// outstream to communicate with ispell FILE * out; + /// errstream for ispell + FILE * inerr; + + /// pipe fds + int pipein[2]; + int pipeout[2]; + int pipeerr[2]; + + /// buffer for reading + char buf[BUFSIZ]; + /// spell error - char const * error_; - /// the fd of the outgoing pipe - int isp_fd; + string error_; + + boost::scoped_ptr child_; // vileness below ... please FIXME /// str ???