Hitoshi Mitake <mitake@xxxxxxxxxxxxxxxxxxxxx> writes: > According to RFC of IMAP, all messages must not have "bare newlines ('\n')". > '\n' should be converted to "\r\n" before storing messages to IMAP's mailbox. > This patch implements the converting function to git-imap-send. > > Cc: Erik Faye-Lund <kusmabite@xxxxxxxxxxxxxx> > Cc: Jakub Narebski <jnareb@xxxxxxxxx> > Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> > Cc: Jeff King <peff@xxxxxxxx> > Signed-off-by: Hitoshi Mitake <mitake@xxxxxxxxxxxxxxxxxxxxx> > --- > imap-send.c | 25 +++++++++++++++++++++++++ > 1 files changed, 25 insertions(+), 0 deletions(-) > > diff --git a/imap-send.c b/imap-send.c > index dcd8a2a..dbc72ca 100644 > --- a/imap-send.c > +++ b/imap-send.c > @@ -1279,6 +1279,30 @@ static int imap_make_flags(int flags, char *buf) > return d; > } > > +static void lf_to_crlf(struct msg_data *msg) > +{ > + char *new; > + int i, j, lfnum = 0; > + > + for (i = 0; i < msg->len; i++) { > + if (msg->data[i] == '\n') > + lfnum++; > + } > + new = xcalloc(msg->len + lfnum, sizeof(char)); > + for (i = 0, j = 0; i < msg->len; i++) { > + if (msg->data[i] != '\n') { > + new[j++] = msg->data[i]; > + continue; > + } > + new[j++] = '\r'; > + new[j++] = '\n'; > + } > + msg->len += lfnum; > + free(msg->data); > + msg->data = new; > + msg->crlf = 1; > +} Thanks. Two questions: - "msg->crlf" -- what is it used for? Do we need to maintain it? - Can the incoming payload already be CRLF terminated? If so, do we want to convert it into CRCRLF? -- 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