X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fispell.h;h=e33d848cb7ee915587db37705882c6fc294d5228;hb=17cc48720a11a3ed65d9de29d5e7a2d29f9a41f0;hp=477cef9ae0ce8189b652a3079c5b579c0d834a74;hpb=7c98b3bd37f41ad05e9770d66774f999fbd17ff8;p=lyx.git diff --git a/src/ispell.h b/src/ispell.h index 477cef9ae0..e33d848cb7 100644 --- a/src/ispell.h +++ b/src/ispell.h @@ -1,61 +1,80 @@ // -*- C++ -*- /** - * \file sp_ispell.h - * Copyright 2002 the LyX Team - * Read the file COPYING + * \file ispell.h + * 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 { public: - ISpell(BufferParams const & params, string const & lang); + ISpell(BufferParams const & params, std::string const & lang); ~ISpell(); /// 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(string const & word); - - /// finish this spellchecker instance - virtual void close(); + virtual enum Result check(WordLangTuple const & word); /// insert the given word into the personal dictionary - virtual void insert(string const & word); + virtual void insert(WordLangTuple const & word); /// accept the given word temporarily - virtual void accept(string const & word); + virtual void accept(WordLangTuple const & word); - /// return the next near miss after a MISSED result - virtual string const nextMiss(); + /// return the next near miss after a SUGGESTED_WORDS result + virtual std::string const nextMiss(); - /// give an error message on messy exit - virtual string const error(); + /// give an error message on messy exit + virtual std::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; + std::string error_; + + boost::scoped_ptr child_; // vileness below ... please FIXME /// str ???