From f3143629476bae20f5310bbc0a59fe735b5d245d Mon Sep 17 00:00:00 2001
From: Jonathan McDowell <noodles@earth.li>
Date: Sat, 23 Apr 2011 23:45:16 +0100
Subject: [PATCH] Change to using void * for character function content
 parameter

  We were passing unsigned char * as the parameter to all of the
  character fetching/putting functions. Use void * instead so that
  we can pass other types of data without needlessly having to cast.
---
 armor.c     | 16 ++++++++--------
 armor.h     |  4 ++--
 charfuncs.c | 12 ++++++------
 charfuncs.h | 12 ++++++------
 keydb_pg.c  |  4 ++--
 parsekey.c  |  4 ++--
 parsekey.h  |  4 ++--
 sendsync.c  |  4 ++--
 8 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/armor.c b/armor.c
index a192f77..397118c 100644
--- a/armor.c
+++ b/armor.c
@@ -77,7 +77,7 @@ struct armor_context {
 	int curoctet;
 	int count;
 	long crc24;
-	int (*putchar_func)(void *ctx, size_t count, unsigned char *c);
+	int (*putchar_func)(void *ctx, size_t count, void *c);
 	void *ctx;
 };
 
@@ -184,14 +184,14 @@ static int armor_putchar_int(void *ctx, unsigned char c)
 }
 
 
-static int armor_putchar(void *ctx, size_t count, unsigned char *c)
+static int armor_putchar(void *ctx, size_t count, void *c)
 {
 	int i;
 
 	log_assert(c != NULL);
 
 	for (i = 0; i < count; i++) {
-		armor_putchar_int(ctx, c[i]);
+		armor_putchar_int(ctx, ((char *) c)[i]);
 	}
 	
 	return 0;
@@ -210,7 +210,7 @@ struct dearmor_context {
 	int curoctet;
 	int count;
 	long crc24;
-	int (*getchar_func)(void *ctx, size_t count, unsigned char *c);
+	int (*getchar_func)(void *ctx, size_t count, void *c);
 	void *ctx;
 };
 
@@ -291,12 +291,12 @@ static int dearmor_getchar(void *ctx, unsigned char *c)
 	return (tmpc == 64);
 }
 
-static int dearmor_getchar_c(void *ctx, size_t count, unsigned char *c)
+static int dearmor_getchar_c(void *ctx, size_t count, void *c)
 {
 	int i, rc = 0;
 
 	for (i = 0; i < count && rc == 0; i++) {
-		rc = dearmor_getchar(ctx, &c[i]);
+		rc = dearmor_getchar(ctx, &((unsigned char *) c)[i]);
 	}
 
 	return rc;
@@ -312,7 +312,7 @@ static int dearmor_getchar_c(void *ctx, size_t count, unsigned char *c)
  *	using putchar_func.
  */
 int armor_openpgp_stream(int (*putchar_func)(void *ctx, size_t count,
-						unsigned char *c),
+						void *c),
 				void *ctx,
 				struct openpgp_packet_list *packets)
 {
@@ -352,7 +352,7 @@ int armor_openpgp_stream(int (*putchar_func)(void *ctx, size_t count,
  *	packets.
  */
 int dearmor_openpgp_stream(int (*getchar_func)(void *ctx, size_t count,
-						unsigned char *c),
+						void *c),
 				void *ctx,
 				struct openpgp_packet_list **packets)
 {
diff --git a/armor.h b/armor.h
index 85ac6a6..8f5dc35 100644
--- a/armor.h
+++ b/armor.h
@@ -21,7 +21,7 @@
  *	using putchar_func.
  */
 int armor_openpgp_stream(int (*putchar_func)(void *ctx, size_t count,
-						unsigned char *c),
+						void *c),
 				void *ctx,
 				struct openpgp_packet_list *packets);
 
@@ -36,7 +36,7 @@ int armor_openpgp_stream(int (*putchar_func)(void *ctx, size_t count,
  *	packets.
  */
 int dearmor_openpgp_stream(int (*getchar_func)(void *ctx, size_t count,
-					unsigned char *c),
+					void *c),
 				void *ctx,
 				struct openpgp_packet_list **packets);
 
diff --git a/charfuncs.c b/charfuncs.c
index 778df1c..fea0a99 100644
--- a/charfuncs.c
+++ b/charfuncs.c
@@ -20,7 +20,7 @@
  *	@count: The number of characters to get from the buffer.
  *	@c: Where to put the characters retrieved.
  */
-int buffer_fetchchar(void *ctx, size_t count, unsigned char *c)
+int buffer_fetchchar(void *ctx, size_t count, void *c)
 {
 	struct buffer_ctx *buf = NULL;
 	
@@ -42,7 +42,7 @@ int buffer_fetchchar(void *ctx, size_t count, unsigned char *c)
  *	fill it then we double the size of the current buffer and then add the
  *	rest.
  */
-int buffer_putchar(void *ctx, size_t count, unsigned char *c)
+int buffer_putchar(void *ctx, size_t count, void *c)
 {
 	struct buffer_ctx *buf = NULL;
 	size_t newsize = 0;
@@ -66,7 +66,7 @@ int buffer_putchar(void *ctx, size_t count, unsigned char *c)
 /**
  *	file_fetchchar - Fetches a char from a file.
  */
-int file_fetchchar(void *fd, size_t count, unsigned char *c)
+int file_fetchchar(void *fd, size_t count, void *c)
 {
 	return !(read( *(int *) fd, c, count));
 }
@@ -74,7 +74,7 @@ int file_fetchchar(void *fd, size_t count, unsigned char *c)
 /**
  *	file_putchar - Puts a char to a file.
  */
-int file_putchar(void *fd, size_t count, unsigned char *c)
+int file_putchar(void *fd, size_t count, void *c)
 {
 	return !(write( *(int *) fd, c, count));
 }
@@ -82,7 +82,7 @@ int file_putchar(void *fd, size_t count, unsigned char *c)
 /**
  *	stdin_getchar - Gets a char from stdin.
  */
-int stdin_getchar(void *ctx, size_t count, unsigned char *c)
+int stdin_getchar(void *ctx, size_t count, void *c)
 {
 	return (fread(c, 1, count, stdin) != count);
 }
@@ -90,7 +90,7 @@ int stdin_getchar(void *ctx, size_t count, unsigned char *c)
 /**
  *	stdout_putchar - Puts a char to stdout.
  */
-int stdout_putchar(void *ctx, size_t count, unsigned char *c)
+int stdout_putchar(void *ctx, size_t count, void *c)
 {
 	return (fwrite(c, 1, count, stdout) != count);
 }
diff --git a/charfuncs.h b/charfuncs.h
index ad460e4..b09edf3 100644
--- a/charfuncs.h
+++ b/charfuncs.h
@@ -29,7 +29,7 @@ struct buffer_ctx {
  *	@count: The number of characters to get from the buffer.
  *	@c: Where to put the characters retrieved.
  */
-int buffer_fetchchar(void *ctx, size_t count, unsigned char *c);
+int buffer_fetchchar(void *ctx, size_t count, void *c);
 
 /**
  *	buffer_putchar - Puts a char to a buffer.
@@ -41,26 +41,26 @@ int buffer_fetchchar(void *ctx, size_t count, unsigned char *c);
  *	fill it then we double the size of the current buffer and then add the
  *	rest.
  */
-int buffer_putchar(void *ctx, size_t count, unsigned char *c);
+int buffer_putchar(void *ctx, size_t count, void *c);
 
 /**
  *	file_fetchchar - Fetches a char from a file.
  */
-int file_fetchchar(void *fd, size_t count, unsigned char *c);
+int file_fetchchar(void *fd, size_t count, void *c);
 
 /**
  *	file_putchar - Puts a char to a file.
  */
-int file_putchar(void *fd, size_t count, unsigned char *c);
+int file_putchar(void *fd, size_t count, void *c);
 
 /**
  *	stdin_getchar - Gets a char from stdin.
  */
-int stdin_getchar(void *ctx, size_t count, unsigned char *c);
+int stdin_getchar(void *ctx, size_t count, void *c);
 
 /**
  *	stdout_putchar - Puts a char to stdout.
  */
-int stdout_putchar(void *ctx, size_t count, unsigned char *c);
+int stdout_putchar(void *ctx, size_t count, void *c);
 
 #endif /* __CHARFUNCS_H__ */
diff --git a/keydb_pg.c b/keydb_pg.c
index e71ddee..0771317 100644
--- a/keydb_pg.c
+++ b/keydb_pg.c
@@ -36,7 +36,7 @@ static PGconn *dbconn = NULL;
 /**
  *	keydb_fetchchar - Fetches a char from a file.
  */
-static int keydb_fetchchar(void *fd, size_t count, unsigned char *c)
+static int keydb_fetchchar(void *fd, size_t count, void *c)
 {
 	return (!lo_read(dbconn, *(int *) fd, (char *) c, count));
 }
@@ -44,7 +44,7 @@ static int keydb_fetchchar(void *fd, size_t count, unsigned char *c)
 /**
  *	keydb_putchar - Puts a char to a file.
  */
-static int keydb_putchar(void *fd, size_t count, unsigned char *c)
+static int keydb_putchar(void *fd, size_t count, void *c)
 {
 	return !(lo_write(dbconn, *(int *) fd, (char *) c, count));
 }
diff --git a/parsekey.c b/parsekey.c
index a0c0311..2d95106 100644
--- a/parsekey.c
+++ b/parsekey.c
@@ -168,7 +168,7 @@ int debug_packet(struct openpgp_packet *packet)
  *	ready for parsing as a public key or whatever.
  */
 int read_openpgp_stream(int (*getchar_func)(void *ctx, size_t count,
-				unsigned char *c),
+				void *c),
 				void *ctx,
 				struct openpgp_packet_list **packets,
 				int maxnum)
@@ -322,7 +322,7 @@ int read_openpgp_stream(int (*getchar_func)(void *ctx, size_t count,
  *	packet stream from a linked list of packets.
  */
 int write_openpgp_stream(int (*putchar_func)(void *ctx, size_t count,
-						unsigned char *c),
+						void *c),
 				void *ctx,
 				struct openpgp_packet_list *packets)
 {
diff --git a/parsekey.h b/parsekey.h
index 1778445..8718d1c 100644
--- a/parsekey.h
+++ b/parsekey.h
@@ -49,7 +49,7 @@ int debug_packet(struct openpgp_packet *packet);
  *	none of the other packets of the key will be read.
  */
 int read_openpgp_stream(int (*getchar_func)(void *ctx, size_t count,
-				unsigned char *c),
+				void *c),
 				void *ctx,
 				struct openpgp_packet_list **packets,
 				int maxnum);
@@ -64,7 +64,7 @@ int read_openpgp_stream(int (*getchar_func)(void *ctx, size_t count,
  *	packet stream from a linked list of packets.
  */
 int write_openpgp_stream(int (*putchar_func)(void *ctx, size_t count,
-						unsigned char *c),
+						void *c),
 				void *ctx,
 				struct openpgp_packet_list *packets);
 
diff --git a/sendsync.c b/sendsync.c
index ffcf705..ace6b0d 100644
--- a/sendsync.c
+++ b/sendsync.c
@@ -19,12 +19,12 @@
 #include "parsekey.h"
 #include "sendsync.h"
 
-int fd_putchar(void *ctx, size_t count, unsigned char *c)
+int fd_putchar(void *ctx, size_t count, void *c)
 {
 	int i;
 
 	for (i = 0; i < count; i++) {
-		fputc(c[i], ctx);
+		fputc(((char *) c )[i], ctx);
 	}
 	return 0;
 }
-- 
2.39.5