Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 1 addition & 18 deletions src/libraries/System.Formats.Tar/ref/System.Formats.Tar.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ internal TarEntry() { }
public int Gid { get { throw null; } set { } }
public long Length { get { throw null; } }
public string LinkName { get { throw null; } set { } }
public System.Formats.Tar.TarFileMode Mode { get { throw null; } set { } }
public System.IO.UnixFileMode Mode { get { throw null; } set { } }
public System.DateTimeOffset ModificationTime { get { throw null; } set { } }
public string Name { get { throw null; } set { } }
public int Uid { get { throw null; } set { } }
Expand Down Expand Up @@ -86,23 +86,6 @@ public static void CreateFromDirectory(string sourceDirectoryName, string destin
public static void ExtractToDirectory(System.IO.Stream source, string destinationDirectoryName, bool overwriteFiles) { }
public static void ExtractToDirectory(string sourceFileName, string destinationDirectoryName, bool overwriteFiles) { }
}
[System.FlagsAttribute]
public enum TarFileMode
{
None = 0,
OtherExecute = 1,
OtherWrite = 2,
OtherRead = 4,
GroupExecute = 8,
GroupWrite = 16,
GroupRead = 32,
UserExecute = 64,
UserWrite = 128,
UserRead = 256,
StickyBit = 512,
GroupSpecial = 1024,
UserSpecial = 2048,
}
public sealed partial class TarReader : System.IDisposable
{
public TarReader(System.IO.Stream archiveStream, bool leaveOpen = false) { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
<Compile Include="System\Formats\Tar\FieldLengths.cs" />
<Compile Include="System\Formats\Tar\FieldLocations.cs" />
<Compile Include="System\Formats\Tar\PosixTarEntry.cs" />
<Compile Include="System\Formats\Tar\TarFileMode.cs" />
<Compile Include="System\Formats\Tar\V7TarEntry.cs" />
<Compile Include="System\Formats\Tar\TarHeader.cs" />
<Compile Include="System\Formats\Tar\TarHeader.Read.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,9 +162,9 @@ public string LinkName
/// Represents the Unix file permissions of the file represented by this entry.
/// </summary>
/// <remarks>The value in this field has no effect on Windows platforms.</remarks>
public TarFileMode Mode
public UnixFileMode Mode
{
get => (TarFileMode)_header._mode;
get => (UnixFileMode)_header._mode;
set
{
if ((int)value is < 0 or > 4095) // 4095 in decimal is 7777 in octal
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ internal static class TarHelpers
internal const byte EqualsChar = 0x3d;
internal const byte NewLineChar = 0xa;

internal const TarFileMode DefaultMode = // 644 in octal
TarFileMode.UserRead | TarFileMode.UserWrite | TarFileMode.GroupRead | TarFileMode.OtherRead;
internal const UnixFileMode DefaultMode = // 644 in octal
UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.GroupRead | UnixFileMode.OtherRead;

// Helps advance the stream a total number of bytes larger than int.MaxValue.
internal static void AdvanceStream(Stream archiveStream, long bytesToDiscard)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace System.Formats.Tar
public sealed partial class TarWriter : IDisposable
{
// Creating archives in Windows always sets the mode to 777
private const TarFileMode DefaultWindowsMode = TarFileMode.UserRead | TarFileMode.UserWrite | TarFileMode.UserExecute | TarFileMode.GroupRead | TarFileMode.GroupWrite | TarFileMode.GroupExecute | TarFileMode.OtherRead | TarFileMode.OtherWrite | TarFileMode.UserExecute;
private const UnixFileMode DefaultWindowsMode = UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.UserExecute | UnixFileMode.GroupRead | UnixFileMode.GroupWrite | UnixFileMode.GroupExecute | UnixFileMode.OtherRead | UnixFileMode.OtherWrite | UnixFileMode.UserExecute;

// Windows specific implementation of the method that reads an entry from disk and writes it into the archive stream.
partial void ReadFileFromDiskAndWriteToArchiveStreamAsEntry(string fullPath, string entryName)
Expand Down
12 changes: 6 additions & 6 deletions src/libraries/System.Formats.Tar/tests/TarTestsBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ public abstract partial class TarTestsBase : FileCleanupTestBase
protected readonly string ModifiedEntryName = "ModifiedEntryName.ext";

// Default values are what a TarEntry created with its constructor will set
protected const TarFileMode DefaultMode = TarFileMode.UserRead | TarFileMode.UserWrite | TarFileMode.GroupRead | TarFileMode.OtherRead; // 644 in octal, internally used as default
protected const TarFileMode DefaultWindowsMode = TarFileMode.UserRead | TarFileMode.UserWrite | TarFileMode.UserExecute | TarFileMode.GroupRead | TarFileMode.GroupWrite | TarFileMode.GroupExecute | TarFileMode.OtherRead | TarFileMode.OtherWrite | TarFileMode.UserExecute; // Creating archives in Windows always sets the mode to 777
protected const UnixFileMode DefaultMode = UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.GroupRead | UnixFileMode.OtherRead; // 644 in octal, internally used as default
protected const UnixFileMode DefaultWindowsMode = UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.UserExecute | UnixFileMode.GroupRead | UnixFileMode.GroupWrite | UnixFileMode.GroupExecute | UnixFileMode.OtherRead | UnixFileMode.OtherWrite | UnixFileMode.UserExecute; // Creating archives in Windows always sets the mode to 777
protected const int DefaultGid = 0;
protected const int DefaultUid = 0;
protected const int DefaultDeviceMajor = 0;
Expand All @@ -36,7 +36,7 @@ public abstract partial class TarTestsBase : FileCleanupTestBase
protected readonly DateTimeOffset TestChangeTime = new DateTimeOffset(2022, 4, 4, 4, 4, 4, TimeSpan.Zero);

protected readonly string TestLinkName = "TestLinkName";
protected const TarFileMode TestMode = TarFileMode.UserRead | TarFileMode.UserWrite | TarFileMode.GroupRead | TarFileMode.GroupWrite | TarFileMode.OtherRead | TarFileMode.OtherWrite;
protected const UnixFileMode TestMode = UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.GroupRead | UnixFileMode.GroupWrite | UnixFileMode.OtherRead | UnixFileMode.OtherWrite;

protected const string TestGName = "group";
protected const string TestUName = "user";
Expand All @@ -50,9 +50,9 @@ public abstract partial class TarTestsBase : FileCleanupTestBase
protected const int AssetBlockDeviceMinor = 53;
protected const int AssetCharacterDeviceMajor = 49;
protected const int AssetCharacterDeviceMinor = 86;
protected const TarFileMode AssetMode = TarFileMode.UserRead | TarFileMode.UserWrite | TarFileMode.UserExecute | TarFileMode.GroupRead | TarFileMode.OtherRead;
protected const TarFileMode AssetSpecialFileMode = TarFileMode.UserRead | TarFileMode.UserWrite | TarFileMode.GroupRead | TarFileMode.OtherRead;
protected const TarFileMode AssetSymbolicLinkMode = TarFileMode.OtherExecute | TarFileMode.OtherWrite | TarFileMode.OtherRead | TarFileMode.GroupExecute | TarFileMode.GroupWrite | TarFileMode.GroupRead | TarFileMode.UserExecute | TarFileMode.UserWrite | TarFileMode.UserRead;
protected const UnixFileMode AssetMode = UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.UserExecute | UnixFileMode.GroupRead | UnixFileMode.OtherRead;
protected const UnixFileMode AssetSpecialFileMode = UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.GroupRead | UnixFileMode.OtherRead;
protected const UnixFileMode AssetSymbolicLinkMode = UnixFileMode.OtherExecute | UnixFileMode.OtherWrite | UnixFileMode.OtherRead | UnixFileMode.GroupExecute | UnixFileMode.GroupWrite | UnixFileMode.GroupRead | UnixFileMode.UserExecute | UnixFileMode.UserWrite | UnixFileMode.UserRead;
protected const string AssetGName = "devdiv";
protected const string AssetUName = "dotnet";
protected const string AssetPaxGeaKey = "globexthdr.MyGlobalExtendedAttribute";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ partial void VerifyPlatformSpecificMetadata(string filePath, TarEntry entry)

if (entry.EntryType is not TarEntryType.Directory)
{
TarFileMode expectedMode = (TarFileMode)(status.Mode & 4095); // First 12 bits
UnixFileMode expectedMode = (UnixFileMode)(status.Mode & 4095); // First 12 bits

Assert.Equal(expectedMode, entry.Mode);
Assert.True(entry.ModificationTime > DateTimeOffset.UnixEpoch);
Expand Down