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

Re: [PATCH 2/3] var: add attributes files locations

From
Derrick Stolee <derrickstolee@github.com>
Date
Jun 22, 2023, 20:19 UTC
Message-ID
<ebdf8a20-9ac7-dcf7-8cc6-b63894b7eb45@github.com>
In-Reply-To
<20230622195059.320593-3-sandals@crustytoothpaste.net>
On 6/22/2023 3:50 PM, brian m. carlson wrote:
Show 5 quoted lines
>  struct git_var {
>  	const char *name;
>  	const char *(*read)(int);
> +	int free;
>  };

I see you're expanding the git_var struct, and you do it more in patch 3. At that point, there will be two consecutive 'int' parameters, which can make things unclear as to how to proceed.

Show 10 quoted lines
>  static struct git_var git_vars[] = {
> -	{ "GIT_COMMITTER_IDENT", git_committer_info },
> -	{ "GIT_AUTHOR_IDENT",   git_author_info },
> -	{ "GIT_EDITOR", editor },
> -	{ "GIT_SEQUENCE_EDITOR", sequence_editor },
> -	{ "GIT_PAGER", pager },
> -	{ "GIT_DEFAULT_BRANCH", default_branch },
> -	{ "GIT_SHELL_PATH", shell_path },
> +	{ "GIT_COMMITTER_IDENT", git_committer_info, 0 },
> +	{ "GIT_AUTHOR_IDENT",   git_author_info, 0 },
This also makes for a big diff like this.

One way to solve for this is to use the more modern style when initializing the structs:

static struct git_var git_vars[] = {
	{
		.name = "GIT_COMMITTER_IDENT",
		.read = git_author_info,
		.free = 0,
	},
	...
}

Bonus points if you do this conversion before modifying the struct, as later changes will only add lines to the existing initialization...

  static struct git_var git_vars[] = {
  	{
  		.name = "GIT_COMMITTER_IDENT",
  		.read = git_author_info,
+ 		.multivalued = 0,
  		.free = 0,
  	},
  	...
  }

Thanks, -Stolee

Previous: brian m. carlsonNext: brian m. carlson
Message 12 of 42 in “Additional variables for git var”
  1. 0/3 Additional variables for git varbrian m. carlson, Jun 22, 2023
  2. 1/3 var: add support for listing the shellbrian m. carlson, Jun 22, 2023
  3. Eric SunshineJun 22, 2023
  4. Junio C HamanoJun 22, 2023
  5. Eric SunshineJun 22, 2023
  6. brian m. carlsonJun 22, 2023
  7. Junio C HamanoJun 22, 2023
  8. brian m. carlsonJun 22, 2023
  9. 3/3 var: add config file locationsbrian m. carlson, Jun 22, 2023
  10. Eric SunshineJun 22, 2023
  11. 2/3 var: add attributes files locationsbrian m. carlson, Jun 22, 2023
  12. Derrick StoleeJun 22, 2023
  13. brian m. carlsonJun 22, 2023
  14. Junio C HamanoJun 22, 2023
  15. Junio C HamanoJun 22, 2023
  16. Eric SunshineJun 22, 2023
  17. brian m. carlsonJun 22, 2023
  18. Eric SunshineJun 22, 2023
  19. 0/7 Additional variables for git varbrian m. carlson, Jun 26, 2023
  20. 1/7 t: add a function to check executable bitbrian m. carlson, Jun 26, 2023
  21. 3/7 var: format variable structure with C99 initializersbrian m. carlson, Jun 26, 2023
  22. 4/7 var: adjust memory allocation for stringsbrian m. carlson, Jun 26, 2023
  23. Junio C HamanoJun 26, 2023
  24. 2/7 var: add support for listing the shellbrian m. carlson, Jun 26, 2023
  25. 5/7 attr: expose and rename accessor functionsbrian m. carlson, Jun 26, 2023
  26. Junio C HamanoJun 26, 2023
  27. 6/7 var: add attributes files locationsbrian m. carlson, Jun 26, 2023
  28. Jeff KingJun 27, 2023
  29. brian m. carlsonJun 27, 2023
  30. Junio C HamanoJun 27, 2023
  31. Jeff KingJun 27, 2023
  32. 7/7 var: add config file locationsbrian m. carlson, Jun 26, 2023
  33. Junio C HamanoJun 26, 2023
  34. 0/8 Additional variables for git varbrian m. carlson, Jun 27, 2023
  35. 1/8 var: mark unused parameters in git_var callbacksbrian m. carlson, Jun 27, 2023
  36. 2/8 t: add a function to check executable bitbrian m. carlson, Jun 27, 2023
  37. 4/8 var: format variable structure with C99 initializersbrian m. carlson, Jun 27, 2023
  38. 3/8 var: add support for listing the shellbrian m. carlson, Jun 27, 2023
  39. 5/8 var: adjust memory allocation for stringsbrian m. carlson, Jun 27, 2023
  40. 8/8 var: add config file locationsbrian m. carlson, Jun 27, 2023
  41. 7/8 var: add attributes files locationsbrian m. carlson, Jun 27, 2023
  42. 6/8 attr: expose and rename accessor functionsbrian m. carlson, Jun 27, 2023

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.