summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-05-16 20:22:00 +0000
committerKarl Berry <karl@freefriends.org>2023-05-16 20:22:00 +0000
commit8e9d8b027e86eefeb1788f42ec5fc0a8c76548ba (patch)
tree23fc8c8906eff72625be83d276d39e516ecb1f41 /Master/texmf-dist/tex/latex/l3kernel
parente66174d7e5c8c2f71571c928e0d6c5a8b037a904 (diff)
l3kernel (16may23)
git-svn-id: svn://tug.org/texlive/trunk@67134 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex708
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.ltx2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty2
4 files changed, 59 insertions, 655 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 2630452ff12..583482f5ba5 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -71,7 +71,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2023-05-11}%
+\def\ExplFileDate{2023-05-15}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -129,23 +129,6 @@
L3 programming layer (code)%
}%
%% File: l3bootstrap.dtx
-\begingroup
- \expandafter\ifx\csname directlua\endcsname\relax
- \else
- \directlua{%
- local i
- local t = { }
- for _,i in pairs(tex.extraprimitives("luatex")) do
- if string.match(i,"^U") then
- if not string.match(i,"^Uchar$") then %$
- table.insert(t,i)
- end
- end
- end
- tex.enableprimitives("", t)
- }%
- \fi
-\endgroup
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname pdfstrcmp\endcsname\relax
\let\pdfstrcmp\strcmp
@@ -183,27 +166,23 @@
\def\ShortText{Required primitives not found}%
\def\LongText%
{%
- The L3 programming layer requires the e-TeX primitives and additional
- \LineBreak functionality as described in the README file.
+ The L3 programming layer requires the e-TeX primitives and the
+ \LineBreak 'pdfTeX extensions' as described in the README file.
\LineBreak
These are available in the engines\LineBreak
- - pdfTeX v1.40.0\LineBreak
- - XeTeX v0.99992\LineBreak
+ - pdfTeX v1.40.20\LineBreak
+ - XeTeX v0.999991\LineBreak
- LuaTeX v1.10\LineBreak
- - e-(u)pTeX mid-2012\LineBreak
+ - e-(u)pTeX v3.8.2\LineBreak
- Prote (2021)\LineBreak
or later.\LineBreak
\LineBreak
}%
\ifnum0%
- \expandafter\ifx\csname expanded\endcsname\relax
- \expandafter\ifx\csname pdfstrcmp\endcsname\relax\else 1\fi
+ \expandafter\ifx\csname luatexversion\endcsname\relax
+ \expandafter\ifx\csname expanded\endcsname\relax\else 1\fi
\else
- \expandafter\ifx\csname luatexversion\endcsname\relax
- 1%
- \else
- \ifnum\luatexversion<110 \else 1\fi
- \fi
+ \ifnum\luatexversion<110 \else 1\fi
\fi
=0 %
\newlinechar`\^^J %
@@ -229,20 +208,6 @@ Type H <return> for immediate help}\def~{\errmessage{%
}%
\fi
\next
-\begingroup
- \def\@tempa{LaTeX2e}%
- \def\next{}%
- \ifx\fmtname\@tempa
- \expandafter\ifx\csname extrafloats\endcsname\relax
- \def\next
- {%
- \RequirePackage{etex}%
- \csname reserveinserts\endcsname{32}%
- }%
- \fi
- \fi
-\expandafter\endgroup
-\next
\protected\edef\ExplSyntaxOff
{%
\protected\def\noexpand\ExplSyntaxOff{}%
@@ -1389,64 +1354,6 @@ Type H <return> for immediate help}\def~{\errmessage{%
\tex_fi:D
\tex_fi:D
\tex_fi:D
-\tex_ifdefined:D \luatexsuppressfontnotfounderror
- \tex_let:D \tex_alignmark:D \luatexalignmark
- \tex_let:D \tex_aligntab:D \luatexaligntab
- \tex_let:D \tex_attribute:D \luatexattribute
- \tex_let:D \tex_attributedef:D \luatexattributedef
- \tex_let:D \tex_catcodetable:D \luatexcatcodetable
- \tex_let:D \tex_clearmarks:D \luatexclearmarks
- \tex_let:D \tex_crampeddisplaystyle:D \luatexcrampeddisplaystyle
- \tex_let:D \tex_crampedscriptscriptstyle:D
- \luatexcrampedscriptscriptstyle
- \tex_let:D \tex_crampedscriptstyle:D \luatexcrampedscriptstyle
- \tex_let:D \tex_crampedtextstyle:D \luatexcrampedtextstyle
- \tex_let:D \tex_fontid:D \luatexfontid
- \tex_let:D \tex_formatname:D \luatexformatname
- \tex_let:D \tex_gleaders:D \luatexgleaders
- \tex_let:D \tex_initcatcodetable:D \luatexinitcatcodetable
- \tex_let:D \tex_latelua:D \luatexlatelua
- \tex_let:D \tex_luaescapestring:D \luatexluaescapestring
- \tex_let:D \tex_luafunction:D \luatexluafunction
- \tex_let:D \tex_mathstyle:D \luatexmathstyle
- \tex_let:D \tex_nokerns:D \luatexnokerns
- \tex_let:D \tex_noligs:D \luatexnoligs
- \tex_let:D \tex_outputbox:D \luatexoutputbox
- \tex_let:D \tex_pageleftoffset:D \luatexpageleftoffset
- \tex_let:D \tex_pagetopoffset:D \luatexpagetopoffset
- \tex_let:D \tex_postexhyphenchar:D \luatexpostexhyphenchar
- \tex_let:D \tex_posthyphenchar:D \luatexposthyphenchar
- \tex_let:D \tex_preexhyphenchar:D \luatexpreexhyphenchar
- \tex_let:D \tex_prehyphenchar:D \luatexprehyphenchar
- \tex_let:D \tex_savecatcodetable:D \luatexsavecatcodetable
- \tex_let:D \tex_scantextokens:D \luatexscantextokens
- \tex_let:D \tex_suppressifcsnameerror:D
- \luatexsuppressifcsnameerror
- \tex_let:D \tex_suppresslongerror:D \luatexsuppresslongerror
- \tex_let:D \tex_suppressmathparerror:D
- \luatexsuppressmathparerror
- \tex_let:D \tex_suppressoutererror:D \luatexsuppressoutererror
- \tex_let:D \tex_Uchar:D \luatexUchar
- \tex_let:D \tex_suppressfontnotfounderror:D
- \luatexsuppressfontnotfounderror
- \tex_let:D \tex_bodydir:D \luatexbodydir
- \tex_let:D \tex_boxdir:D \luatexboxdir
- \tex_let:D \tex_leftghost:D \luatexleftghost
- \tex_let:D \tex_localbrokenpenalty:D \luatexlocalbrokenpenalty
- \tex_let:D \tex_localinterlinepenalty:D
- \luatexlocalinterlinepenalty
- \tex_let:D \tex_localleftbox:D \luatexlocalleftbox
- \tex_let:D \tex_localrightbox:D \luatexlocalrightbox
- \tex_let:D \tex_mathdir:D \luatexmathdir
- \tex_let:D \tex_pagebottomoffset:D \luatexpagebottomoffset
- \tex_let:D \tex_pagedir:D \luatexpagedir
- \tex_let:D \tex_pageheight:D \luatexpageheight
- \tex_let:D \tex_pagerightoffset:D \luatexpagerightoffset
- \tex_let:D \tex_pagewidth:D \luatexpagewidth
- \tex_let:D \tex_pardir:D \luatexpardir
- \tex_let:D \tex_rightghost:D \luatexrightghost
- \tex_let:D \tex_textdir:D \luatextextdir
-\tex_fi:D
\tex_ifnum:D 0
\tex_ifdefined:D \tex_pdftexversion:D 1 \tex_fi:D
\tex_ifdefined:D \tex_luatexversion:D 1 \tex_fi:D
@@ -1480,11 +1387,6 @@ Type H <return> for immediate help}\def~{\errmessage{%
\tex_global:D \tex_let:D \tex_year:D \tex_undefined:D
\tex_fi:D
\tex_endgroup:D
-\tex_ifdefined:D \tex_luatexversion:D
- \tex_let:D \tex_pdftexbanner:D \tex_undefined:D
- \tex_let:D \tex_pdftexrevision:D \tex_undefined:D
- \tex_let:D \tex_pdftexversion:D \tex_undefined:D
-\tex_fi:D
\tex_ifdefined:D \orieveryjob
\tex_let:D \tex_everyjob:D \orieveryjob
\tex_fi:D
@@ -1615,9 +1517,6 @@ Type H <return> for immediate help}\def~{\errmessage{%
\l__exp_internal_tl
}
\cs_set:Npn \use:e #1 { \tex_expanded:D {#1} }
-\tex_ifdefined:D \tex_expanded:D \tex_else:D
- \cs_set:Npn \use:e #1 { \exp_args:Ne \use:n {#1} }
-\tex_fi:D
\cs_set:Npn \use:n #1 {#1}
\cs_set:Npn \use:nn #1#2 {#1#2}
\cs_set:Npn \use:nnn #1#2#3 {#1#2#3}
@@ -2372,15 +2271,8 @@ Type H <return> for immediate help}\def~{\errmessage{%
{ \exp_after:wN \__exp_arg_next:Nnn \cs:w #3 \cs_end: {#1} {#2} }
\cs_new:Npn \::o #1 \::: #2#3
{ \exp_after:wN \__exp_arg_next:nnn \exp_after:wN {#3} {#1} {#2} }
-\cs_if_exist:NTF \tex_expanded:D
- {
- \cs_new:Npn \::e #1 \::: #2#3
- { \tex_expanded:D { \exp_not:n { #1 \::: } { \exp_not:n {#2} {#3} } } }
- }
- {
- \cs_new:Npn \::e #1 \::: #2#3
- { \exp_args:Ne \__exp_arg_next:nnn {#3} {#1} {#2} }
- }
+\cs_new:Npn \::e #1 \::: #2#3
+ { \tex_expanded:D { \exp_not:n { #1 \::: } { \exp_not:n {#2} {#3} } } }
\cs_new:Npn \::f #1 \::: #2#3
{
\exp_after:wN \__exp_arg_next:nnn
@@ -2442,18 +2334,8 @@ Type H <return> for immediate help}\def~{\errmessage{%
{ \exp_after:wN #1 \exp_after:wN #2 \exp_after:wN {#3} }
\cs_new:Npn \exp_args:NNNo #1#2#3#4
{ \exp_after:wN #1 \exp_after:wN#2 \exp_after:wN #3 \exp_after:wN {#4} }
-\cs_if_exist:NTF \tex_expanded:D
- {
- \cs_new:Npn \exp_args:Ne #1#2
- { \exp_after:wN #1 \tex_expanded:D { {#2} } }
- }
- {
- \cs_new:Npn \exp_args:Ne #1#2
- {
- \exp_after:wN #1 \exp_after:wN
- { \exp:w \__exp_e:nn {#2} { } }
- }
- }
+\cs_new:Npn \exp_args:Ne #1#2
+ { \exp_after:wN #1 \tex_expanded:D { {#2} } }
\cs_new:Npn \exp_args:Nf #1#2
{ \exp_after:wN #1 \exp_after:wN { \exp:w \exp_end_continue_f:w #2 } }
\cs_new:Npn \exp_args:Nv #1#2
@@ -2478,16 +2360,12 @@ Type H <return> for immediate help}\def~{\errmessage{%
\exp_after:wN #2
\exp_after:wN { \exp:w \__exp_eval_register:c {#3} }
}
-\cs_if_exist:NTF \tex_expanded:D
+\cs_new:Npn \exp_args:NNe #1#2#3
{
- \cs_new:Npn \exp_args:NNe #1#2#3
- {
- \exp_after:wN #1
- \exp_after:wN #2
- \tex_expanded:D { {#3} }
- }
+ \exp_after:wN #1
+ \exp_after:wN #2
+ \tex_expanded:D { {#3} }
}
- { \cs_new:Npn \exp_args:NNe { \::N \::e \::: } }
\cs_new:Npn \exp_args:NNf #1#2#3
{
\exp_after:wN #1
@@ -2575,15 +2453,8 @@ Type H <return> for immediate help}\def~{\errmessage{%
\exp_after:wN \__exp_arg_last_unbraced:nn
\exp_after:wN { \exp:w \__exp_eval_register:c {#2} } {#1}
}
-\cs_if_exist:NTF \tex_expanded:D
- {
- \cs_new:Npn \::e_unbraced \::: #1#2
- { \tex_expanded:D { \exp_not:n {#1} #2 } }
- }
- {
- \cs_new:Npn \::e_unbraced \::: #1#2
- { \exp:w \__exp_e:nn {#2} {#1} }
- }
+\cs_new:Npn \::e_unbraced \::: #1#2
+ { \tex_expanded:D { \exp_not:n {#1} #2 } }
\cs_new:Npn \::f_unbraced \::: #1#2
{
\exp_after:wN \__exp_arg_last_unbraced:nn
@@ -2599,12 +2470,8 @@ Type H <return> for immediate help}\def~{\errmessage{%
{ \exp_after:wN #1 \exp:w \__exp_eval_register:N #2 }
\cs_new:Npn \exp_last_unbraced:Nv #1#2
{ \exp_after:wN #1 \exp:w \__exp_eval_register:c {#2} }
-\cs_if_exist:NTF \tex_expanded:D
- {
- \cs_new:Npn \exp_last_unbraced:Ne #1#2
- { \exp_after:wN #1 \tex_expanded:D {#2} }
- }
- { \cs_new:Npn \exp_last_unbraced:Ne { \::e_unbraced \::: } }
+\cs_new:Npn \exp_last_unbraced:Ne #1#2
+ { \exp_after:wN #1 \tex_expanded:D {#2} }
\cs_new:Npn \exp_last_unbraced:Nf #1#2
{ \exp_after:wN #1 \exp:w \exp_end_continue_f:w #2 }
\cs_new:Npn \exp_last_unbraced:NNo #1#2#3
@@ -2667,15 +2534,8 @@ Type H <return> for immediate help}\def~{\errmessage{%
\cs_new_eq:NN \__kernel_exp_not:w \tex_unexpanded:D
\cs_new:Npn \exp_not:c #1 { \exp_after:wN \exp_not:N \cs:w #1 \cs_end: }
\cs_new:Npn \exp_not:o #1 { \__kernel_exp_not:w \exp_after:wN {#1} }
-\cs_if_exist:NTF \tex_expanded:D
- {
- \cs_new:Npn \exp_not:e #1
- { \__kernel_exp_not:w \tex_expanded:D { {#1} } }
- }
- {
- \cs_new:Npn \exp_not:e
- { \__kernel_exp_not:w \exp_args:Ne \prg_do_nothing: }
- }
+\cs_new:Npn \exp_not:e #1
+ { \__kernel_exp_not:w \tex_expanded:D { {#1} } }
\cs_new:Npn \exp_not:f #1
{ \__kernel_exp_not:w \exp_after:wN { \exp:w \exp_end_continue_f:w #1 } }
\cs_new:Npn \exp_not:V #1
@@ -2698,282 +2558,6 @@ Type H <return> for immediate help}\def~{\errmessage{%
\fi:
\cs_new:Npn \exp_end_continue_f:nw #1 { `^^@ #1 }
\group_end:
-\cs_if_exist:NF \tex_expanded:D
- {
- \cs_new:Npn \__exp_e:nn #1
- {
- \if_false: { \fi:
- \tl_if_head_is_N_type:nTF {#1}
- { \__exp_e:N }
- {
- \tl_if_head_is_group:nTF {#1}
- { \__exp_e_group:n }
- {
- \tl_if_empty:nTF {#1}
- { \exp_after:wN \__exp_e_end:nn }
- { \exp_after:wN \__exp_e_space:nn }
- \exp_after:wN { \if_false: } \fi:
- }
- }
- #1
- }
- }
- \cs_new:Npn \__exp_e_end:nn #1#2 { \exp_end: #2 }
- \cs_new:Npn \__exp_e_space:nn #1#2
- { \exp_args:Nf \__exp_e:nn {#1} { #2 ~ } }
- \cs_new:Npn \__exp_e_group:n #1
- {
- \exp_after:wN \__exp_e_put:nn
- \exp_after:wN { \exp_after:wN { \exp_after:wN {
- \exp:w \if_false: } \fi: \__exp_e:nn {#1} { } } }
- }
- \cs_new:Npn \__exp_e_put:nn #1
- {
- \exp_args:NNo \exp_args:No \__exp_e_put:nnn
- { \tl_head:n {#1} } {#1}
- }
- \cs_new:Npn \__exp_e_put:nnn #1#2#3
- { \exp_args:No \__exp_e:nn { \use_none:n #2 } { #3 #1 } }
- \cs_new:Npn \__exp_e:N #1
- {
- \exp_after:wN \__exp_e:Nnn
- \exp_after:wN #1
- \exp_after:wN { \if_false: } \fi:
- }
- \cs_new:Npn \__exp_e:Nnn #1
- {
- \if_case:w
- \exp_after:wN \if_meaning:w \exp_not:N #1 #1 1 ~ \fi:
- \token_if_protected_macro:NT #1 { 1 ~ }
- \token_if_protected_long_macro:NT #1 { 1 ~ }
- \if_meaning:w \exp_not:n #1 2 ~ \fi:
- \if_meaning:w \exp_not:N #1 3 ~ \fi:
- \if_meaning:w \tex_the:D #1 4 ~ \fi:
- \if_meaning:w \tex_primitive:D #1 5 ~ \fi:
- 0 ~
- \exp_after:wN \__exp_e_expandable:Nnn
- \or: \exp_after:wN \__exp_e_protected:Nnn
- \or: \exp_after:wN \__exp_e_unexpanded:Nnn
- \or: \exp_after:wN \__exp_e_noexpand:Nnn
- \or: \exp_after:wN \__exp_e_the:Nnn
- \or: \exp_after:wN \__exp_e_primitive:Nnn
- \fi:
- #1
- }
- \cs_new:Npn \__exp_e_protected:Nnn #1#2#3
- { \__exp_e:nn {#2} { #3 #1 } }
- \cs_new:Npn \__exp_e_expandable:Nnn #1#2
- { \exp_args:No \__exp_e:nn { #1 #2 } }
- \cs_new:Npn \__exp_e_primitive:Nnn #1#2
- {
- \if_false: { \fi:
- \tl_if_head_is_N_type:nTF {#2}
- { \__exp_e_primitive_aux:NNw #1 }
- {
- \msg_expandable_error:nnn { kernel } { e-type }
- { Missing~primitive~name }
- \__exp_e_primitive_aux:NNw #1 \c_empty_tl
- }
- #2
- }
- }
- \cs_new:Npn \__exp_e_primitive_aux:NNw #1#2
- {
- \exp_after:wN \__exp_e_primitive_aux:NNnn
- \exp_after:wN #1
- \exp_after:wN #2
- \exp_after:wN { \if_false: } \fi:
- }
- \cs_new:Npn \__exp_e_primitive_aux:NNnn #1#2
- {
- \exp_args:Nf \str_case_e:nnTF { \cs_to_str:N #2 }
- {
- { unexpanded } { \__exp_e_unexpanded:Nnn \exp_not:n }
- { noexpand } { \__exp_e_noexpand:Nnn \exp_not:N }
- { the } { \__exp_e_the:Nnn \tex_the:D }
- {
- \sys_if_engine_xetex:T { pdf }
- \sys_if_engine_luatex:T { pdf }
- primitive
- } { \__exp_e_primitive:Nnn #1 }
- }
- { \__exp_e_primitive_other:NNnn #1 #2 }
- }
- \cs_new:Npn \__exp_e_primitive_other:NNnn #1#2#3
- {
- \exp_args:No \__exp_e_primitive_other_aux:nNNnn
- { #1 #2 #3 }
- #1 #2 {#3}
- }
- \cs_new:Npn \__exp_e_primitive_other_aux:nNNnn #1#2#3#4#5
- {
- \str_if_eq:nnTF {#1} { #2 #3 #4 }
- { \__exp_e:nn {#4} { #5 #2 #3 } }
- { \__exp_e:nn {#1} {#5} }
- }
- \cs_new:Npn \__exp_e_noexpand:Nnn #1#2
- {
- \tl_if_head_is_N_type:nTF {#2}
- { \__exp_e_put:nn } { \__exp_e:nn } {#2}
- }
- \cs_new:Npn \__exp_e_unexpanded:Nnn #1 { \__exp_e_unexpanded:nn }
- \cs_new:Npn \__exp_e_unexpanded:nn #1
- {
- \tl_if_head_is_N_type:nTF {#1}
- {
- \exp_args:Nf \__exp_e_unexpanded:nn
- { \__exp_e_unexpanded:nN {#1} #1 }
- }
- {
- \tl_if_head_is_group:nTF {#1}
- { \__exp_e_put:nn }
- {
- \tl_if_empty:nTF {#1}
- {
- \msg_expandable_error:nnn
- { kernel } { e-type }
- { \unexpanded missing~brace }
- \__exp_e_end:nn
- }
- { \exp_args:Nf \__exp_e_unexpanded:nn }
- }
- {#1}
- }
- }
- \cs_new:Npn \__exp_e_unexpanded:nN #1#2
- {
- \exp_after:wN \if_meaning:w \exp_not:N #2 #2
- \exp_after:wN \use_i:nn
- \else:
- \exp_after:wN \use_ii:nn
- \fi:
- {
- \token_if_eq_catcode:NNTF #2 \c_space_token
- { \exp_stop_f: }
- {
- \token_if_eq_meaning:NNTF #2 \scan_stop:
- { \exp_stop_f: }
- {
- \msg_expandable_error:nnn
- { kernel } { e-type }
- { \unexpanded missing~brace }
- { }
- }
- }
- }
- {
- \token_if_eq_meaning:NNTF #2 \exp_not:N
- {
- \exp_args:No \tl_if_head_is_N_type:nT { \use_none:n #1 }
- { \__exp_e_unexpanded:N }
- }
- { \exp_after:wN \exp_stop_f: #2 }
- }
- }
- \cs_new:Npn \__exp_e_unexpanded:N #1
- {
- \exp_after:wN \if_meaning:w \exp_not:N #1 #1 \else:
- \exp_after:wN \use_i:nn
- \fi:
- \exp_stop_f: #1
- }
- \cs_new:Npn \__exp_e_the:Nnn #1#2
- {
- \tl_if_head_is_N_type:nTF {#2}
- { \if_false: { \fi: \__exp_e_the:N #2 } }
- { \exp_args:No \__exp_e:nn { \tex_the:D #2 } }
- }
- \cs_new:Npn \__exp_e_the:N #1
- {
- \exp_after:wN \if_meaning:w \exp_not:N #1 #1
- \exp_after:wN \use_i:nn
- \else:
- \exp_after:wN \use_ii:nn
- \fi:
- {
- \if_meaning:w \tex_toks:D #1
- \exp_after:wN \__exp_e_the_toks:wnn \int_value:w
- \exp_after:wN \__exp_e_the_toks:n
- \exp_after:wN { \int_value:w \if_false: } \fi:
- \else:
- \__exp_e_if_toks_register:NTF #1
- { \exp_after:wN \__exp_e_the_toks_reg:N }
- {
- \exp_after:wN \__exp_e:nn \exp_after:wN {
- \tex_the:D \if_false: } \fi:
- }
- \exp_after:wN #1
- \fi:
- }
- {
- \exp_after:wN \__exp_e_the:Nnn \exp_after:wN ?
- \exp_after:wN { \exp:w \if_false: } \fi:
- \exp_after:wN \exp_end: #1
- }
- }
- \cs_new:Npn \__exp_e_the_toks_reg:N #1
- {
- \exp_after:wN \__exp_e_put:nn \exp_after:wN {
- \exp_after:wN {
- \tex_the:D \if_false: } \fi: #1 }
- }
- \cs_new:Npn \__exp_e_the_toks:wnn #1; #2
- {
- \exp_args:No \__exp_e_put:nnn
- { \tex_the:D \tex_toks:D #1 } { ? #2 }
- }
- \cs_new:Npn \__exp_e_the_toks:n #1
- {
- \tl_if_head_is_N_type:nTF {#1}
- { \exp_after:wN \__exp_e_the_toks:N \if_false: { \fi: #1 } }
- { ; {#1} }
- }
- \cs_new:Npn \__exp_e_the_toks:N #1
- {
- \if_int_compare:w 10 < 9 \token_to_str:N #1 \exp_stop_f:
- \exp_after:wN \use_i:nn
- \else:
- \exp_after:wN \use_ii:nn
- \fi:
- {
- #1
- \exp_after:wN \__exp_e_the_toks:n
- \exp_after:wN { \if_false: } \fi:
- }
- {
- \exp_after:wN ;
- \exp_after:wN { \if_false: } \fi: #1
- }
- }
- \prg_new_conditional:Npnn \__exp_e_if_toks_register:N #1 { TF }
- {
- \token_if_toks_register:NTF #1 { \prg_return_true: }
- {
- \cs_if_exist:cTF
- {
- __exp_e_the_
- \exp_after:wN \cs_to_str:N
- \token_to_meaning:N #1
- :
- } { \prg_return_true: } { \prg_return_false: }
- }
- }
- \cs_new_eq:NN \__exp_e_the_XeTeXinterchartoks: ?
- \cs_new_eq:NN \__exp_e_the_errhelp: ?
- \cs_new_eq:NN \__exp_e_the_everycr: ?
- \cs_new_eq:NN \__exp_e_the_everydisplay: ?
- \cs_new_eq:NN \__exp_e_the_everyeof: ?
- \cs_new_eq:NN \__exp_e_the_everyhbox: ?
- \cs_new_eq:NN \__exp_e_the_everyjob: ?
- \cs_new_eq:NN \__exp_e_the_everymath: ?
- \cs_new_eq:NN \__exp_e_the_everypar: ?
- \cs_new_eq:NN \__exp_e_the_everyvbox: ?
- \cs_new_eq:NN \__exp_e_the_output: ?
- \cs_new_eq:NN \__exp_e_the_pdfpageattr: ?
- \cs_new_eq:NN \__exp_e_the_pdfpageresources: ?
- \cs_new_eq:NN \__exp_e_the_pdfpagesattr: ?
- \cs_new_eq:NN \__exp_e_the_pdfpkmode: ?
- }
\cs_new_eq:NN \s__cs_mark \scan_stop:
\cs_new_eq:NN \s__cs_stop \scan_stop:
\cs_new:Npn \q__cs_recursion_stop { \q__cs_recursion_stop }
@@ -3214,22 +2798,8 @@ Type H <return> for immediate help}\def~{\errmessage{%
}
\cs_new_protected:Npn \__cs_generate_internal_test_aux:w
##1 #1 ##2 \s__cs_mark ##3 ##4 \s__cs_stop {##3}
- \cs_if_exist:NTF \tex_expanded:D
- {
- \cs_new_eq:NN \__cs_generate_internal_test:Nw
- \__cs_generate_internal_test_aux:w
- }
- {
- \cs_new_protected:Npn \__cs_generate_internal_test:Nw ##1
- {
- \if_meaning:w \tex_expanded:D ##1
- \exp_after:wN \__cs_generate_internal_test_aux:w
- \exp_after:wN #1
- \else:
- \exp_after:wN \__cs_generate_internal_test_aux:w
- \fi:
- }
- }
+ \cs_new_eq:NN \__cs_generate_internal_test:Nw
+ \__cs_generate_internal_test_aux:w
}
\exp_args:No \__cs_tmp:w { \token_to_str:N p }
\cs_new_protected:Npn \__cs_generate_internal_one_go:NNn #1#2#3
@@ -4415,40 +3985,15 @@ Type H <return> for immediate help}\def~{\errmessage{%
\cs_new:Npn \__tl_trim_mark: {}
}
\__tl_tmp:w { ~ }
-\cs_if_exist:NTF \tex_expanded:D
+\cs_new:Npn \tl_head:n #1
{
- \cs_new:Npn \tl_head:n #1
- {
- \__kernel_exp_not:w \tex_expanded:D
- { { \if_false: { \fi: \__tl_head_aux:n #1 { } } } }
- }
- \cs_new:Npn \__tl_head_aux:n #1
- {
- \__kernel_exp_not:w {#1}
- \exp_after:wN \use_none:n \exp_after:wN { \if_false: } \fi:
- }
+ \__kernel_exp_not:w \tex_expanded:D
+ { { \if_false: { \fi: \__tl_head_aux:n #1 { } } } }
}
+\cs_new:Npn \__tl_head_aux:n #1
{
- \cs_new:Npn \tl_head:n #1
- {
- \__kernel_exp_not:w
- \if_false: { \fi: \__tl_head_auxi:nw #1 { } \s__tl_stop }
- }
- \cs_new:Npn \__tl_head_auxi:nw #1#2 \s__tl_stop
- {
- \exp_after:wN \__tl_head_auxii:n \exp_after:wN {
- \if_false: } \fi: {#1}
- }
- \exp_args:Nno \use:n
- { \cs_new:Npn \__tl_head_auxii:n #1 }
- {
- \__tl_if_empty_if:o { \use_none:n #1 }
- \exp_after:wN \use_ii:nnn
- \fi:
- \use_ii:nn
- {#1}
- { \if_false: { \fi: \__tl_head_auxi:nw #1 } }
- }
+ \__kernel_exp_not:w {#1}
+ \exp_after:wN \use_none:n \exp_after:wN { \if_false: } \fi:
}
\cs_generate_variant:Nn \tl_head:n { V , v , f }
\cs_new:Npn \tl_head:w #1#2 \q_stop {#1}
@@ -8927,20 +8472,6 @@ Type H <return> for immediate help}\def~{\errmessage{%
\exp_after:wN \exp_end:
\tex_Ucharcat:D #1 \exp_stop_f: #2 \exp_stop_f:
}
- \cs_if_exist:NF \tex_expanded:D
- {
- \cs_new_eq:NN \__char_generate_auxii:nnw \__char_generate_aux:nnw
- \cs_gset:Npn \__char_generate_aux:nnw #1#2#3 \exp_end:
- {
- #3
- \if_int_compare:w #2 = 13 \exp_stop_f:
- \msg_expandable_error:nn { char } { active }
- \else:
- \__char_generate_auxii:nnw {#1} {#2}
- \fi:
- \exp_end:
- }
- }
\else:
\char_set_catcode_active:n { 0 }
\tl_set:Nn \l__char_tmp_tl { \exp_not:N ^^@ \exp_not:N \or: }
@@ -9803,42 +9334,24 @@ Type H <return> for immediate help}\def~{\errmessage{%
}
\cs_new:Npn \__prop_count:nn #1#2 { + 1 }
\cs_generate_variant:Nn \prop_count:N { c }
-\cs_if_exist:NTF \tex_expanded:D
+\cs_new:Npn \prop_to_keyval:N #1
{
- \cs_new:Npn \prop_to_keyval:N #1
- {
- \__kernel_exp_not:w
- \prop_if_empty:NTF #1
- { {} }
- {
- \exp_after:wN \exp_after:wN \exp_after:wN
+ \__kernel_exp_not:w
+ \prop_if_empty:NTF #1
+ { {} }
+ {
+ \exp_after:wN \exp_after:wN \exp_after:wN
+ {
+ \tex_expanded:D
{
- \tex_expanded:D
- {
- \__kernel_exp_not:w { \use_none:n }
- \prop_map_function:NN #1 \__prop_to_keyval:nn
- }
+ \__kernel_exp_not:w { \use_none:n }
+ \prop_map_function:NN #1 \__prop_to_keyval:nn
}
- }
- }
- \cs_new:Npn \__prop_to_keyval:nn #1#2
- { , ~ {#1} =~ { \__kernel_exp_not:w {#2} } }
- }
- {
- \cs_new:Npn \prop_to_keyval:N #1
- {
- \__kernel_exp_not:w
- \prop_if_empty:NTF #1
- { {} }
- {
- \prop_map_function:NN #1 \__prop_to_keyval:nnw
- \__prop_to_keyval_exp_after:wN { \use_none:n }
- }
- }
- \cs_new_eq:NN \__prop_to_keyval_exp_after:wN \exp_after:wN
- \cs_new:Npn \__prop_to_keyval:nnw #1#2#3 \__prop_to_keyval_exp_after:wN #4
- { #3 \__prop_to_keyval_exp_after:wN { #4 , ~ {#1} =~ {#2} } }
+ }
+ }
}
+\cs_new:Npn \__prop_to_keyval:nn #1#2
+ { , ~ {#1} =~ { \__kernel_exp_not:w {#2} } }
\prg_new_protected_conditional:Npnn \prop_pop:NnN #1#2#3 { T , F , TF }
{
\__prop_split:NnTF #1 {#2}
@@ -10870,11 +10383,6 @@ Type H <return> for immediate help}\def~{\errmessage{%
{ Relation~'#1'~not~among~=,<,>,==,!=,<=,>=. }
\msg_new:nnn { kernel } { zero-step }
{ Zero~step~size~for~function~#1. }
-\cs_if_exist:NF \tex_expanded:D
- {
- \msg_new:nnn { kernel } { e-type }
- { #1 ~ in~e-type~argument }
- }
\msg_new:nnn { clist } { show }
{
The~comma~list~ \tl_if_empty:nF {#1} { #1 ~ }
@@ -11880,18 +11388,18 @@ Type H <return> for immediate help}\def~{\errmessage{%
\tl_if_blank:nTF {#2}
{
\seq_map_tokens:Nn \l_file_search_path_seq
- { \__file_full_name_aux:Nnn \seq_map_break:n {#1} }
+ { \__file_full_name_aux:Nnnn \seq_map_break:n {#1} { / } }
\cs_if_exist:NT \input@path
{
\tl_map_tokens:Nn \input@path
- { \__file_full_name_aux:Nnn \tl_map_break:n {#1} }
+ { \__file_full_name_aux:Nnnn \tl_map_break:n {#1} { } }
}
\__file_name_end:
}
{ \__file_ext_check:nn {#1} {#2} }
}
-\cs_new:Npn \__file_full_name_aux:Nnn #1#2#3
- { \exp_args:Ne \__file_full_name_aux:nN { \tl_to_str:n {#3} / #2 } #1 }
+\cs_new:Npn \__file_full_name_aux:Nnnn #1#2#3#4
+ { \exp_args:Ne \__file_full_name_aux:nN { \tl_to_str:n {#4} #3 #2 } #1 }
\cs_new:Npn \__file_full_name_aux:nN #1
{ \exp_args:Nne \__file_full_name_aux:nnN {#1} { \__file_full_name_aux:n {#1} } }
\cs_new:Npn \__file_full_name_aux:nnN #1 #2 #3
@@ -11941,21 +11449,6 @@ Type H <return> for immediate help}\def~{\errmessage{%
{#3}
}
}
-\cs_if_exist:NF \tex_filesize:D
- {
- \cs_gset:Npn \file_full_name:n #1
- {
- \msg_expandable_error:nnn
- { kernel } { primitive-not-available }
- { \(pdf)filesize }
- }
- }
-\msg_new:nnnn { kernel } { primitive-not-available }
- { Primitive~\token_to_str:N #1 not~available }
- {
- The~version~of~your~TeX~engine~does~not~provide~functionality~equivalent~to~
- the~#1~primitive.
- }
\cs_new_protected:Npn \file_get_full_name:nN #1#2
{
\file_get_full_name:nNF {#1} #2
@@ -11973,50 +11466,6 @@ Type H <return> for immediate help}\def~{\errmessage{%
\cs_generate_variant:Nn \file_get_full_name:nNT { V }
\cs_generate_variant:Nn \file_get_full_name:nNF { V }
\cs_generate_variant:Nn \file_get_full_name:nNTF { V }
-\cs_if_exist:NF \tex_filesize:D
- {
- \prg_set_protected_conditional:Npnn \file_get_full_name:nN #1#2 { T , F , TF }
- {
- \__kernel_tl_set:Nx \l__file_base_name_tl
- { \__kernel_file_name_sanitize:n {#1} }
- \__file_get_full_name_search:nN { } \use:n
- \seq_map_inline:Nn \l_file_search_path_seq
- { \__file_get_full_name_search:nN { ##1 / } \seq_map_break:n }
- \cs_if_exist:NT \input@path
- {
- \tl_map_inline:Nn \input@path
- { \__file_get_full_name_search:nN { ##1 } \tl_map_break:n }
- }
- \tl_set:Nn \l__file_full_name_tl { \q_no_value }
- \prg_break_point:
- \quark_if_no_value:NTF \l__file_full_name_tl
- {
- \ior_close:N \g__file_internal_ior
- \prg_return_false:
- }
- {
- \file_parse_full_name:VNNN \l__file_full_name_tl
- \l__file_dir_str \l__file_name_str \l__file_ext_str
- \str_if_empty:NT \l__file_ext_str
- {
- \__kernel_ior_open:No \g__file_internal_ior
- { \l__file_full_name_tl .tex }
- \ior_if_eof:NF \g__file_internal_ior
- { \tl_put_right:Nn \l__file_full_name_tl { .tex } }
- }
- \ior_close:N \g__file_internal_ior
- \tl_set_eq:NN #2 \l__file_full_name_tl
- \prg_return_true:
- }
- }
- }
-\cs_new_protected:Npn \__file_get_full_name_search:nN #1#2
- {
- \__kernel_tl_set:Nx \l__file_full_name_tl
- { \tl_to_str:n {#1} \l__file_base_name_tl }
- \__kernel_ior_open:No \g__file_internal_ior \l__file_full_name_tl
- \ior_if_eof:NF \g__file_internal_ior { #2 { \prg_break: } }
- }
\ior_new:N \g__file_internal_ior
\cs_new:Npn \file_size:n #1
{ \__file_details:nn {#1} { size } }
@@ -12125,26 +11574,6 @@ Type H <return> for immediate help}\def~{\errmessage{%
{ \prg_return_false: }
{ \prg_return_true: }
}
-\cs_if_exist:NF \tex_filesize:D
- {
- \cs_set_protected:Npn \__file_get_details:nnN #1#2#3
- {
- \tl_clear:N #3
- \msg_error:nnx
- { kernel } { primitive-not-available }
- {
- \token_to_str:N \(pdf)file
- \str_case:nn {#2}
- {
- { hex_dump } { dump }
- { mdfive_hash } { mdfivesum }
- { timestamp } { moddate }
- { size } { size }
- }
- }
- \prg_return_false:
- }
- }
\cs_new_protected:Npn \file_get_hex_dump:nnnN #1#2#3#4
{
\file_get_hex_dump:nnnNF {#1} {#2} {#3} #4
@@ -12201,17 +11630,6 @@ Type H <return> for immediate help}\def~{\errmessage{%
}
}
\cs_new_eq:NN \__file_timestamp:n \tex_filemoddate:D
-\cs_if_exist:NF \__file_timestamp:n
- {
- \prg_set_conditional:Npnn \file_compare_timestamp:nNn #1#2#3
- { p , T , F , TF }
- {
- \msg_expandable_error:nnn
- { kernel } { primitive-not-available }
- { \(pdf)filemoddate }
- \prg_return_false:
- }
- }
\prg_new_protected_conditional:Npnn \file_if_exist:n #1 { T , F , TF }
{
\file_get_full_name:nNTF {#1} \l__file_full_name_tl
@@ -13053,26 +12471,14 @@ Type H <return> for immediate help}\def~{\errmessage{%
\group_begin:
\cs_set_protected:Npn \__keyval_tmp:w #1#2
{
- \cs_if_exist:NTF \tex_expanded:D
+ \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3
{
- \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3
+ \__kernel_exp_not:w \tex_expanded:D
{
- \__kernel_exp_not:w \tex_expanded:D
- {
- {
- \__keyval_loop_active:nnw {##1} {##2}
- \s__keyval_mark ##3 #1 \s__keyval_tail #1
- }
- }
- }
- }
- {
- \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3
- {
- \group_align_safe_begin:
- \__keyval_loop_active:nnw {##1} {##2}
- \s__keyval_mark ##3 #1 \s__keyval_tail #1
- \group_align_safe_end:
+ {
+ \__keyval_loop_active:nnw {##1} {##2}
+ \s__keyval_mark ##3 #1 \s__keyval_tail #1
+ }
}
}
\cs_new_eq:NN \keyval_parse:NNn \keyval_parse:nnn
@@ -13211,9 +12617,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
\__keyval_loop_other:nnw {##2}
}
}
- \cs_if_exist:NTF \tex_expanded:D
- { \__keyval_tmp:w { } { } }
- { \__keyval_tmp:w \group_align_safe_end: \group_align_safe_begin: }
+ \__keyval_tmp:w { } { }
\group_end:
\cs_new:Npn \__keyval_if_empty:w #1 \s__keyval_mark \s__keyval_stop { }
\cs_new:Npn \__keyval_if_blank:w \s__keyval_mark #1 { \__keyval_if_empty:w \s__keyval_mark }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index 0dd38b9eb57..8cfb6fcccf3 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2023-05-11}%
+\def\ExplFileDate{2023-05-15}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\catcode`\_=11
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
index e9b7a23e101..0d0af2b2616 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2023-05-11}%
+\def\ExplFileDate{2023-05-15}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\catcode`\_=11
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index 7df6fceb5e4..ea9ae8078db 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2023-05-11}%
+\def\ExplFileDate{2023-05-15}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%