[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, "ed, 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