texlive[41727] Master: randomlist.tex in runtime
commits+karl at tug.org
commits+karl at tug.org
Tue Jul 19 23:42:13 CEST 2016
Revision: 41727
http://tug.org/svn/texlive?view=revision&revision=41727
Author: karl
Date: 2016-07-19 23:42:13 +0200 (Tue, 19 Jul 2016)
Log Message:
-----------
randomlist.tex in runtime
Modified Paths:
--------------
trunk/Master/tlpkg/libexec/ctan2tds
Added Paths:
-----------
trunk/Master/texmf-dist/tex/generic/randomlist/randomlist.tex
Removed Paths:
-------------
trunk/Master/texmf-dist/doc/generic/randomlist/randomlist.tex
Deleted: trunk/Master/texmf-dist/doc/generic/randomlist/randomlist.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/randomlist/randomlist.tex 2016-07-19 17:39:12 UTC (rev 41726)
+++ trunk/Master/texmf-dist/doc/generic/randomlist/randomlist.tex 2016-07-19 21:42:13 UTC (rev 41727)
@@ -1,682 +0,0 @@
-%%
-%% This is file `randomlist.tex',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% randomlist.dtx (with options: `tex')
-%%
-%% randomlist.dtx
-%% Copyleft 2013-2016 J.-C. Charpentier & C. Tellechea
-%% Packages `randomlist' to use with (La)eTeX
-%% Copyleft (L) 2013-2016 Jean-C\^ome Charpentier & Christian Tellechea.
-%% \CharacterTable
-%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
-%%
-\csname RandomListLoaded\endcsname
-\let\RandomListLoaded\endinput
-\edef\RLAtCatcode{\the\catcode`\@}
-\catcode`\@=11
-\ifx\@ifnextchar\@undefined
- \long\def\@ifnextchar#1#2#3{%
- \let\reserved at d=#1%
- \def\reserved at a{#2}%
- \def\reserved at b{#3}%
- \futurelet\@let at token\@ifnch}
- \def\@ifnch{%
- \ifx\@let at token\@sptoken
- \let\reserved at c\@xifnch
- \else
- \ifx\@let at token\reserved at d
- \let\reserved at c\reserved at a
- \else
- \let\reserved at c\reserved at b
- \fi
- \fi
- \reserved at c}
- \def\:{\let\@sptoken= } \: %
- \def\:{\@xifnch} \expandafter\def\: {\futurelet\@let at token\@ifnch}
-\fi
-\ifx\PackageError\@undefined
- \long\def\@firstoftwo#1#2{#1}
- \long\def\@secondoftwo#1#2{#2}
- \def\@nnil{\@nil}%
- \alloc at 7\write\chardef\sixt@@n\@unused
- \def\typeout#1{\immediate\write\@unused{#1}}%
- \def\@spaces{\space\space\space\space}
- \def\PackageError#1#2#3{%
- \begingroup
- \newlinechar`\^^J
- \edef\RL at temp{#3}%
- \expandafter\errhelp\expandafter{\RL at temp}%
- \typeout{%
- #1 error. \space See User's Manual for further information.^^J
- \@spaces\@spaces\@spaces\@spaces
- Type \space H <return> \space for immediate help.}%
- \errmessage{#2}%
- \endgroup
- }
-\fi
-\ifx\numexpr\@undefined
- \begingroup
- \newlinechar`\^^J
- \errhelp{Run under etex, pdftex, xetex, luatex, ... but not under
- tex}%
- \typeout{%
- randomlist error. \space See User's Manual for further information.^^J
- \@spaces\@spaces\@spaces\@spaces
- Type \space H <return> \space for immediate help.}%
- \errmessage{You can't use randomlist under tex without etex extension.}%
- \endgroup
-\fi
-\ifx\@gobble\@undefined
- \long\def\@gobble#1{}
-\fi
-\def\RL at addtomacro#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
-\def\RL at ifempty#1{%
- \ifcat\relax\detokenize{#1}\relax
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
-}
-\newcount\RL at random
-\newcount\RL at random@a
-\newcount\RL at random@b
-\def\RLsetrandomseed#1{%
- \ifnum#1=0
- \RL at random \numexpr \time + \year * \month * \day \relax
- \else
- \RL at random \numexpr \ifnum#1<0 -\fi#1 \relax
- \fi
-}
-\ifx\RL at seed\@undefined
- \RLsetrandomseed{0}
-\else
- \RLsetrandomseed{\RL at seed}
-\fi
-\def\RL at nextrand{%
- \RL at random@a=\RL at random
- \divide\RL at random@a 127773
- \RL at random@b=\RL at random@a
- \multiply\RL at random@a -2836
- \multiply\RL at random@b -127773
- \advance\RL at random\RL at random@b
- \multiply\RL at random 16807
- \advance\RL at random\RL at random@a
- \ifnum\RL at random<0
- \advance\RL at random 2147483647
- \fi
-}
-\def\RLuniformdeviate#1#2{%
- \RL at nextrand
- \RL at random@a=\RL at random
- \RL at random@b=\RL at random
- \divide\RL at random@a \numexpr#1\relax
- \RL at random@b \numexpr\RL at random@b - \RL at random@a * (#1)\relax
- \expandafter\edef\csname #2\endcsname{\number\RL at random@b}%
-}%
-\newtoks\@ListOfList
-\def\@ifIsList#1{%
- \expandafter\@ifIsList@\expandafter{#1}%
-}
-\def\@ifIsList@#1{%
- \def\@@ifIsList##1#1\sep##2\@@ifIsList{%
- \csname @\ifx\empty##2\empty second\else first\fi oftwo\endcsname
- }%
- \expandafter\@@ifIsList\the\@ListOfList#1\sep\@@ifIsList
-}
-\def\RL at lenof#1{\csname #1-len\endcsname}
-\newif\if at EmptyListFound
-\def\@ifIsListNotEmpty#1{%
- \global\@EmptyListFoundfalse
- \@ifIsList{#1}{%
- \ifnum\RL at lenof{#1}=0
- \global\@EmptyListFoundtrue
- \expandafter\@secondoftwo
- \else
- \expandafter\@firstoftwo
- \fi
- }%
- \@secondoftwo
-}
-\def\@NoListError#1{%
- \if at EmptyListFound
- \@EmptyListError{#1}%
- \global\@EmptyListFoundfalse
- \else
- \PackageError{randomlist}%
- {List #1 doesn't exist}%
- {Maybe you mistyped the list name?}%
- \fi
-}
-\def\@EmptyListError#1{%
- \if at EmptyListFound
- \PackageError{randomlist}%
- {List #1 is empty}%
- {Ask yourself why this list is empty.}%
-}
-\def\@OutOfRangeError#1#2{%
- \PackageError{randomlist}%
- {Index #2 is greater than last index of list #1}%
- {There aren't enough elements in the list.}%
-}
-\long\def\RL at nameldef#1{%
- \long\expandafter\def\csname #1\endcsname
-}
-\long\def\RL at nameledef#1{%
- \long\expandafter\edef\csname #1\endcsname
-}
-\long\def\RL at namelgdef#1{%
- \long\expandafter\gdef\csname #1\endcsname
-}
-\long\def\RL at namelxdef#1{%
- \long\expandafter\xdef\csname #1\endcsname
-}
-\def\RL at let#1#2{%
- \expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname
-}
-\long\def\RL at doafterfi#1\fi{\fi#1}
-\def\RLfor#1=#2to#3\do{%
- \edef#1{\number\numexpr#2}%
- \edef\RL at sgncomp{\ifnum#1<\numexpr#3\relax>+\else<-\fi}%
- \expandafter\RLfor at i
- \csname RLfor at ii@\string#1\expandafter\endcsname\expandafter
- {\number\numexpr#3\expandafter}%
- \RL at sgncomp
- #1%
-}
-\long\def\RLfor at i#1#2#3#4#5#6{%
- \def#1{%
- \unless\ifnum#5#3#2\relax
- \RL at doafterfi{%
- #6%
- \edef#5{\number\numexpr#5#41\relax}%
- #1%
- }%
- \fi
- }%
- #1%
-}
-\def\NewList#1{%
- \@ifIsList{#1}{%
- \PackageError{randomlist}%
- {List #1 already exists}%
- {Use \string\ClearList.}%
- }%
- {%
- \ifcsname #1\endcsname
- \PackageError{randomlist}%
- {Command \csname#1\endcsname already exists}%
- {Creating list #1 defines a \csname#1\endcsname command.}%
- \else
- \RL at nameldef{#1-len}{0}%
- \@ListOfList\expandafter{\the\@ListOfList#1\sep}%
- \expandafter\def\csname #1\endcsname[##1]{%
- \ifnum##1>\csname#1-len\endcsname
- \relax
- \else
- \csname #1-##1\endcsname
- \fi
- }%
- \fi
- }%
-}
-\def\ClearList#1{%
- \@ifIsList{#1}{%
- \RL at nameldef{#1-len}{0}%
- }%
- {\@NoListError{#1}}%
-}
-\def\CopyList#1#2{%
- \@ifIsList{#1}{%
- \@ifIsList{#2}{%
- \RL at let{#2-len}{#1-len}%
- \ifnum\RL at lenof{#1}>0
- \RLfor\RL at iter=0 to \RL at lenof{#1}-1 \do{%
- \RL at let{#2-\RL at iter}{#1-\RL at iter}%
- }%
- \fi
- }%
- {\@NoListError{#2}}%
- }%
- {\@NoListError{#1}}%
-}
-\def\InsertList#1#2#3{%
- \@ifIsList{#1}{%
- \@ifIsList{#3}{%
- \ifnum #2>\RL at lenof{#1}
- \@OutOfRangeError{#1}{#2}%
- \else
- \ShiftList{#1}{#2}{\RL at lenof{#3}}%
- \ifnum\RL at lenof{#3}>0
- \RLfor\RL at iter=0 to \RL at lenof{#3}-1 \do{%
- \RL at let{#1-\number\numexpr\RL at iter+#2}{#3-\RL at iter}%
- }%
- \fi
- \fi
- }%
- {\@NoListError{#3}}%
- }%
- {\@NoListError{#1}}%
-}
-\newcount\RL at counti
-\newcount\RL at countii
-\newcount\RL at countiii
-\def\ShowList#1{%
- \@ifIsList{#1}{%
- \ifhmode\par\noindent\fi
- \begingroup
- \ifdefined\ttfamily\ttfamily\else\tt\fi
- BEGIN\detokenize{{#1}}
- (\ifcase\RL at lenof{#1}
- empty list%
- \or
- 1 element%
- \else
- \RL at lenof{#1} elements%
- \fi)\par
- \ifnum\RL at lenof{#1}>0
- \parindent=1em
- \RLfor\RL at iter=0 to \RL at lenof{#1}-1 \do {%
- #1[\RL at iter] = \expandafter\RL at meaning\csname
- #1-\RL at iter\endcsname
- \par
- }%
- \fi
- \noindent
- END\detokenize{{#1}}\par
- \endgroup
- }%
- {\@NoListError{#1}}%
-}
-\def\RL at meaning#1{\expandafter\RL at meaningi\meaning#1}
-\expandafter\def\expandafter\RL at meaningi\expandafter#\expandafter1\string>{}
-\def\CountList#1#2{%
- \@ifIsList{#1}%
- {\RL at nameledef{#2}{\RL at lenof{#1}}}%
- {\@NoListError{#1}}%
-}
-\def\ShiftList#1#2#3{%
- \@ifIsList{#1}%
- {%
- \unless\ifnum#3=0
- \ifnum\numexpr#2<0
- \PackageError{randomlist}%
- {Negative index number}%
- {Index must be equal or greater than 0}%
- \else
- \ifnum\numexpr#2>\RL at lenof{#1}\relax
- \PackageError{randomlist}%
- {Index \number\numexpr #2\relax\space too big
- (<=\RL at lenof{#1})}%
- {Index must be equal or smaller than length of
- the list}%
- \else
- \ifnum\numexpr#3>0
- \RLfor\RL at iter = \RL at lenof{#1} to #2 \do{%
- \RL at let{#1-\number\numexpr\RL at iter+#3}{#1-\RL at iter}%
- }%
- \RLfor\RL at iter = #2 to #2 + #3 - 1 \do{%
- \RL at nameldef{#1-\RL at iter}{}%
- }%
- \else
- \ifnum-#3>\numexpr#2\relax
- \PackageError{randomlist}%
- {Negative shift to big}%
- {When negative, shift must not be greater than index}%
- \else
- \RLfor\RL at iter=#2 to \RL at lenof{#1} \do{%
- \RL at let{#1-\number\numexpr\RL at iter+#3}{#1-\RL at iter}%
- }%
- \fi
- \fi
- \RL at nameledef{#1-len}{\number\numexpr\RL at lenof{#1} + #3}%
- \fi\fi\fi
- }%
- {\@NoListError{#1}}%
-}
-\long\def\InsertLastItem#1#2{%
- \@ifIsList{#1}
- {%
- \RL at nameldef{#1-\RL at lenof{#1}}{#2}%
- \RL at nameledef{#1-len}{\number\numexpr\RL at lenof{#1}+1}%
- }
- {\@NoListError{#1}}%
-}
-\long\def\InsertFirstItem#1#2{%
- \InsertItem{#1}{0}{#2}%
-}
-\long\def\InsertItem#1#2#3{%
- \@ifIsList{#1}%
- {%
- \ShiftList{#1}{#2}{1}%
- \RL at nameldef{#1-#2}{#3}%
- }%
- {\@NoListError{#1}}%
-}
-\long\def\InsertRandomItem#1#2{%
- \@ifIsList{#1}%
- {%
- \RLuniformdeviate{\RL at lenof{#1}+1}{RL at temp}%
- \InsertItem{#1}{\RL at temp}{#2}%
- }%
- {\@NoListError{#1}}%
-}
-\def\ExtractFirstItem#1#2{%
- \@ifIsList{#1}%
- {%
- \ExtractItem{#1}{0}{#2}%
- }%
- {\@NoListError{#1}}%
-}
-\def\ExtractLastItem#1#2{%
- \@ifIsListNotEmpty{#1}%
- {%
- \RL at let{#2}{#1-\number\numexpr\RL at lenof{#1}-1}%
- \RL at nameledef{#1-len}{\number\numexpr\RL at lenof{#1}-1}%
- }%
- {\@NoListError{#1}}%
-}
-\def\ExtractItem#1#2#3{%
- \@ifIsListNotEmpty{#1}%
- {%
- \RL at let{#3}{#1-#2}%
- \ShiftList{#1}{#2+1}{-1}%
- }%
- {\@NoListError{#1}}%
-}
-\def\ExtractRandomItem#1#2{%
- \@ifIsListNotEmpty{#1}%
- {%
- \RLuniformdeviate{\RL at lenof{#1}}{RL at temp}%
- \ExtractItem{#1}{\RL at temp}{#2}%
- }%
- {\@NoListError{#1}}%
-}
-\def\ExtractList#1#2#3#4{%
- \@ifIsList{#1}{%
- \@ifIsList{#4}{%
- \ifnum#2<\RL at lenof{#1}%
- \ifnum#3<\RL at lenof{#1}%
- \ifnum#2>#3\relax
- \RL at nameldef{#4-len}{0}%
- \else
- \RLfor\RL at iterextract=0 to #3 - #2 \do{%
- \RL at let{#4-\RL at iterextract}{#1-#2}%
- \ExtractItem{#1}{#2}{RL at temp}%
- }%
- \RL at nameledef{#4-len}{\number\numexpr #3 - #2 + 1}%
- \fi
- \else
- \@OutOfRangeError{#1}{#3}%
- \fi
- \else
- \@OutOfRangeError{#1}{#2}%
- \fi
- }%
- {\@NoListError{#4}}%
- }%
- {\@NoListError{#1}}%
-}
-\def\GetFirstItem#1#2{%
- \GetItem{#1}{0}{#2}%
-}
-\def\GetLastItem#1#2{%
- \GetItem{#1}{\number\numexpr\RL at lenof{#1}-1}{#2}%
-}
-\def\GetItem#1#2#3{%
- \@ifIsListNotEmpty{#1}
- {%
- \ifnum\numexpr\RL at lenof{#1}-1-#2<0
- \@OutOfRangeError{#1}{#2}%
- \else
- \RL at let{#3}{#1-#2}%
- \fi
- }
- {\@NoListError{#1}}%
-}
-\def\GetRandomItem#1#2{%
- \@ifIsListNotEmpty{#1}%
- {%
- \RLuniformdeviate{\RL at lenof{#1}}{RL at temp}%
- \GetItem{#1}{\RL at temp}{#2}%
- }%
- {\@NoListError{#1}}%
-}
-\def\GetList#1#2#3#4{%
- \@ifIsList{#1}{%
- \@ifIsList{#4}{%
- \ifnum#2<\RL at lenof{#1}%
- \ifnum#3<\RL at lenof{#1}%
- \ifnum#2>#3\relax
- \RL at nameldef{#4-len}{0}%
- \else
- \RLfor\RL at iter=#2 to #3 \do{%
- \RL at let{#4-\number\numexpr \RL at iter - #2}{#1-\RL at iter}%
- }%
- \RL at nameledef{#4-len}{\number\numexpr #3 - #2 + 1}%
- \fi
- \else
- \@OutOfRangeError{#1}{#3}%
- \fi
- \else
- \@OutOfRangeError{#1}{#2}%
- \fi
- }%
- {\@NoListError{#4}}%
- }%
- {\@NoListError{#1}}%
-}
-\long\def\SetFirstItem#1#2{%
- \SetItem{#1}{0}{#2}%
-}
-\long\def\SetLastItem#1#2{%
- \SetItem{#1}{\number\numexpr\RL at lenof{#1}-1}{#2}%
-}
-\long\def\SetItem#1#2#3{%
- \@ifIsListNotEmpty{#1}%
- {%
- \ifnum\numexpr\RL at lenof{#1}-1-#2<0
- \@OutOfRangeError{#1}{#2}%
- \else
- \RL at nameldef{#1-#2}{#3}%
- \fi
- }%
- {\@NoListError{#1}}%%
-}
-\long\def\SetRandomItem#1#2{%
- \@ifIsListNotEmpty{#1}%
- {%
- \RLuniformdeviate{\RL at lenof{#1}}{RL at temp}%
- \SetItem{#1}{\RL at temp}{#2}%
- }%
- {\@NoListError{#1}}%
-}
-\def\SetList#1#2{%
- \@ifIsList{#1}%
- {%
- \ClearList{#1}%
- \def\RL at name{#1}%
- \RL at setlist#2,\@nil,%
- }%
- {\@NoListError{#1}}%
-}
-\long\def\RL at setlist#1,{%
- \def\RL at arg{#1}%
- \unless\ifx\RL at arg\@nnil
- \InsertLastItem{\RL at name}{#1}%
- \expandafter\RL at setlist
- \fi
-}
-\long\def\ForEachFirstItem#1#2#3{%
- \begingroup
- \RLfor \RL at var = 0 to \RL at lenof{#1}-1 \do{%
- \ExtractFirstItem{#1}{#2}%
- #3%
- }%
- \endgroup
-}
-\long\def\ForEachLastItem#1#2#3{%
- \begingroup
- \RLfor \RL at var = 0 to \RL at lenof{#1}-1 \do{%
- \ExtractLastItem{#1}{#2}%
- #3%
- }%
- \endgroup
-}
-\long\def\ForEachRandomItem#1#2#3{%
- \begingroup
- \RLfor \RL at var = 0 to \RL at lenof{#1}-1 \do{%
- \ExtractRandomItem{#1}{#2}%
- #3%
- }%
- \endgroup
-}
-\long\def\ReadFieldItem#1#2#3{%
- \RL at counti #2\relax
- \expandafter\RL at ReadFieldItem#1\@nil
- \expandafter\let\csname#3\endcsname\RL at temp
-}
-\long\def\RL at ReadFieldItem{%
- \@ifnextchar\bgroup{\RL@@ReadFieldItem}{\RL@@ReadFieldItemError}%
-}
-\long\def\RL@@ReadFieldItem#1{%
- \ifnum\RL at counti=\z@
- \def\RL at temp{#1}%
- \expandafter\RL@@ReadFieldItemEnd
- \else
- \advance\RL at counti \m at ne
- \expandafter\RL at ReadFieldItem
- \fi
-}
-\long\def\RL@@ReadFieldItemEnd#1\@nil{}
-\long\def\RL@@ReadFieldItemError#1\@nil{%
- \PackageError{randomlist}%
- {There aren't enough fields in the record}%
- {Pay attention that field number starts from zero.}%
-}
-\def\RL at SetDelimiters#1#2#3\@nil{%
- \def\RL at markstrings##1{%
- \let\RL at accu\empty
- \expandafter\RL at markstrings@i##1#2\@nil#2%
- \let##1=\RL at accu
- }%
- \def\RL at markstrings@i##1#2##2#2{%
- \RL at addtomacro\RL at accu{##1}%
- \def\RL at current{##2}%
- \unless\ifx\@nnil\RL at current
- \RL at addtomacro\RL at accu{\RL at string{##2}}%
- \expandafter\RL at markstrings@i
- \fi
- }%
- \def\RL at unmarkstrings##1{%
- \let\RL at accuA\empty
- \expandafter\RL at unmarkstrings@i##1\RL at string\@nil
- \let##1=\RL at accuA
- }%
- \def\RL at unmarkstrings@i##1\RL at string##2{%
- \RL at addtomacro\RL at accuA{##1}%
- \def\RL at current{##2}%
- \unless\ifx\@nnil\RL at current
- \RL at ifempty{##2}%
- {\RL at addtomacro\RL at accuA{#2}}%
- {\RL at addtomacro\RL at accuA{##2}}%
- \expandafter\RL at unmarkstrings@i
- \fi
- }%
- \def\RL at parsefields##1{%
- \let\RL at accu\empty
- \expandafter\RL at parsefields@i##1#1\@nil#1%
- \let##1=\RL at accu
- }%
- \def\RL at parsefields@i##1#1{%
- \def\RL at current{##1}%
- \unless\ifx\@nnil\RL at current
- \RL at unmarkstrings\RL at current
- \RL at removefirstspaces\RL at current
- \RL at removelastspaces \RL at current
- \expandafter\RL at addtomacro\expandafter\RL at accu\expandafter
- {\expandafter{\RL at current}}%
- \expandafter\RL at parsefields@i
- \fi
- }%
-}
-\newread\RL at hdle
-\def\@ppar{\par}
-\def\ReadFileList{\@ifnextchar[{\@ReadFileList}{\@ReadFileList[,"]}}
-\def\@ReadFileList[#1]#2#3{%
- \openin \RL at hdle = #3
- \ifeof\RL at hdle
- \PackageError{randomlist}%
- {File #3 doesn't exist}%
- {Verify its name, its extension, its location, its permissions.}%
- \else
- \RL at ifempty{#1}%
- {%
- \PackageError{randomlist}
- {Optional argument empty: [,"] inserted}
- {Do not leave an optional argument empty}%
- \RL at SetDelimiters,"\@nil
- }
- {\RL at SetDelimiters#1"\@nil}%
- \loop
- \read\RL at hdle to \RL at buffer
- \unless\ifx\RL at buffer\@ppar
- \RL at markstrings\RL at buffer
- \RL at parsefields\RL at buffer
- \def\RL at accuA{\InsertLastItem{#2}}%
- \expandafter\RL at accuA\expandafter{\RL at buffer}%
- \fi
- \ifeof\RL at hdle\else
- \repeat
- \fi
-}
-\def\RL at ifspacefirst#1{%
- \RL at ifspacefirst@i#1A \@nil
-}
-\expandafter\def\expandafter\RL at ifspacefirst@i
- \expandafter#\expandafter1\space#2\@nil{%
- \RL at ifempty{#1}%
-}
-\def\RL at removefirstspaces#1{%
- \expandafter\RL at ifspacefirst\expandafter{#1}
- {\expandafter\removefistspace at i#1\@nil#1}
- {}%
-}
-\expandafter\def\expandafter\removefistspace at i\space#1\@nil#2{%
- \def#2{#1}%
- \RL at removefirstspaces#2%
-}
-\edef\RL at restorecatcodezero{\catcode0=\number\catcode0\relax}
-\catcode0=12
-\def\RL at removelastspaces#1{%
- \expandafter\def\expandafter#1\expandafter{%
- \romannumeral\expandafter
- \RL at removelastspaces@i\expandafter\relax#1^^00 ^^00\@nil
- }%
-}
-\def\RL at removelastspaces@i#1 ^^00{\RL at removelastspaces@ii#1^^00}
-\def\RL at removelastspaces@ii#1^^00#2\@nil{%
- \RL at ifspacefirst{#2}
- {\RL at removelastspaces@i#1^^00 ^^00\@nil}
- {\expandafter\z@\@gobble#1}%
-}
-\RL at restorecatcodezero
-\catcode`\@=\RLAtCatcode\relax
-\endinput
-%%
-%% End of file `randomlist.tex'.
Added: trunk/Master/texmf-dist/tex/generic/randomlist/randomlist.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/randomlist/randomlist.tex (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/randomlist/randomlist.tex 2016-07-19 21:42:13 UTC (rev 41727)
@@ -0,0 +1,682 @@
+%%
+%% This is file `randomlist.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% randomlist.dtx (with options: `tex')
+%%
+%% randomlist.dtx
+%% Copyleft 2013-2016 J.-C. Charpentier & C. Tellechea
+%% Packages `randomlist' to use with (La)eTeX
+%% Copyleft (L) 2013-2016 Jean-C\^ome Charpentier & Christian Tellechea.
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\csname RandomListLoaded\endcsname
+\let\RandomListLoaded\endinput
+\edef\RLAtCatcode{\the\catcode`\@}
+\catcode`\@=11
+\ifx\@ifnextchar\@undefined
+ \long\def\@ifnextchar#1#2#3{%
+ \let\reserved at d=#1%
+ \def\reserved at a{#2}%
+ \def\reserved at b{#3}%
+ \futurelet\@let at token\@ifnch}
+ \def\@ifnch{%
+ \ifx\@let at token\@sptoken
+ \let\reserved at c\@xifnch
+ \else
+ \ifx\@let at token\reserved at d
+ \let\reserved at c\reserved at a
+ \else
+ \let\reserved at c\reserved at b
+ \fi
+ \fi
+ \reserved at c}
+ \def\:{\let\@sptoken= } \: %
+ \def\:{\@xifnch} \expandafter\def\: {\futurelet\@let at token\@ifnch}
+\fi
+\ifx\PackageError\@undefined
+ \long\def\@firstoftwo#1#2{#1}
+ \long\def\@secondoftwo#1#2{#2}
+ \def\@nnil{\@nil}%
+ \alloc at 7\write\chardef\sixt@@n\@unused
+ \def\typeout#1{\immediate\write\@unused{#1}}%
+ \def\@spaces{\space\space\space\space}
+ \def\PackageError#1#2#3{%
+ \begingroup
+ \newlinechar`\^^J
+ \edef\RL at temp{#3}%
+ \expandafter\errhelp\expandafter{\RL at temp}%
+ \typeout{%
+ #1 error. \space See User's Manual for further information.^^J
+ \@spaces\@spaces\@spaces\@spaces
+ Type \space H <return> \space for immediate help.}%
+ \errmessage{#2}%
+ \endgroup
+ }
+\fi
+\ifx\numexpr\@undefined
+ \begingroup
+ \newlinechar`\^^J
+ \errhelp{Run under etex, pdftex, xetex, luatex, ... but not under
+ tex}%
+ \typeout{%
+ randomlist error. \space See User's Manual for further information.^^J
+ \@spaces\@spaces\@spaces\@spaces
+ Type \space H <return> \space for immediate help.}%
+ \errmessage{You can't use randomlist under tex without etex extension.}%
+ \endgroup
+\fi
+\ifx\@gobble\@undefined
+ \long\def\@gobble#1{}
+\fi
+\def\RL at addtomacro#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
+\def\RL at ifempty#1{%
+ \ifcat\relax\detokenize{#1}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+\newcount\RL at random
+\newcount\RL at random@a
+\newcount\RL at random@b
+\def\RLsetrandomseed#1{%
+ \ifnum#1=0
+ \RL at random \numexpr \time + \year * \month * \day \relax
+ \else
+ \RL at random \numexpr \ifnum#1<0 -\fi#1 \relax
+ \fi
+}
+\ifx\RL at seed\@undefined
+ \RLsetrandomseed{0}
+\else
+ \RLsetrandomseed{\RL at seed}
+\fi
+\def\RL at nextrand{%
+ \RL at random@a=\RL at random
+ \divide\RL at random@a 127773
+ \RL at random@b=\RL at random@a
+ \multiply\RL at random@a -2836
+ \multiply\RL at random@b -127773
+ \advance\RL at random\RL at random@b
+ \multiply\RL at random 16807
+ \advance\RL at random\RL at random@a
+ \ifnum\RL at random<0
+ \advance\RL at random 2147483647
+ \fi
+}
+\def\RLuniformdeviate#1#2{%
+ \RL at nextrand
+ \RL at random@a=\RL at random
+ \RL at random@b=\RL at random
+ \divide\RL at random@a \numexpr#1\relax
+ \RL at random@b \numexpr\RL at random@b - \RL at random@a * (#1)\relax
+ \expandafter\edef\csname #2\endcsname{\number\RL at random@b}%
+}%
+\newtoks\@ListOfList
+\def\@ifIsList#1{%
+ \expandafter\@ifIsList@\expandafter{#1}%
+}
+\def\@ifIsList@#1{%
+ \def\@@ifIsList##1#1\sep##2\@@ifIsList{%
+ \csname @\ifx\empty##2\empty second\else first\fi oftwo\endcsname
+ }%
+ \expandafter\@@ifIsList\the\@ListOfList#1\sep\@@ifIsList
+}
+\def\RL at lenof#1{\csname #1-len\endcsname}
+\newif\if at EmptyListFound
+\def\@ifIsListNotEmpty#1{%
+ \global\@EmptyListFoundfalse
+ \@ifIsList{#1}{%
+ \ifnum\RL at lenof{#1}=0
+ \global\@EmptyListFoundtrue
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+ }%
+ \@secondoftwo
+}
+\def\@NoListError#1{%
+ \if at EmptyListFound
+ \@EmptyListError{#1}%
+ \global\@EmptyListFoundfalse
+ \else
+ \PackageError{randomlist}%
+ {List #1 doesn't exist}%
+ {Maybe you mistyped the list name?}%
+ \fi
+}
+\def\@EmptyListError#1{%
+ \if at EmptyListFound
+ \PackageError{randomlist}%
+ {List #1 is empty}%
+ {Ask yourself why this list is empty.}%
+}
+\def\@OutOfRangeError#1#2{%
+ \PackageError{randomlist}%
+ {Index #2 is greater than last index of list #1}%
+ {There aren't enough elements in the list.}%
+}
+\long\def\RL at nameldef#1{%
+ \long\expandafter\def\csname #1\endcsname
+}
+\long\def\RL at nameledef#1{%
+ \long\expandafter\edef\csname #1\endcsname
+}
+\long\def\RL at namelgdef#1{%
+ \long\expandafter\gdef\csname #1\endcsname
+}
+\long\def\RL at namelxdef#1{%
+ \long\expandafter\xdef\csname #1\endcsname
+}
+\def\RL at let#1#2{%
+ \expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname
+}
+\long\def\RL at doafterfi#1\fi{\fi#1}
+\def\RLfor#1=#2to#3\do{%
+ \edef#1{\number\numexpr#2}%
+ \edef\RL at sgncomp{\ifnum#1<\numexpr#3\relax>+\else<-\fi}%
+ \expandafter\RLfor at i
+ \csname RLfor at ii@\string#1\expandafter\endcsname\expandafter
+ {\number\numexpr#3\expandafter}%
+ \RL at sgncomp
+ #1%
+}
+\long\def\RLfor at i#1#2#3#4#5#6{%
+ \def#1{%
+ \unless\ifnum#5#3#2\relax
+ \RL at doafterfi{%
+ #6%
+ \edef#5{\number\numexpr#5#41\relax}%
+ #1%
+ }%
+ \fi
+ }%
+ #1%
+}
+\def\NewList#1{%
+ \@ifIsList{#1}{%
+ \PackageError{randomlist}%
+ {List #1 already exists}%
+ {Use \string\ClearList.}%
+ }%
+ {%
+ \ifcsname #1\endcsname
+ \PackageError{randomlist}%
+ {Command \csname#1\endcsname already exists}%
+ {Creating list #1 defines a \csname#1\endcsname command.}%
+ \else
+ \RL at nameldef{#1-len}{0}%
+ \@ListOfList\expandafter{\the\@ListOfList#1\sep}%
+ \expandafter\def\csname #1\endcsname[##1]{%
+ \ifnum##1>\csname#1-len\endcsname
+ \relax
+ \else
+ \csname #1-##1\endcsname
+ \fi
+ }%
+ \fi
+ }%
+}
+\def\ClearList#1{%
+ \@ifIsList{#1}{%
+ \RL at nameldef{#1-len}{0}%
+ }%
+ {\@NoListError{#1}}%
+}
+\def\CopyList#1#2{%
+ \@ifIsList{#1}{%
+ \@ifIsList{#2}{%
+ \RL at let{#2-len}{#1-len}%
+ \ifnum\RL at lenof{#1}>0
+ \RLfor\RL at iter=0 to \RL at lenof{#1}-1 \do{%
+ \RL at let{#2-\RL at iter}{#1-\RL at iter}%
+ }%
+ \fi
+ }%
+ {\@NoListError{#2}}%
+ }%
+ {\@NoListError{#1}}%
+}
+\def\InsertList#1#2#3{%
+ \@ifIsList{#1}{%
+ \@ifIsList{#3}{%
+ \ifnum #2>\RL at lenof{#1}
+ \@OutOfRangeError{#1}{#2}%
+ \else
+ \ShiftList{#1}{#2}{\RL at lenof{#3}}%
+ \ifnum\RL at lenof{#3}>0
+ \RLfor\RL at iter=0 to \RL at lenof{#3}-1 \do{%
+ \RL at let{#1-\number\numexpr\RL at iter+#2}{#3-\RL at iter}%
+ }%
+ \fi
+ \fi
+ }%
+ {\@NoListError{#3}}%
+ }%
+ {\@NoListError{#1}}%
+}
+\newcount\RL at counti
+\newcount\RL at countii
+\newcount\RL at countiii
+\def\ShowList#1{%
+ \@ifIsList{#1}{%
+ \ifhmode\par\noindent\fi
+ \begingroup
+ \ifdefined\ttfamily\ttfamily\else\tt\fi
+ BEGIN\detokenize{{#1}}
+ (\ifcase\RL at lenof{#1}
+ empty list%
+ \or
+ 1 element%
+ \else
+ \RL at lenof{#1} elements%
+ \fi)\par
+ \ifnum\RL at lenof{#1}>0
+ \parindent=1em
+ \RLfor\RL at iter=0 to \RL at lenof{#1}-1 \do {%
+ #1[\RL at iter] = \expandafter\RL at meaning\csname
+ #1-\RL at iter\endcsname
+ \par
+ }%
+ \fi
+ \noindent
+ END\detokenize{{#1}}\par
+ \endgroup
+ }%
+ {\@NoListError{#1}}%
+}
+\def\RL at meaning#1{\expandafter\RL at meaningi\meaning#1}
+\expandafter\def\expandafter\RL at meaningi\expandafter#\expandafter1\string>{}
+\def\CountList#1#2{%
+ \@ifIsList{#1}%
+ {\RL at nameledef{#2}{\RL at lenof{#1}}}%
+ {\@NoListError{#1}}%
+}
+\def\ShiftList#1#2#3{%
+ \@ifIsList{#1}%
+ {%
+ \unless\ifnum#3=0
+ \ifnum\numexpr#2<0
+ \PackageError{randomlist}%
+ {Negative index number}%
+ {Index must be equal or greater than 0}%
+ \else
+ \ifnum\numexpr#2>\RL at lenof{#1}\relax
+ \PackageError{randomlist}%
+ {Index \number\numexpr #2\relax\space too big
+ (<=\RL at lenof{#1})}%
+ {Index must be equal or smaller than length of
+ the list}%
+ \else
+ \ifnum\numexpr#3>0
+ \RLfor\RL at iter = \RL at lenof{#1} to #2 \do{%
+ \RL at let{#1-\number\numexpr\RL at iter+#3}{#1-\RL at iter}%
+ }%
+ \RLfor\RL at iter = #2 to #2 + #3 - 1 \do{%
+ \RL at nameldef{#1-\RL at iter}{}%
+ }%
+ \else
+ \ifnum-#3>\numexpr#2\relax
+ \PackageError{randomlist}%
+ {Negative shift to big}%
+ {When negative, shift must not be greater than index}%
+ \else
+ \RLfor\RL at iter=#2 to \RL at lenof{#1} \do{%
+ \RL at let{#1-\number\numexpr\RL at iter+#3}{#1-\RL at iter}%
+ }%
+ \fi
+ \fi
+ \RL at nameledef{#1-len}{\number\numexpr\RL at lenof{#1} + #3}%
+ \fi\fi\fi
+ }%
+ {\@NoListError{#1}}%
+}
+\long\def\InsertLastItem#1#2{%
+ \@ifIsList{#1}
+ {%
+ \RL at nameldef{#1-\RL at lenof{#1}}{#2}%
+ \RL at nameledef{#1-len}{\number\numexpr\RL at lenof{#1}+1}%
+ }
+ {\@NoListError{#1}}%
+}
+\long\def\InsertFirstItem#1#2{%
+ \InsertItem{#1}{0}{#2}%
+}
+\long\def\InsertItem#1#2#3{%
+ \@ifIsList{#1}%
+ {%
+ \ShiftList{#1}{#2}{1}%
+ \RL at nameldef{#1-#2}{#3}%
+ }%
+ {\@NoListError{#1}}%
+}
+\long\def\InsertRandomItem#1#2{%
+ \@ifIsList{#1}%
+ {%
+ \RLuniformdeviate{\RL at lenof{#1}+1}{RL at temp}%
+ \InsertItem{#1}{\RL at temp}{#2}%
+ }%
+ {\@NoListError{#1}}%
+}
+\def\ExtractFirstItem#1#2{%
+ \@ifIsList{#1}%
+ {%
+ \ExtractItem{#1}{0}{#2}%
+ }%
+ {\@NoListError{#1}}%
+}
+\def\ExtractLastItem#1#2{%
+ \@ifIsListNotEmpty{#1}%
+ {%
+ \RL at let{#2}{#1-\number\numexpr\RL at lenof{#1}-1}%
+ \RL at nameledef{#1-len}{\number\numexpr\RL at lenof{#1}-1}%
+ }%
+ {\@NoListError{#1}}%
+}
+\def\ExtractItem#1#2#3{%
+ \@ifIsListNotEmpty{#1}%
+ {%
+ \RL at let{#3}{#1-#2}%
+ \ShiftList{#1}{#2+1}{-1}%
+ }%
+ {\@NoListError{#1}}%
+}
+\def\ExtractRandomItem#1#2{%
+ \@ifIsListNotEmpty{#1}%
+ {%
+ \RLuniformdeviate{\RL at lenof{#1}}{RL at temp}%
+ \ExtractItem{#1}{\RL at temp}{#2}%
+ }%
+ {\@NoListError{#1}}%
+}
+\def\ExtractList#1#2#3#4{%
+ \@ifIsList{#1}{%
+ \@ifIsList{#4}{%
+ \ifnum#2<\RL at lenof{#1}%
+ \ifnum#3<\RL at lenof{#1}%
+ \ifnum#2>#3\relax
+ \RL at nameldef{#4-len}{0}%
+ \else
+ \RLfor\RL at iterextract=0 to #3 - #2 \do{%
+ \RL at let{#4-\RL at iterextract}{#1-#2}%
+ \ExtractItem{#1}{#2}{RL at temp}%
+ }%
+ \RL at nameledef{#4-len}{\number\numexpr #3 - #2 + 1}%
+ \fi
+ \else
+ \@OutOfRangeError{#1}{#3}%
+ \fi
+ \else
+ \@OutOfRangeError{#1}{#2}%
+ \fi
+ }%
+ {\@NoListError{#4}}%
+ }%
+ {\@NoListError{#1}}%
+}
+\def\GetFirstItem#1#2{%
+ \GetItem{#1}{0}{#2}%
+}
+\def\GetLastItem#1#2{%
+ \GetItem{#1}{\number\numexpr\RL at lenof{#1}-1}{#2}%
+}
+\def\GetItem#1#2#3{%
+ \@ifIsListNotEmpty{#1}
+ {%
+ \ifnum\numexpr\RL at lenof{#1}-1-#2<0
+ \@OutOfRangeError{#1}{#2}%
+ \else
+ \RL at let{#3}{#1-#2}%
+ \fi
+ }
+ {\@NoListError{#1}}%
+}
+\def\GetRandomItem#1#2{%
+ \@ifIsListNotEmpty{#1}%
+ {%
+ \RLuniformdeviate{\RL at lenof{#1}}{RL at temp}%
+ \GetItem{#1}{\RL at temp}{#2}%
+ }%
+ {\@NoListError{#1}}%
+}
+\def\GetList#1#2#3#4{%
+ \@ifIsList{#1}{%
+ \@ifIsList{#4}{%
+ \ifnum#2<\RL at lenof{#1}%
+ \ifnum#3<\RL at lenof{#1}%
+ \ifnum#2>#3\relax
+ \RL at nameldef{#4-len}{0}%
+ \else
+ \RLfor\RL at iter=#2 to #3 \do{%
+ \RL at let{#4-\number\numexpr \RL at iter - #2}{#1-\RL at iter}%
+ }%
+ \RL at nameledef{#4-len}{\number\numexpr #3 - #2 + 1}%
+ \fi
+ \else
+ \@OutOfRangeError{#1}{#3}%
+ \fi
+ \else
+ \@OutOfRangeError{#1}{#2}%
+ \fi
+ }%
+ {\@NoListError{#4}}%
+ }%
+ {\@NoListError{#1}}%
+}
+\long\def\SetFirstItem#1#2{%
+ \SetItem{#1}{0}{#2}%
+}
+\long\def\SetLastItem#1#2{%
+ \SetItem{#1}{\number\numexpr\RL at lenof{#1}-1}{#2}%
+}
+\long\def\SetItem#1#2#3{%
+ \@ifIsListNotEmpty{#1}%
+ {%
+ \ifnum\numexpr\RL at lenof{#1}-1-#2<0
+ \@OutOfRangeError{#1}{#2}%
+ \else
+ \RL at nameldef{#1-#2}{#3}%
+ \fi
+ }%
+ {\@NoListError{#1}}%%
+}
+\long\def\SetRandomItem#1#2{%
+ \@ifIsListNotEmpty{#1}%
+ {%
+ \RLuniformdeviate{\RL at lenof{#1}}{RL at temp}%
+ \SetItem{#1}{\RL at temp}{#2}%
+ }%
+ {\@NoListError{#1}}%
+}
+\def\SetList#1#2{%
+ \@ifIsList{#1}%
+ {%
+ \ClearList{#1}%
+ \def\RL at name{#1}%
+ \RL at setlist#2,\@nil,%
+ }%
+ {\@NoListError{#1}}%
+}
+\long\def\RL at setlist#1,{%
+ \def\RL at arg{#1}%
+ \unless\ifx\RL at arg\@nnil
+ \InsertLastItem{\RL at name}{#1}%
+ \expandafter\RL at setlist
+ \fi
+}
+\long\def\ForEachFirstItem#1#2#3{%
+ \begingroup
+ \RLfor \RL at var = 0 to \RL at lenof{#1}-1 \do{%
+ \ExtractFirstItem{#1}{#2}%
+ #3%
+ }%
+ \endgroup
+}
+\long\def\ForEachLastItem#1#2#3{%
+ \begingroup
+ \RLfor \RL at var = 0 to \RL at lenof{#1}-1 \do{%
+ \ExtractLastItem{#1}{#2}%
+ #3%
+ }%
+ \endgroup
+}
+\long\def\ForEachRandomItem#1#2#3{%
+ \begingroup
+ \RLfor \RL at var = 0 to \RL at lenof{#1}-1 \do{%
+ \ExtractRandomItem{#1}{#2}%
+ #3%
+ }%
+ \endgroup
+}
+\long\def\ReadFieldItem#1#2#3{%
+ \RL at counti #2\relax
+ \expandafter\RL at ReadFieldItem#1\@nil
+ \expandafter\let\csname#3\endcsname\RL at temp
+}
+\long\def\RL at ReadFieldItem{%
+ \@ifnextchar\bgroup{\RL@@ReadFieldItem}{\RL@@ReadFieldItemError}%
+}
+\long\def\RL@@ReadFieldItem#1{%
+ \ifnum\RL at counti=\z@
+ \def\RL at temp{#1}%
+ \expandafter\RL@@ReadFieldItemEnd
+ \else
+ \advance\RL at counti \m at ne
+ \expandafter\RL at ReadFieldItem
+ \fi
+}
+\long\def\RL@@ReadFieldItemEnd#1\@nil{}
+\long\def\RL@@ReadFieldItemError#1\@nil{%
+ \PackageError{randomlist}%
+ {There aren't enough fields in the record}%
+ {Pay attention that field number starts from zero.}%
+}
+\def\RL at SetDelimiters#1#2#3\@nil{%
+ \def\RL at markstrings##1{%
+ \let\RL at accu\empty
+ \expandafter\RL at markstrings@i##1#2\@nil#2%
+ \let##1=\RL at accu
+ }%
+ \def\RL at markstrings@i##1#2##2#2{%
+ \RL at addtomacro\RL at accu{##1}%
+ \def\RL at current{##2}%
+ \unless\ifx\@nnil\RL at current
+ \RL at addtomacro\RL at accu{\RL at string{##2}}%
+ \expandafter\RL at markstrings@i
+ \fi
+ }%
+ \def\RL at unmarkstrings##1{%
+ \let\RL at accuA\empty
+ \expandafter\RL at unmarkstrings@i##1\RL at string\@nil
+ \let##1=\RL at accuA
+ }%
+ \def\RL at unmarkstrings@i##1\RL at string##2{%
+ \RL at addtomacro\RL at accuA{##1}%
+ \def\RL at current{##2}%
+ \unless\ifx\@nnil\RL at current
+ \RL at ifempty{##2}%
+ {\RL at addtomacro\RL at accuA{#2}}%
+ {\RL at addtomacro\RL at accuA{##2}}%
+ \expandafter\RL at unmarkstrings@i
+ \fi
+ }%
+ \def\RL at parsefields##1{%
+ \let\RL at accu\empty
+ \expandafter\RL at parsefields@i##1#1\@nil#1%
+ \let##1=\RL at accu
+ }%
+ \def\RL at parsefields@i##1#1{%
+ \def\RL at current{##1}%
+ \unless\ifx\@nnil\RL at current
+ \RL at unmarkstrings\RL at current
+ \RL at removefirstspaces\RL at current
+ \RL at removelastspaces \RL at current
+ \expandafter\RL at addtomacro\expandafter\RL at accu\expandafter
+ {\expandafter{\RL at current}}%
+ \expandafter\RL at parsefields@i
+ \fi
+ }%
+}
+\newread\RL at hdle
+\def\@ppar{\par}
+\def\ReadFileList{\@ifnextchar[{\@ReadFileList}{\@ReadFileList[,"]}}
+\def\@ReadFileList[#1]#2#3{%
+ \openin \RL at hdle = #3
+ \ifeof\RL at hdle
+ \PackageError{randomlist}%
+ {File #3 doesn't exist}%
+ {Verify its name, its extension, its location, its permissions.}%
+ \else
+ \RL at ifempty{#1}%
+ {%
+ \PackageError{randomlist}
+ {Optional argument empty: [,"] inserted}
+ {Do not leave an optional argument empty}%
+ \RL at SetDelimiters,"\@nil
+ }
+ {\RL at SetDelimiters#1"\@nil}%
+ \loop
+ \read\RL at hdle to \RL at buffer
+ \unless\ifx\RL at buffer\@ppar
+ \RL at markstrings\RL at buffer
+ \RL at parsefields\RL at buffer
+ \def\RL at accuA{\InsertLastItem{#2}}%
+ \expandafter\RL at accuA\expandafter{\RL at buffer}%
+ \fi
+ \ifeof\RL at hdle\else
+ \repeat
+ \fi
+}
+\def\RL at ifspacefirst#1{%
+ \RL at ifspacefirst@i#1A \@nil
+}
+\expandafter\def\expandafter\RL at ifspacefirst@i
+ \expandafter#\expandafter1\space#2\@nil{%
+ \RL at ifempty{#1}%
+}
+\def\RL at removefirstspaces#1{%
+ \expandafter\RL at ifspacefirst\expandafter{#1}
+ {\expandafter\removefistspace at i#1\@nil#1}
+ {}%
+}
+\expandafter\def\expandafter\removefistspace at i\space#1\@nil#2{%
+ \def#2{#1}%
+ \RL at removefirstspaces#2%
+}
+\edef\RL at restorecatcodezero{\catcode0=\number\catcode0\relax}
+\catcode0=12
+\def\RL at removelastspaces#1{%
+ \expandafter\def\expandafter#1\expandafter{%
+ \romannumeral\expandafter
+ \RL at removelastspaces@i\expandafter\relax#1^^00 ^^00\@nil
+ }%
+}
+\def\RL at removelastspaces@i#1 ^^00{\RL at removelastspaces@ii#1^^00}
+\def\RL at removelastspaces@ii#1^^00#2\@nil{%
+ \RL at ifspacefirst{#2}
+ {\RL at removelastspaces@i#1^^00 ^^00\@nil}
+ {\expandafter\z@\@gobble#1}%
+}
+\RL at restorecatcodezero
+\catcode`\@=\RLAtCatcode\relax
+\endinput
+%%
+%% End of file `randomlist.tex'.
Property changes on: trunk/Master/texmf-dist/tex/generic/randomlist/randomlist.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds 2016-07-19 17:39:12 UTC (rev 41726)
+++ trunk/Master/tlpkg/libexec/ctan2tds 2016-07-19 21:42:13 UTC (rev 41727)
@@ -1712,6 +1712,7 @@
'punk', 'NULL', # have separate punk-latex
'qobitree', 'qobitree.tex',
'r_und_s', '\.tex|\.sty',
+ 'randomlist', 'randomlist\.tex|' . $standardtex,
'realcalc', 'realcalc.tex',
'resumemac', 'resumemac.tex',
'revtex', '\.sty|\.cls|\.rtx',
More information about the tex-live-commits
mailing list