Mercurial > dovecot > original-hg > dovecot-1.2
changeset 5508:d1168da66050 HEAD
Skip trailing linefeeds/whitespace.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 03 Apr 2007 20:40:02 +0300 |
parents | 65250cfebd74 |
children | c46a29e0ea9d |
files | src/lib/base64.c |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/base64.c Tue Apr 03 20:02:59 2007 +0300 +++ b/src/lib/base64.c Tue Apr 03 20:40:02 2007 +0300 @@ -100,6 +100,9 @@ XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, }; +#define IS_EMPTY(c) \ + ((c) == '\n' || (c) == '\r' || (c) == ' ' || (c) == '\t') + int base64_decode(const void *src, size_t src_size, size_t *src_pos_r, buffer_t *dest) { @@ -112,7 +115,7 @@ for (src_pos = 0; src_pos+3 < src_size; ) { c1 = src_c[src_pos++]; - if (c1 == '\n' || c1 == '\r' || c1 == ' ' || c1 == '\t') + if (IS_EMPTY(c1)) continue; if (index_64[c1] == XX) @@ -155,6 +158,11 @@ } } + for (; src_pos < src_size; src_pos++) { + if (!IS_EMPTY(src_c[src_pos])) + break; + } + if (src_pos_r != NULL) *src_pos_r = src_pos;