use glib's b64 encode/decode, if available

see https://github.com/libvips/libvips/issues/1263
This commit is contained in:
John Cupitt 2019-03-20 13:51:41 +00:00
parent d7f9ad8b41
commit af0dc5265f
2 changed files with 30 additions and 0 deletions

View File

@ -461,6 +461,16 @@ AC_CHECK_LIB(m,atan2,[AC_DEFINE(HAVE_ATAN2,1,[have atan2() in libm.])])
PKG_CHECK_MODULES(REQUIRED, glib-2.0 >= 2.6 gmodule-2.0 gobject-2.0)
PACKAGES_USED="$PACKAGES_USED glib-2.0 gmodule-2.0 gobject-2.0"
# from 2.12 we have g_base64_encode()
PKG_CHECK_MODULES(BASE64_ENCODE, glib-2.0 >= 2.12,
[AC_DEFINE(HAVE_BASE64_ENCODE,1,
[define if your glib has g_base64_encode().]
)
],
[:
]
)
# from 2.14 we have g_option_context_get_help()
PKG_CHECK_MODULES(CONTEXT_GET_HELP, glib-2.0 >= 2.14,
[AC_DEFINE(HAVE_CONTEXT_GET_HELP,1,

View File

@ -90,6 +90,24 @@ Modified on:
#include <vips/vips.h>
#include <vips/internal.h>
#ifdef HAVE_BASE64_ENCODE
/* glib 2.12 adds these.
*/
char *
vips__b64_encode( const unsigned char *data, size_t data_length )
{
return( g_base64_encode( data, data_length ) );
}
unsigned char *
vips__b64_decode( const char *buffer, size_t *data_length )
{
return( g_base64_decode( buffer, data_length ) );
}
#else /*!HAVE_BASE64_ENCODE*/
static unsigned char b64_list[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
@ -295,3 +313,5 @@ vips__b64_decode( const char *buffer, size_t *data_length )
return( data );
}
#endif /*HAVE_BASE64_ENCODE*/