From bb1d5d5bb3f0deddd2c473b3881cd785b002d768 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 13 Jan 2019 23:32:04 +0000 Subject: l3kernel (13jan19) git-svn-id: svn://tug.org/texlive/trunk@49692 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/l3kernel/expl3-code.tex | 178 +++++++++++---------- .../tex/latex/l3kernel/expl3-generic.tex | 2 +- Master/texmf-dist/tex/latex/l3kernel/expl3.sty | 2 +- Master/texmf-dist/tex/latex/l3kernel/l3doc.cls | 17 +- .../texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def | 4 +- Master/texmf-dist/tex/latex/l3kernel/l3dvips.def | 4 +- Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def | 4 +- Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def | 4 +- .../texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def | 4 +- 9 files changed, 123 insertions(+), 96 deletions(-) (limited to 'Master/texmf-dist/tex/latex/l3kernel') 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 } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index bd13fee69db..055504a318f 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 Copyright (C) 1990-2019 The LaTeX3 Project -\def\ExplFileDate{2019-01-01}% +\def\ExplFileDate{2019-01-12}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \def\tempa{LaTeX2e}% diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 0f612fabb66..916b6f9dc7c 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 Copyright (C) 1990-2019 The LaTeX3 Project -\def\ExplFileDate{2019-01-01}% +\def\ExplFileDate{2019-01-12}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index 06c6ecfe292..5544bd831be 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -373,6 +373,8 @@ { The~deprecated~function(s)~'#1'~should~have~been~removed~on~#2. } \msg_new:nnn { l3doc } { date-format } { The~date~'#1'~should~be~given~in~YYYY-MM-DD~format. } +\msg_new:nnn { l3doc } { future-date } + { The~added/updated~date~'#2'~of~'#1'~is~in~the~future. } \msg_new:nnn { l3doc } { syntax-nested-function } { The~'syntax'~environment~should~be~used~in~the~ @@ -968,8 +970,8 @@ \bool_set_true:N \l__codedoc_macro_noTF_bool \bool_set_true:N \l__codedoc_macro_TF_bool } , - added .code:n = { \__codedoc_date_set:Nn \l__codedoc_date_added_tl {#1} }, - updated .code:n = { \__codedoc_date_set:Nn \l__codedoc_date_updated_tl {#1} } , + added .code:n = { \__codedoc_date_set_past:Nn \l__codedoc_date_added_tl {#1} }, + updated .code:n = { \__codedoc_date_set_past:Nn \l__codedoc_date_updated_tl {#1} } , deprecated .code:n = { \__codedoc_deprecated_on:n {#1} } , tested .code:n = { } , label .code:n = @@ -991,6 +993,17 @@ \tl_set:Nn #1 { 1970-01-01 } } } +\cs_new_protected:Npn \__codedoc_date_set_past:Nn #1#2 + { + \__codedoc_date_set:Nn #1 {#2} + \exp_args:No \__codedoc_date_compare:nNnT + {#1} > { \tex_year:D - \tex_month:D - \tex_day:D } + { + \msg_error:nnxx { l3doc } { future-date } + { \tl_to_str:N \l__codedoc_macro_argument_tl } + {#1} + } + } \cs_new_protected:Npn \__codedoc_deprecated_on:n #1 { \__codedoc_date_set:Nn \l__codedoc_tmpa_tl {#1} diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def index 819dd25cd80..0758d9633dc 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def @@ -18,9 +18,9 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3drivers.dtx Copyright(C) 2011-2019 The LaTeX3 Project +%% File: l3drivers.dtx Copyright (C) 2011-2019 The LaTeX3 Project \ProvidesExplFile - {l3dvidpfmx.def}{2019-01-01}{} + {l3dvidpfmx.def}{2019-01-12}{} {L3 Experimental driver: dvipdfmx} \cs_new_eq:NN \__driver_literal:e \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def index 3ef9fbce6e9..b139b5bd720 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def @@ -18,9 +18,9 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3drivers.dtx Copyright(C) 2011-2019 The LaTeX3 Project +%% File: l3drivers.dtx Copyright (C) 2011-2019 The LaTeX3 Project \ProvidesExplFile - {l3dvips.def}{2019-01-01}{} + {l3dvips.def}{2019-01-12}{} {L3 Experimental driver: dvips} \cs_new_eq:NN \__driver_literal:e \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def index d700de61c2f..972201ec9f6 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def @@ -18,9 +18,9 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3drivers.dtx Copyright(C) 2011-2019 The LaTeX3 Project +%% File: l3drivers.dtx Copyright (C) 2011-2019 The LaTeX3 Project \ProvidesExplFile - {l3dvisvgm.def}{2019-01-01}{} + {l3dvisvgm.def}{2019-01-12}{} {L3 Experimental driver: dvisvgm} \cs_new_eq:NN \__driver_literal:e \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def index fae4aa68443..9531b22f3fe 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def @@ -18,9 +18,9 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3drivers.dtx Copyright(C) 2011-2019 The LaTeX3 Project +%% File: l3drivers.dtx Copyright (C) 2011-2019 The LaTeX3 Project \ProvidesExplFile - {l3pdfmode.def}{2019-01-01}{} + {l3pdfmode.def}{2019-01-12}{} {L3 Experimental driver: PDF mode} \cs_new_eq:NN \__driver_literal:e \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def index 3065d039387..a78664e5f89 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def @@ -18,9 +18,9 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3drivers.dtx Copyright(C) 2011-2019 The LaTeX3 Project +%% File: l3drivers.dtx Copyright (C) 2011-2019 The LaTeX3 Project \ProvidesExplFile - {l3xdvidpfmx.def}{2019-01-01}{} + {l3xdvidpfmx.def}{2019-01-12}{} {L3 Experimental driver: xdvipdfmx} \cs_new_eq:NN \__driver_literal:e \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 -- cgit v1.2.3