diff options
-rw-r--r-- | plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeExpression.java | 17 |
1 files 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; |