From 27eafeb42b202de70ab3ea7af9ef45da210e9cf8 Mon Sep 17 00:00:00 2001
From: Philipp Gesang <gesang@stud.uni-heidelberg.de>
Date: Thu, 14 Jun 2012 16:41:20 +0200
Subject: [doc] completed documentation

---
 tex/context/third/enigma/enigma.lua    | 27 ++++++++++++++++++++++-----
 tex/context/third/enigma/t-enigma.mkvi |  8 ++++----
 2 files changed, 26 insertions(+), 9 deletions(-)

(limited to 'tex/context/third')

diff --git a/tex/context/third/enigma/enigma.lua b/tex/context/third/enigma/enigma.lua
index 3ccf593..3a97a24 100644
--- a/tex/context/third/enigma/enigma.lua
+++ b/tex/context/third/enigma/enigma.lua
@@ -123,11 +123,11 @@ local GLUE_SPEC_NODE               = node and nodeid"glue_spec"
 local KERN_NODE                    = node and nodeid"kern"
 local DISC_NODE                    = node and nodeid"disc"
 
-local IGNORE_NODES = {
+local IGNORE_NODES = node and {
 --[GLUE_NODE] = true,
   [KERN_NODE] = true,
 --[DISC_NODE] = true,
-}
+} or { }
 
 --[[ichd--
 \startparagraph
@@ -199,10 +199,16 @@ do
     q = 17, r = 18, s = 19, t = 20, u = 21, v = 22, w = 23, x = 24,
     y = 25, z = 26,
   }
+--[[ichd--
+\startparagraph
+The five rotors to simulate.\reference[listing:rotor_wiring]{}
+Their wirings are created from strings at runtime, see below the
+function \luafunction{get_rotors}.
+\stopparagraph
+--ichd]]--
 
   --[[
     Nice: http://www.ellsbury.com/ultraenigmawirings.htm
-    Wirings are created from strings at runtime.
   ]]--
   alpha_sorted = "abcdefghijklmnopqrstuvwxyz"
   raw_rotor_wiring = {
@@ -233,7 +239,7 @@ mnemonic.
   end
 
 --[[ichd--
-\placetable[here][]{The three reflectors and their substitution
+\placetable[here][listing:reflector]{The three reflectors and their substitution
                     rules.}{%
   \starttabulate[|r|l|]
     \NC UKW a \NC AE BJ CM DZ FL GY HX IV KW NR OQ PU ST \NC \NR
@@ -866,7 +872,7 @@ extraction of successive characters from the sequence.
   local p_init = P{
     "init",
     init               = V"whitespace"^-1 * Ct(V"do_init"),
-    do_init            = V"reflector"  * V"whitespace"
+    do_init            = (V"reflector" * V"whitespace")^-1
                        * V"rotors"     * V"whitespace"
                        * V"ring"
                        * (V"whitespace" * V"plugboard")^-1
@@ -1081,12 +1087,22 @@ consists of three elements:
     emit(1, pprint_machine_step, machine.step, machine.name)
   end
 
+--[[ichd--
+\startparagraph
+The day key is entrusted to the function \luafunction{handle_day_key}.
+If the day key is the empty string or \type{nil}, it will ask for a key
+on the terminal. (Cf. below, \at{page}[listing:ask_for_day_key].)
+Lesson: don’t forget providing day keys in your setups when running in
+batch mode.
+\stopparagraph
+--ichd]]--
   local handle_day_key handle_day_key = function (dk, name, old)
     local result
     if not dk or dk == "" then
       dk = ask_for_day_key(name, old)
     end
     result = lpegmatch(p_init, dk)
+    result.reflector = result.reflector or "b"
     -- If we don’t like the key we’re going to ask again. And again....
     return result or handle_day_key(nil, name, dk)
   end
@@ -1286,6 +1302,7 @@ a sanitizer routine and, if so, apply it to its value.
 --[[ichd--
 \startparagraph
 If the machine setting lacks key settings then we’ll go ahead and ask
+\reference[listing:ask_for_day_key]{}%
 the user directly, hence the function \luafunction{ask_for_day_key}.
 We abort after three misses lest we annoy the user \dots
 \stopparagraph
diff --git a/tex/context/third/enigma/t-enigma.mkvi b/tex/context/third/enigma/t-enigma.mkvi
index 84c6ed5..267485f 100644
--- a/tex/context/third/enigma/t-enigma.mkvi
+++ b/tex/context/third/enigma/t-enigma.mkvi
@@ -115,7 +115,7 @@ thirddata = thirddata or { }
 %D \stopdocsection
 
 %D \startdocsection[title=Setup]
-\def\enigma_setup#args{%
+\def\enigma_setup_indeed#args{%
     \ctxlua{
       local enigma = thirddata.enigma
       local current_args =
@@ -132,12 +132,12 @@ thirddata = thirddata or { }
 %D All the logic is at the Lua end, not much to see here …
 %D \stopparagraph
 
-\def\do_setup_enigma[#id][#args]{%
+\def\enigma_setup[#id][#args]{%
   \ifsecondargument
     \edef\currentenigmaid{#id}
     \pushcatcodetable
     \catcodetable \txtcatcodes
-      \enigma_setup{#args}%
+      \enigma_setup_indeed{#args}%
   \else
     \donothing
   \fi
@@ -147,7 +147,7 @@ thirddata = thirddata or { }
 
 \def\setupenigma{%
   \bgroup
-  \dodoubleempty\do_setup_enigma%
+  \dodoubleempty\enigma_setup%
 }
 
 %D \stopdocsection
-- 
cgit v1.2.3