changeset 1568:235f67c3cc9f HEAD

LIST and STATUS replies shouldn't strip tabs and spaces from mailbox names.
author Timo Sirainen <tss@iki.fi>
date Mon, 23 Jun 2003 21:22:48 +0300
parents 253967fa5b8a
children 059c82e833b2
files src/imap/cmd-list.c src/imap/cmd-status.c src/lib-imap/imap-bodystructure.c src/lib-imap/imap-envelope.c src/lib-imap/imap-quote.c src/lib-imap/imap-quote.h
diffstat 6 files changed, 17 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/src/imap/cmd-list.c	Mon Jun 23 20:10:01 2003 +0300
+++ b/src/imap/cmd-list.c	Mon Jun 23 21:22:48 2003 +0300
@@ -166,7 +166,7 @@
 			str = t_str_new(256);
 			str_printfa(str, "* %s (%s) \"%s\" ",
 				    ctx->response_name, flagstr, ctx->sep);
-			imap_quote_append_string(str, send_name);
+			imap_quote_append_string(str, send_name, FALSE);
 			client_send_line(ctx->client, str_c(str));
 			t_pop();
 		}
@@ -228,7 +228,7 @@
 		if (strcasecmp(list->name, "INBOX") == 0)
 			str_append(str, "INBOX");
 		else
-			imap_quote_append_string(str, list->name);
+			imap_quote_append_string(str, list->name, FALSE);
 		client_send_line(client, str_c(str));
 		t_pop();
 	}
--- a/src/imap/cmd-status.c	Mon Jun 23 20:10:01 2003 +0300
+++ b/src/imap/cmd-status.c	Mon Jun 23 21:22:48 2003 +0300
@@ -111,7 +111,7 @@
 
 	str = t_str_new(128);
 	str_append(str, "* STATUS ");
-        imap_quote_append_string(str, mailbox);
+        imap_quote_append_string(str, mailbox, FALSE);
 	str_append(str, " (");
 
 	if (items & STATUS_MESSAGES)
--- a/src/lib-imap/imap-bodystructure.c	Mon Jun 23 20:10:01 2003 +0300
+++ b/src/lib-imap/imap-bodystructure.c	Mon Jun 23 21:22:48 2003 +0300
@@ -74,9 +74,9 @@
 	if (name_len == 7 && memcasecmp(name, "charset", 7) == 0)
 		data->charset_found = TRUE;
 
-	imap_quote_append(data->str, name, name_len);
+	imap_quote_append(data->str, name, name_len, TRUE);
 	str_append_c(data->str, ' ');
-	imap_quote_append(data->str, value, value_len);
+	imap_quote_append(data->str, value, value_len, TRUE);
 }
 
 static void parse_content_transfer_encoding(const unsigned char *value,
--- a/src/lib-imap/imap-envelope.c	Mon Jun 23 20:10:01 2003 +0300
+++ b/src/lib-imap/imap-envelope.c	Mon Jun 23 21:22:48 2003 +0300
@@ -156,13 +156,13 @@
 	str_append_c(str, '(');
 	while (addr != NULL) {
 		str_append_c(str, '(');
-		imap_quote_append_string(str, addr->name);
+		imap_quote_append_string(str, addr->name, TRUE);
 		str_append_c(str, ' ');
-		imap_quote_append_string(str, addr->route);
+		imap_quote_append_string(str, addr->route, TRUE);
 		str_append_c(str, ' ');
-		imap_quote_append_string(str, addr->mailbox);
+		imap_quote_append_string(str, addr->mailbox, TRUE);
 		str_append_c(str, ' ');
-		imap_quote_append_string(str, addr->domain);
+		imap_quote_append_string(str, addr->domain, TRUE);
 		str_append_c(str, ')');
 
 		addr = addr->next;
--- a/src/lib-imap/imap-quote.c	Mon Jun 23 20:10:01 2003 +0300
+++ b/src/lib-imap/imap-quote.c	Mon Jun 23 21:22:48 2003 +0300
@@ -5,7 +5,7 @@
 #include "imap-quote.h"
 
 void imap_quote_append(string_t *str, const unsigned char *value,
-		       size_t value_len)
+		       size_t value_len, int compress_lwsp)
 {
 	size_t i, extra = 0;
 	int last_lwsp = TRUE, literal = FALSE, modify = FALSE;
@@ -28,7 +28,7 @@
 			break;
 		case ' ':
 		case '\t':
-			if (last_lwsp) {
+			if (last_lwsp && compress_lwsp) {
 				modify = TRUE;
 				extra++;
 			}
@@ -67,7 +67,7 @@
 				break;
 			case ' ':
 			case '\t':
-				if (!last_lwsp)
+				if (!last_lwsp || !compress_lwsp)
 					str_append_c(str, ' ');
 				last_lwsp = TRUE;
 				break;
@@ -98,7 +98,7 @@
 
 	t_push();
 	str = t_str_new(value_len + MAX_INT_STRLEN + 5);
-	imap_quote_append(str, value, value_len);
+	imap_quote_append(str, value, value_len, TRUE);
 	ret = p_strndup(pool, str_data(str), str_len(str));
 	t_pop();
 
--- a/src/lib-imap/imap-quote.h	Mon Jun 23 20:10:01 2003 +0300
+++ b/src/lib-imap/imap-quote.h	Mon Jun 23 21:22:48 2003 +0300
@@ -8,9 +8,10 @@
 
 /* Append to existing string. */
 void imap_quote_append(string_t *str, const unsigned char *value,
-		       size_t value_len);
+		       size_t value_len, int compress_lwsp);
 
-#define imap_quote_append_string(str, value) \
-	imap_quote_append(str, (const unsigned char *) value, (size_t)-1)
+#define imap_quote_append_string(str, value, compress_lwsp) \
+	imap_quote_append(str, (const unsigned char *) value, \
+			  (size_t)-1, compress_lwsp)
 
 #endif