Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
---
.../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@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html| Greg Kroah-Hartman | [PATCH 004/196] Chinese: add translation of SubmittingPatches |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Rafael J. Wysocki | 2.6.27-rc4-git1: Reported regressions from 2.6.26 |
| Pavel Roskin | ndiswrapper and GPL-only symbols redux |
git: | |
| Corey Minyard | [PATCH 3/3] Convert the UDP hash lock to RCU |
| David Miller | [GIT]: Networking |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Mark Smith | MACVLANs really best solution? How about a bridge with multiple bridge virtual int... |
