diff options
author | Karl Berry <karl@freefriends.org> | 2017-07-27 21:26:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-07-27 21:26:25 +0000 |
commit | fe6cc7d43e9608cb5bb2533480000837d7cf4827 (patch) | |
tree | 3098f2a8b1933b247a3aa7f6b58bb4e7dcca58f0 /Master/texmf-dist/tex/generic/xint/xinttools.sty | |
parent | 654d2d2ad9ef4fc4de9cfd3b3d6038ef14ad4161 (diff) |
xint (27jul17)
git-svn-id: svn://tug.org/texlive/trunk@44900 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xinttools.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xinttools.sty | 212 |
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 |