Subject: [PATCH 0/1] config: add back code comment

From: Kristoffer Haugsbakk <[email-masked]>
Date: Sun, 28 Jan 2024 19:31:39 +0100

This is a follow-up to the kh/maintenance-use-xdg-when-it-should
[series] which was merged in 12ee4ed506 (Merge branch
'kh/maintenance-use-xdg-when-it-sho.., 2024-01-26).

I dropped a code comment while iterating on a refactor. It still makes
as much sense in this context as before the refactor (it’s a _refactor_
in the sense of “don’t change code behavior”).

The code comment was moved to `config.c` in patch v1 3/4.[1] But review
feedback said that this comment didn’t fit in this new place and that we
shouldn’t `die()` in `git_global_config`. So in v2 3/4[2] I removed the
comment in `git_global_config`. But I forgot to put the comment back to
its original place, where it still makes as much sense as before my
series.

[Here] is the diff when I squash this patch into c15129b699 (config:
factor out global config file retrieval, 2024-01-18).

Sorry about the churn.

Cc: [email-masked]

🔗 series: https://lore.kernel.org/git/[email-masked]/
🔗 1: https://lore.kernel.org/git/[email-masked]/
🔗 2: https://lore.kernel.org/git/[email-masked]/
† Here:

    diff --git a/builtin/config.c b/builtin/config.c
    index 6fff265581..b55bfae7d6 100644
    --- a/builtin/config.c
    +++ b/builtin/config.c
    @@ -708,10 +708,8 @@ int cmd_config(int argc, const char **argv, const char *prefix)
            }

            if (use_global_config) {
    -		char *user_config, *xdg_config;
    -
    -		git_global_config_paths(&user_config, &xdg_config);
    -		if (!user_config)
    +		given_config_source.file = git_global_config();
    +		if (!given_config_source.file)
                            /*
                             * It is unknown if HOME/.gitconfig exists, so
                             * we do not know if we should write to XDG
    @@ -719,19 +717,8 @@ int cmd_config(int argc, const char **argv, const char *prefix)
                             * is set and points at a sane location.
                             */
                            die(_("$HOME not set"));
    -
                    given_config_source.scope = CONFIG_SCOPE_GLOBAL;
    -
    -		if (access_or_warn(user_config, R_OK, 0) &&
    -		    xdg_config && !access_or_warn(xdg_config, R_OK, 0)) {
    -			given_config_source.file = xdg_config;
    -			free(user_config);
    -		} else {
    -			given_config_source.file = user_config;
    -			free(xdg_config);
    -		}
    -	}
    -	else if (use_system_config) {
    +	} else if (use_system_config) {
                    given_config_source.file = git_system_config();
                    given_config_source.scope = CONFIG_SCOPE_SYSTEM;
            } else if (use_local_config) {
    diff --git a/config.c b/config.c
    index ebc6a57e1c..3cfeb3d8bd 100644
    --- a/config.c
    +++ b/config.c
    @@ -1987,6 +1987,26 @@ char *git_system_config(void)
            return system_config;
     }

    +char *git_global_config(void)
    +{
    +	char *user_config, *xdg_config;
    +
    +	git_global_config_paths(&user_config, &xdg_config);
    +	if (!user_config) {
    +		free(xdg_config);
    +		return NULL;
    +	}
    +
    +	if (access_or_warn(user_config, R_OK, 0) && xdg_config &&
    +	    !access_or_warn(xdg_config, R_OK, 0)) {
    +		free(user_config);
    +		return xdg_config;
    +	} else {
    +		free(xdg_config);
    +		return user_config;
    +	}
    +}
    +
     void git_global_config_paths(char **user_out, char **xdg_out)
     {
            char *user_config = xstrdup_or_null(getenv("GIT_CONFIG_GLOBAL"));
    diff --git a/config.h b/config.h
    index e5e523553c..5dba984f77 100644
    --- a/config.h
    +++ b/config.h
    @@ -382,6 +382,7 @@ int config_error_nonbool(const char *);
     #endif

     char *git_system_config(void);
    +char *git_global_config(void);
     void git_global_config_paths(char **user, char **xdg);

     int git_config_parse_parameter(const char *, config_fn_t fn, void *data);

Kristoffer Haugsbakk (1):
  config: add back code comment

 builtin/config.c | 6 ++++++
 1 file changed, 6 insertions(+)

-- 
2.43.0