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.sty168
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%