diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xinttools.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xinttools.sty | 168 |
1 files changed, 94 insertions, 74 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xinttools.sty b/Master/texmf-dist/tex/generic/xint/xinttools.sty index b0806b12848..0aeffe17888 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.4a 2020/02/19 +%% The xint bundle 1.4b 2020/02/25 %% Copyright (C) 2013-2020 by Jean-Francois Burnol %% xinttools: Expandable and non-expandable utilities %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xinttools}% - [2020/02/19 v1.4a Expandable and non-expandable utilities (JFB)]% + [2020/02/25 v1.4b Expandable and non-expandable utilities (JFB)]% \newtoks\XINT_toks \xint_firstofone{\let\XINT_sptoken= } %<- space here! \def\xintgodef {\global\xintodef }% @@ -578,28 +578,6 @@ \long\def\XINT_apply_loop_b #1#2{\XINT_apply_loop_a {#2{#1}}}% \long\def\XINT_apply_end\xint_bye\expandafter\XINT_apply_loop_b \expandafter #1#2#3{ #2}% -\long\def\xintApply:x #1#2% -{% - \XINT_apply:x_loop {#1}#2% - {\xint:\XINT_apply:x_loop_enda}{\xint:\XINT_apply:x_loop_endb}% - {\xint:\XINT_apply:x_loop_endc}{\xint:\XINT_apply:x_loop_endd}% - {\xint:\XINT_apply:x_loop_ende}{\xint:\XINT_apply:x_loop_endf}% - {\xint:\XINT_apply:x_loop_endg}{\xint:\XINT_apply:x_loop_endh}\xint_bye -}% -\long\def\XINT_apply:x_loop #1#2#3#4#5#6#7#8#9% -{% - \xint_gob_til_xint: #9\xint: - {#1{#2}}{#1{#3}}{#1{#4}}{#1{#5}}{#1{#6}}{#1{#7}}{#1{#8}}{#1{#9}}% - \XINT_apply:x_loop {#1}% -}% -\long\def\XINT_apply:x_loop_endh\xint: #1\xint_bye{}% -\long\def\XINT_apply:x_loop_endg\xint: #1#2\xint_bye{{#1}}% -\long\def\XINT_apply:x_loop_endf\xint: #1#2#3\xint_bye{{#1}{#2}}% -\long\def\XINT_apply:x_loop_ende\xint: #1#2#3#4\xint_bye{{#1}{#2}{#3}}% -\long\def\XINT_apply:x_loop_endd\xint: #1#2#3#4#5\xint_bye{{#1}{#2}{#3}{#4}}% -\long\def\XINT_apply:x_loop_endc\xint: #1#2#3#4#5#6\xint_bye{{#1}{#2}{#3}{#4}{#5}}% -\long\def\XINT_apply:x_loop_endb\xint: #1#2#3#4#5#6#7\xint_bye{{#1}{#2}{#3}{#4}{#5}{#6}}% -\long\def\XINT_apply:x_loop_enda\xint: #1#2#3#4#5#6#7#8\xint_bye{{#1}{#2}{#3}{#4}{#5}{#6}{#7}}% \def\xintApplyUnbraced {\romannumeral0\xintapplyunbraced }% \def\xintApplyUnbracedNoExpand {\romannumeral0\xintapplyunbracednoexpand }% \long\def\xintapplyunbraced #1#2% @@ -619,56 +597,98 @@ \long\def\XINT_applyunbr_loop_b #1#2{\XINT_applyunbr_loop_a {#2#1}}% \long\def\XINT_applyunbr_end\xint_bye\expandafter\XINT_applyunbr_loop_b \expandafter #1#2#3{ #2}% -\long\def\xintApplyUnbraced:x #1#2% -{% - \XINT_applyunbraced:x_loop {#1}#2% - {\xint:\XINT_applyunbraced:x_loop_enda}{\xint:\XINT_applyunbraced:x_loop_endb}% - {\xint:\XINT_applyunbraced:x_loop_endc}{\xint:\XINT_applyunbraced:x_loop_endd}% - {\xint:\XINT_applyunbraced:x_loop_ende}{\xint:\XINT_applyunbraced:x_loop_endf}% - {\xint:\XINT_applyunbraced:x_loop_endg}{\xint:\XINT_applyunbraced:x_loop_endh}\xint_bye -}% -\long\def\XINT_applyunbraced:x_loop #1#2#3#4#5#6#7#8#9% -{% - \xint_gob_til_xint: #9\xint: - #1{#2}% - \empty#1{#3}% - \empty#1{#4}% - \empty#1{#5}% - \empty#1{#6}% - \empty#1{#7}% - \empty#1{#8}% - \empty#1{#9}% - \XINT_applyunbraced:x_loop {#1}% -}% -\long\def\XINT_applyunbraced:x_loop_endh\xint: #1\xint_bye{}% -\long\def\XINT_applyunbraced:x_loop_endg\xint: #1\empty#2\xint_bye{#1}% -\long\def\XINT_applyunbraced:x_loop_endf\xint: #1\empty - #2\empty#3\xint_bye{#1#2}% -\long\def\XINT_applyunbraced:x_loop_ende\xint: #1\empty - #2\empty - #3\empty#4\xint_bye{#1#2#3}% -\long\def\XINT_applyunbraced:x_loop_endd\xint: #1\empty - #2\empty - #3\empty - #4\empty#5\xint_bye{#1#2#3#4}% -\long\def\XINT_applyunbraced:x_loop_endc\xint: #1\empty - #2\empty - #3\empty - #4\empty - #5\empty#6\xint_bye{#1#2#3#4#5}% -\long\def\XINT_applyunbraced:x_loop_endb\xint: #1\empty - #2\empty - #3\empty - #4\empty - #5\empty - #6\empty#7\xint_bye{#1#2#3#4#5#6}% -\long\def\XINT_applyunbraced:x_loop_enda\xint: #1\empty - #2\empty - #3\empty - #4\empty - #5\empty - #6\empty - #7\empty#8\xint_bye{#1#2#3#4#5#6#7}% +\def\xintZip #1{\expanded\XINT_zip_A#1\xint_bye\xint_bye}% +\def\XINT_zip_A#1% +{% + \xint_bye#1{\expandafter}\xint_bye + \expanded{\unexpanded{\XINT_ziptwo_A + #1\xint_bye\xint_bye\xint_bye\xint_bye\xint:}\expandafter}% + \expanded\XINT_zip_a +}% +\def\XINT_zip_a#1% +{% + \xint_bye#1\XINT_zip_terminator\xint_bye + \expanded{\unexpanded{\XINT_ziptwo_a + #1\xint_bye\xint_bye\xint_bye\xint_bye\xint:}\expandafter}% + \expanded\XINT_zip_a +}% +\def\XINT_zip_terminator\xint_bye#1\xint_bye{{}\empty\empty\empty\empty\xint:}% +\def\XINT_ziptwo_a #1#2#3#4#5\xint:#6#7#8#9% +{% + \bgroup + \xint_bye #1\XINT_ziptwo_e \xint_bye + \xint_bye #6\XINT_ziptwo_e \xint_bye {{#1}#6}% + \xint_bye #2\XINT_ziptwo_e \xint_bye + \xint_bye #7\XINT_ziptwo_e \xint_bye {{#2}#7}% + \xint_bye #3\XINT_ziptwo_e \xint_bye + \xint_bye #8\XINT_ziptwo_e \xint_bye {{#3}#8}% + \xint_bye #4\XINT_ziptwo_e \xint_bye + \xint_bye #9\XINT_ziptwo_e \xint_bye {{#4}#9}% + \ifx \empty#6\expandafter\XINT_zipone_a\fi + \XINT_ziptwo_b #5\xint: +}% +\def\XINT_zipone_a\XINT_ziptwo_b{\XINT_zipone_b}% +\def\XINT_ziptwo_b #1#2#3#4#5\xint:#6#7#8#9% +{% + \xint_bye #1\XINT_ziptwo_e \xint_bye + \xint_bye #6\XINT_ziptwo_e \xint_bye {{#1}#6}% + \xint_bye #2\XINT_ziptwo_e \xint_bye + \xint_bye #7\XINT_ziptwo_e \xint_bye {{#2}#7}% + \xint_bye #3\XINT_ziptwo_e \xint_bye + \xint_bye #8\XINT_ziptwo_e \xint_bye {{#3}#8}% + \xint_bye #4\XINT_ziptwo_e \xint_bye + \xint_bye #9\XINT_ziptwo_e \xint_bye {{#4}#9}% + \XINT_ziptwo_b #5\xint: +}% +\def\XINT_ziptwo_e #1\XINT_ziptwo_b #2\xint:#3\xint: + {\iffalse{\fi}\xint_bye\xint_bye\xint_bye\xint_bye\xint:}% +\def\XINT_zipone_b #1#2#3#4% +{% + \xint_bye #1\XINT_zipone_e \xint_bye {{#1}}% + \xint_bye #2\XINT_zipone_e \xint_bye {{#2}}% + \xint_bye #3\XINT_zipone_e \xint_bye {{#3}}% + \xint_bye #4\XINT_zipone_e \xint_bye {{#4}}% + \XINT_zipone_b +}% +\def\XINT_zipone_e #1\XINT_zipone_b #2\xint: + {\iffalse{\fi}\xint_bye\xint_bye\xint_bye\xint_bye\empty}% +\def\XINT_ziptwo_A #1#2#3#4#5\xint:#6#7#8#9% +{% + \bgroup + \xint_bye #1\XINT_ziptwo_end \xint_bye + \xint_bye #6\XINT_ziptwo_end \xint_bye {{#1}#6}% + \xint_bye #2\XINT_ziptwo_end \xint_bye + \xint_bye #7\XINT_ziptwo_end \xint_bye {{#2}#7}% + \xint_bye #3\XINT_ziptwo_end \xint_bye + \xint_bye #8\XINT_ziptwo_end \xint_bye {{#3}#8}% + \xint_bye #4\XINT_ziptwo_end \xint_bye + \xint_bye #9\XINT_ziptwo_end \xint_bye {{#4}#9}% + \ifx \empty#6\expandafter\XINT_zipone_A\fi + \XINT_ziptwo_B #5\xint: +}% +\def\XINT_zipone_A\XINT_ziptwo_B{\XINT_zipone_B}% +\def\XINT_ziptwo_B #1#2#3#4#5\xint:#6#7#8#9% +{% + \xint_bye #1\XINT_ziptwo_end \xint_bye + \xint_bye #6\XINT_ziptwo_end \xint_bye {{#1}#6}% + \xint_bye #2\XINT_ziptwo_end \xint_bye + \xint_bye #7\XINT_ziptwo_end \xint_bye {{#2}#7}% + \xint_bye #3\XINT_ziptwo_end \xint_bye + \xint_bye #8\XINT_ziptwo_end \xint_bye {{#3}#8}% + \xint_bye #4\XINT_ziptwo_end \xint_bye + \xint_bye #9\XINT_ziptwo_end \xint_bye {{#4}#9}% + \XINT_ziptwo_B #5\xint: +}% +\def\XINT_ziptwo_end #1\XINT_ziptwo_B #2\xint:#3\xint:{\iffalse{\fi}}% +\def\XINT_zipone_B #1#2#3#4% +{% + \xint_bye #1\XINT_zipone_end \xint_bye {{#1}}% + \xint_bye #2\XINT_zipone_end \xint_bye {{#2}}% + \xint_bye #3\XINT_zipone_end \xint_bye {{#3}}% + \xint_bye #4\XINT_zipone_end \xint_bye {{#4}}% + \XINT_zipone_B +}% +\def\XINT_zipone_end #1\XINT_zipone_B #2\xint:#3\xint:{\iffalse{\fi}}% \def\xintSeq {\romannumeral0\xintseq }% \def\xintseq #1{\XINT_seq_chkopt #1\xint_bye }% \def\XINT_seq_chkopt #1% |