summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/xint/xinttools.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xinttools.sty')
-rw-r--r--Master/texmf-dist/tex/generic/xint/xinttools.sty212
1 files changed, 110 insertions, 102 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xinttools.sty b/Master/texmf-dist/tex/generic/xint/xinttools.sty
index 732a24d643f..b23ed5ac1e7 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.2k 2017/01/06
+%% The xint bundle 1.2l 2017/07/26
%% Copyright (C) 2013-2017 by Jean-Francois Burnol
%% xinttools: Expandable and non-expandable utilities
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xinttools}%
- [2017/01/06 1.2k Expandable and non-expandable utilities (JFB)]%
+ [2017/07/26 1.2l Expandable and non-expandable utilities (JFB)]%
\newtoks\XINT_toks
\xint_firstofone{\let\XINT_sptoken= } %<- space here!
\def\xintgodef {\global\xintodef }%
@@ -81,21 +81,21 @@
\long\def\xintrevwithbraces #1%
{%
\expandafter\XINT_revwbr_loop\expandafter{\expandafter}%
- \romannumeral`&&@#1\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye
+ \romannumeral`&&@#1\xint:\xint:\xint:\xint:%
+ \xint:\xint:\xint:\xint:\xint_bye
}%
\long\def\xintrevwithbracesnoexpand #1%
{%
\XINT_revwbr_loop {}%
- #1\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye
+ #1\xint:\xint:\xint:\xint:%
+ \xint:\xint:\xint:\xint:\xint_bye
}%
\long\def\XINT_revwbr_loop #1#2#3#4#5#6#7#8#9%
{%
- \xint_gob_til_xint_relax #9\XINT_revwbr_finish_a\xint_relax
+ \xint_gob_til_xint: #9\XINT_revwbr_finish_a\xint:%
\XINT_revwbr_loop {{#9}{#8}{#7}{#6}{#5}{#4}{#3}{#2}#1}%
}%
-\long\def\XINT_revwbr_finish_a\xint_relax\XINT_revwbr_loop #1#2\xint_bye
+\long\def\XINT_revwbr_finish_a\xint:\XINT_revwbr_loop #1#2\xint_bye
{%
\XINT_revwbr_finish_b #2\R\R\R\R\R\R\R\Z #1%
}%
@@ -111,49 +111,60 @@
#7\XINT_revwbr_finish_c \xint_gobble_ii
\R\XINT_revwbr_finish_c \xint_gobble_i\Z
}%
-\edef\XINT_revwbr_finish_c #1#2\Z {\noexpand\expandafter\space #1}%
+\def\XINT_revwbr_finish_c#1{%
+\def\XINT_revwbr_finish_c##1##2\Z{\expandafter#1##1}%
+}\XINT_revwbr_finish_c{ }%
\def\xintZapFirstSpaces {\romannumeral0\xintzapfirstspaces }%
-\long\edef\xintzapfirstspaces #1%
- {\noexpand\XINT_zapbsp_a \space #1\xint_relax \space\space\xint_relax }%
-\xint_firstofone {\long\edef\XINT_zapbsp_a #1 } %<- space token here
-{%
- \noexpand\XINT_zapbsp_again? #1\noexpand\xint_bye\noexpand\XINT_zapbsp_b #1\space\space
-}%
+\def\xintzapfirstspaces#1{\long
+\def\xintzapfirstspaces ##1{\XINT_zapbsp_a #1##1\xint:#1#1\xint:}%
+}\xintzapfirstspaces{ }%
+\def\XINT_zapbsp_a#1{\long\def\XINT_zapbsp_a ##1#1#1{%
+ \XINT_zapbsp_again?##1\xint_bye\XINT_zapbsp_b ##1#1#1}%
+}\XINT_zapbsp_a{ }%
\long\def\XINT_zapbsp_again? #1{\xint_bye #1\XINT_zapbsp_again }%
\xint_firstofone{\def\XINT_zapbsp_again\XINT_zapbsp_b} {\XINT_zapbsp_a }%
-\long\def\XINT_zapbsp_b #1\xint_relax #2\xint_relax {#1}%
+\long\def\XINT_zapbsp_b #1\xint:#2\xint:{#1}%
\def\xintZapLastSpaces {\romannumeral0\xintzaplastspaces }%
-\long\edef\xintzaplastspaces #1{\noexpand\XINT_zapesp_a {}\noexpand\empty#1%
- \space\space\noexpand\xint_bye\xint_relax}%
+\def\xintzaplastspaces#1{\long
+\def\xintzaplastspaces ##1{\XINT_zapesp_a {}\empty##1#1#1\xint_bye\xint:}%
+}\xintzaplastspaces{ }%
\xint_firstofone {\long\def\XINT_zapesp_a #1#2 } %<- second space here
{\expandafter\XINT_zapesp_b\expandafter{#2}{#1}}%
-\long\def\XINT_zapesp_b #1#2#3\xint_relax
- {\XINT_zapesp_end? #3\XINT_zapesp_e {#2#1}\empty #3\xint_relax }%
+\long\def\XINT_zapesp_b #1#2#3\xint:%
+ {\XINT_zapesp_end? #3\XINT_zapesp_e {#2#1}\empty #3\xint:}%
\long\def\XINT_zapesp_end? #1{\xint_bye #1\XINT_zapesp_end }%
-\long\def\XINT_zapesp_end\XINT_zapesp_e #1#2\xint_relax { #1}%
-\long\edef\XINT_zapesp_e #1{\noexpand \XINT_zapesp_a {#1\space\space}}%
+\long\def\XINT_zapesp_end\XINT_zapesp_e #1#2\xint:{ #1}%
+\def\XINT_zapesp_e#1{%
+\long\def\XINT_zapesp_e ##1{\XINT_zapesp_a {##1#1#1}}%
+}\XINT_zapesp_e{ }%
\def\xintZapSpaces {\romannumeral0\xintzapspaces }%
-\long\edef\xintzapspaces #1% like \xintZapFirstSpaces.
- {\noexpand\XINT_zapsp_a \space #1\xint_relax \space\space\xint_relax }%
-\xint_firstofone {\long\edef\XINT_zapsp_a #1 } %
- {\noexpand\XINT_zapsp_again? #1\noexpand\xint_bye\noexpand\XINT_zapsp_b #1\space\space}%
+\def\xintzapspaces#1{%
+\long\def\xintzapspaces ##1% like \xintZapFirstSpaces.
+ {\XINT_zapsp_a #1##1\xint:#1#1\xint:}%
+}\xintzapspaces{ }%
+\def\XINT_zapsp_a#1{%
+\long\def\XINT_zapsp_a ##1#1#1%
+ {\XINT_zapsp_again?##1\xint_bye\XINT_zapsp_b##1#1#1}%
+}\XINT_zapsp_a{ }%
\long\def\XINT_zapsp_again? #1{\xint_bye #1\XINT_zapsp_again }%
\xint_firstofone{\def\XINT_zapsp_again\XINT_zapsp_b} {\XINT_zapsp_a }%
\xint_firstofone{\def\XINT_zapsp_b} {\XINT_zapsp_c }%
-\long\edef\XINT_zapsp_c #1\xint_relax #2\xint_relax {\noexpand\XINT_zapesp_a
- {}\noexpand \empty #1\space\space\noexpand\xint_bye\xint_relax }%
+\def\XINT_zapsp_c#1{%
+\long\def\XINT_zapsp_c ##1\xint:##2\xint:%
+ {\XINT_zapesp_a{}\empty ##1#1#1\xint_bye\xint:}%
+}\XINT_zapsp_c{ }%
\def\xintZapSpacesB {\romannumeral0\xintzapspacesb }%
-\long\def\xintzapspacesb #1{\XINT_zapspb_one? #1\xint_relax\xint_relax
+\long\def\xintzapspacesb #1{\XINT_zapspb_one? #1\xint:\xint:%
\xint_bye\xintzapspaces {#1}}%
\long\def\XINT_zapspb_one? #1#2%
- {\xint_gob_til_xint_relax #1\XINT_zapspb_onlyspaces\xint_relax
- \xint_gob_til_xint_relax #2\XINT_zapspb_bracedorone\xint_relax
+ {\xint_gob_til_xint: #1\XINT_zapspb_onlyspaces\xint:%
+ \xint_gob_til_xint: #2\XINT_zapspb_bracedorone\xint:%
\xint_bye {#1}}%
-\def\XINT_zapspb_onlyspaces\xint_relax
- \xint_gob_til_xint_relax\xint_relax\XINT_zapspb_bracedorone\xint_relax
+\def\XINT_zapspb_onlyspaces\xint:%
+ \xint_gob_til_xint:\xint:\XINT_zapspb_bracedorone\xint:%
\xint_bye #1\xint_bye\xintzapspaces #2{ }%
-\long\def\XINT_zapspb_bracedorone\xint_relax
- \xint_bye #1\xint_relax\xint_bye\xintzapspaces #2{ #1}%
+\long\def\XINT_zapspb_bracedorone\xint:%
+ \xint_bye #1\xint:\xint_bye\xintzapspaces #2{ #1}%
\def\xintCSVtoList {\romannumeral0\xintcsvtolist }%
\long\def\xintcsvtolist #1{\expandafter\xintApply
\expandafter\xintzapspacesb
@@ -246,8 +257,7 @@
\long\def\XINT_nthelt_neg #1.#2%
{%
\expandafter\XINT_nthelt_neg_a\the\numexpr\xint_c_i+\XINT_length_loop
- #2\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax
+ #2\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:
\xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v
\xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye
-#1.#2\xint_bye
@@ -267,13 +277,13 @@
{%
\expandafter\XINT_nthelt_pos_done
\romannumeral0\expandafter\XINT_trim_loop\the\numexpr#1-\xint_c_x.%
- #2\xint_relax\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax
+ #2\xint:\xint:\xint:\xint:\xint:%
+ \xint:\xint:\xint:\xint:\xint:%
\xint_bye
}%
\def\XINT_nthelt_pos_done #1{%
\long\def\XINT_nthelt_pos_done ##1##2\xint_bye{%
- \xint_gob_til_xint_relax##1\expandafter#1\xint_gobble_ii\xint_relax#1##1}%
+ \xint_gob_til_xint:##1\expandafter#1\xint_gobble_ii\xint:#1##1}%
}\XINT_nthelt_pos_done{ }%
\def\xintKeep {\romannumeral0\xintkeep }%
\def\xintKeepNoExpand {\romannumeral0\xintkeepnoexpand }%
@@ -293,8 +303,7 @@
{%
\expandafter\XINT_keep_neg_a\the\numexpr
#1-\numexpr\XINT_length_loop
- #2\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax
+ #2\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:
\xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v
\xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye.#2%
}%
@@ -310,8 +319,7 @@
{%
\expandafter\XINT_keep_loop
\the\numexpr#1-\XINT_lengthupto_loop
- #1.#2\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax
+ #1.#2\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:
\xint_c_vii\xint_c_vi\xint_c_v\xint_c_iv
\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye.%
-\xint_c_viii.{}#2\xint_bye%
@@ -362,8 +370,7 @@
{%
\expandafter\XINT_keepunbr_loop
\the\numexpr#1-\XINT_lengthupto_loop
- #1.#2\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax
+ #1.#2\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:
\xint_c_vii\xint_c_vi\xint_c_v\xint_c_iv
\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye.%
-\xint_c_viii.{}#2\xint_bye%
@@ -413,8 +420,7 @@
{%
\expandafter\XINT_trim_neg_a\the\numexpr
#1-\numexpr\XINT_length_loop
- #2\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax
+ #2\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:
\xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v
\xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye
.{}#2\xint_bye
@@ -426,13 +432,15 @@
-\XINT_trim_trimall
\krof
}%
-\edef\XINT_trim_trimall {\noexpand\expandafter\space\noexpand\xint_bye}%
+\def\XINT_trim_trimall#1{%
+\def\XINT_trim_trimall {\expandafter#1\xint_bye}%
+}\XINT_trim_trimall{ }%
\long\def\XINT_trim_pos #1.#2%
{%
\expandafter\XINT_trim_pos_done\expandafter\space
\romannumeral0\expandafter\XINT_trim_loop\the\numexpr#1-\xint_c_ix.%
- #2\xint_relax\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax
+ #2\xint:\xint:\xint:\xint:\xint:%
+ \xint:\xint:\xint:\xint:\xint:%
\xint_bye
}%
\def\XINT_trim_loop #1#2.%
@@ -442,9 +450,9 @@
}%
\long\def\XINT_trim_loop_trimnine #1#2#3#4#5#6#7#8#9%
{%
- \xint_gob_til_xint_relax #9\XINT_trim_toofew\xint_relax-\xint_c_ix.%
+ \xint_gob_til_xint: #9\XINT_trim_toofew\xint:-\xint_c_ix.%
}%
-\def\XINT_trim_toofew\xint_relax{*\xint_c_}%
+\def\XINT_trim_toofew\xint:{*\xint_c_}%
\def\XINT_trim_finish#1{%
\def\XINT_trim_finish-%
\expandafter\XINT_trim_loop\the\numexpr-##1\XINT_trim_loop_trimnine
@@ -452,7 +460,7 @@
\expandafter\expandafter\expandafter#1%
\csname xint_gobble_\romannumeral\numexpr\xint_c_ix-##1\endcsname
}}\XINT_trim_finish{ }%
-\long\def\XINT_trim_pos_done #1\xint_relax #2\xint_bye {#1}%
+\long\def\XINT_trim_pos_done #1\xint:#2\xint_bye {#1}%
\def\xintTrimUnbraced {\romannumeral0\xinttrimunbraced }%
\def\xintTrimUnbracedNoExpand {\romannumeral0\xinttrimunbracednoexpand }%
\long\def\xinttrimunbraced #1#2%
@@ -472,8 +480,7 @@
{%
\expandafter\XINT_trimunbr_neg_a\the\numexpr
#1-\numexpr\XINT_length_loop
- #2\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax
+ #2\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:
\xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v
\xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye
.{}#2\xint_bye
@@ -1001,7 +1008,7 @@
\long\def\XINT_assign_a #1\to
{%
\def\XINT_flet_macro{\XINT_assign_b}%
- \expandafter\XINT_flet_zapsp\romannumeral`&&@#1\xint_relax\to
+ \expandafter\XINT_flet_zapsp\romannumeral`&&@#1\xint:\to
}%
\long\def\XINT_assign_b
{%
@@ -1010,14 +1017,14 @@
\else\expandafter\XINT_assign_f
\fi
}%
-\long\def\XINT_assign_f #1\xint_relax\to #2%
+\long\def\XINT_assign_f #1\xint:\to #2%
{%
\XINT_assign_def #2{#1}%
}%
\long\def\XINT_assign_c #1%
{%
\def\xint_temp {#1}%
- \ifx\xint_temp\xint_brelax
+ \ifx\xint_temp\xint_bracedstopper
\expandafter\XINT_assign_e
\else
\expandafter\XINT_assign_d
@@ -1069,7 +1076,7 @@
\expandafter\def\expandafter\xint_arrayname\expandafter {\string #2}%
\XINT_restoreescapechar
\def\xint_itemcount {0}%
- \expandafter\XINT_assignarray_loop \romannumeral`&&@#1\xint_relax
+ \expandafter\XINT_assignarray_loop \romannumeral`&&@#1\xint:
\csname\xint_arrayname 00\expandafter\endcsname
\csname\xint_arrayname 0\expandafter\endcsname
\expandafter {\xint_arrayname}#2%
@@ -1077,7 +1084,7 @@
\long\def\XINT_assignarray_loop #1%
{%
\def\xint_temp {#1}%
- \ifx\xint_brelax\xint_temp
+ \ifx\xint_temp\xint_bracedstopper
\expandafter\def\csname\xint_arrayname 0\expandafter\endcsname
\expandafter{\the\numexpr\xint_itemcount}%
\expandafter\expandafter\expandafter\XINT_assignarray_end
@@ -1099,11 +1106,12 @@
\def #1##1%
{%
\ifnum ##1<\xint_c_
- \xint_afterfi {\xintError:ArrayIndexIsNegative\space }%
+ \xint_afterfi{\XINT_expandableerror{Array index negative: 0 > ##1} }%
\else
\xint_afterfi {%
\ifnum ##1>#2
- \xint_afterfi {\xintError:ArrayIndexBeyondLimit\space }%
+ \xint_afterfi
+ {\XINT_expandableerror{Array index beyond range: ##1 > #2} }%
\else\xint_afterfi
{\expandafter\expandafter\expandafter\space\csname #3##1\endcsname}%
\fi}%
@@ -1115,40 +1123,40 @@
\def\xintlength:f:csv #1%
{\long\def\xintlength:f:csv ##1{%
\expandafter#1\the\numexpr\expandafter\XINT_length:f:csv_a
- \romannumeral`&&@##1\xint_relax,\xint_relax,\xint_relax,\xint_relax,%
- \xint_relax,\xint_relax,\xint_relax,\xint_relax,\xint_relax,%
+ \romannumeral`&&@##1\xint:,\xint:,\xint:,\xint:,%
+ \xint:,\xint:,\xint:,\xint:,\xint:,%
\xint_c_ix,\xint_c_viii,\xint_c_vii,\xint_c_vi,%
\xint_c_v,\xint_c_iv,\xint_c_iii,\xint_c_ii,\xint_c_i,\xint_bye
\relax
}}\xintlength:f:csv { }%
\long\def\XINT_length:f:csv_a #1%
{%
- \xint_gob_til_xint_relax #1\xint_c_\xint_bye\xint_relax
+ \xint_gob_til_xint: #1\xint_c_\xint_bye\xint:%
\XINT_length:f:csv_loop #1%
}%
\long\def\XINT_length:f:csv_loop #1,#2,#3,#4,#5,#6,#7,#8,#9,%
{%
- \xint_gob_til_xint_relax #9\XINT_length:f:csv_finish\xint_relax
+ \xint_gob_til_xint: #9\XINT_length:f:csv_finish\xint:%
\xint_c_ix+\XINT_length:f:csv_loop
}%
-\def\XINT_length:f:csv_finish\xint_relax\xint_c_ix+\XINT_length:f:csv_loop
+\def\XINT_length:f:csv_finish\xint:\xint_c_ix+\XINT_length:f:csv_loop
#1,#2,#3,#4,#5,#6,#7,#8,#9,{#9\xint_bye}%
\def\xintLengthUpTo:f:csv {\romannumeral0\xintlengthupto:f:csv}%
\long\def\xintlengthupto:f:csv #1#2%
{%
\expandafter\XINT_lengthupto:f:csv_a
\the\numexpr#1\expandafter.%
- \romannumeral`&&@#2\xint_relax,\xint_relax,\xint_relax,\xint_relax,%
- \xint_relax,\xint_relax,\xint_relax,\xint_relax,%
+ \romannumeral`&&@#2\xint:,\xint:,\xint:,\xint:,%
+ \xint:,\xint:,\xint:,\xint:,%
\xint_c_viii,\xint_c_vii,\xint_c_vi,\xint_c_v,%
\xint_c_iv,\xint_c_iii,\xint_c_ii,\xint_c_i,\xint_bye.%
}%
\long\def\XINT_lengthupto:f:csv_a #1.#2%
{%
- \xint_gob_til_xint_relax #2\XINT_lengthupto:f:csv_empty\xint_relax
+ \xint_gob_til_xint: #2\XINT_lengthupto:f:csv_empty\xint:%
\XINT_lengthupto:f:csv_loop_b #1.#2%
}%
-\def\XINT_lengthupto:f:csv_empty\xint_relax
+\def\XINT_lengthupto:f:csv_empty\xint:%
\XINT_lengthupto:f:csv_loop_b #1.#2\xint_bye.{ #1}%
\def\XINT_lengthupto:f:csv_loop_a #1%
{%
@@ -1160,10 +1168,10 @@
\long\def\XINT_lengthupto:f:csv_gt #1\xint_bye.{-0}%
\long\def\XINT_lengthupto:f:csv_loop_b #1.#2,#3,#4,#5,#6,#7,#8,#9,%
{%
- \xint_gob_til_xint_relax #9\XINT_lengthupto:f:csv_finish_a\xint_relax
+ \xint_gob_til_xint: #9\XINT_lengthupto:f:csv_finish_a\xint:%
\expandafter\XINT_lengthupto:f:csv_loop_a\the\numexpr #1-\xint_c_viii.%
}%
-\def\XINT_lengthupto:f:csv_finish_a\xint_relax
+\def\XINT_lengthupto:f:csv_finish_a\xint:
\expandafter\XINT_lengthupto:f:csv_loop_a
\the\numexpr #1-\xint_c_viii.#2,#3,#4,#5,#6,#7,#8,#9,%
{%
@@ -1198,8 +1206,8 @@
\romannumeral0%
\expandafter\XINT_keep:f:csv_neg_a\the\numexpr
#1-\numexpr\XINT_length:f:csv_a
- #2\xint_relax,\xint_relax,\xint_relax,\xint_relax,%
- \xint_relax,\xint_relax,\xint_relax,\xint_relax,\xint_relax,%
+ #2\xint:,\xint:,\xint:,\xint:,%
+ \xint:,\xint:,\xint:,\xint:,\xint:,%
\xint_c_ix,\xint_c_viii,\xint_c_vii,\xint_c_vi,%
\xint_c_v,\xint_c_iv,\xint_c_iii,\xint_c_ii,\xint_c_i,\xint_bye
.#2\xint_bye
@@ -1228,8 +1236,8 @@
{%
\expandafter\XINT_keep:f:csv_pos_fork
\romannumeral0\XINT_lengthupto:f:csv_a
- #1.#2\xint_relax,\xint_relax,\xint_relax,\xint_relax,%
- \xint_relax,\xint_relax,\xint_relax,\xint_relax,%
+ #1.#2\xint:,\xint:,\xint:,\xint:,%
+ \xint:,\xint:,\xint:,\xint:,%
\xint_c_viii,\xint_c_vii,\xint_c_vi,\xint_c_v,%
\xint_c_iv,\xint_c_iii,\xint_c_ii,\xint_c_i,\xint_bye.%
.#1.{}#2\xint_bye%
@@ -1289,8 +1297,8 @@
{%
\expandafter\XINT_trim:f:csv_neg_a\the\numexpr
#1-\numexpr\XINT_length:f:csv_a
- #2\xint_relax,\xint_relax,\xint_relax,\xint_relax,%
- \xint_relax,\xint_relax,\xint_relax,\xint_relax,\xint_relax,%
+ #2\xint:,\xint:,\xint:,\xint:,%
+ \xint:,\xint:,\xint:,\xint:,\xint:,%
\xint_c_ix,\xint_c_viii,\xint_c_vii,\xint_c_vi,%
\xint_c_v,\xint_c_iv,\xint_c_iii,\xint_c_ii,\xint_c_i,\xint_bye
.{}#2\xint_bye
@@ -1308,8 +1316,8 @@
\expandafter\XINT_trim:f:csv_pos_done\expandafter,%
\romannumeral0%
\expandafter\XINT_trim:f:csv_loop\the\numexpr#1-\xint_c_ix.%
- #2\xint_relax,\xint_relax,\xint_relax,\xint_relax,\xint_relax,%
- \xint_relax,\xint_relax,\xint_relax,\xint_relax,\xint_relax\xint_bye
+ #2\xint:,\xint:,\xint:,\xint:,\xint:,%
+ \xint:,\xint:,\xint:,\xint:,\xint:\xint_bye
}%
\def\XINT_trim:f:csv_loop #1#2.%
{%
@@ -1318,9 +1326,9 @@
}%
\long\def\XINT_trim:f:csv_loop_trimnine #1,#2,#3,#4,#5,#6,#7,#8,#9,%
{%
- \xint_gob_til_xint_relax #9\XINT_trim:f:csv_toofew\xint_relax-\xint_c_ix.%
+ \xint_gob_til_xint: #9\XINT_trim:f:csv_toofew\xint:-\xint_c_ix.%
}%
-\def\XINT_trim:f:csv_toofew\xint_relax{*\xint_c_}%
+\def\XINT_trim:f:csv_toofew\xint:{*\xint_c_}%
\def\XINT_trim:f:csv_finish-%
\expandafter\XINT_trim:f:csv_loop\the\numexpr-#1\XINT_trim:f:csv_loop_trimnine
{%
@@ -1343,7 +1351,7 @@
\long\expandafter\def\csname XINT_trim:f:csv_finish8\endcsname
#1,{ }%
\expandafter\let\csname XINT_trim:f:csv_finish9\endcsname\space
-\long\def\XINT_trim:f:csv_pos_done #1\xint_relax #2\xint_bye{#1}%
+\long\def\XINT_trim:f:csv_pos_done #1\xint:#2\xint_bye{#1}%
\def\xintNthEltPy:f:csv {\romannumeral0\xintntheltpy:f:csv }%
\long\def\xintntheltpy:f:csv #1#2%
{%
@@ -1361,8 +1369,8 @@
{%
\expandafter\XINT_nthelt:f:csv_neg_fork
\the\numexpr\XINT_length:f:csv_a
- #2\xint_relax,\xint_relax,\xint_relax,\xint_relax,%
- \xint_relax,\xint_relax,\xint_relax,\xint_relax,\xint_relax,%
+ #2\xint:,\xint:,\xint:,\xint:,%
+ \xint:,\xint:,\xint:,\xint:,\xint:,%
\xint_c_ix,\xint_c_viii,\xint_c_vii,\xint_c_vi,%
\xint_c_v,\xint_c_iv,\xint_c_iii,\xint_c_ii,\xint_c_i,\xint_bye
-#1.#2,\xint_bye
@@ -1380,35 +1388,35 @@
\expandafter\XINT_nthelt:f:csv_pos_done
\romannumeral0%
\expandafter\XINT_trim:f:csv_loop\the\numexpr#1-\xint_c_ix.%
- #2\xint_relax,\xint_relax,\xint_relax,\xint_relax,\xint_relax,%
- \xint_relax,\xint_relax,\xint_relax,\xint_relax,\xint_relax,\xint_bye
+ #2\xint:,\xint:,\xint:,\xint:,\xint:,%
+ \xint:,\xint:,\xint:,\xint:,\xint:,\xint_bye
}%
\def\XINT_nthelt:f:csv_pos_done #1{%
\long\def\XINT_nthelt:f:csv_pos_done ##1,##2\xint_bye{%
- \xint_gob_til_xint_relax##1\XINT_nthelt:f:csv_pos_cleanup\xint_relax#1##1}%
+ \xint_gob_til_xint:##1\XINT_nthelt:f:csv_pos_cleanup\xint:#1##1}%
}\XINT_nthelt:f:csv_pos_done{ }%
-\xint_firstofone{\long\def\XINT_nthelt:f:csv_pos_cleanup\xint_relax} %
- #1\xint_relax{ #1}%
+\xint_firstofone{\long\def\XINT_nthelt:f:csv_pos_cleanup\xint:} %
+ #1\xint:{ #1}%
\def\xintReverse:f:csv {\romannumeral0\xintreverse:f:csv }%
\long\def\xintreverse:f:csv #1%
{%
\expandafter\XINT_reverse:f:csv_loop
\expandafter{\expandafter}\romannumeral`&&@#1,%
- \xint_relax,%
+ \xint:,%
\xint_bye,\xint_bye,\xint_bye,\xint_bye,%
\xint_bye,\xint_bye,\xint_bye,\xint_bye,%
- \xint_relax
+ \xint:
}%
\long\def\XINT_reverse:f:csv_loop #1#2,#3,#4,#5,#6,#7,#8,#9,%
{%
\xint_bye #9\XINT_reverse:f:csv_cleanup\xint_bye
\XINT_reverse:f:csv_loop {,#9,#8,#7,#6,#5,#4,#3,#2#1}%
}%
-\long\def\XINT_reverse:f:csv_cleanup\xint_bye\XINT_reverse:f:csv_loop #1#2\xint_relax
+\long\def\XINT_reverse:f:csv_cleanup\xint_bye\XINT_reverse:f:csv_loop #1#2\xint:
{%
\XINT_reverse:f:csv_finish #1%
}%
-\long\def\XINT_reverse:f:csv_finish #1\xint_relax,{ }%
+\long\def\XINT_reverse:f:csv_finish #1\xint:,{ }%
\def\xintFirstItem:f:csv {\romannumeral0\xintfirstitem:f:csv}%
\long\def\xintfirstitem:f:csv #1%
{%
@@ -1420,15 +1428,15 @@
{%
\expandafter\XINT_last:f:csv_loop\expandafter{\expandafter}\expandafter.%
\romannumeral`&&@#1,%
- \xint_relax\XINT_last_loop_enda,\xint_relax\XINT_last_loop_endb,%
- \xint_relax\XINT_last_loop_endc,\xint_relax\XINT_last_loop_endd,%
- \xint_relax\XINT_last_loop_ende,\xint_relax\XINT_last_loop_endf,%
- \xint_relax\XINT_last_loop_endg,\xint_relax\XINT_last_loop_endh,\xint_bye
+ \xint:\XINT_last_loop_enda,\xint:\XINT_last_loop_endb,%
+ \xint:\XINT_last_loop_endc,\xint:\XINT_last_loop_endd,%
+ \xint:\XINT_last_loop_ende,\xint:\XINT_last_loop_endf,%
+ \xint:\XINT_last_loop_endg,\xint:\XINT_last_loop_endh,\xint_bye
}%
\long\def\XINT_last:f:csv_loop #1.#2,#3,#4,#5,#6,#7,#8,#9,%
{%
- \xint_gob_til_xint_relax #9%
- {#8}{#7}{#6}{#5}{#4}{#3}{#2}{#1}\xint_relax
+ \xint_gob_til_xint: #9%
+ {#8}{#7}{#6}{#5}{#4}{#3}{#2}{#1}\xint:
\XINT_last:f:csv_loop {#9}.%
}%
\let\xintCSVLength \xintLength:f:csv