From 2f6811fbde7bdecc490f2c279649912d9218b758 Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Tue, 2 Jun 1998 15:34:57 +0000 Subject: [PATCH] quote '^From ' properly git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5013 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/push/push.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/appl/push/push.c b/appl/push/push.c index 4a4836496..985f07ad9 100644 --- a/appl/push/push.c +++ b/appl/push/push.c @@ -277,6 +277,7 @@ doit(int s, if (FD_ISSET(s, &readset)) { char *beg, *p; size_t rem; + int blank_line; ret = read (s, in_ptr, sizeof(in_buf) - in_len - 1); if (ret < 0) @@ -297,6 +298,8 @@ doit(int s, if (beg[0] == '.') { if (beg[1] == '\r' && beg[2] == '\n') { + if(!blank_line) + write_state_add(&write_state, "\n", 1); state = STAT; rem -= p - beg + 2; beg = p + 2; @@ -335,13 +338,18 @@ doit(int s, ++copy; } *p = '\n'; + if(blank_line && + strncmp(copy, "From ", min(p - copy + 1, 5)) == 0) + write_state_add(&write_state, ">", 1); write_state_add(&write_state, copy, p - copy + 1); + blank_line = (*copy == '\n'); rem -= p - beg + 2; beg = p + 2; } else if (rem >= 3 && strncmp (beg, "+OK", 3) == 0) { if (state == STAT) { write_state_add(&write_state, from_line, from_line_length); + blank_line = 0; state = RETR; } else if (state == DELE) { if (++deleted == count) {