From e0e3141619cecd54c087d964654e6c35511c48f9 Mon Sep 17 00:00:00 2001 From: Thog Date: Tue, 6 Sep 2016 12:11:50 +0200 Subject: A little bit of clean up --- src/main/java/cuchaz/enigma/Main.java | 1 - src/main/java/cuchaz/enigma/Util.java | 99 ---------------------- src/main/java/cuchaz/enigma/analysis/JarIndex.java | 4 +- .../java/cuchaz/enigma/bytecode/ClassRenamer.java | 22 ++--- .../bytecode/accessors/ConstInfoAccessor.java | 1 - .../cuchaz/enigma/convert/ClassIdentifier.java | 1 - .../java/cuchaz/enigma/convert/ClassIdentity.java | 4 +- .../java/cuchaz/enigma/convert/ClassMatch.java | 5 +- .../java/cuchaz/enigma/convert/ClassMatching.java | 13 ++- .../cuchaz/enigma/convert/MappingsConverter.java | 19 ++--- .../java/cuchaz/enigma/convert/MatchesReader.java | 4 +- src/main/java/cuchaz/enigma/gui/ClassSelector.java | 4 +- src/main/java/cuchaz/enigma/gui/Gui.java | 35 ++++---- src/main/java/cuchaz/enigma/gui/GuiTricks.java | 18 +--- .../java/cuchaz/enigma/gui/MemberMatchingGui.java | 21 ++--- .../cuchaz/enigma/mapping/MappingsSRGWriter.java | 1 - .../cuchaz/enigma/mapping/ProcyonEntryFactory.java | 1 - src/main/java/cuchaz/enigma/mapping/Type.java | 4 +- .../java/cuchaz/enigma/utils/ReadableToken.java | 9 +- src/main/java/cuchaz/enigma/utils/Utils.java | 7 -- 20 files changed, 61 insertions(+), 212 deletions(-) delete mode 100644 src/main/java/cuchaz/enigma/Util.java (limited to 'src/main/java/cuchaz') diff --git a/src/main/java/cuchaz/enigma/Main.java b/src/main/java/cuchaz/enigma/Main.java index a1007cf..14c9fc6 100644 --- a/src/main/java/cuchaz/enigma/Main.java +++ b/src/main/java/cuchaz/enigma/Main.java @@ -16,7 +16,6 @@ import java.util.jar.JarFile; import javax.swing.UIManager; import cuchaz.enigma.gui.Gui; -import cuchaz.enigma.mapping.ClassEntry; public class Main { diff --git a/src/main/java/cuchaz/enigma/Util.java b/src/main/java/cuchaz/enigma/Util.java deleted file mode 100644 index 1bcdb9e..0000000 --- a/src/main/java/cuchaz/enigma/Util.java +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 Jeff Martin. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser General Public - * License v3.0 which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl.html - *

- * Contributors: - * Jeff Martin - initial API and implementation - ******************************************************************************/ -package cuchaz.enigma; - -import com.google.common.io.CharStreams; - -import java.awt.Desktop; -import java.io.*; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.Arrays; -import java.util.jar.JarFile; - -import javassist.CannotCompileException; -import javassist.CtClass; -import javassist.bytecode.Descriptor; - -public class Util { - - public static int combineHashesOrdered(Object... objs) { - return combineHashesOrdered(Arrays.asList(objs)); - } - - public static int combineHashesOrdered(Iterable objs) { - final int prime = 67; - int result = 1; - for (Object obj : objs) { - result *= prime; - if (obj != null) { - result += obj.hashCode(); - } - } - return result; - } - - public static void closeQuietly(Closeable closeable) { - if (closeable != null) { - try { - closeable.close(); - } catch (IOException ex) { - // just ignore any further exceptions - } - } - } - - public static void closeQuietly(JarFile jarFile) { - // silly library should implement Closeable... - if (jarFile != null) { - try { - jarFile.close(); - } catch (IOException ex) { - // just ignore any further exceptions - } - } - } - - public static String readStreamToString(InputStream in) throws IOException { - return CharStreams.toString(new InputStreamReader(in, "UTF-8")); - } - - public static String readResourceToString(String path) throws IOException { - InputStream in = Util.class.getResourceAsStream(path); - if (in == null) { - throw new IllegalArgumentException("Resource not found! " + path); - } - return readStreamToString(in); - } - - public static void openUrl(String url) { - if (Desktop.isDesktopSupported()) { - Desktop desktop = Desktop.getDesktop(); - try { - desktop.browse(new URI(url)); - } catch (IOException ex) { - throw new Error(ex); - } catch (URISyntaxException ex) { - throw new IllegalArgumentException(ex); - } - } - } - - public static void writeClass(CtClass c) { - String name = Descriptor.toJavaName(c.getName()); - File file = new File(name + ".class"); - try (FileOutputStream out = new FileOutputStream(file)) { - out.write(c.toBytecode()); - } catch (IOException | CannotCompileException ex) { - throw new Error(ex); - } - } -} diff --git a/src/main/java/cuchaz/enigma/analysis/JarIndex.java b/src/main/java/cuchaz/enigma/analysis/JarIndex.java index b274a7d..851f3fa 100644 --- a/src/main/java/cuchaz/enigma/analysis/JarIndex.java +++ b/src/main/java/cuchaz/enigma/analysis/JarIndex.java @@ -123,10 +123,10 @@ public class JarIndex { // DEBUG //System.out.println("ANONYMOUS: " + outerClassEntry.getName() + "$" + innerClassEntry.getSimpleName()); - } else { + }/* else { // DEBUG //System.out.println("INNER: " + outerClassEntry.getName() + "$" + innerClassEntry.getSimpleName()); - } + }*/ } } diff --git a/src/main/java/cuchaz/enigma/bytecode/ClassRenamer.java b/src/main/java/cuchaz/enigma/bytecode/ClassRenamer.java index c13aae4..eb7e9a1 100644 --- a/src/main/java/cuchaz/enigma/bytecode/ClassRenamer.java +++ b/src/main/java/cuchaz/enigma/bytecode/ClassRenamer.java @@ -278,9 +278,8 @@ public class ClassRenamer { } } - private static ClassSignature renameType(ClassSignature type, ReplacerClassMap map) { - - TypeParameter[] typeParamTypes = type.getParameters(); + private static TypeParameter[] renameTypeParameter(TypeParameter[] typeParamTypes, ReplacerClassMap map) + { if (typeParamTypes != null) { typeParamTypes = Arrays.copyOf(typeParamTypes, typeParamTypes.length); for (int i = 0; i < typeParamTypes.length; i++) { @@ -290,6 +289,12 @@ public class ClassRenamer { } } } + return typeParamTypes; + } + + private static ClassSignature renameType(ClassSignature type, ReplacerClassMap map) { + + TypeParameter[] typeParamTypes = renameTypeParameter(type.getParameters(), map); ClassType superclassType = type.getSuperClass(); if (superclassType != ClassType.OBJECT) { @@ -315,16 +320,7 @@ public class ClassRenamer { private static MethodSignature renameType(MethodSignature type, ReplacerClassMap map) { - TypeParameter[] typeParamTypes = type.getTypeParameters(); - if (typeParamTypes != null) { - typeParamTypes = Arrays.copyOf(typeParamTypes, typeParamTypes.length); - for (int i = 0; i < typeParamTypes.length; i++) { - TypeParameter newParamType = renameType(typeParamTypes[i], map); - if (newParamType != null) { - typeParamTypes[i] = newParamType; - } - } - } + TypeParameter[] typeParamTypes = renameTypeParameter(type.getTypeParameters(), map); Type[] paramTypes = type.getParameterTypes(); if (paramTypes != null) { diff --git a/src/main/java/cuchaz/enigma/bytecode/accessors/ConstInfoAccessor.java b/src/main/java/cuchaz/enigma/bytecode/accessors/ConstInfoAccessor.java index bc7af87..aa363d2 100644 --- a/src/main/java/cuchaz/enigma/bytecode/accessors/ConstInfoAccessor.java +++ b/src/main/java/cuchaz/enigma/bytecode/accessors/ConstInfoAccessor.java @@ -14,7 +14,6 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; -import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; diff --git a/src/main/java/cuchaz/enigma/convert/ClassIdentifier.java b/src/main/java/cuchaz/enigma/convert/ClassIdentifier.java index f545437..557e608 100644 --- a/src/main/java/cuchaz/enigma/convert/ClassIdentifier.java +++ b/src/main/java/cuchaz/enigma/convert/ClassIdentifier.java @@ -19,7 +19,6 @@ import cuchaz.enigma.TranslatingTypeLoader; import cuchaz.enigma.analysis.JarIndex; import cuchaz.enigma.convert.ClassNamer.SidedClassNamer; import cuchaz.enigma.mapping.ClassEntry; -import cuchaz.enigma.mapping.TranslationDirection; import cuchaz.enigma.mapping.Translator; import javassist.CtClass; diff --git a/src/main/java/cuchaz/enigma/convert/ClassIdentity.java b/src/main/java/cuchaz/enigma/convert/ClassIdentity.java index 606c1df..57cbc06 100644 --- a/src/main/java/cuchaz/enigma/convert/ClassIdentity.java +++ b/src/main/java/cuchaz/enigma/convert/ClassIdentity.java @@ -21,7 +21,6 @@ import java.util.Map; import java.util.Set; import cuchaz.enigma.Constants; -import cuchaz.enigma.Util; import cuchaz.enigma.analysis.ClassImplementationsTreeNode; import cuchaz.enigma.analysis.EntryReference; import cuchaz.enigma.analysis.JarIndex; @@ -30,6 +29,7 @@ import cuchaz.enigma.bytecode.InfoType; import cuchaz.enigma.bytecode.accessors.ConstInfoAccessor; import cuchaz.enigma.convert.ClassNamer.SidedClassNamer; import cuchaz.enigma.mapping.*; +import cuchaz.enigma.utils.Utils; import javassist.*; import javassist.bytecode.*; import javassist.expr.*; @@ -386,7 +386,7 @@ public class ClassIdentity { objs.addAll(this.implementz); objs.addAll(this.implementations); objs.addAll(this.references); - return Util.combineHashesOrdered(objs); + return Utils.combineHashesOrdered(objs); } public int getMatchScore(ClassIdentity other) { diff --git a/src/main/java/cuchaz/enigma/convert/ClassMatch.java b/src/main/java/cuchaz/enigma/convert/ClassMatch.java index 422529e..9fa35f0 100644 --- a/src/main/java/cuchaz/enigma/convert/ClassMatch.java +++ b/src/main/java/cuchaz/enigma/convert/ClassMatch.java @@ -15,9 +15,8 @@ import com.google.common.collect.Sets; import java.util.Collection; import java.util.Set; -import cuchaz.enigma.Util; import cuchaz.enigma.mapping.ClassEntry; - +import cuchaz.enigma.utils.Utils; public class ClassMatch { @@ -70,7 +69,7 @@ public class ClassMatch { @Override public int hashCode() { - return Util.combineHashesOrdered(sourceClasses, destClasses); + return Utils.combineHashesOrdered(sourceClasses, destClasses); } @Override diff --git a/src/main/java/cuchaz/enigma/convert/ClassMatching.java b/src/main/java/cuchaz/enigma/convert/ClassMatching.java index 9350ea7..af9ae01 100644 --- a/src/main/java/cuchaz/enigma/convert/ClassMatching.java +++ b/src/main/java/cuchaz/enigma/convert/ClassMatching.java @@ -144,12 +144,11 @@ public class ClassMatching { numAmbiguousDest += match.destClasses.size(); } - StringBuilder buf = new StringBuilder(); - buf.append(String.format("%20s%8s%8s\n", "", "Source", "Dest")); - buf.append(String.format("%20s%8d%8d\n", "Classes", sourceClasses().size(), destClasses().size())); - buf.append(String.format("%20s%8d%8d\n", "Uniquely matched", uniqueMatches().size(), uniqueMatches().size())); - buf.append(String.format("%20s%8d%8d\n", "Ambiguously matched", numAmbiguousSource, numAmbiguousDest)); - buf.append(String.format("%20s%8d%8d\n", "Unmatched", unmatchedSourceClasses().size(), unmatchedDestClasses().size())); - return buf.toString(); + String buf = String.format("%20s%8s%8s\n", "", "Source", "Dest") + String + .format("%20s%8d%8d\n", "Classes", sourceClasses().size(), destClasses().size()) + String + .format("%20s%8d%8d\n", "Uniquely matched", uniqueMatches().size(), uniqueMatches().size()) + String + .format("%20s%8d%8d\n", "Ambiguously matched", numAmbiguousSource, numAmbiguousDest) + String + .format("%20s%8d%8d\n", "Unmatched", unmatchedSourceClasses().size(), unmatchedDestClasses().size()); + return buf; } } diff --git a/src/main/java/cuchaz/enigma/convert/MappingsConverter.java b/src/main/java/cuchaz/enigma/convert/MappingsConverter.java index abb1bea..a80d9ce 100644 --- a/src/main/java/cuchaz/enigma/convert/MappingsConverter.java +++ b/src/main/java/cuchaz/enigma/convert/MappingsConverter.java @@ -11,10 +11,6 @@ package cuchaz.enigma.convert; import com.google.common.collect.*; - -import java.util.*; -import java.util.jar.JarFile; - import cuchaz.enigma.Constants; import cuchaz.enigma.Deobfuscator; import cuchaz.enigma.analysis.JarIndex; @@ -22,6 +18,9 @@ import cuchaz.enigma.convert.ClassNamer.SidedClassNamer; import cuchaz.enigma.mapping.*; import cuchaz.enigma.throwables.MappingConflict; +import java.util.*; +import java.util.jar.JarFile; + public class MappingsConverter { public static ClassMatches computeClassMatches(JarFile sourceJar, JarFile destJar, Mappings mappings) { @@ -365,14 +364,12 @@ public class MappingsConverter { public Set filterEntries(Collection obfDestFields, BehaviorEntry obfSourceField, ClassMatches classMatches) { Set out = Sets.newHashSet(); for (BehaviorEntry obfDestField : obfDestFields) { - Signature translatedDestSignature = translate(obfDestField.getSignature(), classMatches.getUniqueMatches().inverse()); - if (translatedDestSignature == null && obfSourceField.getSignature() == null) { + Signature translatedDestSignature = translate(obfDestField.getSignature(), + classMatches.getUniqueMatches().inverse()); + if ((translatedDestSignature == null && obfSourceField.getSignature() == null) + || translatedDestSignature != null && obfSourceField.getSignature() != null + && translatedDestSignature.equals(obfSourceField.getSignature())) out.add(obfDestField); - } else if (translatedDestSignature == null || obfSourceField.getSignature() == null) { - // skip it - } else if (translatedDestSignature.equals(obfSourceField.getSignature())) { - out.add(obfDestField); - } } return out; } diff --git a/src/main/java/cuchaz/enigma/convert/MatchesReader.java b/src/main/java/cuchaz/enigma/convert/MatchesReader.java index 773566d..ee5e482 100644 --- a/src/main/java/cuchaz/enigma/convert/MatchesReader.java +++ b/src/main/java/cuchaz/enigma/convert/MatchesReader.java @@ -28,7 +28,7 @@ public class MatchesReader { throws IOException { try (BufferedReader in = new BufferedReader(new FileReader(file))) { ClassMatches matches = new ClassMatches(); - String line = null; + String line; while ((line = in.readLine()) != null) { matches.add(readClassMatch(line)); } @@ -57,7 +57,7 @@ public class MatchesReader { throws IOException { try (BufferedReader in = new BufferedReader(new FileReader(file))) { MemberMatches matches = new MemberMatches(); - String line = null; + String line; while ((line = in.readLine()) != null) { readMemberMatch(matches, line); } diff --git a/src/main/java/cuchaz/enigma/gui/ClassSelector.java b/src/main/java/cuchaz/enigma/gui/ClassSelector.java index 98880cd..92fcaba 100644 --- a/src/main/java/cuchaz/enigma/gui/ClassSelector.java +++ b/src/main/java/cuchaz/enigma/gui/ClassSelector.java @@ -22,8 +22,6 @@ import cuchaz.enigma.throwables.IllegalNameException; import javax.swing.*; import javax.swing.event.CellEditorListener; import javax.swing.event.ChangeEvent; -import javax.swing.event.TreeModelEvent; -import javax.swing.event.TreeModelListener; import javax.swing.tree.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; @@ -278,7 +276,7 @@ public class ClassSelector extends JTree { TreePath path = tree.getPathForRow(i); if (i == row || isDescendant(path, rowPath)) { if (tree.isExpanded(path)) { - buf.append("," + String.valueOf(i - row)); + buf.append(",").append(String.valueOf(i - row)); } } else { break; diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java index 46d3b5c..b523859 100644 --- a/src/main/java/cuchaz/enigma/gui/Gui.java +++ b/src/main/java/cuchaz/enigma/gui/Gui.java @@ -639,26 +639,21 @@ public class Gui { m_implementationsTree.setModel(null); - if (m_reference.entry instanceof ClassEntry) { - // get the class implementations - ClassImplementationsTreeNode node = this.controller.getClassImplementations((ClassEntry) m_reference.entry); - if (node != null) { - // show the tree at the root - TreePath path = getPathToRoot(node); - m_implementationsTree.setModel(new DefaultTreeModel((TreeNode) path.getPathComponent(0))); - m_implementationsTree.expandPath(path); - m_implementationsTree.setSelectionRow(m_implementationsTree.getRowForPath(path)); - } - } else if (m_reference.entry instanceof MethodEntry) { - // get the method implementations - MethodImplementationsTreeNode node = this.controller.getMethodImplementations((MethodEntry) m_reference.entry); - if (node != null) { - // show the tree at the root - TreePath path = getPathToRoot(node); - m_implementationsTree.setModel(new DefaultTreeModel((TreeNode) path.getPathComponent(0))); - m_implementationsTree.expandPath(path); - m_implementationsTree.setSelectionRow(m_implementationsTree.getRowForPath(path)); - } + DefaultMutableTreeNode node = null; + + // get the class implementations + if (m_reference.entry instanceof ClassEntry) + node = this.controller.getClassImplementations((ClassEntry) m_reference.entry); + else // get the method implementations + if (m_reference.entry instanceof MethodEntry) + node = this.controller.getMethodImplementations((MethodEntry) m_reference.entry); + + if (node != null) { + // show the tree at the root + TreePath path = getPathToRoot(node); + m_implementationsTree.setModel(new DefaultTreeModel((TreeNode) path.getPathComponent(0))); + m_implementationsTree.expandPath(path); + m_implementationsTree.setSelectionRow(m_implementationsTree.getRowForPath(path)); } m_tabs.setSelectedIndex(1); diff --git a/src/main/java/cuchaz/enigma/gui/GuiTricks.java b/src/main/java/cuchaz/enigma/gui/GuiTricks.java index da2ec74..85b65b0 100644 --- a/src/main/java/cuchaz/enigma/gui/GuiTricks.java +++ b/src/main/java/cuchaz/enigma/gui/GuiTricks.java @@ -10,16 +10,11 @@ ******************************************************************************/ package cuchaz.enigma.gui; -import java.awt.Font; +import javax.swing.*; +import java.awt.*; import java.awt.event.ActionListener; -import java.awt.event.MouseEvent; import java.util.Arrays; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.ToolTipManager; - public class GuiTricks { public static JLabel unboldLabel(JLabel label) { @@ -28,15 +23,6 @@ public class GuiTricks { return label; } - public static void showToolTipNow(JComponent component) { - // HACKHACK: trick the tooltip manager into showing the tooltip right now - ToolTipManager manager = ToolTipManager.sharedInstance(); - int oldDelay = manager.getInitialDelay(); - manager.setInitialDelay(0); - manager.mouseMoved(new MouseEvent(component, MouseEvent.MOUSE_MOVED, System.currentTimeMillis(), 0, 0, 0, 0, false)); - manager.setInitialDelay(oldDelay); - } - public static void deactivateButton(JButton button) { button.setEnabled(false); button.setText(""); diff --git a/src/main/java/cuchaz/enigma/gui/MemberMatchingGui.java b/src/main/java/cuchaz/enigma/gui/MemberMatchingGui.java index 9e90dae..4383465 100644 --- a/src/main/java/cuchaz/enigma/gui/MemberMatchingGui.java +++ b/src/main/java/cuchaz/enigma/gui/MemberMatchingGui.java @@ -287,23 +287,20 @@ public class MemberMatchingGui { private void highlightEntries(CodeReader reader, Deobfuscator deobfuscator, Collection obfMatchedEntries, Collection obfUnmatchedEntries) { reader.clearHighlights(); - SourceIndex index = reader.getSourceIndex(); - // matched fields - for (T obfT : obfMatchedEntries) { - T deobfT = deobfuscator.deobfuscateEntry(obfT); - Token token = index.getDeclarationToken(deobfT); - if (token != null) { - reader.setHighlightedToken(token, m_matchedHighlightPainter); - } - } - + updateHighlighted(obfMatchedEntries, deobfuscator, reader, m_matchedHighlightPainter); // unmatched fields - for (T obfT : obfUnmatchedEntries) { + updateHighlighted(obfUnmatchedEntries, deobfuscator, reader, m_unmatchedHighlightPainter); + } + + private void updateHighlighted(Collection entries, Deobfuscator deobfuscator, CodeReader reader, HighlightPainter painter) + { + SourceIndex index = reader.getSourceIndex(); + for (T obfT : entries) { T deobfT = deobfuscator.deobfuscateEntry(obfT); Token token = index.getDeclarationToken(deobfT); if (token != null) { - reader.setHighlightedToken(token, m_unmatchedHighlightPainter); + reader.setHighlightedToken(token, painter); } } } diff --git a/src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java b/src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java index cede1c2..229bf46 100644 --- a/src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java +++ b/src/main/java/cuchaz/enigma/mapping/MappingsSRGWriter.java @@ -1,7 +1,6 @@ package cuchaz.enigma.mapping; import com.google.common.base.Charsets; -import cuchaz.enigma.Deobfuscator; import cuchaz.enigma.analysis.TranslationIndex; import java.io.*; diff --git a/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java b/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java index dca1e5e..949d88f 100644 --- a/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java +++ b/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java @@ -11,7 +11,6 @@ package cuchaz.enigma.mapping; import com.strobel.assembler.metadata.FieldDefinition; -import com.strobel.assembler.metadata.IMethodSignature; import com.strobel.assembler.metadata.MemberReference; import com.strobel.assembler.metadata.MethodDefinition; diff --git a/src/main/java/cuchaz/enigma/mapping/Type.java b/src/main/java/cuchaz/enigma/mapping/Type.java index 34ddc05..8136e13 100644 --- a/src/main/java/cuchaz/enigma/mapping/Type.java +++ b/src/main/java/cuchaz/enigma/mapping/Type.java @@ -207,8 +207,8 @@ public class Type { private static int countArrayDimension(String in) { int i = 0; - for (; i < in.length() && in.charAt(i) == '['; i++) { - } + while (i < in.length() && in.charAt(i) == '[') + i++; return i; } diff --git a/src/main/java/cuchaz/enigma/utils/ReadableToken.java b/src/main/java/cuchaz/enigma/utils/ReadableToken.java index 8119393..008e28c 100644 --- a/src/main/java/cuchaz/enigma/utils/ReadableToken.java +++ b/src/main/java/cuchaz/enigma/utils/ReadableToken.java @@ -24,13 +24,6 @@ public class ReadableToken { @Override public String toString() { - StringBuilder buf = new StringBuilder(); - buf.append("line "); - buf.append(line); - buf.append(" columns "); - buf.append(startColumn); - buf.append("-"); - buf.append(endColumn); - return buf.toString(); + return "line " + line + " columns " + startColumn + "-" + endColumn; } } diff --git a/src/main/java/cuchaz/enigma/utils/Utils.java b/src/main/java/cuchaz/enigma/utils/Utils.java index 73c2bc7..ebc110a 100644 --- a/src/main/java/cuchaz/enigma/utils/Utils.java +++ b/src/main/java/cuchaz/enigma/utils/Utils.java @@ -14,9 +14,6 @@ import com.google.common.io.CharStreams; import java.awt.Desktop; import java.awt.Font; -import java.awt.Rectangle; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.io.IOException; import java.io.InputStream; @@ -26,10 +23,6 @@ import java.net.URISyntaxException; import java.util.Arrays; import javax.swing.*; -import javax.swing.text.BadLocationException; -import javax.swing.text.Highlighter; - -import cuchaz.enigma.analysis.Token; public class Utils { -- cgit v1.2.3