diff src/lib-mail/message-body-search.c @ 898:0d5be52d7131 HEAD

Use unsigned char* when accessing non-NUL terminating strings. Compiler warnings would then notify about accidentally passing them to functions which require them NUL-terminated. Changed a few functions to use void* to avoid unneeded casting.
author Timo Sirainen <tss@iki.fi>
date Sat, 04 Jan 2003 19:26:29 +0200
parents 21ffcce83c70
children fd8888f6f037
line wrap: on
line diff
--- a/src/lib-mail/message-body-search.c	Sat Jan 04 15:22:29 2003 +0200
+++ b/src/lib-mail/message-body-search.c	Sat Jan 04 19:26:29 2003 +0200
@@ -45,7 +45,7 @@
 	unsigned int found:1;
 } PartSearchContext;
 
-static void parse_content_type(const char *value, size_t value_len,
+static void parse_content_type(const unsigned char *value, size_t value_len,
 			       void *context)
 {
 	PartSearchContext *ctx = context;
@@ -58,38 +58,39 @@
 	}
 }
 
-static void parse_content_type_param(const char *name, size_t name_len,
-				     const char *value, size_t value_len,
-				     int value_quoted, void *context)
+static void
+parse_content_type_param(const unsigned char *name, size_t name_len,
+			 const unsigned char *value, size_t value_len,
+			 int value_quoted, void *context)
 {
 	PartSearchContext *ctx = context;
 
-	if (name_len == 7 && strncasecmp(name, "charset", 7) == 0 &&
+	if (name_len == 7 && memcasecmp(name, "charset", 7) == 0 &&
 	    ctx->content_charset == NULL) {
 		ctx->content_charset = i_strndup(value, value_len);
 		if (value_quoted) str_unescape(ctx->content_charset);
 	}
 }
 
-static void parse_content_encoding(const char *value, size_t value_len,
+static void parse_content_encoding(const unsigned char *value, size_t value_len,
 				   void *context)
 {
 	PartSearchContext *ctx = context;
 
 	switch (value_len) {
 	case 4:
-		if (strncasecmp(value, "7bit", 4) != 0 &&
-		    strncasecmp(value, "8bit", 4) != 0)
+		if (memcasecmp(value, "7bit", 4) != 0 &&
+		    memcasecmp(value, "8bit", 4) != 0)
 			ctx->content_unknown = TRUE;
 		break;
 	case 6:
-		if (strncasecmp(value, "base64", 6) == 0)
+		if (memcasecmp(value, "base64", 6) == 0)
 			ctx->content_base64 = TRUE;
-		else if (strncasecmp(value, "binary", 6) != 0)
+		else if (memcasecmp(value, "binary", 6) != 0)
 			ctx->content_unknown = TRUE;
 		break;
 	case 16:
-		if (strncasecmp(value, "quoted-printable", 16) == 0)
+		if (memcasecmp(value, "quoted-printable", 16) == 0)
 			ctx->content_qp = TRUE;
 		else
 			ctx->content_unknown = TRUE;
@@ -101,8 +102,9 @@
 }
 
 static void header_find(MessagePart *part __attr_unused__,
-			const char *name, size_t name_len,
-			const char *value, size_t value_len, void *context)
+			const unsigned char *name, size_t name_len,
+			const unsigned char *value, size_t value_len,
+			void *context)
 {
 	PartSearchContext *ctx = context;
 
@@ -114,13 +116,13 @@
 						   ctx->hdr_search_ctx);
 	}
 
-	if (name_len == 12 && strncasecmp(name, "Content-Type", 12) == 0) {
+	if (name_len == 12 && memcasecmp(name, "Content-Type", 12) == 0) {
 		message_content_parse_header(value, value_len,
 					     parse_content_type,
 					     parse_content_type_param,
 					     ctx);
 	} else if (name_len == 25 &&
-		   strncasecmp(name, "Content-Transfer-Encoding", 25) == 0) {
+		   memcasecmp(name, "Content-Transfer-Encoding", 25) == 0) {
 		message_content_parse_header(value, value_len,
 					     parse_content_encoding,
 					     NULL, ctx);
@@ -344,7 +346,8 @@
 
 	/* get the key uppercased */
 	key = charset_to_ucase_utf8_string(charset, unknown_charset,
-					   key, strlen(key), &key_len);
+					   (const unsigned char *) key,
+					   strlen(key), &key_len);
 	if (key == NULL)
 		return FALSE;