blob: bfb9b15dceac0c51884c11826749c4671b297271 [file] [log] [blame]
From ce9b593ddf2530613f6da9d7f7e4a5ff93da8b36 Mon Sep 17 00:00:00 2001
From: Robin Rosenberg <robin.rosenberg@dewire.com>
Date: Mon, 13 Oct 2008 00:50:59 +0200
Subject: [PATCH] git config file is case insensitive
Keys are now always compared with ignore case rules.
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
.../org/spearce/jgit/lib/RepositoryConfigTest.java | 7 +++++++
.../src/org/spearce/jgit/lib/RepositoryConfig.java | 8 ++++----
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/org.eclipse.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java b/org.eclipse.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java
index da7e704..34ce04a 100644
--- a/org.eclipse.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java
+++ b/org.eclipse.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java
@@ -109,4 +109,11 @@ 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);
+ assertEquals(true, repositoryConfig.getBoolean("foo", null, "bar", false));
+ assertEquals("", repositoryConfig.getString("foo", null, "bar"));
+ }
}
diff --git a/org.eclipse.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java b/org.eclipse.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java
index 45c2f8a..3291bba 100644
--- a/org.eclipse.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java
+++ b/org.eclipse.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java
@@ -236,9 +236,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 +300,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)
@@ -954,7 +954,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.1.rc2.299.gead4c