Fix error when trying to generate PDT error message at the very beginning or end of the source.
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
using Cryville.Common.Collections;
|
using Cryville.Common.Collections;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using CMath = System.Math;
|
||||||
|
|
||||||
namespace Cryville.Common.Pdt {
|
namespace Cryville.Common.Pdt {
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -302,13 +302,13 @@ namespace Cryville.Common.Pdt {
|
|||||||
int pos = interpreter.Position;
|
int pos = interpreter.Position;
|
||||||
if (pos >= src.Length) return "Failed to interpret the PDT: There are some missing or redundant tokens";
|
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 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) {
|
if (previewStartPos == -1) {
|
||||||
previewStartPos = pos - 64;
|
previewStartPos = pos - 64;
|
||||||
if (previewStartPos < 0) previewStartPos = 0;
|
if (previewStartPos < 0) previewStartPos = 0;
|
||||||
}
|
}
|
||||||
else previewStartPos++;
|
else previewStartPos++;
|
||||||
int previewEndPos = src.IndexOf('\n', pos, 64);
|
int previewEndPos = src.IndexOf('\n', pos, CMath.Min(64, src.Length - pos));
|
||||||
if (previewEndPos == -1) {
|
if (previewEndPos == -1) {
|
||||||
previewEndPos = pos + 64;
|
previewEndPos = pos + 64;
|
||||||
if (previewEndPos > src.Length) previewEndPos = src.Length;
|
if (previewEndPos > src.Length) previewEndPos = src.Length;
|
||||||
|
Reference in New Issue
Block a user