summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar enbrain2022-04-08 19:38:38 +0900
committerGravatar GitHub2022-04-08 12:38:38 +0200
commit38dc571a98d04360eea299c84e0e255f75fd7253 (patch)
tree29aab67a00641e78b76d73b5ca53495effae1784
parentUpdate CFR (diff)
downloadenigma-38dc571a98d04360eea299c84e0e255f75fd7253.tar.gz
enigma-38dc571a98d04360eea299c84e0e255f75fd7253.tar.xz
enigma-38dc571a98d04360eea299c84e0e255f75fd7253.zip
Add a check for space indentation (#433)
* Add a check for space indentation * Use MappingParseException
-rw-r--r--enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsReader.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsReader.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsReader.java
index 04b4534b..61dbe93a 100644
--- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsReader.java
+++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsReader.java
@@ -104,7 +104,7 @@ public enum EnigmaMappingsReader implements MappingsReader {
104 104
105 for (int lineNumber = 0; lineNumber < lines.size(); lineNumber++) { 105 for (int lineNumber = 0; lineNumber < lines.size(); lineNumber++) {
106 String line = lines.get(lineNumber); 106 String line = lines.get(lineNumber);
107 int indentation = countIndentation(line); 107 int indentation = countIndentation(line, path, lineNumber);
108 108
109 line = formatLine(line); 109 line = formatLine(line);
110 if (line == null) { 110 if (line == null) {
@@ -120,7 +120,7 @@ public enum EnigmaMappingsReader implements MappingsReader {
120 } 120 }
121 } catch (Throwable t) { 121 } catch (Throwable t) {
122 t.printStackTrace(); 122 t.printStackTrace();
123 throw new MappingParseException(path::toString, lineNumber, t.toString()); 123 throw new MappingParseException(path::toString, lineNumber + 1, t.toString());
124 } 124 }
125 } 125 }
126 126
@@ -162,9 +162,13 @@ public enum EnigmaMappingsReader implements MappingsReader {
162 return line; 162 return line;
163 } 163 }
164 164
165 private static int countIndentation(String line) { 165 private static int countIndentation(String line, Path path, int lineNumber) throws MappingParseException {
166 int indent = 0; 166 int indent = 0;
167 for (int i = 0; i < line.length(); i++) { 167 for (int i = 0; i < line.length(); i++) {
168 if (line.charAt(i) == ' ') {
169 throw new MappingParseException(path::toString, lineNumber + 1, "Spaces must not be used to indent lines!");
170 }
171
168 if (line.charAt(i) != '\t') { 172 if (line.charAt(i) != '\t') {
169 break; 173 break;
170 } 174 }