From e3408b704dd0e4dbd6e47cbb9dd90362e4957098 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 8 Oct 2007 23:41:50 +0000 Subject: [PATCH] added wxBase64Decode() overload taking wxString, otherwise it's inconvenient to use in wxUSE_STL==1 build git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49095 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/function.tex | 8 +++++++- include/wx/base64.h | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/latex/wx/function.tex b/docs/latex/wx/function.tex index 5ab7cee273..76ecbf4986 100644 --- a/docs/latex/wx/function.tex +++ b/docs/latex/wx/function.tex @@ -2856,6 +2856,11 @@ The clipboard must have previously been opened for this call to succeed. \param{wxBase64DecodeMode }{mode = wxBase64DecodeMode\_Strict},\\ \param{size\_t }{*posErr = \NULL}} +\func{wxMemoryBuffer}{wxBase64Decode}{\\ +\param{const wxString\& }{src},\\ +\param{wxBase64DecodeMode }{mode = wxBase64DecodeMode\_Strict},\\ +\param{size\_t }{*posErr = \NULL}} + These function decode a Base64-encoded string. The first version is a raw decoding function and decodes the data into the provided buffer \arg{dst} of the given size \arg{dstLen}. An error is returned if the buffer is not large @@ -2878,7 +2883,8 @@ necessary buffer size.} \docparam{dstLen}{The size of the output buffer, ignored if \arg{dst} is \NULL.} -\docparam{src}{The input string, must not be \NULL.} +\docparam{src}{The input string, must not be \NULL. For the version using +wxString, the input string should contain only ASCII characters.} \docparam{srcLen}{The length of the input string or special value \texttt{wxNO\_LEN} if the string is \NUL-terminated and the length should be diff --git a/include/wx/base64.h b/include/wx/base64.h index 709fb1dd1e..7d5c72637e 100644 --- a/include/wx/base64.h +++ b/include/wx/base64.h @@ -96,6 +96,16 @@ wxBase64Decode(const char *src, size_t srcLen = wxNO_LEN, wxBase64DecodeMode mode = wxBase64DecodeMode_Strict, size_t *posErr = NULL); +inline wxMemoryBuffer +wxBase64Decode(const wxString& src, + wxBase64DecodeMode mode = wxBase64DecodeMode_Strict, + size_t *posErr = NULL) +{ + // don't use str.length() here as the ASCII buffer is shorter than it for + // strings with embedded NULs + return wxBase64Decode(src.ToAscii(), wxNO_LEN, mode, posErr); +} + #endif // wxUSE_BASE64 #endif // _WX_BASE64_H_ -- 2.45.2