From d492b79a8f5f2ad01fa291192e92f4afacb2c9a3 Mon Sep 17 00:00:00 2001 From: SuspiciousActivity <38253929+SuspiciousActivity@users.noreply.github.com> Date: Wed, 27 Feb 2019 19:58:26 +0100 Subject: [PATCH] Fixed a search/replace bug and a new class bug --- src/me/ByteEdit/boxes/SearchBox.java | 8 ++++++-- src/me/ByteEdit/edit/Assembler.java | 2 +- src/me/ByteEdit/main/Main.java | 7 ++++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/me/ByteEdit/boxes/SearchBox.java b/src/me/ByteEdit/boxes/SearchBox.java index eaffe57..8cbb119 100644 --- a/src/me/ByteEdit/boxes/SearchBox.java +++ b/src/me/ByteEdit/boxes/SearchBox.java @@ -4,6 +4,7 @@ import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; +import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.JButton; @@ -111,7 +112,8 @@ public class SearchBox extends JFrame { : Main.txtByteEditView.getText().substring(startPos).toLowerCase(); int index = txt.indexOf(chckbxCaseSensitive.isSelected() ? toFind : toFind.toLowerCase()); if (index == -1) { - txt = chckbxCaseSensitive.isSelected() ? Main.txtByteEditView.getText() : Main.txtByteEditView.getText().toLowerCase(); + txt = chckbxCaseSensitive.isSelected() ? Main.txtByteEditView.getText() + : Main.txtByteEditView.getText().toLowerCase(); index = txt.indexOf(chckbxCaseSensitive.isSelected() ? toFind : toFind.toLowerCase()); startPos = 0; if (index == -1) { @@ -141,7 +143,9 @@ public class SearchBox extends JFrame { if (chckbxCaseSensitive.isSelected()) { Main.txtByteEditView.replaceRange(txt.replace(toFind, toReplace), 0, txt.length()); } else { - Main.txtByteEditView.replaceRange(txt.replaceAll("(?i)" + Pattern.quote(toFind), toReplace), 0, txt.length()); + Main.txtByteEditView.replaceRange( + txt.replaceAll("(?i)" + Pattern.quote(toFind), Matcher.quoteReplacement(toReplace)), 0, + txt.length()); } Main.txtByteEditView.setCaretPosition(prev); } diff --git a/src/me/ByteEdit/edit/Assembler.java b/src/me/ByteEdit/edit/Assembler.java index f84a721..44c2d4d 100644 --- a/src/me/ByteEdit/edit/Assembler.java +++ b/src/me/ByteEdit/edit/Assembler.java @@ -422,10 +422,10 @@ public class Assembler { System.err.println("Error at line: " + read.currentLine); try { Main.txtByteEditView.setCaretPosition(Main.txtByteEditView.getLineStartOffset(read.currentLine)); - Main.showError(e.getMessage()); } catch (BadLocationException e1) { System.err.println("Can't show line!"); } + Main.showError(e.getMessage()); e.printStackTrace(); return null; } finally { diff --git a/src/me/ByteEdit/main/Main.java b/src/me/ByteEdit/main/Main.java index a6b2d04..d034fbe 100644 --- a/src/me/ByteEdit/main/Main.java +++ b/src/me/ByteEdit/main/Main.java @@ -667,7 +667,12 @@ public class Main extends JFrame { } else { model = (ArchiveTreeModel) tree.getModel(); } - model.paths.add(node.name + ".class"); + if (node.name.contains("/") ? (!node.name.split("/")[node.name.split("/").length - 1].contains("$")) + : (!node.name.contains("$"))) { + model.paths.add(node.name + ".class"); + } else if (node.name.startsWith("$") || node.name.contains("$$") || node.name.endsWith("$")) { // obfuscated + model.paths.add(node.name + ".class"); + } model.refresh(); model.reload(); }