summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/xint
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-10-10 22:28:42 +0000
committerKarl Berry <karl@freefriends.org>2013-10-10 22:28:42 +0000
commit3364dcae66a703d52a1a30f21e324f988eb37d73 (patch)
tree0e0cc26c6a7dd1ba3c904814d270ebd4015caf30 /Master/texmf-dist/tex/generic/xint
parentefa300558205320b779ab9de9ac92cc0b6c1872e (diff)
xint (10oct13)
git-svn-id: svn://tug.org/texlive/trunk@31876 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint')
-rw-r--r--Master/texmf-dist/tex/generic/xint/xint.sty403
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintbinhex.sty13
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintcfrac.sty13
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintexpr.sty289
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintfrac.sty13
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintgcd.sty13
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintseries.sty13
7 files changed, 529 insertions, 228 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty
index ead0a68fb9c..bb99f667863 100644
--- a/Master/texmf-dist/tex/generic/xint/xint.sty
+++ b/Master/texmf-dist/tex/generic/xint/xint.sty
@@ -22,7 +22,7 @@
%% in the same archive or directory.)
%%
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09b of October 3, 2013)
+%% The xint bundle (version 1.09c of October 9, 2013)
%% xint: Expandable operations on long numbers
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -143,20 +143,16 @@
}%
\XINT_setcatcodes
}%
-\begingroup
- \catcode58=12 % : (does not matter, actually)
- \expandafter\ifx\csname ProvidesPackage\endcsname\relax
- \def\x{\endgroup
- \def\XINT_providespackage ##1##2[##3]%
- {\immediate\write-1{Package: ##2 ##3}%
- \expandafter\xdef\csname ver@##2.sty\endcsname{##3}}}%
- \else
- \def\x{\endgroup\let\XINT_providespackage\relax }%
- \fi
-\x
+\ifdefined\ProvidesPackage
+ \let\XINT_providespackage\relax
+\else
+ \def\XINT_providespackage #1#2[#3]%
+ {\immediate\write-1{Package: #2 #3}%
+ \expandafter\xdef\csname ver@#2.sty\endcsname{#3}}%
+\fi
\XINT_providespackage
\ProvidesPackage {xint}%
- [2013/10/03 v1.09b Expandable operations on long numbers (jfB)]%
+ [2013/10/09 v1.09c Expandable operations on long numbers (jfB)]%
\def\xint_gobble_ {}%
\def\xint_gobble_i #1{}%
\def\xint_gobble_ii #1#2{}%
@@ -166,6 +162,7 @@
\def\xint_gobble_vi #1#2#3#4#5#6{}%
\def\xint_gobble_vii #1#2#3#4#5#6#7{}%
\def\xint_gobble_viii #1#2#3#4#5#6#7#8{}%
+\def\xint_firstofone #1{#1}%
\def\xint_firstoftwo #1#2{#1}%
\def\xint_secondoftwo #1#2{#2}%
\def\xint_firstoftwo_andstop #1#2{ #1}%
@@ -181,7 +178,7 @@
\def\xint_gob_til_zero #10{}%
\def\xint_gob_til_one #11{}%
\def\xint_gob_til_G #1G{}%
-\def\xint_gob_til_minus #1-{}% was missing since 1.06b, \xintDSR could not work.
+\def\xint_gob_til_minus #1-{}%
\def\xint_gob_til_zeros_iii #1000{}%
\def\xint_gob_til_zeros_iv #10000{}%
\def\xint_gob_til_relax #1\relax {}%
@@ -207,6 +204,7 @@
\chardef\xint_c_ix 9
\chardef\xint_c_x 10
\newcount\xint_c_x^viii \xint_c_x^viii 100000000
+\newtoks\XINT_toks
\def\xintRev {\romannumeral0\xintrev }%
\def\xintrev #1%
{%
@@ -409,34 +407,41 @@
\long\def\XINT_lws_end\Z\XINT_lws_loop_b #1#2#3{ #1}%
\def\xintNthElt {\romannumeral0\xintnthelt }%
\def\xintNthEltNoExpand {\romannumeral0\xintntheltnoexpand }%
-\def\xintnthelt #1#2%
+\def\xintnthelt #1%
{%
- \expandafter\XINT_nthelt_a\expandafter {\the\numexpr #1\expandafter}%
- \expandafter {\romannumeral-`0#2}%
+ \expandafter\XINT_nthelt_a\expandafter {\the\numexpr #1}%
}%
-\def\xintntheltnoexpand #1#2%
+\def\xintntheltnoexpand #1%
{%
- \expandafter\XINT_nthelt_a\expandafter {\the\numexpr #1}{#2}%
+ \expandafter\XINT_ntheltnoexpand_a\expandafter {\the\numexpr #1}%
}%
-\def\XINT_nthelt_a #1%
+\def\XINT_nthelt_a #1#2%
{%
\ifnum #1<0
- \expandafter\XINT_nthelt_b\else\expandafter\XINT_nthelt_c
- \fi {#1}%
+ \xint_afterfi{\expandafter\XINT_nthelt_c\expandafter
+ {\romannumeral0\xintrevwithbraces {#2}}{-#1}}%
+ \else
+ \xint_afterfi{\expandafter\XINT_nthelt_c\expandafter
+ {\romannumeral-`0#2}{#1}}%
+ \fi
}%
-\def\XINT_nthelt_b #1#2%
+\def\XINT_ntheltnoexpand_a #1#2%
{%
- \expandafter\XINT_nthelt_c\expandafter
- {\the\numexpr -#1\expandafter}\expandafter
- {\romannumeral0\xintrevwithbraces {#2}}%
+ \ifnum #1<0
+ \xint_afterfi{\expandafter\XINT_nthelt_c\expandafter
+ {\romannumeral0\xintrevwithbracesnoexpand {#2}}{-#1}}%
+ \else
+ \xint_afterfi{\expandafter\XINT_nthelt_c\expandafter
+ {#2}{#1}}%
+ \fi
}%
\def\XINT_nthelt_c #1#2%
{%
- \ifnum #1>\xint_c_
- \xint_afterfi {\XINT_nthelt_loop_a {#1}}%
+ \ifnum #2>\xint_c_
+ \expandafter\XINT_nthelt_loop_a
\else
- \xint_afterfi {\XINT_length_loop {0}}%
- \fi #2\xint_relax\xint_relax\xint_relax\xint_relax
+ \expandafter\XINT_length_loop
+ \fi {#2}#1\xint_relax\xint_relax\xint_relax\xint_relax
\xint_relax\xint_relax\xint_relax\xint_relax\Z
}%
\def\XINT_nthelt_loop_a #1%
@@ -503,17 +508,327 @@
\def\XINT_applyunbr_loop_b #1#2{\XINT_applyunbr_loop_a {#2#1}}%
\def\XINT_applyunbr_end\Z
\expandafter\XINT_applyunbr_loop_b\expandafter #1#2#3{ #2}%
+\def\xintSeq {\romannumeral0\xintseq }%
+\def\xintseq #1{\XINT_seq_chkopt #1\Z }%
+\def\XINT_seq_chkopt #1%
+{%
+ \ifx [#1\expandafter\XINT_seq_opt
+ \else\expandafter\XINT_seq_noopt
+ \fi #1%
+}%
+\def\XINT_seq_noopt #1\Z #2%
+{%
+ \expandafter\XINT_seq\expandafter
+ {\the\numexpr#1\expandafter}\expandafter{\the\numexpr #2}%
+}%
+\def\XINT_seq #1#2%
+{%
+ \ifcase\xintiSgn{\the\numexpr #2-#1\relax}
+ \expandafter\xint_firstoftwo_andstop
+ \or
+ \expandafter\XINT_seq_p
+ \else
+ \expandafter\XINT_seq_n
+ \fi
+ {#2}{#1}%
+}%
+\def\XINT_seq_p #1#2%
+{%
+ \ifnum #1>#2
+ \xint_afterfi{\expandafter\XINT_seq_p}%
+ \else
+ \expandafter\XINT_seq_e
+ \fi
+ \expandafter{\the\numexpr #1-1}{#2}{#1}%
+}%
+\def\XINT_seq_n #1#2%
+{%
+ \ifnum #1<#2
+ \xint_afterfi{\expandafter\XINT_seq_n}%
+ \else
+ \expandafter\XINT_seq_e
+ \fi
+ \expandafter{\the\numexpr #1+1}{#2}{#1}%
+}%
+\def\XINT_seq_e #1#2#3{ }%
+\def\XINT_seq_opt [\Z #1]#2#3%
+{%
+ \expandafter\XINT_seqo\expandafter
+ {\the\numexpr #2\expandafter}\expandafter
+ {\the\numexpr #3\expandafter}\expandafter
+ {\the\numexpr #1}%
+}%
+\def\XINT_seqo #1#2%
+{%
+ \ifcase\xintiSgn{\the\numexpr #2-#1\relax}
+ \expandafter\XINT_seqo_a
+ \or
+ \expandafter\XINT_seqo_pa
+ \else
+ \expandafter\XINT_seqo_na
+ \fi
+ {#1}{#2}%
+}%
+\def\XINT_seqo_a #1#2#3{ {#1}}%
+\def\XINT_seqo_o #1#2#3#4{ #4}%
+\def\XINT_seqo_pa #1#2#3%
+{%
+ \ifcase\XINT_Sgn {#3}
+ \expandafter\XINT_seqo_o
+ \or
+ \expandafter\XINT_seqo_pb
+ \else
+ \xint_afterfi{\expandafter\space\xint_gobble_iv}%
+ \fi
+ {#1}{#2}{#3}{{#1}}%
+}%
+\def\XINT_seqo_pb #1#2#3%
+{%
+ \expandafter\XINT_seqo_pc\expandafter{\the\numexpr #1+#3}{#2}{#3}%
+}%
+\def\XINT_seqo_pc #1#2%
+{%
+ \ifnum#1>#2
+ \expandafter\XINT_seqo_o
+ \else
+ \expandafter\XINT_seqo_pd
+ \fi
+ {#1}{#2}%
+}%
+\def\XINT_seqo_pd #1#2#3#4{\XINT_seqo_pb {#1}{#2}{#3}{#4{#1}}}%
+\def\XINT_seqo_na #1#2#3%
+{%
+ \ifcase\XINT_Sgn {#3}
+ \expandafter\XINT_seqo_o
+ \or
+ \xint_afterfi{\expandafter\space\xint_gobble_iv}%
+ \else
+ \expandafter\XINT_seqo_nb
+ \fi
+ {#1}{#2}{#3}{{#1}}%
+}%
+\def\XINT_seqo_nb #1#2#3%
+{%
+ \expandafter\XINT_seqo_nc\expandafter{\the\numexpr #1+#3}{#2}{#3}%
+}%
+\def\XINT_seqo_nc #1#2%
+{%
+ \ifnum#1<#2
+ \expandafter\XINT_seqo_o
+ \else
+ \expandafter\XINT_seqo_nd
+ \fi
+ {#1}{#2}%
+}%
+\def\XINT_seqo_nd #1#2#3#4{\XINT_seqo_nb {#1}{#2}{#3}{#4{#1}}}%
+\catcode`z 3%
\def\xintApplyInline #1#2%
{%
- \def\XINT_apply_themacro {#1}%
- \expandafter\XINT_applyinline_a\romannumeral-`0#2:%
+ \expandafter\def\expandafter\XINT_inline_macro\expandafter ##\expandafter 1%
+ \expandafter {#1{##1}}%
+ \expandafter\XINT_inline_b\romannumeral-`0#2z%
+}%
+\def\XINT_inline_b {\futurelet\XINT_token\XINT_inline_c }%
+\def\XINT_inline_c
+{%
+ \ifx\XINT_token z\expandafter\xint_gobble_i
+ \else \expandafter\XINT_inline_d
+ \fi
+}%
+\def\XINT_inline_d #1%
+{%
+ \def\XINT_item{{#1}}\futurelet\XINT_token\XINT_inline_e
+}%
+\def\XINT_inline_e
+{%
+ \ifx\XINT_token z%
+ \expandafter\XINT_inline_w
+ \else
+ \expandafter\XINT_inline_f
+ \fi
+}%
+\def\XINT_inline_f
+{%
+ \expandafter\XINT_inline_g\expandafter{\XINT_inline_macro {##1}}%
+}%
+\def\XINT_inline_g #1%
+{%
+ \expandafter\XINT_inline_macro\XINT_item
+ \def\XINT_inline_macro ##1{#1}\XINT_inline_d
+}%
+\def\XINT_inline_w #1% swallows list terminator
+{%
+ \expandafter\XINT_inline_macro\XINT_item
+}%
+\def\xintFor {\futurelet\XINT_token\XINT_for_ifstar }%
+\def\XINT_for_ifstar {\ifx\XINT_token*\expandafter\XINT_forx
+ \else\expandafter\XINT_for \fi }%
+\def\XINT_for #1#2in#3#4#5%
+{%
+ \XINT_toks \expandafter{\csname XINT_for_d\romannumeral#2\endcsname {#5}}%
+ \expandafter\XINT_for_b #3,z,%
+}%
+\def\XINT_forx *#1#2in#3#4#5%
+{%
+ \XINT_toks \expandafter{\csname XINT_forx_d\romannumeral#2\endcsname {#5}}%
+ \expandafter\XINT_forx_b\romannumeral-`0#3z%
+}%
+\def\XINT_for_b {\futurelet\XINT_token\XINT_for_c }%
+\def\XINT_for_c
+{%
+ \ifx\XINT_token z\expandafter\xint_gobble_iv\fi
+ \the\XINT_toks
+}%
+\def\XINT_for_di #1#2,%
+{%
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {#2}{####2}{####3}{####4}}%
+ \XINT_toks {\XINT_x\XINT_for_di {#1}}%
+ \futurelet\XINT_token\XINT_for_e
+}%
+\def\XINT_for_dii #1#2,%
+{%
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {####1}{#2}{####3}{####4}}%
+ \XINT_toks {\XINT_x \XINT_for_dii {#1}}%
+ \futurelet\XINT_token\XINT_for_e
+}%
+\def\XINT_for_diii #1#2,%
+{%
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {####1}{####2}{#2}{####4}}%
+ \XINT_toks {\XINT_x \XINT_for_diii {#1}}%
+ \futurelet\XINT_token\XINT_for_e
+}%
+\def\XINT_for_div #1#2,%
+{%
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {####1}{####2}{####3}{#2}}%
+ \XINT_toks {\XINT_x \XINT_for_div {#1}}%
+ \futurelet\XINT_token\XINT_for_e
+}%
+\def\XINT_for_e
+{%
+ \ifx\XINT_token z\xint_afterfi{\expandafter\XINT_x \xint_gobble_iv}\fi
+ \the\XINT_toks
+}%
+\def\XINT_forx_b {\futurelet\XINT_token\XINT_forx_c }%
+\def\XINT_forx_c
+{%
+ \ifx\XINT_token z\expandafter\xint_gobble_iii\fi
+ \the\XINT_toks
+}%
+\def\XINT_forx_di #1#2%
+{%
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {#2}{####2}{####3}{####4}}%
+ \XINT_toks {\XINT_x \XINT_forx_di {#1}}%
+ \futurelet\XINT_token\XINT_forx_e
+}%
+\def\XINT_forx_dii #1#2%
+{%
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {####1}{#2}{####3}{####4}}%
+ \XINT_toks {\XINT_x \XINT_forx_dii {#1}}%
+ \futurelet\XINT_token\XINT_forx_e
+}%
+\def\XINT_forx_diii #1#2%
+{%
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {####1}{####2}{#2}{####4}}%
+ \XINT_toks {\XINT_x \XINT_forx_diii {#1}}%
+ \futurelet\XINT_token\XINT_forx_e
+}%
+\def\XINT_forx_div #1#2%
+{%
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {####1}{####2}{####3}{#2}}%
+ \XINT_toks {\XINT_x \XINT_forx_div {#1}}%
+ \futurelet\XINT_token\XINT_forx_e
+}%
+\def\XINT_forx_e
+{%
+ \ifx\XINT_token z\xint_afterfi{\expandafter\XINT_x \xint_gobble_iii}\fi
+ \the\XINT_toks
+}%
+\def\xintForpair #1#2#3#4in#5#6#7%
+{%
+ \XINT_toks \expandafter{%
+ \csname XINT_forii_d\romannumeral#2\endcsname {#7}}%
+ \expandafter\XINT_forii_b #5,z,%
+}%
+\def\XINT_forii_b {\futurelet\XINT_token\XINT_forii_c }%
+\def\XINT_forii_c
+{%
+ \ifx\XINT_token z\expandafter\xint_gobble_iv\fi
+ \the\XINT_toks
+}%
+\def\XINT_forii_di #1(#2,#3),%
+{%
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {#2}{#3}{####3}{####4}}%
+ \XINT_toks {\XINT_x\XINT_forii_di {#1}}%
+ \futurelet\XINT_token\XINT_for_e
+}%
+\def\XINT_forii_dii #1(#2,#3),%
+{%
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {####1}{#2}{#3}{####4}}%
+ \XINT_toks {\XINT_x \XINT_forii_dii {#1}}%
+ \futurelet\XINT_token\XINT_for_e
+}%
+\def\XINT_forii_diii #1(#2,#3),%
+{%
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {####1}{####2}{#2}{#3}}%
+ \XINT_toks {\XINT_x \XINT_forii_diii {#1}}%
+ \futurelet\XINT_token\XINT_for_e
+}%
+\def\xintForthree #1#2#3in#4#5#6%
+{%
+ \XINT_toks \expandafter{%
+ \csname XINT_foriii_d\romannumeral#2\endcsname {#6}}%
+ \expandafter\XINT_foriii_b #4,z,%
+}%
+\def\XINT_foriii_b {\futurelet\XINT_token\XINT_foriii_c }%
+\def\XINT_foriii_c
+{%
+ \ifx\XINT_token z\expandafter\xint_gobble_iv\fi
+ \the\XINT_toks
+}%
+\def\XINT_foriii_di #1(#2,#3,#4),%
+{%
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {#2}{#3}{#4}{####4}}%
+ \XINT_toks {\XINT_x\XINT_foriii_di {#1}}%
+ \futurelet\XINT_token\XINT_for_e
+}%
+\def\XINT_foriii_dii #1(#2,#3,#4),%
+{%
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {####1}{#2}{#3}{#4}}%
+ \XINT_toks {\XINT_x \XINT_foriii_dii {#1}}%
+ \futurelet\XINT_token\XINT_for_e
+}%
+\def\xintForfour #1#2#3in#4#5#6%
+{%
+ \XINT_toks {\XINT_foriv_di {#6}}%
+ \expandafter\XINT_foriv_b #4,z,%
+}%
+\def\XINT_foriv_b {\futurelet\XINT_token\XINT_foriv_c }%
+\def\XINT_foriv_c
+{%
+ \ifx\XINT_token z\expandafter\xint_gobble_iv\fi
+ \the\XINT_toks
}%
-\def\XINT_applyinline_a {\futurelet\XINT_apply_nexttoken\XINT_applyinline_b }%
-\def\XINT_applyinline_b #1%
+\def\XINT_foriv_di #1(#2,#3,#4,#5),%
{%
- \ifx\XINT_apply_nexttoken :\expandafter\xint_gobble_iii\fi
- \XINT_apply_themacro {#1}\XINT_applyinline_a
+ \def\XINT_y ##1##2##3##4{#1}%
+ \def\XINT_x {\XINT_y {#2}{#3}{#4}{#5}}%
+ \XINT_toks {\XINT_x\XINT_foriv_di {#1}}%
+ \futurelet\XINT_token\XINT_for_e
}%
+\catcode`z 11
\def\xintAssign #1\to
{%
\expandafter\XINT_assign_a\romannumeral-`0#1{}\to
@@ -818,6 +1133,9 @@
0-\dummy { 1}%
\krof
}%
+\def\xintBool #1{\romannumeral-`0%
+ \csname if#1\endcsname\expandafter1\else\expandafter0\fi }%
+\def\xintToggle #1{\romannumeral-`0\iftoggle{#1}{1}{0}}%
\def\xintSgnFork {\romannumeral0\xintsgnfork }%
\def\xintsgnfork #1%
{%
@@ -853,6 +1171,7 @@
\xint_afterfi{\expandafter\space\xint_secondoftwo}%
\fi
}%
+\let\xintifTrue\xintifNotZero
\def\xintifEq {\romannumeral0\xintifeq }%
\def\xintifeq #1#2%
{%
@@ -1681,6 +2000,18 @@
\def\xintiszero #1{\xintifsgn {#1}{0}{1}{0}}%
\def\xintIsNotZero {\romannumeral0\xintisnotzero }%
\def\xintisnotzero #1{\xintifsgn {#1}{1}{0}{1}}%
+\let\xintIsTrue\xintIsNotZero
+\let\xintNot\xintIsZero
+\def\xintIsTrue:csv #1{\expandafter\XINT_istrue:_a\romannumeral-`0#1,,^}%
+\def\XINT_istrue:_a {\XINT_istrue:_b {}}%
+\def\XINT_istrue:_b #1#2,%
+ {\expandafter\XINT_istrue:_c\romannumeral-`0#2,{#1}}%
+\def\XINT_istrue:_c #1{\if #1,\expandafter\XINT_istrue:_f
+ \else\expandafter\XINT_istrue:_d\fi #1}%
+\def\XINT_istrue:_d #1,%
+ {\expandafter\XINT_istrue:_e\romannumeral0\xintisnotzero {#1},}%
+\def\XINT_istrue:_e #1,#2{\XINT_istrue:_b {#2,#1}}%
+\def\XINT_istrue:_f ,#1#2^{\xint_gobble_i #1}%
\def\xintAND {\romannumeral0\xintand }%
\def\xintand #1#2{\xintifzero {#1}{0}{\xintifzero {#2}{0}{1}}}%
\def\xintOR {\romannumeral0\xintor }%
diff --git a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
index 79951c73605..2c4bedc1827 100644
--- a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
@@ -22,7 +22,7 @@
%% in the same archive or directory.)
%%
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09b of October 3, 2013)
+%% The xint bundle (version 1.09c of October 9, 2013)
%% xintbinhex: Expandable binary and hexadecimal conversions
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -86,12 +86,11 @@
\catcode45=12 % -
\catcode46=12 % .
\catcode58=12 % :
- \expandafter
- \ifx\csname PackageInfo\endcsname\relax
- \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
- \else
+ \ifdefined\PackageInfo
\def\y#1#2{\PackageInfo{#1}{#2}}%
- \fi
+ \else
+ \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
+ \fi
\def\empty {}%
\expandafter\let\expandafter\w\csname ver@xint.sty\endcsname
\ifx\w\relax % Plain TeX, user gave a file name at the prompt
@@ -106,7 +105,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintbinhex}%
- [2013/10/03 v1.09b Expandable binary and hexadecimal conversions (jfB)]%
+ [2013/10/09 v1.09c Expandable binary and hexadecimal conversions (jfB)]%
\chardef\xint_c_xvi 16
\chardef\xint_c_ii^v 32
\chardef\xint_c_ii^vi 64
diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
index 1e605256060..69330cbfe14 100644
--- a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
@@ -22,7 +22,7 @@
%% in the same archive or directory.)
%%
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09b of October 3, 2013)
+%% The xint bundle (version 1.09c of October 9, 2013)
%% xintcfrac: Expandable continued fractions with xint package
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -86,12 +86,11 @@
\catcode45=12 % -
\catcode46=12 % .
\catcode58=12 % :
- \expandafter
- \ifx\csname PackageInfo\endcsname\relax
- \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
- \else
+ \ifdefined\PackageInfo
\def\y#1#2{\PackageInfo{#1}{#2}}%
- \fi
+ \else
+ \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
+ \fi
\def\empty {}%
\expandafter\let\expandafter\w\csname ver@xintfrac.sty\endcsname
\ifx\w\relax % Plain TeX, user gave a file name at the prompt
@@ -106,7 +105,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintcfrac}%
- [2013/10/03 v1.09b Expandable continued fractions with xint package (jfB)]%
+ [2013/10/09 v1.09c Expandable continued fractions with xint package (jfB)]%
\def\xintCFrac {\romannumeral0\xintcfrac }%
\def\xintcfrac #1%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
index 76b1537d209..3c753a77e5c 100644
--- a/Master/texmf-dist/tex/generic/xint/xintexpr.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
@@ -22,7 +22,7 @@
%% in the same archive or directory.)
%%
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09b of October 3, 2013)
+%% The xint bundle (version 1.09c of October 9, 2013)
%% xintexpr: Expandable expression parser
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -86,12 +86,11 @@
\catcode45=12 % -
\catcode46=12 % .
\catcode58=12 % :
- \expandafter
- \ifx\csname PackageInfo\endcsname\relax
- \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
- \else
+ \ifdefined\PackageInfo
\def\y#1#2{\PackageInfo{#1}{#2}}%
- \fi
+ \else
+ \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
+ \fi
\def\empty {}%
\expandafter\let\expandafter\w\csname ver@xintfrac.sty\endcsname
\ifx\w\relax % Plain TeX, user gave a file name at the prompt
@@ -106,13 +105,12 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintexpr}%
- [2013/10/03 v1.09b Expandable expression parser (jfB)]%
+ [2013/10/09 v1.09c Expandable expression parser (jfB)]%
\def\xint_gob_til_dot #1.{}%
\def\xint_gob_til_dot_andstop #1.{ }%
\def\xint_gob_til_! #1!{}% nota bene: ! is of catcode 11
\def\XINT_expr_unexpectedtoken {\xintError:ignored }%
\def\XINT_newexpr_stripprefix #1>{\noexpand\romannumeral-`0}%
-\def\xint_firstofone #1{#1}%
\def\XINT_expr_lock #1!{\expandafter\space\csname .#1\endcsname }%
\def\XINT_expr_unlock {\expandafter\xint_gob_til_dot\string }%
\def\XINT_expr_usethe {use_xintthe!\xintError:use_xintthe! }%
@@ -121,6 +119,10 @@
\def\XINT_flexpr_done {!\XINT_expr_usethe\XINT_flexpr_print }%
\def\XINT_flexpr_print #1{\xintFloat:csv{\XINT_expr_unlock #1}}%
\def\XINT_numexpr_print #1{\xintRound:csv{\XINT_expr_unlock #1}}%
+\def\XINT_boolexpr_print #1{\xintIsTrue:csv{\XINT_expr_unlock #1}}%
+\def\xintifboolexpr #1{\romannumeral0\xintifnotzero {\xinttheexpr #1\relax}}%
+\def\xintifboolfloatexpr #1{\romannumeral0\xintifnotzero
+ {\xintthefloatexpr #1\relax}}%
\def\xintexpr {\romannumeral0\xinteval }%
\def\xinteval
{%
@@ -133,6 +135,11 @@
\def\xintnumexpr {\romannumeral0\expandafter\XINT_numexpr_post
\romannumeral0\xinteval }%
\def\xintthenumexpr {\romannumeral-`0\xintthe\xintnumexpr }%
+\def\XINT_boolexpr_post !\XINT_expr_usethe\XINT_expr_print%
+ { !\XINT_expr_usethe\XINT_boolexpr_print }%
+\def\xintboolexpr {\romannumeral0\expandafter\XINT_boolexpr_post
+ \romannumeral0\xinteval }%
+\def\xinttheboolexpr {\romannumeral-`0\xintthe\xintboolexpr }%
\def\xintfloatexpr {\romannumeral0\xintfloateval }%
\def\xintfloateval
{%
@@ -192,7 +199,7 @@
\def\XINT_expr_getnext_onetoken_fork #1%
{% The * is in truth catcode 12 #. For (clever!) use with \xintNewExpr.
\XINT_expr_sixwayfork
- #1-.+*\dummy {\xint_c_x ({}}% back to until to trigger oparen
+ #1-.+*\dummy {\xint_c_xviii ({}}% back to until to trigger oparen
(#1.+*\dummy -%
(-#1+*\dummy {\XINT_expr_scandec_II.}%
(-.#1*\dummy \XINT_expr_getnext%
@@ -227,12 +234,18 @@
}%
\def\XINT_expr_scanfunc_b #1%
{%
- \if #1(\else\expandafter \XINT_expr_scanfunc_c \fi #1%
+ \if #1(\expandafter \xint_gobble_iii\fi
+ \xint_firstofone
+ {% added in 1.09c for bool and togl
+ \if #1)\expandafter \xint_gobble_i
+ \else \expandafter \xint_firstoftwo
+ \fi }%
+ {\XINT_expr_scanfunc_c #1}(%
}%
\def\XINT_expr_scanfunc_panic {\xintError:bigtroubleahead(0\relax }%
\def\XINT_expr_func #1(% common to expr and flexpr
{%
- \xint_c_x @{#1}%
+ \xint_c_xviii @{#1}% functions have the highest priority.
}%
\def\XINT_expr_scandec_I
{%
@@ -493,19 +506,6 @@
\csname XINT_flexpr_until_,_b\expandafter\endcsname
\csname XINT_flexpr_op_-vi\expandafter\endcsname
\csname XINT_expr_precedence_,\endcsname {flexpr}%
-\def \XINT_expr_precedence_? #1#2#3#4%
-{%
- \xintifZero{\XINT_expr_unlock #2}%
- {\XINT_expr_getnext #4}%
- {\XINT_expr_getnext #3}%
-}%
-\def \XINT_expr_precedence_: #1#2#3#4#5%
-{%
- \xintifSgn {\XINT_expr_unlock #2}%
- {\XINT_expr_getnext #3}%
- {\XINT_expr_getnext #4}%
- {\XINT_expr_getnext #5}%
-}%
\def\xint_tmp_def #1#2%
{%
\expandafter\xint_tmp_do_defs
@@ -538,33 +538,72 @@
}%
\xintApplyInline{\xint_tmp_def {expr}}{{vi}{vii}{viii}{ix}}%
\xintApplyInline{\xint_tmp_def {flexpr}}{{vi}{vii}{viii}{ix}}%
-\expandafter\def\csname XINT_expr_precedence_!\endcsname #1#2%
- {\expandafter\XINT_expr_getop
- \csname .\xintFac{\XINT_expr_unlock #2}[0]\endcsname }%
+\let\XINT_expr_precedence_? \xint_c_x
+\def \XINT_expr_op_? #1#2#3%
+{%
+ \xintifZero{\XINT_expr_unlock #1}%
+ {\XINT_expr_getnext #3}%
+ {\XINT_expr_getnext #2}%
+}%
+\let\XINT_flexpr_op_?\XINT_expr_op_?
+\let\XINT_expr_precedence_: \xint_c_x
+\def \XINT_expr_op_: #1#2#3#4%
+{%
+ \xintifSgn {\XINT_expr_unlock #1}%
+ {\XINT_expr_getnext #2}%
+ {\XINT_expr_getnext #3}%
+ {\XINT_expr_getnext #4}%
+}%
+\let\XINT_flexpr_op_:\XINT_expr_op_:
+\let\XINT_expr_precedence_! \xint_c_x
+\def\XINT_expr_op_! #1{\expandafter\XINT_expr_getop
+ \csname .\xintFac{\XINT_expr_unlock #1}\endcsname }% [0] removed in 1.09c
+\let\XINT_flexpr_op_!\XINT_expr_op_!
\let\xint_tmp_def\empty
\let\xint_tmp_do_defs\empty
\def\XINT_expr_op_@ #1%
{%
+ \ifcsname XINT_expr_onlitteral_#1\endcsname
+ \expandafter\XINT_expr_funcoflitteral
+ \else
+ \expandafter\XINT_expr_op_@@
+ \fi {#1}%
+}%
+\def\XINT_flexpr_op_@ #1%
+{%
+ \ifcsname XINT_expr_onlitteral_#1\endcsname
+ \expandafter\XINT_expr_funcoflitteral
+ \else
+ \expandafter\XINT_flexpr_op_@@
+ \fi {#1}%
+}%
+\def\XINT_expr_funcoflitteral #1%
+{%
+ \expandafter\expandafter\csname XINT_expr_onlitteral_#1\endcsname
+ \romannumeral-`0\XINT_expr_scanfunc
+}%
+\def\XINT_expr_op_@@ #1%
+{%
\ifcsname XINT_expr_func_#1\endcsname
- \xint_afterfi{%
- \expandafter\expandafter\csname XINT_expr_func_#1\endcsname
- }%
+ \xint_afterfi{\expandafter\expandafter\csname XINT_expr_func_#1\endcsname}%
\else \xintError:unknownfunction
\xint_afterfi{\expandafter\XINT_expr_func_unknown}%
\fi
\romannumeral-`0\XINT_expr_oparen
}%
-\def\XINT_flexpr_op_@ #1%
+\def\XINT_flexpr_op_@@ #1%
{%
\ifcsname XINT_flexpr_func_#1\endcsname
- \xint_afterfi{%
- \expandafter\expandafter\csname XINT_flexpr_func_#1\endcsname
- }%
+ \xint_afterfi{\expandafter\expandafter\csname XINT_flexpr_func_#1\endcsname}%
\else \xintError:unknownfunction
- \xint_afterfi{\expandafter\XINT_expr_func_unknown}%
+ \xint_afterfi{\expandafter\XINT_expr_func_unknown}%
\fi
\romannumeral-`0\XINT_flexpr_oparen
}%
+\def\XINT_expr_onlitteral_bool #1#2#3{\expandafter\XINT_expr_getop
+ \csname .\xintBool{#3}\endcsname }%
+\def\XINT_expr_onlitteral_togl #1#2#3{\expandafter\XINT_expr_getop
+ \csname .\xintToggle{#3}\endcsname }%
\def\XINT_expr_func_unknown #1#2#3%
{%
\expandafter #1\expandafter #2\csname .0[0]\endcsname
@@ -784,139 +823,75 @@
\expandafter\xint_secondoftwo
\fi
{_xintListWithSep,{#1}}{\xint_firstofone#1}}%
-\def\XINT_expr_tmp #1%
- {\expandafter\def\csname xint#1\endcsname {_xint#1}}%
-\expandafter\def\expandafter\XINT_expr_protect\expandafter
-{%
- \romannumeral0%
- \xintapplyunbraced\XINT_expr_tmp{\xintCSVtoList{%
- Floor,Ceil,iRound,Round,iTrunc,Trunc,%
- Lt,Gt,Eq,AND,OR,%
- IsNotZero,IsZero,%
- ifNotZero,ifSgn,%
- Irr,Num,Abs,Sgn,Opp,Quo,Rem,%
- Add,Sub,Mul,Sqr,Div,Pow,Fac,fE}}%
- \def\xintGCDof:csv ##1{_xintGCDof {\xintCSVtoList {##1}}}%
- \def\xintLCMof:csv ##1{_xintLCMof {\xintCSVtoList {##1}}}%
- \def\xintMaxof:csv ##1{_xintMaxof {\xintCSVtoList {##1}}}%
- \def\xintMinof:csv ##1{_xintMinof {\xintCSVtoList {##1}}}%
- \def\xintSum:csv ##1{_xintSum {\xintCSVtoList {##1}}}%
- \def\xintPrd:csv ##1{_xintPrd {\xintCSVtoList {##1}}}%
- \def\xintANDof:csv ##1{_xintANDof {\xintCSVtoList {##1}}}%
- \def\xintORof:csv ##1{_xintORof {\xintCSVtoList {##1}}}%
- \def\xintXORof:csv ##1{_xintXORof {\xintCSVtoList {##1}}}%
- \def\XINTinFloat {_XINTinFloat}%
- \def\XINTinFloatSqrt {_XINTinFloatSqrt}%
- \def\XINTdigits {_XINTdigits}%
- \def\XINT_expr_print ##1{\expandafter\XINT_newexpr_print\expandafter
- {\romannumeral0\xintcsvtolist{\XINT_expr_unlock ##1}}}%
-}%
-\catcode`* 13
-\def\xintNewExpr #1[#2]%
-{%
- \begingroup
- \ifcase #2\relax
- \toks0 {\xdef #1}%
- \or \toks0 {\xdef #1##1}%
- \or \toks0 {\xdef #1##1##2}%
- \or \toks0 {\xdef #1##1##2##3}%
- \or \toks0 {\xdef #1##1##2##3##4}%
- \or \toks0 {\xdef #1##1##2##3##4##5}%
- \or \toks0 {\xdef #1##1##2##3##4##5##6}%
- \or \toks0 {\xdef #1##1##2##3##4##5##6##7}%
- \or \toks0 {\xdef #1##1##2##3##4##5##6##7##8}%
- \or \toks0 {\xdef #1##1##2##3##4##5##6##7##8##9}%
- \fi
- \xintexprSafeCatcodes
- \XINT_NewExpr
-}%
-\def\XINT_NewExpr #1%
-{%
- \def\xintTmp ##1##2##3##4##5##6##7##8##9{#1}%
- \XINT_expr_protect
- \lccode`\*=`_ \lowercase {\def*}{!noexpand!}%
- \catcode`_ 13 \catcode`: 11 \endlinechar -1
- \everyeof {\noexpand }%
- \edef\XINTtmp ##1##2##3##4##5##6##7##8##9%
- {\scantokens
- \expandafter{\romannumeral-`0\xinttheexpr
- \xintTmp {####1}{####2}{####3}%
- {####4}{####5}{####6}%
- {####7}{####8}{####9}%
- \relax}}%
- \lccode`\*=`\$ \lowercase {\def*}{####}%
- \catcode`\$ 13 \catcode`! 0 \catcode`_ 11 %
- \the\toks0
- {\scantokens\expandafter{\expandafter
- \XINT_newexpr_stripprefix\meaning\XINTtmp}}%
-\endgroup
-}%
-\def\XINT_newflexpr_print #1{\ifnum\xintNthElt{0}{#1}>1
+\xintForpair #1#2 in {(fl,Float),(num,iRound0),(bool,IsTrue)} \do {%
+ \expandafter\def\csname XINT_new#1expr_print\endcsname
+ ##1{\ifnum\xintNthElt{0}{##1}>1
\expandafter\xint_firstoftwo
\else
\expandafter\xint_secondoftwo
\fi
- {_xintListWithSep,{\xintApply{_xintFloat}{#1}}}
- {_xintFloat#1}}%
-\expandafter\def\expandafter\XINT_flexpr_protect\expandafter
-{%
- \romannumeral0%
- \xintapplyunbraced\XINT_expr_tmp{\xintCSVtoList{%
- Floor,Ceil,iRound,Round,iTrunc,Trunc,%
- Lt,Gt,Eq,AND,OR,%
- IsNotZero,IsZero,%
- ifNotZero,ifSgn,%
- Irr,Num,Abs,Sgn,Opp,Quo,Rem,Fac}}%
- \def\xintGCDof:csv ##1{_xintGCDof {\xintCSVtoList {##1}}}%
- \def\xintLCMof:csv ##1{_xintLCMof {\xintCSVtoList {##1}}}%
- \def\xintFloatMaxof:csv ##1{_xintFloatMaxof {\xintCSVtoList {##1}}}%
- \def\xintFloatMinof:csv ##1{_xintFloatMinof {\xintCSVtoList {##1}}}%
- \def\xintFloatSum:csv ##1{_xintFloatSum {\xintCSVtoList {##1}}}%
- \def\xintFloatPrd:csv ##1{_xintFloatPrd {\xintCSVtoList {##1}}}%
- \def\xintANDof:csv ##1{_xintANDof {\xintCSVtoList {##1}}}%
- \def\xintORof:csv ##1{_xintORof {\xintCSVtoList {##1}}}%
- \def\xintXORof:csv ##1{_xintXORof {\xintCSVtoList {##1}}}%
- \def\XINTinFloat {_XINTinFloat}%
- \def\XINTinFloatSqrt {_XINTinFloatSqrt}%
- \def\XINTinFloatAdd {_XINTinFloatAdd}%
- \def\XINTinFloatSub {_XINTinFloatSub}%
- \def\XINTinFloatMul {_XINTinFloatMul}%
- \def\XINTinFloatDiv {_XINTinFloatDiv}%
- \def\XINTinFloatPower {_XINTinFloatPower}%
- \def\XINTinFloatfE {_XINTinFloatfE}%
- \def\XINTdigits {_XINTdigits}%
- \def\XINT_flexpr_print ##1{\expandafter\XINT_newflexpr_print\expandafter
+ {_xintListWithSep,{\xintApply{_xint#2}{##1}}}
+ {_xint#2##1}}}%
+\toks0 {}%
+\xintFor #1 in {Bool,Toggle,Floor,Ceil,iRound,Round,iTrunc,Trunc,%
+ Lt,Gt,Eq,AND,OR,IsNotZero,IsZero,ifNotZero,ifSgn,%
+ Irr,Num,Abs,Sgn,Opp,Quo,Rem,Add,Sub,Mul,Sqr,Div,Pow,Fac,fE} \do
+ {\toks0
+ \expandafter{\the\toks0\expandafter\def\csname xint#1\endcsname {_xint#1}}}%
+\xintFor #1 in {GCDof,LCMof,Maxof,Minof,ANDof,ORof,XORof,%
+ FloatMaxof,FloatMinof,Sum,Prd,FloatSum,FloatPrd} \do
+ {\toks0
+ \expandafter{\the\toks0\expandafter\def\csname xint#1:csv\endcsname
+ ####1{_xint#1 {\xintCSVtoList {####1}}}}}%
+\xintFor #1 in {,Sqrt,Add,Sub,Mul,Div,Power,fE} \do
+ {\toks0
+ \expandafter{\the\toks0\expandafter\def\csname XINTinFloat#1\endcsname
+ {_XINTinFloat#1}}}%
+\expandafter\def\expandafter\XINT_expr_protect\expandafter{\the\toks0
+ \def\XINTdigits {_XINTdigits}%
+ \def\XINT_expr_print ##1{\expandafter\XINT_newexpr_print\expandafter
+ {\romannumeral0\xintcsvtolist{\XINT_expr_unlock ##1}}}%
+ \def\XINT_flexpr_print ##1{\expandafter\XINT_newflexpr_print\expandafter
+ {\romannumeral0\xintcsvtolist{\XINT_expr_unlock ##1}}}%
+ \def\XINT_numexpr_print ##1{\expandafter\XINT_newnumexpr_print\expandafter
+ {\romannumeral0\xintcsvtolist{\XINT_expr_unlock ##1}}}%
+ \def\XINT_boolexpr_print ##1{\expandafter\XINT_newboolexpr_print\expandafter
{\romannumeral0\xintcsvtolist{\XINT_expr_unlock ##1}}}%
}%
-\let\XINT_expr_tmp\empty
-\def\xintNewFloatExpr #1[#2]%
-{%
- \begingroup
- \ifcase #2\relax
- \toks0 {\xdef #1}%
- \or \toks0 {\xdef #1##1}%
- \or \toks0 {\xdef #1##1##2}%
- \or \toks0 {\xdef #1##1##2##3}%
- \or \toks0 {\xdef #1##1##2##3##4}%
- \or \toks0 {\xdef #1##1##2##3##4##5}%
- \or \toks0 {\xdef #1##1##2##3##4##5##6}%
- \or \toks0 {\xdef #1##1##2##3##4##5##6##7}%
- \or \toks0 {\xdef #1##1##2##3##4##5##6##7##8}%
- \or \toks0 {\xdef #1##1##2##3##4##5##6##7##8##9}%
+\toks0 {}%
+\def\xintNewExpr {\xint_NewExpr\xinttheexpr }%
+\def\xintNewFloatExpr {\xint_NewExpr\xintthefloatexpr }%
+\def\xintNewNumExpr {\xint_NewExpr\xintthenumexpr }%
+\def\xintNewBoolExpr {\xint_NewExpr\xinttheboolexpr }%
+\def\xint_NewExpr #1#2[#3]%
+{%
+ \begingroup
+ \ifcase #3\relax
+ \toks0 {\xdef #2}%
+ \or \toks0 {\xdef #2##1}%
+ \or \toks0 {\xdef #2##1##2}%
+ \or \toks0 {\xdef #2##1##2##3}%
+ \or \toks0 {\xdef #2##1##2##3##4}%
+ \or \toks0 {\xdef #2##1##2##3##4##5}%
+ \or \toks0 {\xdef #2##1##2##3##4##5##6}%
+ \or \toks0 {\xdef #2##1##2##3##4##5##6##7}%
+ \or \toks0 {\xdef #2##1##2##3##4##5##6##7##8}%
+ \or \toks0 {\xdef #2##1##2##3##4##5##6##7##8##9}%
\fi
\xintexprSafeCatcodes
- \XINT_NewFloatExpr
+ \XINT_NewExpr #1%
}%
-\def\XINT_NewFloatExpr #1%
+\catcode`* 13
+\def\XINT_NewExpr #1#2%
{%
- \def\xintTmp ##1##2##3##4##5##6##7##8##9{#1}%
- \XINT_flexpr_protect
+ \def\xintTmp ##1##2##3##4##5##6##7##8##9{#2}%
+ \XINT_expr_protect
\lccode`\*=`_ \lowercase {\def*}{!noexpand!}%
- \catcode`_ 13 \catcode`: 11 \endlinechar -1 %
+ \catcode`_ 13 \catcode`: 11 \endlinechar -1
\everyeof {\noexpand }%
\edef\XINTtmp ##1##2##3##4##5##6##7##8##9%
{\scantokens
- \expandafter{\romannumeral-`0\xintthefloatexpr
+ \expandafter{\romannumeral-`0#1%
\xintTmp {####1}{####2}{####3}%
{####4}{####5}{####6}%
{####7}{####8}{####9}%
@@ -924,9 +899,9 @@
\lccode`\*=`\$ \lowercase {\def*}{####}%
\catcode`\$ 13 \catcode`! 0 \catcode`_ 11 %
\the\toks0
- {\scantokens\expandafter
- {\expandafter\XINT_newexpr_stripprefix\meaning\XINTtmp}}%
-\endgroup
+ {\scantokens\expandafter{\expandafter
+ \XINT_newexpr_stripprefix\meaning\XINTtmp}}%
+ \endgroup
}%
\let\xintexprRestoreCatcodes\relax
\def\xintexprSafeCatcodes
diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
index c5ea336f8a8..fd6dfb6b926 100644
--- a/Master/texmf-dist/tex/generic/xint/xintfrac.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
@@ -22,7 +22,7 @@
%% in the same archive or directory.)
%%
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09b of October 3, 2013)
+%% The xint bundle (version 1.09c of October 9, 2013)
%% xintfrac: Expandable operations on fractions
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -86,12 +86,11 @@
\catcode45=12 % -
\catcode46=12 % .
\catcode58=12 % :
- \expandafter
- \ifx\csname PackageInfo\endcsname\relax
- \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
- \else
+ \ifdefined\PackageInfo
\def\y#1#2{\PackageInfo{#1}{#2}}%
- \fi
+ \else
+ \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
+ \fi
\def\empty {}%
\expandafter\let\expandafter\w\csname ver@xint.sty\endcsname
\ifx\w\relax % Plain TeX, user gave a file name at the prompt
@@ -106,7 +105,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintfrac}%
- [2013/10/03 v1.09b Expandable operations on fractions (jfB)]%
+ [2013/10/09 v1.09c Expandable operations on fractions (jfB)]%
\chardef\xint_c_vi 6
\chardef\xint_c_vii 7
\chardef\xint_c_xviii 18
diff --git a/Master/texmf-dist/tex/generic/xint/xintgcd.sty b/Master/texmf-dist/tex/generic/xint/xintgcd.sty
index 6c64b21a9ef..96b66869c36 100644
--- a/Master/texmf-dist/tex/generic/xint/xintgcd.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintgcd.sty
@@ -22,7 +22,7 @@
%% in the same archive or directory.)
%%
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09b of October 3, 2013)
+%% The xint bundle (version 1.09c of October 9, 2013)
%% xintgcd: Euclidean algorithm with xint package
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -86,12 +86,11 @@
\catcode45=12 % -
\catcode46=12 % .
\catcode58=12 % :
- \expandafter
- \ifx\csname PackageInfo\endcsname\relax
- \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
- \else
+ \ifdefined\PackageInfo
\def\y#1#2{\PackageInfo{#1}{#2}}%
- \fi
+ \else
+ \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
+ \fi
\def\empty {}%
\expandafter\let\expandafter\w\csname ver@xint.sty\endcsname
\ifx\w\relax % Plain TeX, user gave a file name at the prompt
@@ -106,7 +105,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintgcd}%
- [2013/10/03 v1.09b Euclide algorithm with xint package (jfB)]%
+ [2013/10/09 v1.09c Euclide algorithm with xint package (jfB)]%
\def\xintGCD {\romannumeral0\xintgcd }%
\def\xintgcd #1%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty
index 73eccab40e9..235996ff808 100644
--- a/Master/texmf-dist/tex/generic/xint/xintseries.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintseries.sty
@@ -22,7 +22,7 @@
%% in the same archive or directory.)
%%
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09b of October 3, 2013)
+%% The xint bundle (version 1.09c of October 9, 2013)
%% xintseries: Expandable partial sums with xint package
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -86,12 +86,11 @@
\catcode45=12 % -
\catcode46=12 % .
\catcode58=12 % :
- \expandafter
- \ifx\csname PackageInfo\endcsname\relax
- \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
- \else
+ \ifdefined\PackageInfo
\def\y#1#2{\PackageInfo{#1}{#2}}%
- \fi
+ \else
+ \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
+ \fi
\def\empty {}%
\expandafter\let\expandafter\w\csname ver@xintfrac.sty\endcsname
\ifx\w\relax % Plain TeX, user gave a file name at the prompt
@@ -106,7 +105,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintseries}%
- [2013/10/03 v1.09b Expandable partial sums with xint package (jfB)]%
+ [2013/10/09 v1.09c Expandable partial sums with xint package (jfB)]%
\def\xintSeries {\romannumeral0\xintseries }%
\def\xintseries #1#2%
{%