Jacob Stopak <jacob@xxxxxxxxxxxxxxxx> writes: > builtin/bugreport.c | 83 +++++++++++++++++++++++++++++++-------------- > 1 file changed, 57 insertions(+), 26 deletions(-) Looking good. It is not easy to do an automated and reliable test for this one for obvious reasons ;-), so let's queue it as-is. Thanks. > - /* fopen doesn't offer us an O_EXCL alternative, except with glibc. */ > - report = xopen(report_path.buf, O_CREAT | O_EXCL | O_WRONLY, 0666); > + again: > + /* fopen doesn't offer us an O_EXCL alternative, except with glibc. */ > + report = open(report_path.buf, O_CREAT | O_EXCL | O_WRONLY, 0666); > + if (report < 0 && errno == EEXIST && !option_suffix_is_from_user) { > + build_path(&report_path, prefixed_filename, > + "git-bugreport-", option_suffix, now, &i, > + ".txt"); > + goto again; > + } else if (report < 0) { > + die_errno(_("unable to open '%s'"), report_path.buf); > + } I didn't expect a rewrite to add an extra level of indentation like this, though ;-).