From c59c74aeed98333bdbb9607560468934cac814e4 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 5 Nov 2019 17:23:13 +0100 Subject: [PATCH] Confitionally select num_bytes, see #699 --- src/ifcparse/IfcCharacterDecoder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcparse/IfcCharacterDecoder.cpp b/src/ifcparse/IfcCharacterDecoder.cpp index 3aef95d15f..1c2fd38228 100644 --- a/src/ifcparse/IfcCharacterDecoder.cpp +++ b/src/ifcparse/IfcCharacterDecoder.cpp @@ -317,7 +317,7 @@ IfcCharacterEncoder::operator std::string() { // Either 2 or 4 to uses \X2 or \X4 respectively. // Currently hardcoded to 4, but \X2 might be // sufficient for nearly all purposes. - const int num_bytes = 4; + const int num_bytes = *std::max_element(str.begin(), str.end()) > 0xffff ? 4 : 2; const std::string num_bytes_str = std::string(1,num_bytes + 0x30); bool in_extended = false;