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

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

From
Chris Torek <chris.torek@gmail.com>
Date
Jul 1, 2020, 14:56 UTC
Message-ID
<CAPx1GvfFCKqTN2zodrO767CQQ2t2m-s9SRwR+s3cs0oAWyJ8Fg@mail.gmail.com>
In-Reply-To
<20200701133504.18360-4-mirucam@gmail.com>
On Wed, Jul 1, 2020 at 6:37 AM Miriam Rubio <mirucam@gmail.com> wrote:
> Let's refactor code adding a new `write_in_file()` function
> that opens a file for writing a message and closes it and a
> wrapper for writting mode.
Nit: typo, s/writting/writing/
[snippage]
Show 15 quoted lines
> diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c
> index 0466b07a43..b421056546 100644
> --- a/builtin/bisect--helper.c
> +++ b/builtin/bisect--helper.c
> @@ -74,6 +74,38 @@ static int one_of(const char *term, ...)
>         return res;
>  }
>
> +static int write_in_file(const char *path, const char *mode, const char *format, va_list args)
> +{
> +       FILE *fp = NULL;
> +       int res = 0;
> +
> +       if (!strcmp(mode, "a") && !strcmp(mode, "w"))
> +               return error(_("wrong writing mode '%s'"), mode);
Should this maybe just be BUG()?
Show 6 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) {

This isn't quite right - vfprintf() returns a negative value on error, or the number of characters printed on success. Zero is technically OK (if the format and arguments ended up empty).

[rest snipped]
Chris
Previous: Miriam RubioNext: Junio C Hamano
Message 4 of 17 in “Finish converting git bisect to C part 2”
  1. 00/13 Finish converting git bisect to C part 2Miriam Rubio, Jul 1, 2020
  2. 01/13 bisect--helper: BUG() in cmd_*() on invalid subcommandMiriam Rubio, Jul 1, 2020
  3. 03/13 bisect--helper: introduce new `write_in_file()` functionMiriam Rubio, Jul 1, 2020
  4. Chris TorekJul 1, 2020
  5. Junio C HamanoJul 8, 2020
  6. 02/13 bisect--helper: use '-res' in 'cmd_bisect__helper' returnMiriam Rubio, Jul 1, 2020
  7. 05/13 bisect: call 'clear_commit_marks_all()' in 'bisect_next_all()'Miriam Rubio, Jul 1, 2020
  8. 04/13 bisect--helper: reimplement `bisect_autostart` shell function in CMiriam Rubio, Jul 1, 2020
  9. 06/13 bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell functions in CMiriam Rubio, Jul 1, 2020
  10. 08/13 bisect--helper: retire `--bisect-clean-state` subcommandMiriam Rubio, Jul 1, 2020
  11. 09/13 bisect--helper: retire `--next-all` subcommandMiriam Rubio, Jul 1, 2020
  12. 07/13 bisect--helper: finish porting `bisect_start()` to CMiriam Rubio, Jul 1, 2020
  13. 10/13 bisect--helper: reimplement `bisect_state` & `bisect_head` shell functions in CMiriam Rubio, Jul 1, 2020
  14. Junio C HamanoJul 8, 2020
  15. 11/13 bisect--helper: retire `--check-expected-revs` subcommandMiriam Rubio, Jul 1, 2020
  16. 12/13 bisect--helper: retire `--write-terms` subcommandMiriam Rubio, Jul 1, 2020
  17. 13/13 bisect--helper: retire `--bisect-autostart` subcommandMiriam Rubio, Jul 1, 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.