Make Encoding a private field only for IReadOnlyFilesystem implementors.

This commit is contained in:
2022-12-17 23:17:18 +00:00
parent dc26b85c2f
commit 24069676e2
147 changed files with 296 additions and 497 deletions

View File

@@ -31,7 +31,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -47,7 +46,5 @@ public sealed partial class AODOS : IFilesystem
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("668E5039-9DDD-442A-BE1B-A315D6E38E26"); public Guid Id => new("668E5039-9DDD-442A-BE1B-A315D6E38E26");
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc />
public string Author => Authors.NataliaPortillo; public string Author => Authors.NataliaPortillo;
} }

View File

@@ -77,7 +77,7 @@ public sealed partial class AODOS
out FileSystem metadata) out FileSystem metadata)
{ {
information = ""; information = "";
Encoding = Encoding.GetEncoding("koi8-r"); encoding = Encoding.GetEncoding("koi8-r");
ErrorNumber errno = imagePlugin.ReadSector(0, out byte[] sector); ErrorNumber errno = imagePlugin.ReadSector(0, out byte[] sector);
metadata = new FileSystem(); metadata = new FileSystem();
@@ -97,14 +97,14 @@ public sealed partial class AODOS
ClusterSize = imagePlugin.Info.SectorSize, ClusterSize = imagePlugin.Info.SectorSize,
Files = bb.files, Files = bb.files,
FreeClusters = imagePlugin.Info.Sectors - bb.usedSectors, FreeClusters = imagePlugin.Info.Sectors - bb.usedSectors,
VolumeName = StringHandlers.SpacePaddedToString(bb.volumeLabel, Encoding), VolumeName = StringHandlers.SpacePaddedToString(bb.volumeLabel, encoding),
Bootable = true Bootable = true
}; };
sbInformation.AppendFormat(Localization._0_files_on_volume, bb.files).AppendLine(); sbInformation.AppendFormat(Localization._0_files_on_volume, bb.files).AppendLine();
sbInformation.AppendFormat(Localization._0_used_sectors_on_volume, bb.usedSectors).AppendLine(); sbInformation.AppendFormat(Localization._0_used_sectors_on_volume, bb.usedSectors).AppendLine();
sbInformation.AppendFormat(Localization.Disk_name_0, StringHandlers.CToString(bb.volumeLabel, Encoding)). sbInformation.AppendFormat(Localization.Disk_name_0, StringHandlers.CToString(bb.volumeLabel, encoding)).
AppendLine(); AppendLine();
information = sbInformation.ToString(); information = sbInformation.ToString();

View File

@@ -28,7 +28,6 @@
using System; using System;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -38,8 +37,6 @@ namespace Aaru.Filesystems;
[SuppressMessage("ReSharper", "UnusedMember.Local")] [SuppressMessage("ReSharper", "UnusedMember.Local")]
public sealed partial class APFS : IFilesystem public sealed partial class APFS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.APFS_Name; public string Name => Localization.APFS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -70,7 +70,6 @@ public sealed partial class APFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = Encoding.UTF8;
var sbInformation = new StringBuilder(); var sbInformation = new StringBuilder();
metadata = new FileSystem(); metadata = new FileSystem();
information = ""; information = "";

View File

@@ -27,7 +27,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -41,7 +40,5 @@ public sealed partial class AcornADFS : IFilesystem
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("BAFC1E50-9C64-4CD3-8400-80628CC27AFA"); public Guid Id => new("BAFC1E50-9C64-4CD3-8400-80628CC27AFA");
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc />
public string Author => Authors.NataliaPortillo; public string Author => Authors.NataliaPortillo;
} }

View File

@@ -262,7 +262,7 @@ public sealed partial class AcornADFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-1"); encoding ??= Encoding.GetEncoding("iso-8859-1");
var sbInformation = new StringBuilder(); var sbInformation = new StringBuilder();
metadata = new FileSystem(); metadata = new FileSystem();
information = ""; information = "";
@@ -416,7 +416,7 @@ public sealed partial class AcornADFS
sbInformation.AppendFormat(Localization._0_bytes_per_sector, imagePlugin.Info.SectorSize).AppendLine(); sbInformation.AppendFormat(Localization._0_bytes_per_sector, imagePlugin.Info.SectorSize).AppendLine();
sbInformation.AppendFormat(Localization.Volume_has_0_bytes, bytes).AppendLine(); sbInformation.AppendFormat(Localization.Volume_has_0_bytes, bytes).AppendLine();
sbInformation.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(namebytes, Encoding)). sbInformation.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(namebytes, encoding)).
AppendLine(); AppendLine();
if(oldMap1.discId > 0) if(oldMap1.discId > 0)
@@ -426,7 +426,7 @@ public sealed partial class AcornADFS
} }
if(!ArrayHelpers.ArrayIsNullOrEmpty(namebytes)) if(!ArrayHelpers.ArrayIsNullOrEmpty(namebytes))
metadata.VolumeName = StringHandlers.CToString(namebytes, Encoding); metadata.VolumeName = StringHandlers.CToString(namebytes, encoding);
information = sbInformation.ToString(); information = sbInformation.ToString();
@@ -495,7 +495,7 @@ public sealed partial class AcornADFS
AaruConsole.DebugWriteLine("ADFS Plugin", "drSb.disc_id = {0}", drSb.disc_id); AaruConsole.DebugWriteLine("ADFS Plugin", "drSb.disc_id = {0}", drSb.disc_id);
AaruConsole.DebugWriteLine("ADFS Plugin", "drSb.disc_name = {0}", AaruConsole.DebugWriteLine("ADFS Plugin", "drSb.disc_name = {0}",
StringHandlers.CToString(drSb.disc_name, Encoding)); StringHandlers.CToString(drSb.disc_name, encoding));
AaruConsole.DebugWriteLine("ADFS Plugin", "drSb.disc_type = {0}", drSb.disc_type); AaruConsole.DebugWriteLine("ADFS Plugin", "drSb.disc_type = {0}", drSb.disc_type);
AaruConsole.DebugWriteLine("ADFS Plugin", "drSb.disc_size_high = {0}", drSb.disc_size_high); AaruConsole.DebugWriteLine("ADFS Plugin", "drSb.disc_size_high = {0}", drSb.disc_size_high);
@@ -555,7 +555,7 @@ public sealed partial class AcornADFS
if(!ArrayHelpers.ArrayIsNullOrEmpty(drSb.disc_name)) if(!ArrayHelpers.ArrayIsNullOrEmpty(drSb.disc_name))
{ {
string discname = StringHandlers.CToString(drSb.disc_name, Encoding); string discname = StringHandlers.CToString(drSb.disc_name, encoding);
metadata.VolumeName = discname; metadata.VolumeName = discname;
sbInformation.AppendFormat(Localization.Volume_name_0, discname).AppendLine(); sbInformation.AppendFormat(Localization.Volume_name_0, discname).AppendLine();
} }

View File

@@ -27,7 +27,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -41,7 +40,5 @@ public sealed partial class AmigaDOSPlugin : IFilesystem
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("3c882400-208c-427d-a086-9119852a1bc7"); public Guid Id => new("3c882400-208c-427d-a086-9119852a1bc7");
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc />
public string Author => Authors.NataliaPortillo; public string Author => Authors.NataliaPortillo;
} }

View File

@@ -168,7 +168,7 @@ public sealed partial class AmigaDOSPlugin
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-1"); encoding ??= Encoding.GetEncoding("iso-8859-1");
var sbInformation = new StringBuilder(); var sbInformation = new StringBuilder();
metadata = new FileSystem(); metadata = new FileSystem();
information = null; information = null;
@@ -273,7 +273,7 @@ public sealed partial class AmigaDOSPlugin
rootBlk = MarshalRootBlock(rootBlockSector); rootBlk = MarshalRootBlock(rootBlockSector);
string diskName = StringHandlers.PascalToString(rootBlk.diskName, Encoding); string diskName = StringHandlers.PascalToString(rootBlk.diskName, encoding);
switch(bootBlk.diskType & 0xFF) switch(bootBlk.diskType & 0xFF)
{ {

View File

@@ -42,6 +42,7 @@ public sealed partial class AppleDOS : IReadOnlyFilesystem
const string FS_TYPE = "appledos"; const string FS_TYPE = "appledos";
bool _debug; bool _debug;
IMediaImage _device; IMediaImage _device;
Encoding _encoding;
bool _mounted; bool _mounted;
int _sectorsPerTrack; int _sectorsPerTrack;
ulong _start; ulong _start;
@@ -51,8 +52,6 @@ public sealed partial class AppleDOS : IReadOnlyFilesystem
uint _usedSectors; uint _usedSectors;
Vtoc _vtoc; Vtoc _vtoc;
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public FileSystem Metadata { get; private set; } public FileSystem Metadata { get; private set; }
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -117,7 +117,7 @@ public sealed partial class AppleDOS
for(int i = 0; i < 30; i++) for(int i = 0; i < 30; i++)
filenameB[i] = (byte)(entry.filename[i] & 0x7F); filenameB[i] = (byte)(entry.filename[i] & 0x7F);
string filename = StringHandlers.SpacePaddedToString(filenameB, Encoding); string filename = StringHandlers.SpacePaddedToString(filenameB, _encoding);
if(!_catalogCache.ContainsKey(filename)) if(!_catalogCache.ContainsKey(filename))
_catalogCache.Add(filename, ts); _catalogCache.Add(filename, ts);

View File

@@ -31,8 +31,6 @@ using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums; using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
using Aaru.Helpers; using Aaru.Helpers;
using Claunia.Encoding;
using Encoding = System.Text.Encoding;
using Partition = Aaru.CommonTypes.Partition; using Partition = Aaru.CommonTypes.Partition;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -67,7 +65,6 @@ public sealed partial class AppleDOS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? new Apple2();
information = ""; information = "";
var sb = new StringBuilder(); var sb = new StringBuilder();
metadata = new FileSystem(); metadata = new FileSystem();

View File

@@ -45,9 +45,9 @@ public sealed partial class AppleDOS
public ErrorNumber Mount(IMediaImage imagePlugin, Partition partition, Encoding encoding, public ErrorNumber Mount(IMediaImage imagePlugin, Partition partition, Encoding encoding,
Dictionary<string, string> options, string @namespace) Dictionary<string, string> options, string @namespace)
{ {
_device = imagePlugin; _device = imagePlugin;
_start = partition.Start; _start = partition.Start;
Encoding = encoding ?? new Apple2(); _encoding = encoding ?? new Apple2();
if(_device.Info.Sectors != 455 && if(_device.Info.Sectors != 455 &&
_device.Info.Sectors != 560) _device.Info.Sectors != 560)

View File

@@ -32,7 +32,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -43,8 +42,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of the Apple Hierarchical File System (HFS)</summary> /// <summary>Implements detection of the Apple Hierarchical File System (HFS)</summary>
public sealed partial class AppleHFS : IFilesystem public sealed partial class AppleHFS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.Name_Apple_Hierarchical_File_System; public string Name => Localization.Name_Apple_Hierarchical_File_System;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -100,9 +100,9 @@ public sealed partial class AppleHFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("macintosh"); encoding ??= Encoding.GetEncoding("macintosh");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var sb = new StringBuilder(); var sb = new StringBuilder();
@@ -232,7 +232,7 @@ public sealed partial class AppleHFS
sb.AppendFormat(Localization._0_bytes_in_the_Extents_B_Tree, mdb.drXTFlSize).AppendLine(); sb.AppendFormat(Localization._0_bytes_in_the_Extents_B_Tree, mdb.drXTFlSize).AppendLine();
sb.AppendFormat(Localization._0_bytes_in_the_Catalog_B_Tree, mdb.drCTFlSize).AppendLine(); sb.AppendFormat(Localization._0_bytes_in_the_Catalog_B_Tree, mdb.drCTFlSize).AppendLine();
sb.AppendFormat(Localization.Volume_name_0, StringHandlers.PascalToString(mdb.drVN, Encoding)).AppendLine(); sb.AppendFormat(Localization.Volume_name_0, StringHandlers.PascalToString(mdb.drVN, encoding)).AppendLine();
sb.AppendLine(Localization.Finder_info); sb.AppendLine(Localization.Finder_info);
sb.AppendFormat(Localization.CNID_of_bootable_system_directory_0, mdb.drFndrInfo0).AppendLine(); sb.AppendFormat(Localization.CNID_of_bootable_system_directory_0, mdb.drFndrInfo0).AppendLine();
@@ -258,7 +258,7 @@ public sealed partial class AppleHFS
sb.AppendFormat(Localization._0_blocks_in_volume_common_cache, mdb.drCtlCSize).AppendLine(); sb.AppendFormat(Localization._0_blocks_in_volume_common_cache, mdb.drCtlCSize).AppendLine();
} }
string bootBlockInfo = AppleCommon.GetBootBlockInformation(bbSector, Encoding); string bootBlockInfo = AppleCommon.GetBootBlockInformation(bbSector, encoding);
if(bootBlockInfo != null) if(bootBlockInfo != null)
{ {
@@ -303,7 +303,7 @@ public sealed partial class AppleHFS
} }
metadata.Type = FS_TYPE; metadata.Type = FS_TYPE;
metadata.VolumeName = StringHandlers.PascalToString(mdb.drVN, Encoding); metadata.VolumeName = StringHandlers.PascalToString(mdb.drVN, encoding);
if(mdb.drFndrInfo6 != 0 && if(mdb.drFndrInfo6 != 0 &&
mdb.drFndrInfo7 != 0) mdb.drFndrInfo7 != 0)

View File

@@ -27,7 +27,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -37,8 +36,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of Apple Hierarchical File System Plus (HFS+)</summary> /// <summary>Implements detection of Apple Hierarchical File System Plus (HFS+)</summary>
public sealed partial class AppleHFSPlus : IFilesystem public sealed partial class AppleHFSPlus : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.AppleHFSPlus_Name; public string Name => Localization.AppleHFSPlus_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -100,7 +100,6 @@ public sealed partial class AppleHFSPlus
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = Encoding.BigEndianUnicode;
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();

View File

@@ -57,6 +57,7 @@ public sealed partial class AppleMFS : IReadOnlyFilesystem
byte[] _mdbTags; byte[] _mdbTags;
byte[] _directoryTags; byte[] _directoryTags;
byte[] _bitmapTags; byte[] _bitmapTags;
Encoding _encoding;
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.AppleMFS_Name; public string Name => Localization.AppleMFS_Name;
@@ -65,8 +66,6 @@ public sealed partial class AppleMFS : IReadOnlyFilesystem
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("36405F8D-0D26-4066-6538-5DBF5D065C3A"); public Guid Id => new("36405F8D-0D26-4066-6538-5DBF5D065C3A");
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc />
public string Author => Authors.NataliaPortillo; public string Author => Authors.NataliaPortillo;
// TODO: Implement Finder namespace (requires decoding Desktop database) // TODO: Implement Finder namespace (requires decoding Desktop database)

View File

@@ -101,7 +101,7 @@ public sealed partial class AppleMFS
entry.flNam = new byte[_directoryBlocks[offset + 50] + 1]; entry.flNam = new byte[_directoryBlocks[offset + 50] + 1];
Array.Copy(_directoryBlocks, offset + 50, entry.flNam, 0, entry.flNam.Length); Array.Copy(_directoryBlocks, offset + 50, entry.flNam, 0, entry.flNam.Length);
string lowerFilename = StringHandlers.PascalToString(entry.flNam, Encoding).ToLowerInvariant(). string lowerFilename = StringHandlers.PascalToString(entry.flNam, _encoding).ToLowerInvariant().
Replace('/', ':'); Replace('/', ':');
if(entry.flFlags.HasFlag(FileFlags.Used) && if(entry.flFlags.HasFlag(FileFlags.Used) &&
@@ -113,7 +113,7 @@ public sealed partial class AppleMFS
_idToEntry.Add(entry.flFlNum, entry); _idToEntry.Add(entry.flFlNum, entry);
_idToFilename.Add(entry.flFlNum, _idToFilename.Add(entry.flFlNum,
StringHandlers.PascalToString(entry.flNam, Encoding).Replace('/', ':')); StringHandlers.PascalToString(entry.flNam, _encoding).Replace('/', ':'));
_filenameToId.Add(lowerFilename, entry.flFlNum); _filenameToId.Add(lowerFilename, entry.flFlNum);
@@ -134,7 +134,7 @@ public sealed partial class AppleMFS
DateHandlers.MacToDateTime(entry.flMdDat)); DateHandlers.MacToDateTime(entry.flMdDat));
AaruConsole.DebugWriteLine("DEBUG (AppleMFS plugin)", "entry.flNam0 = {0}", AaruConsole.DebugWriteLine("DEBUG (AppleMFS plugin)", "entry.flNam0 = {0}",
StringHandlers.PascalToString(entry.flNam, Encoding)); StringHandlers.PascalToString(entry.flNam, _encoding));
} }
offset += 50 + entry.flNam.Length; offset += 50 + entry.flNam.Length;

View File

@@ -61,9 +61,9 @@ public sealed partial class AppleMFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? new MacRoman(); encoding ??= new MacRoman();
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var sb = new StringBuilder(); var sb = new StringBuilder();
@@ -99,7 +99,7 @@ public sealed partial class AppleMFS
mdb.drVNSiz = mdbSector[0x024]; mdb.drVNSiz = mdbSector[0x024];
byte[] variableSize = new byte[mdb.drVNSiz + 1]; byte[] variableSize = new byte[mdb.drVNSiz + 1];
Array.Copy(mdbSector, 0x024, variableSize, 0, mdb.drVNSiz + 1); Array.Copy(mdbSector, 0x024, variableSize, 0, mdb.drVNSiz + 1);
mdb.drVN = StringHandlers.PascalToString(variableSize, Encoding); mdb.drVN = StringHandlers.PascalToString(variableSize, encoding);
sb.AppendLine(Localization.AppleMFS_Name); sb.AppendLine(Localization.AppleMFS_Name);
sb.AppendLine(); sb.AppendLine();
@@ -142,7 +142,7 @@ public sealed partial class AppleMFS
sb.AppendFormat(Localization._0_unused_allocation_blocks, mdb.drFreeBks).AppendLine(); sb.AppendFormat(Localization._0_unused_allocation_blocks, mdb.drFreeBks).AppendLine();
sb.AppendFormat(Localization.Volume_name_0, mdb.drVN).AppendLine(); sb.AppendFormat(Localization.Volume_name_0, mdb.drVN).AppendLine();
string bootBlockInfo = AppleCommon.GetBootBlockInformation(bbSector, Encoding); string bootBlockInfo = AppleCommon.GetBootBlockInformation(bbSector, encoding);
if(bootBlockInfo != null) if(bootBlockInfo != null)
{ {

View File

@@ -49,7 +49,7 @@ public sealed partial class AppleMFS
{ {
_device = imagePlugin; _device = imagePlugin;
_partitionStart = partition.Start; _partitionStart = partition.Start;
Encoding = encoding ?? Encoding.GetEncoding("macintosh"); _encoding = encoding ?? Encoding.GetEncoding("macintosh");
options ??= GetDefaultOptions(); options ??= GetDefaultOptions();
@@ -88,7 +88,7 @@ public sealed partial class AppleMFS
_volMdb.drVNSiz = _mdbBlocks[0x024]; _volMdb.drVNSiz = _mdbBlocks[0x024];
byte[] variableSize = new byte[_volMdb.drVNSiz + 1]; byte[] variableSize = new byte[_volMdb.drVNSiz + 1];
Array.Copy(_mdbBlocks, 0x024, variableSize, 0, _volMdb.drVNSiz + 1); Array.Copy(_mdbBlocks, 0x024, variableSize, 0, _volMdb.drVNSiz + 1);
_volMdb.drVN = StringHandlers.PascalToString(variableSize, Encoding); _volMdb.drVN = StringHandlers.PascalToString(variableSize, _encoding);
errno = _device.ReadSectors(_volMdb.drDirSt + _partitionStart, _volMdb.drBlLen, out _directoryBlocks); errno = _device.ReadSectors(_volMdb.drDirSt + _partitionStart, _volMdb.drBlLen, out _directoryBlocks);

View File

@@ -28,7 +28,6 @@
using System; using System;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -38,8 +37,6 @@ namespace Aaru.Filesystems;
[SuppressMessage("ReSharper", "UnusedMember.Local")] [SuppressMessage("ReSharper", "UnusedMember.Local")]
public sealed partial class AtheOS : IFilesystem public sealed partial class AtheOS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.AtheOS_Name; public string Name => Localization.AtheOS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -76,9 +76,9 @@ public sealed partial class AtheOS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15"); encoding ??= Encoding.GetEncoding("iso-8859-15");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var sb = new StringBuilder(); var sb = new StringBuilder();
@@ -104,7 +104,7 @@ public sealed partial class AtheOS
if(afsSb.flags == 1) if(afsSb.flags == 1)
sb.AppendLine(Localization.Filesystem_is_read_only); sb.AppendLine(Localization.Filesystem_is_read_only);
sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(afsSb.name, Encoding)).AppendLine(); sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(afsSb.name, encoding)).AppendLine();
sb.AppendFormat(Localization._0_bytes_per_block, afsSb.block_size).AppendLine(); sb.AppendFormat(Localization._0_bytes_per_block, afsSb.block_size).AppendLine();
sb.AppendFormat(Localization._0_blocks_in_volume_1_bytes, afsSb.num_blocks, sb.AppendFormat(Localization._0_blocks_in_volume_1_bytes, afsSb.num_blocks,
@@ -154,7 +154,7 @@ public sealed partial class AtheOS
Dirty = false, Dirty = false,
FreeClusters = (ulong)(afsSb.num_blocks - afsSb.used_blocks), FreeClusters = (ulong)(afsSb.num_blocks - afsSb.used_blocks),
Type = FS_TYPE, Type = FS_TYPE,
VolumeName = StringHandlers.CToString(afsSb.name, Encoding) VolumeName = StringHandlers.CToString(afsSb.name, encoding)
}; };
} }
} }

View File

@@ -28,7 +28,6 @@
using System; using System;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -39,8 +38,6 @@ namespace Aaru.Filesystems;
[SuppressMessage("ReSharper", "UnusedMember.Local")] [SuppressMessage("ReSharper", "UnusedMember.Local")]
public sealed partial class BeFS : IFilesystem public sealed partial class BeFS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.BeFS_Name; public string Name => Localization.BeFS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -86,9 +86,9 @@ public sealed partial class BeFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15"); encoding ??= Encoding.GetEncoding("iso-8859-15");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var sb = new StringBuilder(); var sb = new StringBuilder();
@@ -184,7 +184,7 @@ public sealed partial class BeFS
break; break;
} }
sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(besb.name, Encoding)).AppendLine(); sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(besb.name, encoding)).AppendLine();
sb.AppendFormat(Localization._0_bytes_per_block, besb.block_size).AppendLine(); sb.AppendFormat(Localization._0_bytes_per_block, besb.block_size).AppendLine();
sb.AppendFormat(Localization._0_blocks_in_volume_1_bytes, besb.num_blocks, besb.num_blocks * besb.block_size). sb.AppendFormat(Localization._0_blocks_in_volume_1_bytes, besb.num_blocks, besb.num_blocks * besb.block_size).
@@ -226,7 +226,7 @@ public sealed partial class BeFS
Dirty = besb.flags == BEFS_DIRTY, Dirty = besb.flags == BEFS_DIRTY,
FreeClusters = (ulong)(besb.num_blocks - besb.used_blocks), FreeClusters = (ulong)(besb.num_blocks - besb.used_blocks),
Type = FS_TYPE, Type = FS_TYPE,
VolumeName = StringHandlers.CToString(besb.name, Encoding) VolumeName = StringHandlers.CToString(besb.name, encoding)
}; };
} }
} }

View File

@@ -31,7 +31,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -40,8 +39,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of the b-tree filesystem (btrfs)</summary> /// <summary>Implements detection of the b-tree filesystem (btrfs)</summary>
public sealed partial class BTRFS : IFilesystem public sealed partial class BTRFS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.BTRFS_Name; public string Name => Localization.BTRFS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -84,7 +84,6 @@ public sealed partial class BTRFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15");
var sbInformation = new StringBuilder(); var sbInformation = new StringBuilder();
metadata = new FileSystem(); metadata = new FileSystem();
information = ""; information = "";

View File

@@ -27,7 +27,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -41,7 +40,5 @@ public sealed partial class CBM : IFilesystem
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("D104744E-A376-450C-BAC0-1347C93F983B"); public Guid Id => new("D104744E-A376-450C-BAC0-1347C93F983B");
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc />
public string Author => Authors.NataliaPortillo; public string Author => Authors.NataliaPortillo;
} }

View File

@@ -92,7 +92,7 @@ public sealed partial class CBM
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = new PETSCII(); encoding = new PETSCII();
information = ""; information = "";
byte[] sector; byte[] sector;
@@ -136,10 +136,10 @@ public sealed partial class CBM
sbInformation.AppendFormat(Localization.Disk_ID_0, cbmHdr.diskId).AppendLine(); sbInformation.AppendFormat(Localization.Disk_ID_0, cbmHdr.diskId).AppendLine();
sbInformation.AppendFormat(Localization.Disk_name_0, StringHandlers.CToString(cbmHdr.name, Encoding)). sbInformation.AppendFormat(Localization.Disk_name_0, StringHandlers.CToString(cbmHdr.name, encoding)).
AppendLine(); AppendLine();
metadata.VolumeName = StringHandlers.CToString(cbmHdr.name, Encoding); metadata.VolumeName = StringHandlers.CToString(cbmHdr.name, encoding);
metadata.VolumeSerial = $"{cbmHdr.diskId}"; metadata.VolumeSerial = $"{cbmHdr.diskId}";
} }
else else
@@ -164,10 +164,10 @@ public sealed partial class CBM
sbInformation.AppendFormat(Localization.Disk_ID_0, cbmBam.diskId).AppendLine(); sbInformation.AppendFormat(Localization.Disk_ID_0, cbmBam.diskId).AppendLine();
sbInformation.AppendFormat(Localization.Disk_name_0, StringHandlers.CToString(cbmBam.name, Encoding)). sbInformation.AppendFormat(Localization.Disk_name_0, StringHandlers.CToString(cbmBam.name, encoding)).
AppendLine(); AppendLine();
metadata.VolumeName = StringHandlers.CToString(cbmBam.name, Encoding); metadata.VolumeName = StringHandlers.CToString(cbmBam.name, encoding);
metadata.VolumeSerial = $"{cbmBam.diskId}"; metadata.VolumeSerial = $"{cbmBam.diskId}";
} }

View File

@@ -59,6 +59,7 @@ public sealed partial class CPM : IReadOnlyFilesystem
List<string> _dirList; List<string> _dirList;
/// <summary>CP/M disc parameter block (on-memory)</summary> /// <summary>CP/M disc parameter block (on-memory)</summary>
DiscParameterBlock _dpb; DiscParameterBlock _dpb;
Encoding _encoding;
/// <summary>Cached file data</summary> /// <summary>Cached file data</summary>
Dictionary<string, byte[]> _fileCache; Dictionary<string, byte[]> _fileCache;
/// <summary>The volume label, if the CP/M filesystem contains one</summary> /// <summary>The volume label, if the CP/M filesystem contains one</summary>
@@ -81,8 +82,6 @@ public sealed partial class CPM : IReadOnlyFilesystem
/// <summary>If <see cref="Identify" /> thinks this is a CP/M filesystem, this is the definition for it</summary> /// <summary>If <see cref="Identify" /> thinks this is a CP/M filesystem, this is the definition for it</summary>
CpmDefinition _workingDefinition; CpmDefinition _workingDefinition;
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public FileSystem Metadata { get; private set; } public FileSystem Metadata { get; private set; }
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -1141,7 +1141,6 @@ public sealed partial class CPM
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("IBM437");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
@@ -1214,13 +1213,11 @@ public sealed partial class CPM
sb.AppendFormat(Localization.Device_uses_0_one_hardware_interleaving, _workingDefinition.skew).AppendLine(); sb.AppendFormat(Localization.Device_uses_0_one_hardware_interleaving, _workingDefinition.skew).AppendLine();
if(_workingDefinition.sofs > 0) if(_workingDefinition.sofs > 0)
sb.AppendFormat("BSH {0} BLM {1} EXM {2} DSM {3} DRM {4} AL0 {5:X2}H AL1 {6:X2}H SOFS {7}", _dpb.bsh, sb.AppendLine($"BSH {_dpb.bsh} BLM {_dpb.blm} EXM {_dpb.exm} DSM {_dpb.dsm} DRM {_dpb.drm} AL0 {_dpb.al0
_dpb.blm, _dpb.exm, _dpb.dsm, _dpb.drm, _dpb.al0, _dpb.al1, _workingDefinition.sofs). :X2}H AL1 {_dpb.al1:X2}H SOFS {_workingDefinition.sofs}");
AppendLine();
else else
sb.AppendFormat("BSH {0} BLM {1} EXM {2} DSM {3} DRM {4} AL0 {5:X2}H AL1 {6:X2}H OFS {7}", _dpb.bsh, sb.AppendLine($"BSH {_dpb.bsh} BLM {_dpb.blm} EXM {_dpb.exm} DSM {_dpb.dsm} DRM {_dpb.drm} AL0 {_dpb.al0
_dpb.blm, _dpb.exm, _dpb.dsm, _dpb.drm, _dpb.al0, _dpb.al1, _workingDefinition.ofs). :X2}H AL1 {_dpb.al1:X2}H OFS {_workingDefinition.ofs}");
AppendLine();
if(_label != null) if(_label != null)
sb.AppendFormat(Localization.Volume_label_0, _label).AppendLine(); sb.AppendFormat(Localization.Volume_label_0, _label).AppendLine();

View File

@@ -55,8 +55,8 @@ public sealed partial class CPM
public ErrorNumber Mount(IMediaImage imagePlugin, Partition partition, Encoding encoding, public ErrorNumber Mount(IMediaImage imagePlugin, Partition partition, Encoding encoding,
Dictionary<string, string> options, string @namespace) Dictionary<string, string> options, string @namespace)
{ {
_device = imagePlugin; _device = imagePlugin;
Encoding = encoding ?? Encoding.GetEncoding("IBM437"); _encoding = encoding ?? Encoding.GetEncoding("IBM437");
// As the identification is so complex, just call Identify() and relay on its findings // As the identification is so complex, just call Identify() and relay on its findings
if(!Identify(_device, partition) || if(!Identify(_device, partition) ||

View File

@@ -30,7 +30,6 @@
using System; using System;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -40,8 +39,6 @@ namespace Aaru.Filesystems;
[SuppressMessage("ReSharper", "UnusedType.Local")] [SuppressMessage("ReSharper", "UnusedType.Local")]
public sealed partial class Cram : IFilesystem public sealed partial class Cram : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.Cram_Name; public string Name => Localization.Cram_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -64,8 +64,8 @@ public sealed partial class Cram
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15"); encoding ??= Encoding.GetEncoding("iso-8859-15");
information = ""; information = "";
ErrorNumber errno = imagePlugin.ReadSector(partition.Start, out byte[] sector); ErrorNumber errno = imagePlugin.ReadSector(partition.Start, out byte[] sector);
metadata = new FileSystem(); metadata = new FileSystem();
@@ -96,7 +96,7 @@ public sealed partial class Cram
sbInformation.AppendLine(littleEndian ? Localization.Little_endian : Localization.Big_endian); sbInformation.AppendLine(littleEndian ? Localization.Little_endian : Localization.Big_endian);
sbInformation.AppendFormat(Localization.Volume_edition_0, crSb.edition).AppendLine(); sbInformation.AppendFormat(Localization.Volume_edition_0, crSb.edition).AppendLine();
sbInformation.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(crSb.name, Encoding)). sbInformation.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(crSb.name, encoding)).
AppendLine(); AppendLine();
sbInformation.AppendFormat(Localization.Volume_has_0_bytes, crSb.size).AppendLine(); sbInformation.AppendFormat(Localization.Volume_has_0_bytes, crSb.size).AppendLine();
@@ -107,7 +107,7 @@ public sealed partial class Cram
metadata = new FileSystem metadata = new FileSystem
{ {
VolumeName = StringHandlers.CToString(crSb.name, Encoding), VolumeName = StringHandlers.CToString(crSb.name, encoding),
Type = FS_TYPE, Type = FS_TYPE,
Clusters = crSb.blocks, Clusters = crSb.blocks,
Files = crSb.files, Files = crSb.files,

View File

@@ -31,7 +31,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -40,8 +39,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of the filesystem described in ECMA-67</summary> /// <summary>Implements detection of the filesystem described in ECMA-67</summary>
public sealed partial class ECMA67 : IFilesystem public sealed partial class ECMA67 : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.ECMA67_Name; public string Name => Localization.ECMA67_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -70,7 +70,6 @@ public sealed partial class ECMA67
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-1");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
ErrorNumber errno = imagePlugin.ReadSector(6, out byte[] sector); ErrorNumber errno = imagePlugin.ReadSector(6, out byte[] sector);

View File

@@ -27,7 +27,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -36,8 +35,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements identification for the SGI Extent FileSystem</summary> /// <summary>Implements identification for the SGI Extent FileSystem</summary>
public sealed partial class EFS : IFilesystem public sealed partial class EFS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.EFS_Name; public string Name => Localization.EFS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -106,9 +106,9 @@ public sealed partial class EFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15"); encoding ??= Encoding.GetEncoding("iso-8859-15");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
if(imagePlugin.Info.SectorSize < 512) if(imagePlugin.Info.SectorSize < 512)
return; return;
@@ -197,8 +197,8 @@ public sealed partial class EFS
sb.AppendLine(Localization.Volume_is_dirty); sb.AppendLine(Localization.Volume_is_dirty);
sb.AppendFormat(Localization.Checksum_0_X8, efsSb.sb_checksum).AppendLine(); sb.AppendFormat(Localization.Checksum_0_X8, efsSb.sb_checksum).AppendLine();
sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(efsSb.sb_fname, Encoding)).AppendLine(); sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(efsSb.sb_fname, encoding)).AppendLine();
sb.AppendFormat(Localization.Volume_pack_0, StringHandlers.CToString(efsSb.sb_fpack, Encoding)).AppendLine(); sb.AppendFormat(Localization.Volume_pack_0, StringHandlers.CToString(efsSb.sb_fpack, encoding)).AppendLine();
information = sb.ToString(); information = sb.ToString();
@@ -209,7 +209,7 @@ public sealed partial class EFS
Clusters = (ulong)efsSb.sb_size, Clusters = (ulong)efsSb.sb_size,
FreeClusters = (ulong)efsSb.sb_tfree, FreeClusters = (ulong)efsSb.sb_tfree,
Dirty = efsSb.sb_dirty > 0, Dirty = efsSb.sb_dirty > 0,
VolumeName = StringHandlers.CToString(efsSb.sb_fname, Encoding), VolumeName = StringHandlers.CToString(efsSb.sb_fname, encoding),
VolumeSerial = $"{efsSb.sb_checksum:X8}", VolumeSerial = $"{efsSb.sb_checksum:X8}",
CreationDate = DateHandlers.UnixToDateTime(efsSb.sb_time) CreationDate = DateHandlers.UnixToDateTime(efsSb.sb_time)
}; };

View File

@@ -28,7 +28,6 @@
using System; using System;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -38,8 +37,6 @@ namespace Aaru.Filesystems;
[SuppressMessage("ReSharper", "UnusedMember.Local")] [SuppressMessage("ReSharper", "UnusedMember.Local")]
public sealed partial class F2FS : IFilesystem public sealed partial class F2FS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.F2FS_Name; public string Name => Localization.F2FS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -77,7 +77,6 @@ public sealed partial class F2FS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = Encoding.Unicode;
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();

View File

@@ -198,11 +198,11 @@ public sealed partial class FAT
continue; continue;
// Self // Self
if(Encoding.GetString(dirent.filename).TrimEnd() == ".") if(_encoding.GetString(dirent.filename).TrimEnd() == ".")
continue; continue;
// Parent // Parent
if(Encoding.GetString(dirent.filename).TrimEnd() == "..") if(_encoding.GetString(dirent.filename).TrimEnd() == "..")
continue; continue;
// Deleted // Deleted
@@ -237,8 +237,8 @@ public sealed partial class FAT
if(dirent.filename[0] == DIRENT_E5) if(dirent.filename[0] == DIRENT_E5)
dirent.filename[0] = DIRENT_DELETED; dirent.filename[0] = DIRENT_DELETED;
string name = Encoding.GetString(dirent.filename).TrimEnd(); string name = _encoding.GetString(dirent.filename).TrimEnd();
string extension = Encoding.GetString(dirent.extension).TrimEnd(); string extension = _encoding.GetString(dirent.extension).TrimEnd();
if(name == "" && if(name == "" &&
extension == "") extension == "")
@@ -288,9 +288,9 @@ public sealed partial class FAT
completeEntry.HumanDirent = humanEntry; completeEntry.HumanDirent = humanEntry;
name = StringHandlers.CToString(humanEntry.name1, Encoding).TrimEnd(); name = StringHandlers.CToString(humanEntry.name1, _encoding).TrimEnd();
extension = StringHandlers.CToString(humanEntry.extension, Encoding).TrimEnd(); extension = StringHandlers.CToString(humanEntry.extension, _encoding).TrimEnd();
string name2 = StringHandlers.CToString(humanEntry.name2, Encoding).TrimEnd(); string name2 = StringHandlers.CToString(humanEntry.name2, _encoding).TrimEnd();
if(extension != "") if(extension != "")
filename = name + name2 + "." + extension; filename = name + name2 + "." + extension;
@@ -340,7 +340,7 @@ public sealed partial class FAT
Array.Copy(longnameEa, 4, longnameBytes, 0, longnameSize); Array.Copy(longnameEa, 4, longnameBytes, 0, longnameSize);
string longname = StringHandlers.CToString(longnameBytes, Encoding); string longname = StringHandlers.CToString(longnameBytes, _encoding);
if(string.IsNullOrWhiteSpace(longname)) if(string.IsNullOrWhiteSpace(longname))
continue; continue;

View File

@@ -62,9 +62,8 @@ public sealed partial class FAT : IReadOnlyFilesystem
uint _sectorsPerFat; uint _sectorsPerFat;
FileSystemInfo _statfs; FileSystemInfo _statfs;
bool _useFirstFat; bool _useFirstFat;
Encoding _encoding;
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public FileSystem Metadata { get; private set; } public FileSystem Metadata { get; private set; }
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -424,8 +424,8 @@ public sealed partial class FAT
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("IBM437"); encoding ??= Encoding.GetEncoding("IBM437");
information = ""; information = "";
var sb = new StringBuilder(); var sb = new StringBuilder();
metadata = new FileSystem(); metadata = new FileSystem();
@@ -574,7 +574,7 @@ public sealed partial class FAT
if(fat32Bpb.signature == 0x29) if(fat32Bpb.signature == 0x29)
{ {
metadata.VolumeName = StringHandlers.SpacePaddedToString(fat32Bpb.volume_label, Encoding); metadata.VolumeName = StringHandlers.SpacePaddedToString(fat32Bpb.volume_label, encoding);
metadata.VolumeName = metadata.VolumeName?.Replace("\0", ""); metadata.VolumeName = metadata.VolumeName?.Replace("\0", "");
sb.AppendFormat(Localization.Filesystem_type_0, Encoding.ASCII.GetString(fat32Bpb.fs_type)). sb.AppendFormat(Localization.Filesystem_type_0, Encoding.ASCII.GetString(fat32Bpb.fs_type)).
@@ -859,7 +859,7 @@ public sealed partial class FAT
fakeBpb.oem_name[5] >= 0x20 && fakeBpb.oem_name[5] <= 0x7F && fakeBpb.oem_name[5] >= 0x20 && fakeBpb.oem_name[5] <= 0x7F &&
fakeBpb.oem_name[6] >= 0x20 && fakeBpb.oem_name[6] <= 0x7F && fakeBpb.oem_name[6] >= 0x20 && fakeBpb.oem_name[6] <= 0x7F &&
fakeBpb.oem_name[7] >= 0x20 && fakeBpb.oem_name[7] >= 0x20 &&
fakeBpb.oem_name[7] <= 0x7F => StringHandlers.CToString(fakeBpb.oem_name, Encoding, fakeBpb.oem_name[7] <= 0x7F => StringHandlers.CToString(fakeBpb.oem_name, encoding,
start: 1), start: 1),
_ => metadata.SystemIdentifier _ => metadata.SystemIdentifier
}; };
@@ -929,7 +929,7 @@ public sealed partial class FAT
if(fakeBpb.signature == 0x29 || andosOemCorrect) if(fakeBpb.signature == 0x29 || andosOemCorrect)
{ {
metadata.VolumeName = StringHandlers.SpacePaddedToString(fakeBpb.volume_label, Encoding); metadata.VolumeName = StringHandlers.SpacePaddedToString(fakeBpb.volume_label, encoding);
metadata.VolumeName = metadata.VolumeName?.Replace("\0", ""); metadata.VolumeName = metadata.VolumeName?.Replace("\0", "");
sb.AppendFormat(Localization.Filesystem_type_0, Encoding.ASCII.GetString(fakeBpb.fs_type)). sb.AppendFormat(Localization.Filesystem_type_0, Encoding.ASCII.GetString(fakeBpb.fs_type)).
@@ -1018,7 +1018,7 @@ public sealed partial class FAT
byte[] fullname = new byte[11]; byte[] fullname = new byte[11];
Array.Copy(entry.filename, 0, fullname, 0, 8); Array.Copy(entry.filename, 0, fullname, 0, 8);
Array.Copy(entry.extension, 0, fullname, 8, 3); Array.Copy(entry.extension, 0, fullname, 8, 3);
string volname = Encoding.GetString(fullname).Trim(); string volname = encoding.GetString(fullname).Trim();
if(!string.IsNullOrEmpty(volname)) if(!string.IsNullOrEmpty(volname))
metadata.VolumeName = entry.caseinfo.HasFlag(CaseInfo.AllLowerCase) ? volname.ToLower() : volname; metadata.VolumeName = entry.caseinfo.HasFlag(CaseInfo.AllLowerCase) ? volname.ToLower() : volname;

View File

@@ -128,8 +128,8 @@ public sealed partial class FAT
uint sectorsForRootDirectory = 0; uint sectorsForRootDirectory = 0;
uint rootDirectoryCluster = 0; uint rootDirectoryCluster = 0;
Encoding = encoding ?? (bpbKind == BpbKind.Human ? Encoding.GetEncoding("shift_jis") _encoding = encoding ?? (bpbKind == BpbKind.Human ? Encoding.GetEncoding("shift_jis")
: Encoding.GetEncoding("IBM437")); : Encoding.GetEncoding("IBM437"));
switch(bpbKind) switch(bpbKind)
{ {
@@ -197,7 +197,7 @@ public sealed partial class FAT
if(fat32Bpb.signature == 0x29) if(fat32Bpb.signature == 0x29)
{ {
Metadata.VolumeName = StringHandlers.SpacePaddedToString(fat32Bpb.volume_label, Encoding); Metadata.VolumeName = StringHandlers.SpacePaddedToString(fat32Bpb.volume_label, _encoding);
Metadata.VolumeName = Metadata.VolumeName?.Replace("\0", ""); Metadata.VolumeName = Metadata.VolumeName?.Replace("\0", "");
} }
@@ -423,7 +423,7 @@ public sealed partial class FAT
fakeBpb.oem_name[5] >= 0x20 && fakeBpb.oem_name[5] <= 0x7F && fakeBpb.oem_name[5] >= 0x20 && fakeBpb.oem_name[5] <= 0x7F &&
fakeBpb.oem_name[6] >= 0x20 && fakeBpb.oem_name[6] <= 0x7F && fakeBpb.oem_name[6] >= 0x20 && fakeBpb.oem_name[6] <= 0x7F &&
fakeBpb.oem_name[7] >= 0x20 && fakeBpb.oem_name[7] >= 0x20 &&
fakeBpb.oem_name[7] <= 0x7F => StringHandlers.CToString(fakeBpb.oem_name, Encoding, fakeBpb.oem_name[7] <= 0x7F => StringHandlers.CToString(fakeBpb.oem_name, _encoding,
start: 1), start: 1),
_ => Metadata.SystemIdentifier _ => Metadata.SystemIdentifier
}; };
@@ -454,7 +454,7 @@ public sealed partial class FAT
if(fakeBpb.signature == 0x29 || andosOemCorrect) if(fakeBpb.signature == 0x29 || andosOemCorrect)
{ {
Metadata.VolumeName = StringHandlers.SpacePaddedToString(fakeBpb.volume_label, Encoding); Metadata.VolumeName = StringHandlers.SpacePaddedToString(fakeBpb.volume_label, _encoding);
Metadata.VolumeName = Metadata.VolumeName?.Replace("\0", ""); Metadata.VolumeName = Metadata.VolumeName?.Replace("\0", "");
} }
} }
@@ -609,11 +609,11 @@ public sealed partial class FAT
continue; continue;
// Self // Self
if(Encoding.GetString(entry.filename).TrimEnd() == ".") if(_encoding.GetString(entry.filename).TrimEnd() == ".")
continue; continue;
// Parent // Parent
if(Encoding.GetString(entry.filename).TrimEnd() == "..") if(_encoding.GetString(entry.filename).TrimEnd() == "..")
continue; continue;
// Deleted // Deleted
@@ -627,7 +627,7 @@ public sealed partial class FAT
byte[] fullname = new byte[11]; byte[] fullname = new byte[11];
Array.Copy(entry.filename, 0, fullname, 0, 8); Array.Copy(entry.filename, 0, fullname, 0, 8);
Array.Copy(entry.extension, 0, fullname, 8, 3); Array.Copy(entry.extension, 0, fullname, 8, 3);
string volname = Encoding.GetString(fullname).Trim(); string volname = _encoding.GetString(fullname).Trim();
if(!string.IsNullOrEmpty(volname)) if(!string.IsNullOrEmpty(volname))
Metadata.VolumeName = entry.caseinfo.HasFlag(CaseInfo.AllLowerCase) && _namespace == Namespace.Nt Metadata.VolumeName = entry.caseinfo.HasFlag(CaseInfo.AllLowerCase) && _namespace == Namespace.Nt
@@ -674,8 +674,8 @@ public sealed partial class FAT
if(entry.filename[0] == DIRENT_E5) if(entry.filename[0] == DIRENT_E5)
entry.filename[0] = DIRENT_DELETED; entry.filename[0] = DIRENT_DELETED;
string name = Encoding.GetString(entry.filename).TrimEnd(); string name = _encoding.GetString(entry.filename).TrimEnd();
string extension = Encoding.GetString(entry.extension).TrimEnd(); string extension = _encoding.GetString(entry.extension).TrimEnd();
if(_namespace == Namespace.Nt) if(_namespace == Namespace.Nt)
{ {
@@ -730,9 +730,9 @@ public sealed partial class FAT
completeEntry.HumanDirent = humanEntry; completeEntry.HumanDirent = humanEntry;
name = StringHandlers.CToString(humanEntry.name1, Encoding).TrimEnd(); name = StringHandlers.CToString(humanEntry.name1, _encoding).TrimEnd();
extension = StringHandlers.CToString(humanEntry.extension, Encoding).TrimEnd(); extension = StringHandlers.CToString(humanEntry.extension, _encoding).TrimEnd();
string name2 = StringHandlers.CToString(humanEntry.name2, Encoding).TrimEnd(); string name2 = StringHandlers.CToString(humanEntry.name2, _encoding).TrimEnd();
if(extension != "") if(extension != "")
filename = name + name2 + "." + extension; filename = name + name2 + "." + extension;
@@ -922,7 +922,7 @@ public sealed partial class FAT
Array.Copy(longnameEa, 4, longnameBytes, 0, longnameSize); Array.Copy(longnameEa, 4, longnameBytes, 0, longnameSize);
string longname = StringHandlers.CToString(longnameBytes, Encoding); string longname = StringHandlers.CToString(longnameBytes, _encoding);
if(string.IsNullOrWhiteSpace(longname)) if(string.IsNullOrWhiteSpace(longname))
continue; continue;

View File

@@ -134,7 +134,7 @@ public sealed partial class XboxFatPlugin
if(dirent.filenameSize is DELETED_DIRENTRY or > MAX_FILENAME) if(dirent.filenameSize is DELETED_DIRENTRY or > MAX_FILENAME)
continue; continue;
string filename = Encoding.GetString(dirent.filename, 0, dirent.filenameSize); string filename = _encoding.GetString(dirent.filename, 0, dirent.filenameSize);
currentDirectory.Add(filename, dirent); currentDirectory.Add(filename, dirent);
} }

View File

@@ -45,6 +45,7 @@ public sealed partial class XboxFatPlugin : IReadOnlyFilesystem
CultureInfo _cultureInfo; CultureInfo _cultureInfo;
bool _debug; bool _debug;
Dictionary<string, Dictionary<string, DirectoryEntry>> _directoryCache; Dictionary<string, Dictionary<string, DirectoryEntry>> _directoryCache;
Encoding _encoding;
ushort[] _fat16; ushort[] _fat16;
uint[] _fat32; uint[] _fat32;
ulong _fatStartSector; ulong _fatStartSector;
@@ -57,8 +58,6 @@ public sealed partial class XboxFatPlugin : IReadOnlyFilesystem
FileSystemInfo _statfs; FileSystemInfo _statfs;
Superblock _superblock; Superblock _superblock;
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public FileSystem Metadata { get; private set; } public FileSystem Metadata { get; private set; }
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -57,7 +57,6 @@ public sealed partial class XboxFatPlugin
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = Encoding.UTF8;
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();

View File

@@ -48,7 +48,7 @@ public sealed partial class XboxFatPlugin
public ErrorNumber Mount(IMediaImage imagePlugin, Partition partition, Encoding encoding, public ErrorNumber Mount(IMediaImage imagePlugin, Partition partition, Encoding encoding,
Dictionary<string, string> options, string @namespace) Dictionary<string, string> options, string @namespace)
{ {
Encoding = Encoding.GetEncoding("iso-8859-15"); _encoding = Encoding.GetEncoding("iso-8859-15");
_littleEndian = true; _littleEndian = true;
options ??= GetDefaultOptions(); options ??= GetDefaultOptions();
@@ -251,7 +251,7 @@ public sealed partial class XboxFatPlugin
if(entry.filenameSize is DELETED_DIRENTRY or > MAX_FILENAME) if(entry.filenameSize is DELETED_DIRENTRY or > MAX_FILENAME)
continue; continue;
string filename = Encoding.GetString(entry.filename, 0, entry.filenameSize); string filename = _encoding.GetString(entry.filename, 0, entry.filenameSize);
_rootDirectory.Add(filename, entry); _rootDirectory.Add(filename, entry);
} }

View File

@@ -28,7 +28,6 @@
using System; using System;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
using time_t = System.Int32; using time_t = System.Int32;
using ufs_daddr_t = System.Int32; using ufs_daddr_t = System.Int32;
@@ -41,8 +40,6 @@ namespace Aaru.Filesystems;
[SuppressMessage("ReSharper", "InconsistentNaming")] [SuppressMessage("ReSharper", "InconsistentNaming")]
public sealed partial class FFSPlugin : IFilesystem public sealed partial class FFSPlugin : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.FFSPlugin_Name; public string Name => Localization.FFSPlugin_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -96,7 +96,6 @@ public sealed partial class FFSPlugin
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var sbInformation = new StringBuilder(); var sbInformation = new StringBuilder();

View File

@@ -27,7 +27,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -36,8 +35,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection for the Plan-9 Fossil on-disk filesystem</summary> /// <summary>Implements detection for the Plan-9 Fossil on-disk filesystem</summary>
public sealed partial class Fossil : IFilesystem public sealed partial class Fossil : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.Fossil_Name; public string Name => Localization.Fossil_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -65,7 +65,7 @@ public sealed partial class Fossil
out FileSystem metadata) out FileSystem metadata)
{ {
// Technically everything on Plan 9 from Bell Labs is in UTF-8 // Technically everything on Plan 9 from Bell Labs is in UTF-8
Encoding = Encoding.UTF8; encoding = Encoding.UTF8;
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
@@ -117,8 +117,8 @@ public sealed partial class Fossil
sb.AppendFormat(Localization.Active_root_block_0, fsb.active).AppendLine(); sb.AppendFormat(Localization.Active_root_block_0, fsb.active).AppendLine();
sb.AppendFormat(Localization.Next_root_block_0, fsb.next).AppendLine(); sb.AppendFormat(Localization.Next_root_block_0, fsb.next).AppendLine();
sb.AppendFormat(Localization.Current_root_block_0, fsb.current).AppendLine(); sb.AppendFormat(Localization.Current_root_block_0, fsb.current).AppendLine();
sb.AppendFormat(Localization.Volume_label_0, StringHandlers.CToString(fsb.name, Encoding)).AppendLine(); sb.AppendFormat(Localization.Volume_label_0, StringHandlers.CToString(fsb.name, encoding)).AppendLine();
metadata.VolumeName = StringHandlers.CToString(fsb.name, Encoding); metadata.VolumeName = StringHandlers.CToString(fsb.name, encoding);
} }
} }

View File

@@ -27,7 +27,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
using hammer_crc_t = System.UInt32; using hammer_crc_t = System.UInt32;
using hammer_off_t = System.UInt64; using hammer_off_t = System.UInt64;
@@ -41,8 +40,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection for the HAMMER filesystem</summary> /// <summary>Implements detection for the HAMMER filesystem</summary>
public sealed partial class HAMMER : IFilesystem public sealed partial class HAMMER : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.HAMMER_Name; public string Name => Localization.HAMMER_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -70,9 +70,9 @@ public sealed partial class HAMMER
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15"); encoding ??= Encoding.GetEncoding("iso-8859-15");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var sb = new StringBuilder(); var sb = new StringBuilder();
@@ -99,7 +99,7 @@ public sealed partial class HAMMER
sb.AppendFormat(Localization.Volume_0_of_1_on_this_filesystem, superBlock.vol_no + 1, superBlock.vol_count). sb.AppendFormat(Localization.Volume_0_of_1_on_this_filesystem, superBlock.vol_no + 1, superBlock.vol_count).
AppendLine(); AppendLine();
sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(superBlock.vol_label, Encoding)). sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(superBlock.vol_label, encoding)).
AppendLine(); AppendLine();
sb.AppendFormat(Localization.Volume_serial_0, superBlock.vol_fsid).AppendLine(); sb.AppendFormat(Localization.Volume_serial_0, superBlock.vol_fsid).AppendLine();
@@ -115,7 +115,7 @@ public sealed partial class HAMMER
ClusterSize = HAMMER_BIGBLOCK_SIZE, ClusterSize = HAMMER_BIGBLOCK_SIZE,
Dirty = false, Dirty = false,
Type = FS_TYPE, Type = FS_TYPE,
VolumeName = StringHandlers.CToString(superBlock.vol_label, Encoding), VolumeName = StringHandlers.CToString(superBlock.vol_label, encoding),
VolumeSerial = superBlock.vol_fsid.ToString() VolumeSerial = superBlock.vol_fsid.ToString()
}; };

View File

@@ -31,7 +31,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -41,8 +40,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of IBM's High Performance File System (HPFS)</summary> /// <summary>Implements detection of IBM's High Performance File System (HPFS)</summary>
public sealed partial class HPFS : IFilesystem public sealed partial class HPFS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.HPFS_Name; public string Name => Localization.HPFS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -69,9 +69,9 @@ public sealed partial class HPFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("ibm850"); encoding ??= Encoding.GetEncoding("ibm850");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var sb = new StringBuilder(); var sb = new StringBuilder();
@@ -137,7 +137,7 @@ public sealed partial class HPFS
sb.AppendFormat(Localization.NT_Flags_0, bpb.nt_flags).AppendLine(); sb.AppendFormat(Localization.NT_Flags_0, bpb.nt_flags).AppendLine();
sb.AppendFormat(Localization.Signature_0, bpb.signature).AppendLine(); sb.AppendFormat(Localization.Signature_0, bpb.signature).AppendLine();
sb.AppendFormat(Localization.Serial_number_0, bpb.serial_no).AppendLine(); sb.AppendFormat(Localization.Serial_number_0, bpb.serial_no).AppendLine();
sb.AppendFormat(Localization.Volume_label_0, StringHandlers.CToString(bpb.volume_label, Encoding)).AppendLine(); sb.AppendFormat(Localization.Volume_label_0, StringHandlers.CToString(bpb.volume_label, encoding)).AppendLine();
// sb.AppendFormat("Filesystem type: \"{0}\"", hpfs_bpb.fs_type).AppendLine(); // sb.AppendFormat("Filesystem type: \"{0}\"", hpfs_bpb.fs_type).AppendLine();
@@ -243,7 +243,7 @@ public sealed partial class HPFS
metadata.Clusters = hpfsSb.sectors; metadata.Clusters = hpfsSb.sectors;
metadata.ClusterSize = bpb.bps; metadata.ClusterSize = bpb.bps;
metadata.Type = FS_TYPE; metadata.Type = FS_TYPE;
metadata.VolumeName = StringHandlers.CToString(bpb.volume_label, Encoding); metadata.VolumeName = StringHandlers.CToString(bpb.volume_label, encoding);
metadata.VolumeSerial = $"{bpb.serial_no:X8}"; metadata.VolumeSerial = $"{bpb.serial_no:X8}";
metadata.SystemIdentifier = StringHandlers.CToString(bpb.oem_name); metadata.SystemIdentifier = StringHandlers.CToString(bpb.oem_name);

View File

@@ -27,7 +27,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -38,8 +37,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements identification of IBM's High Performance Optical File System</summary> /// <summary>Implements identification of IBM's High Performance Optical File System</summary>
public sealed partial class HPOFS : IFilesystem public sealed partial class HPOFS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.HPOFS_Name; public string Name => Localization.HPOFS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -69,9 +69,9 @@ public sealed partial class HPOFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("ibm850"); encoding ??= Encoding.GetEncoding("ibm850");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var sb = new StringBuilder(); var sb = new StringBuilder();
@@ -193,13 +193,13 @@ public sealed partial class HPOFS
sb.AppendFormat(Localization.BIOS_drive_number_0, bpb.drive_no).AppendLine(); sb.AppendFormat(Localization.BIOS_drive_number_0, bpb.drive_no).AppendLine();
sb.AppendFormat(Localization.Serial_number_0, mib.serial).AppendLine(); sb.AppendFormat(Localization.Serial_number_0, mib.serial).AppendLine();
sb.AppendFormat(Localization.Volume_label_0, StringHandlers.SpacePaddedToString(mib.volumeLabel, Encoding)). sb.AppendFormat(Localization.Volume_label_0, StringHandlers.SpacePaddedToString(mib.volumeLabel, encoding)).
AppendLine(); AppendLine();
sb.AppendFormat(Localization.Volume_comment_0, StringHandlers.SpacePaddedToString(mib.comment, Encoding)). sb.AppendFormat(Localization.Volume_comment_0, StringHandlers.SpacePaddedToString(mib.comment, encoding)).
AppendLine(); AppendLine();
sb.AppendFormat(Localization.Volume_owner_0, StringHandlers.SpacePaddedToString(vib.owner, Encoding)). sb.AppendFormat(Localization.Volume_owner_0, StringHandlers.SpacePaddedToString(vib.owner, encoding)).
AppendLine(); AppendLine();
sb.AppendFormat(Localization.Volume_created_on_0, sb.AppendFormat(Localization.Volume_created_on_0,
@@ -219,9 +219,9 @@ public sealed partial class HPOFS
Clusters = mib.sectors / bpb.spc, Clusters = mib.sectors / bpb.spc,
ClusterSize = (uint)(bpb.bps * bpb.spc), ClusterSize = (uint)(bpb.bps * bpb.spc),
CreationDate = DateHandlers.DosToDateTime(mib.creationDate, mib.creationTime), CreationDate = DateHandlers.DosToDateTime(mib.creationDate, mib.creationTime),
DataPreparerIdentifier = StringHandlers.SpacePaddedToString(vib.owner, Encoding), DataPreparerIdentifier = StringHandlers.SpacePaddedToString(vib.owner, encoding),
Type = FS_TYPE, Type = FS_TYPE,
VolumeName = StringHandlers.SpacePaddedToString(mib.volumeLabel, Encoding), VolumeName = StringHandlers.SpacePaddedToString(mib.volumeLabel, encoding),
VolumeSerial = $"{mib.serial:X8}", VolumeSerial = $"{mib.serial:X8}",
SystemIdentifier = StringHandlers.SpacePaddedToString(bpb.oem_name) SystemIdentifier = StringHandlers.SpacePaddedToString(bpb.oem_name)
}; };

View File

@@ -57,9 +57,8 @@ public sealed partial class ISO9660 : IReadOnlyFilesystem
bool _usePathTable; bool _usePathTable;
bool _useTransTbl; bool _useTransTbl;
ushort _blockSize; ushort _blockSize;
Encoding Encoding;
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public FileSystem Metadata { get; private set; } public FileSystem Metadata { get; private set; }
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -87,9 +87,9 @@ public sealed partial class ISO9660
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.ASCII; encoding ??= Encoding.ASCII;
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var isoMetadata = new StringBuilder(); var isoMetadata = new StringBuilder();
byte[] vdMagic = new byte[5]; // Volume Descriptor magic "CD001" byte[] vdMagic = new byte[5]; // Volume Descriptor magic "CD001"
byte[] hsMagic = new byte[5]; // Volume Descriptor magic "CDROM" byte[] hsMagic = new byte[5]; // Volume Descriptor magic "CDROM"
@@ -120,7 +120,7 @@ public sealed partial class ISO9660
int xaOff = vdSector.Length == 2336 ? 8 : 0; int xaOff = vdSector.Length == 2336 ? 8 : 0;
Array.Copy(vdSector, 0x009 + xaOff, hsMagic, 0, 5); Array.Copy(vdSector, 0x009 + xaOff, hsMagic, 0, 5);
bool highSierraInfo = Encoding.GetString(hsMagic) == HIGH_SIERRA_MAGIC; bool highSierraInfo = encoding.GetString(hsMagic) == HIGH_SIERRA_MAGIC;
int hsOff = 0; int hsOff = 0;
if(highSierraInfo) if(highSierraInfo)
@@ -158,9 +158,9 @@ public sealed partial class ISO9660
Array.Copy(vdSector, 0x001, vdMagic, 0, 5); Array.Copy(vdSector, 0x001, vdMagic, 0, 5);
Array.Copy(vdSector, 0x009, hsMagic, 0, 5); Array.Copy(vdSector, 0x009, hsMagic, 0, 5);
if(Encoding.GetString(vdMagic) != ISO_MAGIC && if(encoding.GetString(vdMagic) != ISO_MAGIC &&
Encoding.GetString(hsMagic) != HIGH_SIERRA_MAGIC && encoding.GetString(hsMagic) != HIGH_SIERRA_MAGIC &&
Encoding.GetString(vdMagic) != CDI_MAGIC) // Recognized, it is an ISO9660, now check for rest of data. encoding.GetString(vdMagic) != CDI_MAGIC) // Recognized, it is an ISO9660, now check for rest of data.
{ {
if(counter == 0) if(counter == 0)
return; return;
@@ -168,7 +168,7 @@ public sealed partial class ISO9660
break; break;
} }
cdiInfo |= Encoding.GetString(vdMagic) == CDI_MAGIC; cdiInfo |= encoding.GetString(vdMagic) == CDI_MAGIC;
switch(vdType) switch(vdType)
{ {
@@ -178,7 +178,7 @@ public sealed partial class ISO9660
bootSpec = Localization.Unknown_specification; bootSpec = Localization.Unknown_specification;
if(Encoding.GetString(bvd.Value.system_id)[..23] == "EL TORITO SPECIFICATION") if(encoding.GetString(bvd.Value.system_id)[..23] == "EL TORITO SPECIFICATION")
{ {
bootSpec = "El Torito"; bootSpec = "El Torito";
@@ -520,11 +520,11 @@ public sealed partial class ISO9660
foreach(byte[] erb in refareas) foreach(byte[] erb in refareas)
{ {
ReferenceArea er = Marshal.ByteArrayToStructureBigEndian<ReferenceArea>(erb); ReferenceArea er = Marshal.ByteArrayToStructureBigEndian<ReferenceArea>(erb);
string extId = Encoding.GetString(erb, Marshal.SizeOf<ReferenceArea>(), er.id_len); string extId = encoding.GetString(erb, Marshal.SizeOf<ReferenceArea>(), er.id_len);
string extDes = Encoding.GetString(erb, Marshal.SizeOf<ReferenceArea>() + er.id_len, er.des_len); string extDes = encoding.GetString(erb, Marshal.SizeOf<ReferenceArea>() + er.id_len, er.des_len);
string extSrc = Encoding.GetString(erb, Marshal.SizeOf<ReferenceArea>() + er.id_len + er.des_len, string extSrc = encoding.GetString(erb, Marshal.SizeOf<ReferenceArea>() + er.id_len + er.des_len,
er.src_len); er.src_len);
suspInformation.AppendFormat(Localization.Extension_0, counter).AppendLine(); suspInformation.AppendFormat(Localization.Extension_0, counter).AppendLine();
@@ -730,7 +730,7 @@ public sealed partial class ISO9660
isoMetadata.AppendLine(Localization.Initial_entry); isoMetadata.AppendLine(Localization.Initial_entry);
isoMetadata.AppendFormat("\t" + Localization.Developer_ID_0, Encoding.GetString(valentry.developer_id)). isoMetadata.AppendFormat("\t" + Localization.Developer_ID_0, encoding.GetString(valentry.developer_id)).
AppendLine(); AppendLine();
if(initialEntry.bootable == ElToritoIndicator.Bootable) if(initialEntry.bootable == ElToritoIndicator.Bootable)
@@ -799,7 +799,7 @@ public sealed partial class ISO9660
isoMetadata.AppendFormat(Localization.Boot_section_0, sectionCounter); isoMetadata.AppendFormat(Localization.Boot_section_0, sectionCounter);
isoMetadata. isoMetadata.
AppendFormat("\t" + Localization.Section_ID_0, Encoding.GetString(sectionHeader.identifier)). AppendFormat("\t" + Localization.Section_ID_0, encoding.GetString(sectionHeader.identifier)).
AppendLine(); AppendLine();
for(int entryCounter = 1; entryCounter <= sectionHeader.entries && toritoOff < vdSector.Length; for(int entryCounter = 1; entryCounter <= sectionHeader.entries && toritoOff < vdSector.Length;

View File

@@ -66,9 +66,9 @@ public sealed partial class JFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15"); encoding ??= Encoding.GetEncoding("iso-8859-15");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var sb = new StringBuilder(); var sb = new StringBuilder();
uint bootSectors = JFS_BOOT_BLOCKS_SIZE / imagePlugin.Info.SectorSize; uint bootSectors = JFS_BOOT_BLOCKS_SIZE / imagePlugin.Info.SectorSize;
ErrorNumber errno = imagePlugin.ReadSector(partition.Start + bootSectors, out byte[] sector); ErrorNumber errno = imagePlugin.ReadSector(partition.Start + bootSectors, out byte[] sector);
@@ -162,9 +162,9 @@ public sealed partial class JFS
DateHandlers.UnixUnsignedToDateTime(jfsSb.s_time.tv_sec, jfsSb.s_time.tv_nsec)).AppendLine(); DateHandlers.UnixUnsignedToDateTime(jfsSb.s_time.tv_sec, jfsSb.s_time.tv_nsec)).AppendLine();
if(jfsSb.s_version == 1) if(jfsSb.s_version == 1)
sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(jfsSb.s_fpack, Encoding)).AppendLine(); sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(jfsSb.s_fpack, encoding)).AppendLine();
else else
sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(jfsSb.s_label, Encoding)).AppendLine(); sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(jfsSb.s_label, encoding)).AppendLine();
sb.AppendFormat(Localization.Volume_UUID_0, jfsSb.s_uuid).AppendLine(); sb.AppendFormat(Localization.Volume_UUID_0, jfsSb.s_uuid).AppendLine();
@@ -174,7 +174,7 @@ public sealed partial class JFS
Clusters = jfsSb.s_size, Clusters = jfsSb.s_size,
ClusterSize = jfsSb.s_bsize, ClusterSize = jfsSb.s_bsize,
Bootable = true, Bootable = true,
VolumeName = StringHandlers.CToString(jfsSb.s_version == 1 ? jfsSb.s_fpack : jfsSb.s_label, Encoding), VolumeName = StringHandlers.CToString(jfsSb.s_version == 1 ? jfsSb.s_fpack : jfsSb.s_label, encoding),
VolumeSerial = $"{jfsSb.s_uuid}", VolumeSerial = $"{jfsSb.s_uuid}",
ModificationDate = DateHandlers.UnixUnsignedToDateTime(jfsSb.s_time.tv_sec, jfsSb.s_time.tv_nsec) ModificationDate = DateHandlers.UnixUnsignedToDateTime(jfsSb.s_time.tv_sec, jfsSb.s_time.tv_nsec)
}; };

View File

@@ -29,7 +29,6 @@
// ReSharper disable UnusedMember.Local // ReSharper disable UnusedMember.Local
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -38,8 +37,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of IBM's Journaled File System</summary> /// <summary>Implements detection of IBM's Journaled File System</summary>
public sealed partial class JFS : IFilesystem public sealed partial class JFS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.JFS_Name; public string Name => Localization.JFS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -62,9 +62,9 @@ public sealed partial class LIF
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15"); encoding ??= Encoding.GetEncoding("iso-8859-15");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
if(imagePlugin.Info.SectorSize < 256) if(imagePlugin.Info.SectorSize < 256)
return; return;
@@ -91,7 +91,7 @@ public sealed partial class LIF
sb.AppendFormat(Localization._0_tracks, lifSb.tracks).AppendLine(); sb.AppendFormat(Localization._0_tracks, lifSb.tracks).AppendLine();
sb.AppendFormat(Localization._0_heads, lifSb.heads).AppendLine(); sb.AppendFormat(Localization._0_heads, lifSb.heads).AppendLine();
sb.AppendFormat(Localization._0_sectors, lifSb.sectors).AppendLine(); sb.AppendFormat(Localization._0_sectors, lifSb.sectors).AppendLine();
sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(lifSb.volumeLabel, Encoding)).AppendLine(); sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(lifSb.volumeLabel, encoding)).AppendLine();
sb.AppendFormat(Localization.Volume_created_on_0, DateHandlers.LifToDateTime(lifSb.creationDate)).AppendLine(); sb.AppendFormat(Localization.Volume_created_on_0, DateHandlers.LifToDateTime(lifSb.creationDate)).AppendLine();
information = sb.ToString(); information = sb.ToString();
@@ -102,7 +102,7 @@ public sealed partial class LIF
ClusterSize = 256, ClusterSize = 256,
Clusters = partition.Size / 256, Clusters = partition.Size / 256,
CreationDate = DateHandlers.LifToDateTime(lifSb.creationDate), CreationDate = DateHandlers.LifToDateTime(lifSb.creationDate),
VolumeName = StringHandlers.CToString(lifSb.volumeLabel, Encoding) VolumeName = StringHandlers.CToString(lifSb.volumeLabel, encoding)
}; };
} }
} }

View File

@@ -27,7 +27,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -37,8 +36,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of the LIF filesystem</summary> /// <summary>Implements detection of the LIF filesystem</summary>
public sealed partial class LIF : IFilesystem public sealed partial class LIF : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.LIF_Name; public string Name => Localization.LIF_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -92,7 +92,7 @@ public sealed partial class LisaFS
// Do same trick as Mac OS X, replace filesystem '/' with '-', // Do same trick as Mac OS X, replace filesystem '/' with '-',
// as '-' is the path separator in Lisa OS // as '-' is the path separator in Lisa OS
contents = (from entry in _catalogCache where entry.parentID == dirId contents = (from entry in _catalogCache where entry.parentID == dirId
select StringHandlers.CToString(entry.filename, Encoding).Replace('/', '-')).ToList(); select StringHandlers.CToString(entry.filename, _encoding).Replace('/', '-')).ToList();
/// <summary>Reads, interprets and caches the Catalog File</summary> /// <summary>Reads, interprets and caches the Catalog File</summary>
ErrorNumber ReadCatalog() ErrorNumber ReadCatalog()

View File

@@ -217,7 +217,7 @@ public sealed partial class LisaFS
AaruConsole.DebugWriteLine("LisaFS plugin", "ExtentFile[{0}].filenameLen = {1}", fileId, file.filenameLen); AaruConsole.DebugWriteLine("LisaFS plugin", "ExtentFile[{0}].filenameLen = {1}", fileId, file.filenameLen);
AaruConsole.DebugWriteLine("LisaFS plugin", "ExtentFile[{0}].filename = {1}", fileId, AaruConsole.DebugWriteLine("LisaFS plugin", "ExtentFile[{0}].filename = {1}", fileId,
StringHandlers.CToString(file.filename, Encoding)); StringHandlers.CToString(file.filename, _encoding));
AaruConsole.DebugWriteLine("LisaFS plugin", "ExtentFile[{0}].unknown1 = 0x{1:X4}", fileId, file.unknown1); AaruConsole.DebugWriteLine("LisaFS plugin", "ExtentFile[{0}].unknown1 = 0x{1:X4}", fileId, file.unknown1);
AaruConsole.DebugWriteLine("LisaFS plugin", "ExtentFile[{0}].file_uid = 0x{1:X16}", fileId, file.file_uid); AaruConsole.DebugWriteLine("LisaFS plugin", "ExtentFile[{0}].file_uid = 0x{1:X16}", fileId, file.file_uid);
@@ -257,7 +257,7 @@ public sealed partial class LisaFS
file.password_valid > 0); file.password_valid > 0);
AaruConsole.DebugWriteLine("LisaFS plugin", "ExtentFile[{0}].password = {1}", fileId, AaruConsole.DebugWriteLine("LisaFS plugin", "ExtentFile[{0}].password = {1}", fileId,
Encoding.GetString(file.password)); _encoding.GetString(file.password));
AaruConsole.DebugWriteLine("LisaFS plugin", "ExtentFile[{0}].unknown7 = 0x{1:X2}{2:X2}{3:X2}", fileId, AaruConsole.DebugWriteLine("LisaFS plugin", "ExtentFile[{0}].unknown7 = 0x{1:X2}{2:X2}{3:X2}", fileId,
file.unknown7[0], file.unknown7[1], file.unknown7[2]); file.unknown7[0], file.unknown7[1], file.unknown7[2]);

View File

@@ -523,7 +523,7 @@ public sealed partial class LisaFS
foreach(CatalogEntry entry in _catalogCache) foreach(CatalogEntry entry in _catalogCache)
{ {
string filename = StringHandlers.CToString(entry.filename, Encoding); string filename = StringHandlers.CToString(entry.filename, _encoding);
// LisaOS is case insensitive // LisaOS is case insensitive
if(string.Compare(wantedFilename, filename, StringComparison.InvariantCultureIgnoreCase) != 0 || if(string.Compare(wantedFilename, filename, StringComparison.InvariantCultureIgnoreCase) != 0 ||

View File

@@ -129,7 +129,7 @@ public sealed partial class LisaFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = new LisaRoman(); _encoding = new LisaRoman();
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var sb = new StringBuilder(); var sb = new StringBuilder();
@@ -174,12 +174,12 @@ public sealed partial class LisaFS
infoMddf.volid = BigEndianBitConverter.ToUInt64(sector, 0x02); infoMddf.volid = BigEndianBitConverter.ToUInt64(sector, 0x02);
infoMddf.volnum = BigEndianBitConverter.ToUInt16(sector, 0x0A); infoMddf.volnum = BigEndianBitConverter.ToUInt16(sector, 0x0A);
Array.Copy(sector, 0x0C, pString, 0, 33); Array.Copy(sector, 0x0C, pString, 0, 33);
infoMddf.volname = StringHandlers.PascalToString(pString, Encoding); infoMddf.volname = StringHandlers.PascalToString(pString, encoding);
infoMddf.unknown1 = sector[0x2D]; infoMddf.unknown1 = sector[0x2D];
Array.Copy(sector, 0x2E, pString, 0, 33); Array.Copy(sector, 0x2E, pString, 0, 33);
// Prevent garbage // Prevent garbage
infoMddf.password = pString[0] <= 32 ? StringHandlers.PascalToString(pString, Encoding) : ""; infoMddf.password = pString[0] <= 32 ? StringHandlers.PascalToString(pString, encoding) : "";
infoMddf.unknown2 = sector[0x4F]; infoMddf.unknown2 = sector[0x4F];
infoMddf.machine_id = BigEndianBitConverter.ToUInt32(sector, 0x50); infoMddf.machine_id = BigEndianBitConverter.ToUInt32(sector, 0x50);
infoMddf.master_copy_id = BigEndianBitConverter.ToUInt32(sector, 0x54); infoMddf.master_copy_id = BigEndianBitConverter.ToUInt32(sector, 0x54);

View File

@@ -47,6 +47,7 @@ public sealed partial class LisaFS : IReadOnlyFilesystem
bool _mounted; bool _mounted;
SRecord[] _srecords; SRecord[] _srecords;
ulong _volumePrefix; ulong _volumePrefix;
Encoding _encoding;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Apple Lisa File System"; public string Name => "Apple Lisa File System";
@@ -55,8 +56,6 @@ public sealed partial class LisaFS : IReadOnlyFilesystem
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("7E6034D1-D823-4248-A54D-239742B28391"); public Guid Id => new("7E6034D1-D823-4248-A54D-239742B28391");
/// <inheritdoc /> /// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc />
public string Author => Authors.NataliaPortillo; public string Author => Authors.NataliaPortillo;
// TODO: Implement Lisa 7/7 namespace (needs decoding {!CATALOG} file) // TODO: Implement Lisa 7/7 namespace (needs decoding {!CATALOG} file)

View File

@@ -49,8 +49,8 @@ public sealed partial class LisaFS
{ {
try try
{ {
_device = imagePlugin; _device = imagePlugin;
Encoding = new LisaRoman(); _encoding = new LisaRoman();
// Lisa OS is unable to work on disks without tags. // Lisa OS is unable to work on disks without tags.
// This code is designed like that. // This code is designed like that.
@@ -105,12 +105,12 @@ public sealed partial class LisaFS
_mddf.volid = BigEndianBitConverter.ToUInt64(sector, 0x02); _mddf.volid = BigEndianBitConverter.ToUInt64(sector, 0x02);
_mddf.volnum = BigEndianBitConverter.ToUInt16(sector, 0x0A); _mddf.volnum = BigEndianBitConverter.ToUInt16(sector, 0x0A);
Array.Copy(sector, 0x0C, pString, 0, 33); Array.Copy(sector, 0x0C, pString, 0, 33);
_mddf.volname = StringHandlers.PascalToString(pString, Encoding); _mddf.volname = StringHandlers.PascalToString(pString, _encoding);
_mddf.unknown1 = sector[0x2D]; _mddf.unknown1 = sector[0x2D];
Array.Copy(sector, 0x2E, pString, 0, 33); Array.Copy(sector, 0x2E, pString, 0, 33);
// Prevent garbage // Prevent garbage
_mddf.password = pString[0] <= 32 ? StringHandlers.PascalToString(pString, Encoding) : ""; _mddf.password = pString[0] <= 32 ? StringHandlers.PascalToString(pString, _encoding) : "";
_mddf.unknown2 = sector[0x4F]; _mddf.unknown2 = sector[0x4F];
_mddf.machine_id = BigEndianBitConverter.ToUInt32(sector, 0x50); _mddf.machine_id = BigEndianBitConverter.ToUInt32(sector, 0x50);
_mddf.master_copy_id = BigEndianBitConverter.ToUInt32(sector, 0x54); _mddf.master_copy_id = BigEndianBitConverter.ToUInt32(sector, 0x54);

View File

@@ -103,9 +103,9 @@ public sealed partial class Locus
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15"); encoding ??= Encoding.GetEncoding("iso-8859-15");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
if(imagePlugin.Info.SectorSize < 512) if(imagePlugin.Info.SectorSize < 512)
return; return;
@@ -156,10 +156,10 @@ public sealed partial class Locus
int blockSize = locusSb.s_version == Version.SB_SB4096 ? 4096 : 1024; int blockSize = locusSb.s_version == Version.SB_SB4096 ? 4096 : 1024;
// ReSharper disable once InconsistentNaming // ReSharper disable once InconsistentNaming
string s_fsmnt = StringHandlers.CToString(locusSb.s_fsmnt, Encoding); string s_fsmnt = StringHandlers.CToString(locusSb.s_fsmnt, encoding);
// ReSharper disable once InconsistentNaming // ReSharper disable once InconsistentNaming
string s_fpack = StringHandlers.CToString(locusSb.s_fpack, Encoding); string s_fpack = StringHandlers.CToString(locusSb.s_fpack, encoding);
AaruConsole.DebugWriteLine("Locus plugin", "LocusSb.s_magic = 0x{0:X8}", locusSb.s_magic); AaruConsole.DebugWriteLine("Locus plugin", "LocusSb.s_magic = 0x{0:X8}", locusSb.s_magic);
AaruConsole.DebugWriteLine("Locus plugin", "LocusSb.s_gfs = {0}", locusSb.s_gfs); AaruConsole.DebugWriteLine("Locus plugin", "LocusSb.s_gfs = {0}", locusSb.s_gfs);

View File

@@ -29,7 +29,6 @@
// Commit count // Commit count
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
using commitcnt_t = System.Int32; using commitcnt_t = System.Int32;
@@ -60,8 +59,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of the Locus filesystem</summary> /// <summary>Implements detection of the Locus filesystem</summary>
public sealed partial class Locus : IFilesystem public sealed partial class Locus : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.Locus_Name; public string Name => Localization.Locus_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -68,7 +68,6 @@ public sealed partial class MicroDOS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("koi8-r");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();

View File

@@ -30,7 +30,6 @@
// ReSharper disable UnusedMember.Local // ReSharper disable UnusedMember.Local
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -42,8 +41,6 @@ namespace Aaru.Filesystems;
/// </summary> /// </summary>
public sealed partial class MicroDOS : IFilesystem public sealed partial class MicroDOS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.MicroDOS_Name; public string Name => Localization.MicroDOS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -84,7 +84,6 @@ public sealed partial class MinixFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();

View File

@@ -27,7 +27,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -37,8 +36,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of the MINIX filesystem</summary> /// <summary>Implements detection of the MINIX filesystem</summary>
public sealed partial class MinixFS : IFilesystem public sealed partial class MinixFS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.MinixFS_Name; public string Name => Localization.MinixFS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -77,9 +77,9 @@ public sealed partial class NILFS2
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.UTF8; encoding ??= Encoding.UTF8;
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
if(imagePlugin.Info.SectorSize < 512) if(imagePlugin.Info.SectorSize < 512)
return; return;
@@ -124,7 +124,7 @@ public sealed partial class NILFS2
sb.AppendFormat(Localization._0_bytes_per_inode, nilfsSb.inode_size).AppendLine(); sb.AppendFormat(Localization._0_bytes_per_inode, nilfsSb.inode_size).AppendLine();
sb.AppendFormat(Localization.Volume_UUID_0, nilfsSb.uuid).AppendLine(); sb.AppendFormat(Localization.Volume_UUID_0, nilfsSb.uuid).AppendLine();
sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(nilfsSb.volume_name, Encoding)). sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(nilfsSb.volume_name, encoding)).
AppendLine(); AppendLine();
sb.AppendFormat(Localization.Volume_created_on_0, DateHandlers.UnixUnsignedToDateTime(nilfsSb.ctime)). sb.AppendFormat(Localization.Volume_created_on_0, DateHandlers.UnixUnsignedToDateTime(nilfsSb.ctime)).
@@ -142,7 +142,7 @@ public sealed partial class NILFS2
{ {
Type = FS_TYPE, Type = FS_TYPE,
ClusterSize = (uint)(1 << (int)(nilfsSb.log_block_size + 10)), ClusterSize = (uint)(1 << (int)(nilfsSb.log_block_size + 10)),
VolumeName = StringHandlers.CToString(nilfsSb.volume_name, Encoding), VolumeName = StringHandlers.CToString(nilfsSb.volume_name, encoding),
VolumeSerial = nilfsSb.uuid.ToString(), VolumeSerial = nilfsSb.uuid.ToString(),
CreationDate = DateHandlers.UnixUnsignedToDateTime(nilfsSb.ctime), CreationDate = DateHandlers.UnixUnsignedToDateTime(nilfsSb.ctime),
ModificationDate = DateHandlers.UnixUnsignedToDateTime(nilfsSb.wtime) ModificationDate = DateHandlers.UnixUnsignedToDateTime(nilfsSb.wtime)

View File

@@ -29,7 +29,6 @@
// ReSharper disable UnusedMember.Local // ReSharper disable UnusedMember.Local
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -38,8 +37,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of the New Implementation of a Log-structured File System v2</summary> /// <summary>Implements detection of the New Implementation of a Log-structured File System v2</summary>
public sealed partial class NILFS2 : IFilesystem public sealed partial class NILFS2 : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.NILFS2_Name; public string Name => Localization.NILFS2_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -78,7 +78,6 @@ public sealed partial class NTFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = Encoding.Unicode;
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();

View File

@@ -27,7 +27,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -37,8 +36,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of the New Technology File System (NTFS)</summary> /// <summary>Implements detection of the New Technology File System (NTFS)</summary>
public sealed partial class NTFS : IFilesystem public sealed partial class NTFS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.NTFS_Name; public string Name => Localization.NTFS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -65,7 +65,7 @@ public sealed partial class NintendoPlugin
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("shift_jis"); encoding ??= Encoding.GetEncoding("shift_jis");
var sbInformation = new StringBuilder(); var sbInformation = new StringBuilder();
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
@@ -98,7 +98,7 @@ public sealed partial class NintendoPlugin
fields.StreamBufferSize = header[9]; fields.StreamBufferSize = header[9];
byte[] temp = new byte[64]; byte[] temp = new byte[64];
Array.Copy(header, 0x20, temp, 0, 64); Array.Copy(header, 0x20, temp, 0, 64);
fields.Title = StringHandlers.CToString(temp, Encoding); fields.Title = StringHandlers.CToString(temp, encoding);
if(!wii) if(!wii)
{ {

View File

@@ -27,7 +27,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -36,8 +35,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of the filesystem used by Nintendo Gamecube and Wii discs</summary> /// <summary>Implements detection of the filesystem used by Nintendo Gamecube and Wii discs</summary>
public sealed partial class NintendoPlugin : IFilesystem public sealed partial class NintendoPlugin : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.NintendoPlugin_Name; public string Name => Localization.NintendoPlugin_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -101,9 +101,9 @@ public sealed partial class ODS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-1"); encoding ??= Encoding.GetEncoding("iso-8859-1");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var sb = new StringBuilder(); var sb = new StringBuilder();
@@ -147,7 +147,7 @@ public sealed partial class ODS
sb.AppendLine(Localization.This_volume_may_be_corrupted); sb.AppendLine(Localization.This_volume_may_be_corrupted);
sb.AppendFormat(Localization.Volume_format_is_0, sb.AppendFormat(Localization.Volume_format_is_0,
StringHandlers.SpacePaddedToString(homeblock.format, Encoding)).AppendLine(); StringHandlers.SpacePaddedToString(homeblock.format, encoding)).AppendLine();
sb.AppendFormat(Localization.Volume_is_Level_0_revision_1, (homeblock.struclev & 0xFF00) >> 8, sb.AppendFormat(Localization.Volume_is_Level_0_revision_1, (homeblock.struclev & 0xFF00) >> 8,
homeblock.struclev & 0xFF).AppendLine(); homeblock.struclev & 0xFF).AppendLine();
@@ -182,13 +182,13 @@ public sealed partial class ODS
if(homeblock is { rvn: > 0, setcount: > 0 } && if(homeblock is { rvn: > 0, setcount: > 0 } &&
StringHandlers.CToString(homeblock.strucname) != " ") StringHandlers.CToString(homeblock.strucname) != " ")
sb.AppendFormat(Localization.Volume_is_0_of_1_in_set_2, homeblock.rvn, homeblock.setcount, sb.AppendFormat(Localization.Volume_is_0_of_1_in_set_2, homeblock.rvn, homeblock.setcount,
StringHandlers.SpacePaddedToString(homeblock.strucname, Encoding)).AppendLine(); StringHandlers.SpacePaddedToString(homeblock.strucname, encoding)).AppendLine();
sb.AppendFormat(Localization.Volume_owner_is_0_ID_1, sb.AppendFormat(Localization.Volume_owner_is_0_ID_1,
StringHandlers.SpacePaddedToString(homeblock.ownername, Encoding), homeblock.volowner). StringHandlers.SpacePaddedToString(homeblock.ownername, encoding), homeblock.volowner).
AppendLine(); AppendLine();
sb.AppendFormat(Localization.Volume_label_0, StringHandlers.SpacePaddedToString(homeblock.volname, Encoding)). sb.AppendFormat(Localization.Volume_label_0, StringHandlers.SpacePaddedToString(homeblock.volname, encoding)).
AppendLine(); AppendLine();
sb.AppendFormat(Localization.Drive_serial_number_0, homeblock.serialnum).AppendLine(); sb.AppendFormat(Localization.Drive_serial_number_0, homeblock.serialnum).AppendLine();
@@ -264,7 +264,7 @@ public sealed partial class ODS
Type = FS_TYPE, Type = FS_TYPE,
ClusterSize = (uint)(homeblock.cluster * 512), ClusterSize = (uint)(homeblock.cluster * 512),
Clusters = partition.Size / (ulong)(homeblock.cluster * 512), Clusters = partition.Size / (ulong)(homeblock.cluster * 512),
VolumeName = StringHandlers.SpacePaddedToString(homeblock.volname, Encoding), VolumeName = StringHandlers.SpacePaddedToString(homeblock.volname, encoding),
VolumeSerial = $"{homeblock.serialnum:X8}" VolumeSerial = $"{homeblock.serialnum:X8}"
}; };

View File

@@ -31,7 +31,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -49,8 +48,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of DEC's On-Disk Structure, aka the ODS filesystem</summary> /// <summary>Implements detection of DEC's On-Disk Structure, aka the ODS filesystem</summary>
public sealed partial class ODS : IFilesystem public sealed partial class ODS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.ODS_Name; public string Name => Localization.ODS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -136,7 +136,7 @@ public sealed partial class OperaFS
while(off + _directoryEntrySize < data.Length) while(off + _directoryEntrySize < data.Length)
{ {
entry = Marshal.ByteArrayToStructureBigEndian<DirectoryEntry>(data, off, _directoryEntrySize); entry = Marshal.ByteArrayToStructureBigEndian<DirectoryEntry>(data, off, _directoryEntrySize);
string name = StringHandlers.CToString(entry.name, Encoding); string name = StringHandlers.CToString(entry.name, _encoding);
var entryWithPointers = new DirectoryEntryWithPointers var entryWithPointers = new DirectoryEntryWithPointers
{ {

View File

@@ -67,7 +67,7 @@ public sealed partial class OperaFS
out FileSystem metadata) out FileSystem metadata)
{ {
// TODO: Find correct default encoding // TODO: Find correct default encoding
Encoding = Encoding.ASCII; encoding = Encoding.ASCII;
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var superBlockmetadata = new StringBuilder(); var superBlockmetadata = new StringBuilder();
@@ -88,14 +88,14 @@ public sealed partial class OperaFS
superBlockmetadata.AppendFormat(Localization.Opera_filesystem_disc).AppendLine(); superBlockmetadata.AppendFormat(Localization.Opera_filesystem_disc).AppendLine();
if(!string.IsNullOrEmpty(StringHandlers.CToString(sb.volume_label, Encoding))) if(!string.IsNullOrEmpty(StringHandlers.CToString(sb.volume_label, encoding)))
superBlockmetadata. superBlockmetadata.
AppendFormat(Localization.Volume_label_0, StringHandlers.CToString(sb.volume_label, Encoding)). AppendFormat(Localization.Volume_label_0, StringHandlers.CToString(sb.volume_label, encoding)).
AppendLine(); AppendLine();
if(!string.IsNullOrEmpty(StringHandlers.CToString(sb.volume_comment, Encoding))) if(!string.IsNullOrEmpty(StringHandlers.CToString(sb.volume_comment, encoding)))
superBlockmetadata. superBlockmetadata.
AppendFormat(Localization.Volume_comment_0, StringHandlers.CToString(sb.volume_comment, Encoding)). AppendFormat(Localization.Volume_comment_0, StringHandlers.CToString(sb.volume_comment, encoding)).
AppendLine(); AppendLine();
superBlockmetadata.AppendFormat(Localization.Volume_identifier_0_X8, sb.volume_id).AppendLine(); superBlockmetadata.AppendFormat(Localization.Volume_identifier_0_X8, sb.volume_id).AppendLine();
@@ -135,7 +135,7 @@ public sealed partial class OperaFS
metadata = new FileSystem metadata = new FileSystem
{ {
Type = FS_TYPE, Type = FS_TYPE,
VolumeName = StringHandlers.CToString(sb.volume_label, Encoding), VolumeName = StringHandlers.CToString(sb.volume_label, encoding),
ClusterSize = sb.block_size, ClusterSize = sb.block_size,
Clusters = sb.block_count Clusters = sb.block_count
}; };

View File

@@ -47,9 +47,8 @@ public sealed partial class OperaFS : IReadOnlyFilesystem
Dictionary<string, DirectoryEntryWithPointers> _rootDirectoryCache; Dictionary<string, DirectoryEntryWithPointers> _rootDirectoryCache;
FileSystemInfo _statfs; FileSystemInfo _statfs;
uint _volumeBlockSizeRatio; uint _volumeBlockSizeRatio;
Encoding _encoding;
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public FileSystem Metadata { get; private set; } public FileSystem Metadata { get; private set; }
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -44,7 +44,7 @@ public sealed partial class OperaFS
Dictionary<string, string> options, string @namespace) Dictionary<string, string> options, string @namespace)
{ {
// TODO: Find correct default encoding // TODO: Find correct default encoding
Encoding = Encoding.ASCII; _encoding = Encoding.ASCII;
options ??= GetDefaultOptions(); options ??= GetDefaultOptions();
@@ -73,7 +73,7 @@ public sealed partial class OperaFS
Metadata = new FileSystem Metadata = new FileSystem
{ {
Type = FS_TYPE, Type = FS_TYPE,
VolumeName = StringHandlers.CToString(sb.volume_label, Encoding), VolumeName = StringHandlers.CToString(sb.volume_label, _encoding),
ClusterSize = sb.block_size, ClusterSize = sb.block_size,
Clusters = sb.block_count, Clusters = sb.block_count,
Bootable = true, Bootable = true,

View File

@@ -64,7 +64,6 @@ public sealed partial class PCEnginePlugin
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("shift_jis");
information = ""; information = "";
metadata = new FileSystem metadata = new FileSystem

View File

@@ -31,7 +31,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -40,8 +39,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of the PC-Engine CD file headers</summary> /// <summary>Implements detection of the PC-Engine CD file headers</summary>
public sealed partial class PCEnginePlugin : IFilesystem public sealed partial class PCEnginePlugin : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.PCEnginePlugin_Name; public string Name => Localization.PCEnginePlugin_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -67,7 +67,7 @@ public sealed partial class PCFX
out FileSystem metadata) out FileSystem metadata)
{ {
// Always Shift-JIS // Always Shift-JIS
Encoding = Encoding.GetEncoding("shift_jis"); encoding = Encoding.GetEncoding("shift_jis");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
@@ -83,7 +83,7 @@ public sealed partial class PCFX
try try
{ {
date = Encoding.GetString(header.date); date = encoding.GetString(header.date);
int year = int.Parse(date[..4]); int year = int.Parse(date[..4]);
int month = int.Parse(date.Substring(4, 2)); int month = int.Parse(date.Substring(4, 2));
int day = int.Parse(date.Substring(6, 2)); int day = int.Parse(date.Substring(6, 2));
@@ -96,11 +96,11 @@ public sealed partial class PCFX
var sb = new StringBuilder(); var sb = new StringBuilder();
sb.AppendLine(Localization.PC_FX_executable); sb.AppendLine(Localization.PC_FX_executable);
sb.AppendFormat(Localization.Identifier_0, StringHandlers.CToString(header.signature, Encoding)).AppendLine(); sb.AppendFormat(Localization.Identifier_0, StringHandlers.CToString(header.signature, encoding)).AppendLine();
sb.AppendFormat(Localization.Copyright_0, StringHandlers.CToString(header.copyright, Encoding)).AppendLine(); sb.AppendFormat(Localization.Copyright_0, StringHandlers.CToString(header.copyright, encoding)).AppendLine();
sb.AppendFormat(Localization.Title_0, StringHandlers.CToString(header.title, Encoding)).AppendLine(); sb.AppendFormat(Localization.Title_0, StringHandlers.CToString(header.title, encoding)).AppendLine();
sb.AppendFormat(Localization.Maker_ID_0, StringHandlers.CToString(header.makerId, Encoding)).AppendLine(); sb.AppendFormat(Localization.Maker_ID_0, StringHandlers.CToString(header.makerId, encoding)).AppendLine();
sb.AppendFormat(Localization.Maker_name_0, StringHandlers.CToString(header.makerName, Encoding)).AppendLine(); sb.AppendFormat(Localization.Maker_name_0, StringHandlers.CToString(header.makerName, encoding)).AppendLine();
sb.AppendFormat(Localization.Volume_number_0, header.volumeNumber).AppendLine(); sb.AppendFormat(Localization.Volume_number_0, header.volumeNumber).AppendLine();
sb.AppendFormat(Localization.Country_code_0, header.country).AppendLine(); sb.AppendFormat(Localization.Country_code_0, header.country).AppendLine();
sb.AppendFormat(Localization.Version_0_1, header.minorVersion, header.majorVersion).AppendLine(); sb.AppendFormat(Localization.Version_0_1, header.minorVersion, header.majorVersion).AppendLine();
@@ -121,8 +121,8 @@ public sealed partial class PCFX
ClusterSize = 2048, ClusterSize = 2048,
Bootable = true, Bootable = true,
CreationDate = date != null ? dateTime : null, CreationDate = date != null ? dateTime : null,
PublisherIdentifier = StringHandlers.CToString(header.makerName, Encoding), PublisherIdentifier = StringHandlers.CToString(header.makerName, encoding),
VolumeName = StringHandlers.CToString(header.title, Encoding), VolumeName = StringHandlers.CToString(header.title, encoding),
SystemIdentifier = "PC-FX" SystemIdentifier = "PC-FX"
}; };
} }

View File

@@ -31,7 +31,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -41,8 +40,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of NEC PC-FX headers</summary> /// <summary>Implements detection of NEC PC-FX headers</summary>
public sealed partial class PCFX : IFilesystem public sealed partial class PCFX : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.PCFX_Name; public string Name => Localization.PCFX_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -61,9 +61,9 @@ public sealed partial class PFS
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
information = ""; information = "";
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-1"); encoding ??= Encoding.GetEncoding("iso-8859-1");
metadata = new FileSystem(); metadata = new FileSystem();
ErrorNumber errno = imagePlugin.ReadSector(2 + partition.Start, out byte[] rootBlockSector); ErrorNumber errno = imagePlugin.ReadSector(2 + partition.Start, out byte[] rootBlockSector);
if(errno != ErrorNumber.NoError) if(errno != ErrorNumber.NoError)
@@ -101,7 +101,7 @@ public sealed partial class PFS
sbInformation.AppendLine(); sbInformation.AppendLine();
sbInformation. sbInformation.
AppendFormat(Localization.Volume_name_0, StringHandlers.PascalToString(rootBlock.diskname, Encoding)). AppendFormat(Localization.Volume_name_0, StringHandlers.PascalToString(rootBlock.diskname, encoding)).
AppendLine(); AppendLine();
sbInformation. sbInformation.
@@ -124,6 +124,6 @@ public sealed partial class PFS
metadata.FreeClusters = rootBlock.blocksfree; metadata.FreeClusters = rootBlock.blocksfree;
metadata.Clusters = rootBlock.diskSize; metadata.Clusters = rootBlock.diskSize;
metadata.ClusterSize = imagePlugin.Info.SectorSize; metadata.ClusterSize = imagePlugin.Info.SectorSize;
metadata.VolumeName = StringHandlers.PascalToString(rootBlock.diskname, Encoding); metadata.VolumeName = StringHandlers.PascalToString(rootBlock.diskname, encoding);
} }
} }

View File

@@ -29,7 +29,6 @@
// ReSharper disable UnusedType.Local // ReSharper disable UnusedType.Local
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -38,8 +37,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of the Professional File System</summary> /// <summary>Implements detection of the Professional File System</summary>
public sealed partial class PFS : IFilesystem public sealed partial class PFS : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.PFS_Name; public string Name => Localization.PFS_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -131,9 +131,9 @@ public sealed partial class ProDOSPlugin
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? new Apple2c(); encoding ??= new Apple2c();
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var sbInformation = new StringBuilder(); var sbInformation = new StringBuilder();
uint multiplier = (uint)(imagePlugin.Info.SectorSize == 256 ? 2 : 1); uint multiplier = (uint)(imagePlugin.Info.SectorSize == 256 ? 2 : 1);
@@ -179,7 +179,7 @@ public sealed partial class ProDOSPlugin
rootDirectoryKeyBlock.header.name_length = (byte)(rootDirectoryKeyBlockBytes[0x04] & NAME_LENGTH_MASK); rootDirectoryKeyBlock.header.name_length = (byte)(rootDirectoryKeyBlockBytes[0x04] & NAME_LENGTH_MASK);
byte[] temporal = new byte[rootDirectoryKeyBlock.header.name_length]; byte[] temporal = new byte[rootDirectoryKeyBlock.header.name_length];
Array.Copy(rootDirectoryKeyBlockBytes, 0x05, temporal, 0, rootDirectoryKeyBlock.header.name_length); Array.Copy(rootDirectoryKeyBlockBytes, 0x05, temporal, 0, rootDirectoryKeyBlock.header.name_length);
rootDirectoryKeyBlock.header.volume_name = Encoding.GetString(temporal); rootDirectoryKeyBlock.header.volume_name = encoding.GetString(temporal);
rootDirectoryKeyBlock.header.reserved = BitConverter.ToUInt64(rootDirectoryKeyBlockBytes, 0x14); rootDirectoryKeyBlock.header.reserved = BitConverter.ToUInt64(rootDirectoryKeyBlockBytes, 0x14);
ushort tempTimestampLeft = BitConverter.ToUInt16(rootDirectoryKeyBlockBytes, 0x1C); ushort tempTimestampLeft = BitConverter.ToUInt16(rootDirectoryKeyBlockBytes, 0x1C);

View File

@@ -30,7 +30,6 @@
using System; using System;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -41,8 +40,6 @@ namespace Aaru.Filesystems;
[SuppressMessage("ReSharper", "UnusedMember.Local"), SuppressMessage("ReSharper", "UnusedType.Local")] [SuppressMessage("ReSharper", "UnusedMember.Local"), SuppressMessage("ReSharper", "UnusedType.Local")]
public sealed partial class ProDOSPlugin : IFilesystem public sealed partial class ProDOSPlugin : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.ProDOSPlugin_Name; public string Name => Localization.ProDOSPlugin_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -87,7 +87,6 @@ public sealed partial class QNX4
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
ErrorNumber errno = imagePlugin.ReadSector(partition.Start + 1, out byte[] sector); ErrorNumber errno = imagePlugin.ReadSector(partition.Start + 1, out byte[] sector);

View File

@@ -28,7 +28,6 @@
using System; using System;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -38,8 +37,6 @@ namespace Aaru.Filesystems;
[SuppressMessage("ReSharper", "UnusedType.Local")] [SuppressMessage("ReSharper", "UnusedType.Local")]
public sealed partial class QNX4 : IFilesystem public sealed partial class QNX4 : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.QNX4_Name; public string Name => Localization.QNX4_Name;
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -72,7 +72,6 @@ public sealed partial class QNX6
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata) out FileSystem metadata)
{ {
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15");
information = ""; information = "";
metadata = new FileSystem(); metadata = new FileSystem();
var sb = new StringBuilder(); var sb = new StringBuilder();

View File

@@ -27,7 +27,6 @@
// ****************************************************************************/ // ****************************************************************************/
using System; using System;
using System.Text;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems; namespace Aaru.Filesystems;
@@ -36,8 +35,6 @@ namespace Aaru.Filesystems;
/// <summary>Implements detection of QNX 6 filesystem</summary> /// <summary>Implements detection of QNX 6 filesystem</summary>
public sealed partial class QNX6 : IFilesystem public sealed partial class QNX6 : IFilesystem
{ {
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public string Name => Localization.QNX6_Name; public string Name => Localization.QNX6_Name;
/// <inheritdoc /> /// <inheritdoc />

Some files were not shown because too many files have changed in this diff Show More