diff options
-rw-r--r-- | changelog.md | 3 | ||||
-rw-r--r-- | script/parser/guide.lua | 10 |
2 files changed, 10 insertions, 3 deletions
diff --git a/changelog.md b/changelog.md index 0db1cbfa..2054e7d8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,8 @@ # changelog +## 1.12.1 +* `FIX` endless loop + ## 1.12.0 `2021-1-26` * `NEW` progress diff --git a/script/parser/guide.lua b/script/parser/guide.lua index d3f26803..c580aeec 100644 --- a/script/parser/guide.lua +++ b/script/parser/guide.lua @@ -2340,10 +2340,14 @@ function m.checkSameSimpleInString(status, ref, start, pushQueue, mode) if not status.share.markString then status.share.markString = {} end - if status.share.markString[ref] then + local marked = ref + if ref.type == 'string' then + marked = 'string' + end + if status.share.markString[marked] then return end - status.share.markString[ref] = true + status.share.markString[marked] = true local newStatus = m.status(status) local docs = status.interface.docType('string*') local mark = {} @@ -2359,7 +2363,7 @@ function m.checkSameSimpleInString(status, ref, start, pushQueue, mode) pushQueue(res, start + 1) ::CONTINUE:: end - status.share.markString[ref] = nil + status.share.markString[marked] = nil return true end |