summaryrefslogtreecommitdiff
path: root/tex/context/third/transliterator/trans_tables_iso9.lua
diff options
context:
space:
mode:
authorPhilipp Gesang <pgesang@ix.urz.uni-heidelberg.de>2010-12-24 16:05:30 +0100
committerPhilipp Gesang <pgesang@ix.urz.uni-heidelberg.de>2010-12-24 16:05:30 +0100
commit8f57b0ace4826104e586e289d0977b55570f0c8b (patch)
tree030fbdb090f5efd4c1b626c6c7114508b53e8108 /tex/context/third/transliterator/trans_tables_iso9.lua
parent26ae25dbea9b066eae665f8aefb2b046ac67d431 (diff)
downloadtransliterator-8f57b0ace4826104e586e289d0977b55570f0c8b.tar.gz
utf character handling; optimized iso9 parser code
Diffstat (limited to 'tex/context/third/transliterator/trans_tables_iso9.lua')
-rw-r--r--tex/context/third/transliterator/trans_tables_iso9.lua19
1 files changed, 5 insertions, 14 deletions
diff --git a/tex/context/third/transliterator/trans_tables_iso9.lua b/tex/context/third/transliterator/trans_tables_iso9.lua
index 4057a0e..ad99e23 100644
--- a/tex/context/third/transliterator/trans_tables_iso9.lua
+++ b/tex/context/third/transliterator/trans_tables_iso9.lua
@@ -252,9 +252,7 @@ translit.tables["cyrillic other uppercase ISO~9"] = translit.non_ru_upp
function translit.iso9 (mode, text)
local P, R, S, V, Cs = lpeg.P, lpeg.R, lpeg.S, lpeg.V, lpeg.Cs
local addrules = translit.addrules
- local utfchar = lpeg.patterns.utf8char
-
- -- Add keys of a dictionary to a ruleset.
+ local utfchar = translit.utfchar
local iso9 = translit.make_add_dict{}
iso9 = translit.ru_upp + translit.ru_low
@@ -268,22 +266,15 @@ function translit.iso9 (mode, text)
+ translit.non_ru_upp
+ translit.non_ru_low
end
- end
-
- if mode == "ru_old_jer_hack" then
+ elseif mode == "ru_old_jer_hack" then
iso9 = iso9
+ translit.ru_old_upp
+ translit.ru_old_low
+ translit.ru_jer_hack
end
- local p_iso9
- p_iso9 = addrules (iso9, p_iso9)
-
- local p_cyr = Cs(p_iso9) / iso9
-
- local iso9_parser = Cs((p_cyr + utfchar)^0)
- text = iso9_parser:match(text)
+ local p_iso9 = addrules (iso9, p_iso9)
+ local iso9_parser = Cs((p_iso9 / iso9 + utfchar)^0)
- return text
+ return iso9_parser:match(text)
end