From 1b7b7252370d26d27061b107eebfe3fb5a95f1d9 Mon Sep 17 00:00:00 2001 From: Eugene Tarassov Date: Tue, 28 Jul 2015 13:19:43 -0700 Subject: TCF Debugger: fixed incorrect display of char values when size of the value is bigger than 1 --- .../tcf/internal/debug/ui/model/TCFNodeExpression.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeExpression.java b/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeExpression.java index a9efeecda..1a9de3977 100644 --- a/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeExpression.java +++ b/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeExpression.java @@ -454,10 +454,19 @@ public class TCFNodeExpression extends TCFNode implements IElementEditor, ICastT if (is_char == null) return false; if (is_char) { byte[] data = value_data.getValue(); - StyledStringBuffer bf = new StyledStringBuffer(); - bf.append(toASCIIString(data, 0, data.length, '\''), StyledStringBuffer.MONOSPACED); - set(null, null, bf); - return true; + if (data.length > 0) { + if (data.length > 1) { + BigInteger value_int = TCFNumberFormat.toBigInteger( + data, value_data.isBigEndian(), false); + if (value_int.compareTo(BigInteger.valueOf(0x80)) >= 0) break; + data = new byte[1]; + data[0] = value_int.byteValue(); + } + StyledStringBuffer bf = new StyledStringBuffer(); + bf.append(toASCIIString(data, 0, 1, '\''), StyledStringBuffer.MONOSPACED); + set(null, null, bf); + return true; + } } } break; -- cgit v1.2.3