"Johannes Schindelin via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > * We now assign errno only when the call to CreateProcessW() failed. Meaning the global variable 'errno' is left as it was (instead of getting cleared) when a system call succeeds? That I think is the correct behaviour people who use the variable expect. > * For good measure, we teach the err_win_to_posix() function to translate > ERROR_SUCCESS into the errno value 0. So, I am not sure if this is a good idea---who are the callers of this function and why do they call it? I would imagine that a caller who makes a system call, upon seeing a failure from the system call, calls this helper with the Windows error code it received from the system call so that errno can be updated with a POSIXy value. If my imagination is correct, such a caller should not be assigning anything to errno if the underlying system call succeeds, i.e. returns ERROR_SUCCESS. So a better solution might be for the function to BUG() when fed ERROR_SUCCESS to point fingers at the caller, no? If my imagination is not correct, then ignore the whole paragraph above ;-). Thanks.