From f18acf888a15b69e47f2968f08c055f1e06b7d04 Mon Sep 17 00:00:00 2001
From: Jonathan McDowell <noodles@earth.li>
Date: Mon, 31 May 2004 23:48:21 +0000
Subject: [PATCH] cscvs to tla changeset 128 Author: noodles Date: 2004/05/27
 03:33:24 Move makewordlist to its own file so we can use it elsewhere
 (dsilvers).

---
 Makefile    |  8 ++++----
 keydb_db3.c | 53 ++---------------------------------------------------
 2 files changed, 6 insertions(+), 55 deletions(-)

diff --git a/Makefile b/Makefile
index c980e4c..733daf4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 #
 # Makefile for onak.
 #
-# $Id: Makefile,v 1.19 2004/05/27 01:25:37 noodles Exp $
+# $Id: Makefile,v 1.20 2004/05/27 03:33:24 noodles Exp $
 #
 
 CC = gcc
@@ -10,7 +10,7 @@ CFLAGS += -Wall -pedantic -g -I/usr/local/include
 # Uncomment to enable profiling.
 #LDFLAGS += -pg
 # Can be "pg" for Postgresql, "file" for flat files or "db2" for pksd db2 style.
-DBTYPE = db3
+DBTYPE = fs
 # If using DBTYPE of "file" then comment the following line out.
 #LIBS = -L/usr/local/lib -lpq
 LIBS = -L/usr/local/lib -ldb3
@@ -18,11 +18,11 @@ LIBS = -L/usr/local/lib -ldb3
 PROGS = add lookup gpgwww onak splitkeys
 CORE_OBJS = armor.o charfuncs.o decodekey.o getcgi.o hash.o keydb_$(DBTYPE).o \
 	keyid.o keyindex.o ll.o mem.o onak-conf.o parsekey.o sha.o md5.o \
-	log.o photoid.o
+	log.o photoid.o wordlist.o
 OBJS = merge.o stats.o sendsync.o $(CORE_OBJS)
 SRCS = armor.c parsekey.c merge.c keyid.c md5.c sha.c main.c getcgi.c stats.c \
 	keyindex.c mem.c lookup.c add.c keydb_$(DBTYPE).c ll.c hash.c \
-	gpgwww.c onak-conf.c charfuncs.c sendsync.c log.c photoid.c
+	gpgwww.c onak-conf.c charfuncs.c sendsync.c log.c photoid.c wordlist.o
 
 all: .depend $(PROGS) testparse maxpath sixdegrees splitkeys
 
diff --git a/keydb_db3.c b/keydb_db3.c
index e25b94e..464dcc9 100644
--- a/keydb_db3.c
+++ b/keydb_db3.c
@@ -5,7 +5,7 @@
  *
  * Copyright 2002 Project Purple
  *
- * $Id: keydb_db3.c,v 1.25 2004/05/26 17:46:21 noodles Exp $
+ * $Id: keydb_db3.c,v 1.26 2004/05/27 03:33:24 noodles Exp $
  */
 
 #include <assert.h>
@@ -30,6 +30,7 @@
 #include "log.h"
 #include "onak-conf.h"
 #include "parsekey.h"
+#include "wordlist.h"
 
 /**
  *	dbenv - our database environment.
@@ -65,56 +66,6 @@ DB *keydb(uint64_t keyid)
 	return(dbconns[keytrun % numdbs]);
 }
 
-/**
- *	makewordlist - Takes a string and splits it into a set of unique words.
- *	@wordlist: The current word list.
- *	@words: The string to split and add.
- *
- *	We take words and split it on non alpha numeric characters. These get
- *	added to the word list if they're not already present. If the wordlist
- *	is NULL then we start a new list, otherwise it's search for already
- *	added words. Note that words is modified in the process of scanning.
- *
- *	Returns the new word list.
- */
-struct ll *makewordlist(struct ll *wordlist, char *word)
-{
-	char *start = NULL;
-	char *end = NULL;
-
-	/*
-	 * Walk through the words string, spliting on non alphanumerics and
-	 * then checking if the word already exists in the list. If not then
-	 * we add it.
-	 */
-	end = word;
-	while (end != NULL && *end != 0) {
-		start = end;
-		while (*start != 0 && !isalnum(*start)) {
-			start++;
-		}
-		end = start;
-		while (*end != 0 && isalnum(*end)) {
-			*end = tolower(*end);
-			end++;
-		}
-		if (end - start > 1) {
-			if (*end != 0) {
-				*end = 0;
-				end++;
-			}
-			
-			if (llfind(wordlist, start,
-					strcmp) == NULL) {
-				wordlist = lladd(wordlist,
-						start);
-			}
-		}
-	}
-
-	return wordlist;
-}
-
 /**
  *	initdb - Initialize the key database.
  *
-- 
2.39.5