From 7d19b18c7d9afa33032b83ca196c1dab25d02f91 Mon Sep 17 00:00:00 2001 From: David Pursehouse Date: Sun, 30 Sep 2018 17:19:39 +0900 Subject: TextBuiltin#init: Factor out a method to get the log output encoding Change-Id: I87c5774722bd36ea6fe18c4b7ce22342578fa290 Signed-off-by: David Pursehouse --- .../src/org/eclipse/jgit/pgm/TextBuiltin.java | 33 ++++++++++++++-------- 1 file changed, 22 insertions(+), 11 deletions(-) (limited to 'org.eclipse.jgit.pgm/src') diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/TextBuiltin.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/TextBuiltin.java index 392d1131c4..66c84aff94 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/TextBuiltin.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/TextBuiltin.java @@ -172,29 +172,40 @@ public abstract class TextBuiltin { } /** - * Initialize the command to work with a repository. + * Get the log output encoding specified in the repository's + * {@code i18n.logOutputEncoding} configuration. * * @param repository - * the opened repository that the command should work on. - * @param gitDir - * value of the {@code --git-dir} command line option, if - * {@code repository} is null. + * the repository. + * @return Charset corresponding to {@code i18n.logOutputEncoding}, or + * {@code UTF_8}. */ - protected void init(Repository repository, String gitDir) { - Charset charset = UTF_8; + private Charset getLogOutputEncodingCharset(Repository repository) { if (repository != null) { String logOutputEncoding = repository.getConfig().getString( - CONFIG_SECTION_I18N, - null, - CONFIG_KEY_LOG_OUTPUT_ENCODING); + CONFIG_SECTION_I18N, null, CONFIG_KEY_LOG_OUTPUT_ENCODING); if (logOutputEncoding != null) { try { - charset = Charset.forName(logOutputEncoding); + return Charset.forName(logOutputEncoding); } catch (IllegalArgumentException e) { throw die(CLIText.get().cannotCreateOutputStream); } } } + return UTF_8; + } + + /** + * Initialize the command to work with a repository. + * + * @param repository + * the opened repository that the command should work on. + * @param gitDir + * value of the {@code --git-dir} command line option, if + * {@code repository} is null. + */ + protected void init(Repository repository, String gitDir) { + Charset charset = getLogOutputEncodingCharset(repository); if (ins == null) ins = new FileInputStream(FileDescriptor.in); -- cgit v1.2.3