--- a/src/index/indexer.cpp
+++ b/src/index/indexer.cpp
@@ -1,5 +1,5 @@
#ifndef lint
-static char rcsid[] = "@(#$Id: indexer.cpp,v 1.35 2006-09-13 13:53:35 dockes Exp $ (C) 2004 J.F.Dockes";
+static char rcsid[] = "@(#$Id: indexer.cpp,v 1.36 2006-10-11 14:16:25 dockes Exp $ (C) 2004 J.F.Dockes";
#endif
/*
* This program is free software; you can redistribute it and/or modify
@@ -17,6 +17,10 @@
* Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifdef HAVE_CONFIG_H
+#include "autoconfig.h"
+#endif
+
#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
@@ -42,6 +46,10 @@
#include "smallut.h"
#include "wipedir.h"
+#ifdef RCL_USE_ASPELL
+#include "rclaspell.h"
+#endif
+
#ifndef NO_NAMESPACES
using namespace std;
#endif /* NO_NAMESPACES */
@@ -137,6 +145,8 @@
}
}
+ createAspellDict();
+
// The close would be done in our destructor, but we want status here
if (m_updater) {
m_updater->status.phase = DbIxStatus::DBIXS_CLOSING;
@@ -169,6 +179,31 @@
if (!init())
return false;
return m_db.createStemDb(lang);
+}
+
+// The language for the aspell dictionary is handled internally by the aspell
+// module, either from a configuration variable or the NLS environment.
+bool DbIndexer::createAspellDict()
+{
+ LOGDEB2(("DbIndexer::createAspellDict()\n"));
+#ifdef RCL_USE_ASPELL
+ if (!init())
+ return false;
+ Aspell aspell(m_config);
+ string reason;
+ if (!aspell.init(reason)) {
+ LOGERR(("DbIndexer::createAspellDict: aspell init failed: %s\n",
+ reason.c_str()));
+ return false;
+ }
+ LOGDEB(("DbIndexer::createAspellDict: creating dictionary\n"));
+ if (!aspell.buildDict(m_db, reason)) {
+ LOGERR(("DbIndexer::createAspellDict: aspell buildDict failed: %s\n",
+ reason.c_str()));
+ return false;
+ }
+#endif
+ return true;
}
/**