Commit 9848360d8 for imagemagick.org

commit 9848360d87c8c2f1f822c3f09f9e5befd86ff7ee
Author: Cristy <urban-warrior@imagemagick.org>
Date:   Thu Apr 16 22:33:29 2026 -0400

    support MSYS2

diff --git a/MagickCore/utility-private.h b/MagickCore/utility-private.h
index c1d809f2b..fb0b4d8b3 100644
--- a/MagickCore/utility-private.h
+++ b/MagickCore/utility-private.h
@@ -82,6 +82,34 @@ static inline FILE *fopen_utf8(const char *path,const char *mode)
 #endif
 }

+#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(REPARSE_DATA_BUFFER)
+typedef struct _REPARSE_DATA_BUFFER {
+  ULONG  ReparseTag;
+  USHORT ReparseDataLength;
+  USHORT Reserved;
+  union {
+    struct {
+      USHORT SubstituteNameOffset;
+      USHORT SubstituteNameLength;
+      USHORT PrintNameOffset;
+      USHORT PrintNameLength;
+      ULONG  Flags;
+      WCHAR  PathBuffer[1];
+    } SymbolicLinkReparseBuffer;
+    struct {
+      USHORT SubstituteNameOffset;
+      USHORT SubstituteNameLength;
+      USHORT PrintNameOffset;
+      USHORT PrintNameLength;
+      WCHAR  PathBuffer[1];
+    } MountPointReparseBuffer;
+    struct {
+      UCHAR  DataBuffer[1];
+    } GenericReparseBuffer;
+  };
+} REPARSE_DATA_BUFFER;
+#endif
+
 static inline MagickBooleanType is_link_utf8(const char *path)
 {
 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
@@ -103,17 +131,17 @@ static inline MagickBooleanType is_link_utf8(const char *path)
       free(wide);
       return(MagickFalse);
     }
-  HANDLE handle = CreateFileW(wide,0,FILE_SHARE_READ | FILE_SHARE_WRITE |
+  HANDLE file_handle = CreateFileW(wide,0,FILE_SHARE_READ | FILE_SHARE_WRITE |
    FILE_SHARE_DELETE,NULL,OPEN_EXISTING,FILE_FLAG_OPEN_REPARSE_POINT |
    FILE_FLAG_BACKUP_SEMANTICS,NULL);
   free(wide);
-  if (handle == INVALID_HANDLE_VALUE)
+  if (file_handle == INVALID_HANDLE_VALUE)
     return(MagickFalse);
   BYTE buffer[MAXIMUM_REPARSE_DATA_BUFFER_SIZE];
   DWORD bytes;
-  BOOL ok = DeviceIoControl(handle,FSCTL_GET_REPARSE_POINT,NULL,0,buffer,
+  BOOL ok = DeviceIoControl(file_handle,FSCTL_GET_REPARSE_POINT,NULL,0,buffer,
     sizeof(buffer),&bytes,NULL);
-  CloseHandle(h);
+  CloseHandle(file_handle);
   if (ok == 0)
     return(MagickFalse);
   REPARSE_DATA_BUFFER *reparse_buffer = (REPARSE_DATA_BUFFER *) buffer;