diff options
Diffstat (limited to 'tex/context/third')
-rw-r--r-- | tex/context/third/enigma/enigma.lua | 47 | ||||
-rw-r--r-- | tex/context/third/enigma/t-enigma.mkvi | 7 |
2 files changed, 28 insertions, 26 deletions
diff --git a/tex/context/third/enigma/enigma.lua b/tex/context/third/enigma/enigma.lua index ad23c2b..b7ab57c 100644 --- a/tex/context/third/enigma/enigma.lua +++ b/tex/context/third/enigma/enigma.lua @@ -71,12 +71,12 @@ local iowrite = io.write local mathfloor = math.floor local mathrandom = math.random local next = next -local nodecopy = node.copy -local nodeid = node.id -local nodeinsert_before = node.insert_before -local nodenew = node.new -local noderemove = node.remove -local nodetraverse = node.traverse +local nodecopy = node and node.copy +local nodeid = node and node.id +local nodeinsert_before = node and node.insert_before +local nodenew = node and node.new +local noderemove = node and node.remove +local nodetraverse = node and node.traverse local nodesinstallattributehandler = format_is_context_p and nodes.installattributehandler local nodestasksappendaction = format_is_context_p and nodes.tasks.appendaction local stringfind = string.find @@ -109,8 +109,8 @@ else end end -local glyph_node = nodeid"glyph" -local glue_node = nodeid"glue" +local glyph_node = node and nodeid"glyph" +local glue_node = node and nodeid"glue" --[[ichd-- \startparagraph @@ -742,19 +742,22 @@ extraction of successive characters from the sequence. \TODO{Make \luafunction{encode_string} preprocess characters.} \stopparagraph --ichd]]-- - --local encode_string = function (machine, str) --, pattern) - -- local init_state = pattern_to_state(pattern or get_random_pattern()) - -- emit(1, pprint_init, init_state) - -- machine:set_state(init_state) - -- local result = { } - -- str = stringlower(str) - -- local n = 1 -- OPTIONAL could lookup machine.step instead - -- for char in utfcharacters(str) do - -- result[n] = machine:encode_char(char) - -- n = n + 1 - -- end - -- return tableconcat(result) - --end + local encode_string = function (machine, str) --, pattern) + local result = { } + str = stringlower(str) + for char in utfcharacters(str) do + local tmp = machine:encode(char) + if type(tmp) == "table" then + for i=1, #tmp do + result[#result+1] = tmp[i] + end + else + result[#result+1] = tmp + end + end + machine:processed_chars() + return tableconcat(result) + end --[[ichd-- \stopdocsection --ichd]]-- @@ -1273,9 +1276,9 @@ enigma.save_raw_args = save_raw_args enigma.retrieve_raw_args = retrieve_raw_args local new_machine = function (args, name) + verbose_level = args.verbose local machine = new(args.day_key, args.rotor_setting) machine.name = name - verbose_level = args.verbose return machine end diff --git a/tex/context/third/enigma/t-enigma.mkvi b/tex/context/third/enigma/t-enigma.mkvi index 173bb07..552e483 100644 --- a/tex/context/third/enigma/t-enigma.mkvi +++ b/tex/context/third/enigma/t-enigma.mkvi @@ -78,11 +78,10 @@ thirddata = thirddata or { } \def\inherit_enigma#to#from{% \ctxlua{% - local enigma = thirddata.enigma + local enigma = thirddata.enigma local current_args = enigma.retrieve_raw_args(\!!bs#from\!!es) - enigma.new_callback( - enigma.new_machine(current_args, \!!bs#to\!!es), \!!bs#to\!!es - ) + enigma.new_callback(enigma.new_machine(current_args, \!!bs#to\!!es), + \!!bs#to\!!es) }% \do_do_define_enigma{#to}% } |