Johannes Sixt [off-list ref] writes:
But in the description of fclose() there is also:
After the call to fclose(), any use of stream results in undefined
behavior.
And we do call fclose(stdout) in cmd_format_patch.
Yeah; this means the "in case builtin implementation is too lazy to clean
up after themselves, run_builtin() will clean things up for them" approach
taken by 0f15731 (Check for IO errors after running a command, 2007-06-24)
fundamentally does not work, which is a bit sad.