From 7969830aa1b588dce09752db3ac5a3d780397d48 Mon Sep 17 00:00:00 2001
From: Jonathan McDowell <noodles@earth.li>
Date: Thu, 21 Oct 2004 15:56:47 +0000
Subject: [PATCH] Add links to HTML index output. (Debian bug #275227) Add
 links to get the key data and the verbose index for a key to the HTML output
 of op=index. I think this was previously removed to try to make gpg --search
 happy, but I've tested 1.2.4 with this change and it still works.

---
 keyindex.c | 38 +++++++++++++++++++++++++++++---------
 1 file changed, 29 insertions(+), 9 deletions(-)

diff --git a/keyindex.c b/keyindex.c
index 5eabd61..d6d62e0 100644
--- a/keyindex.c
+++ b/keyindex.c
@@ -221,22 +221,42 @@ int key_index(struct openpgp_publickey *keys, bool verbose, bool fingerprint,
 		}
 		
 		keyid = (get_keyid(keys) & 0xFFFFFFFF);
-		printf("pub  %5d%c/%08X %04d/%02d/%02d ",
-			length,
-			(type == 1) ? 'R' : ((type == 16) ? 'g' : 
-				((type == 17) ? 'D' : '?')),
-			(uint32_t) keyid,
-			created->tm_year + 1900,
-			created->tm_mon + 1,
-			created->tm_mday);
+
+		if (html) {
+			printf("pub  %5d%c/<a href=\"lookup?op=get&"
+				"search=%08X\">%08X</a> %04d/%02d/%02d ",
+				length,
+				(type == 1) ? 'R' : ((type == 16) ? 'g' : 
+					((type == 17) ? 'D' : '?')),
+				(uint32_t) keyid,
+				(uint32_t) keyid,
+				created->tm_year + 1900,
+				created->tm_mon + 1,
+				created->tm_mday);
+		} else {
+			printf("pub  %5d%c/%08X %04d/%02d/%02d ",
+				length,
+				(type == 1) ? 'R' : ((type == 16) ? 'g' : 
+					((type == 17) ? 'D' : '?')),
+				(uint32_t) keyid,
+				created->tm_year + 1900,
+				created->tm_mon + 1,
+				created->tm_mday);
+		}
 
 		curuid = keys->uids;
 		if (curuid != NULL && curuid->packet->tag == 13) {
 			snprintf(buf, 1023, "%.*s",
 				(int) curuid->packet->length,
 				curuid->packet->data);
-			printf("%s%s\n", 
+			if (html) {
+				printf("<a href=\"lookup?op=vindex&"
+					"search=0x%08X\">",
+					(uint32_t) keyid);
+			}
+			printf("%s%s%s\n", 
 				(html) ? txt2html(buf) : buf,
+				(html) ? "</a>" : "",
 				(keys->revocations == NULL) ? "" :
 					" *** REVOKED ***");
 			if (fingerprint) {
-- 
2.39.5