summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex178
1 files changed, 96 insertions, 82 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 79b6ec56e25..86c7aecf56b 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -63,7 +63,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx Copyright (C) 1990-2019 The LaTeX3 Project
-\def\ExplFileDate{2019-01-01}%
+\def\ExplFileDate{2019-01-12}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -10514,11 +10514,11 @@
\cs_new_protected:Npn \__ior_map_inline_loop:NNN #1#2#3
{
#2 #3 \l__ior_internal_tl
- \ior_if_eof:NF #3
- {
- \exp_args:No #1 \l__ior_internal_tl
- \__ior_map_inline_loop:NNN #1#2#3
- }
+ \if_eof:w #3
+ \exp_after:wN \use_none:nnnnnnn
+ \fi:
+ \exp_args:No #1 \l__ior_internal_tl
+ \__ior_map_inline_loop:NNN #1#2#3
}
\int_const:Nn \c_log_iow { -1 }
\int_const:Nn \c_term_iow
@@ -13017,7 +13017,7 @@
}
}
%% File: l3fp.dtx Copyright (C) 2011-2019 The LaTeX3 Project
-%% File: l3fp-aux.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3fp-aux.dtx Copyright (C) 2011-2019 The LaTeX3 Project
\cs_new_eq:NN \__fp_int_eval:w \tex_numexpr:D
\cs_new_eq:NN \__fp_int_eval_end: \scan_stop:
\cs_new_eq:NN \__fp_int_to_roman:w \tex_romannumeral:D
@@ -13596,7 +13596,7 @@
{ Invalid~operation~ (#1) #3 (#2) }
\__kernel_msg_new:nnn { kernel } { fp-unknown-type }
{ Unknown~type~for~'#1' }
-%% File: l3fp-round.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3fp-round.dtx Copyright (C) 2011-2019 The LaTeX3 Project
\cs_new:Npn \__fp_parse_word_trunc:N
{ \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_zero:NNN }
\cs_new:Npn \__fp_parse_word_floor:N
@@ -18482,7 +18482,7 @@
{ \__fp_asin_auxi_o:NnNww #1 {#3} #4 }
}
}
-%% File: l3fp-convert.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3fp-convert.dtx Copyright (C) 2011-2019 The LaTeX3 Project
\cs_new:Npn \__fp_tuple_convert:Nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 ;
{
\int_case:nnF { \__fp_array_count:n {#2} }
@@ -24014,7 +24014,7 @@
}
}
}
-%% File: l3color-base.dtx Copyright(C) 2011,2012,2014,2016-2019 The LaTeX3 Project
+%% File: l3color-base.dtx Copyright (C) 2011,2012,2014,2016-2019 The LaTeX3 Project
\cs_new_eq:NN \color_group_begin: \group_begin:
\cs_new_eq:NN \color_group_end: \group_end:
\cs_new_protected:Npn \color_ensure_current:
@@ -24037,7 +24037,7 @@
{ \driver_color_spot:nn {#1} {#2} }
\tl_new:N \l__color_current_tl
\tl_set:Nn \l__color_current_tl { gray~0 }
-%% File: l3coffins.dtx Copyright(C) 2010-2019 The LaTeX3 Project
+%% File: l3coffins.dtx Copyright (C) 2010-2019 The LaTeX3 Project
\box_new:N \l__coffin_internal_box
\dim_new:N \l__coffin_internal_dim
\tl_new:N \l__coffin_internal_tl
@@ -24919,6 +24919,26 @@
{
\group_begin:
\cs_set_eq:NN \__char_generate:w \tex_Uchar:D
+ \cs_set:Npx \__char_generate:n #1
+ {
+ \sys_if_engine_luatex:TF
+ {
+ \exp_not:N \lua_now:e
+ {
+ l3kernel.charcat
+ (
+ \exp_not:N \tex_number:D #1 ,
+ \exp_not:N \tex_the:D \tex_catcode:D #1
+ )
+ }
+ }
+ {
+ \exp_not:N \tex_Ucharcat:D
+ \exp_not:N \tex_number:D #1 ~
+ \c_space_tl
+ \exp_not:N \tex_the:D \tex_catcode:D #1 ~
+ }
+ }
\ior_open:Nn \g__char_data_ior { UnicodeData.txt }
\cs_set_protected:Npn \__char_data_auxi:w
#1 ; #2 ; #3 ; #4 ; #5 ; #6 ; #7 ; #8 ; #9 ;
@@ -24926,68 +24946,58 @@
\cs_set_protected:Npn \__char_data_auxii:w
#1 ; #2 ; #3 ; #4 ; #5 ; #6 ; #7 \q_stop
{
- \tl_if_blank:nF {#7}
- {
- \str_if_eq:nnF {#5} {#7}
- {
- \tl_const:cx
- { c__char_mixed_case_ \__char_generate:w "#1 _tl }
- {
- \char_generate:nn { "#7 }
- { \char_value_catcode:n { "#7 } }
- }
- }
- }
+ \cs_set_nopar:Npn \l__char_tmpa_tl {#7}
+ \reverse_if:N \if_meaning:w \l__char_tmpa_tl \c_empty_tl
+ \cs_set_nopar:Npn \l__char_tmpb_tl {#5}
+ \reverse_if:N \if_meaning:w \l__char_tmpa_tl \l__char_tmpb_tl
+ \tl_const:cx
+ { c__char_mixed_case_ \__char_generate:w "#1 _tl }
+ { \__char_generate:n { "#7 } }
+ \fi:
+ \fi:
}
\ior_map_inline:Nn \g__char_data_ior
{
- \tl_if_blank:nF {#1}
- { \__char_data_auxi:w #1 \q_stop }
+ \cs_set_nopar:Npn \l__char_tmpa_tl {#1}
+ \reverse_if:N \if_meaning:w \l__char_tmpa_tl \c_space_tl
+ \__char_data_auxi:w #1 \q_stop
+ \fi:
}
\ior_close:N \g__char_data_ior
\ior_open:Nn \g__char_data_ior { CaseFolding.txt }
\cs_set_protected:Npn \__char_data_auxi:w #1 ;~ #2 ;~ #3 ; #4 \q_stop
{
- \str_if_eq:nnTF {#2} { C }
- {
- \int_compare:nNnF
- { \char_value_lccode:n {"#1} } = {"#3}
- {
- \tl_const:cx
- { c__char_fold_case_ \__char_generate:w "#1 _tl }
- {
- \char_generate:nn { "#3 }
- { \char_value_catcode:n { "#3 } }
- }
- }
- }
- {
- \str_if_eq:nnT {#2} { F }
- { \__char_data_auxii:w #1 ~ #3 ~ \q_stop }
- }
+ \if:w \tl_head:n { #2 ? } C
+ \reverse_if:N \if_int_compare:w
+ \char_value_lccode:n {"#1} = "#3 ~
+ \tl_const:cx
+ { c__char_fold_case_ \__char_generate:w "#1 _tl }
+ { \__char_generate:n { "#3 } }
+ \fi:
+ \else:
+ \if:w \tl_head:n { #2 ? } F
+ \__char_data_auxii:w #1 ~ #3 ~ \q_stop
+ \fi:
+ \fi:
}
\cs_set_protected:Npn \__char_data_auxii:w #1 ~ #2 ~ #3 ~ #4 \q_stop
{
\tl_const:cx { c__char_fold_case_ \__char_generate:w "#1 _tl }
{
- \char_generate:nn { "#2 }
- { \char_value_catcode:n { "#2 } }
- \char_generate:nn { "#3 }
- { \char_value_catcode:n { "#3 } }
+ \__char_generate:n { "#2 }
+ \__char_generate:n { "#3 }
\tl_if_blank:nF {#4}
- {
- \char_generate:nn { "#4 }
- { \char_value_catcode:n { "#4 } }
- }
+ { \__char_generate:n { "#4 } }
}
}
\ior_str_map_inline:Nn \g__char_data_ior
{
- \tl_if_blank:nF {#1}
- {
- \str_if_eq:eeF { \tl_head:n {#1} } { \c_hash_str }
- { \__char_data_auxi:w #1 \q_stop }
- }
+ \cs_set_nopar:Npn \l__char_tmpa_tl {#1}
+ \reverse_if:N \if_meaning:w \l__char_tmpa_tl \c_empty_tl
+ \reverse_if:N \if:w \tl_head:n { #1 ? } \c_hash_str
+ \__char_data_auxi:w #1 \q_stop
+ \fi:
+ \fi:
}
\ior_close:N \g__char_data_ior
\ior_open:Nn \g__char_data_ior { SpecialCasing.txt }
@@ -25006,31 +25016,30 @@
{
\tl_const:cx { c__char_ #2 _case_ \__char_generate:w "#1 _tl }
{
- \char_generate:nn { "#3 }
- { \char_value_catcode:n { "#3 } }
- \char_generate:nn { "#4 }
- { \char_value_catcode:n { "#4 } }
+ \__char_generate:n { "#3 }
+ \__char_generate:n { "#4 }
\tl_if_blank:nF {#5}
- {
- \char_generate:nn { "#5 }
- { \char_value_catcode:n { "#5 } }
- }
+ { \__char_generate:n { "#5 } }
}
}
}
\ior_str_map_inline:Nn \g__char_data_ior
{
- \tl_if_blank:nF {#1}
- {
- \str_if_eq:eeTF { \tl_head:n {#1} } { \c_hash_str }
+ \cs_set_nopar:Npn \l__char_tmpa_tl {#1}
+ \reverse_if:N \if_meaning:w \l__char_tmpa_tl \c_empty_tl
+ \if:w \tl_head:n { #1 ? } \c_hash_str
+ \cs_set_nopar:Npx \l__char_tmpb_tl
{
- \str_if_eq:eeT
- {#1}
- { \c_hash_str \c_space_tl Conditional~Mappings }
- { \ior_map_break: }
+ \c_hash_str \c_space_tl
+ \tl_to_str:n { Conditional~Mappings }
}
- { \__char_data_auxi:w #1 \q_stop }
- }
+ \if_meaning:w \l__char_tmpa_tl \l__char_tmpb_tl
+ \exp_after:wN \exp_after:wN \exp_after:wN \ior_map_break:
+ \fi:
+ \else:
+ \__char_data_auxi:w #1 \q_stop
+ \fi:
+ \fi:
}
\ior_close:N \g__char_data_ior
\group_end:
@@ -26810,34 +26819,39 @@
\exp_after:wN \__tl_tmp:w \l__tl_internal_a_tl
\__tl_loop:nn
}
- \cs_set_protected:Npn \__tl_tmp:w #1#2#3#4#5#6#7#8
+ \cs_set_protected:Npn \__tl_tmp:nnnn #1#2#3#4#5
{
\tl_const:cx
{
- c__tl_lower_case_
- \char_generate:nn {#1} { 12 }
+ c__tl_ #1 _case_
\char_generate:nn {#2} { 12 }
+ \char_generate:nn {#3} { 12 }
_tl
}
{
\exp_after:wN \exp_after:wN \exp_after:wN
- \exp_not:N \char_generate:nn {#5} { 13 }
+ \exp_not:N \char_generate:nn {#4} { 13 }
\exp_after:wN \exp_after:wN \exp_after:wN
- \exp_not:N \char_generate:nn {#6} { 13 }
+ \exp_not:N \char_generate:nn {#5} { 13 }
}
+ }
+ \cs_set_protected:Npn \__tl_tmp:w #1#2#3#4#5#6#7#8
+ {
\tl_const:cx
{
- c__tl_upper_case_
- \char_generate:nn {#5} { 12 }
- \char_generate:nn {#6} { 12 }
+ c__tl_lower_case_
+ \char_generate:nn {#1} { 12 }
+ \char_generate:nn {#2} { 12 }
_tl
}
{
\exp_after:wN \exp_after:wN \exp_after:wN
- \exp_not:N \char_generate:nn {#1} { 13 }
+ \exp_not:N \char_generate:nn {#5} { 13 }
\exp_after:wN \exp_after:wN \exp_after:wN
- \exp_not:N \char_generate:nn {#2} { 13 }
+ \exp_not:N \char_generate:nn {#6} { 13 }
}
+ \__tl_tmp:nnnn { upper } {#5} {#6} {#1} {#2}
+ \__tl_tmp:nnnn { mixed } {#5} {#6} {#1} {#2}
}
\__tl_loop:nn
{ 00C0 } { 00E0 }