"John Cai via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > This commits adds a flush function pointer as a new member of > reftable_writer because we are not sure that the first argument to the > *write function pointer always contains a file descriptor. In the case of > strbuf_add_void, the first argument is a buffer. This way, we can pass > in a corresponding flush function that knows how to flush depending on > which writer is being used. A comment and a half. * Can't the new "how to flush" go to the write-option structure? If you represent "no flush" as a NULL pointer in the flush member, most of the changes to the _test files can go, no? * For a function int func(int ac, char **av); a literal pointer to it can legally be written as either int (*funcp)(int, char **) = &func; int (*funcp)(int, char **) = func; but it is my understanding that this codebase prefers the latter, a tradition which goes back to 2005 when Linus was still writing a lot of code, i.e. the identifier that is the name of the function, without & in front.