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

Re: [PATCH 07/20] cat-file: reuse parse_ref_filter_atom

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 9, 2018, 23:32 UTC
Message-ID
<xmqqh8ru38y2.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<01020160db067b4f-60d6012f-7cb8-4ba2-891f-1d1ed5bb5786-000000@eu-west-1.amazonses.com>
Olga Telezhnaya <olyatelezhnaya@gmail.com> writes:
Show 25 quoted lines
> +static int is_atom(const char *atom, const char *s, int slen)
> +{
> +...
> +}
> +
> +static void expand_atom_into_fields(const char *atom, int len,
> +				    struct expand_data *data)
> +{
> +...
> +}
> ...
> -static int is_atom(const char *atom, const char *s, int slen)
> -{
> -...
> -}
> -
> -static void expand_atom_into_fields(const char *atom, int len,
> -				    struct expand_data *data)
> -{
> -...
> -}
> -
>  /*
>   * Make sure the format string is well formed, and parse out
>   * the used atoms.

There is no need to move these in this step if the previous step planned ahead well, and that is something you can correct by pretending to be perfect with "rebase -i" ;-) That also will help reduce reviewers' load.

Show 22 quoted lines
> @@ -726,6 +741,7 @@ int verify_ref_format(struct ref_format *format)
>  {
>  	const char *cp, *sp;
>  
> +	cat_file_info = format->cat_file_data;
>  	format->need_color_reset_at_eol = 0;
>  	for (cp = format->format; *cp && (sp = find_next(cp)); ) {
>  		const char *color, *ep = strchr(sp, ')');
> @@ -736,9 +752,10 @@ int verify_ref_format(struct ref_format *format)
>  		/* sp points at "%(" and ep points at the closing ")" */
>  
>  		if (format->cat_file_data)
> -			expand_atom_into_fields(sp + 2, ep - sp - 2,
> -						format->cat_file_data);
> -		else
> +		{
> +			at = parse_ref_filter_atom(format, valid_cat_file_atoms,
> +						   ARRAY_SIZE(valid_cat_file_atoms), sp + 2, ep);
> +		} else
>  		{
>  			at = parse_ref_filter_atom(format, valid_atoms,
>  						   ARRAY_SIZE(valid_atoms), sp + 2, ep);

if/else with bodies that are compound statements are formatted like so:

	if (condition) {
		do this;
	} else {
		do that;
		do that, too;
	}
Previous: Olga TelezhnayaNext: Olga Telezhnaya
Message 12 of 24 in “cat-file: split expand_atom into 2 functions”
  1. 01/20 cat-file: split expand_atom into 2 functionsOlga Telezhnaya, Jan 9, 2018
  2. 11/20 cat-file: get rid of duplicate checkingOlga Telezhnaya, Jan 9, 2018
  3. 10/20 cat-file: simplify expand_atom functionOlga Telezhnaya, Jan 9, 2018
  4. 09/20 cat-file: get rid of goto in ref-filterOlga Telezhnaya, Jan 9, 2018
  5. 15/20 cat-file: start reusing populate_valueOlga Telezhnaya, Jan 9, 2018
  6. 19/20 cat-file: move skip_object_info into ref-filterOlga Telezhnaya, Jan 9, 2018
  7. 14/20 cat-file: make populate_value globalOlga Telezhnaya, Jan 9, 2018
  8. 20/20 cat-file: make cat_file_info variable independentOlga Telezhnaya, Jan 9, 2018
  9. 04/20 cat-file: make valid_atoms as a function parameterOlga Telezhnaya, Jan 9, 2018
  10. Junio C HamanoJan 9, 2018
  11. 07/20 cat-file: reuse parse_ref_filter_atomOlga Telezhnaya, Jan 9, 2018
  12. Junio C HamanoJan 9, 2018
  13. 12/20 cat-file: rename variable in ref-filterOlga Telezhnaya, Jan 9, 2018
  14. 06/20 cat-file: start migrating to ref-filterOlga Telezhnaya, Jan 9, 2018
  15. 02/20 cat-file: reuse struct ref_formatOlga Telezhnaya, Jan 9, 2018
  16. 18/20 cat-file: add split_on_whitespace flagOlga Telezhnaya, Jan 9, 2018
  17. 13/20 cat-file: start use ref_array_item structOlga Telezhnaya, Jan 9, 2018
  18. 17/20 cat-file: add is_cat flag in ref-filterOlga Telezhnaya, Jan 9, 2018
  19. 16/20 cat-file: get rid of expand_atom_into_fieldsOlga Telezhnaya, Jan 9, 2018
  20. 03/20 cat-file: rename variables in ref-filterOlga Telezhnaya, Jan 9, 2018
  21. Junio C HamanoJan 9, 2018
  22. Оля ТележнаяJan 10, 2018
  23. 08/20 cat-file: remove unused codeOlga Telezhnaya, Jan 9, 2018
  24. 05/20 cat-file: move struct expand_data into ref-filterOlga Telezhnaya, Jan 9, 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.