-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #10642 from MisterDA/win32unix-posix-Sys.remove-Un…
…ix.unlink Windows: make Sys.remove and Unix.unlink delete symlinks to directories
- Loading branch information
Showing
12 changed files
with
184 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
/**************************************************************************/ | ||
/* */ | ||
/* OCaml */ | ||
/* */ | ||
/* David Allsopp, MetaStack Solutions Ltd. */ | ||
/* */ | ||
/* Copyright 2015 MetaStack Solutions Ltd. */ | ||
/* */ | ||
/* All rights reserved. This file is distributed under the terms of */ | ||
/* the GNU Lesser General Public License version 2.1, with the */ | ||
/* special exception on linking described in the file LICENSE. */ | ||
/* */ | ||
/**************************************************************************/ | ||
|
||
/* Operating system - Windows specific stuff */ | ||
|
||
#ifndef CAML_WINSUPPORT_H | ||
#define CAML_WINSUPPORT_H | ||
|
||
#if defined(_WIN32) && defined(CAML_INTERNALS) | ||
|
||
#include <windef.h> | ||
|
||
/* | ||
* This structure is defined inconsistently. mingw64 has it in ntdef.h (which | ||
* doesn't look like a primary header) and technically it's part of ntifs.h in | ||
* the WDK. Requiring the WDK is a bit extreme, so the definition is taken from | ||
* ntdef.h. Both ntdef.h and ntifs.h define REPARSE_DATA_BUFFER_HEADER_SIZE | ||
*/ | ||
#ifndef REPARSE_DATA_BUFFER_HEADER_SIZE | ||
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, *PREPARSE_DATA_BUFFER; | ||
#endif | ||
|
||
#endif | ||
|
||
#endif /* CAML_WINSUPPORT_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,8 @@ | ||
Unix.symlink works with backwards slashes | ||
Unix.symlink works with forward slashes | ||
Unix.unlink cannot delete directories | ||
Sys.remove cannot delete directories | ||
Unix.unlink can delete symlinks to directories | ||
Unix.unlink can delete symlinks to files | ||
Sys.remove can delete symlinks to directories | ||
Sys.remove can delete symlinks to files |