From f26543f7da1dfb4c23eb77346c60b673695f133c Mon Sep 17 00:00:00 2001 From: Jesse Boyd Date: Fri, 9 Jun 2017 17:07:38 +1000 Subject: [PATCH] Fix #575 --- .../java/com/boydti/fawe/command/FaweParser.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/com/boydti/fawe/command/FaweParser.java b/core/src/main/java/com/boydti/fawe/command/FaweParser.java index e5ae3cdd..ff0052e0 100644 --- a/core/src/main/java/com/boydti/fawe/command/FaweParser.java +++ b/core/src/main/java/com/boydti/fawe/command/FaweParser.java @@ -62,9 +62,9 @@ public abstract class FaweParser extends InputParser { int len = command.length(); String current = null; int end = -1; + boolean newEntry = true; for (int i = 0; i < len; i++) { - boolean newEntry = i == 0; - boolean prefix = false; + int prefix = 0; boolean or = false; char c = command.charAt(i); if (i < end) continue; @@ -72,7 +72,7 @@ public abstract class FaweParser extends InputParser { case '&': or = true; case ',': { - prefix = true; + prefix = 1; if (current == null) { throw new InputParseException("Duplicate separator"); } @@ -98,18 +98,18 @@ public abstract class FaweParser extends InputParser { } String arg = command.substring(i + 1, end); args.add(arg); - // start break; } } if (newEntry) { - int index = StringMan.indexOf(command, i + 1, '[', '&', ','); + newEntry = false; + int index = StringMan.indexOf(command, i + prefix, '[', '&', ','); if (index < 0) index = len; end = index; - current = command.substring(i + (prefix ? 1 : 0), end); - args = new ArrayList<>(); + current = command.substring(i + prefix, end); + if (prefix == 1) args = new ArrayList<>(); ParseEntry entry = new ParseEntry(current, or); - keys.add(new AbstractMap.SimpleEntry>(entry, args)); + keys.add(new AbstractMap.SimpleEntry<>(entry, args)); } } for (int i = 0; i < keys.size() - 1; i++) { // Apply greedy and