summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changelog.md3
-rw-r--r--script/parser/guide.lua10
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