summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2020-05-14 08:54:15 -0400
committerNat Goodspeed <nat@lindenlab.com>2020-05-14 08:54:15 -0400
commita83da3a4525bf855c6c68c34dfbc8d93941d6174 (patch)
treec819238299d322769662cbd25d4ce709b5457366
parent6e5242f0a4e8a2e9cd9f21e89fae4870d1acceca (diff)
DRTVWR-476: Make LLSDFormatter::OPTIONS_PRETTY_BINARY uppercase
for compatibility with Python llbase.llsd.parse(). The Python parse() currently requires uppercase hex digits for b16"hex" coding; lowercase hex digits cause it to raise LLSDParseError.
-rw-r--r--indra/llcommon/llsdserialize.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/indra/llcommon/llsdserialize.cpp b/indra/llcommon/llsdserialize.cpp
index 598bec0558..022a5d4659 100644
--- a/indra/llcommon/llsdserialize.cpp
+++ b/indra/llcommon/llsdserialize.cpp
@@ -1423,6 +1423,10 @@ S32 LLSDNotationFormatter::format_impl(const LLSD& data, std::ostream& ostr,
{
std::ios_base::fmtflags old_flags = ostr.flags();
ostr.setf( std::ios::hex, std::ios::basefield );
+ // It shouldn't strictly matter whether the emitted hex digits
+ // are uppercase; LLSDNotationParser handles either; but as of
+ // 2020-05-13, Python's llbase.llsd requires uppercase hex.
+ ostr << std::uppercase;
auto oldfill(ostr.fill('0'));
auto oldwidth(ostr.width());
for (int i = 0; i < buffer.size(); i++)