From 09dd07bcc2397ff03460d5e89f8125456c29e025 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Tue, 12 Mar 2013 17:05:16 +0100 Subject: fix spurious global; workaround buffer idiosyncrasy in manual --- mod/tex/context/third/rst/rst_context.lua | 5 +++-- mod/tex/context/third/rst/rst_helpers.lua | 6 +++--- mod/tex/context/third/rst/rst_parser.lua | 8 +++++--- mod/tex/context/third/rst/rst_setups.lua | 1 + 4 files changed, 12 insertions(+), 8 deletions(-) (limited to 'mod/tex/context') diff --git a/mod/tex/context/third/rst/rst_context.lua b/mod/tex/context/third/rst/rst_context.lua index e7637b3..b079730 100644 --- a/mod/tex/context/third/rst/rst_context.lua +++ b/mod/tex/context/third/rst/rst_context.lua @@ -72,12 +72,13 @@ rst_context.current_footnote_number = 0 rst_context.current_symbolnote_number = 0 function rst_context.addsetups(item) + local state = thirddata.rst.state state.addme[item] = state.addme[item] or true return 0 end function rst_context.footnote_reference (label) - local tf = state.footnotes + local tf = thirddata.rst.state.footnotes if label:match("^%d+$") then -- all digits local c = tonumber(label) return [[\\footnote{\\getbuffer[__footnote_number_]].. c .."]}" @@ -1219,7 +1220,7 @@ function rst_context.simple_table(tab) end function rst_context.footnote (label, content) - local tf = state.footnotes + local tf = thirddata.rst.state.footnotes rst_context.addsetups("footnotes") if label:match("^%d+$") then -- all digits tf.numbered[tonumber(label)] = rst_context.escape(inline_parser:match(content)) diff --git a/mod/tex/context/third/rst/rst_helpers.lua b/mod/tex/context/third/rst/rst_helpers.lua index e90a55a..3ff53fe 100644 --- a/mod/tex/context/third/rst/rst_helpers.lua +++ b/mod/tex/context/third/rst/rst_helpers.lua @@ -515,7 +515,7 @@ do return false end - local trc = state.roman_cache + local trc = thirddata.rst.state.roman_cache n_str = trc[str] or nil n_old = trc[old] or nil if not n_str then @@ -549,7 +549,7 @@ do end - local trc = state.roman_cache + local trc = thirddata.rst.state.roman_cache n_str = trc[str] or nil n_old = trc[old] or nil if not n_str then @@ -578,7 +578,7 @@ do return false end - local trc = state.roman_cache + local trc = thirddata.rst.state.roman_cache n_str = trc[str] or nil if not n_str then n_str = roman_to_arab(str:lower()) diff --git a/mod/tex/context/third/rst/rst_parser.lua b/mod/tex/context/third/rst/rst_parser.lua index 4e6db41..d0d8de9 100644 --- a/mod/tex/context/third/rst/rst_parser.lua +++ b/mod/tex/context/third/rst/rst_parser.lua @@ -70,7 +70,9 @@ local P, R, S, V, match local utf = unicode.utf8 -state = {} +local state = {} +thirddata.rst.state = state + state.depth = 0 state.bullets = {} -- mapping bullet forms to depth state.bullets.max = 0 @@ -1484,7 +1486,7 @@ end do local Cs, P = lpeg.Cs, lpeg.P - local percent = P"\%" + local percent = P"%" local eol = P"\n" local comment = percent * (1 - eol)^0 * eol / "\n" strip_comments = Cs((comment + 1)^0) @@ -1535,7 +1537,7 @@ function thirddata.rst.get_rst_inclusion (iname) if rst_inclusions[iname] then context.input(rst_inclusions[iname]) else - context(stringformat("{\\bf File for inclusion ā€œ%sā€ not found.}\par ", iname)) + context(stringformat([[{\bf File for inclusion ā€œ%sā€ not found.}\par ]], iname)) end end diff --git a/mod/tex/context/third/rst/rst_setups.lua b/mod/tex/context/third/rst/rst_setups.lua index ccf3967..93084d9 100644 --- a/mod/tex/context/third/rst/rst_setups.lua +++ b/mod/tex/context/third/rst/rst_setups.lua @@ -12,6 +12,7 @@ local optional_setups = { } thirddata.rst_setups = optional_setups local rst_directives = thirddata.rst_directives local rst_context = thirddata.rst +local state = rst_context.state local fmt = string.format local stringstrip = string.strip -- cgit v1.2.3