summaryrefslogtreecommitdiffstats
path: root/kmail/kmdict.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kmail/kmdict.cpp')
-rw-r--r--kmail/kmdict.cpp117
1 files changed, 0 insertions, 117 deletions
diff --git a/kmail/kmdict.cpp b/kmail/kmdict.cpp
deleted file mode 100644
index 0ad9367be..000000000
--- a/kmail/kmdict.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/* simple hash table for kmail. inspired by TQDict */
-/* Author: Ronen Tzur <rtzur@shani.net> */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "kmdict.h"
-#include "kmglobal.h"
-#include <kdebug.h>
-
-#include <string.h>
-//-----------------------------------------------------------------------------
-
-KMDict::KMDict( int size )
-{
- init( ( int ) KMail::nextPrime( size ) );
- //kdDebug( 5006 ) << "KMMDict::KMDict Size: " << mSize << endl;
-}
-
-//-----------------------------------------------------------------------------
-
-KMDict::~KMDict()
-{
- clear();
-}
-
-//-----------------------------------------------------------------------------
-
-void KMDict::init(int size)
-{
- mSize = size;
- mVecs = new KMDictItem *[mSize];
- memset(mVecs, 0, mSize * sizeof(KMDictItem *));
-}
-
-//-----------------------------------------------------------------------------
-
-void KMDict::clear()
-{
- if (!mVecs)
- return;
- for (int i = 0; i < mSize; i++) {
- KMDictItem *item = mVecs[i];
- while (item) {
- KMDictItem *nextItem = item->next;
- delete item;
- item = nextItem;
- }
- }
- delete [] mVecs;
- mVecs = 0;
-}
-
-//-----------------------------------------------------------------------------
-
-void KMDict::replace( long key, KMDictItem *item )
-{
- insert( key, item );
- removeFollowing( item, key ); // remove other items with same key
-}
-
-//-----------------------------------------------------------------------------
-
-
-void KMDict::insert( long key, KMDictItem *item )
-{
- item->key = key;
- int idx = (unsigned long)key % mSize; // insert in
- item->next = mVecs[idx]; // appropriate
- mVecs[idx] = item; // column
-}
-
-//-----------------------------------------------------------------------------
-
-void KMDict::remove(long key)
-{
- int idx = (unsigned long)key % mSize;
- KMDictItem *item = mVecs[idx];
-
- if (item) {
- if (item->key == key) { // if first in the column
- mVecs[idx] = item->next;
- delete item;
- } else
- removeFollowing(item, key); // if deep in the column
- }
-}
-
-//-----------------------------------------------------------------------------
-
-void KMDict::removeFollowing(KMDictItem *item, long key)
-{
- while (item) {
- KMDictItem *itemNext = item->next;
- if (itemNext && itemNext->key == key) {
- KMDictItem *itemNextNext = itemNext->next;
- delete itemNext;
- item->next = itemNextNext;
- } else
- item = itemNext;
- }
-}
-
-//-----------------------------------------------------------------------------
-
-KMDictItem *KMDict::find(long key)
-{
- int idx = (unsigned long)key % mSize;
- KMDictItem *item = mVecs[idx];
- while (item) {
- if (item->key == key)
- break;
- item = item->next;
- }
- return item;
-}