From d772361f157b067cdaebb6564bce806f909d1c90 Mon Sep 17 00:00:00 2001 From: Jesse Beder Date: Fri, 13 Jan 2012 00:00:11 -0600 Subject: [PATCH] Fixed hex and oct emitting (it now adds the 0x or 0 prefix) --- src/emitter.cpp | 4 +++- test/emittertests.cpp | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/emitter.cpp b/src/emitter.cpp index 0757882..901344a 100644 --- a/src/emitter.cpp +++ b/src/emitter.cpp @@ -670,9 +670,11 @@ namespace YAML str << std::dec; break; case Hex: + str << "0x"; str << std::hex; break; - case Oct: + case Oct: + str << "0"; str << std::oct; break; default: diff --git a/test/emittertests.cpp b/test/emittertests.cpp index 26e0119..40271fd 100644 --- a/test/emittertests.cpp +++ b/test/emittertests.cpp @@ -901,6 +901,16 @@ namespace Test desiredOutput = "key: \"-\""; } + void HexAndOct(YAML::Emitter& out, std::string& desiredOutput) + { + out << YAML::Flow << YAML::BeginSeq; + out << 31; + out << YAML::Hex << 31; + out << YAML::Oct << 31; + out << YAML::EndSeq; + desiredOutput = "[31, 0x1f, 037]"; + } + //////////////////////////////////////////////////////////////////////////////////////////////////////// // incorrect emitting @@ -1123,6 +1133,7 @@ namespace Test RunEmitterTest(&Emitter::DefaultPrecision, "default precision", passed, total); RunEmitterTest(&Emitter::SetPrecision, "set precision", passed, total); RunEmitterTest(&Emitter::DashInBlockContext, "dash in block context", passed, total); + RunEmitterTest(&Emitter::HexAndOct, "hex and oct", passed, total); RunEmitterErrorTest(&Emitter::ExtraEndSeq, "extra EndSeq", passed, total); RunEmitterErrorTest(&Emitter::ExtraEndMap, "extra EndMap", passed, total);