diff options
author | Philipp Gesang <megas.kapaneus@gmail.com> | 2011-08-20 21:55:36 +0200 |
---|---|---|
committer | Philipp Gesang <megas.kapaneus@gmail.com> | 2011-08-20 21:55:36 +0200 |
commit | bc3bb79d16c52531387c70c24f94513b62dcfa67 (patch) | |
tree | 0beb4e1dc31026331dff2238e5af0d009c203573 | |
parent | 2e4451816ad9d3af5c1bdd70763b0db8f599700c (diff) | |
download | context-rst-bc3bb79d16c52531387c70c24f94513b62dcfa67.tar.gz |
optional BOM trimming
-rw-r--r-- | mod/doc/context/third/rst/manual.bib (renamed from doc/manual.bib) | 0 | ||||
-rw-r--r-- | mod/tex/context/third/rst/rst_parser.lua | 11 | ||||
-rw-r--r-- | mod/tex/context/third/rst/t-rst.mkiv | 12 |
3 files changed, 22 insertions, 1 deletions
diff --git a/doc/manual.bib b/mod/doc/context/third/rst/manual.bib index 638ed80..638ed80 100644 --- a/doc/manual.bib +++ b/mod/doc/context/third/rst/manual.bib 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 |