Fix RichParser assuming it should be used if its prefix is short than, and contained by, the input

Dieser Commit ist enthalten in:
dordsor21 2021-11-16 12:49:54 +00:00
Ursprung 575b0035df
Commit 66357b8adb
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 1E53E88969FFCF0B

Datei anzeigen

@ -100,11 +100,14 @@ public abstract class RichParser<E> extends InputParser<E> implements AliasedPar
@Override @Override
public E parseFromInput(String input, ParserContext context) throws InputParseException { public E parseFromInput(String input, ParserContext context) throws InputParseException {
for (String prefix : this.prefixes) { int i = input.indexOf('[');
if (!input.startsWith(prefix)) { // Rich parser requires arguments, else, it should not be used
continue; if (i == -1) {
return null;
} }
if (input.length() < prefix.length()) { String inputPrefix = input.substring(0, i);
for (String prefix : this.prefixes) {
if (!inputPrefix.equals(prefix)) {
continue; continue;
} }
String[] arguments = extractArguments(input.substring(prefix.length()), true); String[] arguments = extractArguments(input.substring(prefix.length()), true);