mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-22 03:01:55 +08:00
Merge remote-tracking branch 'origin/GT-3624-dragonmacher-datatypes-preview'
This commit is contained in:
-3
@@ -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);
|
||||
}
|
||||
|
||||
+18
-3
@@ -62,10 +62,19 @@ public class EnumDataTypeHTMLRepresentation extends HTMLDataTypeRepresentation {
|
||||
long[] values = enumDataType.getValues();
|
||||
Arrays.sort(values);
|
||||
|
||||
int n = enumDataType.getLength();
|
||||
List<ValidatableLine> 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 {
|
||||
// "<TT> 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++) {
|
||||
|
||||
+2
-2
@@ -332,9 +332,9 @@ public class GraphExportTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
}
|
||||
|
||||
private void printLines(List<String> lines) {
|
||||
Msg.out("\n" + testName.getMethodName());
|
||||
Msg.debug(this, "\n" + testName.getMethodName());
|
||||
for (String line : lines) {
|
||||
Msg.out("\"" + line + "\",");
|
||||
Msg.debug(this, "\"" + line + "\",");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 <B>, <FONT>, 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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user