mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 18:29:37 +02:00
Merge remote-tracking branch 'origin/patch'
Conflicts: Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/pe/FileHeader.java Ghidra/Framework/Utility/src/main/java/ghidra/util/UserSearchUtils.java
This commit is contained in:
commit
7ccca377a7
2 changed files with 11 additions and 11 deletions
|
@ -198,8 +198,8 @@ public class AutocompletingStringConstraintEditor extends DataLoadingConstraintE
|
|||
}
|
||||
|
||||
/**
|
||||
* Cell renderer for suggestion nominees. Substrings that match the models' query
|
||||
* are highlighted for ease-of-use.
|
||||
* Cell renderer for suggestion candidates. Substrings that match the models' query are
|
||||
* highlighted for ease-of-use.
|
||||
*/
|
||||
private class AutocompleteListCellRenderer extends GListCellRenderer<String> {
|
||||
|
||||
|
@ -213,14 +213,17 @@ public class AutocompletingStringConstraintEditor extends DataLoadingConstraintE
|
|||
private String formatListValue(String value, boolean isSelected) {
|
||||
|
||||
Matcher matcher = model.lastConstraint.getHighlightMatcher(value);
|
||||
|
||||
Color color = isSelected ? Color.YELLOW : Color.MAGENTA;
|
||||
|
||||
StringBuilder sb = new StringBuilder("<html>");
|
||||
// find and highlight all instances of the user-defined pattern
|
||||
while (matcher.find()) {
|
||||
String group = matcher.group(1);
|
||||
String replacement = HTMLUtilities.colorString(color, HTMLUtilities.bold(group));
|
||||
|
||||
// escape all unescaped '\' and '$' chars, as Match.appendReplacement() will treat
|
||||
// them as regex characters
|
||||
String quoted = Matcher.quoteReplacement(group);
|
||||
String replacement =
|
||||
HTMLUtilities.colorString(color, HTMLUtilities.bold(quoted));
|
||||
matcher.appendReplacement(sb, replacement);
|
||||
}
|
||||
matcher.appendTail(sb);
|
||||
|
@ -238,7 +241,5 @@ public class AutocompletingStringConstraintEditor extends DataLoadingConstraintE
|
|||
setText(valueString);
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -40,8 +40,7 @@ public class UserSearchUtils {
|
|||
private final static char[] GLOB_CHARACTERS = { '*', '?' };
|
||||
|
||||
/**
|
||||
* A pattern that will find all '\' chars that are not followed by '*', '?'
|
||||
* or another '\'
|
||||
* A pattern that will find all '\' chars that are not followed by '*', '?' or another '\'
|
||||
*/
|
||||
public final static Pattern NON_GLOB_BACKSLASH_PATTERN = Pattern.compile("\\\\(?![\\*\\?])");
|
||||
|
||||
|
@ -382,12 +381,12 @@ public class UserSearchUtils {
|
|||
* array.
|
||||
*
|
||||
* @param input The input string to be escaped
|
||||
* @param doNotEscape characters that should not be escaped
|
||||
* @param doNotEscape an array of characters that should not be escaped
|
||||
* @return A new regex string with special characters escaped.
|
||||
*/
|
||||
// note: 'package' for testing
|
||||
static String escapeSomeRegexCharacters(String input, char[] doNotEscape) {
|
||||
StringBuffer buffy = new StringBuffer();
|
||||
StringBuilder buffy = new StringBuilder();
|
||||
for (int i = 0; i < input.length(); i++) {
|
||||
char c = input.charAt(i);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue