From c2fa50f28fb2be99f849e94dd55ff3f11db2f6ab Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Fri, 19 Mar 2021 17:11:03 -0700 Subject: [PATCH] A null header from features is an error --- SabreTools/Features/BaseFeature.cs | 15 ++++++++++++--- SabreTools/Program.cs | 13 ++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/SabreTools/Features/BaseFeature.cs b/SabreTools/Features/BaseFeature.cs index 09518b99..51ae232d 100644 --- a/SabreTools/Features/BaseFeature.cs +++ b/SabreTools/Features/BaseFeature.cs @@ -1756,7 +1756,8 @@ Some special strings that can be used: /// /// Pre-configured DatHeader /// - protected DatHeader Header { get; set; } + /// Public because it's an indicator something went wrong + public DatHeader Header { get; set; } /// /// Lowest log level for output @@ -2140,10 +2141,19 @@ Some special strings that can be used: foreach (string ot in GetList(features, OutputTypeListValue)) { DatFormat dftemp = GetDatFormat(ot); - if (dftemp == DatFormat.Logiqx && deprecated) + if (dftemp == 0x00) + { + logger.Error($"{ot} is not a recognized DAT format"); + return null; + } + else if (dftemp == DatFormat.Logiqx && deprecated) + { datHeader.DatFormat |= DatFormat.LogiqxDeprecated; + } else + { datHeader.DatFormat |= dftemp; + } } return datHeader; @@ -2207,7 +2217,6 @@ Some special strings that can be used: return remover; } - /// /// Get Splitter from feature list /// diff --git a/SabreTools/Program.cs b/SabreTools/Program.cs index 79419e5f..994eab89 100644 --- a/SabreTools/Program.cs +++ b/SabreTools/Program.cs @@ -126,7 +126,7 @@ namespace SabreTools case Stats.Value: case Update.Value: case Verify.Value: - VerifyInputs(feature.Inputs, featureName); + VerifyInputs(feature.Inputs, feature); feature.ProcessFeatures(features); break; @@ -185,12 +185,19 @@ namespace SabreTools /// /// List of inputs /// Name of the current feature - private static void VerifyInputs(List inputs, string feature) + private static void VerifyInputs(List inputs, BaseFeature feature) { if (inputs.Count == 0) { logger.Error("This feature requires at least one input"); - _help.OutputIndividualFeature(feature); + _help.OutputIndividualFeature(feature.Name); + Environment.Exit(0); + } + + if (feature.Header == null) + { + logger.Error("Please check for errors in parameters"); + _help.OutputIndividualFeature(feature.Name); Environment.Exit(0); } }