mirror of
https://github.com/Anuken/Mindustry.git
synced 2026-10-02 11:10:50 +03:00
Fix empty statement fields shifting the remaining parameters (#12715)
* Fix empty statement fields shifting remaining parameters * Fixed unit tests
This commit is contained in:
@@ -90,7 +90,7 @@ public abstract class LStatement{
|
|||||||
/** Sanitizes variable input strings from text fields into values that will not break logic parsing. */
|
/** Sanitizes variable input strings from text fields into values that will not break logic parsing. */
|
||||||
public static String sanitize(String value){
|
public static String sanitize(String value){
|
||||||
if(value.length() == 0){
|
if(value.length() == 0){
|
||||||
return "";
|
return "null";
|
||||||
}else if(value.length() == 1){
|
}else if(value.length() == 1){
|
||||||
if(value.charAt(0) == '"' || value.charAt(0) == ';' || value.charAt(0) == ' ' ||
|
if(value.charAt(0) == '"' || value.charAt(0) == ';' || value.charAt(0) == ' ' ||
|
||||||
value.charAt(0) == '\n' || value.charAt(0) == '\t' || value.charAt(0) == '#'){
|
value.charAt(0) == '\n' || value.charAt(0) == '\t' || value.charAt(0) == '#'){
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ public class LogicTests{
|
|||||||
Arguments.of("a bare single semicolon is invalid", ";", "invalid"),
|
Arguments.of("a bare single semicolon is invalid", ";", "invalid"),
|
||||||
Arguments.of("a bare single space is invalid", " ", "invalid"),
|
Arguments.of("a bare single space is invalid", " ", "invalid"),
|
||||||
Arguments.of("a single ordinary character passes through unchanged", "a", "a"),
|
Arguments.of("a single ordinary character passes through unchanged", "a", "a"),
|
||||||
Arguments.of("empty input stays empty", "", ""),
|
Arguments.of("empty input gets converted to null", "", "null"),
|
||||||
Arguments.of("a plain already-quoted value is untouched", "\"hello\"", "\"hello\""),
|
Arguments.of("a plain already-quoted value is untouched", "\"hello\"", "\"hello\""),
|
||||||
Arguments.of("a unescaped quote at the end gets doubled", "\"hello\\\"", "\"hello\\\\\""),
|
Arguments.of("a unescaped quote at the end gets doubled", "\"hello\\\"", "\"hello\\\\\""),
|
||||||
Arguments.of(
|
Arguments.of(
|
||||||
@@ -454,4 +454,4 @@ public class LogicTests{
|
|||||||
void crlfLabelsResolveToTheSameJumpLocationAsLfLabels(){
|
void crlfLabelsResolveToTheSameJumpLocationAsLfLabels(){
|
||||||
assertDoesNotThrow(() -> load("loop:\r\njump loop always\r\n"));
|
assertDoesNotThrow(() -> load("loop:\r\njump loop always\r\n"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user