diff --git a/DiscImageChef.Filesystems/ISO9660/Consts/Internal.cs b/DiscImageChef.Filesystems/ISO9660/Consts/Internal.cs index 4323e5320..41b41f5b4 100644 --- a/DiscImageChef.Filesystems/ISO9660/Consts/Internal.cs +++ b/DiscImageChef.Filesystems/ISO9660/Consts/Internal.cs @@ -43,7 +43,8 @@ namespace DiscImageChef.Filesystems.ISO9660 Normal, Vms, Joliet, - Rrip + Rrip, + Romeo } } } \ No newline at end of file diff --git a/DiscImageChef.Filesystems/ISO9660/Dir.cs b/DiscImageChef.Filesystems/ISO9660/Dir.cs index 415dde9e3..a5ea8466a 100644 --- a/DiscImageChef.Filesystems/ISO9660/Dir.cs +++ b/DiscImageChef.Filesystems/ISO9660/Dir.cs @@ -139,9 +139,8 @@ namespace DiscImageChef.Filesystems.ISO9660 Flags = record.flags, Interleave = record.interleave, VolumeSequenceNumber = record.volume_sequence_number, - Filename = - Encoding.ASCII.GetString(data, entryOff + DirectoryRecordSize, record.name_len), - Timestamp = DecodeHighSierraDateTime(record.date) + Filename = Encoding.GetString(data, entryOff + DirectoryRecordSize, record.name_len), + Timestamp = DecodeHighSierraDateTime(record.date) }; if(!entries.ContainsKey(entry.Filename)) entries.Add(entry.Filename, entry); @@ -183,7 +182,7 @@ namespace DiscImageChef.Filesystems.ISO9660 joliet ? Encoding.BigEndianUnicode.GetString(data, entryOff + DirectoryRecordSize, record.name_len) - : Encoding.ASCII.GetString(data, entryOff + DirectoryRecordSize, record.name_len), + : Encoding.GetString(data, entryOff + DirectoryRecordSize, record.name_len), FileUnitSize = record.file_unit_size, Interleave = record.interleave, VolumeSequenceNumber = record.volume_sequence_number, @@ -209,8 +208,8 @@ namespace DiscImageChef.Filesystems.ISO9660 ? Encoding.BigEndianUnicode.GetString(data, entryOff + DirectoryRecordSize, record.name_len) - : Encoding.ASCII.GetString(data, entryOff + DirectoryRecordSize, - record.name_len), + : Encoding.GetString(data, entryOff + DirectoryRecordSize, + record.name_len), Timestamp = DecodeIsoDateTime(record.date), AssociatedFile = entry }; diff --git a/DiscImageChef.Filesystems/ISO9660/Super.cs b/DiscImageChef.Filesystems/ISO9660/Super.cs index 38a519987..85353b7a5 100644 --- a/DiscImageChef.Filesystems/ISO9660/Super.cs +++ b/DiscImageChef.Filesystems/ISO9660/Super.cs @@ -16,7 +16,7 @@ namespace DiscImageChef.Filesystems.ISO9660 public Errno Mount(IMediaImage imagePlugin, Partition partition, Encoding encoding, Dictionary options, string @namespace) { - Encoding = encoding ?? Encoding.ASCII; + Encoding = encoding ?? Encoding.GetEncoding(1252); byte[] vdMagic = new byte[5]; // Volume Descriptor magic "CD001" byte[] hsMagic = new byte[5]; // Volume Descriptor magic "CDROM" @@ -40,6 +40,9 @@ namespace DiscImageChef.Filesystems.ISO9660 case "rrip": this.@namespace = Namespace.Rrip; break; + case "romeo": + this.@namespace = Namespace.Romeo; + break; default: return Errno.InvalidArgument; } @@ -214,6 +217,8 @@ namespace DiscImageChef.Filesystems.ISO9660 ? DecodeHighSierraDirectory(rootDir) : DecodeIsoDirectory(rootDir); + if(this.@namespace == Namespace.Romeo) Encoding = Encoding.ASCII; + XmlFsType.Type = fsFormat; if(jolietvd != null && this.@namespace == Namespace.Joliet)