# HG changeset patch # User Timo Sirainen # Date 1453121784 -7200 # Node ID 5795761cec2b7bc20eb3a16cf77f078318009cf1 # Parent b0707e5a89cdea8c64711ebdc9f8d8b36b1a043a lib-mail: Added message_header_line_write() diff -r b0707e5a89cd -r 5795761cec2b src/lib-mail/message-header-parser.c --- 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'); + } +} diff -r b0707e5a89cd -r 5795761cec2b src/lib-mail/message-header-parser.h --- 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