diff --git a/src/BizHawk.Client.EmuHawk/LogWindow.cs b/src/BizHawk.Client.EmuHawk/LogWindow.cs index 5223f1e4ab..59ac875e95 100644 --- a/src/BizHawk.Client.EmuHawk/LogWindow.cs +++ b/src/BizHawk.Client.EmuHawk/LogWindow.cs @@ -7,6 +7,7 @@ using System.Windows.Forms; using BizHawk.Common; using BizHawk.Emulation.Common; using BizHawk.Client.Common; +using BizHawk.Common.StringExtensions; // todo - perks - pause, copy to clipboard, backlog length limiting @@ -149,13 +150,28 @@ namespace BizHawk.Client.EmuHawk private void ButtonCopy_Click(object sender, EventArgs e) { - var sb = new StringBuilder(); - lock(_lines) - foreach (int i in virtualListView1.SelectedIndices) - sb.AppendLine(_lines[i].Replace("MD5:", "").Replace("SHA1:", "")); - - if (sb.Length > 0) - Clipboard.SetText(sb.ToString(), TextDataFormat.Text); + string s; + lock (_lines) + { + if (virtualListView1.SelectedIndices.Count > 1) + { + StringBuilder sb = new(); + foreach (int i in virtualListView1.SelectedIndices) sb.AppendLine(_lines[i]); + s = sb.ToString(); + } + else if (virtualListView1.SelectedIndices.Count is 1) + { + s = _lines[virtualListView1.SelectedIndices[0]] + .RemovePrefix(SHA1Checksum.PREFIX + ":") + .RemovePrefix(MD5Checksum.PREFIX + ":"); + } + else + { + return; + } + } + s = s.Trim(); + if (!string.IsNullOrWhiteSpace(s)) Clipboard.SetText(s, TextDataFormat.Text); } private void ButtonCopyAll_Click(object sender, EventArgs e) diff --git a/src/BizHawk.Common/checksums/MD5Checksum.cs b/src/BizHawk.Common/checksums/MD5Checksum.cs index 9a867733ce..d13f2aa5f5 100644 --- a/src/BizHawk.Common/checksums/MD5Checksum.cs +++ b/src/BizHawk.Common/checksums/MD5Checksum.cs @@ -15,7 +15,7 @@ namespace BizHawk.Common /// in bits internal const int EXPECTED_LENGTH = 128; - internal const string PREFIX = "MD5"; + public const string PREFIX = "MD5"; public /*static readonly*/const string EmptyFile = "D41D8CD98F00B204E9800998ECF8427E"; diff --git a/src/BizHawk.Common/checksums/SHA1Checksum.cs b/src/BizHawk.Common/checksums/SHA1Checksum.cs index a4013bb6ca..471bc5f67f 100644 --- a/src/BizHawk.Common/checksums/SHA1Checksum.cs +++ b/src/BizHawk.Common/checksums/SHA1Checksum.cs @@ -17,7 +17,7 @@ namespace BizHawk.Common /// in bits internal const int EXPECTED_LENGTH = 160; - internal const string PREFIX = "SHA1"; + public const string PREFIX = "SHA1"; public /*static readonly*/const string Dummy = "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE";