Mercurial > vim
comparison src/os_win32.h @ 28702:99729fe344f7 v8.2.4875
patch 8.2.4875: MS-Windows: some .exe files are not recognized
Commit: https://github.com/vim/vim/commit/40fd7e665260c9227d6d90b17a301a1bc47f7f5b
Author: LemonBoy <thatlemon@gmail.com>
Date: Thu May 5 20:18:16 2022 +0100
patch 8.2.4875: MS-Windows: some .exe files are not recognized
Problem: MS-Windows: some .exe files are not recognized.
Solution: Parse APPEXECLINK junctions. (closes https://github.com/vim/vim/issues/10302)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 05 May 2022 21:30:03 +0200 |
parents | 4f1c67a5f446 |
children | faf7fcd1c8d5 |
comparison
equal
deleted
inserted
replaced
28701:a4b92f0c0002 | 28702:99729fe344f7 |
---|---|
124 # define IO_REPARSE_TAG_MOUNT_POINT 0xA0000003 | 124 # define IO_REPARSE_TAG_MOUNT_POINT 0xA0000003 |
125 #endif | 125 #endif |
126 #ifndef IO_REPARSE_TAG_SYMLINK | 126 #ifndef IO_REPARSE_TAG_SYMLINK |
127 # define IO_REPARSE_TAG_SYMLINK 0xA000000C | 127 # define IO_REPARSE_TAG_SYMLINK 0xA000000C |
128 #endif | 128 #endif |
129 #ifndef IO_REPARSE_TAG_APPEXECLINK | |
130 # define IO_REPARSE_TAG_APPEXECLINK 0x8000001B | |
131 #endif | |
132 | |
133 /* | |
134 * Definition of the reparse point buffer. | |
135 * This is usually defined in the DDK, copy the definition here to avoid | |
136 * adding it as a dependence only for a single structure. | |
137 */ | |
138 typedef struct _REPARSE_DATA_BUFFER { | |
139 ULONG ReparseTag; | |
140 USHORT ReparseDataLength; | |
141 USHORT Reserved; | |
142 union { | |
143 struct { | |
144 USHORT SubstituteNameOffset; | |
145 USHORT SubstituteNameLength; | |
146 USHORT PrintNameOffset; | |
147 USHORT PrintNameLength; | |
148 ULONG Flags; | |
149 WCHAR PathBuffer[1]; | |
150 } SymbolicLinkReparseBuffer; | |
151 struct { | |
152 USHORT SubstituteNameOffset; | |
153 USHORT SubstituteNameLength; | |
154 USHORT PrintNameOffset; | |
155 USHORT PrintNameLength; | |
156 WCHAR PathBuffer[1]; | |
157 } MountPointReparseBuffer; | |
158 struct { | |
159 UCHAR DataBuffer[1]; | |
160 } GenericReparseBuffer; | |
161 struct | |
162 { | |
163 ULONG StringCount; | |
164 WCHAR StringList[1]; | |
165 } AppExecLinkReparseBuffer; | |
166 } DUMMYUNIONNAME; | |
167 } REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER; | |
129 | 168 |
130 #ifdef _MSC_VER | 169 #ifdef _MSC_VER |
131 // Support for __try / __except. All versions of MSVC are | 170 // Support for __try / __except. All versions of MSVC are |
132 // expected to have this. Any other compilers that support it? | 171 // expected to have this. Any other compilers that support it? |
133 # define HAVE_TRY_EXCEPT 1 | 172 # define HAVE_TRY_EXCEPT 1 |