summaryrefslogtreecommitdiff
path: root/tex/context/base/core-con.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/core-con.tex')
-rw-r--r--tex/context/base/core-con.tex20
1 files changed, 20 insertions, 0 deletions
diff --git a/tex/context/base/core-con.tex b/tex/context/base/core-con.tex
index ecb7d9ee8..97ff27801 100644
--- a/tex/context/base/core-con.tex
+++ b/tex/context/base/core-con.tex
@@ -136,6 +136,8 @@
%D \showsetup{\y!characters}
%D \showsetup{\y!Characters}
+\beginTEX
+
\def\doconvertcharacters#1#2%
{\ifnum#2>26
\bgroup
@@ -156,6 +158,24 @@
#1{#2}% pure expansion, used in references
\fi}
+\endTEX
+
+%D A fully expandable alternative:
+
+\beginETEX \numexpr
+
+\def\doconvertcharacters#1#2%
+ {\ifcase#2\else
+ \ifnum#2>26
+ \expandafter\doconvertcharacters\expandafter#1\expandafter{\the\numexpr(#2+12)/26-1\relax}%
+ \expandafter#1\expandafter{\the\numexpr#2-((#2+12)/26-)*26\relax}%
+ \else
+ \expandafter#1\expandafter{\number#2}%
+ \fi
+ \fi}
+
+\endETEX
+
\def\characters{\doconvertcharacters\character}
\def\Characters{\doconvertcharacters\Character}