Hi Dscho, On Thu, Jan 30, 2020 at 2:46 PM Johannes Schindelin <Johannes.Schindelin@xxxxxx> wrote: > > On Tue, 28 Jan 2020, Miriam Rubio wrote: > > + /* Create file BISECT_ANCESTORS_OK. */ > > + fd = open(filename, O_CREAT | O_TRUNC | O_WRONLY, 0600); > > + if (fd < 0) > > + warning_errno(_("could not create file '%s'"), > > + filename); > > + else > > + close(fd); > > + } > > I wonder whether this would be easier to read: > > if (res == -11) > res = 0; > else if (res) > ; /* error out */ > else if ((fd = open(filename, O_CREAT | O_TRUNC | O_WRONLY, 0600)) < 0) > res = warning_errno(_("could not create file '%s'"), filename); > else > close(fd); > > Note: my code explicitly assigns `res = -1` if the file could not be > created, which is technically a change in behavior, but I think it is > actually a bug fix. I don't think so. I think creating the BISECT_ANCESTORS_OK file is not absolutely necessary. If it doesn't exist we will just check if ancestors are ok again at the next bisection step, which will take a bit of time, but which will not make us give any false result, or prevent us from continuing the bisection process. I think that it's also the reason why warning_errno(...) is used in case we could not create the file instead of error_errno(...). We just want to signal with a warning that something might be wrong because we could not create the file, but not stop everything because of that. Best, Christian.