From 08ebf8fabc860fb66d586aade838483dda86b5b0 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Sat, 13 Dec 2025 15:58:34 +0100 Subject: Fix parsing of escaped characters in macros (#1126) * refactor: Better printing for KeyValue in tests * Fix parsing of escaped characters in macros The parsing code was bugged with custom macros like `symbol:\abc` and `symbol:\\abc`.--- test/juloo.keyboard2/KeyValueParserTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'test') diff --git a/test/juloo.keyboard2/KeyValueParserTest.java b/test/juloo.keyboard2/KeyValueParserTest.java index d56b6b5..aa506e7 100644 --- a/test/juloo.keyboard2/KeyValueParserTest.java +++ b/test/juloo.keyboard2/KeyValueParserTest.java @@ -44,6 +44,12 @@ public class KeyValueParserTest KeyValue.getSpecialKeyByName("ctrl"), KeyValue.getSpecialKeyByName("backspace") }, 0)); + Utils.parse("symbol:a,'\\\\abc','abc','a\\\\bc'", KeyValue.makeMacro("symbol", new KeyValue[]{ + KeyValue.makeStringKey("a"), + KeyValue.makeStringKey("\\abc"), + KeyValue.makeStringKey("abc"), + KeyValue.makeStringKey("a\\bc") + }, 0)); Utils.expect_error("symbol:"); Utils.expect_error("unterminated_string:'"); Utils.expect_error("unterminated_string:abc,'"); @@ -57,6 +63,10 @@ public class KeyValueParserTest { Utils.parse("a:b", KeyValue.makeCharKey('b', "a", 0)); Utils.parse("symbol:abc", KeyValue.makeStringKey("abc").withSymbol("symbol")); + Utils.parse("symbol:\\abc", KeyValue.makeStringKey("abc").withSymbol("symbol")); + Utils.parse("symbol:a\\bc", KeyValue.makeStringKey("abc").withSymbol("symbol")); + Utils.parse("symbol:\\\\abc", KeyValue.makeStringKey("\\abc").withSymbol("symbol")); + Utils.parse("symbol:a\\\\bc", KeyValue.makeStringKey("a\\bc").withSymbol("symbol")); } @Test -- cgit v1.2.3