Re: [PATCH] refs/files-backend: remove unused open mode parameter
- From
Jeff King <peff@peff.net>
- Date
- Sep 13, 2021, 19:03 UTC
- Message-ID
- <YT+gbhnKmd0nlpxG@coredump.intra.peff.net>
- In-Reply-To
- <xmqqilz4fi86.fsf@gitster.g>
On Mon, Sep 13, 2021 at 11:22:49AM -0700, Junio C Hamano wrote:
Show 18 quoted lines
> Han-Wen Nienhuys <hanwen@google.com> writes: > > > On Thu, Sep 9, 2021 at 11:46 PM René Scharfe <l.s.r@web.de> wrote: > >> > >> We only need to provide a mode if we are willing to let open(2) create > >> the file, which is not the case here, so drop the unnecessary parameter. > > > > I was #today years old when I learned that C supports (a limited form > > of) function signature overloading. > > I do not think it is that kind of magic. > > Like printf(3) that allows its early parameter to affect the way how > its later parameters are recognised, it just allows the flags word > to decide if it needs to grab one extra mode_t out of va_list or > not, which can be done as a plain vanilla varargs function, i.e. > > extern int open(const char *path, int flags, ...);
Yes, you can see some examples (complete with interesting subtleties) in wrapper.c:xopen() and compat/open.c:git_open_with_retry(). :)
-Peff