diff --git a/src/main/java/com/hubspot/jinjava/tree/parse/Token.java b/src/main/java/com/hubspot/jinjava/tree/parse/Token.java index c9bad320e..e1a308f35 100644 --- a/src/main/java/com/hubspot/jinjava/tree/parse/Token.java +++ b/src/main/java/com/hubspot/jinjava/tree/parse/Token.java @@ -91,13 +91,13 @@ public void setRightTrimAfterEnd(boolean rightTrimAfterEnd) { */ protected final String handleTrim(String unwrapped) { String result = unwrapped; - if (unwrapped.startsWith("-")) { + if (result.startsWith("-")) { setLeftTrim(true); - result = unwrapped.substring(1); + result = result.substring(1); } - if (unwrapped.endsWith("-")) { + if (result.endsWith("-")) { setRightTrim(true); - result = unwrapped.substring(0, unwrapped.length() - 1); + result = result.substring(0, result.length() - 1); } return result; } diff --git a/src/test/java/com/hubspot/jinjava/interpret/JinjavaInterpreterTest.java b/src/test/java/com/hubspot/jinjava/interpret/JinjavaInterpreterTest.java index 561efd431..e99af5dcb 100644 --- a/src/test/java/com/hubspot/jinjava/interpret/JinjavaInterpreterTest.java +++ b/src/test/java/com/hubspot/jinjava/interpret/JinjavaInterpreterTest.java @@ -381,4 +381,9 @@ public void itInterpretsFilterChainsInOrder() { public void itInterpretsStandaloneNegatives() { assertThat(interpreter.render("{{ -10 }}")).isEqualTo("-10"); } + + @Test + public void itInterpretsWhitespaceControlOnBothSides() { + assertThat(interpreter.render("{{- 5 -}}")).isEqualTo("5"); + } }