summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/vhistory/sets.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-09-26 18:38:29 +0000
committerKarl Berry <karl@freefriends.org>2010-09-26 18:38:29 +0000
commitc5986713ad700e9170a486a46cba3bdfdc8ec1de (patch)
treeed76651eea6ca69ca614e28cc3b47ebebbd60780 /Master/texmf-dist/tex/latex/vhistory/sets.sty
parenta13c28d352a7eec8a95b8b66883fc623a57f3094 (diff)
vhistory (19jul10)
git-svn-id: svn://tug.org/texlive/trunk@19901 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/vhistory/sets.sty')
-rw-r--r--Master/texmf-dist/tex/latex/vhistory/sets.sty57
1 files changed, 33 insertions, 24 deletions
diff --git a/Master/texmf-dist/tex/latex/vhistory/sets.sty b/Master/texmf-dist/tex/latex/vhistory/sets.sty
index 4042752545c..a2c26bd103c 100644
--- a/Master/texmf-dist/tex/latex/vhistory/sets.sty
+++ b/Master/texmf-dist/tex/latex/vhistory/sets.sty
@@ -3,8 +3,8 @@
%% FILE: sets.sty %%
%% %%
%% AUTHOR: Jochen Wertenauer %%
-%% VERSION: 1.2 %%
-%% DATE: 2009-03-01 %%
+%% VERSION: 1.3 %%
+%% DATE: 2010-07-17 %%
%% %%
%% LICENSE: This program may be distributed and/or modified under the %%
%% conditions of the LaTeX Project Public License, either version 1.2 %%
@@ -53,18 +53,17 @@
%% Helper Methods ------------------------------------------------------------
-\let \sets@xpa \expandafter
-\def \sets@xxpa{\sets@xpa\sets@xpa\sets@xpa}
+\def \sets@xxpa{\expandafter\expandafter\expandafter}
\def \sets@empty{\empty}
%% Appends #1 to the definition of macro #2.
-\def \sets@append #1\to#2{\sets@xpa \def \sets@xpa #2\sets@xpa{#2#1}}
+\def \sets@append #1\to#2{\expandafter \def \expandafter #2\expandafter{#2#1}}
%% Removes the first character of the content of #2 and stores the result in
-%% #1. Note that \sets@xpa\sets@xpa\sets@xpa cannot be replaced by \sets@xxpa here!
+%% #1. Note that \expandafter\expandafter\expandafter cannot be replaced by \sets@xxpa here!
\def \sets@gobblefirst #1#2{%
- \sets@xxpa \def \sets@xpa\sets@xpa\sets@xpa #1\sets@xpa\sets@xpa\sets@xpa {\sets@xpa\@gobble #2}}
+ \sets@xxpa \def \expandafter\expandafter\expandafter #1\expandafter\expandafter\expandafter {\expandafter\@gobble #2}}
%% Deletes everthing to the next occurance of > inludung the >.
\def \sets@erasetobrace #1>{}
@@ -77,7 +76,7 @@
%% \if ...
%% \repeat
\def \sets@loop #1\repeat{%
- \def \iterate {#1\sets@xpa \iterate\fi}%
+ \def \iterate {#1\expandafter \iterate\fi}%
\iterate \let\iterate\relax}
\long\def \sets@ReturnFi #1\fi{\fi #1}
@@ -99,11 +98,11 @@
%% The macros are based on a sort algorithm by Klaus Lagally.
\def \sets@compStrings #1#2{%
\def \sets@CSti{#1}%
- \edef\sets@ctempi{\sets@xpa\sets@erasetobrace\meaning \sets@CSti}%
+ \edef\sets@ctempi{\expandafter\sets@erasetobrace\meaning \sets@CSti}%
\def \sets@CStii{#2}%
- \edef\sets@ctempii{\sets@xpa\sets@erasetobrace\meaning \sets@CStii}%
+ \edef\sets@ctempii{\expandafter\sets@erasetobrace\meaning \sets@CStii}%
\sets@lessfalse\sets@greaterfalse
- \sets@xxpa\sets@compI \sets@xpa\sets@ctempi\sets@xpa|\sets@xpa\\\sets@ctempii|\relax
+ \sets@xxpa\sets@compI \expandafter\sets@ctempi\expandafter|\expandafter\\\sets@ctempii|\relax
}
@@ -153,7 +152,7 @@
%% Stores the size of set #1 in the LaTeX counter #2. #2 has to be existing.
\def \sizeofset #1\is#2{%
\setcounter{#2}{0}%
- \sets@xpa\sets@sizeofset #1|\endset{#2}%
+ \expandafter\sets@sizeofset #1|\endset{#2}%
}
% Helper method for \sizeofset. Recursively calls itself. Implemented straight
@@ -178,15 +177,25 @@
\def \setseparator{, }
%% Prints the contents of set #1. Elements will be separated by \setseparator.
-\def \listset #1{\sets@xpa\sets@listset #1|\empty\endset}
+%\def \listset #1{\expandafter\sets@listset #1|\empty\endset}
+\def \listset #1{\expandafter\sets@listset #1|\endset|}
+
%% Helper method for \listset.
-\def \sets@listset #1|#2\endset{%
+%\def \sets@listset #1|#2\endset{%
+% #1%
+% \def\temps@t{#2}%
+% \ifx \temps@t\sets@empty{}\else
+% \setseparator
+% \sets@ReturnFi{\sets@listset #2\endset}%
+% \fi
+%}
+
+\def \sets@listset #1|#2|{%
#1%
- \def\temps@t{#2}%
- \ifx \temps@t\sets@empty{}\else
- \setseparator
- \sets@ReturnFi{\sets@listset #2\endset}%
+ \ifx\endset #2%
+ \else
+ \setseparator\sets@ReturnFi{\sets@listset#2|}%
\fi
}
%-----------------------------------------------------------------------------
@@ -211,7 +220,7 @@
\endgroup
\sets@Returntrue
\fi}%
- \sets@xpa\lookup \sets@xpa |#2|#1|\endset%
+ \expandafter\lookup \expandafter |#2|#1|\endset%
}
%-----------------------------------------------------------------------------
@@ -221,7 +230,7 @@
%% This macro finds alle duplicate elements in the SORTED set #1 and removes
%% them. The result set (still sorted) is stored in #2.
-\def \deleteduplicates #1#2{\sets@xpa\sets@duplicates#1|\endset#2}
+\def \deleteduplicates #1#2{\expandafter\sets@duplicates#1|\endset#2}
%% Helper method for \deleteduplicates. Does some preparations and catches the
%% special case of an set with size <= 1. Parameter #3 is the result set.
@@ -295,7 +304,7 @@
\def \sets@sortset #1#2{%
\let \sorttemps@t #1%
\sets@loop
- \sets@xpa\sets@bubblesortRun \sorttemps@t|\endset\sorttemps@t
+ \expandafter\sets@bubblesortRun \sorttemps@t|\endset\sorttemps@t
\addtocounter{s@tlength}{-1}%
\ifnum 1<\value{s@tlength}\relax
\repeat
@@ -358,7 +367,7 @@
\else
\let \uniontemps@t=\uniont@mpi
\ifx \uniont@mpii\empty \else
- \sets@xpa\sets@append\sets@xpa{\sets@xpa|#2}\to\uniontemps@t
+ \expandafter\sets@append\expandafter{\expandafter|#2}\to\uniontemps@t
\fi
\fi
\sortset{\uniontemps@t}{\uniontemps@t}%
@@ -373,7 +382,7 @@
%% sorted, too. If #1 contains duplicates, #3 may also contain duplicates.
\def \intersectsets #1#2\to#3{%
\def \tempinters@ct{}%
- \sets@xpa \sets@intersectsets #1|\endset#2\tempinters@ct
+ \expandafter \sets@intersectsets #1|\endset#2\tempinters@ct
\ifx \tempinters@ct\empty
\def #3{}%
\else
@@ -404,7 +413,7 @@
%% will be part if it is in #2.
\def \minussets #1\minus#2\to#3{%
\def \@tempminus{}%
- \sets@xpa \sets@minussets #1|\endset#2\@tempminus
+ \expandafter \sets@minussets #1|\endset#2\@tempminus
\ifx \@tempminus\empty
\def #3{}%
\else