diff --git a/contrib/src/restbed/rules.mak b/contrib/src/restbed/rules.mak index 89c6b0d0a6e57e30fe25e4a249649ba34d404017..263f84aa96ab1eb35b6d012f4ef8ca85f79d0f62 100644 --- a/contrib/src/restbed/rules.mak +++ b/contrib/src/restbed/rules.mak @@ -45,6 +45,7 @@ restbed: restbed-$(RESTBED_VERSION).tar.gz $(APPLY) $(SRC)/restbed/strand.patch $(APPLY) $(SRC)/restbed/uri_cpp.patch $(APPLY) $(SRC)/restbed/dns-resolution-error.patch + $(APPLY) $(SRC)/restbed/string.patch $(MOVE) .restbed: restbed toolchain.cmake diff --git a/contrib/src/restbed/string.patch b/contrib/src/restbed/string.patch new file mode 100644 index 0000000000000000000000000000000000000000..53b2eb21a768c9170e3d0e833ce696dd949cf6ed --- /dev/null +++ b/contrib/src/restbed/string.patch @@ -0,0 +1,25 @@ +--- a/source/corvusoft/restbed/string.cpp 2016-09-14 20:58:54.000000000 -0400 ++++ b/source/corvusoft/restbed/string.cpp 2017-06-27 10:17:55.000000000 -0400 +@@ -7,6 +7,7 @@ + #include <memory> + #include <ciso646> + #include <algorithm> ++#include <cstdlib> + + //Project Includes + #include "corvusoft/restbed/string.hpp" +@@ -161,8 +162,14 @@ + string::size_type String::format( string& output, const string::size_type length, const char* format, va_list arguments ) + { + unique_ptr< char[ ] > formatted( new char[ length + 1 ] ); ++ ++ char* saved_locale = strdup(setlocale(LC_NUMERIC, NULL)); ++ setlocale(LC_NUMERIC, "C"); + + int required_length = vsnprintf( formatted.get( ), length + 1, format, arguments ); ++ ++ setlocale(LC_NUMERIC, saved_locale); ++ free(saved_locale); + + if ( required_length == -1 ) + {