From: Marco Miller Date: Mon, 9 May 2016 16:36:00 +0000 (-0400) Subject: Remove UTF-8 checking duplication in Config lib subclasses X-Git-Tag: v4.4.0.201605250940-rc1~2^2~12 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=refs%2Fchanges%2F15%2F72315%2F2;p=jgit.git Remove UTF-8 checking duplication in Config lib subclasses Change-Id: Ib9f0ae8207000a36c5bf1a92fcc2c32efc4c0984 Signed-off-by: Marco Miller Signed-off-by: Matthias Sohn --- diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/BlobBasedConfig.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/BlobBasedConfig.java index 7d52991df0..8958ce7e85 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/BlobBasedConfig.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/BlobBasedConfig.java @@ -80,8 +80,7 @@ public class BlobBasedConfig extends Config { throws ConfigInvalidException { super(base); final String decoded; - if (blob.length >= 3 && blob[0] == (byte) 0xEF - && blob[1] == (byte) 0xBB && blob[2] == (byte) 0xBF) { + if (isUtf8(blob)) { decoded = RawParseUtils.decode(RawParseUtils.UTF8_CHARSET, blob, 3, blob.length); } else { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java index 088dcdfd04..567e31642d 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java @@ -1108,6 +1108,19 @@ public class Config { state.set(newState()); } + /** + * Check if bytes should be treated as UTF-8 or not. + * + * @param bytes + * the bytes to check encoding for. + * @return true if bytes should be treated as UTF-8, false otherwise. + * @since 4.4 + */ + protected boolean isUtf8(final byte[] bytes) { + return bytes.length >= 3 && bytes[0] == (byte) 0xEF + && bytes[1] == (byte) 0xBB && bytes[2] == (byte) 0xBF; + } + private static String readSectionName(final StringReader in) throws ConfigInvalidException { final StringBuilder name = new StringBuilder(); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileBasedConfig.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileBasedConfig.java index 702fd70765..4b4822c763 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileBasedConfig.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileBasedConfig.java @@ -147,8 +147,7 @@ public class FileBasedConfig extends StoredConfig { snapshot = newSnapshot; } else { final String decoded; - if (in.length >= 3 && in[0] == (byte) 0xEF - && in[1] == (byte) 0xBB && in[2] == (byte) 0xBF) { + if (isUtf8(in)) { decoded = RawParseUtils.decode(RawParseUtils.UTF8_CHARSET, in, 3, in.length); utf8Bom = true;