Commit e154eedb authored by Brad King's avatar Brad King
Browse files

Merge branch 'upstream-KWSys' into update-kwsys

* upstream-KWSys:
  KWSys 2016-11-08 (2b3e2b1c)
parents 6cf5847e 5e84b1dc
/*============================================================================ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
KWSys - Kitware System Library file Copyright.txt or https://cmake.org/licensing#kwsys for details. */
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#include "kwsysPrivate.h" #include "kwsysPrivate.h"
#include KWSYS_HEADER(Base64.h) #include KWSYS_HEADER(Base64.h)
/* Work-around CMake dependency scanning limitation. This must /* Work-around CMake dependency scanning limitation. This must
duplicate the above list of headers. */ duplicate the above list of headers. */
#if 0 #if 0
# include "Base64.h.in" #include "Base64.h.in"
#endif #endif
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
static const unsigned char kwsysBase64EncodeTable[65] = static const unsigned char kwsysBase64EncodeTable[65] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz" "abcdefghijklmnopqrstuvwxyz"
"0123456789+/"; "0123456789+/";
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
static const unsigned char kwsysBase64DecodeTable[256] = static const unsigned char kwsysBase64DecodeTable[256] = {
{ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0xFF, 0xFF, 0xFF, 0x3F, 0x34, 0x35, 0x36, 0x37,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
0xFF,0xFF,0xFF,0x3E,0xFF,0xFF,0xFF,0x3F, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20,
0x3C,0x3D,0xFF,0xFF,0xFF,0x00,0xFF,0xFF, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D,
0xFF,0x00,0x01,0x02,0x03,0x04,0x05,0x06, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,
0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,
0x17,0x18,0x19,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,
0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,
0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,
0x31,0x32,0x33,0xFF,0xFF,0xFF,0xFF,0xFF,
/*------------------------------------*/ /*------------------------------------*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
}; };
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
...@@ -76,27 +54,30 @@ static unsigned char kwsysBase64DecodeChar(unsigned char c) ...@@ -76,27 +54,30 @@ static unsigned char kwsysBase64DecodeChar(unsigned char c)
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
/* Encode 3 bytes into a 4 byte string. */ /* Encode 3 bytes into a 4 byte string. */
void kwsysBase64_Encode3(const unsigned char *src, unsigned char *dest) void kwsysBase64_Encode3(const unsigned char* src, unsigned char* dest)
{ {
dest[0] = kwsysBase64EncodeChar((src[0] >> 2) & 0x3F); dest[0] = kwsysBase64EncodeChar((src[0] >> 2) & 0x3F);
dest[1] = kwsysBase64EncodeChar(((src[0] << 4) & 0x30)|((src[1] >> 4) & 0x0F)); dest[1] =
dest[2] = kwsysBase64EncodeChar(((src[1] << 2) & 0x3C)|((src[2] >> 6) & 0x03)); kwsysBase64EncodeChar(((src[0] << 4) & 0x30) | ((src[1] >> 4) & 0x0F));
dest[2] =
kwsysBase64EncodeChar(((src[1] << 2) & 0x3C) | ((src[2] >> 6) & 0x03));
dest[3] = kwsysBase64EncodeChar(src[2] & 0x3F); dest[3] = kwsysBase64EncodeChar(src[2] & 0x3F);
} }
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
/* Encode 2 bytes into a 4 byte string. */ /* Encode 2 bytes into a 4 byte string. */
void kwsysBase64_Encode2(const unsigned char *src, unsigned char *dest) void kwsysBase64_Encode2(const unsigned char* src, unsigned char* dest)
{ {
dest[0] = kwsysBase64EncodeChar((src[0] >> 2) & 0x3F); dest[0] = kwsysBase64EncodeChar((src[0] >> 2) & 0x3F);
dest[1] = kwsysBase64EncodeChar(((src[0] << 4) & 0x30)|((src[1] >> 4) & 0x0F)); dest[1] =
kwsysBase64EncodeChar(((src[0] << 4) & 0x30) | ((src[1] >> 4) & 0x0F));
dest[2] = kwsysBase64EncodeChar(((src[1] << 2) & 0x3C)); dest[2] = kwsysBase64EncodeChar(((src[1] << 2) & 0x3C));
dest[3] = '='; dest[3] = '=';
} }
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
/* Encode 1 bytes into a 4 byte string. */ /* Encode 1 bytes into a 4 byte string. */
void kwsysBase64_Encode1(const unsigned char *src, unsigned char *dest) void kwsysBase64_Encode1(const unsigned char* src, unsigned char* dest)
{ {
dest[0] = kwsysBase64EncodeChar((src[0] >> 2) & 0x3F); dest[0] = kwsysBase64EncodeChar((src[0] >> 2) & 0x3F);
dest[1] = kwsysBase64EncodeChar(((src[0] << 4) & 0x30)); dest[1] = kwsysBase64EncodeChar(((src[0] << 4) & 0x30));
...@@ -115,54 +96,48 @@ void kwsysBase64_Encode1(const unsigned char *src, unsigned char *dest) ...@@ -115,54 +96,48 @@ void kwsysBase64_Encode1(const unsigned char *src, unsigned char *dest)
actually knowing how much data to expect (if the input is not a multiple of actually knowing how much data to expect (if the input is not a multiple of
3 bytes then the extra padding needed to complete the encode 4 bytes will 3 bytes then the extra padding needed to complete the encode 4 bytes will
stop the decoding anyway). */ stop the decoding anyway). */
size_t kwsysBase64_Encode(const unsigned char *input, size_t kwsysBase64_Encode(const unsigned char* input, size_t length,
size_t length, unsigned char* output, int mark_end)
unsigned char *output,
int mark_end)
{ {
const unsigned char *ptr = input; const unsigned char* ptr = input;
const unsigned char *end = input + length; const unsigned char* end = input + length;
unsigned char *optr = output; unsigned char* optr = output;
/* Encode complete triplet */ /* Encode complete triplet */
while ((end - ptr) >= 3) while ((end - ptr) >= 3) {
{
kwsysBase64_Encode3(ptr, optr); kwsysBase64_Encode3(ptr, optr);
ptr += 3; ptr += 3;
optr += 4; optr += 4;
} }
/* Encodes a 2-byte ending into 3 bytes and 1 pad byte and writes. */ /* Encodes a 2-byte ending into 3 bytes and 1 pad byte and writes. */
if (end - ptr == 2) if (end - ptr == 2) {
{
kwsysBase64_Encode2(ptr, optr); kwsysBase64_Encode2(ptr, optr);
optr += 4; optr += 4;
} }
/* Encodes a 1-byte ending into 2 bytes and 2 pad bytes */ /* Encodes a 1-byte ending into 2 bytes and 2 pad bytes */
else if (end - ptr == 1) else if (end - ptr == 1) {
{
kwsysBase64_Encode1(ptr, optr); kwsysBase64_Encode1(ptr, optr);
optr += 4; optr += 4;
} }
/* Do we need to mark the end */ /* Do we need to mark the end */
else if (mark_end) else if (mark_end) {
{
optr[0] = optr[1] = optr[2] = optr[3] = '='; optr[0] = optr[1] = optr[2] = optr[3] = '=';
optr += 4; optr += 4;
} }
return (size_t)(optr - output); return (size_t)(optr - output);
} }
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
/* Decode 4 bytes into a 3 byte string. */ /* Decode 4 bytes into a 3 byte string. */
int kwsysBase64_Decode3(const unsigned char *src, unsigned char *dest) int kwsysBase64_Decode3(const unsigned char* src, unsigned char* dest)
{ {
unsigned char d0, d1, d2, d3; unsigned char d0, d1, d2, d3;
...@@ -170,35 +145,32 @@ int kwsysBase64_Decode3(const unsigned char *src, unsigned char *dest) ...@@ -170,35 +145,32 @@ int kwsysBase64_Decode3(const unsigned char *src, unsigned char *dest)
d1 = kwsysBase64DecodeChar(src[1]); d1 = kwsysBase64DecodeChar(src[1]);
d2 = kwsysBase64DecodeChar(src[2]); d2 = kwsysBase64DecodeChar(src[2]);
d3 = kwsysBase64DecodeChar(src[3]); d3 = kwsysBase64DecodeChar(src[3]);
/* Make sure all characters were valid */ /* Make sure all characters were valid */
if (d0 == 0xFF || d1 == 0xFF || d2 == 0xFF || d3 == 0xFF) if (d0 == 0xFF || d1 == 0xFF || d2 == 0xFF || d3 == 0xFF) {
{ return 0;
return 0; }
}
/* Decode the 3 bytes */ /* Decode the 3 bytes */
dest[0] = (unsigned char)(((d0 << 2) & 0xFC) | ((d1 >> 4) & 0x03)); dest[0] = (unsigned char)(((d0 << 2) & 0xFC) | ((d1 >> 4) & 0x03));
dest[1] = (unsigned char)(((d1 << 4) & 0xF0) | ((d2 >> 2) & 0x0F)); dest[1] = (unsigned char)(((d1 << 4) & 0xF0) | ((d2 >> 2) & 0x0F));
dest[2] = (unsigned char)(((d2 << 6) & 0xC0) | ((d3 >> 0) & 0x3F)); dest[2] = (unsigned char)(((d2 << 6) & 0xC0) | ((d3 >> 0) & 0x3F));
/* Return the number of bytes actually decoded */ /* Return the number of bytes actually decoded */
if (src[2] == '=') if (src[2] == '=') {
{ return 1;
return 1; }
} if (src[3] == '=') {
if (src[3] == '=') return 2;
{ }
return 2;
}
return 3; return 3;
} }
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
/* Decode bytes from the input buffer and store the decoded stream /* Decode bytes from the input buffer and store the decoded stream
into the output buffer until 'length' bytes have been decoded. Return the into the output buffer until 'length' bytes have been decoded. Return the
real length of the decoded stream (which should be equal to 'length'). Note real length of the decoded stream (which should be equal to 'length'). Note
that the output buffer must be allocated by the caller. If that the output buffer must be allocated by the caller. If
...@@ -207,73 +179,57 @@ int kwsysBase64_Decode3(const unsigned char *src, unsigned char *dest) ...@@ -207,73 +179,57 @@ int kwsysBase64_Decode3(const unsigned char *src, unsigned char *dest)
'length' parameter is ignored. This enables the caller to decode a stream 'length' parameter is ignored. This enables the caller to decode a stream
without actually knowing how much decoded data to expect (of course, the without actually knowing how much decoded data to expect (of course, the
buffer must be large enough). */ buffer must be large enough). */
size_t kwsysBase64_Decode(const unsigned char *input, size_t kwsysBase64_Decode(const unsigned char* input, size_t length,
size_t length, unsigned char* output, size_t max_input_length)
unsigned char *output,
size_t max_input_length)
{ {
const unsigned char *ptr = input; const unsigned char* ptr = input;
unsigned char *optr = output; unsigned char* optr = output;
/* Decode complete triplet */ /* Decode complete triplet */
if (max_input_length) if (max_input_length) {
{ const unsigned char* end = input + max_input_length;
const unsigned char *end = input + max_input_length; while (ptr < end) {
while (ptr < end)
{
int len = kwsysBase64_Decode3(ptr, optr); int len = kwsysBase64_Decode3(ptr, optr);
optr += len; optr += len;
if(len < 3) if (len < 3) {
{
return (size_t)(optr - output); return (size_t)(optr - output);
}
ptr += 4;
} }
} ptr += 4;
else }
{ } else {
unsigned char *oend = output + length; unsigned char* oend = output + length;
while ((oend - optr) >= 3) while ((oend - optr) >= 3) {
{
int len = kwsysBase64_Decode3(ptr, optr); int len = kwsysBase64_Decode3(ptr, optr);
optr += len; optr += len;
if(len < 3) if (len < 3) {
{
return (size_t)(optr - output); return (size_t)(optr - output);
}
ptr += 4;
} }
ptr += 4;
}
/* Decode the last triplet */ /* Decode the last triplet */
if (oend - optr == 2) if (oend - optr == 2) {
{
unsigned char temp[3]; unsigned char temp[3];
int len = kwsysBase64_Decode3(ptr, temp); int len = kwsysBase64_Decode3(ptr, temp);
if(len >= 2) if (len >= 2) {
{
optr[0] = temp[0]; optr[0] = temp[0];
optr[1] = temp[1]; optr[1] = temp[1];
optr += 2; optr += 2;
} } else if (len > 0) {
else if(len > 0)
{
optr[0] = temp[0]; optr[0] = temp[0];
optr += 1; optr += 1;
}
} }
else if (oend - optr == 1) } else if (oend - optr == 1) {
{
unsigned char temp[3]; unsigned char temp[3];
int len = kwsysBase64_Decode3(ptr, temp); int len = kwsysBase64_Decode3(ptr, temp);
if(len > 0) if (len > 0) {
{
optr[0] = temp[0]; optr[0] = temp[0];
optr += 1; optr += 1;
}
} }
} }
}
return (size_t)(optr - output); return (size_t)(optr - output);
} }
/*============================================================================ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
KWSys - Kitware System Library file Copyright.txt or https://cmake.org/licensing#kwsys for details. */
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#ifndef @KWSYS_NAMESPACE@_Base64_h #ifndef @KWSYS_NAMESPACE@_Base64_h
#define @KWSYS_NAMESPACE@_Base64_h #define @KWSYS_NAMESPACE@_Base64_h
...@@ -21,41 +12,40 @@ ...@@ -21,41 +12,40 @@
not visible to user code. Use kwsysHeaderDump.pl to reproduce not visible to user code. Use kwsysHeaderDump.pl to reproduce
these macros after making changes to the interface. */ these macros after making changes to the interface. */
#if !defined(KWSYS_NAMESPACE) #if !defined(KWSYS_NAMESPACE)
# define kwsys_ns(x) @KWSYS_NAMESPACE@##x #define kwsys_ns(x) @KWSYS_NAMESPACE@##x
# define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT #define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT
#endif #endif
#if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS #if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
# define kwsysBase64 kwsys_ns(Base64) #define kwsysBase64 kwsys_ns(Base64)
# define kwsysBase64_Decode kwsys_ns(Base64_Decode) #define kwsysBase64_Decode kwsys_ns(Base64_Decode)
# define kwsysBase64_Decode3 kwsys_ns(Base64_Decode3) #define kwsysBase64_Decode3 kwsys_ns(Base64_Decode3)
# define kwsysBase64_Encode kwsys_ns(Base64_Encode) #define kwsysBase64_Encode kwsys_ns(Base64_Encode)
# define kwsysBase64_Encode1 kwsys_ns(Base64_Encode1) #define kwsysBase64_Encode1 kwsys_ns(Base64_Encode1)
# define kwsysBase64_Encode2 kwsys_ns(Base64_Encode2) #define kwsysBase64_Encode2 kwsys_ns(Base64_Encode2)
# define kwsysBase64_Encode3 kwsys_ns(Base64_Encode3) #define kwsysBase64_Encode3 kwsys_ns(Base64_Encode3)
#endif #endif
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" extern "C" {
{
#endif #endif
/** /**
* Encode 3 bytes into a 4 byte string. * Encode 3 bytes into a 4 byte string.
*/ */
kwsysEXPORT void kwsysBase64_Encode3(const unsigned char *src, kwsysEXPORT void kwsysBase64_Encode3(const unsigned char* src,
unsigned char *dest); unsigned char* dest);
/** /**
* Encode 2 bytes into a 4 byte string. * Encode 2 bytes into a 4 byte string.
*/ */
kwsysEXPORT void kwsysBase64_Encode2(const unsigned char *src, kwsysEXPORT void kwsysBase64_Encode2(const unsigned char* src,
unsigned char *dest); unsigned char* dest);
/** /**
* Encode 1 bytes into a 4 byte string. * Encode 1 bytes into a 4 byte string.
*/ */
kwsysEXPORT void kwsysBase64_Encode1(const unsigned char *src, kwsysEXPORT void kwsysBase64_Encode1(const unsigned char* src,
unsigned char *dest); unsigned char* dest);
/** /**
* Encode 'length' bytes from the input buffer and store the encoded * Encode 'length' bytes from the input buffer and store the encoded
...@@ -70,17 +60,16 @@ kwsysEXPORT void kwsysBase64_Encode1(const unsigned char *src, ...@@ -70,17 +60,16 @@ kwsysEXPORT void kwsysBase64_Encode1(const unsigned char *src,
* the extra padding needed to complete the encode 4 bytes will stop * the extra padding needed to complete the encode 4 bytes will stop
* the decoding anyway). * the decoding anyway).
*/ */
kwsysEXPORT size_t kwsysBase64_Encode(const unsigned char *input, kwsysEXPORT size_t kwsysBase64_Encode(const unsigned char* input,
size_t length, size_t length, unsigned char* output,
unsigned char *output,
int mark_end); int mark_end);
/** /**
* Decode 4 bytes into a 3 byte string. Returns the number of bytes * Decode 4 bytes into a 3 byte string. Returns the number of bytes
* actually decoded. * actually decoded.
*/ */
kwsysEXPORT int kwsysBase64_Decode3(const unsigned char *src, kwsysEXPORT int kwsysBase64_Decode3(const unsigned char* src,
unsigned char *dest); unsigned char* dest);
/** /**
* Decode bytes from the input buffer and store the decoded stream * Decode bytes from the input buffer and store the decoded stream
...@@ -94,9 +83,8 @@ kwsysEXPORT int kwsysBase64_Decode3(const unsigned char *src, ...@@ -94,9 +83,8 @@ kwsysEXPORT int kwsysBase64_Decode3(const unsigned char *src,
* much decoded data to expect (of course, the buffer must be large * much decoded data to expect (of course, the buffer must be large
* enough). * enough).
*/ */
kwsysEXPORT size_t kwsysBase64_Decode(const unsigned char *input, kwsysEXPORT size_t kwsysBase64_Decode(const unsigned char* input,
size_t length, size_t length, unsigned char* output,
unsigned char *output,
size_t max_input_length); size_t max_input_length);
#if defined(__cplusplus) #if defined(__cplusplus)
...@@ -106,17 +94,17 @@ kwsysEXPORT size_t kwsysBase64_Decode(const unsigned char *input, ...@@ -106,17 +94,17 @@ kwsysEXPORT size_t kwsysBase64_Decode(const unsigned char *input,
/* If we are building a kwsys .c or .cxx file, let it use these macros. /* If we are building a kwsys .c or .cxx file, let it use these macros.
Otherwise, undefine them to keep the namespace clean. */ Otherwise, undefine them to keep the namespace clean. */
#if !defined(KWSYS_NAMESPACE) #if !defined(KWSYS_NAMESPACE)
# undef kwsys_ns #undef kwsys_ns
# undef kwsysEXPORT #undef kwsysEXPORT
# if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS #if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
# undef kwsysBase64 #undef kwsysBase64
# undef kwsysBase64_Decode #undef kwsysBase64_Decode
# undef kwsysBase64_Decode3 #undef kwsysBase64_Decode3
# undef kwsysBase64_Encode #undef kwsysBase64_Encode
# undef kwsysBase64_Encode1 #undef kwsysBase64_Encode1
# undef kwsysBase64_Encode2 #undef kwsysBase64_Encode2
# undef kwsysBase64_Encode3 #undef kwsysBase64_Encode3
# endif #endif
#endif #endif
#endif #endif