diff --git a/SabreTools.Serialization/Models/PKZIP/AesEncryptionStructure.cs b/SabreTools.Serialization/Models/PKZIP/AesEncryptionStructure.cs
index 3f95bdf7..db208c70 100644
--- a/SabreTools.Serialization/Models/PKZIP/AesEncryptionStructure.cs
+++ b/SabreTools.Serialization/Models/PKZIP/AesEncryptionStructure.cs
@@ -4,7 +4,7 @@ namespace SabreTools.Data.Models.PKZIP
/// WinZip AES encryption data
///
/// Header ID = 0x9901
- ///
+ ///
public class AesEncryptionStructure : ExtensibleDataField
{
///
diff --git a/SabreTools.Serialization/Models/PKZIP/CentralDirectoryFileHeader.cs b/SabreTools.Serialization/Models/PKZIP/CentralDirectoryFileHeader.cs
index b0b5ff0b..bd027224 100644
--- a/SabreTools.Serialization/Models/PKZIP/CentralDirectoryFileHeader.cs
+++ b/SabreTools.Serialization/Models/PKZIP/CentralDirectoryFileHeader.cs
@@ -3,7 +3,7 @@ namespace SabreTools.Data.Models.PKZIP
///
/// Central directory file header
///
- ///
+ ///
public class CentralDirectoryFileHeader
{
///
diff --git a/SabreTools.Serialization/Models/PKZIP/DataDescriptor.cs b/SabreTools.Serialization/Models/PKZIP/DataDescriptor.cs
index c1b6f987..3c36513f 100644
--- a/SabreTools.Serialization/Models/PKZIP/DataDescriptor.cs
+++ b/SabreTools.Serialization/Models/PKZIP/DataDescriptor.cs
@@ -3,7 +3,7 @@ namespace SabreTools.Data.Models.PKZIP
///
/// Data descriptor
///
- ///
+ ///
public class DataDescriptor
{
///
diff --git a/SabreTools.Serialization/Models/PKZIP/DataDescriptor64.cs b/SabreTools.Serialization/Models/PKZIP/DataDescriptor64.cs
index f088a0e0..aaa6bea8 100644
--- a/SabreTools.Serialization/Models/PKZIP/DataDescriptor64.cs
+++ b/SabreTools.Serialization/Models/PKZIP/DataDescriptor64.cs
@@ -3,7 +3,7 @@ namespace SabreTools.Data.Models.PKZIP
///
/// Data descriptor (ZIP64)
///
- ///
+ ///
public class DataDescriptor64
{
///
diff --git a/SabreTools.Serialization/Models/PKZIP/EndOfCentralDirectoryLocator64.cs b/SabreTools.Serialization/Models/PKZIP/EndOfCentralDirectoryLocator64.cs
index 8d1dea20..1db87a2c 100644
--- a/SabreTools.Serialization/Models/PKZIP/EndOfCentralDirectoryLocator64.cs
+++ b/SabreTools.Serialization/Models/PKZIP/EndOfCentralDirectoryLocator64.cs
@@ -5,7 +5,7 @@ namespace SabreTools.Data.Models.PKZIP
///
/// Zip64 end of central directory locator
///
- ///
+ ///
[StructLayout(LayoutKind.Sequential)]
public class EndOfCentralDirectoryLocator64
{
diff --git a/SabreTools.Serialization/Models/PKZIP/EndOfCentralDirectoryRecord.cs b/SabreTools.Serialization/Models/PKZIP/EndOfCentralDirectoryRecord.cs
index 606ed194..e932c88e 100644
--- a/SabreTools.Serialization/Models/PKZIP/EndOfCentralDirectoryRecord.cs
+++ b/SabreTools.Serialization/Models/PKZIP/EndOfCentralDirectoryRecord.cs
@@ -3,7 +3,7 @@ namespace SabreTools.Data.Models.PKZIP
///
/// End of central directory record
///
- ///
+ ///
public class EndOfCentralDirectoryRecord
{
///
diff --git a/SabreTools.Serialization/Models/PKZIP/Enums.cs b/SabreTools.Serialization/Models/PKZIP/Enums.cs
index cf0df56c..e74df5fd 100644
--- a/SabreTools.Serialization/Models/PKZIP/Enums.cs
+++ b/SabreTools.Serialization/Models/PKZIP/Enums.cs
@@ -1,7 +1,7 @@
using System;
-///
-///
+///
+///
namespace SabreTools.Data.Models.PKZIP
{
[Flags]
@@ -503,7 +503,7 @@ namespace SabreTools.Data.Models.PKZIP
NoCRC = 0b0000_0000_0000_1000,
///
- /// Reserved for use with method 8, for enhanced deflating.
+ /// Reserved for use with method 8, for enhanced deflating.
///
EnhancedDeflateReserved = 0b0000_0000_0001_0000,
@@ -992,13 +992,13 @@ namespace SabreTools.Data.Models.PKZIP
Bit2 = 0b0000_0000_0000_0100,
/*
- 4.4.14.2 The 0x0002 bit of this field indicates, if set, that
- a 4 byte variable record length control field precedes each
- logical record indicating the length of the record. The
+ 4.4.14.2 The 0x0002 bit of this field indicates, if set, that
+ a 4 byte variable record length control field precedes each
+ logical record indicating the length of the record. The
record length control field is stored in little-endian byte
- order. This flag is independent of text control characters,
- and if used in conjunction with text data, includes any
- control characters in the total length of the record. This
+ order. This flag is independent of text control characters,
+ and if used in conjunction with text data, includes any
+ control characters in the total length of the record. This
value is provided for mainframe data transfer support.
*/
}
diff --git a/SabreTools.Serialization/Models/PKZIP/ExtendedTimestampExtraField.cs b/SabreTools.Serialization/Models/PKZIP/ExtendedTimestampExtraField.cs
index 3673510e..6218b1ae 100644
--- a/SabreTools.Serialization/Models/PKZIP/ExtendedTimestampExtraField.cs
+++ b/SabreTools.Serialization/Models/PKZIP/ExtendedTimestampExtraField.cs
@@ -4,7 +4,7 @@ namespace SabreTools.Data.Models.PKZIP
/// The unix modified time, last access time, and creation time, if set
///
/// Header ID = 0x5455
- ///
+ ///
public class ExtendedTimestampExtraField : ExtensibleDataField
{
///
@@ -15,19 +15,19 @@ namespace SabreTools.Data.Models.PKZIP
///
/// Last modified time
///
- /// Only available when is set
+ /// Only available when is set
public uint? LastModified { get; set; }
///
/// Last accessed time
///
- /// Only available when is set
+ /// Only available when is set
public uint? LastAccessed { get; set; }
///
/// Created on time
///
- /// Only available when is set
+ /// Only available when is set
public uint? CreatedOn { get; set; }
}
}
diff --git a/SabreTools.Serialization/Models/PKZIP/ExtensibleDataField.cs b/SabreTools.Serialization/Models/PKZIP/ExtensibleDataField.cs
index d4ca9ac6..8521249e 100644
--- a/SabreTools.Serialization/Models/PKZIP/ExtensibleDataField.cs
+++ b/SabreTools.Serialization/Models/PKZIP/ExtensibleDataField.cs
@@ -6,7 +6,7 @@ namespace SabreTools.Data.Models.PKZIP
/// files, the following structure MUST be used for all
/// programs storing data in this field
///
- ///
+ ///
public abstract class ExtensibleDataField
{
///
diff --git a/SabreTools.Serialization/Models/PKZIP/InfoZIPUnicodeCommentExtraField.cs b/SabreTools.Serialization/Models/PKZIP/InfoZIPUnicodeCommentExtraField.cs
index 9c5c696c..6a33e2f5 100644
--- a/SabreTools.Serialization/Models/PKZIP/InfoZIPUnicodeCommentExtraField.cs
+++ b/SabreTools.Serialization/Models/PKZIP/InfoZIPUnicodeCommentExtraField.cs
@@ -3,20 +3,20 @@ namespace SabreTools.Data.Models.PKZIP
///
/// Stores the UTF-8 version of the file comment as stored in the
/// central directory header. (Last Revision 20070912)
- ///
+ ///
/// Currently Version is set to the number 1. If there is a need
/// to change this field, the version will be incremented. Changes
/// MAY NOT be backward compatible so this extra field SHOULD NOT be
/// used if the version is not recognized.
- ///
+ ///
/// The ComCRC32 is the standard zip CRC32 checksum of the File Comment
/// field in the central directory header. This is used to verify that
/// the comment field has not changed since the Unicode Comment extra field
- /// was created. This can happen if a utility changes the File Comment
- /// field but does not update the UTF-8 Comment extra field. If the CRC
- /// check fails, this Unicode Comment extra field SHOULD be ignored and
+ /// was created. This can happen if a utility changes the File Comment
+ /// field but does not update the UTF-8 Comment extra field. If the CRC
+ /// check fails, this Unicode Comment extra field SHOULD be ignored and
/// the File Comment field in the header SHOULD be used instead.
- ///
+ ///
/// The UnicodeCom field is the UTF-8 version of the File Comment field
/// in the header. As UnicodeCom is defined to be UTF-8, no UTF-8 byte
/// order mark (BOM) is used. The length of this field is determined by
@@ -33,7 +33,7 @@ namespace SabreTools.Data.Models.PKZIP
/// Directory Header for a file.
///
/// Header ID = 0x6375
- ///
+ ///
public class InfoZIPUnicodeCommentExtraField : ExtensibleDataField
{
///
@@ -49,6 +49,6 @@ namespace SabreTools.Data.Models.PKZIP
///
/// UTF-8 version of the entry comment
///
- public string? UnicodeCom { get; set; }
+ public string UnicodeCom { get; set; }
}
}
diff --git a/SabreTools.Serialization/Models/PKZIP/InfoZIPUnicodePathExtraField.cs b/SabreTools.Serialization/Models/PKZIP/InfoZIPUnicodePathExtraField.cs
index 1edf71bd..0c1b84fe 100644
--- a/SabreTools.Serialization/Models/PKZIP/InfoZIPUnicodePathExtraField.cs
+++ b/SabreTools.Serialization/Models/PKZIP/InfoZIPUnicodePathExtraField.cs
@@ -3,12 +3,12 @@ namespace SabreTools.Data.Models.PKZIP
///
/// Stores the UTF-8 version of the file name field as stored in the
/// local header and central directory header. (Last Revision 20070912)
- ///
+ ///
/// Currently Version is set to the number 1. If there is a need
/// to change this field, the version will be incremented. Changes
/// MAY NOT be backward compatible so this extra field SHOULD NOT be
/// used if the version is not recognized.
- ///
+ ///
/// The NameCRC32 is the standard zip CRC32 checksum of the File Name
/// field in the header. This is used to verify that the header
/// File Name field has not changed since the Unicode Path extra field
@@ -16,7 +16,7 @@ namespace SabreTools.Data.Models.PKZIP
/// does not update the UTF-8 path extra field. If the CRC check fails,
/// this UTF-8 Path Extra Field SHOULD be ignored and the File Name field
/// in the header SHOULD be used instead.
- ///
+ ///
/// The UnicodeName is the UTF-8 version of the contents of the File Name
/// field in the header. As UnicodeName is defined to be UTF-8, no UTF-8
/// byte order mark (BOM) is used. The length of this field is determined
@@ -33,7 +33,7 @@ namespace SabreTools.Data.Models.PKZIP
/// Directory Header for a file.
///
/// Header ID = 0x7075
- ///
+ ///
public class InfoZIPUnicodePathExtraField : ExtensibleDataField
{
///
@@ -49,6 +49,6 @@ namespace SabreTools.Data.Models.PKZIP
///
/// UTF-8 version of the entry File Name
///
- public string? UnicodeName { get; set; }
+ public string UnicodeName { get; set; }
}
}
diff --git a/SabreTools.Serialization/Models/PKZIP/LocalFile.cs b/SabreTools.Serialization/Models/PKZIP/LocalFile.cs
index 56caaffd..6b23c59b 100644
--- a/SabreTools.Serialization/Models/PKZIP/LocalFile.cs
+++ b/SabreTools.Serialization/Models/PKZIP/LocalFile.cs
@@ -10,7 +10,7 @@ namespace SabreTools.Data.Models.PKZIP
///
/// Local file header
///
- public LocalFileHeader? LocalFileHeader { get; set; }
+ public LocalFileHeader LocalFileHeader { get; set; }
///
/// Encryption header
diff --git a/SabreTools.Serialization/Models/PKZIP/LocalFileHeader.cs b/SabreTools.Serialization/Models/PKZIP/LocalFileHeader.cs
index 597e4809..ae0db25e 100644
--- a/SabreTools.Serialization/Models/PKZIP/LocalFileHeader.cs
+++ b/SabreTools.Serialization/Models/PKZIP/LocalFileHeader.cs
@@ -3,8 +3,8 @@ namespace SabreTools.Data.Models.PKZIP
///
/// PKZIP local file header
///
- ///
- ///
+ ///
+ ///
public class LocalFileHeader
{
///
diff --git a/SabreTools.Serialization/Models/PKZIP/NTFSExtraField.cs b/SabreTools.Serialization/Models/PKZIP/NTFSExtraField.cs
index 02397481..dabe1477 100644
--- a/SabreTools.Serialization/Models/PKZIP/NTFSExtraField.cs
+++ b/SabreTools.Serialization/Models/PKZIP/NTFSExtraField.cs
@@ -6,7 +6,7 @@ namespace SabreTools.Data.Models.PKZIP
/// and Ctime values MAY be used on any WIN32 system.)
///
/// Header ID = 0x000A
- ///
+ ///
public class NTFSExtraField : ExtensibleDataField
{
///
@@ -17,6 +17,6 @@ namespace SabreTools.Data.Models.PKZIP
///
/// NTFS attribute tags
///
- public TagSizeVar[]? TagSizeVars { get; set; }
+ public TagSizeVar[] TagSizeVars { get; set; }
}
}
diff --git a/SabreTools.Serialization/Models/PKZIP/OpenVMSExtraField.cs b/SabreTools.Serialization/Models/PKZIP/OpenVMSExtraField.cs
index f7319f35..cb4d0404 100644
--- a/SabreTools.Serialization/Models/PKZIP/OpenVMSExtraField.cs
+++ b/SabreTools.Serialization/Models/PKZIP/OpenVMSExtraField.cs
@@ -3,24 +3,24 @@ namespace SabreTools.Data.Models.PKZIP
///
/// The following is the layout of the OpenVMS attributes
/// "extra" block.
- ///
+ ///
/// OpenVMS Extra Field Rules:
- ///
+ ///
/// - There will be one or more attributes present, which
/// will each be preceded by the above TagX & SizeX values.
/// These values are identical to the ATR$C_XXXX and ATR$S_XXXX
/// constants which are defined in ATR.H under OpenVMS C. Neither
/// of these values will ever be zero.
- ///
+ ///
/// - No word alignment or padding is performed.
- ///
+ ///
/// - A well-behaved PKZIP/OpenVMS program SHOULD NOT produce
/// more than one sub-block with the same TagX value. Also, there MUST
/// NOT be more than one "extra" block of type 0x000c in a particular
/// directory record.
///
/// Header ID = 0x000C
- ///
+ ///
public class OpenVMSExtraField : ExtensibleDataField
{
///
@@ -31,6 +31,6 @@ namespace SabreTools.Data.Models.PKZIP
///
/// OpenVMS attribute tags
///
- public TagSizeVar[]? TagSizeVars { get; set; }
+ public TagSizeVar[] TagSizeVars { get; set; }
}
}
diff --git a/SabreTools.Serialization/Models/PKZIP/PatchDescriptorExtraField.cs b/SabreTools.Serialization/Models/PKZIP/PatchDescriptorExtraField.cs
index 364d0bf5..57cd6538 100644
--- a/SabreTools.Serialization/Models/PKZIP/PatchDescriptorExtraField.cs
+++ b/SabreTools.Serialization/Models/PKZIP/PatchDescriptorExtraField.cs
@@ -3,7 +3,7 @@ namespace SabreTools.Data.Models.PKZIP
///
/// The following is the layout of the Patch Descriptor
/// "extra" block.
- ///
+ ///
/// Patch support is provided by PKPatchMaker(tm) technology
/// and is covered under U.S. Patents and Patents Pending. The use or
/// implementation in a product of certain technological aspects set
@@ -14,7 +14,7 @@ namespace SabreTools.Data.Models.PKZIP
/// information.
///
/// Header ID = 0x000F
- ///
+ ///
public class PatchDescriptorExtraField : ExtensibleDataField
{
///
diff --git a/SabreTools.Serialization/Models/PKZIP/RecordManagementControls.cs b/SabreTools.Serialization/Models/PKZIP/RecordManagementControls.cs
index d852e255..b81ea74d 100644
--- a/SabreTools.Serialization/Models/PKZIP/RecordManagementControls.cs
+++ b/SabreTools.Serialization/Models/PKZIP/RecordManagementControls.cs
@@ -1,12 +1,12 @@
namespace SabreTools.Data.Models.PKZIP
{
/// Header ID = 0x0018
- ///
+ ///
public class RecordManagementControls : ExtensibleDataField
{
///
/// Record management control attribute tags
///
- public TagSizeVar[]? TagSizeVars { get; set; }
+ public TagSizeVar[] TagSizeVars { get; set; }
}
}
diff --git a/SabreTools.Serialization/Models/PKZIP/Zip64ExtendedInformationExtraField.cs b/SabreTools.Serialization/Models/PKZIP/Zip64ExtendedInformationExtraField.cs
index 933a87e2..a0abf5d6 100644
--- a/SabreTools.Serialization/Models/PKZIP/Zip64ExtendedInformationExtraField.cs
+++ b/SabreTools.Serialization/Models/PKZIP/Zip64ExtendedInformationExtraField.cs
@@ -1,24 +1,24 @@
namespace SabreTools.Data.Models.PKZIP
{
///
- /// The following is the layout of the zip64 extended
+ /// The following is the layout of the zip64 extended
/// information "extra" block. If one of the size or
/// offset fields in the Local or Central directory
/// record is too small to hold the required data,
/// a Zip64 extended information record is created.
- /// The order of the fields in the zip64 extended
+ /// The order of the fields in the zip64 extended
/// information record is fixed, but the fields MUST
/// only appear if the corresponding Local or Central
/// directory record field is set to 0xFFFF or 0xFFFFFFFF.
- ///
+ ///
/// This entry in the Local header MUST include BOTH original
- /// and compressed file size fields. If encrypting the
+ /// and compressed file size fields. If encrypting the
/// central directory and bit 13 of the general purpose bit
/// flag is set indicating masking, the value stored in the
/// Local Header for the original file size will be zero.
///
/// Header ID = 0x0001
- ///
+ ///
public class Zip64ExtendedInformationExtraField : ExtensibleDataField
{
///
diff --git a/SabreTools.Serialization/Models/PKZIP/ZipItMacintoshShortDirectoryExtraField.cs b/SabreTools.Serialization/Models/PKZIP/ZipItMacintoshShortDirectoryExtraField.cs
index 7b4489e5..198f79d6 100644
--- a/SabreTools.Serialization/Models/PKZIP/ZipItMacintoshShortDirectoryExtraField.cs
+++ b/SabreTools.Serialization/Models/PKZIP/ZipItMacintoshShortDirectoryExtraField.cs
@@ -3,12 +3,12 @@ namespace SabreTools.Data.Models.PKZIP
///
/// The following is the layout of a shortened variant of the
/// ZipIt extra block for Macintosh used only for directory
- /// entries. This variant is used by ZipIt 1.3.5 and newer to
+ /// entries. This variant is used by ZipIt 1.3.5 and newer to
/// save some optional Mac-specific information about directories.
/// The local-header and central-header versions are identical.
///
/// Header ID = 0x2805
- ///
+ ///
public class ZipItMacintoshShortDirectoryExtraField : ExtensibleDataField
{
///
diff --git a/SabreTools.Serialization/Wrappers/PKZIP.Printing.cs b/SabreTools.Serialization/Wrappers/PKZIP.Printing.cs
index 67be1ead..f42df79b 100644
--- a/SabreTools.Serialization/Wrappers/PKZIP.Printing.cs
+++ b/SabreTools.Serialization/Wrappers/PKZIP.Printing.cs
@@ -53,26 +53,19 @@ namespace SabreTools.Serialization.Wrappers
#region Local File Header
var localFileHeader = localFile.LocalFileHeader;
- if (localFileHeader == null)
- {
- builder.AppendLine(" [Local File Header] [NULL]");
- }
- else
- {
- builder.AppendLine(localFileHeader.Signature, " [Local File Header] Signature");
- builder.AppendLine(localFileHeader.Version, " [Local File Header] Version");
- builder.AppendLine($" [Local File Header] Flags: {localFileHeader.Flags} (0x{localFileHeader.Flags:X})");
- builder.AppendLine($" [Local File Header] Compression method: {localFileHeader.CompressionMethod} (0x{localFileHeader.CompressionMethod:X})");
- builder.AppendLine(localFileHeader.LastModifedFileTime, " [Local File Header] Last modified file time"); // TODO: Parse from MS-DOS
- builder.AppendLine(localFileHeader.LastModifiedFileDate, " [Local File Header] Last modified file date"); // TODO: Parse from MS-DOS
- builder.AppendLine(localFileHeader.CRC32, " [Local File Header] CRC-32");
- builder.AppendLine(localFileHeader.CompressedSize, " [Local File Header] Compressed size");
- builder.AppendLine(localFileHeader.UncompressedSize, " [Local File Header] Uncompressed size");
- builder.AppendLine(localFileHeader.FileNameLength, " [Local File Header] File name length");
- builder.AppendLine(localFileHeader.ExtraFieldLength, " [Local File Header] Extra field length");
- builder.AppendLine(localFileHeader.FileName, " [Local File Header] File name");
- Print(builder, " [Local File Header] Extra Fields", localFileHeader.ExtraFields);
- }
+ builder.AppendLine(localFileHeader.Signature, " [Local File Header] Signature");
+ builder.AppendLine(localFileHeader.Version, " [Local File Header] Version");
+ builder.AppendLine($" [Local File Header] Flags: {localFileHeader.Flags} (0x{localFileHeader.Flags:X})");
+ builder.AppendLine($" [Local File Header] Compression method: {localFileHeader.CompressionMethod} (0x{localFileHeader.CompressionMethod:X})");
+ builder.AppendLine(localFileHeader.LastModifedFileTime, " [Local File Header] Last modified file time"); // TODO: Parse from MS-DOS
+ builder.AppendLine(localFileHeader.LastModifiedFileDate, " [Local File Header] Last modified file date"); // TODO: Parse from MS-DOS
+ builder.AppendLine(localFileHeader.CRC32, " [Local File Header] CRC-32");
+ builder.AppendLine(localFileHeader.CompressedSize, " [Local File Header] Compressed size");
+ builder.AppendLine(localFileHeader.UncompressedSize, " [Local File Header] Uncompressed size");
+ builder.AppendLine(localFileHeader.FileNameLength, " [Local File Header] File name length");
+ builder.AppendLine(localFileHeader.ExtraFieldLength, " [Local File Header] Extra field length");
+ builder.AppendLine(localFileHeader.FileName, " [Local File Header] File name");
+ Print(builder, " [Local File Header] Extra Fields", localFileHeader.ExtraFields);
#endregion
@@ -485,11 +478,11 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine(field.Data, " Data");
}
- private static void Print(StringBuilder builder, TagSizeVar[]? tuples)
+ private static void Print(StringBuilder builder, TagSizeVar[] tuples)
{
builder.AppendLine(" Tag/Size/Var Tuples:");
builder.AppendLine(" -------------------------");
- if (tuples == null)
+ if (tuples.Length == 0)
{
builder.AppendLine(" No tuples");
return;