v1-0004-Move-Windows-ssize_t-definition-earlier.patch

text/plain

Filename: v1-0004-Move-Windows-ssize_t-definition-earlier.patch
Type: text/plain
Part: 3
Message: clean up size_t/ssize_t use with POSIX file system APIs

Patch

Format: format-patch
Series: patch v1-0004
Subject: Move Windows ssize_t definition earlier
File+
src/include/port/win32_port.h 17 17
From 87707dca53cde5692c9795ea8a07471a5fda17d7 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Mon, 29 Jun 2026 13:37:54 +0200
Subject: [PATCH v1 04/15] Move Windows ssize_t definition earlier

It needs to be much earlier in win32_port.h so that declarations in
that file can also use it.
---
 src/include/port/win32_port.h | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/include/port/win32_port.h b/src/include/port/win32_port.h
index 956c0b4b4c3..2bad3688e91 100644
--- a/src/include/port/win32_port.h
+++ b/src/include/port/win32_port.h
@@ -210,6 +210,23 @@ extern pgoff_t _pgftello64(FILE *stream);
 #endif
 #endif
 
+/* Things that exist in MinGW headers, but need to be added to MSVC */
+#ifdef _MSC_VER
+
+#ifndef _WIN64
+typedef long ssize_t;
+#else
+typedef __int64 ssize_t;
+#endif
+
+typedef unsigned short mode_t;
+
+#define F_OK 0
+#define W_OK 2
+#define R_OK 4
+
+#endif							/* _MSC_VER */
+
 /*
  *	Win32 also doesn't have symlinks, but we can emulate them with
  *	junction points on newer Win32 versions.
@@ -549,23 +566,6 @@ extern int	pgwin32_is_admin(void);
 /* Windows security token manipulation (in src/common/exec.c) */
 extern BOOL AddUserToTokenDacl(HANDLE hToken);
 
-/* Things that exist in MinGW headers, but need to be added to MSVC */
-#ifdef _MSC_VER
-
-#ifndef _WIN64
-typedef long ssize_t;
-#else
-typedef __int64 ssize_t;
-#endif
-
-typedef unsigned short mode_t;
-
-#define F_OK 0
-#define W_OK 2
-#define R_OK 4
-
-#endif							/* _MSC_VER */
-
 #if defined(__MINGW32__) || defined(__MINGW64__)
 /*
  * Mingw claims to have a strtof, and my reading of its source code suggests
-- 
2.54.0