From ec5b56e8f4f1e150d871a3ed07a8ef04a54d1e57 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Mon, 3 Oct 2016 15:25:09 -0700 Subject: [PATCH] [FileTools] Add proper seeking support for GetSingleStreamInfo --- SabreTools.Helper/Tools/FileTools.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/SabreTools.Helper/Tools/FileTools.cs b/SabreTools.Helper/Tools/FileTools.cs index d200fa40..48865cc3 100644 --- a/SabreTools.Helper/Tools/FileTools.cs +++ b/SabreTools.Helper/Tools/FileTools.cs @@ -467,12 +467,6 @@ namespace SabreTools.Helper /// Populated RomData object if success, empty one on error public static Rom GetSingleStreamInfo(Stream input, long size, bool noMD5 = false, bool noSHA1 = false, long offset = 0, bool keepReadOpen = false) { - // If we have a negative offset, zero it out since we don't support it yet - if (offset < 0) - { - offset = 0; - } - Rom rom = new Rom { Type = ItemType.Rom, @@ -490,7 +484,14 @@ namespace SabreTools.Helper SHA1 sha1 = SHA1.Create(); // Seek to the starting position, if one is set - input.Seek(offset, SeekOrigin.Begin); + if (offset < 0) + { + input.Seek(offset, SeekOrigin.End); + } + else + { + input.Seek(offset, SeekOrigin.Begin); + } byte[] buffer = new byte[1024]; int read;