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

Re: [PATCH v5 03/13] bisect--helper: introduce new `write_in_file()` function

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 17, 2020, 16:33 UTC
Message-ID
<xmqqzh7ydrt6.fsf@gitster.c.googlers.com>
In-Reply-To
<20200717105406.82226-4-mirucam@gmail.com>
Miriam Rubio <mirucam@gmail.com> writes:
Show 8 quoted lines
> +	fp = fopen(path, mode);
> +	if (!fp)
> +		return error_errno(_("cannot open file '%s' in mode '%s'"), path, mode);
> +	res = vfprintf(fp, format, args);
> +
> +	if (res < 0) {
> +		fclose(fp);
> +		return error_errno(_("could not write to file '%s'"), path);

If the fclose(fp) failed, the errno from that failure (i.e. why fp cannot be closed) would be reported by the error_errno(), which may not be ideal. Either use just error() (which may be suboptimal), follow an often-used pattern to use save_errno (grep for the symbol to learn from the existing code) and keep using error_errno(), or check errors from fclose() too (which may be overkill).

	if (res < 0) {
		int saved_errno = errno;
#if OVERKILL
		if (fclose(fp))
                	error_errno(_("..."));
#else
		fclose(fp);
#endif
		errno = saved_errno;
		return error_errno(_("..."), ...);
	}
Previous: Miriam RubioNext: Miriam Rubio
Message 5 of 24 in “Finish converting git bisect to C part 2”
  1. 00/13 Finish converting git bisect to C part 2Miriam Rubio, Jul 17, 2020
  2. 01/13 bisect--helper: BUG() in cmd_*() on invalid subcommandMiriam Rubio, Jul 17, 2020
  3. Shourya ShuklaJul 25, 2020
  4. 03/13 bisect--helper: introduce new `write_in_file()` functionMiriam Rubio, Jul 17, 2020
  5. Junio C HamanoJul 17, 2020
  6. 05/13 bisect: call 'clear_commit_marks_all()' in 'bisect_next_all()'Miriam Rubio, Jul 17, 2020
  7. 04/13 bisect--helper: reimplement `bisect_autostart` shell function in CMiriam Rubio, Jul 17, 2020
  8. Đoàn Trần Công DanhJul 26, 2020
  9. 08/13 bisect--helper: retire `--bisect-clean-state` subcommandMiriam Rubio, Jul 17, 2020
  10. 07/13 bisect--helper: finish porting `bisect_start()` to CMiriam Rubio, Jul 17, 2020
  11. 06/13 bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell functions in CMiriam Rubio, Jul 17, 2020
  12. Junio C HamanoJul 17, 2020
  13. Junio C HamanoJul 25, 2020
  14. 09/13 bisect--helper: retire `--next-all` subcommandMiriam Rubio, Jul 17, 2020
  15. 02/13 bisect--helper: use '-res' in 'cmd_bisect__helper' returnMiriam Rubio, Jul 17, 2020
  16. Shourya ShuklaJul 25, 2020
  17. Junio C HamanoJul 25, 2020
  18. Pratyush YadavJul 27, 2020
  19. Pratyush YadavJul 27, 2020
  20. Junio C HamanoJul 27, 2020
  21. 10/13 bisect--helper: reimplement `bisect_state` & `bisect_head` shell functions in CMiriam Rubio, Jul 17, 2020
  22. 11/13 bisect--helper: retire `--check-expected-revs` subcommandMiriam Rubio, Jul 17, 2020
  23. 13/13 bisect--helper: retire `--bisect-autostart` subcommandMiriam Rubio, Jul 17, 2020
  24. 12/13 bisect--helper: retire `--write-terms` subcommandMiriam Rubio, Jul 17, 2020

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.