All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: Miriam Rubio <mirucam@gmail.com>
Cc: git@vger.kernel.org, Tanushree Tumane <tanushreetumane@gmail.com>,
	Christian Couder <chriscool@tuxfamily.org>
Subject: Re: [PATCH v7 5/6] bisect--helper: reimplement `bisect_run` shell function in C
Date: Mon, 13 Sep 2021 21:27:11 +0200	[thread overview]
Message-ID: <875yv446hj.fsf@evledraar.gmail.com> (raw)
In-Reply-To: <20210913173905.44438-6-mirucam@gmail.com>


On Mon, Sep 13 2021, Miriam Rubio wrote:

> +static int print_file_to_stdout(const char *path)
> +{
> +	int fd = open(path, O_RDONLY);
> +	int ret = 0;
> +
> +	if (fd < 0)
> +		return error_errno(_("cannot open file '%s' for reading"), path);
> +	if (copy_fd(fd, 1) < 0)
> +		ret = error_errno(_("failed to read '%s'"), path);
> +	close(fd);
> +	return ret;
> +}

Returns int, but that return value is ignored here, and we don't seem to
gain a caller in 6/6?

> +	if (argc)
> +		sq_quote_argv(&command, argv);
> +	else {
> +		error(_("bisect run failed: no command provided."));
> +		return BISECT_FAILED;
> +	}

Not new in this series & I see this is v7 already, so ....

Just odd to see this BISECT_FAILED pattern (which is defined to -1),
instead of "return error(..." like elsewhere.

Then we take that enum and do a "return -res" from main(), i.e. it's not
even that we're somehow guarding everything with these BISECT_* codes in
this file (see 30276765c11 (bisect--helper: use '-res' in
'cmd_bisect__helper' return, 2020-08-28)).

Anyway, can be cleaned up some other time, but...

> +		if (temporary_stdout_fd < 0)
> +			return error_errno(_("cannot open file '%s' for writing"), git_path_bisect_run());

Here we're doing a "return error...(" directly.

> +	case BISECT_RUN:
> +		if (!argc)
> +			return error(_("bisect run failed: no command provided."));
> +		get_terms(&terms);
> +		res = bisect_run(&terms, argv, argc);
> +		break;
>  	default:
>  		BUG("unknown subcommand %d", cmdmode);
>  	}

Also not a new issue, but if we just covered the BISECT_AUTOSTART case
here, then we wouldn't need this default/BUG, the compiler would check
that we checked all existing enum arms.

  reply	other threads:[~2021-09-13 19:31 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-13 17:38 [PATCH v7 0/6] Finish converting git bisect to C part 4 Miriam Rubio
2021-09-13 17:38 ` [PATCH v7 1/6] t6030-bisect-porcelain: add tests to control bisect run exit cases Miriam Rubio
2021-09-13 17:39 ` [PATCH v7 2/6] t6030-bisect-porcelain: add test for bisect visualize Miriam Rubio
2021-09-13 17:39 ` [PATCH v7 3/6] run-command: make `exists_in_PATH()` non-static Miriam Rubio
2021-09-13 17:39 ` [PATCH v7 4/6] bisect--helper: reimplement `bisect_visualize()` shell function in C Miriam Rubio
2021-09-13 17:39 ` [PATCH v7 5/6] bisect--helper: reimplement `bisect_run` " Miriam Rubio
2021-09-13 19:27   ` Ævar Arnfjörð Bjarmason [this message]
2021-09-13 17:39 ` [PATCH v7 6/6] bisect--helper: retire `--bisect-next-check` subcommand Miriam Rubio

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=875yv446hj.fsf@evledraar.gmail.com \
    --to=avarab@gmail.com \
    --cc=chriscool@tuxfamily.org \
    --cc=git@vger.kernel.org \
    --cc=mirucam@gmail.com \
    --cc=tanushreetumane@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.