From 38dc571a98d04360eea299c84e0e255f75fd7253 Mon Sep 17 00:00:00 2001 From: enbrain Date: Fri, 8 Apr 2022 19:38:38 +0900 Subject: Add a check for space indentation (#433) * Add a check for space indentation * Use MappingParseException--- .../translation/mapping/serde/enigma/EnigmaMappingsReader.java | 10 +++++++--- 1 file 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 { for (int lineNumber = 0; lineNumber < lines.size(); lineNumber++) { String line = lines.get(lineNumber); - int indentation = countIndentation(line); + int indentation = countIndentation(line, path, lineNumber); line = formatLine(line); if (line == null) { @@ -120,7 +120,7 @@ public enum EnigmaMappingsReader implements MappingsReader { } } catch (Throwable t) { t.printStackTrace(); - throw new MappingParseException(path::toString, lineNumber, t.toString()); + throw new MappingParseException(path::toString, lineNumber + 1, t.toString()); } } @@ -162,9 +162,13 @@ public enum EnigmaMappingsReader implements MappingsReader { return line; } - private static int countIndentation(String line) { + private static int countIndentation(String line, Path path, int lineNumber) throws MappingParseException { int indent = 0; for (int i = 0; i < line.length(); i++) { + if (line.charAt(i) == ' ') { + throw new MappingParseException(path::toString, lineNumber + 1, "Spaces must not be used to indent lines!"); + } + if (line.charAt(i) != '\t') { break; } -- cgit v1.2.3