This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU Mailutils".
http://git.savannah.gnu.org/cgit/mailutils.git/commit/?id=62db89e3dca29f9b931c62b25014955a4ede36c0 The branch, stream-cleanup has been updated via 62db89e3dca29f9b931c62b25014955a4ede36c0 (commit) from 17e7050b820314f268996c7f06ae9344a5f4f5c2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 62db89e3dca29f9b931c62b25014955a4ede36c0 Author: Sergey Poznyakoff <g...@gnu.org.ua> Date: Sat May 1 20:51:57 2010 +0300 Bugfixes. * mailbox/rfc2047.c (mu_rfc2047_decode): Rewind in_stream. * mailbox/stream.c (_stream_scandelim): Break the loop when the delimiter is found. * mailbox/streamref.c (_streamref_readdelim): Take into account the abridgement. ----------------------------------------------------------------------- Summary of changes: mailbox/rfc2047.c | 1 + mailbox/stream.c | 2 ++ mailbox/streamref.c | 30 +++++++++++++++++++++++++++--- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/mailbox/rfc2047.c b/mailbox/rfc2047.c index a5f61b4..df19d9f 100644 --- a/mailbox/rfc2047.c +++ b/mailbox/rfc2047.c @@ -162,6 +162,7 @@ mu_rfc2047_decode (const char *tocode, const char *input, char **ptostr) mu_memory_stream_create (&in_stream, 0); mu_stream_write (in_stream, encoded_text, size, NULL); + mu_stream_seek (in_stream, 0, MU_SEEK_SET, NULL); status = mu_decode_filter (&filter, in_stream, filter_type, fromcode, tocode); if (status != 0) diff --git a/mailbox/stream.c b/mailbox/stream.c index 21e4fec..4e74caf 100644 --- a/mailbox/stream.c +++ b/mailbox/stream.c @@ -563,6 +563,8 @@ _stream_scandelim (mu_stream_t stream, char *buf, size_t size, int delim, buf += len; size -= len; nread += len; + if (p) /* Delimiter found */ + break; } *buf = 0; *pnread = nread; diff --git a/mailbox/streamref.c b/mailbox/streamref.c index 0cad3fa..de5fec8 100644 --- a/mailbox/streamref.c +++ b/mailbox/streamref.c @@ -73,9 +73,33 @@ _streamref_readdelim (struct _mu_stream *str, char *buf, size_t bufsize, int delim, size_t *pnread) { struct _mu_streamref *sp = (struct _mu_streamref *)str; - return streamref_return (sp, mu_stream_readdelim (sp->transport, - buf, bufsize, - delim, pnread)); + int rc; + size_t nread; + mu_off_t off; + + rc = mu_stream_seek (sp->transport, sp->offset, MU_SEEK_SET, &off); + if (rc == 0) + { + if (sp->end) + { + size_t size = sp->end - off + 2; /* extra 1 to account for \0 */ + if (size < bufsize) + bufsize = size; + } + rc = mu_stream_readdelim (sp->transport, buf, bufsize, delim, &nread); + if (rc == 0) + { + sp->offset += nread; + *pnread = nread; + } + } + else if (rc == ESPIPE) + { + *pnread = 0; + mu_stream_clearerr (sp->transport); + return 0; + } + return streamref_return (sp, rc); } static int hooks/post-receive -- GNU Mailutils _______________________________________________ Commit-mailutils mailing list Commit-mailutils@gnu.org http://lists.gnu.org/mailman/listinfo/commit-mailutils