summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/xint
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-06-12 21:13:46 +0000
committerKarl Berry <karl@freefriends.org>2021-06-12 21:13:46 +0000
commit02f0ed6606343f8a2ba496ea151952735a9f0189 (patch)
treea574013a01400e2bb1ca521fbe7267d0f2f9a317 /Master/texmf-dist/tex/generic/xint
parentae3bb8bde6eb63119eac5deaf3f94d95b8f689dc (diff)
xint (12jun21)
git-svn-id: svn://tug.org/texlive/trunk@59565 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint')
-rw-r--r--Master/texmf-dist/tex/generic/xint/xint.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintbinhex.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintcfrac.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintcore.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintexpr.sty240
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintfrac.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintgcd.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintkernel.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintlog.sty6
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintseries.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xinttools.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xinttrig.sty6
12 files changed, 184 insertions, 104 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty
index 63f05c06767..e200b4a03f5 100644
--- a/Master/texmf-dist/tex/generic/xint/xint.sty
+++ b/Master/texmf-dist/tex/generic/xint/xint.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4h 2021/05/27
+%% The xint bundle 1.4i 2021/06/11
%% Copyright (C) 2013-2021 by Jean-Francois Burnol
%% xint: Expandable operations on big integers
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty (loaded by xintcore.sty)
\XINT_providespackage
\ProvidesPackage{xint}%
- [2021/05/27 v1.4h Expandable operations on big integers (JFB)]%
+ [2021/06/11 v1.4i Expandable operations on big integers (JFB)]%
\long\def\xint_firstofthree #1#2#3{#1}%
\long\def\xint_secondofthree #1#2#3{#2}%
\long\def\xint_thirdofthree #1#2#3{#3}%
diff --git a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
index 48afdc11baf..7a533988971 100644
--- a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4h 2021/05/27
+%% The xint bundle 1.4i 2021/06/11
%% Copyright (C) 2013-2021 by Jean-Francois Burnol
%% xintbinhex: Expandable binary and hexadecimal conversions
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintbinhex}%
- [2021/05/27 v1.4h Expandable binary and hexadecimal conversions (JFB)]%
+ [2021/06/11 v1.4i Expandable binary and hexadecimal conversions (JFB)]%
\newcount\xint_c_ii^xv \xint_c_ii^xv 32768
\newcount\xint_c_ii^xvi \xint_c_ii^xvi 65536
\def\XINT_tmpa #1{\ifx\relax#1\else
diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
index de061db67dc..d22b77d4c57 100644
--- a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4h 2021/05/27
+%% The xint bundle 1.4i 2021/06/11
%% Copyright (C) 2013-2021 by Jean-Francois Burnol
%% xintcfrac: Expandable continued fractions with xint package
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintcfrac}%
- [2021/05/27 v1.4h Expandable continued fractions with xint package (JFB)]%
+ [2021/06/11 v1.4i Expandable continued fractions with xint package (JFB)]%
\def\xintCFrac {\romannumeral0\xintcfrac }%
\def\xintcfrac #1%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xintcore.sty b/Master/texmf-dist/tex/generic/xint/xintcore.sty
index ab8034d48dd..8319611b1d8 100644
--- a/Master/texmf-dist/tex/generic/xint/xintcore.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintcore.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4h 2021/05/27
+%% The xint bundle 1.4i 2021/06/11
%% Copyright (C) 2013-2021 by Jean-Francois Burnol
%% xintcore: Expandable arithmetic on big integers
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintcore}%
- [2021/05/27 v1.4h Expandable arithmetic on big integers (JFB)]%
+ [2021/06/11 v1.4i Expandable arithmetic on big integers (JFB)]%
\csname XINT_Clamped_istrapped\endcsname
\csname XINT_ConversionSyntax_istrapped\endcsname
\csname XINT_DivisionByZero_istrapped\endcsname
diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
index 8701d09e126..82f698d67ba 100644
--- a/Master/texmf-dist/tex/generic/xint/xintexpr.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4h 2021/05/27
+%% The xint bundle 1.4i 2021/06/11
%% Copyright (C) 2013-2021 by Jean-Francois Burnol
%% xintexpr: Expandable expression parser
%% ---------------------------------------------------------------
@@ -82,7 +82,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintexpr}%
- [2021/05/27 v1.4h Expandable expression parser (JFB)]%
+ [2021/06/11 v1.4i Expandable expression parser (JFB)]%
\catcode`! 11
\let\XINT_Cmp \xintiiCmp
\def\XINTfstop{\noexpand\XINTfstop}%
@@ -424,8 +424,38 @@
\let\XINT:NEhook:x:select:obey\empty
\let\XINT:NEhook:x:listsel\empty
\let\XINT:NEhook:f:reverse\empty
-\def\XINT:NEhook:f:from:delim:u #1#2^{#1#2^}%
-\def\XINT:NEhook:f:noeval:from:braced:u#1#2^{#1{#2}}%
+\def\XINT:NEhook:f:from:delim:u #1#2^%
+{%
+ \expandafter\XINT_fooof_checkifnumber\expandafter#1\string#2^%
+}%
+\def\XINT_fooof_checkifnumber#1#2%
+{%
+ \expandafter#1%
+ \romannumeral0\expanded{\if ^#2^\else
+ \if\bgroup#2\noexpand\XINT_fooof_no\else
+ \noexpand\XINT_fooof_yes#2\fi\fi}%
+}%
+\def\XINT_fooof_yes#1^{{#1}^}%
+\def\XINT_fooof_no{\expandafter{\iffalse}\fi}%
+\def\XINT:NEhook:f:LFL #1{\expandafter#1\expandafter}%
+\def\XINT:NEhook:r:check #1^%
+{%
+ \expandafter\XINT:NEhook:r:check_a\string#1^%
+}%
+\let\XINT:NEsaved:r:check \XINT:NEhook:r:check
+\def\XINT:NEhook:r:check_a #1%
+{%
+ \if ^#1\xint_dothis\xint_c_\fi
+ \if\bgroup#1\xint_dothis\XINT:NEhook:r:check_no\fi
+ \xint_orthat{\XINT:NEhook:r:check_yes#1}%
+}%
+\def\XINT:NEhook:r:check_no
+{%
+ \expandafter\XINT:NEhook:r:check_no_b
+ \expandafter\xint_c_\expandafter{\iffalse}\fi
+}%
+\def\XINT:NEhook:r:check_no_b#1^{#1}%
+\def\XINT:NEhook:r:check_yes#1^{\xint_c_{#1}}%
\let\XINT:NEhook:branch\expandafter
\let\XINT:NEhook:seqx\empty
\let\XINT:NEhook:iter\expandafter
@@ -836,35 +866,36 @@
\def\XINT_tmpa #1#2#3{%
\def #1##1%
{%
- \ifcsname XINT_#3_func_##1\endcsname
- \csname XINT_#3_func_##1\expandafter\endcsname
- \romannumeral`&&@\expandafter#2%
- \else
+ \csname
+ XINT_\ifcsname XINT_#3_func_##1\endcsname
+ #3_func_##1\expandafter\endcsname\romannumeral`&&@\expandafter#2%
+ \romannumeral\else
\ifcsname XINT_expr_onliteral_##1\endcsname
- \csname XINT_expr_onliteral_##1\expandafter\expandafter\expandafter
- \endcsname
+ expr_onliteral_##1\expandafter\endcsname\romannumeral
\else
- \csname XINT_#3_func_\XINT_expr_unknown_function {##1}%
- \expandafter\endcsname
- \romannumeral`&&@\expandafter\expandafter\expandafter#2%
- \fi
- \fi
- }%
+ \ifcsname XINT_expr_var*_##1\endcsname
+ expr_var*_##1\expandafter\endcsname\romannumeral
+ \else
+ #3_func_\XINT_expr_unknown_function {##1}%
+ \expandafter\endcsname\romannumeral`&&@\expandafter#2%
+ \romannumeral
+ \fi\fi\fi\xint_c_
+ }%
}%
-\def\XINT_expr_unknown_function #1%
- {\XINT_expandableerror{`#1' is unknown, say `Isome_func' or I use 0.}}%
-\def\XINT_expr_func_ #1#2#3{#1#2{{0}}}%
-\let\XINT_flexpr_func_\XINT_expr_func_
-\let\XINT_iiexpr_func_\XINT_expr_func_
\xintFor #1 in {expr,flexpr,iiexpr} \do {%
\expandafter\XINT_tmpa
\csname XINT_#1_op_`\expandafter\endcsname
\csname XINT_#1_oparen\endcsname
{#1}%
}%
+\def\XINT_expr_unknown_function #1%
+ {\XINT_expandableerror{`#1' is unknown, say `Isome_func' or I use 0.}}%
+\def\XINT_expr_func_ #1#2#3{#1#2{{0}}}%
+\let\XINT_flexpr_func_\XINT_expr_func_
+\let\XINT_iiexpr_func_\XINT_expr_func_
\def\XINT_expr_op__ #1% op__ with two _'s
{%
- \ifcsname XINT_expr_onliteral_#1\endcsname
+ \ifcsname XINT_expr_var*_#1\endcsname
\csname XINT_expr_var_#1\expandafter\endcsname
\romannumeral`&&@\expandafter\XINT_expr_getop
\else
@@ -1899,11 +1930,11 @@
}%
\def\XINT_expr_defvar_one_b #1%
{%
- \XINT_global
- \expandafter\edef\csname XINT_expr_var_#1\endcsname
+ \XINT_global
+ \expandafter\edef\csname XINT_expr_var_#1\endcsname
{{\expandafter\noexpand\csname XINT_expr_varvalue_#1\endcsname}}%
\XINT_global
- \expandafter\edef\csname XINT_expr_onliteral_#1\endcsname
+ \expandafter\edef\csname XINT_expr_var*_#1\endcsname
{\XINT_expr_prec_tacit *\csname XINT_expr_var_#1\endcsname(}%
\ifxintverbose\xintMessage{xintexpr}{Info}
{Variable #1 \ifxintglobaldefs globally \fi
@@ -1943,35 +1974,62 @@
\else
\edef\XINT_defvar_tmpb{#1#2\relax}%
\edef\XINT_defvar_tmpd{\expandafter\xintLength\expandafter{\XINT_defvar_tmpb}}%
- \let\XINT_defvar_tmpe\empty
- \if1\XINT_defvar_tmpd
- \def\XINT_defvar_tmpe{unpacked }%
+ \ifnum\XINT_defvar_tmpd=\xint_c_i
\oodef\XINT_defvar_tmpb{\expandafter\xint_firstofone\XINT_defvar_tmpb}%
- \edef\XINT_defvar_tmpd{\expandafter\xintLength\expandafter{\XINT_defvar_tmpb}}%
- \fi
- \ifnum\XINT_defvar_tmpc=\XINT_defvar_tmpd\space
- \xintAssignArray\xintCSVtoList\XINT_defvar_tmpa\to\XINT_defvar_tmpvar
- \xintAssignArray\xintApply\XINT_embrace{\XINT_defvar_tmpb}\to\XINT_defvar_tmpval
- \def\XINT_defvar_tmpd{1}%
- \xintloop
- \expandafter\XINT_expr_defvar_one
- \csname XINT_defvar_tmpvar\XINT_defvar_tmpd\expandafter\endcsname
- \csname XINT_defvar_tmpval\XINT_defvar_tmpd\endcsname
- \ifnum\XINT_defvar_tmpd<\XINT_defvar_tmpc\space
- \edef\XINT_defvar_tmpd{\the\numexpr\XINT_defvar_tmpd+1}%
- \repeat
- \xintRelaxArray\XINT_defvar_tmpvar
- \xintRelaxArray\XINT_defvar_tmpval
- \else
- \xintMessage {xintexpr}{Error}
- {Aborting: mismatch between number of variables (\XINT_defvar_tmpc)
- and number of \XINT_defvar_tmpe values (\XINT_defvar_tmpd).}%
+ \if0\expandafter\expandafter\expandafter\XINT_defvar_checkifnutple
+ \expandafter\string\XINT_defvar_tmpb _\xint_bye
+ \odef\XINT_defvar_tmpb{\expandafter{\XINT_defvar_tmpb}}%
+ \else
+ \edef\XINT_defvar_tmpd{\expandafter\xintLength\expandafter{\XINT_defvar_tmpb}}%
+ \fi
\fi
+ \xintAssignArray\xintCSVtoList\XINT_defvar_tmpa\to\XINT_defvar_tmpvar
+ \def\XINT_defvar_tmpe{1}%
+ \expandafter\XINT_expr_defvar_multiple\XINT_defvar_tmpb\relax
+ \fi
+}%
+\def\XINT_defvar_checkifnutple#1%
+{%
+ \if#1_1\fi
+ \if#1\bgroup1\fi
+ 0\xint_bye
+}%
+\def\XINT_expr_defvar_multiple
+{%
+ \ifnum\XINT_defvar_tmpe<\XINT_defvar_tmpc\space
+ \expandafter\XINT_expr_defvar_multiple_one
+ \else
+ \expandafter\XINT_expr_defvar_multiple_last\expandafter\empty
+ \fi
+}%
+\def\XINT_expr_defvar_multiple_one
+{%
+ \ifnum\XINT_defvar_tmpe>\XINT_defvar_tmpd\space
+ \expandafter\XINT_expr_defvar_one
+ \csname XINT_defvar_tmpvar\XINT_defvar_tmpe\endcsname{}%
+ \edef\XINT_defvar_tmpe{\the\numexpr\XINT_defvar_tmpe+1}%
+ \expandafter\XINT_expr_defvar_multiple
+ \else
+ \expandafter\XINT_expr_defvar_multiple_one_a
\fi
+}%
+\def\XINT_expr_defvar_multiple_one_a #1%
+{%
+ \expandafter\XINT_expr_defvar_one
+ \csname XINT_defvar_tmpvar\XINT_defvar_tmpe\endcsname{{#1}}%
+ \edef\XINT_defvar_tmpe{\the\numexpr\XINT_defvar_tmpe+1}%
+ \XINT_expr_defvar_multiple
+}%
+\def\XINT_expr_defvar_multiple_last #1\relax
+{%
+ \expandafter\XINT_expr_defvar_one
+ \csname XINT_defvar_tmpvar\XINT_defvar_tmpe\endcsname{#1}%
+ \xintRelaxArray\XINT_defvar_tmpvar
\let\XINT_defvar_tmpa\empty
\let\XINT_defvar_tmpb\empty
\let\XINT_defvar_tmpc\empty
\let\XINT_defvar_tmpd\empty
+ \let\XINT_defvar_tmpe\empty
}%
\catcode`~ 3
\catcode`: 11
@@ -1993,7 +2051,7 @@
\XINT_global\expandafter
\let\csname XINT_expr_var_\XINT_unvar_tmpa\endcsname\xint_undefined
\XINT_global\expandafter
- \let\csname XINT_expr_onliteral_\XINT_unvar_tmpa\endcsname\xint_undefined
+ \let\csname XINT_expr_var*_\XINT_unvar_tmpa\endcsname\xint_undefined
\ifxintverbose\xintMessage {xintexpr}{Info}
{Variable \XINT_unvar_tmpa\space has been
\ifxintglobaldefs globally \fi ``unassigned''.}%
@@ -2013,10 +2071,10 @@
\expandafter\let\csname XINT_expr_var_\XINT_tmpa/old\expandafter\endcsname
\csname XINT_expr_var_\XINT_tmpa\expandafter\endcsname
\fi
- \ifcsname XINT_expr_onliteral_\XINT_tmpa\endcsname
+ \ifcsname XINT_expr_var*_\XINT_tmpa\endcsname
\XINT_global
- \expandafter\let\csname XINT_expr_onliteral_\XINT_tmpa/old\expandafter\endcsname
- \csname XINT_expr_onliteral_\XINT_tmpa\expandafter\endcsname
+ \expandafter\let\csname XINT_expr_var*_\XINT_tmpa/old\expandafter\endcsname
+ \csname XINT_expr_var*_\XINT_tmpa\expandafter\endcsname
\fi
\expandafter\XINT_global
\expanded
@@ -2026,7 +2084,7 @@
\expandafter\XINT_global
\expanded
{\edef\expandafter\noexpand
- \csname XINT_expr_onliteral_\XINT_tmpa\endcsname ##1\relax !\XINT_tmpa##2}%
+ \csname XINT_expr_var*_\XINT_tmpa\endcsname ##1\relax !\XINT_tmpa##2}%
{\XINT_expr_prec_tacit *{##2}(##1\relax !\XINT_tmpa{##2}}%)
}%
\xintApplyUnbraced \XINT_expr_makedummy {abcdefghijklmnopqrstuvwxyz}%
@@ -2038,13 +2096,13 @@
\ifxintglobaldefs globally \fi usable as dummy variable.}%
\fi
}%
-\def\XINT_expr_var_nil{{}}%
-\def\XINT_expr_var_None{{{}}}% ? tentative
-\def\XINT_expr_var_false{{{0}}}% Maple, TeX
-\def\XINT_expr_var_true{{{1}}}%
-\def\XINT_expr_var_False{{{0}}}% Python
-\def\XINT_expr_var_True{{{1}}}%
\catcode`* 12
+\XINT_expr_defvar_one{nil}{}%
+\XINT_expr_defvar_one{None}{{}}% ? tentative
+\XINT_expr_defvar_one{false}{{0}}% Maple, TeX
+\XINT_expr_defvar_one{true}{{1}}%
+\XINT_expr_defvar_one{False}{{0}}% Python
+\XINT_expr_defvar_one{True}{{1}}%
\def\xintensuredummy #1{%
\XINT_expr_makedummy{#1}%
\ifxintverbose\xintMessage {xintexpr}{Info}%
@@ -2060,10 +2118,10 @@
\expandafter\let\csname XINT_expr_var_\XINT_tmpa\expandafter\endcsname
\csname XINT_expr_var_\XINT_tmpa/old\expandafter\endcsname
\fi
- \ifcsname XINT_expr_onliteral_\XINT_tmpa/old\endcsname
+ \ifcsname XINT_expr_var*_\XINT_tmpa/old\endcsname
\XINT_global
- \expandafter\let\csname XINT_expr_onliteral_\XINT_tmpa\expandafter\endcsname
- \csname XINT_expr_onliteral_\XINT_tmpa/old\expandafter\endcsname
+ \expandafter\let\csname XINT_expr_var*_\XINT_tmpa\expandafter\endcsname
+ \csname XINT_expr_var*_\XINT_tmpa/old\expandafter\endcsname
\fi
}%
\def\xintrestorevariable #1{%
@@ -2147,7 +2205,7 @@
\expandafter\let\csname XINT_expr_precedence_;)\endcsname\xint_c_i
\catcode`* 11
\def\XINT_expr_var_@ #1~#2{{#2}#1~{#2}}%
-\def\XINT_expr_onliteral_@ #1~#2{\XINT_expr_prec_tacit *{#2}(#1~{#2}}%
+\def\XINT_expr_var*_@ #1~#2{\XINT_expr_prec_tacit *{#2}(#1~{#2}}%
\expandafter
\def\csname XINT_expr_var_@1\endcsname #1~#2{{{#2}}#1~{#2}}%
\expandafter
@@ -2156,13 +2214,13 @@
\def\csname XINT_expr_var_@3\endcsname #1~#2#3#4{{{#4}}#1~{#2}{#3}{#4}}%
\expandafter
\def\csname XINT_expr_var_@4\endcsname #1~#2#3#4#5{{{#5}}#1~{#2}{#3}{#4}{#5}}%
-\expandafter\def\csname XINT_expr_onliteral_@1\endcsname #1~#2%
+\expandafter\def\csname XINT_expr_var*_@1\endcsname #1~#2%
{\XINT_expr_prec_tacit *{{#2}}(#1~{#2}}%
-\expandafter\def\csname XINT_expr_onliteral_@2\endcsname #1~#2#3%
+\expandafter\def\csname XINT_expr_var*_@2\endcsname #1~#2#3%
{\XINT_expr_prec_tacit *{{#3}}(#1~{#2}{#3}}%
-\expandafter\def\csname XINT_expr_onliteral_@3\endcsname #1~#2#3#4%
+\expandafter\def\csname XINT_expr_var*_@3\endcsname #1~#2#3#4%
{\XINT_expr_prec_tacit *{{#4}}(#1~{#2}{#3}{#4}}%
-\expandafter\def\csname XINT_expr_onliteral_@4\endcsname #1~#2#3#4#5%
+\expandafter\def\csname XINT_expr_var*_@4\endcsname #1~#2#3#4#5%
{\XINT_expr_prec_tacit *{{#5}}(#1~{#2}{#3}{#4}{#5}}%
\catcode`* 12
\catcode`? 3
@@ -3341,7 +3399,8 @@
\def\XINT_expr_func_len #1#2#3%
{%
\expandafter#1\expandafter#2\expandafter{\expandafter{%
- \romannumeral`&&@\XINT:NEhook:f:noeval:from:braced:u\xintLength#3^%
+ \romannumeral`&&@\XINT:NEhook:f:LFL\xintLength
+ {\romannumeral\XINT:NEhook:r:check#3^}%
}}%
}%
\let\XINT_flexpr_func_len \XINT_expr_func_len
@@ -3349,7 +3408,8 @@
\def\XINT_expr_func_first #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{%
- \romannumeral`&&@\XINT:NEhook:f:noeval:from:braced:u\xintFirstOne#3^%
+ \romannumeral`&&@\XINT:NEhook:f:LFL\xintFirstOne
+ {\romannumeral\XINT:NEhook:r:check#3^}%
}%
}%
\let\XINT_flexpr_func_first\XINT_expr_func_first
@@ -3357,7 +3417,8 @@
\def\XINT_expr_func_last #1#2#3%
{%
\expandafter #1\expandafter #2\expandafter{%
- \romannumeral`&&@\XINT:NEhook:f:noeval:from:braced:u\xintLastOne#3^%
+ \romannumeral`&&@\XINT:NEhook:f:LFL\xintLastOne
+ {\romannumeral\XINT:NEhook:r:check#3^}%
}%
}%
\let\XINT_flexpr_func_last\XINT_expr_func_last
@@ -3872,25 +3933,43 @@
{%
\if0\expandafter\XINT:NE:hastilde\detokenize{##2}~!\relax
\expandafter\XINT:NE:hashash\detokenize{##2}#1!\relax 0%
- \expandafter##1%
+ \xint_afterfi{\expandafter\XINT_fooof_checkifnumber\expandafter##1\string}%
\else
\xint_afterfi{\XINT:NE:f:from:delim:u:p##1\empty}%
\fi
##2^%
}}\expandafter\XINT:NE:f:from:delim:u\string#%
\def\XINT:NE:f:from:delim:u:p #1#2^%
- {\detokenize{\expandafter#1}~expanded{#2}$XINT_expr_caret}%$
-\def\XINT:NE:f:noeval:from:braced:u #1{%
-\def\XINT:NE:f:noeval:from:braced:u ##1##2^%
{%
- \if0\XINT:NE:hastilde ##2~!\relax\XINT:NE:hashash ##2#1!\relax 0%
+ \detokenize{\expandafter\XINT:fooof:checkifnumber\expandafter#1}~expanded{#2}$XINT_expr_caret%$
+}%
+\def\XINT:fooof:checkifnumber#1{\expandafter\XINT_fooof_checkifnumber\expandafter#1\string}%
+\def\XINT:NE:f:LFL#1#2{\expandafter\XINT:NE:f:LFL_a\expandafter#1#2\XINT:NE:f:LFL_a}%
+\def\XINT:NE:f:LFL_a#1#2%
+{%
+ \if#2i\else\expandafter\XINT:NE:f:LFL_p
+ \fi #1%
+}%
+\def\XINT:NE:r:check#1{%
+\def\XINT:NE:r:check##1\XINT:NE:f:LFL_a
+{%
+ \if0\expandafter\XINT:NE:hastilde\detokenize{##1}~!\relax%
+ \expandafter\XINT:NE:hashash\detokenize{##1}#1!\relax 0%
\else
- \expandafter\XINT:NE:f:noeval:from:braced:u:p
+ \expandafter\XINT:NE:r:check:p
\fi
- ##1{##2}%
-}}\expandafter\XINT:NE:f:noeval:from:braced:u\string#%
-\def\XINT:NE:f:noeval:from:braced:u:p #1#2%
- {\detokenize{\romannumeral`$XINT_expr_null\expandafter#1}~expanded{{#2}}}%$
+ 1\expandafter{\romannumeral\XINT:NEsaved:r:check##1}%
+}}\expandafter\XINT:NE:r:check\string#%
+\def\XINT:NE:r:check:p 1\expandafter#1{\XINT:NE:r:check:p_i#1}%
+\def\XINT:NE:r:check:p_i\romannumeral\XINT:NEsaved:r:check{\XINT:NE:r:check:p_ii\empty}%
+\def\XINT:NE:r:check:p_ii#1^%
+{%
+ 5~expanded{{~romannumeral~XINT:NEsaved:r:check#1$XINT_expr_caret}}%$
+}%
+\def\XINT:NE:f:LFL_p#1%
+{%
+ \detokenize{\romannumeral`$XINT_expr_null\expandafter#1}%$
+}%
\catcode`- 11
\def\XINT:NE:exec_? #1#2%
{%
@@ -4266,7 +4345,8 @@
\let\XINT:NEhook:x:listsel \XINT:NE:x:listsel
\let\XINT:NEhook:f:reverse \XINT:NE:f:reverse
\let\XINT:NEhook:f:from:delim:u \XINT:NE:f:from:delim:u
- \let\XINT:NEhook:f:noeval:from:braced:u\XINT:NE:f:noeval:from:braced:u
+ \let\XINT:NEhook:f:LFL \XINT:NE:f:LFL
+ \let\XINT:NEhook:r:check \XINT:NE:r:check
\let\XINT:NEhook:branch \XINT:NE:branch
\let\XINT:NEhook:seqx \XINT:NE:seqx
\let\XINT:NEhook:opx \XINT:NE:opx
diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
index ef5e0f838d3..e030a77b9ef 100644
--- a/Master/texmf-dist/tex/generic/xint/xintfrac.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4h 2021/05/27
+%% The xint bundle 1.4i 2021/06/11
%% Copyright (C) 2013-2021 by Jean-Francois Burnol
%% xintfrac: Expandable operations on fractions
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintfrac}%
- [2021/05/27 v1.4h Expandable operations on fractions (JFB)]%
+ [2021/06/11 v1.4i Expandable operations on fractions (JFB)]%
\def\XINT_cntSgnFork #1%
{%
\ifcase #1\expandafter\xint_secondofthree
diff --git a/Master/texmf-dist/tex/generic/xint/xintgcd.sty b/Master/texmf-dist/tex/generic/xint/xintgcd.sty
index cbe6f75f690..7080a202df4 100644
--- a/Master/texmf-dist/tex/generic/xint/xintgcd.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintgcd.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4h 2021/05/27
+%% The xint bundle 1.4i 2021/06/11
%% Copyright (C) 2013-2021 by Jean-Francois Burnol
%% xintgcd: Euclidean algorithm with xint package
%% ---------------------------------------------------------------
@@ -77,7 +77,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintgcd}%
- [2021/05/27 v1.4h Euclide algorithm with xint package (JFB)]%
+ [2021/06/11 v1.4i Euclide algorithm with xint package (JFB)]%
\def\xintBezout {\romannumeral0\xintbezout }%
\def\xintbezout #1%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xintkernel.sty b/Master/texmf-dist/tex/generic/xint/xintkernel.sty
index b6a6ff814e5..0f1bf0d3612 100644
--- a/Master/texmf-dist/tex/generic/xint/xintkernel.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintkernel.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4h 2021/05/27
+%% The xint bundle 1.4i 2021/06/11
%% Copyright (C) 2013-2021 by Jean-Francois Burnol
%% xintkernel: Paraphernalia for the xint packages
%% ---------------------------------------------------------------
@@ -159,7 +159,7 @@
\fi
\XINT_providespackage
\ProvidesPackage {xintkernel}%
- [2021/05/27 v1.4h Paraphernalia for the xint packages (JFB)]%
+ [2021/06/11 v1.4i Paraphernalia for the xint packages (JFB)]%
\chardef\xint_c_ 0
\chardef\xint_c_i 1
\chardef\xint_c_ii 2
diff --git a/Master/texmf-dist/tex/generic/xint/xintlog.sty b/Master/texmf-dist/tex/generic/xint/xintlog.sty
index 59742fb90ff..244607b847d 100644
--- a/Master/texmf-dist/tex/generic/xint/xintlog.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintlog.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4h 2021/05/27
+%% The xint bundle 1.4i 2021/06/11
%% Copyright (C) 2013-2021 by Jean-Francois Burnol
%% xintlog: Logarithms and exponentials for xintexpr
%% ---------------------------------------------------------------
@@ -68,10 +68,10 @@
\expandafter\xint_secondoftwo
\fi
{\immediate\write-1{Reloading xintlog library using Digits=\xinttheDigits.}}%
-{\expandafter\gdef\csname xintlibver@log\endcsname{2021/05/27 v1.4h}%
+{\expandafter\gdef\csname xintlibver@log\endcsname{2021/06/11 v1.4i}%
\XINT_providespackage
\ProvidesPackage{xintlog}%
-[2021/05/27 v1.4h Logarithms and exponentials for xintexpr (JFB)]%
+[2021/06/11 v1.4i Logarithms and exponentials for xintexpr (JFB)]%
}%
\def\xintreloadxintlog{\input xintlog.sty }%
\xintexprSafeCatcodes\catcode`_ 11
diff --git a/Master/texmf-dist/tex/generic/xint/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty
index 634ef151ae7..9946eb3bcbe 100644
--- a/Master/texmf-dist/tex/generic/xint/xintseries.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintseries.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4h 2021/05/27
+%% The xint bundle 1.4i 2021/06/11
%% Copyright (C) 2013-2021 by Jean-Francois Burnol
%% xintseries: Expandable partial sums with xint package
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintseries}%
- [2021/05/27 v1.4h Expandable partial sums with xint package (JFB)]%
+ [2021/06/11 v1.4i Expandable partial sums with xint package (JFB)]%
\def\xintSeries {\romannumeral0\xintseries }%
\def\xintseries #1#2%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xinttools.sty b/Master/texmf-dist/tex/generic/xint/xinttools.sty
index 2bbe211c66f..0faa20b0440 100644
--- a/Master/texmf-dist/tex/generic/xint/xinttools.sty
+++ b/Master/texmf-dist/tex/generic/xint/xinttools.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4h 2021/05/27
+%% The xint bundle 1.4i 2021/06/11
%% Copyright (C) 2013-2021 by Jean-Francois Burnol
%% xinttools: Expandable and non-expandable utilities
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xinttools}%
- [2021/05/27 v1.4h Expandable and non-expandable utilities (JFB)]%
+ [2021/06/11 v1.4i Expandable and non-expandable utilities (JFB)]%
\newtoks\XINT_toks
\xint_firstofone{\let\XINT_sptoken= } %<- space here!
\def\xintgodef {\global\xintodef }%
diff --git a/Master/texmf-dist/tex/generic/xint/xinttrig.sty b/Master/texmf-dist/tex/generic/xint/xinttrig.sty
index 3aca80ca0a3..f1f6b44ea29 100644
--- a/Master/texmf-dist/tex/generic/xint/xinttrig.sty
+++ b/Master/texmf-dist/tex/generic/xint/xinttrig.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4h 2021/05/27
+%% The xint bundle 1.4i 2021/06/11
%% Copyright (C) 2013-2021 by Jean-Francois Burnol
%% xinttrig: Trigonometry for the xintexpr package
%% ---------------------------------------------------------------
@@ -69,10 +69,10 @@
\expandafter\xint_secondoftwo
\fi
{\immediate\write-1{Reloading xinttrig library using Digits=\xinttheDigits.}}%
-{\expandafter\gdef\csname xintlibver@trig\endcsname{2021/05/27 v1.4h}%
+{\expandafter\gdef\csname xintlibver@trig\endcsname{2021/06/11 v1.4i}%
\XINT_providespackage
\ProvidesPackage{xinttrig}%
-[2021/05/27 v1.4h Trigonometrical functions for xintexpr (JFB)]%
+[2021/06/11 v1.4i Trigonometrical functions for xintexpr (JFB)]%
}%
\xintFor* #1 in {iDTVtuwxyzX}\do{\xintensuredummy{#1}}%
\def\xintreloadxinttrig{\input xinttrig.sty }%