From 9adb42e5799f5055e3326889e026fb63ce0fa3ee Mon Sep 17 00:00:00 2001 From: Jordan Cristiano Date: Sun, 21 Jun 2015 01:17:25 -0400 Subject: [PATCH] Added encode flag to control whether the encoded string ends in a newline after padding or not --- external/libb64-1.2.1/include/b64/cencode.h | 6 ++++++ external/libb64-1.2.1/src/cencode.c | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/external/libb64-1.2.1/include/b64/cencode.h b/external/libb64-1.2.1/include/b64/cencode.h index cf32131..88414be 100644 --- a/external/libb64-1.2.1/include/b64/cencode.h +++ b/external/libb64-1.2.1/include/b64/cencode.h @@ -13,8 +13,14 @@ typedef enum step_A, step_B, step_C } base64_encodestep; +typedef enum +{ + BASE64_ENC_NO_NEWLINE_TERM = 0x1 +} base64_encodeflags; + typedef struct { + base64_encodeflags flags; base64_encodestep step; char result; int stepcount; diff --git a/external/libb64-1.2.1/src/cencode.c b/external/libb64-1.2.1/src/cencode.c index 03ba5b6..7193ad7 100644 --- a/external/libb64-1.2.1/src/cencode.c +++ b/external/libb64-1.2.1/src/cencode.c @@ -11,6 +11,7 @@ const int CHARS_PER_LINE = 72; void base64_init_encodestate(base64_encodestate* state_in) { + state_in->flags = 0; state_in->step = step_A; state_in->result = 0; state_in->stepcount = 0; @@ -102,7 +103,10 @@ int base64_encode_blockend(char* code_out, base64_encodestate* state_in) case step_A: break; } - *codechar++ = '\n'; + if ((BASE64_ENC_NO_NEWLINE_TERM & state_in->flags) == 0) + { + *codechar++ = '\n'; + } return codechar - code_out; }