changeset 19584:5795761cec2b

lib-mail: Added message_header_line_write()
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Mon, 18 Jan 2016 14:56:24 +0200
parents b0707e5a89cd
children 796996d66955
files src/lib-mail/message-header-parser.c src/lib-mail/message-header-parser.h
diffstat 2 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-mail/message-header-parser.c	Fri Jan 15 14:11:34 2016 +0200
+++ b/src/lib-mail/message-header-parser.c	Mon Jan 18 14:56:24 2016 +0200
@@ -394,3 +394,18 @@
 	/* call after the final skipping */
 	callback(NULL, context);
 }
+
+void message_header_line_write(buffer_t *output,
+			       const struct message_header_line *hdr)
+{
+	if (!hdr->continued) {
+		buffer_append(output, hdr->name, strlen(hdr->name));
+		buffer_append(output, hdr->middle, hdr->middle_len);
+	}
+	buffer_append(output, hdr->value, hdr->value_len);
+	if (!hdr->no_newline) {
+		if (hdr->crlf_newline)
+			buffer_append_c(output, '\r');
+		buffer_append_c(output, '\n');
+	}
+}
--- a/src/lib-mail/message-header-parser.h	Fri Jan 15 14:11:34 2016 +0200
+++ b/src/lib-mail/message-header-parser.h	Mon Jan 18 14:56:24 2016 +0200
@@ -69,4 +69,9 @@
 			struct message_header_line *hdr, typeof(context))), \
  		(message_header_callback_t *)callback, context)
 
+/* Write the header line to buffer exactly as it was read, including the
+   newline. */
+void message_header_line_write(buffer_t *output,
+			       const struct message_header_line *hdr);
+
 #endif