From 0b6af978ff5fe355c953eb638a79bc49c16df85f Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Fri, 18 Sep 2026 11:01:40 -0400 Subject: [PATCH] Check for "null" literal string cases --- SabreTools.Metadata.DatFiles/DatFile.cs | 4 ++-- SabreTools.Metadata.DatFiles/Formats/ClrMamePro.cs | 4 +++- SabreTools.Metadata.DatFiles/Formats/Logiqx.cs | 4 +++- SabreTools.Metadata.DatFiles/Formats/SeparatedValue.cs | 4 +++- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/SabreTools.Metadata.DatFiles/DatFile.cs b/SabreTools.Metadata.DatFiles/DatFile.cs index 815486c9..0f67bb8c 100644 --- a/SabreTools.Metadata.DatFiles/DatFile.cs +++ b/SabreTools.Metadata.DatFiles/DatFile.cs @@ -685,11 +685,11 @@ namespace SabreTools.Metadata.DatFiles return rom; // If the item has a SHA-1 but no size - if (rom.Size is null && rom.SHA1 is not null) + if (rom.Size is null && rom.SHA1 is not null && rom.SHA1 != "null") return rom; // If the item has a SHA-256 but no size - if (rom.Size is null && rom.SHA256 is not null) + if (rom.Size is null && rom.SHA256 is not null && rom.SHA256 != "null") return rom; // If the Rom has "null" characteristics, ensure all fields diff --git a/SabreTools.Metadata.DatFiles/Formats/ClrMamePro.cs b/SabreTools.Metadata.DatFiles/Formats/ClrMamePro.cs index e1a30c6c..a1574744 100644 --- a/SabreTools.Metadata.DatFiles/Formats/ClrMamePro.cs +++ b/SabreTools.Metadata.DatFiles/Formats/ClrMamePro.cs @@ -88,7 +88,9 @@ namespace SabreTools.Metadata.DatFiles.Formats case Rom rom: if (string.IsNullOrEmpty(rom.Name)) missingFields.Add(nameof(Data.Models.Metadata.Rom.Name)); - if ((rom.Size is null || rom.Size < 0) && rom.SHA1 is null && rom.SHA256 is null) + if ((rom.Size is null || rom.Size < 0) + && (rom.SHA1 is null || rom.SHA1 == "null") + && (rom.SHA256 is null || rom.SHA1 == "null")) missingFields.Add(nameof(Data.Models.Metadata.Rom.Size)); if (string.IsNullOrEmpty(rom.BLAKE3) && string.IsNullOrEmpty(rom.CRC16) diff --git a/SabreTools.Metadata.DatFiles/Formats/Logiqx.cs b/SabreTools.Metadata.DatFiles/Formats/Logiqx.cs index d0dc74f2..985b2f82 100644 --- a/SabreTools.Metadata.DatFiles/Formats/Logiqx.cs +++ b/SabreTools.Metadata.DatFiles/Formats/Logiqx.cs @@ -282,7 +282,9 @@ namespace SabreTools.Metadata.DatFiles.Formats case Rom rom: if (string.IsNullOrEmpty(rom.Name)) missingFields.Add(nameof(Data.Models.Metadata.Rom.Name)); - if ((rom.Size is null || rom.Size < 0) && rom.SHA1 is null && rom.SHA256 is null) + if ((rom.Size is null || rom.Size < 0) + && (rom.SHA1 is null || rom.SHA1 == "null") + && (rom.SHA256 is null || rom.SHA1 == "null")) missingFields.Add(nameof(Data.Models.Metadata.Rom.Size)); if (string.IsNullOrEmpty(rom.BLAKE3) && string.IsNullOrEmpty(rom.CRC16) diff --git a/SabreTools.Metadata.DatFiles/Formats/SeparatedValue.cs b/SabreTools.Metadata.DatFiles/Formats/SeparatedValue.cs index 14c89929..84eef298 100644 --- a/SabreTools.Metadata.DatFiles/Formats/SeparatedValue.cs +++ b/SabreTools.Metadata.DatFiles/Formats/SeparatedValue.cs @@ -93,7 +93,9 @@ namespace SabreTools.Metadata.DatFiles.Formats case Rom rom: if (string.IsNullOrEmpty(rom.Name)) missingFields.Add(nameof(Data.Models.Metadata.Rom.Name)); - if ((rom.Size is null || rom.Size < 0) && rom.SHA1 is null && rom.SHA256 is null) + if ((rom.Size is null || rom.Size < 0) + && (rom.SHA1 is null || rom.SHA1 == "null") + && (rom.SHA256 is null || rom.SHA1 == "null")) missingFields.Add(nameof(Data.Models.Metadata.Rom.Size)); if (string.IsNullOrEmpty(rom.CRC32) && string.IsNullOrEmpty(rom.MD5)