lyx_mirror/src/Thesaurus.C
Lars Gullik Bjønnes 8283e978f8 ws cleanup
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3803 a592a061-630c-0410-9148-cb99ea01b6c8
2002-03-21 17:27:08 +00:00

90 lines
1.2 KiB
C

/**
* \file Thesaurus.C
* Copyright 2001 the LyX Team
* Read the file COPYING
*
* \author John Levon
*/
#include <config.h>
#include "Thesaurus.h"
#ifdef HAVE_LIBAIKSAURUS
#include <algorithm>
using std::sort;
Thesaurus::Thesaurus()
{
aik_ = new Aiksaurus;
}
Thesaurus::~Thesaurus()
{
delete aik_;
}
Thesaurus::Meanings Thesaurus::lookup(string const & text)
{
Meanings meanings;
if (!aik_->find(text.c_str()))
return meanings;
// weird api, but ...
int prev_meaning = -1;
int cur_meaning;
string meaning;
// correct, returns "" at the end
string ret = aik_->next(cur_meaning);
while (!ret.empty()) {
if (cur_meaning != prev_meaning) {
meaning = ret;
ret = aik_->next(cur_meaning);
prev_meaning = cur_meaning;
} else {
if (ret != text) {
meanings[meaning].push_back(ret);
}
}
ret = aik_->next(cur_meaning);
}
for (Meanings::iterator it = meanings.begin();
it != meanings.end(); ++it) {
sort(it->second.begin(), it->second.end());
}
return meanings;
}
#else
Thesaurus::Thesaurus()
{
}
Thesaurus::~Thesaurus()
{
}
Thesaurus::Meanings Thesaurus::lookup(string const &)
{
return Meanings();
}
#endif // HAVE_LIBAIKSAURUS
// Global instance
Thesaurus thesaurus;