From 7832417cd58ad0abc5745fa4ac256c7442fd3f9a Mon Sep 17 00:00:00 2001
From: Jonathan McDowell <noodles@earth.li>
Date: Mon, 31 May 2004 23:48:27 +0000
Subject: [PATCH 1/1] cscvs to tla changeset 135 Author: noodles Date:
 2004/05/28 02:55:49 Fix makewordlistfromkey allocation of word list
 (dsilvers).

---
 keydb_fs.c |  4 +---
 wordlist.c | 15 +++++++++++----
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/keydb_fs.c b/keydb_fs.c
index 7e739d8..2305808 100644
--- a/keydb_fs.c
+++ b/keydb_fs.c
@@ -5,7 +5,7 @@
  *
  * Copyright 2004 Daniel Silverstone and Project Purple
  *
- * $Id: keydb_fs.c,v 1.1 2004/05/27 03:37:58 noodles Exp $
+ * $Id: keydb_fs.c,v 1.2 2004/05/28 02:55:49 noodles Exp $
  */
 
 #include <sys/types.h>
@@ -279,8 +279,6 @@ int store_key(struct openpgp_publickey *publickey, bool intrans,
 			wl = wl->next;
 		}
 
-
-
 		llfree(wordlist, NULL);
 	}
 
diff --git a/wordlist.c b/wordlist.c
index 0a9a836..173cc56 100644
--- a/wordlist.c
+++ b/wordlist.c
@@ -5,7 +5,7 @@
  *
  * Copyright 2004 Project Purple
  *
- * $Id: wordlist.c,v 1.1 2004/05/27 03:34:35 noodles Exp $
+ * $Id: wordlist.c,v 1.2 2004/05/28 02:55:49 noodles Exp $
  */
 
 #include <ctype.h>
@@ -80,12 +80,19 @@ struct ll *makewordlist(struct ll *wordlist, char *word)
 struct ll *makewordlistfromkey(struct ll *wordlist,
 			       struct openpgp_publickey *key)
 {
-	char **uids;
-	int i;
+	char      **uids;
+	int         i;
+	struct ll  *words = NULL;
+	struct ll  *wl = NULL;
 
 	uids = keyuids(key, NULL);
 	for (i = 0; uids[i] != NULL; ++i) {
-		wordlist = makewordlist(wordlist, uids[i]);
+		words = makewordlist(wordlist, uids[i]);
+		for (wl = words; wl->next; wl = wl->next) {
+			if (llfind(wordlist, wl->object, strcmp) == NULL) {
+				wordlist = lladd(wordlist, strdup(wl->object));
+			}
+		}
 		free(uids[i]);
 		uids[i] = NULL;
 	}
-- 
2.39.5