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;