diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypesProvider.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypesProvider.java index e4059e7d95..8919c69140 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypesProvider.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypesProvider.java @@ -530,9 +530,6 @@ public class DataTypesProvider extends ComponentProviderAdapter { String toolTipText = ToolTipUtils.getToolTipText(dataType); String updated = HTMLUtilities.convertLinkPlaceholdersToHyperlinks(toolTipText); - - // Make the text a bit bigger, for readability - updated = HTMLUtilities.setFontSize(updated, 16); previewPane.setText(updated); previewPane.setCaretPosition(0); } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/html/EnumDataTypeHTMLRepresentation.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/html/EnumDataTypeHTMLRepresentation.java index b75d41a562..858a04f91f 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/html/EnumDataTypeHTMLRepresentation.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/html/EnumDataTypeHTMLRepresentation.java @@ -62,10 +62,19 @@ public class EnumDataTypeHTMLRepresentation extends HTMLDataTypeRepresentation { long[] values = enumDataType.getValues(); Arrays.sort(values); + int n = enumDataType.getLength(); List list = new ArrayList<>(values.length); for (long value : values) { String name = enumDataType.getName(value); - list.add(new TextLine(name + " = 0x" + Long.toHexString(value))); + + String hexString = Long.toHexString(value); + if (value < 0) { + // Long will print leading FF for 8 bytes, regardless of enum size. Keep only + // n bytes worth of text. For example, when n is 2, turn FFFFFFFFFFFFFF12 into FF12 + int length = hexString.length(); + hexString = hexString.substring(length - (n * 2)); + } + list.add(new TextLine(name + " = 0x" + hexString)); } return list; @@ -88,8 +97,14 @@ public class EnumDataTypeHTMLRepresentation extends HTMLDataTypeRepresentation { // " displayName { " String encodedDisplayName = HTMLUtilities.friendlyEncodeHTML(displayName.getText()); String displayNameText = wrapStringInColor(encodedDisplayName, displayName.getTextColor()); - buffy.append(TT_OPEN).append(displayNameText).append(TT_CLOSE).append(HTML_SPACE).append( - "{").append(HTML_SPACE).append(BR); + buffy.append(TT_OPEN) + .append(displayNameText) + .append(TT_CLOSE) + .append(HTML_SPACE) + .append( + "{") + .append(HTML_SPACE) + .append(BR); int length = bodyLines.size(); for (int i = 0; i < length; i++) { diff --git a/Ghidra/Features/GraphServices/src/test/java/ghidra/graph/export/GraphExportTest.java b/Ghidra/Features/GraphServices/src/test/java/ghidra/graph/export/GraphExportTest.java index f01304b2d2..28bd9f4369 100644 --- a/Ghidra/Features/GraphServices/src/test/java/ghidra/graph/export/GraphExportTest.java +++ b/Ghidra/Features/GraphServices/src/test/java/ghidra/graph/export/GraphExportTest.java @@ -332,9 +332,9 @@ public class GraphExportTest extends AbstractGhidraHeadedIntegrationTest { } private void printLines(List lines) { - Msg.out("\n" + testName.getMethodName()); + Msg.debug(this, "\n" + testName.getMethodName()); for (String line : lines) { - Msg.out("\"" + line + "\","); + Msg.debug(this, "\"" + line + "\","); } } diff --git a/Ghidra/Framework/Generic/src/main/java/ghidra/util/HTMLUtilities.java b/Ghidra/Framework/Generic/src/main/java/ghidra/util/HTMLUtilities.java index 379faaf901..3274cc6989 100644 --- a/Ghidra/Framework/Generic/src/main/java/ghidra/util/HTMLUtilities.java +++ b/Ghidra/Framework/Generic/src/main/java/ghidra/util/HTMLUtilities.java @@ -17,7 +17,6 @@ package ghidra.util; import java.awt.*; import java.util.List; -import java.util.StringTokenizer; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -797,21 +796,11 @@ public class HTMLUtilities { // formatting tags (like , , etc). So, just normalize the text, not // preserving any of the line breaks. // - String condensed = condense(updated); - return condensed; - } - - private static String condense(String text) { - // replace newlines, as they are sometimes inserted where two words were expected to - // contain no whitespace - String updated = text.replaceAll("\\n", ""); - StringTokenizer tokenizer = new StringTokenizer(updated); - StringBuilder buffy = new StringBuilder(); - while (tokenizer.hasMoreTokens()) { - buffy.append(tokenizer.nextToken()).append(" "); - } - - return buffy.toString().trim(); + // Note: Calling this method here causes unwanted removal of newlines. If the original + // need for this call is found, this can be revisited. + // (see history for condense() code) + // String condensed = condense(updated); + return updated; } /**