Signed-off-by: Robin Rosenberg <robin.rosenberg@xxxxxxxxxx> --- .../org/spearce/jgit/lib/RepositoryConfigTest.java | 8 ++++++++ .../src/org/spearce/jgit/lib/RepositoryConfig.java | 18 ++++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java index da7e704..bd5329c 100644 --- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java +++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java @@ -109,4 +109,12 @@ assertTrue(Arrays.equals(values.toArray(), repositoryConfig .getStringList("my", null, "somename"))); checkFile(cfgFile, "[my]\n\tsomename = value1\n\tsomename = value2\n"); } + + public void test006_readCaseInsensitive() throws IOException { + final File path = writeTrashFile("config_001", "[Foo]\nBar\n"); + RepositoryConfig repositoryConfig = new RepositoryConfig(null, path); + System.out.println(repositoryConfig.getString("foo", null, "bar")); + assertEquals(true, repositoryConfig.getBoolean("foo", null, "bar", false)); + assertEquals("", repositoryConfig.getString("foo", null, "bar")); + } } diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java b/org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java index 45c2f8a..7a34cde 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java @@ -52,12 +52,13 @@ import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; +import java.util.Comparator; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeMap; import org.spearce.jgit.util.FS; @@ -236,9 +237,9 @@ protected boolean getBoolean(final String section, String subsection, return defaultValue; n = n.toLowerCase(); - if (MAGIC_EMPTY_VALUE.equals(n) || "yes".equals(n) || "true".equals(n) || "1".equals(n)) { + if (MAGIC_EMPTY_VALUE.equals(n) || "yes".equalsIgnoreCase(n) || "true".equalsIgnoreCase(n) || "1".equals(n)) { return true; - } else if ("no".equals(n) || "false".equals(n) || "0".equals(n)) { + } else if ("no".equalsIgnoreCase(n) || "false".equalsIgnoreCase(n) || "0".equalsIgnoreCase(n)) { return false; } else { throw new IllegalArgumentException("Invalid boolean value: " @@ -300,7 +301,7 @@ public String getString(final String section, String subsection, final String na final Set<String> result = new HashSet<String>(); for (final Entry e : entries) { - if (section.equals(e.base) && e.extendedBase != null) + if (section.equalsIgnoreCase(e.base) && e.extendedBase != null) result.add(e.extendedBase); } if (baseConfig != null) @@ -682,7 +683,12 @@ public void load() throws IOException { private void clear() { entries = new ArrayList<Entry>(); - byName = new HashMap<String, Object>(); + byName = new TreeMap<String, Object>(new Comparator<String>() { + + public int compare(String o1, String o2) { + return o1.compareToIgnoreCase(o2); + } + }); } @SuppressWarnings("unchecked") @@ -954,7 +960,7 @@ private static boolean eq(final String a, final String b) { return true; if (a == null || b == null) return false; - return a.equals(b); + return a.equalsIgnoreCase(b); } } } -- 1.6.0.2.308.gef4a -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html