Signed-off-by: Michael Haggerty <mhagger@xxxxxxxxxxxx> --- imap-send.c | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/imap-send.c b/imap-send.c index 70abe9b..3167dcc 100644 --- a/imap-send.c +++ b/imap-send.c @@ -1089,36 +1089,21 @@ static void lf_to_crlf(struct strbuf *msg) { size_t new_len; char *new; - int i, j, lfnum = 0; + int i, j = 0, lfnum = 0; + char lastc; - if (msg->buf[0] == '\n') - lfnum++; - for (i = 1; i < msg->len; i++) { - if (msg->buf[i - 1] != '\r' && msg->buf[i] == '\n') + for (i = 0, lastc = '\0'; i < msg->len; i++) { + if (msg->buf[i] == '\n' && lastc != '\r') lfnum++; + lastc = msg->buf[i]; } new_len = msg->len + lfnum; new = xmalloc(new_len + 1); - if (msg->buf[0] == '\n') { - new[0] = '\r'; - new[1] = '\n'; - i = 1; - j = 2; - } else { - new[0] = msg->buf[0]; - i = 1; - j = 1; - } - for ( ; i < msg->len; i++) { - if (msg->buf[i] != '\n') { - new[j++] = msg->buf[i]; - continue; - } - if (msg->buf[i - 1] != '\r') + for (i = 0, lastc = '\0'; i < msg->len; i++) { + if (msg->buf[i] == '\n' && lastc != '\r') new[j++] = '\r'; - /* otherwise it already had CR before */ - new[j++] = '\n'; + lastc = new[j++] = msg->buf[i]; } strbuf_attach(msg, new, new_len, new_len + 1); } -- 1.8.0.3 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html