From b5833cfdc7da21a523fa65ab1b1951494d5dde0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Hoste?= Date: Tue, 17 Jan 2023 14:35:27 +0100 Subject: [PATCH 1/2] raise error in `parse_arg_id` if a dot if found `{ count, plural, one {{results.length} result} other {{results.length} results} }` was wrongly considered as a valid ICU --- lib/message_format/parser.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/message_format/parser.rb b/lib/message_format/parser.rb index 79d22e5..5ec5feb 100644 --- a/lib/message_format/parser.rb +++ b/lib/message_format/parser.rb @@ -181,7 +181,7 @@ def parse_arg_id () id = '' while @index < @length char = @pattern[@index] - if char == '{' or char == '#' + if char == '{' or char == '#' || char == '.' raise_expected('argument id') end if char == '}' or char == ',' or is_whitespace(char) From b9ecee20c7f1c5020cdafaa1cb5da25b98a0cd84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Hoste?= Date: Thu, 28 Mar 2024 21:50:09 +0100 Subject: [PATCH 2/2] Don't allow parenthesis in variable name --- lib/message_format/parser.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/message_format/parser.rb b/lib/message_format/parser.rb index 5ec5feb..5b866c9 100644 --- a/lib/message_format/parser.rb +++ b/lib/message_format/parser.rb @@ -181,7 +181,7 @@ def parse_arg_id () id = '' while @index < @length char = @pattern[@index] - if char == '{' or char == '#' || char == '.' + if char == '{' or char == '#' or char == '.' or char == '(' or char == ')' raise_expected('argument id') end if char == '}' or char == ',' or is_whitespace(char)