Fix a potential bug and an API contract violation in the Win32 implementation of svn_io_file_write_full().
Even in the case when a specific workaround for issue #1789 is not required, the implementation of this function has been calling apr_file_write() that can do a short write and return APR_SUCCESS. If that happens, the guarantee of the "write full" function would not be fulfilled in the sense that the function would write less bytes than requested without an associated error, and that could cause issues further down the line.
On Windows, apr_file_write() is implemented as a call to WriteFile() that shouldn't result in short writes for file handles, but such short writes are still possible, for example, for pipes. That is where the previous implementation could be working improperly. (See the "Remarks" section in https://msdn.microsoft.com/en-us/library/windows/desktop/aa365747).
* subversion/libsvn_subr/io.c (svn_io_file_write_full): Always attempt a full write in the Win32-specific code path. Join and tweak the comments on issue #1789, add the issue number and place the comment right before the code that implements a workaround.