[dovecot-cvs] dovecot/src/lib-imap imap-base-subject.c,1.1,1.2 imap-bodystructure.c,1.26,1.27 imap-envelope.c,1.19,1.20 imap-envelope.h,1.6,1.7 imap-message-cache.c,1.30,1.31 imap-parser.c,1.29,1.30 imap-quote.c,1.3,1.4 imap-quote.h,1.1,1.2 imap-util.h,1.3,1.4

cras at procontrol.fi cras at procontrol.fi
Sat Jan 4 19:26:32 EET 2003


Update of /home/cvs/dovecot/src/lib-imap
In directory danu:/tmp/cvs-serv386/lib-imap

Modified Files:
	imap-base-subject.c imap-bodystructure.c imap-envelope.c 
	imap-envelope.h imap-message-cache.c imap-parser.c 
	imap-quote.c imap-quote.h imap-util.h 
Log Message:
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.



Index: imap-base-subject.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-base-subject.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- imap-base-subject.c	17 Dec 2002 04:33:38 -0000	1.1
+++ imap-base-subject.c	4 Jan 2003 17:26:30 -0000	1.2
@@ -224,7 +224,8 @@
 	/* (1) Convert any RFC 2047 encoded-words in the subject to
 	   UTF-8.  Convert all tabs and continuations to space.
 	   Convert all multiple spaces to a single space. */
-	message_header_decode(subject, subject_len, header_decode, buf);
+	message_header_decode((const unsigned char *) subject, subject_len,
+			      header_decode, buf);
 	buffer_append_c(buf, '\0');
 
 	pack_whitespace(buf);

Index: imap-bodystructure.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-bodystructure.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- imap-bodystructure.c	4 Jan 2003 13:22:30 -0000	1.26
+++ imap-bodystructure.c	4 Jan 2003 17:26:30 -0000	1.27
@@ -33,7 +33,7 @@
 static void part_write_bodystructure(MessagePart *part, String *str,
 				     int extended);
 
-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)
 {
         MessagePartBodyData *data = context;
@@ -57,8 +57,8 @@
 	}
 }
 
-static void parse_save_params_list(const char *name, size_t name_len,
-				   const char *value, size_t value_len,
+static void parse_save_params_list(const unsigned char *name, size_t name_len,
+				   const unsigned char *value, size_t value_len,
 				   int value_quoted __attr_unused__,
 				   void *context)
 {
@@ -76,8 +76,8 @@
 	str_append_c(data->str, '"');
 }
 
-static void parse_content_transfer_encoding(const char *value, size_t value_len,
-					    void *context)
+static void parse_content_transfer_encoding(const unsigned char *value,
+					    size_t value_len, void *context)
 {
         MessagePartBodyData *data = context;
 
@@ -85,8 +85,8 @@
 		imap_quote_value(data->pool, value, value_len);
 }
 
-static void parse_content_disposition(const char *value, size_t value_len,
-				      void *context)
+static void parse_content_disposition(const unsigned char *value,
+				      size_t value_len, void *context)
 {
         MessagePartBodyData *data = context;
 
@@ -94,7 +94,7 @@
 		imap_quote_value(data->pool, value, value_len);
 }
 
-static void parse_content_language(const char *value, size_t value_len,
+static void parse_content_language(const unsigned char *value, size_t value_len,
 				   MessagePartBodyData *data)
 {
 	Rfc822TokenizeContext *ctx;
@@ -149,8 +149,8 @@
 }
 
 static void parse_header(MessagePart *part,
-			 const char *name, size_t name_len,
-			 const char *value, size_t value_len,
+			 const unsigned char *name, size_t name_len,
+			 const unsigned char *value, size_t value_len,
 			 void *context)
 {
 	Pool pool = context;
@@ -160,7 +160,7 @@
 	parent_rfc822 = part->parent != NULL &&
 		(part->parent->flags & MESSAGE_PART_FLAG_MESSAGE_RFC822);
 	if (!parent_rfc822 && (name_len <= 8 ||
-			       strncasecmp(name, "Content-", 8) != 0))
+			       memcasecmp(name, "Content-", 8) != 0))
 		return;
 
 	if (part->context == NULL) {
@@ -173,48 +173,74 @@
 
 	t_push();
 
-	/* fix the name to be \0-terminated */
-	name = t_strndup(name, name_len);
+	switch (name_len) {
+	case 10:
+		if (memcasecmp(name, "Content-ID", 10) == 0 &&
+		    part_data->content_id == NULL) {
+			part_data->content_id =
+				imap_quote_value(pool, value, value_len);
+		}
+		break;
+
+	case 11:
+		if (memcasecmp(name, "Content-MD5", 11) == 0 &&
+		    part_data->content_md5 == NULL) {
+			part_data->content_md5 =
+				imap_quote_value(pool, value, value_len);
+		}
+		break;
+
+	case 12:
+		if (memcasecmp(name, "Content-Type", 12) != 0 ||
+		    part_data->content_type != NULL)
+			break;
 
-	if (strcasecmp(name, "Content-Type") == 0 &&
-	    part_data->content_type == NULL) {
 		part_data->str = t_str_new(256);
 		message_content_parse_header(value, value_len,
 					     parse_content_type,
 					     parse_save_params_list, part_data);
 		part_data->content_type_params =
 			p_strdup_empty(pool, str_c(part_data->str));
-	} else if (strcasecmp(name, "Content-Transfer-Encoding") == 0 &&
-		   part_data->content_transfer_encoding == NULL) {
+		break;
+
+	case 16:
+		if (memcasecmp(name, "Content-Language", 16) == 0)
+			parse_content_language(value, value_len, part_data);
+		break;
+
+	case 19:
+		if (memcasecmp(name, "Content-Description", 19) == 0 &&
+		    part_data->content_description == NULL) {
+			part_data->content_description =
+				imap_quote_value(pool, value, value_len);
+		}
+		if (memcasecmp(name, "Content-Disposition", 19) == 0 &&
+		    part_data->content_disposition_params == NULL) {
+			part_data->str = t_str_new(256);
+			message_content_parse_header(value, value_len,
+						     parse_content_disposition,
+						     parse_save_params_list,
+						     part_data);
+			part_data->content_disposition_params =
+				p_strdup_empty(pool, str_c(part_data->str));
+		}
+		break;
+
+	case 25:
+		if (memcasecmp(name, "Content-Transfer-Encoding", 25) != 0 ||
+		    part_data->content_transfer_encoding != NULL)
+			break;
+
 		message_content_parse_header(value, value_len,
 					     parse_content_transfer_encoding,
 					     NULL, part_data);
-	} else if (strcasecmp(name, "Content-ID") == 0 &&
-		   part_data->content_id == NULL) {
-		part_data->content_id =
-			imap_quote_value(pool, value, value_len);
-	} else if (strcasecmp(name, "Content-Description") == 0 &&
-		   part_data->content_description == NULL) {
-		part_data->content_description =
-			imap_quote_value(pool, value, value_len);
-	} else if (strcasecmp(name, "Content-Disposition") == 0 &&
-		   part_data->content_disposition_params == NULL) {
-		part_data->str = t_str_new(256);
-		message_content_parse_header(value, value_len,
-					     parse_content_disposition,
-					     parse_save_params_list, part_data);
-		part_data->content_disposition_params =
-			p_strdup_empty(pool, str_c(part_data->str));
-	} else if (strcasecmp(name, "Content-Language") == 0) {
-		parse_content_language(value, value_len, part_data);
-	} else if (strcasecmp(name, "Content-MD5") == 0 &&
-		   part_data->content_md5 == NULL) {
-		part_data->content_md5 =
-			imap_quote_value(pool, value, value_len);
-	} else if (parent_rfc822) {
+		break;
+	}
+
+	if (parent_rfc822) {
 		/* message/rfc822, we need the envelope */
 		imap_envelope_parse_header(pool, &part_data->envelope,
-					   name, value, value_len);
+					   name, name_len, value, value_len);
 	}
 	t_pop();
 }

Index: imap-envelope.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-envelope.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- imap-envelope.c	2 Jan 2003 09:06:33 -0000	1.19
+++ imap-envelope.c	4 Jan 2003 17:26:30 -0000	1.20
@@ -18,15 +18,15 @@
 	char *in_reply_to, *message_id;
 };
 
-static Rfc822Address *parse_address(Pool pool, const char *value,
+static Rfc822Address *parse_address(Pool pool, const unsigned char *value,
 				    size_t value_len)
 {
-	return rfc822_address_parse(pool, t_strndup(value, value_len));
+	return rfc822_address_parse(pool, value, value_len);
 }
 
 void imap_envelope_parse_header(Pool pool, MessagePartEnvelopeData **data,
-				const char *name,
-				const char *value, size_t value_len)
+				const unsigned char *name, size_t name_len,
+				const unsigned char *value, size_t value_len)
 {
 	if (*data == NULL) {
 		*data = p_new(pool, MessagePartEnvelopeData, 1);
@@ -35,28 +35,60 @@
 
 	t_push();
 
-	if (strcasecmp(name, "Date") == 0 && (*data)->date == NULL)
-		(*data)->date = imap_quote_value(pool, value, value_len);
-	else if (strcasecmp(name, "Subject") == 0 && (*data)->subject == NULL)
-		(*data)->subject = imap_quote_value(pool, value, value_len);
-	else if (strcasecmp(name, "From") == 0 && (*data)->from == NULL)
-		(*data)->from = parse_address(pool, value, value_len);
-	else if (strcasecmp(name, "Sender") == 0 && (*data)->sender == NULL)
-		(*data)->sender = parse_address(pool, value, value_len);
-	else if (strcasecmp(name, "Reply-To") == 0 && (*data)->reply_to == NULL)
-		(*data)->reply_to = parse_address(pool, value, value_len);
-	else if (strcasecmp(name, "To") == 0 && (*data)->to == NULL)
-		(*data)->to = parse_address(pool, value, value_len);
-	else if (strcasecmp(name, "Cc") == 0 && (*data)->cc == NULL)
-		(*data)->cc = parse_address(pool, value, value_len);
-	else if (strcasecmp(name, "Bcc") == 0 && (*data)->bcc == NULL)
-		(*data)->bcc = parse_address(pool, value, value_len);
-	else if (strcasecmp(name, "In-Reply-To") == 0 &&
-		 (*data)->in_reply_to == NULL)
-		(*data)->in_reply_to = imap_quote_value(pool, value, value_len);
-	else if (strcasecmp(name, "Message-Id") == 0 &&
-		 (*data)->message_id == NULL)
-		(*data)->message_id = imap_quote_value(pool, value, value_len);
+	switch (name_len) {
+	case 2:
+		if (memcasecmp(name, "To", 2) == 0 && (*data)->to == NULL)
+			(*data)->to = parse_address(pool, value, value_len);
+		else if (memcasecmp(name, "Cc", 2) == 0 && (*data)->cc == NULL)
+			(*data)->cc = parse_address(pool, value, value_len);
+		break;
+	case 3:
+		if (memcasecmp(name, "Bcc", 3) == 0 && (*data)->bcc == NULL)
+			(*data)->bcc = parse_address(pool, value, value_len);
+		break;
+	case 4:
+		if (memcasecmp(name, "From", 4) == 0 && (*data)->from == NULL)
+			(*data)->from = parse_address(pool, value, value_len);
+		else if (memcasecmp(name, "Date", 4) == 0 &&
+			 (*data)->date == NULL) {
+			(*data)->date = imap_quote_value(pool, value,
+							 value_len);
+		}
+		break;
+	case 6:
+		if (memcasecmp(name, "Sender", 6) == 0 &&
+		    (*data)->sender == NULL)
+			(*data)->sender = parse_address(pool, value, value_len);
+		break;
+	case 7:
+		if (memcasecmp(name, "Subject", 7) == 0 &&
+		    (*data)->subject == NULL) {
+			(*data)->subject = imap_quote_value(pool, value,
+							    value_len);
+		}
+		break;
+	case 8:
+		if (memcasecmp(name, "Reply-To", 8) == 0 &&
+		    (*data)->reply_to == NULL) {
+			(*data)->reply_to = parse_address(pool, value,
+							  value_len);
+		}
+		break;
+	case 10:
+		if (memcasecmp(name, "Message-Id", 10) == 0 &&
+		    (*data)->message_id == NULL) {
+			(*data)->message_id = imap_quote_value(pool, value,
+							       value_len);
+		}
+		break;
+	case 11:
+		if (memcasecmp(name, "In-Reply-To", 11) == 0 &&
+		    (*data)->in_reply_to == NULL) {
+			(*data)->in_reply_to = imap_quote_value(pool, value,
+								value_len);
+		}
+		break;
+	}
 
 	t_pop();
 }

Index: imap-envelope.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-envelope.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- imap-envelope.h	2 Jan 2003 09:06:33 -0000	1.6
+++ imap-envelope.h	4 Jan 2003 17:26:30 -0000	1.7
@@ -26,8 +26,8 @@
 
 /* Update envelope data based from given header field */
 void imap_envelope_parse_header(Pool pool, MessagePartEnvelopeData **data,
-				const char *name,
-				const char *value, size_t value_len);
+				const unsigned char *name, size_t name_len,
+				const unsigned char *value, size_t value_len);
 
 /* Write envelope to given string */
 void imap_envelope_write_part_data(MessagePartEnvelopeData *data,

Index: imap-message-cache.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-message-cache.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- imap-message-cache.c	27 Dec 2002 13:05:53 -0000	1.30
+++ imap-message-cache.c	4 Jan 2003 17:26:30 -0000	1.31
@@ -147,8 +147,8 @@
 }
 
 static void parse_envelope_header(MessagePart *part,
-				  const char *name, size_t name_len,
-				  const char *value, size_t value_len,
+				  const unsigned char *name, size_t name_len,
+				  const unsigned char *value, size_t value_len,
 				  void *context)
 {
 	CachedMessage *msg = context;
@@ -156,8 +156,7 @@
 	if (part == NULL || part->parent == NULL) {
 		/* parse envelope headers if we're at the root message part */
 		imap_envelope_parse_header(msg->pool, &msg->envelope,
-					   t_strndup(name, name_len),
-					   value, value_len);
+					   name, name_len, value, value_len);
 	}
 }
 

Index: imap-parser.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-parser.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- imap-parser.c	3 Jan 2003 15:57:12 -0000	1.29
+++ imap-parser.c	4 Jan 2003 17:26:30 -0000	1.30
@@ -113,7 +113,8 @@
 }
 
 /* skip over everything parsed so far, plus the following whitespace */
-static int imap_parser_skip_to_next(ImapParser *parser, const char **data,
+static int imap_parser_skip_to_next(ImapParser *parser,
+				    const unsigned char **data,
 				    size_t *data_size)
 {
 	size_t i;
@@ -187,8 +188,8 @@
 	return TRUE;
 }
 
-static void imap_parser_save_arg(ImapParser *parser, const char *data,
-				 size_t lastpos)
+static void imap_parser_save_arg(ImapParser *parser, const unsigned char *data,
+				 size_t size)
 {
 	ImapArg *arg;
 
@@ -196,21 +197,21 @@
 
 	switch (parser->cur_type) {
 	case ARG_PARSE_ATOM:
-		if (lastpos == 3 && strncmp(data, "NIL", 3) == 0) {
+		if (size == 3 && memcmp(data, "NIL", 3) == 0) {
 			/* NIL argument */
 			arg->type = IMAP_ARG_NIL;
 		} else {
 			/* simply save the string */
 			arg->type = IMAP_ARG_ATOM;
-			arg->_data.str = p_strndup(parser->pool, data, lastpos);
+			arg->_data.str = p_strndup(parser->pool, data, size);
 		}
 		break;
 	case ARG_PARSE_STRING:
 		/* data is quoted and may contain escapes. */
-		i_assert(lastpos > 0);
+		i_assert(size > 0);
 
 		arg->type = IMAP_ARG_STRING;
-		arg->_data.str = p_strndup(parser->pool, data+1, lastpos-1);
+		arg->_data.str = p_strndup(parser->pool, data+1, size-1);
 
 		/* remove the escapes */
 		if (parser->str_first_escape >= 0 &&
@@ -224,7 +225,7 @@
 		if ((parser->flags & IMAP_PARSE_FLAG_LITERAL_SIZE) == 0) {
 			/* simply save the string */
 			arg->type = IMAP_ARG_STRING;
-			arg->_data.str = p_strndup(parser->pool, data, lastpos);
+			arg->_data.str = p_strndup(parser->pool, data, size);
 		} else {
 			/* save literal size */
 			arg->type = IMAP_ARG_LITERAL_SIZE;
@@ -238,7 +239,7 @@
 	parser->cur_type = ARG_PARSE_NONE;
 }
 
-static int imap_parser_read_atom(ImapParser *parser, const char *data,
+static int imap_parser_read_atom(ImapParser *parser, const unsigned char *data,
 				 size_t data_size)
 {
 	size_t i;
@@ -275,8 +276,8 @@
 	return parser->cur_type == ARG_PARSE_NONE;
 }
 
-static int imap_parser_read_string(ImapParser *parser, const char *data,
-				   size_t data_size)
+static int imap_parser_read_string(ImapParser *parser,
+				   const unsigned char *data, size_t data_size)
 {
 	size_t i;
 
@@ -339,7 +340,8 @@
 	return TRUE;
 }
 
-static int imap_parser_read_literal(ImapParser *parser, const char *data,
+static int imap_parser_read_literal(ImapParser *parser,
+				    const unsigned char *data,
 				    size_t data_size)
 {
 	size_t i, prev_size;
@@ -370,7 +372,8 @@
 	return FALSE;
 }
 
-static int imap_parser_read_literal_data(ImapParser *parser, const char *data,
+static int imap_parser_read_literal_data(ImapParser *parser,
+					 const unsigned char *data,
 					 size_t data_size)
 {
 	if (parser->literal_skip_crlf) {
@@ -419,10 +422,10 @@
    an argument inside a list was processed. */
 static int imap_parser_read_arg(ImapParser *parser)
 {
-	const char *data;
+	const unsigned char *data;
 	size_t data_size;
 
-	data = (const char *) i_stream_get_data(parser->input, &data_size);
+	data = i_stream_get_data(parser->input, &data_size);
 	if (data_size == 0)
 		return FALSE;
 
@@ -485,8 +488,7 @@
 
 		/* pass through to parsing data. since input->skip was
 		   modified, we need to get the data start position again. */
-		data = (const char *) i_stream_get_data(parser->input,
-							&data_size);
+		data = i_stream_get_data(parser->input, &data_size);
 
 		/* fall through */
 	case ARG_PARSE_LITERAL_DATA:
@@ -551,10 +553,10 @@
 
 const char *imap_parser_read_word(ImapParser *parser)
 {
-	const char *data;
+	const unsigned char *data;
 	size_t i, data_size;
 
-	data = (const char *) i_stream_get_data(parser->input, &data_size);
+	data = i_stream_get_data(parser->input, &data_size);
 
 	for (i = 0; i < data_size; i++) {
 		if (data[i] == ' ' || data[i] == '\r' || data[i] == '\n')
@@ -571,10 +573,10 @@
 
 const char *imap_parser_read_line(ImapParser *parser)
 {
-	const char *data;
+	const unsigned char *data;
 	size_t i, data_size;
 
-	data = (const char *) i_stream_get_data(parser->input, &data_size);
+	data = i_stream_get_data(parser->input, &data_size);
 
 	for (i = 0; i < data_size; i++) {
 		if (data[i] == '\r' || data[i] == '\n')

Index: imap-quote.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-quote.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- imap-quote.c	21 Dec 2002 22:02:58 -0000	1.3
+++ imap-quote.c	4 Jan 2003 17:26:30 -0000	1.4
@@ -13,7 +13,7 @@
 #define IS_BREAK_OR_CRLF_CHAR(c) \
 	(IS_BREAK_CHAR(c) || (c) == '\r' || (c) == '\n')
 
-static size_t next_token_quoted(const char *value, size_t len,
+static size_t next_token_quoted(const unsigned char *value, size_t len,
 				int *need_qp, int *quoted)
 {
 	size_t i;
@@ -22,7 +22,7 @@
 	*quoted = TRUE;
 
 	for (i = *quoted ? 0 : 1; i < len; i++) {
-		if ((unsigned char)value[i] & 0x80)
+		if (value[i] & 0x80)
 			*need_qp = TRUE;
 
 		if (value[i] == '"' || value[i] == '\r' || value[i] == '\n') {
@@ -35,7 +35,7 @@
 	return i;
 }
 
-static size_t next_token(const char *value, size_t len,
+static size_t next_token(const unsigned char *value, size_t len,
 			 int *need_qp, int *quoted, int qp_on)
 {
 	size_t i = 0;
@@ -68,7 +68,7 @@
 
 	/* then stop at break-char */
 	for (; i < len; i++) {
-		if ((unsigned char)value[i] & 0x80)
+		if (value[i] & 0x80)
 			*need_qp = TRUE;
 
 		if (IS_BREAK_OR_CRLF_CHAR(value[i]))
@@ -78,7 +78,8 @@
 	return i;
 }
 
-static void append_quoted_qp(String *str, const char *value, size_t len)
+static void append_quoted_qp(String *str, const unsigned char *value,
+			     size_t len)
 {
 	size_t i;
 	unsigned char c;
@@ -96,15 +97,15 @@
 			str_append_c(str, value[i]);
 		} else {
 			str_append_c(str, '=');
-			c = (unsigned char)value[i] >> 4;
+			c = value[i] >> 4;
 			str_append_c(str, c < 10 ? (c+'0') : (c-10+'A'));
-			c = (unsigned char)value[i] & 0x0f;
+			c = value[i] & 0x0f;
 			str_append_c(str, c < 10 ? (c+'0') : (c-10+'A'));
 		}
 	}
 }
 
-static void append_quoted(String *str, const char *value, size_t len)
+static void append_quoted(String *str, const unsigned char *value, size_t len)
 {
 	size_t i;
 
@@ -116,7 +117,7 @@
 }
 
 /* does two things: 1) escape '\' and '"' characters, 2) 8bit text -> QP */
-static String *get_quoted_str(const char *value, size_t value_len)
+static String *get_quoted_str(const unsigned char *value, size_t value_len)
 {
 	String *str;
 	size_t token_len;
@@ -165,13 +166,14 @@
 const char *imap_quote_str_nil(const char *value)
 {
 	return value == NULL ? "NIL" :
-		str_c(get_quoted_str(value, strlen(value)));
+		str_c(get_quoted_str((const unsigned char *) value,
+				     strlen(value)));
 }
 
-char *imap_quote_value(Pool pool, const char *value, size_t value_len)
+char *imap_quote_value(Pool pool, const unsigned char *value, size_t value_len)
 {
 	String *str;
 
 	str = get_quoted_str(value, value_len);
-	return p_strndup(pool, str_c(str), str_len(str));
+	return p_strndup(pool, str_data(str), str_len(str));
 }

Index: imap-quote.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-quote.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- imap-quote.h	30 Sep 2002 21:18:12 -0000	1.1
+++ imap-quote.h	4 Jan 2003 17:26:30 -0000	1.2
@@ -5,6 +5,6 @@
 const char *imap_quote_str_nil(const char *value);
 
 /* Return value quoted and allocated from specified pool. */
-char *imap_quote_value(Pool pool, const char *value, size_t value_len);
+char *imap_quote_value(Pool pool, const unsigned char *value, size_t value_len);
 
 #endif

Index: imap-util.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-util.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- imap-util.h	3 Jan 2003 15:57:12 -0000	1.3
+++ imap-util.h	4 Jan 2003 17:26:30 -0000	1.4
@@ -10,7 +10,10 @@
 	MAIL_RECENT		= 0x0000020,
 
 	/* rest of the bits are custom flags */
-	MAIL_CUSTOM_FLAG_1      = 0x0000040
+	MAIL_CUSTOM_FLAG_1      = 0x0000040,
+
+	MAIL_SYSTEM_FLAGS_MASK	= 0x000003f,
+	MAIL_CUSTOM_FLAGS_MASK	= 0xfffffc0
 } MailFlags;
 
 /* growing number of flags isn't very easy. biggest problem is that they're
@@ -19,9 +22,6 @@
    file name using 'a'..'z' letters which gets us exactly the needed 26
    flags. if more is added, the current code breaks. */
 enum {
-	MAIL_SYSTEM_FLAGS_MASK	= 0x000003f,
-	MAIL_CUSTOM_FLAGS_MASK	= 0xfffffc0,
-
 	MAIL_CUSTOM_FLAG_1_BIT	= 6,
 	MAIL_CUSTOM_FLAGS_COUNT	= 26,
 




More information about the dovecot-cvs mailing list