Skip to content

Commit de7e35e

Browse files
committed
[C++] Non-printable CHAR printed as int
1 parent 963f339 commit de7e35e

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2532,7 +2532,12 @@ private CharSequence writeTokenDisplay(
25322532
// have to duplicate because of checkstyle :/
25332533
if (typeToken.encoding().primitiveType() == PrimitiveType.CHAR)
25342534
{
2535-
sb.append(indent + "builder << '\"' << (char)" + fieldName + "() << '\"';\n");
2535+
sb.append(
2536+
indent + "if (std::isprint(" + fieldName + "())) {\n" +
2537+
indent + " builder << '\"' << (char)" + fieldName + "() << '\"';\n" +
2538+
indent + "} else {\n" +
2539+
indent + " builder << (int)" + fieldName + "();\n" +
2540+
indent + "}\n");
25362541
}
25372542
else
25382543
{

0 commit comments

Comments
 (0)