diff options
author | Nathan Adams <dinnerbone@dinnerbone.com> | 2011-10-12 04:39:22 +0100 |
---|---|---|
committer | Nathan Adams <dinnerbone@dinnerbone.com> | 2011-10-12 04:39:22 +0100 |
commit | 5703334ac81db21de898bbc05e5e892106e88c30 (patch) | |
tree | 51625f876e91b22b9fbe2954669ffbc05d6aecb3 /src | |
parent | 984c8ec90d58cd7b8cf0bf7f2054865430f61bf8 (diff) | |
download | bukkit-5703334ac81db21de898bbc05e5e892106e88c30.tar bukkit-5703334ac81db21de898bbc05e5e892106e88c30.tar.gz bukkit-5703334ac81db21de898bbc05e5e892106e88c30.tar.lz bukkit-5703334ac81db21de898bbc05e5e892106e88c30.tar.xz bukkit-5703334ac81db21de898bbc05e5e892106e88c30.zip |
YamlConfiguration now correctly writes extra blank lines at the end if requested
Diffstat (limited to 'src')
3 files changed, 26 insertions, 7 deletions
diff --git a/src/main/java/org/bukkit/configuration/file/YamlConfiguration.java b/src/main/java/org/bukkit/configuration/file/YamlConfiguration.java index 2ce6fcba..4bd9d4c4 100644 --- a/src/main/java/org/bukkit/configuration/file/YamlConfiguration.java +++ b/src/main/java/org/bukkit/configuration/file/YamlConfiguration.java @@ -137,12 +137,17 @@ public class YamlConfiguration extends FileConfiguration { } StringBuilder builder = new StringBuilder(); - String[] lines = header.split("\r?\n"); + String[] lines = header.split("\r?\n", -1); + boolean startedHeader = false; - for (int i = 0; i < lines.length; i++) { - builder.append(COMMENT_PREFIX); - builder.append(lines[i]); - builder.append("\n"); + for (int i = lines.length - 1; i >= 0; i--) { + builder.insert(0, "\n"); + + if ((startedHeader) || (lines[i].length() != 0)) { + builder.insert(0, lines[i]); + builder.insert(0, COMMENT_PREFIX); + startedHeader = true; + } } return builder.toString(); diff --git a/src/test/java/org/bukkit/configuration/file/FileConfigurationTest.java b/src/test/java/org/bukkit/configuration/file/FileConfigurationTest.java index 99eba4e1..5deb4581 100644 --- a/src/test/java/org/bukkit/configuration/file/FileConfigurationTest.java +++ b/src/test/java/org/bukkit/configuration/file/FileConfigurationTest.java @@ -6,7 +6,6 @@ import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.util.Map; -import java.util.Scanner; import org.bukkit.configuration.MemoryConfigurationTest; import org.junit.Rule; import org.junit.Test; diff --git a/src/test/java/org/bukkit/configuration/file/YamlConfigurationTest.java b/src/test/java/org/bukkit/configuration/file/YamlConfigurationTest.java index 5db017a3..3ec206de 100644 --- a/src/test/java/org/bukkit/configuration/file/YamlConfigurationTest.java +++ b/src/test/java/org/bukkit/configuration/file/YamlConfigurationTest.java @@ -31,7 +31,7 @@ public class YamlConfigurationTest extends FileConfigurationTest { } @Test - public void testSaveToStringWithheader() { + public void testSaveToStringWithHeader() { YamlConfiguration config = getConfig(); config.options().header("This is a sample\nheader."); @@ -46,6 +46,21 @@ public class YamlConfigurationTest extends FileConfigurationTest { } @Test + public void testSaveToStringWithLongHeader() { + YamlConfiguration config = getConfig(); + config.options().header("This is a sample\nheader.\n\nNewline above should be commented.\n\n"); + + for (Map.Entry<String, Object> entry : getTestValues().entrySet()) { + config.set(entry.getKey(), entry.getValue()); + } + + String result = config.saveToString(); + String expected = "# This is a sample\n# header.\n# \n# Newline above should be commented.\n\n\n" + getTestValuesString(); + + assertEquals(expected, result); + } + + @Test public void testSaveToStringWithIndent() { YamlConfiguration config = getConfig(); config.options().indent(9); |