]> git.lyx.org Git - lyx.git/blobdiff - src/ispell.C
unify toclevel for articles and reports/books; proper numbering of Paragraph/SubParag...
[lyx.git] / src / ispell.C
index 419623033be8fc3549d6092dbe05fb0a5eec2b70..c14e5da106d763bb97aa73205449e4f75199cdc0 100644 (file)
@@ -1,26 +1,28 @@
 /**
  * \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 "LString.h"
-#include "lyxrc.h"
-#include "language.h"
+#include "ispell.h"
+
+#include "bufferparams.h"
 #include "debug.h"
 #include "encoding.h"
-#include "ispell.h"
-#include "WordLangTuple.h"
 #include "gettext.h"
-#include "bufferparams.h"
+#include "language.h"
+#include "lyxrc.h"
+#include "WordLangTuple.h"
 
 #include "support/forkedcall.h"
-#include "support/lstrings.h"
 
 // HP-UX 11.x doesn't have this header
 #ifdef HAVE_SYS_SELECT_H
 #endif
 #include <sys/time.h>
 
-using namespace lyx::support;
+using boost::shared_ptr;
 
 #ifndef CXX_GLOBAL_CSTD
 using std::strcpy;
 using std::strlen;
 using std::strpbrk;
-using std::strstr;
 #endif
 
 using std::endl;
 using std::max;
+using std::string;
+
 
 namespace {
 
 class LaunchIspell : public lyx::support::ForkedProcess {
+       typedef lyx::support::ForkedProcess 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 lyx::support::ForkedProcess * clone() const {
-               return new LaunchIspell(*this);
+       virtual shared_ptr<ForkedProcess> clone() const {
+               return shared_ptr<ForkedProcess>(new LaunchIspell(*this));
        }
        ///
        int start();
@@ -70,7 +74,7 @@ private:
 int LaunchIspell::start()
 {
        command_ = lyxrc.isp_command;
-       return runNonBlocking();
+       return run(DontWait);
 }
 
 
@@ -369,18 +373,18 @@ enum ISpell::Result ISpell::check(WordLangTuple const & word)
 
        if (error) {
                error_ = _("Could not communicate with the spell-checker program.");
-               return UNKNOWN;
+               return UNKNOWN_WORD;
        }
 
        if (err_read) {
                error_ = buf;
-               return UNKNOWN;
+               return UNKNOWN_WORD;
        }
 
        // I think we have to check if ispell is still alive here because
        // the signal-handler could have disabled blocking on the fd
        if (!alive())
-               return UNKNOWN;
+               return UNKNOWN_WORD;
 
        switch (*buf) {
        case '*':
@@ -390,18 +394,18 @@ enum ISpell::Result ISpell::check(WordLangTuple const & word)
                res = ROOT;
                break;
        case '-':
-               res = COMPOUNDWORD;
+               res = COMPOUND_WORD;
                break;
        case '\n':
-               res = IGNORE;
+               res = IGNORED_WORD;
                break;
        case '#': // Not found, no near misses and guesses
-               res = UNKNOWN;
+               res = UNKNOWN_WORD;
                break;
        case '?': // Not found, and no near misses, but guesses (guesses are ignored)
        case '&': // Not found, but we have near misses
        {
-               res = MISSED;
+               res = SUGGESTED_WORDS;
                char * p = strpbrk(buf, ":");
                str = new char[strlen(p) + 1];
                e   = str;
@@ -409,11 +413,11 @@ enum ISpell::Result ISpell::check(WordLangTuple const & word)
                break;
        }
        default: // This shouldn't happen, but you know Murphy
-               res = UNKNOWN;
+               res = UNKNOWN_WORD;
        }
 
        *buf = 0;
-       if (res != IGNORE) {
+       if (res != IGNORED_WORD) {
                /* wait for ispell to finish */
                while (*buf!= '\n')
                        fgets(buf, 255, in);