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

Re: [RFC/PATCH v11 03/13] bisect--helper: `write_terms` shell function in C

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 2, 2016, 17:38 UTC
Message-ID
<xmqq37mnf4vk.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<0102015640423cd0-ae286008-08b7-4ca4-9b2b-f4226aa80a97-000000@eu-west-1.amazonses.com>
Pranit Bauva <pranit.bauva@gmail.com> writes:
Show 19 quoted lines
> +static int write_terms(const char *bad, const char *good)
> +{
> +	FILE *fp;
> +	int res;
> +
> +	if (!strcmp(bad, good))
> +		return error(_("please use two different terms"));
> +
> +	if (check_term_format(bad, "bad") || check_term_format(good, "good"))
> +		return -1;
> +
> +	fp = fopen(git_path_bisect_terms(), "w");
> +	if (!fp)
> +		return error_errno(_("could not open the file BISECT_TERMS"));
> +
> +	res = fprintf(fp, "%s\n%s\n", bad, good);
> +	res |= fclose(fp);
> +	return (res < 0) ? -1 : 0;
> +}

If fprintf(3) were a function that returns 0 on success and negative on error (like fclose(3) is), the pattern to cascade the error return with "res |= another_call()" is appropriate, but the made me hiccup a bit while reading it. It is not wrong per-se and it would certainly be making it worse if we did something silly like

	res = fprintf(...) < 0 ? -1 : 0;
        res |= fclose(fp);
so I guess what you have is the most succinct way to do this.
Previous: Pranit BauvaNext: Pranit Bauva
Message 5 of 39 in “bisect--helper: use OPT_CMDMODE instead of OPT_BOOL”
  1. 01/13 bisect--helper: use OPT_CMDMODE instead of OPT_BOOLPranit Bauva, Jul 31, 2016
  2. 06/13 wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()Pranit Bauva, Jul 31, 2016
  3. 05/13 t6030: explicitly test for bisection cleanupPranit Bauva, Jul 31, 2016
  4. 03/13 bisect--helper: `write_terms` shell function in CPranit Bauva, Jul 31, 2016
  5. Junio C HamanoAug 2, 2016
  6. Pranit BauvaAug 3, 2016
  7. Junio C HamanoAug 4, 2016
  8. 07/13 bisect--helper: `bisect_reset` shell function in CPranit Bauva, Jul 31, 2016
  9. Junio C HamanoAug 2, 2016
  10. 11/13 bisect--helper: `bisect_next_check` shell function in CPranit Bauva, Jul 31, 2016
  11. Junio C HamanoAug 2, 2016
  12. Pranit BauvaAug 3, 2016
  13. 12/13 bisect--helper: `get_terms` & `bisect_terms` shell function in CPranit Bauva, Jul 31, 2016
  14. Junio C HamanoAug 2, 2016
  15. Pranit BauvaAug 3, 2016
  16. 08/13 bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in CPranit Bauva, Jul 31, 2016
  17. Junio C HamanoAug 2, 2016
  18. 09/13 bisect--helper: `bisect_write` shell function in CPranit Bauva, Jul 31, 2016
  19. Junio C HamanoAug 2, 2016
  20. Junio C HamanoAug 2, 2016
  21. Pranit BauvaAug 3, 2016
  22. Pranit BauvaAug 3, 2016
  23. 02/13 bisect: rewrite `check_term_format` shell function in CPranit Bauva, Jul 31, 2016
  24. Junio C HamanoAug 2, 2016
  25. Pranit BauvaAug 3, 2016
  26. 10/13 bisect--helper: `check_and_set_terms` shell function in CPranit Bauva, Jul 31, 2016
  27. Junio C HamanoAug 2, 2016
  28. Pranit BauvaAug 3, 2016
  29. 13/13 bisect--helper: `bisect_start` shell function partially in CPranit Bauva, Jul 31, 2016
  30. Junio C HamanoAug 2, 2016
  31. Pranit BauvaAug 3, 2016
  32. 04/13 bisect--helper: `bisect_clean_state` shell function in CPranit Bauva, Jul 31, 2016
  33. Junio C HamanoAug 2, 2016
  34. Pranit BauvaAug 3, 2016
  35. Junio C HamanoAug 4, 2016
  36. Pranit BauvaAug 4, 2016
  37. Junio C HamanoAug 4, 2016
  38. Pranit BauvaAug 4, 2016
  39. Junio C HamanoAug 2, 2016

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.