summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/xint/xint.sty
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2013-05-27 05:00:41 +0000
committerNorbert Preining <preining@logic.at>2013-05-27 05:00:41 +0000
commit04fd1776023ee2133a059a5a7c0974705552be89 (patch)
tree146f87138e07a550161e6dd7d59dec64a9049238 /Master/texmf-dist/tex/generic/xint/xint.sty
parent9187fc6b720d7c26139a39d4edfec826fd9fbe25 (diff)
xint update (5/27)
git-svn-id: svn://tug.org/texlive/trunk@30723 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xint.sty')
-rw-r--r--Master/texmf-dist/tex/generic/xint/xint.sty51
1 files changed, 41 insertions, 10 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty
index c296158f940..b740ecda4a6 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.06b of May 14, 2013)
+%% The xint bundle (version 1.07a of May 26, 2013)
%% xint: Expandable operations on long numbers
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -138,7 +138,7 @@
\fi
\expandafter\x\csname ver@xint.sty\endcsname
\ProvidesPackage{xint}%
- [2013/05/14 v1.06b Expandable operations on long numbers (jfB)]%
+ [2013/05/26 v1.07a Expandable operations on long numbers (jfB)]%
\def\xint_gobble_ {}%
\def\xint_gobble_i #1{}%
\def\xint_gobble_ii #1#2{}%
@@ -153,6 +153,9 @@
\def\xint_firstoftwo_andstop #1#2{ #1}%
\def\xint_secondoftwo_andstop #1#2{ #2}%
\def\xint_exchangetwo_keepbraces_andstop #1#2{ {#2}{#1}}%
+\def\xint_firstofthree #1#2#3{#1}%
+\def\xint_secondofthree #1#2#3{#2}%
+\def\xint_thirdofthree #1#2#3{#3}%
\def\xint_minus_andstop { -}%
\def\xint_gob_til_r #1\R {}%
\def\xint_gob_til_w #1\W {}%
@@ -213,13 +216,13 @@
\def\xintRevWithBracesNoExpand {\romannumeral0\xintrevwithbracesnoexpand }%
\def\xintrevwithbraces #1%
{%
- \expandafter\XINT_revwbr_loop % #1 empty ok
+ \expandafter\XINT_revwbr_loop\expandafter{\expandafter}%
\romannumeral-`0#1\xint_relax\xint_relax\xint_relax\xint_relax
\xint_relax\xint_relax\xint_relax\xint_relax\Z
}%
\def\xintrevwithbracesnoexpand #1%
{%
- \romannumeral0\XINT_revwbr_loop
+ \romannumeral0\XINT_revwbr_loop\expandafter{\expandafter}%
#1\xint_relax\xint_relax\xint_relax\xint_relax
\xint_relax\xint_relax\xint_relax\xint_relax\Z
}%
@@ -305,6 +308,7 @@
\def\XINT_length_finish_c #1#2\Z #3%
{\expandafter\space\the\numexpr #3-#1\relax}%
\def\xintCSVtoList {\romannumeral0\xintcsvtolist }%
+\def\xintCSVtoListNoExpand {\romannumeral0\xintcsvtolistnoexpand }%
\def\xintcsvtolist #1%
{%
\expandafter\XINT_csvtol_loop_a\expandafter
@@ -312,6 +316,12 @@
,\xint_undef,\xint_undef,\xint_undef,\xint_undef
,\xint_undef,\xint_undef,\xint_undef,\xint_undef,\Z
}%
+\def\xintcsvtolistnoexpand #1%
+{%
+ \romannumeral0\XINT_csvtol_loop_a
+ {}#1,\xint_undef,\xint_undef,\xint_undef,\xint_undef
+ ,\xint_undef,\xint_undef,\xint_undef,\xint_undef,\Z
+}%
\def\XINT_csvtol_loop_a #1#2,#3,#4,#5,#6,#7,#8,#9,%
{%
\xint_gob_til_xint_undef #9\XINT_csvtol_finish_a\xint_undef
@@ -348,9 +358,12 @@
\def\XINT_csvtol_finish_di #1#2#3#4#5#6#7#8#9%
{ #9{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
\def\xintListWithSep {\romannumeral0\xintlistwithsep }%
+\def\xintListWithSepNoExpand {\romannumeral0\xintlistwithsepnoexpand }%
\long\def\xintlistwithsep #1#2%
{\expandafter\XINT_lws\expandafter {\romannumeral-`0#2}{#1}}%
\long\def\XINT_lws #1#2{\XINT_lws_start {#2}#1\Z }%
+\long\def\xintlistwithsepnoexpand #1#2%
+ {\romannumeral0\XINT_lws_start {#1}#2\Z }%
\long\def\XINT_lws_start #1#2%
{%
\xint_gob_til_z #2\XINT_lws_dont\Z
@@ -365,11 +378,16 @@
\long\def\XINT_lws_loop_b #1#2{\XINT_lws_loop_a {#1#2}}%
\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%
{%
\expandafter\XINT_nthelt\expandafter {\romannumeral-`0#2}%
{\numexpr #1\relax }%
}%
+\def\xintntheltnoexpand #1#2%
+{%
+ \romannumeral0\XINT_nthelt {#2}{\numexpr #1\relax}%
+}%
\def\XINT_nthelt #1#2%
{%
\ifnum #2>0
@@ -407,12 +425,14 @@
\krof
}%
\def\xintApply {\romannumeral0\xintapply }%
+\def\xintApplyNoExpand {\romannumeral0\xintapplynoexpand }%
\def\xintapply #1#2%
{%
\expandafter\XINT_apply\expandafter {\romannumeral-`0#2}%
{#1}%
}%
\def\XINT_apply #1#2{\XINT_apply_loop_a {}{#2}#1\Z }%
+\def\xintapplynoexpand #1#2{\romannumeral0\XINT_apply_loop_a {}{#1}#2\Z }%
\def\XINT_apply_loop_a #1#2#3%
{%
\xint_gob_til_z #3\XINT_apply_end\Z
@@ -423,12 +443,15 @@
\def\XINT_apply_loop_b #1#2{\XINT_apply_loop_a {#2{#1}}}%
\def\XINT_apply_end\Z\expandafter\XINT_apply_loop_b\expandafter #1#2#3{ #2}%
\def\xintApplyUnbraced {\romannumeral0\xintapplyunbraced }%
+\def\xintApplyUnbracedNoExpand {\romannumeral0\xintapplyunbracednoexpand }%
\def\xintapplyunbraced #1#2%
{%
\expandafter\XINT_applyunbr\expandafter {\romannumeral-`0#2}%
{#1}%
}%
\def\XINT_applyunbr #1#2{\XINT_applyunbr_loop_a {}{#2}#1\Z }%
+\def\xintapplyunbracednoexpand #1#2%
+ {\romannumeral0\XINT_applyunbr_loop_a {}{#1}#2\Z }%
\def\XINT_applyunbr_loop_a #1#2#3%
{%
\xint_gob_til_z #3\XINT_applyunbr_end\Z
@@ -680,6 +703,14 @@
0-\dummy { 1}%
\krof
}%
+\def\xintSgnFork {\romannumeral0\xintsgnfork }%
+\def\xintsgnfork #1%
+{%
+ \ifcase #1 \xint_afterfi{\expandafter\space\xint_secondofthree}%
+ \or\xint_afterfi{\expandafter\space\xint_thirdofthree}%
+ \else\xint_afterfi{\expandafter\space\xint_firstofthree}%
+ \fi
+}%
\def\xintiOpp {\romannumeral0\xintiopp }%
\def\xintiopp #1%
{%
@@ -2953,7 +2984,7 @@
\def\XINT_dsx_xisNeg_checkA_ #1#2\Z #3%
{%
\xint_gob_til_zero #1\XINT_dsx_xisNeg_Azero 0%
- \XINT_dsx_xisNeg_checkx {#3}{#3}\Z {#1#2}%
+ \XINT_dsx_xisNeg_checkx {#3}{#3}{}\Z {#1#2}%
}%
\def\XINT_dsx_xisNeg_Azero #1\Z #2{ 0}%
\def\XINT_dsx_xisNeg_checkx #1%
@@ -2961,25 +2992,25 @@
\ifnum #1>999999999
\xint_afterfi
{\xintError:TooBigDecimalShift
- \expandafter\space\expandafter 0\xint_gobble_iii }%
+ \expandafter\space\expandafter 0\xint_gobble_iv }%
\else
\expandafter \XINT_dsx_zeroloop
\fi
}%
-\def\XINT_dsx_zeroloop #1%
+\def\XINT_dsx_zeroloop #1#2%
{%
\ifnum #1<9 \XINT_dsx_exita\fi
\expandafter\XINT_dsx_zeroloop\expandafter
- {\the\numexpr #1-8}00000000%
+ {\the\numexpr #1-8}{#200000000}%
}%
\def\XINT_dsx_exita\fi\expandafter\XINT_dsx_zeroloop
{%
\fi\expandafter\XINT_dsx_exitb
}%
-\def\XINT_dsx_exitb #1%
+\def\XINT_dsx_exitb #1#2%
{%
\expandafter\expandafter\expandafter
- \XINT_dsx_addzeros\csname xint_gobble_\romannumeral -#1\endcsname
+ \XINT_dsx_addzeros\csname xint_gobble_\romannumeral -#1\endcsname #2%
}%
\def\XINT_dsx_addzeros #1\Z #2{ #2#1}%
\def\XINT_dsx_xisPos #1\Z #2%