From b03973dc489f7c1a9f08248dd189f926f3d971bb Mon Sep 17 00:00:00 2001 From: Alex Barney Date: Fri, 19 Jul 2019 19:50:42 -0500 Subject: [PATCH] hactoolnet: Savefile fixes Only open as writable if needed Only commit if needed --- src/hactoolnet/ProcessSave.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/hactoolnet/ProcessSave.cs b/src/hactoolnet/ProcessSave.cs index 4d811865..d60cba36 100644 --- a/src/hactoolnet/ProcessSave.cs +++ b/src/hactoolnet/ProcessSave.cs @@ -14,7 +14,15 @@ namespace hactoolnet { public static void Process(Context ctx) { - using (var file = new LocalStorage(ctx.Options.InFile, FileAccess.ReadWrite)) + FileAccess accessNeeded = FileAccess.Read; + + if (ctx.Options.SignSave || ctx.Options.ReplaceFileDest != null && ctx.Options.ReplaceFileSource != null || + ctx.Options.RepackSource != null || ctx.Options.TrimSave) + { + accessNeeded = FileAccess.ReadWrite; + } + + using (var file = new LocalStorage(ctx.Options.InFile, accessNeeded)) { bool signNeeded = ctx.Options.SignSave; @@ -86,7 +94,11 @@ namespace hactoolnet } finally { - save.Commit(ctx.Keyset); + if (signNeeded) + { + save.Commit(ctx.Keyset); + signNeeded = false; + } } if (ctx.Options.TrimSave)