git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[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
Previous: Junio C HamanoNext: Pat Notz
Message 8 of 17 in “[PATCHv5 0/8] Add commit message options for rebase --autosquash”
  1. Pat NotzOct 7, 2010
  2. 1/8 commit.c: prefer get_header() to manual searchingPat Notz, Oct 7, 2010
  3. Sverre RabbelierOct 7, 2010
  4. Sverre RabbelierOct 7, 2010
  5. Junio C HamanoOct 13, 2010
  6. 2/8 commit.c: new function for looking up a comit by namePat Notz, Oct 7, 2010
  7. Junio C HamanoOct 13, 2010
  8. 3/8 pretty.c: helper methods for getting output encodingsPat Notz, Oct 7, 2010
  9. 4/8 pretty.c: teach format_commit_message() to reencode the outputPat Notz, Oct 7, 2010
  10. Junio C HamanoOct 13, 2010
  11. Pat NotzOct 13, 2010
  12. 5/8 commit: --fixup option for use with rebase --autosquashPat Notz, Oct 7, 2010
  13. 6/8 add tests of commit --fixupPat Notz, Oct 7, 2010
  14. 7/8 commit: --squash option for use with rebase --autosquashPat Notz, Oct 7, 2010
  15. 8/8 add tests of commit --squashPat Notz, Oct 7, 2010
  16. Pat NotzOct 11, 2010
  17. Sverre RabbelierOct 12, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.