Subject: Re: [PATCH 2/2] removed else statement

From: Junio C Hamano <[email-masked]>
Date: Thu, 06 Oct 2022 10:16:44 -0700

"dsal3389 via GitGitGadget" <[email-masked]> writes:

> From: dsal3389 <[email-masked]>
>
> 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.

> -	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];
>  
>  	/*