diff --git a/src/main/java/com/moandjiezana/toml/Identifier.java b/src/main/java/com/moandjiezana/toml/Identifier.java index 794b28d..af0b257 100644 --- a/src/main/java/com/moandjiezana/toml/Identifier.java +++ b/src/main/java/com/moandjiezana/toml/Identifier.java @@ -163,7 +163,7 @@ class Identifier { } } else if (Character.isWhitespace(c)) { char prev = trimmed.charAt(i - 1); - if (!Character.isWhitespace(prev) && prev != '.' && prev != '"') { + if (!Character.isWhitespace(prev) && prev != '.') { charAllowed = false; dotAllowed = true; quoteAllowed = true; diff --git a/src/test/java/com/moandjiezana/toml/TableTest.java b/src/test/java/com/moandjiezana/toml/TableTest.java index 3a8d341..e17b441 100644 --- a/src/test/java/com/moandjiezana/toml/TableTest.java +++ b/src/test/java/com/moandjiezana/toml/TableTest.java @@ -78,6 +78,13 @@ public class TableTest { assertEquals("b", toml.getString("target.\"cfg(unix)\".dependencies.b")); } + @Test + public void should_accept_table_name_part_with_whitespace_and_basic_string() { + Toml toml = new Toml().read("[ target . \"cfg (unix)\" . dependencies ]\nb = 'b'"); + + assertEquals("b", toml.getString("target.\"cfg (unix)\".dependencies.b")); + } + @Test public void should_accept_table_name_with_literal_string() { Toml toml = new Toml().read("['a']\nb = 'b'"); @@ -91,6 +98,13 @@ public class TableTest { assertEquals("b", toml.getString("target.'cfg(unix)'.dependencies.b")); } + + @Test + public void should_accept_table_name_part_with_whitespace_and_literal_string() { + Toml toml = new Toml().read("[target . 'cfg(unix)' . dependencies]\nb = 'b'"); + + assertEquals("b", toml.getString("target.'cfg(unix)'.dependencies.b")); + } @Test public void should_return_null_when_navigating_to_missing_value() throws Exception {