From 916c55b4b2cfad1449f1a228e6d50f5f94568a56 Mon Sep 17 00:00:00 2001 From: PopSlime Date: Sat, 8 Apr 2023 13:31:26 +0800 Subject: [PATCH] Fix error when trying to generate PDT error message at the very beginning or end of the source. --- Assets/Cryville/Common/Pdt/PdtInterpreter.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Assets/Cryville/Common/Pdt/PdtInterpreter.cs b/Assets/Cryville/Common/Pdt/PdtInterpreter.cs index c405f33..d15754d 100644 --- a/Assets/Cryville/Common/Pdt/PdtInterpreter.cs +++ b/Assets/Cryville/Common/Pdt/PdtInterpreter.cs @@ -1,10 +1,10 @@ using Cryville.Common.Collections; using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text.RegularExpressions; +using CMath = System.Math; namespace Cryville.Common.Pdt { /// @@ -302,13 +302,13 @@ namespace Cryville.Common.Pdt { int pos = interpreter.Position; if (pos >= src.Length) return "Failed to interpret the PDT: There are some missing or redundant tokens"; int lineStartPos = src.LastIndexOf('\n', pos) + 1; - int previewStartPos = src.LastIndexOf('\n', pos, 64); + int previewStartPos = src.LastIndexOf('\n', pos, CMath.Min(64, pos)); if (previewStartPos == -1) { previewStartPos = pos - 64; if (previewStartPos < 0) previewStartPos = 0; } else previewStartPos++; - int previewEndPos = src.IndexOf('\n', pos, 64); + int previewEndPos = src.IndexOf('\n', pos, CMath.Min(64, src.Length - pos)); if (previewEndPos == -1) { previewEndPos = pos + 64; if (previewEndPos > src.Length) previewEndPos = src.Length;