From d4e5c239b0d5cd9e974e172efc304c64446d8011 Mon Sep 17 00:00:00 2001
From: Robert Alessi <alessi@robertalessi.net>
Date: Sun, 3 Jul 2016 19:24:23 +0200
Subject: arabluatex.sty now accepts Buckwalter scheme

---
 arabluatex.dtx     | 11 ++++++-----
 arabluatex.lua     | 10 ++++++++--
 arabluatex_voc.lua | 13 ++-----------
 3 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/arabluatex.dtx b/arabluatex.dtx
index 8fb206b..736c44d 100644
--- a/arabluatex.dtx
+++ b/arabluatex.dtx
@@ -2385,12 +2385,12 @@ wa-ya.sIru ta.hta 'l-jild-i
   \ifx\@tempa\al@mode@fullvoc%
   \bgroup\textdir TRT\arabicfont%
   \luadirect{tex.sprint(processfullvoc(\luastringN{#2},
-    \luastringO{\al@arb@rules}))}\egroup%
+    \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup%
   \else%
   \ifx\@tempa\al@mode@novoc%
   \bgroup\textdir TRT\arabicfont%
   \luadirect{tex.sprint(processnovoc(\luastringN{#2},
-    \luastringO{\al@arb@rules}))}\egroup%
+    \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup%
   \else%
   \ifx\@tempa\al@mode@trans%
   \bgroup\textdir TLT\al@trans@style%
@@ -2416,17 +2416,18 @@ wa-ya.sIru ta.hta 'l-jild-i
   \ifx\@tempa\al@mode@fullvoc%
   \bgroup\pardir TRT\textdir TRT\arabicfont%
   \luadirect{tex.sprint(processfullvoc(\luastringO{\BODY},
-    \luastringO{\al@arb@rules}))}\egroup%
+    \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup%
   \else%
   \ifx\@tempa\al@mode@novoc%
   \bgroup\pardir TRT\textdir TRT\arabicfont%
   \luadirect{tex.sprint(processnovoc(\luastringO{\BODY},
-    \luastringO{\al@arb@rules}))}\egroup%
+    \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup%
   \else \ifx\@tempa\al@mode@trans%
   \bgroup\pardir TLT\textdir TLT\al@trans@style%
   \luadirect{tex.sprint(processtrans(\luastringO{\BODY},
     \luastringO{\al@trans@convention},
-    \luastringO{\al@arb@rules}))}\egroup%
+    \luastringO{\al@arb@rules},
+    \luastringO{\al@input@scheme}))}\egroup%
   \else \fi\fi\fi\fi}[\par]
 %    \end{macrocode}
 % \end{environment}
diff --git a/arabluatex.lua b/arabluatex.lua
index 5400a62..b21ee63 100644
--- a/arabluatex.lua
+++ b/arabluatex.lua
@@ -485,12 +485,15 @@ function processvoc(str, rules, scheme)
 return str
 end
 
-function processfullvoc(str, rules)
+function processfullvoc(str, rules, scheme)
    str = "\\arb{".. str.."}"
    str = takeoutcapetc(str)
    str = protectarb(str)
    str = breakcmd(str)
    str = holdcmd(str)
+   if scheme == "buckwalter" then
+      str = processbuckw(str)
+      else end
    if rules == "easy" then
       str = fullvoceasy(str)
    elseif rules == "dflt" then
@@ -500,12 +503,15 @@ function processfullvoc(str, rules)
 return str
 end
 
-function processnovoc(str, rules)
+function processnovoc(str, rules, scheme)
    str = "\\arb{".. str.."}"
    str = takeoutcapetc(str)
    str = protectarb(str)
    str = breakcmd(str)
    str = holdcmd(str)
+   if scheme == "buckwalter" then
+      str = processbuckw(str)
+      else end
    if rules == "easy" then
       str = novoceasy(str)
    elseif rules == "dflt" then
diff --git a/arabluatex_voc.lua b/arabluatex_voc.lua
index 5c1fabf..59e861f 100644
--- a/arabluatex_voc.lua
+++ b/arabluatex_voc.lua
@@ -114,21 +114,13 @@ buckwalter = {
    {a="^Aal%-?", b="al-"},
    {a="(%W)Aal%-?", b="%1al-"},
    {a="([%-%s])Al%-?", b="%1\'l-"},
---   {a="([fw]a?)([tw]a?)Al", b="%1-%2-\'l-"},
---   {a="([fw]a?)(bi?)Al", b="%1-%2-\'l-"},
---   {a="([fw]a?)(l[ai]?l)Al", b="%1-%2-l-"},
---   {a="(al%-[%a])(%~)", b="%1"},
---   {a="([fltw]a?)Al%-?", b="%1-\'l-"},
---   {a="(bi?)Al%-?", b="%1-'l-"},
---   {a="(li?)Al%-?", b="%1-l-"},
    {a="(\'l%-[%g])(%~)", b="%1"},
    -- digraphs begin
-   {a="([^a])A", b="%1\"A"},
    {a="aA", b="A"},
    {a="uw([^%~])", b="U%1"},
    {a="iy([^%~])", b="I%1"},
    -- digraphs end
-   -- madda: get it back
+   -- madda: get it back now
    {a="%@", b="A\"\'"},
    -- šadda:
    {a="([%g])(%~)", b="%1%1"},
@@ -149,8 +141,7 @@ buckwalter = {
    {a="K", b="iN"},
    {a="o", b="\""},
    -- hard-coded connective alif
-   {a="%[", b="ٱ"},
---   {a="%_", b="--"},
+   {a="%[", b="ٱ"}
 }
 
 hamza = {
-- 
cgit v1.2.3