X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e71e5b37269174d78ec72d490148a3dece174483..c153cc08ebf622a5ec73be37e4368cdb3c00c24d:/src/common/string.cpp diff --git a/src/common/string.cpp b/src/common/string.cpp index f222417109..8f20b9ac13 100644 --- a/src/common/string.cpp +++ b/src/common/string.cpp @@ -1706,6 +1706,26 @@ bool wxString::ToULong(unsigned long *val, int base) const return wxStringToIntType(c_str(), val, base, wxStrtoul); } +bool wxString::ToLongLong(wxLongLong_t *val, int base) const +{ +#ifdef wxHAS_STRTOLL + return wxStringToIntType(c_str(), val, base, wxStrtoll); +#else + // TODO: implement this ourselves + return false; +#endif // wxHAS_STRTOLL +} + +bool wxString::ToULongLong(wxULongLong_t *val, int base) const +{ +#ifdef wxHAS_STRTOLL + return wxStringToIntType(c_str(), val, base, wxStrtoull); +#else + // TODO: implement this ourselves + return false; +#endif +} + bool wxString::ToDouble(double *val) const { wxCHECK_MSG( val, false, _T("NULL pointer in wxString::ToDouble") ); @@ -1795,9 +1815,11 @@ int wxString::PrintfV(const wxChar* pszFormat, va_list argptr) // current size of the buffer size *= 2; } - else if ( len > size ) + else if ( len >= size ) { - size = len; + // some vsnprintf() implementations NUL-terminate the buffer and + // some don't in len == size case, to be safe always add 1 + size = len + 1; } else // ok, there was enough space {