[dovecot-cvs] dovecot/src/lib-imap imap-bodystructure.c,1.21,1.22 imap-envelope.c,1.16,1.17 imap-envelope.h,1.4,1.5 imap-message-cache.c,1.27,1.28 imap-quote.c,1.2,1.3 imap-util.c,1.4,1.5

cras at procontrol.fi cras at procontrol.fi
Sun Dec 22 00:03:00 EET 2002


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

Modified Files:
	imap-bodystructure.c imap-envelope.c imap-envelope.h 
	imap-message-cache.c imap-quote.c imap-util.c 
Log Message:
Replaced TempString with a String which can use any memory pool and uses
Buffer internally.



Index: imap-bodystructure.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-bodystructure.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- imap-bodystructure.c	9 Dec 2002 15:25:20 -0000	1.21
+++ imap-bodystructure.c	21 Dec 2002 22:02:58 -0000	1.22
@@ -2,7 +2,7 @@
 
 #include "lib.h"
 #include "istream.h"
-#include "temp-string.h"
+#include "str.h"
 #include "rfc822-tokenize.h"
 #include "message-parser.h"
 #include "message-content-parser.h"
@@ -16,7 +16,7 @@
 
 typedef struct {
 	Pool pool;
-	TempString *str;
+	String *str;
 	char *content_type, *content_subtype;
 	char *content_type_params;
 	char *content_transfer_encoding;
@@ -30,7 +30,7 @@
 	MessagePartEnvelopeData *envelope;
 } MessagePartBodyData;
 
-static void part_write_bodystructure(MessagePart *part, TempString *str,
+static void part_write_bodystructure(MessagePart *part, String *str,
 				     int extended);
 
 static void parse_content_type(const Rfc822Token *tokens,
@@ -60,15 +60,15 @@
         MessagePartBodyData *data = context;
 	const char *str;
 
-	if (data->str->len != 0)
-		t_string_append_c(data->str, ' ');
+	if (str_len(data->str) != 0)
+		str_append_c(data->str, ' ');
 
-	t_string_append_c(data->str, '"');
-	t_string_append_n(data->str, name->ptr, name->len);
-	t_string_append(data->str, "\" ");
+	str_append_c(data->str, '"');
+	str_append_n(data->str, name->ptr, name->len);
+	str_append(data->str, "\" ");
 
         str = rfc822_tokens_get_value_quoted(value, value_count);
-	t_string_append(data->str, str);
+	str_append(data->str, str);
 }
 
 static void parse_content_transfer_encoding(const Rfc822Token *tokens,
@@ -95,7 +95,7 @@
 				   int count, void *context)
 {
         MessagePartBodyData *data = context;
-	TempString *str;
+	String *str;
 	int quoted;
 
 	/* Content-Language: en-US, az-arabic (comments allowed) */
@@ -103,7 +103,7 @@
 	if (count <= 0)
 		return;
 
-	str = t_string_new(256);
+	str = t_str_new(256);
 
 	quoted = FALSE;
 	for (; count > 0; count--, tokens++) {
@@ -114,7 +114,7 @@
 		case ',':
 			/* list separator */
 			if (quoted) {
-				t_string_append_c(str, '"');
+				str_append_c(str, '"');
 				quoted = FALSE;
 			}
 			break;
@@ -123,26 +123,24 @@
 			   and '-' is allowed, so anything else is error
 			   which we can deal with however we want. */
 			if (!quoted) {
-				if (str->len > 0)
-					t_string_append_c(str, ' ');
-				t_string_append_c(str, '"');
+				if (str_len(str) > 0)
+					str_append_c(str, ' ');
+				str_append_c(str, '"');
 				quoted = TRUE;
 			}
 
-			if (IS_TOKEN_STRING(tokens->token)) {
-				t_string_append_n(str, tokens->ptr,
-						  tokens->len);
-			} else {
-				t_string_append_c(str, tokens->token);
-			}
+			if (IS_TOKEN_STRING(tokens->token))
+				str_append_n(str, tokens->ptr, tokens->len);
+			else
+				str_append_c(str, tokens->token);
 			break;
 		}
 	}
 
 	if (quoted)
-		t_string_append_c(str, '"');
+		str_append_c(str, '"');
 
-	data->content_language = p_strdup(data->pool, str->str);
+	data->content_language = p_strdup(data->pool, str_c(str));
 }
 
 static void parse_header(MessagePart *part,
@@ -175,13 +173,13 @@
 
 	if (strcasecmp(name, "Content-Type") == 0 &&
 	    part_data->content_type == NULL) {
-		part_data->str = t_string_new(256);
+		part_data->str = t_str_new(256);
 		(void)message_content_parse_header(t_strndup(value, value_len),
 						   parse_content_type,
 						   parse_save_params_list,
 						   part_data);
 		part_data->content_type_params =
-			p_strdup(pool, part_data->str->str);
+			p_strdup(pool, str_c(part_data->str));
 	} else if (strcasecmp(name, "Content-Transfer-Encoding") == 0 &&
 		   part_data->content_transfer_encoding == NULL) {
 		(void)message_content_parse_header(t_strndup(value, value_len),
@@ -197,13 +195,13 @@
 			imap_quote_value(pool, value, value_len);
 	} else if (strcasecmp(name, "Content-Disposition") == 0 &&
 		   part_data->content_disposition_params == NULL) {
-		part_data->str = t_string_new(256);
+		part_data->str = t_str_new(256);
 		(void)message_content_parse_header(t_strndup(value, value_len),
 						   parse_content_disposition,
 						   parse_save_params_list,
 						   part_data);
 		part_data->content_disposition_params =
-			p_strdup(pool, part_data->str->str);
+			p_strdup(pool, str_c(part_data->str));
 	} else if (strcasecmp(name, "Content-Language") == 0) {
 		(void)message_content_parse_header(t_strndup(value, value_len),
 						   parse_content_language, NULL,
@@ -241,7 +239,7 @@
 	}
 }
 
-static void part_write_body_multipart(MessagePart *part, TempString *str,
+static void part_write_body_multipart(MessagePart *part, String *str,
 				      int extended)
 {
 	MessagePartBodyData *data = part->context;
@@ -257,53 +255,53 @@
 		/* no parts in multipart message,
 		   that's not allowed. write a single
 		   0-length text/plain structure */
-		t_string_append(str, EMPTY_BODYSTRUCTURE);
+		str_append(str, EMPTY_BODYSTRUCTURE);
 	}
 
-	t_string_append_c(str, ' ');
+	str_append_c(str, ' ');
 	if (data->content_subtype != NULL)
-		t_string_append(str, data->content_subtype);
+		str_append(str, data->content_subtype);
 	else
-		t_string_append(str, "x-unknown");
+		str_append(str, "x-unknown");
 
 	if (!extended)
 		return;
 
 	/* BODYSTRUCTURE data */
-	t_string_append_c(str, ' ');
+	str_append_c(str, ' ');
 	if (data->content_type_params == NULL)
-		t_string_append(str, "NIL");
+		str_append(str, "NIL");
 	else {
-		t_string_append_c(str, '(');
-		t_string_append(str, data->content_type_params);
-		t_string_append_c(str, ')');
+		str_append_c(str, '(');
+		str_append(str, data->content_type_params);
+		str_append_c(str, ')');
 	}
 
-	t_string_append_c(str, ' ');
+	str_append_c(str, ' ');
 	if (data->content_disposition == NULL)
-		t_string_append(str, "NIL");
+		str_append(str, "NIL");
 	else {
-		t_string_append_c(str, '(');
-		t_string_append(str, data->content_disposition);
+		str_append_c(str, '(');
+		str_append(str, data->content_disposition);
 		if (data->content_disposition_params != NULL) {
-			t_string_append(str, " (");
-			t_string_append(str, data->content_disposition_params);
-			t_string_append_c(str, ')');
+			str_append(str, " (");
+			str_append(str, data->content_disposition_params);
+			str_append_c(str, ')');
 		}
-		t_string_append_c(str, ')');
+		str_append_c(str, ')');
 	}
 
-	t_string_append_c(str, ' ');
+	str_append_c(str, ' ');
 	if (data->content_language == NULL)
-		t_string_append(str, "NIL");
+		str_append(str, "NIL");
 	else {
-		t_string_append_c(str, '(');
-		t_string_append(str, data->content_language);
-		t_string_append_c(str, ')');
+		str_append_c(str, '(');
+		str_append(str, data->content_language);
+		str_append_c(str, ')');
 	}
 }
 
-static void part_write_body(MessagePart *part, TempString *str, int extended)
+static void part_write_body(MessagePart *part, String *str, int extended)
 {
 	MessagePartBodyData *data = part->context;
 
@@ -313,29 +311,29 @@
 	}
 
 	/* "content type" "subtype" */
-	t_string_append(str, NVL(data->content_type, "\"text\""));
-	t_string_append_c(str, ' ');
-	t_string_append(str, NVL(data->content_subtype, "\"plain\""));
+	str_append(str, NVL(data->content_type, "\"text\""));
+	str_append_c(str, ' ');
+	str_append(str, NVL(data->content_subtype, "\"plain\""));
 
 	/* ("content type param key" "value" ...) */
-	t_string_append_c(str, ' ');
+	str_append_c(str, ' ');
 	if (data->content_type_params == NULL)
-		t_string_append(str, "NIL");
+		str_append(str, "NIL");
 	else {
-		t_string_append_c(str, '(');
-		t_string_append(str, data->content_type_params);
-		t_string_append_c(str, ')');
+		str_append_c(str, '(');
+		str_append(str, data->content_type_params);
+		str_append_c(str, ')');
 	}
 
-	t_string_printfa(str, " %s %s %s %"PRIuUOFF_T,
-			 NVL(data->content_id, "NIL"),
-			 NVL(data->content_description, "NIL"),
-			 NVL(data->content_transfer_encoding, "\"8bit\""),
-			 part->body_size.virtual_size);
+	str_printfa(str, " %s %s %s %"PRIuUOFF_T,
+		    NVL(data->content_id, "NIL"),
+		    NVL(data->content_description, "NIL"),
+		    NVL(data->content_transfer_encoding, "\"8bit\""),
+		    part->body_size.virtual_size);
 
 	if (part->flags & MESSAGE_PART_FLAG_TEXT) {
 		/* text/.. contains line count */
-		t_string_printfa(str, " %u", part->body_size.lines);
+		str_printfa(str, " %u", part->body_size.lines);
 	} else if (part->flags & MESSAGE_PART_FLAG_MESSAGE_RFC822) {
 		/* message/rfc822 contains envelope + body + line count */
 		MessagePartBodyData *child_data;
@@ -345,19 +343,19 @@
 
                 child_data = part->children->context;
 
-		t_string_append_c(str, ' ');
+		str_append_c(str, ' ');
 		if (child_data != NULL && child_data->envelope != NULL) {
-			t_string_append_c(str, '(');
+			str_append_c(str, '(');
 			imap_envelope_write_part_data(child_data->envelope,
 						      str);
-			t_string_append_c(str, ')');
+			str_append_c(str, ')');
 		} else {
 			/* buggy message */
-			t_string_append(str, "NIL");
+			str_append(str, "NIL");
 		}
-		t_string_append_c(str, ' ');
+		str_append_c(str, ' ');
 		part_write_bodystructure(part->children, str, extended);
-		t_string_printfa(str, " %u", part->body_size.lines);
+		str_printfa(str, " %u", part->body_size.lines);
 	}
 
 	if (!extended)
@@ -367,42 +365,42 @@
 
 	/* "md5" ("content disposition" ("disposition" "params"))
 	   ("body" "language" "params") */
-	t_string_append_c(str, ' ');
-	t_string_append(str, NVL(data->content_md5, "NIL"));
+	str_append_c(str, ' ');
+	str_append(str, NVL(data->content_md5, "NIL"));
 
-	t_string_append_c(str, ' ');
+	str_append_c(str, ' ');
 	if (data->content_disposition == NULL)
-		t_string_append(str, "NIL");
+		str_append(str, "NIL");
 	else {
-		t_string_append_c(str, '(');
-		t_string_append(str, data->content_disposition);
-		t_string_append_c(str, ')');
+		str_append_c(str, '(');
+		str_append(str, data->content_disposition);
+		str_append_c(str, ')');
 
 		if (data->content_disposition_params != NULL) {
-			t_string_append(str, " (");
-			t_string_append(str, data->content_disposition_params);
-			t_string_append_c(str, ')');
+			str_append(str, " (");
+			str_append(str, data->content_disposition_params);
+			str_append_c(str, ')');
 		}
 	}
 
-	t_string_append_c(str, ' ');
+	str_append_c(str, ' ');
 	if (data->content_language == NULL)
-		t_string_append(str, "NIL");
+		str_append(str, "NIL");
 	else {
-		t_string_append_c(str, '(');
-		t_string_append(str, data->content_language);
-		t_string_append_c(str, ')');
+		str_append_c(str, '(');
+		str_append(str, data->content_language);
+		str_append_c(str, ')');
 	}
 }
 
-static void part_write_bodystructure(MessagePart *part, TempString *str,
+static void part_write_bodystructure(MessagePart *part, String *str,
 				     int extended)
 {
 	i_assert(part->parent != NULL || part->next == NULL);
 
 	while (part != NULL) {
 		if (part->parent != NULL)
-			t_string_append_c(str, '(');
+			str_append_c(str, '(');
 
 		if (part->flags & MESSAGE_PART_FLAG_MULTIPART)
 			part_write_body_multipart(part, str, extended);
@@ -410,7 +408,7 @@
 			part_write_body(part, str, extended);
 
 		if (part->parent != NULL)
-			t_string_append_c(str, ')');
+			str_append_c(str, ')');
 
 		part = part->next;
 	}
@@ -418,11 +416,11 @@
 
 static const char *part_get_bodystructure(MessagePart *part, int extended)
 {
-	TempString *str;
+	String *str;
 
-	str = t_string_new(2048);
+	str = t_str_new(2048);
 	part_write_bodystructure(part, str, extended);
-	return str->str;
+	return str_c(str);
 }
 
 const char *imap_part_get_bodystructure(Pool pool, MessagePart **part,
@@ -440,22 +438,22 @@
 	return part_get_bodystructure(*part, extended);
 }
 
-static int imap_write_list(ImapArg *args, TempString *str)
+static int imap_write_list(ImapArg *args, String *str)
 {
 	/* don't do any typechecking, just write it out */
-	t_string_append_c(str, '(');
+	str_append_c(str, '(');
 	while (args->type != IMAP_ARG_EOL) {
 		switch (args->type) {
 		case IMAP_ARG_NIL:
-			t_string_append(str, "NIL");
+			str_append(str, "NIL");
 			break;
 		case IMAP_ARG_ATOM:
-			t_string_append(str, args->data.str);
+			str_append(str, args->data.str);
 			break;
 		case IMAP_ARG_STRING:
-			t_string_append_c(str, '"');
-			t_string_append(str, args->data.str);
-			t_string_append_c(str, '"');
+			str_append_c(str, '"');
+			str_append(str, args->data.str);
+			str_append_c(str, '"');
 			break;
 		case IMAP_ARG_LIST:
 			if (!imap_write_list(args->data.list->args, str))
@@ -467,23 +465,23 @@
 		args++;
 
 		if (args->type != IMAP_ARG_EOL)
-			t_string_append_c(str, ' ');
+			str_append_c(str, ' ');
 	}
-	t_string_append_c(str, ')');
+	str_append_c(str, ')');
 	return TRUE;
 }
 
-static int imap_parse_bodystructure_args(ImapArg *args, TempString *str)
+static int imap_parse_bodystructure_args(ImapArg *args, String *str)
 {
 	ImapArg *subargs;
 	int i, multipart, text, message_rfc822;
 
 	multipart = FALSE;
 	while (args->type == IMAP_ARG_LIST) {
-		t_string_append_c(str, '(');
+		str_append_c(str, '(');
 		if (!imap_parse_bodystructure_args(args->data.list->args, str))
 			return FALSE;
-		t_string_append_c(str, ')');
+		str_append_c(str, ')');
 
 		multipart = TRUE;
 		args++;
@@ -494,7 +492,7 @@
 		if (args->type != IMAP_ARG_STRING)
 			return FALSE;
 
-		t_string_printfa(str, " \"%s\"", args->data.str);
+		str_printfa(str, " \"%s\"", args->data.str);
 		return TRUE;
 	}
 
@@ -506,31 +504,29 @@
 	message_rfc822 = strcasecmp(args[0].data.str, "message") == 0 &&
 		strcasecmp(args[1].data.str, "rfc822") == 0;
 
-	t_string_printfa(str, "\"%s\" \"%s\"",
-			 args[0].data.str, args[1].data.str);
+	str_printfa(str, "\"%s\" \"%s\"", args[0].data.str, args[1].data.str);
 	args += 2;
 
 	/* ("content type param key" "value" ...) | NIL */
 	if (args->type == IMAP_ARG_LIST) {
-		t_string_append(str, " (");
+		str_append(str, " (");
                 subargs = args->data.list->args;
 		for (; subargs->type != IMAP_ARG_EOL; ) {
 			if (subargs[0].type != IMAP_ARG_STRING ||
 			    subargs[1].type != IMAP_ARG_STRING)
 				return FALSE;
 
-			t_string_printfa(str, "\"%s\" \"%s\"",
-					 subargs[0].data.str,
-					 subargs[1].data.str);
+			str_printfa(str, "\"%s\" \"%s\"",
+				    subargs[0].data.str, subargs[1].data.str);
 
 			subargs += 2;
 			if (subargs->type == IMAP_ARG_EOL)
 				break;
-			t_string_append_c(str, ' ');
+			str_append_c(str, ' ');
 		}
-		t_string_append(str, ")");
+		str_append(str, ")");
 	} else if (args->type == IMAP_ARG_NIL) {
-		t_string_append(str, " NIL");
+		str_append(str, " NIL");
 	} else {
 		return FALSE;
 	}
@@ -539,12 +535,12 @@
 	/* "content id" "content description" "transfer encoding" size */
 	for (i = 0; i < 4; i++, args++) {
 		if (args->type == IMAP_ARG_NIL) {
-			t_string_append(str, " NIL");
+			str_append(str, " NIL");
 		} else if (args->type == IMAP_ARG_ATOM) {
-			t_string_append_c(str, ' ');
-			t_string_append(str, args->data.str);
+			str_append_c(str, ' ');
+			str_append(str, args->data.str);
 		} else if (args->type == IMAP_ARG_STRING) {
-			t_string_printfa(str, " \"%s\"", args->data.str);
+			str_printfa(str, " \"%s\"", args->data.str);
 		} else {
 			return FALSE;
 		}
@@ -555,8 +551,8 @@
 		if (args->type != IMAP_ARG_ATOM)
 			return FALSE;
 
-		t_string_append_c(str, ' ');
-		t_string_append(str, args->data.str);
+		str_append_c(str, ' ');
+		str_append(str, args->data.str);
 	} else if (message_rfc822) {
 		/* message/rfc822 - envelope + bodystructure + text lines */
 		if (args[0].type != IMAP_ARG_LIST ||
@@ -564,19 +560,19 @@
 		    args[2].type != IMAP_ARG_ATOM)
 			return FALSE;
 
-		t_string_append_c(str, ' ');
+		str_append_c(str, ' ');
 
 		if (!imap_write_list(args[0].data.list->args, str))
 			return FALSE;
 
-		t_string_append_c(str, ' ');
+		str_append_c(str, ' ');
 
 		if (!imap_parse_bodystructure_args(args[1].data.list->args,
 						   str))
 			return FALSE;
 
-		t_string_append_c(str, ' ');
-		t_string_append(str, args[2].data.str);
+		str_append_c(str, ' ');
+		str_append(str, args[2].data.str);
 	}
 
 	return TRUE;
@@ -587,13 +583,13 @@
 	IStream *input;
 	ImapParser *parser;
 	ImapArg *args;
-	TempString *str;
+	String *str;
 	const char *value;
 	size_t len;
 	int ret;
 
 	len = strlen(bodystructure);
-	str = t_string_new(len);
+	str = t_str_new(len);
 
 	input = i_stream_create_from_data(data_stack_pool, bodystructure, len);
 	(void)i_stream_read(input);
@@ -605,7 +601,7 @@
 	if (ret <= 0 || !imap_parse_bodystructure_args(args, str))
 		value = NULL;
 	else
-		value = str->str;
+		value = str_c(str);
 
 	if (value == NULL)
 		i_error("Error parsing IMAP bodystructure: %s", bodystructure);

Index: imap-envelope.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-envelope.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- imap-envelope.c	18 Dec 2002 15:15:41 -0000	1.16
+++ imap-envelope.c	21 Dec 2002 22:02:58 -0000	1.17
@@ -2,7 +2,7 @@
 
 #include "lib.h"
 #include "istream.h"
-#include "temp-string.h"
+#include "str.h"
 #include "rfc822-address.h"
 #include "imap-parser.h"
 #include "imap-envelope.h"
@@ -61,66 +61,66 @@
 	t_pop();
 }
 
-static void imap_write_address(TempString *str, Rfc822Address *addr)
+static void imap_write_address(String *str, Rfc822Address *addr)
 {
 	if (addr == NULL) {
-		t_string_append(str, "NIL");
+		str_append(str, "NIL");
 		return;
 	}
 
-	t_string_append_c(str, '(');
+	str_append_c(str, '(');
 	while (addr != NULL) {
-		t_string_append_c(str, '(');
-		t_string_append(str, imap_quote_str_nil(addr->name));
-		t_string_append_c(str, ' ');
-		t_string_append(str, imap_quote_str_nil(addr->route));
-		t_string_append_c(str, ' ');
-		t_string_append(str, imap_quote_str_nil(addr->mailbox));
-		t_string_append_c(str, ' ');
-		t_string_append(str, imap_quote_str_nil(addr->domain));
-		t_string_append_c(str, ')');
+		str_append_c(str, '(');
+		str_append(str, imap_quote_str_nil(addr->name));
+		str_append_c(str, ' ');
+		str_append(str, imap_quote_str_nil(addr->route));
+		str_append_c(str, ' ');
+		str_append(str, imap_quote_str_nil(addr->mailbox));
+		str_append_c(str, ' ');
+		str_append(str, imap_quote_str_nil(addr->domain));
+		str_append_c(str, ')');
 
 		addr = addr->next;
 	}
-	t_string_append_c(str, ')');
+	str_append_c(str, ')');
 }
 
 void imap_envelope_write_part_data(MessagePartEnvelopeData *data,
-				   TempString *str)
+				   String *str)
 {
-	t_string_append(str, NVL(data->date, "NIL"));
-	t_string_append_c(str, ' ');
-	t_string_append(str, NVL(data->subject, "NIL"));
+	str_append(str, NVL(data->date, "NIL"));
+	str_append_c(str, ' ');
+	str_append(str, NVL(data->subject, "NIL"));
 
-	t_string_append_c(str, ' ');
+	str_append_c(str, ' ');
 	imap_write_address(str, data->from);
-	t_string_append_c(str, ' ');
+	str_append_c(str, ' ');
 	imap_write_address(str, NVL(data->sender, data->from));
-	t_string_append_c(str, ' ');
+	str_append_c(str, ' ');
 	imap_write_address(str, NVL(data->reply_to, data->from));
-	t_string_append_c(str, ' ');
+	str_append_c(str, ' ');
 	imap_write_address(str, data->to);
-	t_string_append_c(str, ' ');
+	str_append_c(str, ' ');
 	imap_write_address(str, data->cc);
-	t_string_append_c(str, ' ');
+	str_append_c(str, ' ');
 	imap_write_address(str, data->bcc);
 
-	t_string_append_c(str, ' ');
-	t_string_append(str, NVL(data->in_reply_to, "NIL"));
-	t_string_append_c(str, ' ');
-	t_string_append(str, NVL(data->message_id, "NIL"));
+	str_append_c(str, ' ');
+	str_append(str, NVL(data->in_reply_to, "NIL"));
+	str_append_c(str, ' ');
+	str_append(str, NVL(data->message_id, "NIL"));
 }
 
 const char *imap_envelope_get_part_data(MessagePartEnvelopeData *data)
 {
-	TempString *str;
+	String *str;
 
-	str = t_string_new(2048);
+	str = t_str_new(2048);
         imap_envelope_write_part_data(data, str);
-	return str->str;
+	return str_c(str);
 }
 
-static int imap_address_arg_append(ImapArg *arg, TempString *str, int *in_group)
+static int imap_address_arg_append(ImapArg *arg, String *str, int *in_group)
 {
 	ImapArgList *list;
 	const char *args[4];
@@ -143,14 +143,14 @@
 			return FALSE;
 	}
 
-	if (str->len > 0)
-		t_string_append(str, ", ");
+	if (str_len(str) > 0)
+		str_append(str, ", ");
 
 	if (*in_group) {
 		if (args[0] == NULL && args[1] == NULL &&
 		    args[2] == NULL && args[3] == NULL) {
 			/* end of group */
-			t_string_append_c(str, ';');
+			str_append_c(str, ';');
 			*in_group = FALSE;
 			return TRUE;
 		}
@@ -158,8 +158,8 @@
 		if (args[0] == NULL && args[1] == NULL &&
 		    args[2] != NULL && args[3] == NULL) {
 			/* beginning of group */
-			t_string_append(str, args[2]);
-			t_string_append(str, ": ");
+			str_append(str, args[2]);
+			str_append(str, ": ");
 			*in_group = TRUE;
 			return TRUE;
 		}
@@ -167,30 +167,30 @@
 
         /* name <@route:mailbox at domain> */
 	if (args[0] != NULL) {
-		t_string_append(str, args[0]);
-		t_string_append_c(str, ' ');
+		str_append(str, args[0]);
+		str_append_c(str, ' ');
 	}
 
-	t_string_append_c(str, '<');
+	str_append_c(str, '<');
 	if (args[1] != NULL) {
-		t_string_append_c(str, '@');
-		t_string_append(str, args[1]);
-		t_string_append_c(str, ':');
+		str_append_c(str, '@');
+		str_append(str, args[1]);
+		str_append_c(str, ':');
 	}
 	if (args[2] != NULL)
-		t_string_append(str, args[2]);
+		str_append(str, args[2]);
 	if (args[3] != NULL) {
-		t_string_append_c(str, '@');
-		t_string_append(str, args[3]);
+		str_append_c(str, '@');
+		str_append(str, args[3]);
 	}
-	t_string_append_c(str, '>');
+	str_append_c(str, '>');
 	return TRUE;
 }
 
 static const char *imap_envelope_parse_address(ImapArg *arg)
 {
 	ImapArgList *list;
-	TempString *str;
+	String *str;
 	size_t i;
 	int in_group;
 
@@ -198,7 +198,7 @@
 		return NULL;
 
 	in_group = FALSE;
-	str = t_string_new(128);
+	str = t_str_new(128);
 
         list = arg->data.list;
 	for (i = 0; i < list->size; i++) {
@@ -206,7 +206,7 @@
 			return NULL;
 	}
 
-	return str->str;
+	return str_c(str);
 }
 
 static const char *imap_envelope_parse_first_mailbox(ImapArg *arg)

Index: imap-envelope.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-envelope.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- imap-envelope.h	17 Dec 2002 04:28:41 -0000	1.4
+++ imap-envelope.h	21 Dec 2002 22:02:58 -0000	1.5
@@ -31,7 +31,7 @@
 
 /* Write envelope to given string */
 void imap_envelope_write_part_data(MessagePartEnvelopeData *data,
-				   TempString *str);
+				   String *str);
 /* Return envelope. */
 const char *imap_envelope_get_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.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- imap-message-cache.c	21 Dec 2002 13:08:49 -0000	1.27
+++ imap-message-cache.c	21 Dec 2002 22:02:58 -0000	1.28
@@ -2,7 +2,6 @@
 
 #include "lib.h"
 #include "istream.h"
-#include "temp-string.h"
 #include "mmap-util.h"
 #include "message-parser.h"
 #include "message-part-serialize.h"

Index: imap-quote.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-quote.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- imap-quote.c	4 Nov 2002 07:11:32 -0000	1.2
+++ imap-quote.c	21 Dec 2002 22:02:58 -0000	1.3
@@ -1,7 +1,7 @@
 /* Copyright (C) 2002 Timo Sirainen */
 
 #include "lib.h"
-#include "temp-string.h"
+#include "str.h"
 #include "imap-quote.h"
 
 #define IS_BREAK_CHAR(c) \
@@ -78,7 +78,7 @@
 	return i;
 }
 
-static void append_quoted_qp(TempString *str, const char *value, size_t len)
+static void append_quoted_qp(String *str, const char *value, size_t len)
 {
 	size_t i;
 	unsigned char c;
@@ -89,44 +89,44 @@
 
 	for (i = 0; i < len; i++) {
 		if (value[i] == ' ')
-			t_string_append_c(str, '_');
+			str_append_c(str, '_');
 		else if ((value[i] >= 'A' && value[i] <= 'Z') ||
 			 (value[i] >= 'a' && value[i] <= 'z') ||
 			 (value[i] >= '0' && value[i] <= '9')) {
-			t_string_append_c(str, value[i]);
+			str_append_c(str, value[i]);
 		} else {
-			t_string_append_c(str, '=');
+			str_append_c(str, '=');
 			c = (unsigned char)value[i] >> 4;
-			t_string_append_c(str, c < 10 ? (c+'0') : (c-10+'A'));
+			str_append_c(str, c < 10 ? (c+'0') : (c-10+'A'));
 			c = (unsigned char)value[i] & 0x0f;
-			t_string_append_c(str, c < 10 ? (c+'0') : (c-10+'A'));
+			str_append_c(str, c < 10 ? (c+'0') : (c-10+'A'));
 		}
 	}
 }
 
-static void append_quoted(TempString *str, const char *value, size_t len)
+static void append_quoted(String *str, const char *value, size_t len)
 {
 	size_t i;
 
 	for (i = 0; i < len; i++) {
 		if (value[i] == '\\' || value[i] == '"')
-			t_string_append_c(str, '\\');
-		t_string_append_c(str, value[i]);
+			str_append_c(str, '\\');
+		str_append_c(str, value[i]);
 	}
 }
 
 /* does two things: 1) escape '\' and '"' characters, 2) 8bit text -> QP */
-static TempString *get_quoted_str(const char *value, size_t value_len)
+static String *get_quoted_str(const char *value, size_t value_len)
 {
-	TempString *str;
+	String *str;
 	size_t token_len;
 	int qp, need_qp, quoted;
 
-	str = t_string_new(value_len * 2);
+	str = t_str_new(value_len * 2);
 	qp = FALSE;
 	quoted = FALSE;
 
-	t_string_append_c(str, '"');
+	str_append_c(str, '"');
 	while (value_len > 0) {
 		token_len = next_token(value, value_len, &need_qp, &quoted, qp);
 		i_assert(token_len > 0 && token_len <= value_len);
@@ -140,10 +140,10 @@
 		}
 
 		if (need_qp && !qp) {
-			t_string_append(str, "=?x-unknown?Q?");
+			str_append(str, "=?x-unknown?Q?");
 			qp = TRUE;
 		} else if (!need_qp && qp) {
-			t_string_append(str, "?=");
+			str_append(str, "?=");
 			qp = FALSE;
 		}
 
@@ -156,8 +156,8 @@
 		value_len -= token_len;
 	}
 
-	if (qp) t_string_append(str, "?=");
-	t_string_append_c(str, '"');
+	if (qp) str_append(str, "?=");
+	str_append_c(str, '"');
 
 	return str;
 }
@@ -165,13 +165,13 @@
 const char *imap_quote_str_nil(const char *value)
 {
 	return value == NULL ? "NIL" :
-		get_quoted_str(value, strlen(value))->str;
+		str_c(get_quoted_str(value, strlen(value)));
 }
 
 char *imap_quote_value(Pool pool, const char *value, size_t value_len)
 {
-	TempString *str;
+	String *str;
 
 	str = get_quoted_str(value, value_len);
-	return p_strndup(pool, str->str, str->len);
+	return p_strndup(pool, str_c(str), str_len(str));
 }

Index: imap-util.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-util.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- imap-util.c	18 Dec 2002 15:15:41 -0000	1.4
+++ imap-util.c	21 Dec 2002 22:02:58 -0000	1.5
@@ -1,13 +1,13 @@
 /* Copyright (C) 2002 Timo Sirainen */
 
 #include "lib.h"
-#include "temp-string.h"
+#include "str.h"
 #include "imap-util.h"
 
 const char *imap_write_flags(MailFlags flags, const char *custom_flags[],
 			     unsigned int custom_flags_count)
 {
-	TempString *str;
+	String *str;
 	const char *sysflags, *name;
 	unsigned int i;
 
@@ -31,21 +31,21 @@
 		return sysflags;
 
 	/* we have custom flags too */
-	str = t_string_new(256);
-	t_string_append(str, sysflags);
+	str = t_str_new(256);
+	str_append(str, sysflags);
 
 	for (i = 0; i < custom_flags_count; i++) {
 		if (flags & (1 << (i + MAIL_CUSTOM_FLAG_1_BIT))) {
 			name = custom_flags[i];
 			if (name != NULL && *name != '\0') {
-				if (str->len > 0)
-					t_string_append_c(str, ' ');
-				t_string_append(str, name);
+				if (str_len(str) > 0)
+					str_append_c(str, ' ');
+				str_append(str, name);
 			}
 		}
 	}
 
-	return str->str;
+	return str_c(str);
 }
 
 const char *imap_escape(const char *str)




More information about the dovecot-cvs mailing list