diff options
Diffstat (limited to 'tex/context/third')
-rw-r--r-- | tex/context/third/transliterator/trans_tables_sr.lua | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/tex/context/third/transliterator/trans_tables_sr.lua b/tex/context/third/transliterator/trans_tables_sr.lua index 9abe5b2..84319b0 100644 --- a/tex/context/third/transliterator/trans_tables_sr.lua +++ b/tex/context/third/transliterator/trans_tables_sr.lua @@ -100,14 +100,16 @@ end local t = translit local function sr (mode, text) - local P, R, S, V, Cs = lpeg.P, lpeg.R, lpeg.S, lpeg.V, lpeg.Cs + local P, R, Cs = lpeg.P, lpeg.R, lpeg.Cs local utfchar = translit.utfchar - local trl_sr = translit.make_add_dict{} - trl_sr = t[mode.."_upper"] + t[mode.."_lower"] + local trl_sr = translit.make_add_dict{} + trl_sr = t[mode.."_upper"] + t[mode.."_lower"] - local _p_sr = translit.addrules (trl_sr, _p_sr) - local p_sr = Cs((_p_sr / trl_sr + utfchar)^0) + -- transliteration from latin script requires macro handling … + local _p_macro = P[[\]] * R("az", "AZ")^1 + local _p_sr = translit.addrules (trl_sr, _p_sr) + local p_sr = Cs((_p_macro + (_p_sr / trl_sr) + utfchar)^0) return p_sr:match(text) end |