summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-02-23 21:10:03 +0000
committerKarl Berry <karl@freefriends.org>2023-02-23 21:10:03 +0000
commit475e83fff3141e2a85e09558f86e0ff1b62bd96a (patch)
tree827d1a7870432ba26bcdc38e42741796665d28bd /Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
parentd4a963839eed143fad031114eec397d3327e60f3 (diff)
l3kernel (23feb23)
git-svn-id: svn://tug.org/texlive/trunk@66094 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx30
1 files changed, 22 insertions, 8 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
index 425fd5cf079..efe38cd6e7c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-02-07}
+% \date{Released 2023-02-22}
%
% \maketitle
%
@@ -83,6 +83,13 @@
% $13$); for codepoints in the ASCII range, the given \meta{catcode}
% will be used. To allow the result of this function to be used
% inside a expansion context, the result is protected by \cs{exp_not:n}.
+%
+% \begin{texnote}
+% Users of (u)p\TeX{} note that these engines are treated as $8$-bit in
+% this context. In particular, for up\TeX{}, irrespective of the
+% \tn{kcatcode} of the \meta{codepoint}, any value outside the ASCII range
+% will result in a series of active bytes being generated.
+% \end{texnote}
% \end{function}
%
% \begin{function}[EXP, added = 2022-10-09]
@@ -340,19 +347,29 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[EXP]{\codepoint_to_nfd:n}
+% \begin{macro}[EXP]{\codepoint_to_nfd:n, \@@_to_nfd:n}
% \begin{macro}[EXP]{\@@_to_nfd:nn}
% \begin{macro}[EXP]{\@@_to_nfd:nnn}
% \begin{macro}[EXP]{\@@_to_nfd:nnnn}
-% \begin{macro}[EXP]{\@@_to_nfd_generate:nn}
-% \begin{macro}[EXP]{\@@_to_nfd_generate:n}
-% \begin{macro}[EXP]{\@@_to_nfd_generate:nnnn}
% Converted to NFD is a potentially-recursive process: the key is to
% check if we get the input codepoint back again. As far as possible,
% we use the same path for all engines.
% \begin{macrocode}
\cs_new:Npn \codepoint_to_nfd:n #1
+ { \exp_args:Ne \@@_to_nfd:n { \int_eval:n {#1} } }
+\cs_new:Npn \@@_to_nfd:n #1
{ \@@_to_nfd:nn {#1} { \char_value_catcode:n {#1} } }
+\bool_lazy_or:nnF
+ { \sys_if_engine_luatex_p: }
+ { \sys_if_engine_xetex_p: }
+ {
+ \cs_gset:Npn \@@_to_nfd:n #1
+ {
+ \int_compare:nNnTF {#1} > { "80 }
+ { \@@_to_nfd:nn {#1} { 12 } }
+ { \@@_to_nfd:nn {#1} { \char_value_catcode:n {#1} } }
+ }
+ }
\cs_new:Npn \@@_to_nfd:nn #1#2
{
\exp_args:Ne \@@_to_nfd:nnn
@@ -374,9 +391,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \subsection{Data loader}
%