[JGIT PATCH] Fixed a bug that caused tabs in ~/.ssh/config to break parsing
- From
- Gilion Goudsmit <ggoudsmit@shebang.nl>
- Date
- Sep 20, 2008, 20:33 UTC
- Message-ID
- <12219428213749-git-send-email-ggoudsmit@shebang.nl>
Having only tab-characters separating a key and value in the users ~/.ssh/config would cause the config-parser to fail with a "String index out of range: -1" exception. Also simplified the line parsing code my using a two argument split.
Signed-off-by: Gilion Goudsmit <ggoudsmit@shebang.nl> --- .../org/spearce/jgit/transport/OpenSshConfig.java | 14 +++----------- 1 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/OpenSshConfig.java b/org.spearce.jgit/src/org/spearce/jgit/transport/OpenSshConfig.java index df38e18..5bfcf5f 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/transport/OpenSshConfig.java +++ b/org.spearce.jgit/src/org/spearce/jgit/transport/OpenSshConfig.java @@ -167,17 +167,9 @@ while ((line = br.readLine()) != null) { if (line.length() == 0 || line.startsWith("#")) continue; - final int sp = line.indexOf(' '); - final int eq = line.indexOf('='); - final int splitAt; - if (sp >= 0 && eq >= 0) - splitAt = Math.min(sp, eq); - else if (sp < 0) - splitAt = eq; - else - splitAt = sp; - final String keyword = line.substring(0, splitAt).trim(); - final String argValue = line.substring(splitAt + 1).trim(); + final String[] parts = line.split("[ \t=]", 2); + final String keyword = parts[0].trim(); + final String argValue = parts[1].trim(); if ("Host".equalsIgnoreCase(keyword)) { current.clear();
-- 1.5.3.8