%D \module
%D   [       file=s-reg-01,
%D        version=2005.04.25,
%D          title=\CONTEXT\ Style File,
%D       subtitle=Extra Regime Support,
%D         author=Hans Hagen,
%D           date=\currentdate,
%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.

%D \macros
%D   {showregime}
%D
%D This code is moved from the kernel to here. (We could make it
%D auto-loadable).

\startluacode
--[[ldx--
<p>The following code is rather <l n='context'/> specific.</p>
--ldx]]--

function regimes.show(regime)
    regime = regimes.synonyms[regime] or regime
    local r = regimes.data[regime]
    if r then
        local chardata = characters.data
        context.starttabulate { "|rT|T|rT|lT|lT|lT|" }
        for k, v in ipairs(r) do
            local chr = chardata[v]
            if chr then
                context.NC() context(k)
                context.NC() context.getvalue(chr.contextname])
                context.NC() context("%U+05X",v)
                context.NC() context(chr.contextname)
                context.NC() context(chr.category)
                context.NC() context(chr.description)
                context.NC() context.NR()
            else
                -- can't happen
            end
        end
        context.stoptabulate()
    else
        context("unknown regime %s",regime)
    end
end
\stopluacode

\unprotect

\def\showregime
  {\dosingleempty\doshowregime}

\def\doshowregime[#1]%
  {\ctxlua{regimes.show("#1")}}

\protect \endinput
