diff --git a/SabreTools.Helper/Tools/ArchiveTools.cs b/SabreTools.Helper/Tools/ArchiveTools.cs
index 065e809b..4204150e 100644
--- a/SabreTools.Helper/Tools/ArchiveTools.cs
+++ b/SabreTools.Helper/Tools/ArchiveTools.cs
@@ -785,6 +785,49 @@ namespace SabreTools.Helper
return outtype;
}
+ ///
+ /// Get if the current file should be scanned internally and externally
+ ///
+ /// Name of the input file to check
+ /// User-defined scan level for 7z archives
+ /// User-defined scan level for GZ archives
+ /// User-defined scan level for RAR archives
+ /// User-defined scan level for Zip archives
+ /// Logger object for file and console output
+ /// Output parameter determining if file should be processed externally
+ /// Output parameter determining if file should be processed internally
+ public static void GetInternalExternalProcess(string input, ArchiveScanLevel sevenzip, ArchiveScanLevel gzip,
+ ArchiveScanLevel rar, ArchiveScanLevel zip, Logger logger, out bool shouldExternalProcess, out bool shouldInternalProcess)
+ {
+ shouldExternalProcess = true;
+ shouldInternalProcess = true;
+
+ ArchiveType? archiveType = ArchiveTools.GetCurrentArchiveType(input, logger);
+ switch (archiveType)
+ {
+ case null:
+ shouldExternalProcess = true;
+ shouldInternalProcess = false;
+ break;
+ case ArchiveType.GZip:
+ shouldExternalProcess = (gzip != ArchiveScanLevel.Internal);
+ shouldInternalProcess = (gzip != ArchiveScanLevel.External);
+ break;
+ case ArchiveType.Rar:
+ shouldExternalProcess = (rar != ArchiveScanLevel.Internal);
+ shouldInternalProcess = (rar != ArchiveScanLevel.External);
+ break;
+ case ArchiveType.SevenZip:
+ shouldExternalProcess = (sevenzip != ArchiveScanLevel.Internal);
+ shouldInternalProcess = (sevenzip != ArchiveScanLevel.External);
+ break;
+ case ArchiveType.Zip:
+ shouldExternalProcess = (zip != ArchiveScanLevel.Internal);
+ shouldInternalProcess = (zip != ArchiveScanLevel.External);
+ break;
+ }
+ }
+
///
/// http://stackoverflow.com/questions/311165/how-do-you-convert-byte-array-to-hexadecimal-string-and-vice-versa
///
diff --git a/SimpleSort/SimpleSort.cs b/SimpleSort/SimpleSort.cs
index 056122f6..7557c057 100644
--- a/SimpleSort/SimpleSort.cs
+++ b/SimpleSort/SimpleSort.cs
@@ -462,6 +462,8 @@ namespace SabreTools
_logger.User("Stats of the matched ROMs:");
Stats.OutputStats(_matched, _logger, true);
+ // Diff the matched with the input DAT(s) and output if flag is set
+
return success;
}
@@ -484,33 +486,8 @@ namespace SabreTools
_logger.Log(statement, _cursorTop, 0);
// Get if the file should be scanned internally and externally
- bool shouldExternalScan = true;
- bool shouldInternalScan = true;
-
- ArchiveType? archiveType = ArchiveTools.GetCurrentArchiveType(input, _logger);
- switch (archiveType)
- {
- case null:
- shouldExternalScan = true;
- shouldInternalScan = false;
- break;
- case ArchiveType.GZip:
- shouldExternalScan = (_gz != ArchiveScanLevel.Internal);
- shouldInternalScan = (_gz != ArchiveScanLevel.External);
- break;
- case ArchiveType.Rar:
- shouldExternalScan = (_rar != ArchiveScanLevel.Internal);
- shouldInternalScan = (_rar != ArchiveScanLevel.External);
- break;
- case ArchiveType.SevenZip:
- shouldExternalScan = (_7z != ArchiveScanLevel.Internal);
- shouldInternalScan = (_7z != ArchiveScanLevel.External);
- break;
- case ArchiveType.Zip:
- shouldExternalScan = (_zip != ArchiveScanLevel.Internal);
- shouldInternalScan = (_zip != ArchiveScanLevel.External);
- break;
- }
+ bool shouldExternalScan, shouldInternalScan;
+ ArchiveTools.GetInternalExternalProcess(input, _7z, _gz, _rar, _zip, _logger, out shouldExternalScan, out shouldInternalScan);
// Hash and match the external files
if (shouldExternalScan)
diff --git a/TGZTest/TGZTest.cs b/TGZTest/TGZTest.cs
index 8fb567c1..afa95e6d 100644
--- a/TGZTest/TGZTest.cs
+++ b/TGZTest/TGZTest.cs
@@ -271,33 +271,8 @@ namespace SabreTools
_logger.User("Examining file " + input);
// Get if the file should be scanned internally and externally
- bool shouldExternalProcess = true;
- bool shouldInternalProcess = true;
-
- ArchiveType? archiveType = ArchiveTools.GetCurrentArchiveType(input, _logger);
- switch (archiveType)
- {
- case null:
- shouldExternalProcess = true;
- shouldInternalProcess = false;
- break;
- case ArchiveType.GZip:
- shouldExternalProcess = (_gz != ArchiveScanLevel.Internal);
- shouldInternalProcess = (_gz != ArchiveScanLevel.External);
- break;
- case ArchiveType.Rar:
- shouldExternalProcess = (_rar != ArchiveScanLevel.Internal);
- shouldInternalProcess = (_rar != ArchiveScanLevel.External);
- break;
- case ArchiveType.SevenZip:
- shouldExternalProcess = (_7z != ArchiveScanLevel.Internal);
- shouldInternalProcess = (_7z != ArchiveScanLevel.External);
- break;
- case ArchiveType.Zip:
- shouldExternalProcess = (_zip != ArchiveScanLevel.Internal);
- shouldInternalProcess = (_zip != ArchiveScanLevel.External);
- break;
- }
+ bool shouldExternalProcess, shouldInternalProcess;
+ ArchiveTools.GetInternalExternalProcess(input, _7z, _gz, _rar, _zip, _logger, out shouldExternalProcess, out shouldInternalProcess);
// Do an external scan of the file, if necessary
if (shouldExternalProcess)