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

[PATCH v2 0/5] builtin/config.c: combined series '--type', '--default'

From
Taylor Blau <me@ttaylorr.com>
Date
Apr 26, 2018, 05:58 UTC
Message-ID
<cover.1524722247.git.me@ttaylorr.com>
In-Reply-To
<cover.1524716420.git.me@ttaylorr.com>
Hi,

Here is an amended version of my combined series to add '--type' and '--default'. My apologies for the re-roll, I thought that I had looked everything over closely enough :-).

Since last time:
  * Correct an obviously-wrong assignment into '*to_type' [1]. I have
    moved both of these assignments into the top-line declaration of
    those variables.
  * Re-add a removed hunk to support '--type=color' correctly [2].

Thanks, Taylor

[1]: https://public-inbox.org/git/xmqq7eou35ev.fsf@gitster-ct.c.googlers.com [2]: https://public-inbox.org/git/xmqq36zi352x.fsf@gitster-ct.c.googlers.com

Taylor Blau (5):
  builtin/config.c: treat type specifiers singularly
  builtin/config.c: support `--type=<type>` as preferred alias for
    `--<type>`
  builtin/config: introduce `--default`
  config.c: introduce 'git_config_color' to parse ANSI colors
  builtin/config: introduce `color` type specifier
 Documentation/git-config.txt |  81 ++++++++++++--------
 builtin/config.c             | 143 ++++++++++++++++++++++++++++-------
 config.c                     |  10 +++
 config.h                     |   1 +
 t/t1300-repo-config.sh       |  93 +++++++++++++++++++++++
 t/t1310-config-default.sh    |  36 +++++++++
 6 files changed, 305 insertions(+), 59 deletions(-)
 create mode 100755 t/t1310-config-default.sh
Inter-diff (since v1):
diff --git a/builtin/config.c b/builtin/config.c
index ec5c11293b..bb62816bba 100644
--- a/builtin/config.c
+++ b/builtin/config.c
@@ -72,19 +72,18 @@ static struct option builtin_config_options[];
 static int option_parse_type(const struct option *opt, const char *arg,
 			     int unset)
 {
-	int new_type;
-	int *to_type;
+	/*
+	 * To support '--<type>' style flags, begin with new_type equal to
+	 * opt->defval.
+	 */
+	int new_type = opt->defval;
+	int *to_type = opt->value;

 	if (unset) {
 		*((int *) opt->value) = 0;
 		return 0;
 	}

-	/*
-	 * To support '--<type>' style flags, begin with new_type equal to
-	 * opt->defval.
-	 */
-	new_type = opt->defval;
 	if (!new_type) {
 		if (!strcmp(arg, "bool"))
 			new_type = TYPE_BOOL;
@@ -96,11 +95,12 @@ static int option_parse_type(const struct option *opt, const char *arg,
 			new_type = TYPE_PATH;
 		else if (!strcmp(arg, "expiry-date"))
 			new_type = TYPE_EXPIRY_DATE;
+		else if (!strcmp(arg, "color"))
+			new_type = TYPE_COLOR;
 		else
 			die(_("unrecognized --type argument, %s"), arg);
 	}

-	*to_type = opt->value;
 	if (*to_type && *to_type != new_type) {
 		/*
 		 * Complain when there is a new type not equal to the old type.

--
2.17.0
Previous: Taylor BlauNext: Taylor Blau
Message 12 of 20 in “builtin/config.c: combined series '--type', '--default'”
  1. 0/5 builtin/config.c: combined series '--type', '--default'Taylor Blau, Apr 26, 2018
  2. 1/5 builtin/config.c: treat type specifiers singularlyTaylor Blau, Apr 26, 2018
  3. 2/5 builtin/config.c: support `--type=<type>` as preferred alias for `--type`Taylor Blau, Apr 26, 2018
  4. Junio C HamanoApr 26, 2018
  5. Taylor BlauApr 26, 2018
  6. Eric SunshineApr 27, 2018
  7. 3/5 builtin/config: introduce `--default`Taylor Blau, Apr 26, 2018
  8. 4/5 config.c: introduce 'git_config_color' to parse ANSI colorsTaylor Blau, Apr 26, 2018
  9. 5/5 builtin/config: introduce `color` type specifierTaylor Blau, Apr 26, 2018
  10. Junio C HamanoApr 26, 2018
  11. Taylor BlauApr 26, 2018
  12. 0/5 builtin/config.c: combined series '--type', '--default'Taylor Blau, Apr 26, 2018
  13. 1/5 builtin/config.c: treat type specifiers singularlyTaylor Blau, Apr 26, 2018
  14. 2/5 builtin/config.c: support `--type=<type>` as preferred alias for `--<type>`Taylor Blau, Apr 26, 2018
  15. Junio C HamanoApr 26, 2018
  16. Eric SunshineApr 27, 2018
  17. 3/5 builtin/config: introduce `--default`Taylor Blau, Apr 26, 2018
  18. 4/5 config.c: introduce 'git_config_color' to parse ANSI colorsTaylor Blau, Apr 26, 2018
  19. 5/5 builtin/config: introduce `color` type specifierTaylor Blau, Apr 26, 2018
  20. Eric SunshineApr 27, 2018

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.