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;