Browse Source

Remove UTF-8 checking duplication in Config lib subclasses

Change-Id: Ib9f0ae8207000a36c5bf1a92fcc2c32efc4c0984
Signed-off-by: Marco Miller <marco.miller@ericsson.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
tags/v4.4.0.201605250940-rc1
Marco Miller 8 years ago
parent
commit
e5a9915a92

+ 1
- 2
org.eclipse.jgit/src/org/eclipse/jgit/lib/BlobBasedConfig.java View File

@@ -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 {

+ 13
- 0
org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java View File

@@ -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();

+ 1
- 2
org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileBasedConfig.java View File

@@ -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;

Loading…
Cancel
Save