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

[PATCH v1 2/6] mailmap: move `git_default_mailmap_config` to `mailmap.c`

From
Ben Boeckel <mathstuf@gmail.com>
Date
Jul 31, 2021, 02:42 UTC
Message-ID
<20210731024221.2113906-3-mathstuf@gmail.com>
In-Reply-To
<20210731024221.2113906-1-mathstuf@gmail.com>

This allows mailmap-specific variables to be tracked locally in `mailmap.c` instead of globally.

Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
---
 cache.h   |  2 --
 config.c  | 12 +-----------
 mailmap.c | 16 ++++++++++++++--
 mailmap.h |  2 ++
 4 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/cache.h b/cache.h
index 6ea1ea5854..551a6cb5cf 100644
--- a/cache.h
+++ b/cache.h
@@ -1718,8 +1718,6 @@ int author_ident_sufficiently_given(void);
 
 extern const char *git_commit_encoding;
 extern const char *git_log_output_encoding;
-extern const char *git_mailmap_file;
-extern const char *git_mailmap_blob;
 
 /* IO helper functions */
 void maybe_flush_or_die(FILE *, const char *);
diff --git a/config.c b/config.c
index 840be51710..c45001adbe 100644
--- a/config.c
+++ b/config.c
@@ -15,6 +15,7 @@
 #include "strbuf.h"
 #include "quote.h"
 #include "hashmap.h"
+#include "mailmap.h"
 #include "string-list.h"
 #include "object-store.h"
 #include "utf8.h"
@@ -1603,17 +1604,6 @@ static int git_default_push_config(const char *var, const char *value)
 	return 0;
 }
 
-static int git_default_mailmap_config(const char *var, const char *value)
-{
-	if (!strcmp(var, "mailmap.file"))
-		return git_config_pathname(&git_mailmap_file, var, value);
-	if (!strcmp(var, "mailmap.blob"))
-		return git_config_string(&git_mailmap_blob, var, value);
-
-	/* Add other config variables here and to Documentation/config.txt. */
-	return 0;
-}
-
 int git_default_config(const char *var, const char *value, void *cb)
 {
 	if (starts_with(var, "core."))
diff --git a/mailmap.c b/mailmap.c
index d1f7c0d272..e1d9a2bbdb 100644
--- a/mailmap.c
+++ b/mailmap.c
@@ -1,4 +1,5 @@
 #include "cache.h"
+#include "config.h"
 #include "string-list.h"
 #include "mailmap.h"
 #include "object-store.h"
@@ -12,8 +13,19 @@ static inline void debug_mm(const char *format, ...) {}
 static inline const char *debug_str(const char *s) { return s; }
 #endif
 
-const char *git_mailmap_file;
-const char *git_mailmap_blob;
+static const char *git_mailmap_file;
+static const char *git_mailmap_blob;
+
+int git_default_mailmap_config(const char *var, const char *value)
+{
+	if (!strcmp(var, "mailmap.file"))
+		return git_config_pathname(&git_mailmap_file, var, value);
+	if (!strcmp(var, "mailmap.blob"))
+		return git_config_string(&git_mailmap_blob, var, value);
+
+	/* Add other config variables here and to Documentation/config.txt. */
+	return 0;
+}
 
 struct mailmap_info {
 	char *name;
diff --git a/mailmap.h b/mailmap.h
index 7e99fccb46..48bfe9fac7 100644
--- a/mailmap.h
+++ b/mailmap.h
@@ -3,6 +3,8 @@
 
 struct string_list;
 
+int git_default_mailmap_config(const char *var, const char *value);
+
 int read_mailmap(struct string_list *map);
 void clear_mailmap(struct string_list *map);
 
-- 
2.31.1
Previous: Ben BoeckelNext: Ben Boeckel
Message 4 of 7 in “globals: clean up some global usages”
  1. 0/6 globals: clean up some global usagesBen Boeckel, Jul 31, 2021
  2. 1/6 branch: move `git_default_branch_config` to `branch.c`Ben Boeckel, Jul 31, 2021
  3. 3/6 apply: move `apply_default_*whitespace` to `apply.c`Ben Boeckel, Jul 31, 2021
  4. 2/6 mailmap: move `git_default_mailmap_config` to `mailmap.c`Ben Boeckel, Jul 31, 2021
  5. 4/6 config: remove `core_compression_level`Ben Boeckel, Jul 31, 2021
  6. 5/6 refs/debug: declare file-local variable to be staticBen Boeckel, Jul 31, 2021
  7. 6/6 globals: remove explicit `0` initialization from globalsBen Boeckel, Jul 31, 2021

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.