[PATCHv5 3/8] pretty.c: helper methods for getting output encodings
- From
Pat Notz <patnotz@gmail.com>
- Date
- Oct 7, 2010, 19:10 UTC
- Message-ID
- <1286478657-61581-4-git-send-email-patnotz@gmail.com>
- In-Reply-To
- <1286478657-61581-1-git-send-email-patnotz@gmail.com>
Add helpers get_log_output_encoding() and get_commit_output_encoding() that eliminate some messy and duplicate if-blocks.
Signed-off-by: Pat Notz <patnotz@gmail.com> --- builtin/commit.c | 2 +- cache.h | 3 +++ environment.c | 11 +++++++++++ pretty.c | 6 +----- 4 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/builtin/commit.c b/builtin/commit.c index 9fe4bdc..ea3801d 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -905,7 +905,7 @@ static int parse_and_validate_options(int argc, const char *argv[], enc = get_header(commit, "encoding"); enc = enc ? enc : utf8; - out_enc = git_commit_encoding ? git_commit_encoding : utf8; + out_enc = get_commit_output_encoding(); if (strcmp(out_enc, enc)) use_message_buffer = diff --git a/cache.h b/cache.h index 3d5ed51..7d49805 100644 --- a/cache.h +++ b/cache.h @@ -1003,6 +1003,9 @@ extern int git_env_bool(const char *, int); extern int git_config_system(void); extern int git_config_global(void); extern int config_error_nonbool(const char *); +extern const char *get_log_output_encoding(void); +extern const char *get_commit_output_encoding(void); + extern const char *config_exclusive_filename; #define MAX_GITNAME (1000) diff --git a/environment.c b/environment.c index de5581f..a9d44a2 100644 --- a/environment.c +++ b/environment.c @@ -192,3 +192,14 @@ int set_git_dir(const char *path) setup_git_env(); return 0; } + +const char *get_log_output_encoding(void) +{ + return git_log_output_encoding ? git_log_output_encoding + : get_commit_output_encoding(); +} + +const char *get_commit_output_encoding(void) +{ + return git_commit_encoding ? git_commit_encoding : "UTF-8"; +} diff --git a/pretty.c b/pretty.c index 839944c..a607fd6 100644 --- a/pretty.c +++ b/pretty.c @@ -1159,11 +1159,7 @@ char *reencode_commit_message(const struct commit *commit, const char **encoding { const char *encoding; - encoding = (git_log_output_encoding - ? git_log_output_encoding - : git_commit_encoding); - if (!encoding) - encoding = "UTF-8"; + encoding = get_log_output_encoding(); if (encoding_p) *encoding_p = encoding; return logmsg_reencode(commit, encoding);
-- 1.7.3.1