summaryrefslogtreecommitdiff
path: root/mod/tex/context
diff options
context:
space:
mode:
Diffstat (limited to 'mod/tex/context')
-rw-r--r--mod/tex/context/third/rst/rst_parser.lua11
-rw-r--r--mod/tex/context/third/rst/t-rst.mkiv12
2 files changed, 22 insertions, 1 deletions
diff --git a/mod/tex/context/third/rst/rst_parser.lua b/mod/tex/context/third/rst/rst_parser.lua
index 6aeeb7d..f5c9fbc 100644
--- a/mod/tex/context/third/rst/rst_parser.lua
+++ b/mod/tex/context/third/rst/rst_parser.lua
@@ -34,6 +34,7 @@ else
rst = require "rst_context"
end
+rst.stripBOM = false
helpers.rst_debug = false
local warn = function(str, ...)
@@ -1350,11 +1351,21 @@ local parser = P{
table_header_hline = P"=",
}
+local function strip_BOM (raw)
+ if raw:match"^\239\187\191" then
+ return raw:sub(4)
+ end
+ return raw
+end
+
local function load_file (name)
f = assert(io.open(name, "r"), "Not a file!")
if not f then return 1 end
local tmp = f:read("*all")
f:close()
+ if rst.strip_BOM then
+ return strip_BOM(tmp)
+ end
return tmp
end
diff --git a/mod/tex/context/third/rst/t-rst.mkiv b/mod/tex/context/third/rst/t-rst.mkiv
index 0359335..0a3e25b 100644
--- a/mod/tex/context/third/rst/t-rst.mkiv
+++ b/mod/tex/context/third/rst/t-rst.mkiv
@@ -114,7 +114,17 @@
%D
%D \showsetup{typesetRSTfile}
-\def\typesetRSTfile#1{\ctxlua{thirddata.rst.do_rst_file("#1")}}
+\def\do_typesetRSTfile[#1]#2{%
+ \iffirstargument
+ \getparameters[RST][#1]%
+ \doifdefined{\RSTstripBOM}{\ctxlua{thirddata.rst.strip_BOM = "\RSTstripBOM"}}%
+ \fi
+ \ctxlua{thirddata.rst.do_rst_file("#2")}%
+}
+
+\def\typesetRSTfile{%
+ \dosingleempty\do_typesetRSTfile%
+}
%D \subsection{Typesetting Inline Snippets}
%D