patch 8.2.3032: build problems with MSVC, other crypt issues with libsodium

Problem:    Build problems with MSVC, other crypt issues with libsodium.
Solution:   Adjust MSVC makefile. Disable swap file only when 'key' is set.
            Adjust error message used when key is wrong.  Fix Coverity issues.
            (Christian Brabandt, closes #8420, closes #8411)
diff --git a/src/fileio.c b/src/fileio.c
index e05dfa3..7c8f00d 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1213,6 +1213,7 @@
 		     * Read bytes from curbuf.  Used for converting text read
 		     * from stdin.
 		     */
+		    eof = FALSE;
 		    if (read_buf_lnum > from)
 			size = 0;
 		    else
@@ -1261,6 +1262,7 @@
 				    if (!curbuf->b_p_eol)
 					--tlen;
 				    size = tlen;
+				    eof = TRUE;
 				    break;
 				}
 			    }
@@ -1276,7 +1278,7 @@
 		    // Let the crypt layer work with a buffer size of 8192
 		    if (filesize == 0)
 			// set size to 8K + Sodium Crypt Metadata
-			size = WRITEBUFSIZE + 36
+			size = WRITEBUFSIZE + crypt_get_max_header_len()
 		     + crypto_secretstream_xchacha20poly1305_HEADERBYTES
 		     + crypto_secretstream_xchacha20poly1305_ABYTES;