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

Re: [PATCH 2/2] removed else statement

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 6, 2022, 17:16 UTC
Message-ID
<xmqqbkqolvnn.fsf@gitster.g>
In-Reply-To
<c107ad9f6ff2d5e00134eb1348f24737774edbac.1665056747.git.gitgitgadget@gmail.com>
"dsal3389 via GitGitGadget" <gitgitgadget@gmail.com> writes:
> From: dsal3389 <dsal3389@gmail.com>
>
> there is no need for the else statement if we can do it more
> elegantly with a signle if statement we no "else"

Some people seem to use subjective words like "elegantly" but they weaken your justification. You are better off avoiding them.

As to the change in the patch, I do find it easier to read to have a check for an error condition whose body unconditionally exits first, and then the special casing of "version" and "help" as part of the preparation for the "normal codepath".

    Side note: yes, you can steal from the last paragraph when you
    are redoing the justfication of this patch.
Thanks.
Show 24 quoted lines
> -	if (argc > 0) {
> -		if (!strcmp("--version", argv[0]) || !strcmp("-v", argv[0]))
> -			argv[0] = "version";
> -		else if (!strcmp("--help", argv[0]) || !strcmp("-h", argv[0]))
> -			argv[0] = "help";
> -	} else {
> +
> +	if (argc <= 0) {
>  		/* The user didn't specify a command; give them help */
>  		commit_pager_choice();
>  		printf(_("usage: %s\n\n"), git_usage_string);
> @@ -907,6 +903,12 @@ int cmd_main(int argc, const char **argv)
>  		printf("\n%s\n", _(git_more_info_string));
>  		exit(1);
>  	}
> +
> +	if (!strcmp("--version", argv[0]) || !strcmp("-v", argv[0]))
> +		argv[0] = "version";
> +	else if (!strcmp("--help", argv[0]) || !strcmp("-h", argv[0]))
> +		argv[0] = "help";
> +
>  	cmd = argv[0];
>  
>  	/*
Previous: Junio C HamanoNext: Junio C Hamano
Message 8 of 15 in “Minor Refactors: remove useless else”
  1. 0/2 Minor Refactors: remove useless elsedsal3389 via GitGitGadget, Oct 6, 2022
  2. 1/2 python file more pytonic, adjust "if" and "for"dsal3389 via GitGitGadget, Oct 6, 2022
  3. Victoria DyeOct 6, 2022
  4. Junio C HamanoOct 6, 2022
  5. 2/2 removed else statementdsal3389 via GitGitGadget, Oct 6, 2022
  6. Victoria DyeOct 6, 2022
  7. Junio C HamanoOct 7, 2022
  8. Junio C HamanoOct 6, 2022
  9. Junio C HamanoOct 6, 2022
  10. 0/2 git.c: improve readability | git-p4: minor optimizationDaniel Sonbolian via GitGitGadget, Oct 7, 2022
  11. 1/2 git-p4: minor optimization in read_pip_linesDaniel Sonbolian via GitGitGadget, Oct 7, 2022
  12. Phillip WoodOct 7, 2022
  13. Junio C HamanoOct 7, 2022
  14. 2/2 git.c: improve code readability in cmd_mainDaniel Sonbolian via GitGitGadget, Oct 7, 2022
  15. git.c: improve code readability in cmd_mainDaniel Sonbolian via GitGitGadget, Oct 8, 2022

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.