summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/oberdiek
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/oberdiek')
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/accsupp.pdfbin157401 -> 157401 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/aliascnt.pdfbin139005 -> 139005 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/alphalph-test1.tex74
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/alphalph-test2.tex250
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/alphalph-test3.tex261
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/alphalph.pdfbin165225 -> 217808 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/atbegshi-example.tex2
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/atbegshi-test1.tex130
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/atbegshi-test2.tex129
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/atbegshi-test3.tex75
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/atbegshi.pdfbin208780 -> 211441 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/atenddvi.pdfbin130108 -> 130108 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/attachfile2.pdfbin216300 -> 216300 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/auxhook.pdfbin134319 -> 134319 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/bmpsize.pdfbin294770 -> 294770 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/bookmark.pdfbin234603 -> 234603 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/catchfile-test1.tex63
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/catchfile-test2.tex27
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/catchfile-test3.tex56
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/catchfile.pdfbin146301 -> 150132 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/centernot.pdfbin126097 -> 126097 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/chemarr.pdfbin130718 -> 130718 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/classlist.pdfbin127081 -> 127082 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/colonequals.pdfbin135849 -> 135848 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/dvipscol.pdfbin119356 -> 119357 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/embedfile-example-plain.tex4
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/embedfile-test1.tex75
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/embedfile-test2.tex44
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/embedfile-test3.tex43
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/embedfile.pdfbin171025 -> 183113 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/engord-test1.tex74
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/engord.pdfbin148475 -> 154333 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/epstopdf.pdfbin133403 -> 133402 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/etexcmds-test1.tex50
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/etexcmds-test2.tex12
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/etexcmds-test3.tex24
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/etexcmds-test4.tex53
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/etexcmds.pdfbin133338 -> 141443 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/flags.pdfbin134238 -> 134238 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/grffile.pdfbin158205 -> 158206 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/holtxdoc.pdfbin137977 -> 137977 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/hycolor.pdfbin193953 -> 193952 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/hypbmsec.pdfbin147133 -> 147133 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/hypcap.pdfbin133317 -> 133316 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/hypdestopt.pdfbin155568 -> 155566 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/hypdoc.pdfbin154553 -> 154552 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/ifdraft.pdfbin122283 -> 122282 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/iflang-test1.tex82
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/iflang-test2.tex110
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/iflang-test3.tex138
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/iflang-test4.tex66
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/iflang-test5.tex93
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/iflang.pdfbin164226 -> 173761 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/ifpdf-test1.tex74
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/ifpdf.pdfbin138708 -> 146943 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/ifvtex-test1.tex74
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/ifvtex.pdfbin133013 -> 142397 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/infwarerr-test1.tex217
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/infwarerr-test2.tex20
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/infwarerr-test3.tex217
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/infwarerr.pdfbin157199 -> 160830 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/inputenx.pdfbin492087 -> 492088 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/intcalc-test1.tex76
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/intcalc-test2.tex597
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/intcalc-test3.tex590
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/intcalc-test4.tex535
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/intcalc.pdfbin0 -> 268205 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/kvoptions.pdfbin246956 -> 246955 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/kvsetkeys-example.tex4
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/kvsetkeys-test1.tex73
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/kvsetkeys.pdfbin163032 -> 166204 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/makerobust.pdfbin124091 -> 124089 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/oberdiek.pdfbin570646 -> 635272 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pagesel.pdfbin160335 -> 160335 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfcol-test1.tex73
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfcol-test2.tex53
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfcol-test3.tex60
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfcol.pdfbin0 -> 158106 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfcolfoot-test1.tex52
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfcolfoot.pdfbin135273 -> 143797 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfcolmk.pdfbin161333 -> 161332 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfcolparallel-test1.tex79
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfcolparallel.pdfbin0 -> 154332 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfcolparcolumns-test1.tex73
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfcolparcolumns.pdfbin0 -> 147283 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfcrypt.pdfbin164853 -> 164853 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfescape-test1.tex391
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfescape-test2.tex28
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfescape-test3.tex18
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfescape-test4.tex379
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdfescape.pdfbin206853 -> 211708 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pdflscape.pdfbin144331 -> 144331 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/picture.pdfbin142011 -> 142011 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/pmboxdraw.pdfbin182727 -> 182728 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/refcount.pdfbin135489 -> 135489 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/selinput-test1.tex20
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/selinput-test2.tex20
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/selinput-test3.tex20
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/selinput-test4.tex12
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/selinput-test5.tex12
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/selinput.pdfbin517077 -> 516819 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/setouterhbox-example.tex3
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/setouterhbox-test1.tex75
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/setouterhbox-test2.tex63
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/setouterhbox.pdfbin165886 -> 172769 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/settobox.pdfbin143587 -> 143588 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/soulutf8-test1.tex74
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/soulutf8-test2.tex365
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/soulutf8-test3.tex377
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/soulutf8-test4.tex358
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/soulutf8-test5.tex370
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/soulutf8.pdfbin0 -> 218887 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/stackrel.pdfbin129620 -> 129620 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/stringenc-test1.tex2
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/stringenc-test2.tex2
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/stringenc.pdfbin409704 -> 410699 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/tabularht.pdfbin169044 -> 169045 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/tabularkv.pdfbin119401 -> 119401 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/telprint-test1.tex74
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/telprint.pdfbin143765 -> 151195 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/transparent.pdfbin126895 -> 126894 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/twoopt.pdfbin137949 -> 137949 bytes
-rw-r--r--Master/texmf-dist/doc/latex/oberdiek/zref.pdfbin293230 -> 293230 bytes
123 files changed, 6525 insertions, 940 deletions
diff --git a/Master/texmf-dist/doc/latex/oberdiek/accsupp.pdf b/Master/texmf-dist/doc/latex/oberdiek/accsupp.pdf
index 916a2fe5693..d8f232c2205 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/accsupp.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/accsupp.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/aliascnt.pdf b/Master/texmf-dist/doc/latex/oberdiek/aliascnt.pdf
index 2364cb21fce..5cb281e2c94 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/aliascnt.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/aliascnt.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/alphalph-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/alphalph-test1.tex
new file mode 100644
index 00000000000..0823d890246
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/alphalph-test1.tex
@@ -0,0 +1,74 @@
+%%
+%% This is file `alphalph-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% alphalph.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 1999, 2006, 2007 by
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file alphalph.dtx
+%% and the derived files
+%% alphalph.sty, alphalph.pdf, alphalph.ins, alphalph.drv,
+%% alphalph-test1.tex, alphalph-test2.tex, alphalph-test3.tex.
+%%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input alphalph.sty\relax
+ \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
+\end
+\endinput
+%%
+%% End of file `alphalph-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/alphalph-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/alphalph-test2.tex
new file mode 100644
index 00000000000..15c7c02052f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/alphalph-test2.tex
@@ -0,0 +1,250 @@
+%%
+%% This is file `alphalph-test2.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% alphalph.dtx (with options: `test2,etex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 1999, 2006, 2007 by
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file alphalph.dtx
+%% and the derived files
+%% alphalph.sty, alphalph.pdf, alphalph.ins, alphalph.drv,
+%% alphalph-test1.tex, alphalph-test2.tex, alphalph-test3.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\nofiles
+\documentclass{article}
+\usepackage{alphalph}[2007/04/11]
+\usepackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+
+\newcommand*{\TestCmd}[3]{%
+ \setbox0=\hbox{%
+ \edef\TestString{#1{#2}}%
+ \expandafter\Expect\expandafter{\TestString}{#3}%
+ \edef\TestString{#1{#2} }%
+ \expandafter\Expect\expandafter{\TestString}{#3 }%
+ }%
+ \Expect*{\the\wd0}{0.0pt}%
+}
+
+\makeatletter
+\newalphalph\LaTeXAlphAlph\@Alph{26}
+\newalphalph\LaTeXalphalph\@alph{26}
+\newalphalph\AlphWrap[wrap]\alphalph@Alph{26}
+\newalphalph\alphwrap[wrap]\alphalph@alph{26}
+\newalphalph\LaTeXAlphWrap[wrap]\@Alph{26}
+\newalphalph\LaTeXalphwrap[wrap]\@alph{26}
+\def\LastSymbol#1{%
+ \ifx\\#1\\%
+ \else
+ \@LastSymbol#1\@nil
+ \fi
+}
+\def\@LastSymbol#1#2\@nil{%
+ \ifx\\#2\\%
+ #1%
+ \else
+ \@LastSymbol#2\@nil
+ \fi
+}
+\makeatother
+\newcommand*{\TestAlph}[2]{%
+ \uppercase{\TestCallCmd\AlphAlph{#2}}{#1}%
+ \lowercase{\TestCallCmd\alphalph{#2}}{#1}%
+ \uppercase{\TestCallCmd\LaTeXAlphAlph{#2}}{#1}%
+ \lowercase{\TestCallCmd\LaTeXalphalph{#2}}{#1}%
+ \edef\WrapString{\LastSymbol{#2}}%
+ \expandafter\TestAlphWrap\expandafter{\WrapString}{#1}%
+}
+\newcommand*{\TestAlphWrap}[2]{%
+ \uppercase{\TestCallCmd\AlphWrap{#1}}{#2}%
+ \lowercase{\TestCallCmd\alphwrap{#1}}{#2}%
+ \uppercase{\TestCallCmd\LaTeXAlphWrap{#1}}{#2}%
+ \lowercase{\TestCallCmd\LaTeXalphwrap{#1}}{#2}%
+}
+\newcommand*{\TestCallCmd}[3]{%
+ \TestCmd#1{#3}{#2}%
+}
+\begin{qstest}{AlphSymbols}{alphalph, AlphAlph, symbols}
+ \TestAlph{1}{a}%
+ \TestAlph{2}{b}%
+ \TestAlph{3}{c}%
+ \TestAlph{4}{d}%
+ \TestAlph{5}{e}%
+ \TestAlph{6}{f}%
+ \TestAlph{7}{g}%
+ \TestAlph{8}{h}%
+ \TestAlph{9}{i}%
+ \TestAlph{10}{j}%
+ \TestAlph{11}{k}%
+ \TestAlph{12}{l}%
+ \TestAlph{13}{m}%
+ \TestAlph{14}{n}%
+ \TestAlph{15}{o}%
+ \TestAlph{16}{p}%
+ \TestAlph{17}{q}%
+ \TestAlph{18}{r}%
+ \TestAlph{19}{s}%
+ \TestAlph{20}{t}%
+ \TestAlph{21}{u}%
+ \TestAlph{22}{v}%
+ \TestAlph{23}{w}%
+ \TestAlph{24}{x}%
+ \TestAlph{25}{y}%
+ \TestAlph{26}{z}%
+\end{qstest}
+\begin{qstest}{AlphRange}{alphalph, range}
+ \TestAlph{0}{}%
+ \TestAlph{-1}{}%
+ \TestAlph{-2147483647}{}%
+ \TestAlph{27}{aa}%
+ \TestAlph{28}{ab}%
+ \TestAlph{52}{az}%
+ \TestAlph{53}{ba}%
+ \TestAlph{78}{bz}%
+ \TestAlph{79}{ca}%
+ \TestAlph{702}{zz}%
+ \TestAlph{703}{aaa}%
+ \TestAlph{2147483647}{fxshrxw}%
+\end{qstest}
+
+\makeatletter
+\newcommand*{\myvocals}[1]{%
+ \ifcase#1X\or A\or E\or I\or O\or U\else Y\fi
+}
+\makeatother
+\newalphalph\vocalsvocals\myvocals{5}
+\newcommand*{\TestVocals}{%
+ \TestCmd\vocalsvocals
+}
+\begin{qstest}{vocals}{vocals}
+ \TestVocals{0}{}%
+ \TestVocals{1}{A}%
+ \TestVocals{2}{E}%
+ \TestVocals{3}{I}%
+ \TestVocals{4}{O}%
+ \TestVocals{5}{U}%
+ \TestVocals{6}{AA}%
+ \TestVocals{7}{AE}%
+ \TestVocals{8}{AI}%
+ \TestVocals{9}{AO}%
+ \TestVocals{10}{AU}%
+ \TestVocals{11}{EA}%
+ \TestVocals{24}{OO}%
+ \TestVocals{25}{OU}%
+ \TestVocals{26}{UA}%
+ \TestVocals{29}{UO}%
+ \TestVocals{30}{UU}%
+ \TestVocals{31}{AAA}%
+ \TestVocals{155}{UUU}%
+ \TestVocals{156}{AAAA}%
+ \TestVocals{2147483647}{AIIOOEEIOIIUOE}%
+\end{qstest}
+
+\makeatletter
+\newalphalph\AlphMult[mult]{\alphalph@Alph}{26}
+\newalphalph\alphmult[mult]{\alphalph@alph}{26}
+\newalphalph\LaTeXAlphMult[mult]{\@Alph}{26}
+\newalphalph\LaTeXalphmult[mult]{\@alph}{26}
+\makeatother
+\newcommand*{\TestMult}[2]{%
+ \uppercase{\TestCallCmd\AlphMult{#2}}{#1}%
+ \lowercase{\TestCallCmd\alphmult{#2}}{#1}%
+ \uppercase{\TestCallCmd\LaTeXAlphMult{#2}}{#1}%
+ \lowercase{\TestCallCmd\LaTeXalphmult{#2}}{#1}%
+}
+\begin{qstest}{mult}{mult}
+ \TestMult{0}{}%
+ \TestMult{-1}{}%
+ \TestMult{-2147483647}{}%
+ \TestMult{1}{a}%
+ \TestMult{2}{b}%
+ \TestMult{26}{z}%
+ \TestMult{27}{aa}%
+ \TestMult{28}{bb}%
+ \TestMult{52}{zz}%
+ \TestMult{53}{aaa}%
+ \TestMult{54}{bbb}%
+ \TestMult{259}{yyyyyyyyyy}%
+ \TestMult{260}{zzzzzzzzzz}%
+ \TestMult{261}{aaaaaaaaaaa}%
+ \TestMult{262}{bbbbbbbbbbb}%
+\end{qstest}
+
+\def\myvocalsB#1{%
+ \ifcase#1\or A\or E\or I\or O\or U\fi
+}
+\begin{qstest}{symbolnum}{symbolnum}
+ \makeatletter
+ \def\Test#1#2{%
+ \let\TestCmd\relax
+ \newalphalph\TestCmd{#1}{}%
+ \Expect*{\AlPh@Number}{#2}%
+ }%
+ \Test\@alph{26}%
+ \Test\@Alph{26}%
+ \Test\@fnsymbol{9}%
+ \Test\myvocalsB{5}%
+ \Test\alphalph@alph{26}%
+ \Test\alphalph@Alph{26}%
+\end{qstest}
+
+\begin{qstest}{list}{list}
+ \makeatletter
+ \def\catch#1\relax{%
+ \def\FoundList{\catch#1}%
+ }%
+ \def\Test[#1]#2#3#4{%
+ \let\testcmd\relax
+ \newalphalph\testcmd[{#1}]{\catch}{#2}%
+ \testcmd{#3}|\relax
+ \expandafter\Expect\expandafter{\FoundList}{#4|}%
+ %
+ \let\SavedCatch\catch
+ \def\catch{\noexpand\catch\noexpand\foo}%
+ \edef\Result{#4|}%
+ \@onelevel@sanitize\Result
+ \let\catch\SavedCatch
+ \let\testcmd\relax
+ \newalphalph\testcmd[{#1}]{\catch\foo}{#2}%
+ \testcmd{#3}|\relax
+ \@onelevel@sanitize\FoundList
+ \Expect*{\FoundList}*{\Result}%
+ }%
+ \Test[alph]{26}{3}{\catch{3}}%
+ \Test[alph]{26}{12}{\catch{12}}%
+ \Test[alph]{26}{27}{\catch{1}\catch{1}}%
+ \Test[alph]{26}{78}{\catch{2}\catch{26}}%
+ \Test[wrap]{26}{7}{\catch{7}}%
+ \Test[wrap]{26}{14}{\catch{14}}%
+ \Test[wrap]{26}{80}{\catch{2}}%
+ \Test[wrap]{26}{700}{\catch{24}}%
+ \Test[mult]{26}{4}{\catch{4}}%
+ \Test[mult]{26}{17}{\catch{17}}%
+ \Test[mult]{26}{54}{\catch{2}\catch{2}\catch{2}}%
+\end{qstest}
+
+\begin{document}
+\end{document}
+\endinput
+%%
+%% End of file `alphalph-test2.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/alphalph-test3.tex b/Master/texmf-dist/doc/latex/oberdiek/alphalph-test3.tex
new file mode 100644
index 00000000000..1fa4f8a53b7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/alphalph-test3.tex
@@ -0,0 +1,261 @@
+%%
+%% This is file `alphalph-test3.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% alphalph.dtx (with options: `test2,noetex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 1999, 2006, 2007 by
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file alphalph.dtx
+%% and the derived files
+%% alphalph.sty, alphalph.pdf, alphalph.ins, alphalph.drv,
+%% alphalph-test1.tex, alphalph-test2.tex, alphalph-test3.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\nofiles
+\documentclass{article}
+\makeatletter
+\let\saved@numexpr\numexpr
+\newcommand*{\DisableNumexpr}{%
+ \let\numexpr\@undefined
+}
+\newcommand*{\RestoreNumexpr}{%
+ \let\numexpr\saved@numexpr
+}
+\DisableNumexpr
+\usepackage{alphalph}[2007/04/11]
+\RestoreNumexpr
+\usepackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+
+\newcommand*{\TestCmd}[3]{%
+ \setbox0=\hbox{%
+ \DisableNumexpr
+ \edef\TestString{#1{#2}}%
+ \expandafter\Expect\expandafter{\TestString}{#3}%
+ \edef\TestString{#1{#2} }%
+ \expandafter\Expect\expandafter{\TestString}{#3 }%
+ }%
+ \Expect*{\the\wd0}{0.0pt}%
+}
+
+\makeatletter
+\newalphalph\LaTeXAlphAlph\@Alph{26}
+\newalphalph\LaTeXalphalph\@alph{26}
+\newalphalph\AlphWrap[wrap]\alphalph@Alph{26}
+\newalphalph\alphwrap[wrap]\alphalph@alph{26}
+\newalphalph\LaTeXAlphWrap[wrap]\@Alph{26}
+\newalphalph\LaTeXalphwrap[wrap]\@alph{26}
+\def\LastSymbol#1{%
+ \ifx\\#1\\%
+ \else
+ \@LastSymbol#1\@nil
+ \fi
+}
+\def\@LastSymbol#1#2\@nil{%
+ \ifx\\#2\\%
+ #1%
+ \else
+ \@LastSymbol#2\@nil
+ \fi
+}
+\makeatother
+\newcommand*{\TestAlph}[2]{%
+ \uppercase{\TestCallCmd\AlphAlph{#2}}{#1}%
+ \lowercase{\TestCallCmd\alphalph{#2}}{#1}%
+ \uppercase{\TestCallCmd\LaTeXAlphAlph{#2}}{#1}%
+ \lowercase{\TestCallCmd\LaTeXalphalph{#2}}{#1}%
+ \edef\WrapString{\LastSymbol{#2}}%
+ \expandafter\TestAlphWrap\expandafter{\WrapString}{#1}%
+}
+\newcommand*{\TestAlphWrap}[2]{%
+ \uppercase{\TestCallCmd\AlphWrap{#1}}{#2}%
+ \lowercase{\TestCallCmd\alphwrap{#1}}{#2}%
+ \uppercase{\TestCallCmd\LaTeXAlphWrap{#1}}{#2}%
+ \lowercase{\TestCallCmd\LaTeXalphwrap{#1}}{#2}%
+}
+\newcommand*{\TestCallCmd}[3]{%
+ \TestCmd#1{#3}{#2}%
+}
+\begin{qstest}{AlphSymbols}{alphalph, AlphAlph, symbols}
+ \TestAlph{1}{a}%
+ \TestAlph{2}{b}%
+ \TestAlph{3}{c}%
+ \TestAlph{4}{d}%
+ \TestAlph{5}{e}%
+ \TestAlph{6}{f}%
+ \TestAlph{7}{g}%
+ \TestAlph{8}{h}%
+ \TestAlph{9}{i}%
+ \TestAlph{10}{j}%
+ \TestAlph{11}{k}%
+ \TestAlph{12}{l}%
+ \TestAlph{13}{m}%
+ \TestAlph{14}{n}%
+ \TestAlph{15}{o}%
+ \TestAlph{16}{p}%
+ \TestAlph{17}{q}%
+ \TestAlph{18}{r}%
+ \TestAlph{19}{s}%
+ \TestAlph{20}{t}%
+ \TestAlph{21}{u}%
+ \TestAlph{22}{v}%
+ \TestAlph{23}{w}%
+ \TestAlph{24}{x}%
+ \TestAlph{25}{y}%
+ \TestAlph{26}{z}%
+\end{qstest}
+\begin{qstest}{AlphRange}{alphalph, range}
+ \TestAlph{0}{}%
+ \TestAlph{-1}{}%
+ \TestAlph{-2147483647}{}%
+ \TestAlph{27}{aa}%
+ \TestAlph{28}{ab}%
+ \TestAlph{52}{az}%
+ \TestAlph{53}{ba}%
+ \TestAlph{78}{bz}%
+ \TestAlph{79}{ca}%
+ \TestAlph{702}{zz}%
+ \TestAlph{703}{aaa}%
+ \TestAlph{2147483647}{fxshrxw}%
+\end{qstest}
+
+\makeatletter
+\newcommand*{\myvocals}[1]{%
+ \ifcase#1X\or A\or E\or I\or O\or U\else Y\fi
+}
+\makeatother
+\newalphalph\vocalsvocals\myvocals{5}
+\newcommand*{\TestVocals}{%
+ \TestCmd\vocalsvocals
+}
+\begin{qstest}{vocals}{vocals}
+ \TestVocals{0}{}%
+ \TestVocals{1}{A}%
+ \TestVocals{2}{E}%
+ \TestVocals{3}{I}%
+ \TestVocals{4}{O}%
+ \TestVocals{5}{U}%
+ \TestVocals{6}{AA}%
+ \TestVocals{7}{AE}%
+ \TestVocals{8}{AI}%
+ \TestVocals{9}{AO}%
+ \TestVocals{10}{AU}%
+ \TestVocals{11}{EA}%
+ \TestVocals{24}{OO}%
+ \TestVocals{25}{OU}%
+ \TestVocals{26}{UA}%
+ \TestVocals{29}{UO}%
+ \TestVocals{30}{UU}%
+ \TestVocals{31}{AAA}%
+ \TestVocals{155}{UUU}%
+ \TestVocals{156}{AAAA}%
+ \TestVocals{2147483647}{AIIOOEEIOIIUOE}%
+\end{qstest}
+
+\makeatletter
+\newalphalph\AlphMult[mult]{\alphalph@Alph}{26}
+\newalphalph\alphmult[mult]{\alphalph@alph}{26}
+\newalphalph\LaTeXAlphMult[mult]{\@Alph}{26}
+\newalphalph\LaTeXalphmult[mult]{\@alph}{26}
+\makeatother
+\newcommand*{\TestMult}[2]{%
+ \uppercase{\TestCallCmd\AlphMult{#2}}{#1}%
+ \lowercase{\TestCallCmd\alphmult{#2}}{#1}%
+ \uppercase{\TestCallCmd\LaTeXAlphMult{#2}}{#1}%
+ \lowercase{\TestCallCmd\LaTeXalphmult{#2}}{#1}%
+}
+\begin{qstest}{mult}{mult}
+ \TestMult{0}{}%
+ \TestMult{-1}{}%
+ \TestMult{-2147483647}{}%
+ \TestMult{1}{a}%
+ \TestMult{2}{b}%
+ \TestMult{26}{z}%
+ \TestMult{27}{aa}%
+ \TestMult{28}{bb}%
+ \TestMult{52}{zz}%
+ \TestMult{53}{aaa}%
+ \TestMult{54}{bbb}%
+ \TestMult{259}{yyyyyyyyyy}%
+ \TestMult{260}{zzzzzzzzzz}%
+ \TestMult{261}{aaaaaaaaaaa}%
+ \TestMult{262}{bbbbbbbbbbb}%
+\end{qstest}
+
+\def\myvocalsB#1{%
+ \ifcase#1\or A\or E\or I\or O\or U\fi
+}
+\begin{qstest}{symbolnum}{symbolnum}
+ \makeatletter
+ \def\Test#1#2{%
+ \let\TestCmd\relax
+ \newalphalph\TestCmd{#1}{}%
+ \Expect*{\AlPh@Number}{#2}%
+ }%
+ \Test\@alph{26}%
+ \Test\@Alph{26}%
+ \Test\@fnsymbol{9}%
+ \Test\myvocalsB{5}%
+ \Test\alphalph@alph{26}%
+ \Test\alphalph@Alph{26}%
+\end{qstest}
+
+\begin{qstest}{list}{list}
+ \makeatletter
+ \def\catch#1\relax{%
+ \def\FoundList{\catch#1}%
+ }%
+ \def\Test[#1]#2#3#4{%
+ \let\testcmd\relax
+ \newalphalph\testcmd[{#1}]{\catch}{#2}%
+ \testcmd{#3}|\relax
+ \expandafter\Expect\expandafter{\FoundList}{#4|}%
+ %
+ \let\SavedCatch\catch
+ \def\catch{\noexpand\catch\noexpand\foo}%
+ \edef\Result{#4|}%
+ \@onelevel@sanitize\Result
+ \let\catch\SavedCatch
+ \let\testcmd\relax
+ \newalphalph\testcmd[{#1}]{\catch\foo}{#2}%
+ \testcmd{#3}|\relax
+ \@onelevel@sanitize\FoundList
+ \Expect*{\FoundList}*{\Result}%
+ }%
+ \Test[alph]{26}{3}{\catch{3}}%
+ \Test[alph]{26}{12}{\catch{12}}%
+ \Test[alph]{26}{27}{\catch{1}\catch{1}}%
+ \Test[alph]{26}{78}{\catch{2}\catch{26}}%
+ \Test[wrap]{26}{7}{\catch{7}}%
+ \Test[wrap]{26}{14}{\catch{14}}%
+ \Test[wrap]{26}{80}{\catch{2}}%
+ \Test[wrap]{26}{700}{\catch{24}}%
+ \Test[mult]{26}{4}{\catch{4}}%
+ \Test[mult]{26}{17}{\catch{17}}%
+ \Test[mult]{26}{54}{\catch{2}\catch{2}\catch{2}}%
+\end{qstest}
+
+\begin{document}
+\end{document}
+\endinput
+%%
+%% End of file `alphalph-test3.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/alphalph.pdf b/Master/texmf-dist/doc/latex/oberdiek/alphalph.pdf
index c1161c0179b..80b0d68e2a3 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/alphalph.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/alphalph.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/atbegshi-example.tex b/Master/texmf-dist/doc/latex/oberdiek/atbegshi-example.tex
index f5c3c2472ee..3d4b6eaf9f7 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/atbegshi-example.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/atbegshi-example.tex
@@ -26,7 +26,7 @@
%% and the derived files
%% atbegshi.sty, atbegshi.pdf, atbegshi.ins, atbegshi.drv,
%% atbegshi-example.tex, atbegshi-test1.tex,
-%% atbegshi-test2.tex.
+%% atbegshi-test2.tex, atbegshi-test3.tex.
%%
\documentclass[a4paper]{article}
\usepackage{color}
diff --git a/Master/texmf-dist/doc/latex/oberdiek/atbegshi-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/atbegshi-test1.tex
index 8cc9ef75b31..b6677eb7b7c 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/atbegshi-test1.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/atbegshi-test1.tex
@@ -26,100 +26,48 @@
%% and the derived files
%% atbegshi.sty, atbegshi.pdf, atbegshi.ins, atbegshi.drv,
%% atbegshi-example.tex, atbegshi-test1.tex,
-%% atbegshi-test2.tex.
+%% atbegshi-test2.tex, atbegshi-test3.tex.
%%
-\input atbegshi.sty\relax
-\def\msg#{\immediate\write16}
-\msg{File: atbegshi-test1.tex 2007/06/06 v1.5 Test file for plain-TeX}
-\def\testmsg#1#2{%
- \msg{}%
- \msg{*** Test with box (#1), expected page output [#2]}%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
}
-
-\newbox\voidbox
-\def\void{\box\voidbox}
-\begingroup
- \setbox\voidbox=\void
-\endgroup
-
-\count0=0\relax
-\AtBeginShipout{%
- \global\advance\count0 by 1\relax
- \msg{* Inside \string\AtBeginShipout: [\the\count0]}%
-}
-
-\AtBeginShipoutFirst{%
- \msg{* Inside \string\AtBeginShipoutFirst}%
- Hello World%
-}
-
-\testmsg{\string\null}{1}
-\shipout\null
-
-\AtBeginShipoutFirst{%
- This is too late%
-}
-
-\testmsg{void}{}
-\shipout\void
-
-\testmsg{\string\copy255 (not void)}{2}
-\setbox255\hbox{\vrule height 10bp width 10bp}
-\shipout\copy255 %
-
-\testmsg{\string\copy255 (again)}{3}
-\shipout\copy255 %
-
-\testmsg{\string\box255}{4}
-\shipout\box255 %
-
-\testmsg{\string\box255 (again)}{}
-\shipout\box255 %
-
-\testmsg{\string\hbox}{5}
-\shipout\hbox{\vrule height 5bp width 20bp}
-
-\testmsg{\string\vbox}{6}
-\shipout\vbox{\hrule height 20bp width 5bp}
-
-\testmsg{\string\null, voided by hook}{}
-\def\VoidBox{%
- \begingroup
- \setbox\AtBeginShipoutBox=\box\AtBeginShipoutBox
- \endgroup
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input atbegshi.sty\relax
+ \RestoreCatcodes
}
-\AtBeginShipout{\VoidBox}
-\shipout\null
-\def\VoidBox{}
-
-\msg{*** \string\begingroup}
-\begingroup
- \testmsg{void}{}%
- \shipout\void
-\msg{*** \string\endgroup}
-\endgroup
-
-\msg{*** \string\begingroup}
-\begingroup
- \testmsg{void}{}%
- \shipout\void
- \testmsg{\string\null}{8}%
- \shipout\null
-\msg{*** \string\endgroup}
-\endgroup
-
-\testmsg{output routine}{9}
-Hello World
-\vfill
-\eject
-
-\testmsg{\string\null\space(discarded)}{}
-\AtBeginShipout{%
- \msg{* Inside \string\AtBeginShipout: DISCARD}%
- \AtBeginShipoutDiscard
-}
-\shipout\null
-
+\Test
+\csname @@end\endcsname
\end
\endinput
%%
diff --git a/Master/texmf-dist/doc/latex/oberdiek/atbegshi-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/atbegshi-test2.tex
index 743a9656373..4ce167f48f6 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/atbegshi-test2.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/atbegshi-test2.tex
@@ -26,50 +26,101 @@
%% and the derived files
%% atbegshi.sty, atbegshi.pdf, atbegshi.ins, atbegshi.drv,
%% atbegshi-example.tex, atbegshi-test1.tex,
-%% atbegshi-test2.tex.
+%% atbegshi-test2.tex, atbegshi-test3.tex.
%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{atbegshi-test2.tex}[2007/06/06 v1.5 Test file for LaTeX]
-\RequirePackage{color}
-\pagecolor{yellow}
-\documentclass[a5paper,showtrims]{memoir}
-\usepackage{atbegshi}
+\input atbegshi.sty\relax
+\def\msg#{\immediate\write16}
+\msg{File: atbegshi-test2.tex 2007/09/09 v1.6 Test file for plain-TeX}
+\def\testmsg#1#2{%
+ \msg{}%
+ \msg{*** Test with box (#1), expected page output [#2]}% hash-ok
+}
+
+\newbox\voidbox
+\def\void{\box\voidbox}
+\begingroup
+ \setbox\voidbox=\void
+\endgroup
+
+\count0=0\relax
\AtBeginShipout{%
- \setbox\AtBeginShipoutBox=\vbox{%
- \vbox to 0pt{%
- \kern-1.5in %
- \hbox to 0pt{%
- \kern-1.5in %
- \color{blue}%
- \rule{1in}{1in}%
- \hss
- }%
- \vss
- }%
- \hrule
- \hbox{\vrule\box\AtBeginShipoutBox\vrule}%
- \hrule
- }%
+ \global\advance\count0 by 1\relax
+ \msg{* Inside \string\AtBeginShipout: [\the\count0]}%
+}
+
+\AtBeginShipoutFirst{%
+ \msg{* Inside \string\AtBeginShipoutFirst}%
+ Hello World%
+}
+
+\testmsg{\string\null}{1}
+\shipout\null
+
+\AtBeginShipoutFirst{%
+ This is too late%
}
-\usepackage{eso-pic}
-\makeatletter
-\@EveryShipout@Init
-\let\@EveryShipout@Init\relax
-\makeatother
-\AddToShipoutPicture{%
- \hspace{.52\paperwidth}%
- \colorbox{cyan}{%
- \rule{0mm}{\paperheight}%
- \hspace{.48\paperwidth}%
- }%
+
+\testmsg{void}{}
+\shipout\void
+
+\testmsg{\string\copy255 (not void)}{2}
+\setbox255\hbox{\vrule height 10bp width 10bp}
+\shipout\copy255 %
+
+\testmsg{\string\copy255 (again)}{3}
+\shipout\copy255 %
+
+\testmsg{\string\box255}{4}
+\shipout\box255 %
+
+\testmsg{\string\box255 (again)}{}
+\shipout\box255 %
+
+\testmsg{\string\hbox}{5}
+\shipout\hbox{\vrule height 5bp width 20bp}
+
+\testmsg{\string\vbox}{6}
+\shipout\vbox{\hrule height 20bp width 5bp}
+
+\testmsg{\string\null, voided by hook}{}
+\def\VoidBox{%
+ \begingroup
+ \setbox\AtBeginShipoutBox=\box\AtBeginShipoutBox
+ \endgroup
+}
+\AtBeginShipout{\VoidBox}
+\shipout\null
+\def\VoidBox{}
+
+\msg{*** \string\begingroup}
+\begingroup
+ \testmsg{void}{}%
+ \shipout\void
+\msg{*** \string\endgroup}
+\endgroup
+
+\msg{*** \string\begingroup}
+\begingroup
+ \testmsg{void}{}%
+ \shipout\void
+ \testmsg{\string\null}{8}%
+ \shipout\null
+\msg{*** \string\endgroup}
+\endgroup
+
+\testmsg{output routine}{9}
+Hello World
+\vfill
+\eject
+
+\testmsg{\string\null\space(discarded)}{}
+\AtBeginShipout{%
+ \msg{* Inside \string\AtBeginShipout: DISCARD}%
+ \AtBeginShipoutDiscard
}
-\expandafter\let\csname ver@crop.sty\endcsname\relax
-\usepackage[color=red,cross,a4,center]{crop}
-\begin{document}
\shipout\null
-\shipout\box\csname voidb@x\endcsname
-\section{Hello World}
-\end{document}
+
+\end
\endinput
%%
%% End of file `atbegshi-test2.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/atbegshi-test3.tex b/Master/texmf-dist/doc/latex/oberdiek/atbegshi-test3.tex
new file mode 100644
index 00000000000..d8d20c078dd
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/atbegshi-test3.tex
@@ -0,0 +1,75 @@
+%%
+%% This is file `atbegshi-test3.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% atbegshi.dtx (with options: `test3')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file atbegshi.dtx
+%% and the derived files
+%% atbegshi.sty, atbegshi.pdf, atbegshi.ins, atbegshi.drv,
+%% atbegshi-example.tex, atbegshi-test1.tex,
+%% atbegshi-test2.tex, atbegshi-test3.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{atbegshi-test3.tex}[2007/09/09 v1.6 Test file for LaTeX]
+\RequirePackage{color}
+\pagecolor{yellow}
+\documentclass[a5paper,showtrims]{memoir}
+\usepackage{atbegshi}
+\AtBeginShipout{%
+ \setbox\AtBeginShipoutBox=\vbox{%
+ \vbox to 0pt{%
+ \kern-1.5in %
+ \hbox to 0pt{%
+ \kern-1.5in %
+ \color{blue}%
+ \rule{1in}{1in}%
+ \hss
+ }%
+ \vss
+ }%
+ \hrule
+ \hbox{\vrule\box\AtBeginShipoutBox\vrule}%
+ \hrule
+ }%
+}
+\usepackage{eso-pic}
+\makeatletter
+\@EveryShipout@Init
+\let\@EveryShipout@Init\relax
+\makeatother
+\AddToShipoutPicture{%
+ \hspace{.52\paperwidth}%
+ \colorbox{cyan}{%
+ \rule{0mm}{\paperheight}%
+ \hspace{.48\paperwidth}%
+ }%
+}
+\expandafter\let\csname ver@crop.sty\endcsname\relax
+\usepackage[color=red,cross,a4,center]{crop}
+\begin{document}
+\shipout\null
+\shipout\box\csname voidb@x\endcsname
+\section{Hello World}
+\end{document}
+\endinput
+%%
+%% End of file `atbegshi-test3.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/atbegshi.pdf b/Master/texmf-dist/doc/latex/oberdiek/atbegshi.pdf
index 43db6883a7c..e514d3da4ad 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/atbegshi.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/atbegshi.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/atenddvi.pdf b/Master/texmf-dist/doc/latex/oberdiek/atenddvi.pdf
index bb6f440dc8b..c03fe6d863a 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/atenddvi.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/atenddvi.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/attachfile2.pdf b/Master/texmf-dist/doc/latex/oberdiek/attachfile2.pdf
index a3d361aeec5..5b1c5a51921 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/attachfile2.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/attachfile2.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/auxhook.pdf b/Master/texmf-dist/doc/latex/oberdiek/auxhook.pdf
index 2336e1dba84..df9b3d31017 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/auxhook.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/auxhook.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/bmpsize.pdf b/Master/texmf-dist/doc/latex/oberdiek/bmpsize.pdf
index d300b3ebe0c..38a9d015985 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/bmpsize.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/bmpsize.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/bookmark.pdf b/Master/texmf-dist/doc/latex/oberdiek/bookmark.pdf
index 26d7ca19070..bc3a7579cd7 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/bookmark.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/bookmark.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/catchfile-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/catchfile-test1.tex
index dfc71ac43e0..db2fbc18b9e 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/catchfile-test1.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/catchfile-test1.tex
@@ -25,31 +25,50 @@
%% This work consists of the main source file catchfile.dtx
%% and the derived files
%% catchfile.sty, catchfile.pdf, catchfile.ins, catchfile.drv,
-%% catchfile-test1.tex, catchfile-test2.tex.
+%% catchfile-test1.tex, catchfile-test2.tex,
+%% catchfile-test3.tex.
%%
-\NeedsTeXFormat{LaTeX2e}
-\nofiles
-\listfiles
-\documentclass{minimal}
-\usepackage{catchfile}[2007/05/30]
-\makeatletter
-\def\mysetup{%
- \let\do\@makeother
- \dospecials
-}
-\makeatother
-\begin{document}
-
-\CatchFileDef\contents{catchfile.sty}\mysetup
-\typeout{\meaning\contents}
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
-\CatchFileEdef\contents{catchfile.sty}{%
- \mysetup
- \def\par{^^J}%
- \obeylines
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input catchfile.sty\relax
+ \RestoreCatcodes
}
-\typeout{\contents}
-\end{document}
+\Test
+\csname @@end\endcsname
+\end
\endinput
%%
%% End of file `catchfile-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/catchfile-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/catchfile-test2.tex
index 3318eda5863..c3d195fb607 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/catchfile-test2.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/catchfile-test2.tex
@@ -25,31 +25,32 @@
%% This work consists of the main source file catchfile.dtx
%% and the derived files
%% catchfile.sty, catchfile.pdf, catchfile.ins, catchfile.drv,
-%% catchfile-test1.tex, catchfile-test2.tex.
+%% catchfile-test1.tex, catchfile-test2.tex,
+%% catchfile-test3.tex.
%%
-\def\msg#{\immediate\write16}
-\newlinechar=10 %
-\input catchfile.sty\relax
-
+\NeedsTeXFormat{LaTeX2e}
+\nofiles
+\listfiles
+\documentclass{minimal}
+\usepackage{catchfile}[2007/09/09]
+\makeatletter
\def\mysetup{%
- \def\do##1{%
- \catcode`##1=12\relax
- }%
+ \let\do\@makeother
\dospecials
}
+\makeatother
+\begin{document}
\CatchFileDef\contents{catchfile.sty}\mysetup
-\msg{\meaning\contents}
+\typeout{\meaning\contents}
\CatchFileEdef\contents{catchfile.sty}{%
\mysetup
\def\par{^^J}%
\obeylines
}
-\msg{\contents}
-
-\csname @@end\endcsname
-\end
+\typeout{\contents}
+\end{document}
\endinput
%%
%% End of file `catchfile-test2.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/catchfile-test3.tex b/Master/texmf-dist/doc/latex/oberdiek/catchfile-test3.tex
new file mode 100644
index 00000000000..b5344616da6
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/catchfile-test3.tex
@@ -0,0 +1,56 @@
+%%
+%% This is file `catchfile-test3.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% catchfile.dtx (with options: `test3')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file catchfile.dtx
+%% and the derived files
+%% catchfile.sty, catchfile.pdf, catchfile.ins, catchfile.drv,
+%% catchfile-test1.tex, catchfile-test2.tex,
+%% catchfile-test3.tex.
+%%
+\def\msg#{\immediate\write16}
+\newlinechar=10 %
+\input catchfile.sty\relax
+
+\def\mysetup{%
+ \def\do##1{%
+ \catcode`##1=12\relax
+ }%
+ \dospecials
+}
+
+\CatchFileDef\contents{catchfile.sty}\mysetup
+\msg{\meaning\contents}
+
+\CatchFileEdef\contents{catchfile.sty}{%
+ \mysetup
+ \def\par{^^J}%
+ \obeylines
+}
+\msg{\contents}
+
+\csname @@end\endcsname
+\end
+\endinput
+%%
+%% End of file `catchfile-test3.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/catchfile.pdf b/Master/texmf-dist/doc/latex/oberdiek/catchfile.pdf
index df773d5741f..3a35aacfec7 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/catchfile.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/catchfile.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/centernot.pdf b/Master/texmf-dist/doc/latex/oberdiek/centernot.pdf
index 989486d6012..20dd81068b3 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/centernot.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/centernot.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/chemarr.pdf b/Master/texmf-dist/doc/latex/oberdiek/chemarr.pdf
index 77cc4136ab6..e6dfd612014 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/chemarr.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/chemarr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/classlist.pdf b/Master/texmf-dist/doc/latex/oberdiek/classlist.pdf
index 3e25dcf907a..2004fb73c0c 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/classlist.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/classlist.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/colonequals.pdf b/Master/texmf-dist/doc/latex/oberdiek/colonequals.pdf
index 05f6c8584f2..878227378f8 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/colonequals.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/colonequals.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/dvipscol.pdf b/Master/texmf-dist/doc/latex/oberdiek/dvipscol.pdf
index bfabaa232fa..8e4dc085b94 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/dvipscol.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/dvipscol.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/embedfile-example-plain.tex b/Master/texmf-dist/doc/latex/oberdiek/embedfile-example-plain.tex
index 4b8bba0c252..f32ec34c201 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/embedfile-example-plain.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/embedfile-example-plain.tex
@@ -25,7 +25,9 @@
%% This work consists of the main source file embedfile.dtx
%% and the derived files
%% embedfile.sty, embedfile.pdf, embedfile.ins, embedfile.drv,
-%% dtx-attach.sty, embedfile-example-plain.tex.
+%% dtx-attach.sty, embedfile-example-plain.tex,
+%% embedfile-test1.tex, embedfile-test2.tex,
+%% embedfile-test3.tex.
%%
% Load packages
\input miniltx
diff --git a/Master/texmf-dist/doc/latex/oberdiek/embedfile-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/embedfile-test1.tex
new file mode 100644
index 00000000000..97e77f68cd2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/embedfile-test1.tex
@@ -0,0 +1,75 @@
+%%
+%% This is file `embedfile-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% embedfile.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2006, 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file embedfile.dtx
+%% and the derived files
+%% embedfile.sty, embedfile.pdf, embedfile.ins, embedfile.drv,
+%% dtx-attach.sty, embedfile-example-plain.tex,
+%% embedfile-test1.tex, embedfile-test2.tex,
+%% embedfile-test3.tex.
+%%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input embedfile.sty\relax
+ \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
+\end
+\endinput
+%%
+%% End of file `embedfile-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/embedfile-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/embedfile-test2.tex
new file mode 100644
index 00000000000..3ddfb6eaa83
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/embedfile-test2.tex
@@ -0,0 +1,44 @@
+%%
+%% This is file `embedfile-test2.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% embedfile.dtx (with options: `test2')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2006, 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file embedfile.dtx
+%% and the derived files
+%% embedfile.sty, embedfile.pdf, embedfile.ins, embedfile.drv,
+%% dtx-attach.sty, embedfile-example-plain.tex,
+%% embedfile-test1.tex, embedfile-test2.tex,
+%% embedfile-test3.tex.
+%%
+\input embedfile.sty\relax
+\embedfile[%
+ stringmethod=escape,%
+ mimetype=plain/text,%
+ desc={LaTeX docstrip source archive for package `embedfile'}%
+]{embedfile.dtx}
+\nopagenumbers
+Test (plain-\TeX): {\tt embedfile.dtx} should be embedded.%
+\embedfilefinish
+\bye
+\endinput
+%%
+%% End of file `embedfile-test2.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/embedfile-test3.tex b/Master/texmf-dist/doc/latex/oberdiek/embedfile-test3.tex
new file mode 100644
index 00000000000..b04fe415556
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/embedfile-test3.tex
@@ -0,0 +1,43 @@
+%%
+%% This is file `embedfile-test3.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% embedfile.dtx (with options: `test3')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2006, 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file embedfile.dtx
+%% and the derived files
+%% embedfile.sty, embedfile.pdf, embedfile.ins, embedfile.drv,
+%% dtx-attach.sty, embedfile-example-plain.tex,
+%% embedfile-test1.tex, embedfile-test2.tex,
+%% embedfile-test3.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\let\SavedJobname\jobname
+\def\jobname{embedfile}
+\RequirePackage{dtx-attach}[2007/09/09]
+\let\jobname\SavedJobname
+\documentclass{minimal}
+\begin{document}
+ Test (\LaTeX): \texttt{embedfile.dtx} should be embedded.%
+\end{document}
+\endinput
+%%
+%% End of file `embedfile-test3.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/embedfile.pdf b/Master/texmf-dist/doc/latex/oberdiek/embedfile.pdf
index cb373c95b9e..16879df7209 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/embedfile.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/embedfile.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/engord-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/engord-test1.tex
new file mode 100644
index 00000000000..329ce58e477
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/engord-test1.tex
@@ -0,0 +1,74 @@
+%%
+%% This is file `engord-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% engord.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2000, 2003, 2006, 2007 by
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file engord.dtx
+%% and the derived files
+%% engord.sty, engord.pdf, engord.ins, engord.drv,
+%% engord-test1.tex.
+%%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input engord.sty\relax
+ \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
+\end
+\endinput
+%%
+%% End of file `engord-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/engord.pdf b/Master/texmf-dist/doc/latex/oberdiek/engord.pdf
index cd26e0fd41a..491fe2b0317 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/engord.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/engord.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/epstopdf.pdf b/Master/texmf-dist/doc/latex/oberdiek/epstopdf.pdf
index 9839a87e8a6..473b244bf42 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/epstopdf.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/epstopdf.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test1.tex
index 0ec94b6e822..6812abb9a5c 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test1.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test1.tex
@@ -25,17 +25,49 @@
%% This work consists of the main source file etexcmds.dtx
%% and the derived files
%% etexcmds.sty, etexcmds.pdf, etexcmds.ins, etexcmds.drv,
-%% etexcmds-test1.tex, etexcmds-test2.tex, etexcmds-test3.tex.
+%% etexcmds-test1.tex, etexcmds-test2.tex, etexcmds-test3.tex,
+%% etexcmds-test4.tex.
%%
-\immediate\write16{etexcmds-test1.tex: test file for plainTeX}
-\input etexcmds.sty\relax
\catcode`\@=11 %
-\edef\x{\string\unexpanded}
-\edef\y{\meaning\etex@unexpanded}
-\ifx\x\y
-\else
- \@PackageError{etexcmds-test1}{Test failed}\@ehc
-\fi
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input etexcmds.sty\relax
+ \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
\end
\endinput
%%
diff --git a/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test2.tex
index 8fd244c79d2..02e5af69e34 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test2.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test2.tex
@@ -25,19 +25,19 @@
%% This work consists of the main source file etexcmds.dtx
%% and the derived files
%% etexcmds.sty, etexcmds.pdf, etexcmds.ins, etexcmds.drv,
-%% etexcmds-test1.tex, etexcmds-test2.tex, etexcmds-test3.tex.
+%% etexcmds-test1.tex, etexcmds-test2.tex, etexcmds-test3.tex,
+%% etexcmds-test4.tex.
%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{etexcmds-test2.tex}[2007/05/06 v1.0 Test file for LaTeX]
-\RequirePackage{etexcmds}
-\makeatletter
+\immediate\write16{etexcmds-test2.tex: test file for plainTeX}
+\input etexcmds.sty\relax
+\catcode`\@=11 %
\edef\x{\string\unexpanded}
\edef\y{\meaning\etex@unexpanded}
\ifx\x\y
\else
\@PackageError{etexcmds-test2}{Test failed}\@ehc
\fi
-\stop
+\end
\endinput
%%
%% End of file `etexcmds-test2.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test3.tex b/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test3.tex
index 1aacdd3fb4d..da5c70f24ba 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test3.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test3.tex
@@ -25,26 +25,18 @@
%% This work consists of the main source file etexcmds.dtx
%% and the derived files
%% etexcmds.sty, etexcmds.pdf, etexcmds.ins, etexcmds.drv,
-%% etexcmds-test1.tex, etexcmds-test2.tex, etexcmds-test3.tex.
+%% etexcmds-test1.tex, etexcmds-test2.tex, etexcmds-test3.tex,
+%% etexcmds-test4.tex.
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{etexcmds-test3.tex}[2007/05/06 v1.0 Test file for LaTeX]
-\documentclass{article}
-\usepackage{m-pictex}
-\usepackage{m-ch-de}
-\usepackage{etexcmds}
+\ProvidesFile{etexcmds-test3.tex}[2007/09/09 v1.1 Test file for LaTeX]
+\RequirePackage{etexcmds}
\makeatletter
-\ifetex@unexpanded
- \edef\x{\string\unexpanded}%
- \edef\y{\meaning\etex@unexpanded}%
- \ifx\x\y
- \else
- \@PackageWarningNoLine{etexcmds-test3}{Test failed}%
- \fi
+\edef\x{\string\unexpanded}
+\edef\y{\meaning\etex@unexpanded}
+\ifx\x\y
\else
- \@PackageWarningNoLine{etexcmds-test3}{%
- Test failed because of ConTeXt%
- }%
+ \@PackageError{etexcmds-test3}{Test failed}\@ehc
\fi
\stop
\endinput
diff --git a/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test4.tex b/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test4.tex
new file mode 100644
index 00000000000..d17a4c7dd95
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/etexcmds-test4.tex
@@ -0,0 +1,53 @@
+%%
+%% This is file `etexcmds-test4.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% etexcmds.dtx (with options: `test4')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file etexcmds.dtx
+%% and the derived files
+%% etexcmds.sty, etexcmds.pdf, etexcmds.ins, etexcmds.drv,
+%% etexcmds-test1.tex, etexcmds-test2.tex, etexcmds-test3.tex,
+%% etexcmds-test4.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{etexcmds-test4.tex}[2007/09/09 v1.1 Test file for LaTeX]
+\documentclass{article}
+\usepackage{m-pictex}
+\usepackage{m-ch-de}
+\usepackage{etexcmds}
+\makeatletter
+\ifetex@unexpanded
+ \edef\x{\string\unexpanded}%
+ \edef\y{\meaning\etex@unexpanded}%
+ \ifx\x\y
+ \else
+ \@PackageWarningNoLine{etexcmds-test4}{Test failed}%
+ \fi
+\else
+ \@PackageWarningNoLine{etexcmds-test4}{%
+ Test failed because of ConTeXt%
+ }%
+\fi
+\stop
+\endinput
+%%
+%% End of file `etexcmds-test4.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/etexcmds.pdf b/Master/texmf-dist/doc/latex/oberdiek/etexcmds.pdf
index c064896dfdb..df64101c42d 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/etexcmds.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/etexcmds.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/flags.pdf b/Master/texmf-dist/doc/latex/oberdiek/flags.pdf
index edbd0669afa..dca6f662d3d 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/flags.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/flags.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/grffile.pdf b/Master/texmf-dist/doc/latex/oberdiek/grffile.pdf
index 75bd514a8ff..4300cbcfd67 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/grffile.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/grffile.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/holtxdoc.pdf b/Master/texmf-dist/doc/latex/oberdiek/holtxdoc.pdf
index 213da2bcde7..f0bd0b4382d 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/holtxdoc.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/holtxdoc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/hycolor.pdf b/Master/texmf-dist/doc/latex/oberdiek/hycolor.pdf
index 98d24cfb311..886869ff5fd 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/hycolor.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/hycolor.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/hypbmsec.pdf b/Master/texmf-dist/doc/latex/oberdiek/hypbmsec.pdf
index a7dd4a13dfa..0f11ac7e7f1 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/hypbmsec.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/hypbmsec.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/hypcap.pdf b/Master/texmf-dist/doc/latex/oberdiek/hypcap.pdf
index 8a2db6f0c6f..e0eff055795 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/hypcap.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/hypcap.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/hypdestopt.pdf b/Master/texmf-dist/doc/latex/oberdiek/hypdestopt.pdf
index 2819ccc514e..f07ab610914 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/hypdestopt.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/hypdestopt.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/hypdoc.pdf b/Master/texmf-dist/doc/latex/oberdiek/hypdoc.pdf
index 54a583dc60e..cc9da5e337d 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/hypdoc.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/hypdoc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/ifdraft.pdf b/Master/texmf-dist/doc/latex/oberdiek/ifdraft.pdf
index f7de5721375..5c8482788c0 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/ifdraft.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/ifdraft.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/iflang-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/iflang-test1.tex
index fe588f78abd..19fe407c9f9 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/iflang-test1.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/iflang-test1.tex
@@ -25,48 +25,50 @@
%% This work consists of the main source file iflang.dtx
%% and the derived files
%% iflang.sty, iflang.pdf, iflang.ins, iflang.drv,
-%% iflang-test1.tex, iflang-test2.tex, iflang-test3.tex.
+%% iflang-test1.tex, iflang-test2.tex, iflang-test3.tex,
+%% iflang-test4.tex, iflang-test5.tex.
%%
-\NeedsTeXFormat{LaTeX2e}
-\nofiles
-\documentclass{minimal}
-\usepackage{qstest}
-\IncludeTests{*}
-\LogTests{log}{*}{*}
-\usepackage[english,naustrian,ngerman]{babel}
-\usepackage{iflang}
-\begin{document}
-\begin{qstest}{IfLanguagePatterns}{language, pattern}
- \def\test#1#2{%
- \Expect*{\IfLanguagePatterns{#1}{true}{false}}{#2}%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
}%
- \test{ngerman}{true}%
- \test{naustrian}{true}%
- \test{english}{false}%
- \test{foobar}{false}%
-\end{qstest}
-\begin{qstest}{IfLanguageName}{language, name}
- \def\test#1#2{%
- \Expect*{\IfLanguageName{#1}{true}{false}}{#2}%
- }%
- \test{ngerman}{true}%
- \test{naustrian}{false}%
- \selectlanguage{naustrian}%
- \test{ngerman}{false}%
- \test{naustrian}{true}%
- \test{foobar}{false}%
-\end{qstest}
-\begin{qstest}{IfDefined}{defined}
- \makeatletter
- \let\foobar\relax
- \Expect*{\IfLang@IfDefined{foobar}{true}{false}}{false}%
- \Expect*{\ifx\foobar\relax true\else false\fi}{true}%
- \let\foobar\UNDEFINED
- \Expect*{\IfLang@IfDefined{foobar}{true}{false}}{false}%
- \Expect*{\ifx\foobar\relax true\else false\fi}{false}%
- \Expect*{\ifx\foobar\UNDEFINED true\else false\fi}{true}%
-\end{qstest}
-\end{document}
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input iflang.sty\relax
+ \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
+\end
\endinput
%%
%% End of file `iflang-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/iflang-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/iflang-test2.tex
index 93afe55d192..6dc72d704eb 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/iflang-test2.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/iflang-test2.tex
@@ -25,41 +25,83 @@
%% This work consists of the main source file iflang.dtx
%% and the derived files
%% iflang.sty, iflang.pdf, iflang.ins, iflang.drv,
-%% iflang-test1.tex, iflang-test2.tex, iflang-test3.tex.
+%% iflang-test1.tex, iflang-test2.tex, iflang-test3.tex,
+%% iflang-test4.tex, iflang-test5.tex.
%%
-%% Format `etex' based on `language.def'
-\input iflang.sty
-\catcode64=12
-
-\def\TestGeneric#1#2#3{%
- \begingroup
- \edef\x{#1{#2}{true}{false}}%
- \edef\y{#3}%
- \ifx\x\y
- \else
- \errmessage{Failed test: \string#1{#2} <> #3}%
- \fi
- \endgroup
-}
-\def\TestPatterns{\TestGeneric\IfLanguagePatterns}
-\def\TestName{\TestGeneric\IfLanguageName}
-
-\TestPatterns{USenglish}{true}
-\TestPatterns{ngerman}{false}
-
-\TestName{USenglish}{true}
-\TestName{ngerman}{false}
-
-\uselanguage{ngerman}
-
-\TestPatterns{USenglish}{false}
-\TestPatterns{ngerman}{true}
-
-\TestName{USenglish}{false}
-\TestName{ngerman}{true}
-
-\csname @@end\endcsname
-\end
+\NeedsTeXFormat{LaTeX2e}
+\nofiles
+\documentclass{minimal}
+\usepackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+\usepackage[english,naustrian,ngerman]{babel}
+\usepackage{iflang}
+\begin{document}
+\begin{qstest}{IfLanguagePatterns}{language, pattern}
+ \def\test#1#2{%
+ \Expect*{\IfLanguagePatterns{#1}{true}{false}}{#2}%
+ }%
+ \test{ngerman}{true}%
+ \test{naustrian}{true}%
+ \test{english}{false}%
+ \test{foobar}{false}%
+\end{qstest}
+\begin{qstest}{IfLanguageName}{language, name}
+ \def\test#1#2{%
+ \Expect*{\IfLanguageName{#1}{true}{false}}{#2}%
+ }%
+ \test{ngerman}{true}%
+ \test{naustrian}{false}%
+ \selectlanguage{naustrian}%
+ \test{ngerman}{false}%
+ \test{naustrian}{true}%
+ \test{foobar}{false}%
+ %
+ \def\languagename{naustrian}%
+ \test{naustrian}{true}%
+ \test{ngerman}{false}%
+ %
+ \edef\languagename{\string naustrian}%
+ \test{naustrian}{true}%
+ \test{ngerman}{false}%
+ %
+ \def\languagename{naustrian}%
+ \makeatletter
+ \@onelevel@sanitize\languagename
+ \test{naustrian}{true}%
+ \test{ngerman}{false}%
+ %
+ \def\languagename{naustrian}%
+ \def\xaustrian{naustrian}%
+ \def\xgerman{ngerman}%
+ \test{\xaustrian}{true}%
+ \test{\xgerman}{false}%
+ %
+ \def\languagename{\xaustrian}%
+ \test{naustrian}{true}%
+ \test{ngerman}{false}%
+ \test{\xaustrian}{true}%
+ \test{\xgerman}{false}%
+ \test{\languagename}{true}%
+ \test{\languagename\space}{false}%
+ %
+ \def\languagename{\empty\xaustrian\empty}%
+ \test{naustrian}{true}%
+ \test{ngerman}{false}%
+ \test{\empty\xaustrian\empty}{true}%
+ \test{\empty\xgerman\empty}{false}%
+\end{qstest}
+\begin{qstest}{IfDefined}{defined}
+ \makeatletter
+ \let\foobar\relax
+ \Expect*{\IfLang@IfDefined{foobar}{true}{false}}{false}%
+ \Expect*{\ifx\foobar\relax true\else false\fi}{true}%
+ \let\foobar\UNDEFINED
+ \Expect*{\IfLang@IfDefined{foobar}{true}{false}}{false}%
+ \Expect*{\ifx\foobar\relax true\else false\fi}{false}%
+ \Expect*{\ifx\foobar\UNDEFINED true\else false\fi}{true}%
+\end{qstest}
+\end{document}
\endinput
%%
%% End of file `iflang-test2.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/iflang-test3.tex b/Master/texmf-dist/doc/latex/oberdiek/iflang-test3.tex
index 9c62d2115a1..667bd85afac 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/iflang-test3.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/iflang-test3.tex
@@ -25,68 +25,84 @@
%% This work consists of the main source file iflang.dtx
%% and the derived files
%% iflang.sty, iflang.pdf, iflang.ins, iflang.drv,
-%% iflang-test1.tex, iflang-test2.tex, iflang-test3.tex.
+%% iflang-test1.tex, iflang-test2.tex, iflang-test3.tex,
+%% iflang-test4.tex, iflang-test5.tex.
%%
-%% Format `tex' (vanilla plain-TeX)
-\let\ifcsname\UNDEFINED
-\let\pdfstrcmp\UNDEFINED
-\input iflang.sty
-\catcode64=11
-
-\def\TestDefined#1{%
- \IfLang@IfDefined{foobar}{}{}%
- \ifx\foobar#1%
- \else
- \errmessage{Failed test: \string\foobar <> \string#1}%
- \fi
-}
-\let\foobar\relax
-\TestDefined\relax
-\let\foobar\UNDEFINED
-\TestDefined\relax
-
-\def\strip@prefix#1>{}
-\def\@onelevel@sanitize#1{%
- \edef#1{\expandafter\strip@prefix\meaning#1}%
-}
-\def\TestCompare#1#2#3{%
- \begingroup
- \edef\x{%
- \if\IfLang@StrEqual{#1}{#2}%
- true%
- \else
- false%
- \fi
- }%
- \def\expect{#3}%
- \ifx\x\expect
- \else
- \def\a{#1}%
- \@onelevel@sanitize\a
- \def\b{#2}%
- \@onelevel@sanitize\b
- \errmessage{Failed test: `\a'='\b' <> \expect}%
- \fi
- \endgroup
-}
-\TestCompare{junk}{junk}{true}
-\TestCompare{}{}{true}
-\TestCompare{a}{b}{false}
-\TestCompare{aa}{bb}{false}
-\def\a{ax}
-\def\b{bx}
-\def\c{\a\b}
-\def\d{\c\b}
-\def\exch#1#2{#2#1}
-\def\gobble#1{}
-\TestCompare{\gobble a}{}{true}
-\TestCompare{}{\gobble a}{true}
-\TestCompare{a\exch xyb}{ayxb}{true}
-\TestCompare{\c}{\c}{true}
-\TestCompare{\d}{\c\b}{true}
-
-\csname @@end\endcsname
-\end
+\NeedsTeXFormat{LaTeX2e}
+\let\pdfstrcmp\relax
+\nofiles
+\documentclass{minimal}
+\usepackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+\usepackage[english,naustrian,ngerman]{babel}
+\usepackage{iflang}
+\begin{document}
+\begin{qstest}{IfLanguagePatterns}{language, pattern}
+ \def\test#1#2{%
+ \Expect*{\IfLanguagePatterns{#1}{true}{false}}{#2}%
+ }%
+ \test{ngerman}{true}%
+ \test{naustrian}{true}%
+ \test{english}{false}%
+ \test{foobar}{false}%
+\end{qstest}
+\begin{qstest}{IfLanguageName}{language, name}
+ \def\test#1#2{%
+ \Expect*{\IfLanguageName{#1}{true}{false}}{#2}%
+ }%
+ \test{ngerman}{true}%
+ \test{naustrian}{false}%
+ \selectlanguage{naustrian}%
+ \test{ngerman}{false}%
+ \test{naustrian}{true}%
+ \test{foobar}{false}%
+ %
+ \def\languagename{naustrian}%
+ \test{naustrian}{true}%
+ \test{ngerman}{false}%
+ %
+ \edef\languagename{\string naustrian}%
+ \test{naustrian}{true}%
+ \test{ngerman}{false}%
+ %
+ \def\languagename{naustrian}%
+ \makeatletter
+ \@onelevel@sanitize\languagename
+ \test{naustrian}{true}%
+ \test{ngerman}{false}%
+ %
+ \def\languagename{naustrian}%
+ \def\xaustrian{naustrian}%
+ \def\xgerman{ngerman}%
+ \test{\xaustrian}{true}%
+ \test{\xgerman}{false}%
+ %
+ \def\languagename{\xaustrian}%
+ \test{naustrian}{true}%
+ \test{ngerman}{false}%
+ \test{\xaustrian}{true}%
+ \test{\xgerman}{false}%
+ \test{\languagename}{true}%
+ \test{\languagename\space}{false}%
+ %
+ \def\languagename{\empty\xaustrian\empty}%
+ \test{naustrian}{true}%
+ \test{ngerman}{false}%
+ \test{\empty\xaustrian\empty}{true}%
+ \test{\empty\xgerman\empty}{false}%
+\end{qstest}
+\begin{qstest}{IfDefined}{defined}
+ \makeatletter
+ \let\foobar\relax
+ \Expect*{\IfLang@IfDefined{foobar}{true}{false}}{false}%
+ \Expect*{\ifx\foobar\relax true\else false\fi}{true}%
+ \let\foobar\UNDEFINED
+ \Expect*{\IfLang@IfDefined{foobar}{true}{false}}{false}%
+ \Expect*{\ifx\foobar\relax true\else false\fi}{false}%
+ \Expect*{\ifx\foobar\UNDEFINED true\else false\fi}{true}%
+\end{qstest}
+\end{document}
\endinput
%%
%% End of file `iflang-test3.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/iflang-test4.tex b/Master/texmf-dist/doc/latex/oberdiek/iflang-test4.tex
new file mode 100644
index 00000000000..b89af71f3dd
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/iflang-test4.tex
@@ -0,0 +1,66 @@
+%%
+%% This is file `iflang-test4.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% iflang.dtx (with options: `test4')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file iflang.dtx
+%% and the derived files
+%% iflang.sty, iflang.pdf, iflang.ins, iflang.drv,
+%% iflang-test1.tex, iflang-test2.tex, iflang-test3.tex,
+%% iflang-test4.tex, iflang-test5.tex.
+%%
+%% Format `etex' based on `language.def'
+\input iflang.sty
+\catcode64=12
+
+\def\TestGeneric#1#2#3{%
+ \begingroup
+ \edef\x{#1{#2}{true}{false}}%
+ \edef\y{#3}%
+ \ifx\x\y
+ \else
+ \errmessage{Failed test: \string#1{#2} <> #3}%
+ \fi
+ \endgroup
+}
+\def\TestPatterns{\TestGeneric\IfLanguagePatterns}
+\def\TestName{\TestGeneric\IfLanguageName}
+
+\TestPatterns{USenglish}{true}
+\TestPatterns{ngerman}{false}
+
+\TestName{USenglish}{true}
+\TestName{ngerman}{false}
+
+\uselanguage{ngerman}
+
+\TestPatterns{USenglish}{false}
+\TestPatterns{ngerman}{true}
+
+\TestName{USenglish}{false}
+\TestName{ngerman}{true}
+
+\csname @@end\endcsname
+\end
+\endinput
+%%
+%% End of file `iflang-test4.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/iflang-test5.tex b/Master/texmf-dist/doc/latex/oberdiek/iflang-test5.tex
new file mode 100644
index 00000000000..aa5d69fbdc4
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/iflang-test5.tex
@@ -0,0 +1,93 @@
+%%
+%% This is file `iflang-test5.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% iflang.dtx (with options: `test5')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file iflang.dtx
+%% and the derived files
+%% iflang.sty, iflang.pdf, iflang.ins, iflang.drv,
+%% iflang-test1.tex, iflang-test2.tex, iflang-test3.tex,
+%% iflang-test4.tex, iflang-test5.tex.
+%%
+%% Format `tex' (vanilla plain-TeX)
+\let\ifcsname\UNDEFINED
+\let\pdfstrcmp\UNDEFINED
+\input iflang.sty
+\catcode64=11
+
+\def\TestDefined#1{%
+ \IfLang@IfDefined{foobar}{}{}%
+ \ifx\foobar#1%
+ \else
+ \errmessage{Failed test: \string\foobar <> \string#1}%
+ \fi
+}
+\let\foobar\relax
+\TestDefined\relax
+\let\foobar\UNDEFINED
+\TestDefined\relax
+
+\def\strip@prefix#1>{}
+\def\@onelevel@sanitize#1{%
+ \edef#1{\expandafter\strip@prefix\meaning#1}%
+}
+\def\TestCompare#1#2#3{%
+ \begingroup
+ \edef\x{%
+ \if\IfLang@StrEqual{#1}{#2}%
+ true%
+ \else
+ false%
+ \fi
+ }%
+ \def\expect{#3}%
+ \ifx\x\expect
+ \else
+ \def\a{#1}%
+ \@onelevel@sanitize\a
+ \def\b{#2}%
+ \@onelevel@sanitize\b
+ \errmessage{Failed test: `\a'='\b' <> \expect}%
+ \fi
+ \endgroup
+}
+\TestCompare{junk}{junk}{true}
+\TestCompare{}{}{true}
+\TestCompare{a}{b}{false}
+\TestCompare{aa}{bb}{false}
+\def\a{ax}
+\def\b{bx}
+\def\c{\a\b}
+\def\d{\c\b}
+\def\exch#1#2{#2#1}
+\def\gobble#1{}
+\TestCompare{\gobble a}{}{true}
+\TestCompare{}{\gobble a}{true}
+\TestCompare{a\exch xyb}{ayxb}{true}
+\TestCompare{\c}{\c}{true}
+\TestCompare{\d}{\c\b}{true}
+
+\csname @@end\endcsname
+\end
+\endinput
+%%
+%% End of file `iflang-test5.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/iflang.pdf b/Master/texmf-dist/doc/latex/oberdiek/iflang.pdf
index b763fbb306f..114445b261a 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/iflang.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/iflang.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/ifpdf-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/ifpdf-test1.tex
new file mode 100644
index 00000000000..a34a9e296e8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/ifpdf-test1.tex
@@ -0,0 +1,74 @@
+%%
+%% This is file `ifpdf-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ifpdf.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2001, 2005, 2006 by
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file ifpdf.dtx
+%% and the derived files
+%% ifpdf.sty, ifpdf.pdf, ifpdf.ins, ifpdf.drv,
+%% ifpdf-test1.tex.
+%%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input ifpdf.sty\relax
+ \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
+\end
+\endinput
+%%
+%% End of file `ifpdf-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/ifpdf.pdf b/Master/texmf-dist/doc/latex/oberdiek/ifpdf.pdf
index ea397c00459..d86aac82fac 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/ifpdf.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/ifpdf.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/ifvtex-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/ifvtex-test1.tex
new file mode 100644
index 00000000000..3f8329bdbf5
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/ifvtex-test1.tex
@@ -0,0 +1,74 @@
+%%
+%% This is file `ifvtex-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ifvtex.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2001, 2006, 2007 by
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file ifvtex.dtx
+%% and the derived files
+%% ifvtex.sty, ifvtex.pdf, ifvtex.ins, ifvtex.drv,
+%% ifvtex-test1.tex.
+%%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input ifvtex.sty\relax
+ \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
+\end
+\endinput
+%%
+%% End of file `ifvtex-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/ifvtex.pdf b/Master/texmf-dist/doc/latex/oberdiek/ifvtex.pdf
index fecbaf14fa2..13118cfc8eb 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/ifvtex.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/ifvtex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/infwarerr-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/infwarerr-test1.tex
index 50561278fd1..39fe9a2f27f 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/infwarerr-test1.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/infwarerr-test1.tex
@@ -25,188 +25,49 @@
%% This work consists of the main source file infwarerr.dtx
%% and the derived files
%% infwarerr.sty, infwarerr.pdf, infwarerr.ins, infwarerr.drv,
-%% infwarerr-test1.tex, infwarerr-test2.tex.
+%% infwarerr-test1.tex, infwarerr-test2.tex,
+%% infwarerr-test3.tex.
%%
-\let\PackageInfo\relax
-\input infwarerr.sty\relax
-\let\OrgWrite\write
-\chardef\WriteUnused=16 %
-\def\msg#{\immediate\OrgWrite\WriteUnused}
-\msg{File: infwarerr-test1.tex 2007/06/14 v1.1 Test file for plain-TeX}
-\catcode64=11 %
-\def\pkgname{PACKAGE}
-\def\clsname{CLASS}
-\def\msgtext{MESSAGE\MessageBreak SECOND LINE}
-\def\hlptext{HELP\MessageBreak SECOND LINE}
-
-\let\OrgWrite\write
-\let\OrgErrMessage\errmessage
-
-\def\write#1#{%
- \@write{#1}%
-}
-\def\@write#1#2{%
- \OrgWrite#1{#2}%
- \xdef\WriteNum{\number#1}%
- \xdef\WriteText{#2}%
-}
-\def\TestFailed#1#2{%
- \OrgErrMessage{Test (\string#1) failed: #2}%
-}
-\def\TestWrite#1#2#3{%
- \ifnum\WriteNum=#2\relax
- \else
- \TestFailed#1{write stream number: \WriteNum <> #2}%
- \fi
- \begingroup
- \let~\space
- \edef\TestString{#3}%
- \ifx\WriteText\TestString
- \else
- \msg{}%
- \msg{[\WriteText]}%
- \msg{<>}%
- \msg{[#3]}% hash-ok
- \TestFailed#1{write text}%
- \fi
- \endgroup
-}
-\newtoks\ErrHelpToks
-\def\errmessage#1{%
- \global\ErrHelpToks=\expandafter{\the\errhelp}%
- \msg{**************** error message ****************}%
- \msg{! #1}%
- \msg{**************** help message *****************}%
- \msg{\the\errhelp}%
- \msg{***********************************************}%
- \xdef\ErrMessage{! #1}%
-}
-\def\TestInfo{%
- \@PackageInfo\pkgname\msgtext
- \TestWrite\@PackageInfo{-1}{%
- Package PACKAGE Info: MESSAGE^^J%
- (PACKAGE)~~~~~~~~~~~~~SECOND LINE on input line \the\inputlineno.%
- }%
- \@PackageInfoNoLine\pkgname\msgtext
- \TestWrite\@PackageInfoNoLine{-1}{%
- Package PACKAGE Info: MESSAGE^^J%
- (PACKAGE)~~~~~~~~~~~~~SECOND LINE.%
- }%
- \@ClassInfo\clsname\msgtext
- \TestWrite\@ClassInfo{-1}{%
- Class CLASS Info: MESSAGE^^J%
- (CLASS)~~~~~~~~~~~SECOND LINE on input line \the\inputlineno.%
- }%
- \@ClassInfoNoLine\clsname\msgtext
- \TestWrite\@ClassInfoNoLine{-1}{%
- Class CLASS Info: MESSAGE^^J%
- (CLASS)~~~~~~~~~~~SECOND LINE.%
- }%
-}
-\def\TestWarning{%
- \@PackageWarning\pkgname\msgtext
- \TestWrite\@PackageWarning\WriteUnused{%
- ^^J%
- Package PACKAGE Warning: MESSAGE^^J%
- (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE on input line \the\inputlineno.%
- ^^J%
- }%
- \@PackageWarningNoLine\pkgname\msgtext
- \TestWrite\@PackageWarningNoLine\WriteUnused{%
- ^^J%
- Package PACKAGE Warning: MESSAGE^^J%
- (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE.%
- ^^J%
- }%
- \@ClassWarning\clsname\msgtext
- \TestWrite\@ClassWarning\WriteUnused{%
- ^^J%
- Class CLASS Warning: MESSAGE^^J%
- (CLASS)~~~~~~~~~~~~~~SECOND LINE on input line \the\inputlineno.%
- ^^J%
- }%
- \@ClassWarningNoLine\clsname\msgtext
- \TestWrite\@ClassWarningNoLine\WriteUnused{%
- ^^J%
- Class CLASS Warning: MESSAGE^^J%
- (CLASS)~~~~~~~~~~~~~~SECOND LINE.%
- ^^J%
- }%
-}
-\def\TestError{%
- \def\plaindots{.^^J ...^^J}
- \@PackageError\pkgname\msgtext\hlptext
- \@TestError\@PackageError{%
- ! Package PACKAGE Error: MESSAGE^^J%
- (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE.^^J%
- ^^J%
- See the PACKAGE package documentation for explanation.^^J%
- Type~~H <return>~~for immediate help\plaindots
- }{%
- HELP^^J%
- SECOND LINE%
- }%
- \@ClassError\clsname\msgtext\hlptext
- \@TestError\@ClassError{%
- ! Class CLASS Error: MESSAGE^^J%
- (CLASS)~~~~~~~~~~~~~~SECOND LINE.^^J%
- ^^J%
- See the CLASS class documentation for explanation.^^J%
- Type~~H <return>~~for immediate help\plaindots
- }{%
- HELP^^J%
- SECOND LINE%
- }%
- \@PackageError\pkgname\msgtext\@ehc
- \@TestError\@PackageError{%
- ! Package PACKAGE Error: MESSAGE^^J%
- (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE.^^J%
- ^^J%
- See the PACKAGE package documentation for explanation.^^J%
- Type~~H <return>~~for immediate help\plaindots
- }{%
- Try typing~~<return>~~to proceed.^^J%
- If that doesn't work, type~~X <return>~~to quit.%
- }%
- \@PackageError\pkgname\msgtext\@ehd
- \@TestError\@PackageError{%
- ! Package PACKAGE Error: MESSAGE^^J%
- (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE.^^J%
- ^^J%
- See the PACKAGE package documentation for explanation.^^J%
- Type~~H <return>~~for immediate help\plaindots
- }{%
- You're in trouble here.~~Try typing~~<return>~~to proceed.^^J%
- If that doesn't work, type~~X <return>~~to quit.%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
}%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
}
-\def\@TestError#1#2#3{%
- \begingroup
- \let~\space
- \edef\x{#2}%
- \ifx\x\ErrMessage
- \else
- \msg{}%
- \msg{[\ErrMessage]}%
- \msg{<>}%
- \msg{[\x]}%
- \TestFailed#1{errmessage text}%
- \fi
- \edef\x{\the\ErrHelpToks}%
- \edef\y{#3}%
- \ifx\x\y
- \else
- \msg{}%
- \msg{[\the\ErrHelpToks]}%
- \msg{<>}%
- \msg{[\y]}%
- \TestFailed#1{errhelp text}%
- \fi
- \endgroup
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input infwarerr.sty\relax
+ \RestoreCatcodes
}
-\TestInfo
-\TestWarning
-\TestError
+\Test
+\csname @@end\endcsname
\end
\endinput
%%
diff --git a/Master/texmf-dist/doc/latex/oberdiek/infwarerr-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/infwarerr-test2.tex
index 642924a9737..e40eb3897ef 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/infwarerr-test2.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/infwarerr-test2.tex
@@ -25,15 +25,16 @@
%% This work consists of the main source file infwarerr.dtx
%% and the derived files
%% infwarerr.sty, infwarerr.pdf, infwarerr.ins, infwarerr.drv,
-%% infwarerr-test1.tex, infwarerr-test2.tex.
+%% infwarerr-test1.tex, infwarerr-test2.tex,
+%% infwarerr-test3.tex.
%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{infwarerr-test2.tex}[2007/06/14 v1.1 Test file for LaTeX]
-\RequirePackage{infwarerr}
-\makeatletter
+\let\PackageInfo\relax
+\input infwarerr.sty\relax
\let\OrgWrite\write
-\chardef\WriteUnused=\@unused
+\chardef\WriteUnused=16 %
\def\msg#{\immediate\OrgWrite\WriteUnused}
+\msg{File: infwarerr-test2.tex 2007/09/09 v1.2 Test file for plain-TeX}
+\catcode64=11 %
\def\pkgname{PACKAGE}
\def\clsname{CLASS}
\def\msgtext{MESSAGE\MessageBreak SECOND LINE}
@@ -134,8 +135,7 @@
}%
}
\def\TestError{%
- \let\write\OrgWrite
- \def\plaindots{}
+ \def\plaindots{.^^J ...^^J}
\@PackageError\pkgname\msgtext\hlptext
\@TestError\@PackageError{%
! Package PACKAGE Error: MESSAGE^^J%
@@ -185,8 +185,6 @@
\begingroup
\let~\space
\edef\x{#2}%
- \@onelevel@sanitize\x
- \@onelevel@sanitize\ErrMessage
\ifx\x\ErrMessage
\else
\msg{}%
@@ -210,7 +208,7 @@
\TestInfo
\TestWarning
\TestError
-\@@end
+\end
\endinput
%%
%% End of file `infwarerr-test2.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/infwarerr-test3.tex b/Master/texmf-dist/doc/latex/oberdiek/infwarerr-test3.tex
new file mode 100644
index 00000000000..4159934123d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/infwarerr-test3.tex
@@ -0,0 +1,217 @@
+%%
+%% This is file `infwarerr-test3.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% infwarerr.dtx (with options: `test3')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file infwarerr.dtx
+%% and the derived files
+%% infwarerr.sty, infwarerr.pdf, infwarerr.ins, infwarerr.drv,
+%% infwarerr-test1.tex, infwarerr-test2.tex,
+%% infwarerr-test3.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{infwarerr-test3.tex}[2007/09/09 v1.2 Test file for LaTeX]
+\RequirePackage{infwarerr}[2007/09/09]
+\makeatletter
+\let\OrgWrite\write
+\chardef\WriteUnused=\@unused
+\def\msg#{\immediate\OrgWrite\WriteUnused}
+\def\pkgname{PACKAGE}
+\def\clsname{CLASS}
+\def\msgtext{MESSAGE\MessageBreak SECOND LINE}
+\def\hlptext{HELP\MessageBreak SECOND LINE}
+
+\let\OrgWrite\write
+\let\OrgErrMessage\errmessage
+
+\def\write#1#{%
+ \@write{#1}%
+}
+\def\@write#1#2{%
+ \OrgWrite#1{#2}%
+ \xdef\WriteNum{\number#1}%
+ \xdef\WriteText{#2}%
+}
+\def\TestFailed#1#2{%
+ \OrgErrMessage{Test (\string#1) failed: #2}%
+}
+\def\TestWrite#1#2#3{%
+ \ifnum\WriteNum=#2\relax
+ \else
+ \TestFailed#1{write stream number: \WriteNum <> #2}%
+ \fi
+ \begingroup
+ \let~\space
+ \edef\TestString{#3}%
+ \ifx\WriteText\TestString
+ \else
+ \msg{}%
+ \msg{[\WriteText]}%
+ \msg{<>}%
+ \msg{[#3]}% hash-ok
+ \TestFailed#1{write text}%
+ \fi
+ \endgroup
+}
+\newtoks\ErrHelpToks
+\def\errmessage#1{%
+ \global\ErrHelpToks=\expandafter{\the\errhelp}%
+ \msg{**************** error message ****************}%
+ \msg{! #1}%
+ \msg{**************** help message *****************}%
+ \msg{\the\errhelp}%
+ \msg{***********************************************}%
+ \xdef\ErrMessage{! #1}%
+}
+\def\TestInfo{%
+ \@PackageInfo\pkgname\msgtext
+ \TestWrite\@PackageInfo{-1}{%
+ Package PACKAGE Info: MESSAGE^^J%
+ (PACKAGE)~~~~~~~~~~~~~SECOND LINE on input line \the\inputlineno.%
+ }%
+ \@PackageInfoNoLine\pkgname\msgtext
+ \TestWrite\@PackageInfoNoLine{-1}{%
+ Package PACKAGE Info: MESSAGE^^J%
+ (PACKAGE)~~~~~~~~~~~~~SECOND LINE.%
+ }%
+ \@ClassInfo\clsname\msgtext
+ \TestWrite\@ClassInfo{-1}{%
+ Class CLASS Info: MESSAGE^^J%
+ (CLASS)~~~~~~~~~~~SECOND LINE on input line \the\inputlineno.%
+ }%
+ \@ClassInfoNoLine\clsname\msgtext
+ \TestWrite\@ClassInfoNoLine{-1}{%
+ Class CLASS Info: MESSAGE^^J%
+ (CLASS)~~~~~~~~~~~SECOND LINE.%
+ }%
+}
+\def\TestWarning{%
+ \@PackageWarning\pkgname\msgtext
+ \TestWrite\@PackageWarning\WriteUnused{%
+ ^^J%
+ Package PACKAGE Warning: MESSAGE^^J%
+ (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE on input line \the\inputlineno.%
+ ^^J%
+ }%
+ \@PackageWarningNoLine\pkgname\msgtext
+ \TestWrite\@PackageWarningNoLine\WriteUnused{%
+ ^^J%
+ Package PACKAGE Warning: MESSAGE^^J%
+ (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE.%
+ ^^J%
+ }%
+ \@ClassWarning\clsname\msgtext
+ \TestWrite\@ClassWarning\WriteUnused{%
+ ^^J%
+ Class CLASS Warning: MESSAGE^^J%
+ (CLASS)~~~~~~~~~~~~~~SECOND LINE on input line \the\inputlineno.%
+ ^^J%
+ }%
+ \@ClassWarningNoLine\clsname\msgtext
+ \TestWrite\@ClassWarningNoLine\WriteUnused{%
+ ^^J%
+ Class CLASS Warning: MESSAGE^^J%
+ (CLASS)~~~~~~~~~~~~~~SECOND LINE.%
+ ^^J%
+ }%
+}
+\def\TestError{%
+ \let\write\OrgWrite
+ \def\plaindots{}
+ \@PackageError\pkgname\msgtext\hlptext
+ \@TestError\@PackageError{%
+ ! Package PACKAGE Error: MESSAGE^^J%
+ (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE.^^J%
+ ^^J%
+ See the PACKAGE package documentation for explanation.^^J%
+ Type~~H <return>~~for immediate help\plaindots
+ }{%
+ HELP^^J%
+ SECOND LINE%
+ }%
+ \@ClassError\clsname\msgtext\hlptext
+ \@TestError\@ClassError{%
+ ! Class CLASS Error: MESSAGE^^J%
+ (CLASS)~~~~~~~~~~~~~~SECOND LINE.^^J%
+ ^^J%
+ See the CLASS class documentation for explanation.^^J%
+ Type~~H <return>~~for immediate help\plaindots
+ }{%
+ HELP^^J%
+ SECOND LINE%
+ }%
+ \@PackageError\pkgname\msgtext\@ehc
+ \@TestError\@PackageError{%
+ ! Package PACKAGE Error: MESSAGE^^J%
+ (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE.^^J%
+ ^^J%
+ See the PACKAGE package documentation for explanation.^^J%
+ Type~~H <return>~~for immediate help\plaindots
+ }{%
+ Try typing~~<return>~~to proceed.^^J%
+ If that doesn't work, type~~X <return>~~to quit.%
+ }%
+ \@PackageError\pkgname\msgtext\@ehd
+ \@TestError\@PackageError{%
+ ! Package PACKAGE Error: MESSAGE^^J%
+ (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE.^^J%
+ ^^J%
+ See the PACKAGE package documentation for explanation.^^J%
+ Type~~H <return>~~for immediate help\plaindots
+ }{%
+ You're in trouble here.~~Try typing~~<return>~~to proceed.^^J%
+ If that doesn't work, type~~X <return>~~to quit.%
+ }%
+}
+\def\@TestError#1#2#3{%
+ \begingroup
+ \let~\space
+ \edef\x{#2}%
+ \@onelevel@sanitize\x
+ \@onelevel@sanitize\ErrMessage
+ \ifx\x\ErrMessage
+ \else
+ \msg{}%
+ \msg{[\ErrMessage]}%
+ \msg{<>}%
+ \msg{[\x]}%
+ \TestFailed#1{errmessage text}%
+ \fi
+ \edef\x{\the\ErrHelpToks}%
+ \edef\y{#3}%
+ \ifx\x\y
+ \else
+ \msg{}%
+ \msg{[\the\ErrHelpToks]}%
+ \msg{<>}%
+ \msg{[\y]}%
+ \TestFailed#1{errhelp text}%
+ \fi
+ \endgroup
+}
+\TestInfo
+\TestWarning
+\TestError
+\@@end
+\endinput
+%%
+%% End of file `infwarerr-test3.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/infwarerr.pdf b/Master/texmf-dist/doc/latex/oberdiek/infwarerr.pdf
index bad3abd8468..15a8262dc71 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/infwarerr.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/infwarerr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/inputenx.pdf b/Master/texmf-dist/doc/latex/oberdiek/inputenx.pdf
index 206771b2d97..506a04bf47a 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/inputenx.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/inputenx.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/intcalc-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/intcalc-test1.tex
new file mode 100644
index 00000000000..06bf9e08db3
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/intcalc-test1.tex
@@ -0,0 +1,76 @@
+%%
+%% This is file `intcalc-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% intcalc.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file intcalc.dtx
+%% and the derived files
+%% intcalc.sty, intcalc.pdf, intcalc.ins, intcalc.drv,
+%% intcalc-test1.tex, intcalc-test2.tex, intcalc-test3.tex,
+%% intcalc-test4.tex.
+%%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input intcalc.sty\relax
+ \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
+\end
+
+
+\endinput
+%%
+%% End of file `intcalc-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/intcalc-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/intcalc-test2.tex
new file mode 100644
index 00000000000..696816c6f80
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/intcalc-test2.tex
@@ -0,0 +1,597 @@
+%%
+%% This is file `intcalc-test2.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% intcalc.dtx (with options: `test2,etex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file intcalc.dtx
+%% and the derived files
+%% intcalc.sty, intcalc.pdf, intcalc.ins, intcalc.drv,
+%% intcalc-test1.tex, intcalc-test2.tex, intcalc-test3.tex,
+%% intcalc-test4.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\nofiles
+\documentclass{article}
+\makeatletter
+\chardef\IntCalc@TestMode=1 %
+\makeatother
+\usepackage{intcalc}[2007/09/09]
+\usepackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+\newcommand*{\TestSpaceAtEnd}[1]{%
+ \edef\resultA{#1}%
+ \edef\resultB{#1 }%
+ \Expect*{\resultA\space}*{\resultB}%
+}
+\newcommand*{\TestResult}[2]{%
+ \edef\result{#1}%
+ \Expect*{\result}{#2}%
+}
+\newcommand*{\TestResultTwoExpansions}[2]{%
+ \expandafter\expandafter\expandafter\Expect
+ \expandafter\expandafter\expandafter{#1}{#2}%
+}
+\newcount\TestCount
+\newcommand*{\TestArg}[1]{\numexpr#1\relax}
+\newcommand*{\TestTeXDivide}[2]{%
+ \TestCount=\TestArg{#1}\relax
+ \divide\TestCount by \TestArg{#2}\relax
+ \Expect*{\intcalcDiv{#1}{#2}}*{\the\TestCount}%
+}
+\newcommand*{\Test}[2]{%
+ \TestResult{#1}{#2}%
+ \TestResultTwoExpansions{#1}{#2}%
+ \TestSpaceAtEnd{#1}%
+}
+\newcommand*{\TestExch}[2]{\Test{#2}{#1}}
+\newcommand*{\TestInv}[2]{%
+ \Test{\intcalcInv{#1}}{#2}%
+}
+\newcommand*{\TestAbs}[2]{%
+ \Test{\intcalcAbs{#1}}{#2}%
+}
+\newcommand*{\TestSgn}[2]{%
+ \Test{\intcalcSgn{#1}}{#2}%
+}
+\newcommand*{\TestMin}[3]{%
+ \Test{\intcalcMin{#1}{#2}}{#3}%
+}
+\newcommand*{\TestMax}[3]{%
+ \Test{\intcalcMax{#1}{#2}}{#3}%
+}
+\newcommand*{\TestCmp}[3]{%
+ \Test{\intcalcCmp{#1}{#2}}{#3}%
+}
+\newcommand*{\TestInc}[2]{%
+ \Test{\intcalcInc{#1}}{#2}%
+}
+\newcommand*{\TestDec}[2]{%
+ \Test{\intcalcDec{#1}}{#2}%
+}
+\newcommand*{\TestAdd}[3]{%
+ \Test{\intcalcAdd{#1}{#2}}{#3}%
+}
+\newcommand*{\TestSub}[3]{%
+ \Test{\intcalcSub{#1}{#2}}{#3}%
+}
+\newcommand*{\TestShl}[2]{%
+ \Test{\intcalcShl{#1}}{#2}%
+}
+\newcommand*{\TestShr}[2]{%
+ \Test{\intcalcShr{#1}}{#2}%
+}
+\newcommand*{\TestMul}[3]{%
+ \Test{\intcalcMul{#1}{#2}}{#3}%
+}
+\newcommand*{\TestSqr}[2]{%
+ \Test{\intcalcSqr{#1}}{#2}%
+}
+\newcommand*{\TestFac}[2]{%
+ \expandafter\TestExch\expandafter{\the\numexpr#2}{\intcalcFac{#1}}%
+}
+\newcommand*{\TestPow}[3]{%
+ \Test{\intcalcPow{#1}{#2}}{#3}%
+}
+\newcommand*{\TestDiv}[3]{%
+ \Test{\intcalcDiv{#1}{#2}}{#3}%
+ \TestTeXDivide{#1}{#2}%
+}
+\newcommand*{\TestMod}[3]{%
+ \Test{\intcalcMod{#1}{#2}}{#3}%
+}
+\makeatletter
+
+\begin{qstest}{inv}{inv}%
+ \TestInv{0}{0}%
+ \TestInv{1}{-1}%
+ \TestInv{-1}{1}%
+ \TestInv{10}{-10}%
+ \TestInv{-10}{10}%
+ \TestInv{2147483647}{-2147483647}%
+ \TestInv{-2147483647}{2147483647}%
+ \TestInv{ 0 }{0}%
+ \TestInv{ 1 }{-1}%
+ \TestInv{--1}{-1}%
+ \TestInv{\z@}{0}%
+ \TestInv{\@ne}{-1}%
+ \TestInv{\m@ne}{1}%
+ \TestInv{-10+30}{-20}%
+ \TestInv{10-30}{20}%
+\end{qstest}
+
+\begin{qstest}{abs}{abs}%
+ \TestAbs{0}{0}%
+ \TestAbs{1}{1}%
+ \TestAbs{-1}{1}%
+ \TestAbs{10}{10}%
+ \TestAbs{-10}{10}%
+ \TestAbs{2147483647}{2147483647}%
+ \TestAbs{-2147483647}{2147483647}%
+ \TestAbs{ 0 }{0}%
+ \TestAbs{ 1 }{1}%
+ \TestAbs{--1}{1}%
+ \TestAbs{\z@}{0}%
+ \TestAbs{\@ne}{1}%
+ \TestAbs{\m@ne}{1}%
+ \TestAbs{-10+30}{20}%
+ \TestAbs{10-30}{20}%
+\end{qstest}
+
+\begin{qstest}{sign}{sign}%
+ \TestSgn{0}{0}%
+ \TestSgn{1}{1}%
+ \TestSgn{-1}{-1}%
+ \TestSgn{10}{1}%
+ \TestSgn{-10}{-1}%
+ \TestSgn{2147483647}{1}%
+ \TestSgn{-2147483647}{-1}%
+ \TestSgn{ 0 }{0}%
+ \TestSgn{ 2 }{1}%
+ \TestSgn{ -2 }{-1}%
+ \TestSgn{--2}{1}%
+ \TestSgn{\z@}{0}%
+ \TestSgn{\@ne}{1}%
+ \TestSgn{\m@ne}{-1}%
+ \TestSgn{-10+30}{1}%
+ \TestSgn{10-30}{-1}%
+\end{qstest}
+
+\begin{qstest}{min}{min}%
+ \TestMin{0}{1}{0}%
+ \TestMin{1}{0}{0}%
+ \TestMin{-10}{-20}{-20}%
+ \TestMin{ 1 }{ 2 }{1}%
+ \TestMin{ 2 }{ 1 }{1}%
+ \TestMin{1}{1}{1}%
+ \TestMin{\z@}{\@ne}{0}%
+ \TestMin{\@ne}{\m@ne}{-1}%
+ \TestMin{1+2}{3+4}{3}%
+\end{qstest}
+
+\begin{qstest}{max}{max}%
+ \TestMax{0}{1}{1}%
+ \TestMax{1}{0}{1}%
+ \TestMax{-10}{-20}{-10}%
+ \TestMax{ 1 }{ 2 }{2}%
+ \TestMax{ 2 }{ 1 }{2}%
+ \TestMax{1}{1}{1}%
+ \TestMax{\z@}{\@ne}{1}%
+ \TestMax{\@ne}{\m@ne}{1}%
+ \TestMax{1+2}{3+4}{7}%
+\end{qstest}
+
+\begin{qstest}{cmp}{cmp}%
+ \TestCmp{0}{0}{0}%
+ \TestCmp{-21}{17}{-1}%
+ \TestCmp{3}{4}{-1}%
+ \TestCmp{-10}{-10}{0}%
+ \TestCmp{-10}{-11}{1}%
+ \TestCmp{100}{5}{1}%
+ \TestCmp{2147483647}{-2147483647}{1}%
+ \TestCmp{-2147483647}{2147483647}{-1}%
+ \TestCmp{2147483647}{2147483647}{0}%
+ \TestCmp{\z@}{\@ne}{-1}%
+ \TestCmp{\@ne}{\m@ne}{1}%
+ \TestCmp{ 4 }{ 5 }{-1}%
+ \TestCmp{ -3 }{ -7 }{1}%
+ \TestCmp{1+2}{3+4}{-1}%
+\end{qstest}
+
+\begin{qstest}{fac}{fac}
+ \TestFac{0}{1}%
+ \TestFac{1}{1}%
+ \TestFac{2}{2}%
+ \TestFac{3}{2*3}%
+ \TestFac{4}{2*3*4}%
+ \TestFac{5}{2*3*4*5}%
+ \TestFac{6}{2*3*4*5*6}%
+ \TestFac{7}{2*3*4*5*6*7}%
+ \TestFac{8}{2*3*4*5*6*7*8}%
+ \TestFac{9}{2*3*4*5*6*7*8*9}%
+ \TestFac{10}{2*3*4*5*6*7*8*9*10}%
+ \TestFac{11}{2*3*4*5*6*7*8*9*10*11}%
+ \TestFac{12}{2*3*4*5*6*7*8*9*10*11*12}%
+\end{qstest}
+
+\begin{qstest}{inc}{inc}%
+ \TestInc{0}{1}%
+ \TestInc{1}{2}%
+ \TestInc{-1}{0}%
+ \TestInc{10}{11}%
+ \TestInc{-10}{-9}%
+ \TestInc{999}{1000}%
+ \TestInc{-1000}{-999}%
+ \TestInc{129}{130}%
+ \TestInc{2147483646}{2147483647}%
+ \TestInc{-2147483647}{-2147483646}%
+\end{qstest}
+
+\begin{qstest}{dec}{dec}%
+ \TestDec{0}{-1}%
+ \TestDec{1}{0}%
+ \TestDec{-1}{-2}%
+ \TestDec{10}{9}%
+ \TestDec{-10}{-11}%
+ \TestDec{1000}{999}%
+ \TestDec{-999}{-1000}%
+ \TestDec{130}{129}%
+ \TestDec{2147483647}{2147483646}%
+ \TestDec{-2147483646}{-2147483647}%
+\end{qstest}
+
+\begin{qstest}{add}{add}%
+ \TestAdd{0}{0}{0}%
+ \TestAdd{1}{0}{1}%
+ \TestAdd{0}{1}{1}%
+ \TestAdd{1}{2}{3}%
+ \TestAdd{-1}{-1}{-2}%
+ \TestAdd{2147483646}{1}{2147483647}%
+ \TestAdd{-2147483647}{2147483647}{0}%
+ \TestAdd{20}{-5}{15}%
+ \TestAdd{-4}{-1}{-5}%
+ \TestAdd{-1}{-4}{-5}%
+ \TestAdd{-4}{1}{-3}%
+ \TestAdd{-1}{4}{3}%
+ \TestAdd{4}{-1}{3}%
+ \TestAdd{1}{-4}{-3}%
+ \TestAdd{-4}{-1}{-5}%
+ \TestAdd{-1}{-4}{-5}%
+ \TestAdd{ -4 }{ -1 }{-5}%
+ \TestAdd{ -1 }{ -4 }{-5}%
+ \TestAdd{ -4 }{ 1 }{-3}%
+ \TestAdd{ -1 }{ 4 }{3}%
+ \TestAdd{ 4 }{ -1 }{3}%
+ \TestAdd{ 1 }{ -4 }{-3}%
+ \TestAdd{ -4 }{ -1 }{-5}%
+ \TestAdd{ -1 }{ -4 }{-5}%
+ \TestAdd{876543210}{111111111}{987654321}%
+ \TestAdd{999999999}{2}{1000000001}%
+ \TestAdd{100}{50+150}{300}%
+ \TestAdd{2147483647}{10-2147483647}{10}%
+\end{qstest}
+
+\begin{qstest}{sub}{sub}
+ \TestSub{0}{0}{0}%
+ \TestSub{1}{0}{1}%
+ \TestSub{1}{2}{-1}%
+ \TestSub{-1}{-1}{0}%
+ \TestSub{2147483646}{-1}{2147483647}%
+ \TestSub{-2147483647}{-2147483647}{0}%
+ \TestSub{-4}{-1}{-3}%
+ \TestSub{-1}{-4}{3}%
+ \TestSub{-4}{1}{-5}%
+ \TestSub{-1}{4}{-5}%
+ \TestSub{4}{-1}{5}%
+ \TestSub{1}{-4}{5}%
+ \TestSub{-4}{-1}{-3}%
+ \TestSub{-1}{-4}{3}%
+ \TestSub{ -4 }{ -1 }{-3}%
+ \TestSub{ -1 }{ -4 }{3}%
+ \TestSub{ -4 }{ 1 }{-5}%
+ \TestSub{ -1 }{ 4 }{-5}%
+ \TestSub{ 4 }{ -1 }{5}%
+ \TestSub{ 1 }{ -4 }{5}%
+ \TestSub{ -4 }{ -1 }{-3}%
+ \TestSub{ -1 }{ -4 }{3}%
+ \TestSub{1000000000}{2}{999999998}%
+ \TestSub{987654321}{111111111}{876543210}%
+ \TestSub{100}{50+150}{-100}%
+ \TestSub{2147483647}{-10+2147483647}{10}%
+\end{qstest}
+
+\begin{qstest}{shl}{shl}
+ \TestShl{0}{0}%
+ \TestShl{1}{2}%
+ \TestShl{5621}{11242}%
+ \TestShl{1073741823}{2147483646}%
+\end{qstest}
+
+\begin{qstest}{shr}{shr}
+ \TestShr{0}{0}%
+ \TestShr{1}{0}%
+ \TestShr{2}{1}%
+ \TestShr{3}{1}%
+ \TestShr{4}{2}%
+ \TestShr{5}{2}%
+ \TestShr{6}{3}%
+ \TestShr{7}{3}%
+ \TestShr{8}{4}%
+ \TestShr{9}{4}%
+ \TestShr{10}{5}%
+ \TestShr{11}{5}%
+ \TestShr{12}{6}%
+ \TestShr{13}{6}%
+ \TestShr{14}{7}%
+ \TestShr{15}{7}%
+ \TestShr{16}{8}%
+ \TestShr{17}{8}%
+ \TestShr{18}{9}%
+ \TestShr{19}{9}%
+ \TestShr{20}{10}%
+ \TestShr{21}{10}%
+ \TestShr{22}{11}%
+ \TestShr{11241}{5620}%
+ \TestShr{73054202}{36527101}%
+ \TestShr{2147483646}{1073741823}%
+\end{qstest}
+
+\begin{qstest}{mul}{mul}
+ \TestMul{0}{0}{0}%
+ \TestMul{1}{0}{0}%
+ \TestMul{0}{1}{0}%
+ \TestMul{1}{1}{1}%
+ \TestMul{3}{1}{3}%
+ \TestMul{1}{-3}{-3}%
+ \TestMul{-4}{-5}{20}%
+ \TestMul{3}{7}{21}%
+ \TestMul{7}{3}{21}%
+ \TestMul{3}{-7}{-21}%
+ \TestMul{7}{-3}{-21}%
+ \TestMul{-3}{7}{-21}%
+ \TestMul{-7}{3}{-21}%
+ \TestMul{-3}{-7}{21}%
+ \TestMul{-7}{-3}{21}%
+ \TestMul{12}{11}{132}%
+ \TestMul{999}{333}{332667}%
+ \TestMul{1000}{4321}{4321000}%
+ \TestMul{12345}{173955}{2147474475}%
+ \TestMul{1073741823}{2}{2147483646}%
+ \TestMul{2}{1073741823}{2147483646}%
+ \TestMul{-1073741823}{2}{-2147483646}%
+ \TestMul{2}{-1073741823}{-2147483646}%
+ \TestMul{2+3}{5+7}{60}%
+ \TestMul{2147483647}{2147483647/2147483647}{2147483647}%
+\end{qstest}
+
+\begin{qstest}{sqr}{sqr}
+ \TestSqr{0}{0}%
+ \TestSqr{1}{1}%
+ \TestSqr{2}{4}%
+ \TestSqr{3}{9}%
+ \TestSqr{4}{16}%
+ \TestSqr{9}{81}%
+ \TestSqr{10}{100}%
+ \TestSqr{46340}{2147395600}%
+ \TestSqr{-1}{1}%
+ \TestSqr{-2}{4}%
+ \TestSqr{-46340}{2147395600}%
+\end{qstest}
+
+\begin{qstest}{pow}{pow}
+ \TestPow{-2}{0}{1}%
+ \TestPow{-1}{0}{1}%
+ \TestPow{0}{0}{1}%
+ \TestPow{1}{0}{1}%
+ \TestPow{2}{0}{1}%
+ \TestPow{3}{0}{1}%
+ \TestPow{-2}{1}{-2}%
+ \TestPow{-1}{1}{-1}%
+ \TestPow{1}{1}{1}%
+ \TestPow{2}{1}{2}%
+ \TestPow{3}{1}{3}%
+ \TestPow{-2}{2}{4}%
+ \TestPow{-1}{2}{1}%
+ \TestPow{0}{2}{0}%
+ \TestPow{1}{2}{1}%
+ \TestPow{2}{2}{4}%
+ \TestPow{3}{2}{9}%
+ \TestPow{0}{1}{0}%
+ \TestPow{1}{-2}{1}%
+ \TestPow{1}{-1}{1}%
+ \TestPow{-1}{-2}{1}%
+ \TestPow{-1}{-1}{-1}%
+ \TestPow{-1}{3}{-1}%
+ \TestPow{-1}{4}{1}%
+ \TestPow{-2}{-1}{0}%
+ \TestPow{-2}{-2}{0}%
+ \TestPow{2}{3}{8}%
+ \TestPow{2}{4}{16}%
+ \TestPow{2}{5}{32}%
+ \TestPow{2}{6}{64}%
+ \TestPow{2}{7}{128}%
+ \TestPow{2}{8}{256}%
+ \TestPow{2}{9}{512}%
+ \TestPow{2}{10}{1024}%
+ \TestPow{-2}{3}{-8}%
+ \TestPow{-2}{4}{16}%
+ \TestPow{-2}{5}{-32}%
+ \TestPow{-2}{6}{64}%
+ \TestPow{-2}{7}{-128}%
+ \TestPow{-2}{8}{256}%
+ \TestPow{-2}{9}{-512}%
+ \TestPow{-2}{10}{1024}%
+ \TestPow{3}{3}{27}%
+ \TestPow{3}{4}{81}%
+ \TestPow{3}{5}{243}%
+ \TestPow{-3}{3}{-27}%
+ \TestPow{-3}{4}{81}%
+ \TestPow{-3}{5}{-243}%
+ \TestPow{2}{30}{1073741824}%
+ \TestPow{-3}{19}{-1162261467}%
+ \TestPow{5}{13}{1220703125}%
+ \TestPow{-7}{11}{-1977326743}%
+\end{qstest}
+
+\begin{qstest}{div}{div}
+ \TestDiv{1}{1}{1}%
+ \TestDiv{2}{1}{2}%
+ \TestDiv{-2}{1}{-2}%
+ \TestDiv{2}{-1}{-2}%
+ \TestDiv{-2}{-1}{2}%
+ \TestDiv{15}{2}{7}%
+ \TestDiv{-16}{2}{-8}%
+ \TestDiv{1}{2}{0}%
+ \TestDiv{1}{3}{0}%
+ \TestDiv{2}{3}{0}%
+ \TestDiv{-2}{3}{0}%
+ \TestDiv{2}{-3}{0}%
+ \TestDiv{-2}{-3}{0}%
+ \TestDiv{13}{3}{4}%
+ \TestDiv{-13}{-3}{4}%
+ \TestDiv{-13}{3}{-4}%
+ \TestDiv{-6}{5}{-1}%
+ \TestDiv{-5}{5}{-1}%
+ \TestDiv{-4}{5}{0}%
+ \TestDiv{-3}{5}{0}%
+ \TestDiv{-2}{5}{0}%
+ \TestDiv{-1}{5}{0}%
+ \TestDiv{0}{5}{0}%
+ \TestDiv{1}{5}{0}%
+ \TestDiv{2}{5}{0}%
+ \TestDiv{3}{5}{0}%
+ \TestDiv{4}{5}{0}%
+ \TestDiv{5}{5}{1}%
+ \TestDiv{6}{5}{1}%
+ \TestDiv{-5}{4}{-1}%
+ \TestDiv{-4}{4}{-1}%
+ \TestDiv{-3}{4}{0}%
+ \TestDiv{-2}{4}{0}%
+ \TestDiv{-1}{4}{0}%
+ \TestDiv{0}{4}{0}%
+ \TestDiv{1}{4}{0}%
+ \TestDiv{2}{4}{0}%
+ \TestDiv{3}{4}{0}%
+ \TestDiv{4}{4}{1}%
+ \TestDiv{5}{4}{1}%
+ \TestDiv{12345}{678}{18}%
+ \TestDiv{32372}{5952}{5}%
+ \TestDiv{284271294}{18162}{15651}%
+ \TestDiv{217652429}{12561}{17327}%
+ \TestDiv{462028434}{5439}{84947}%
+ \TestDiv{2147483647}{1000}{2147483}%
+ \TestDiv{2147483647}{-1000}{-2147483}%
+ \TestDiv{-2147483647}{1000}{-2147483}%
+ \TestDiv{-2147483647}{-1000}{2147483}%
+\end{qstest}
+
+\begin{qstest}{mod}{mod}
+ \TestMod{-6}{5}{4}%
+ \TestMod{-5}{5}{0}%
+ \TestMod{-4}{5}{1}%
+ \TestMod{-3}{5}{2}%
+ \TestMod{-2}{5}{3}%
+ \TestMod{-1}{5}{4}%
+ \TestMod{0}{5}{0}%
+ \TestMod{1}{5}{1}%
+ \TestMod{2}{5}{2}%
+ \TestMod{3}{5}{3}%
+ \TestMod{4}{5}{4}%
+ \TestMod{5}{5}{0}%
+ \TestMod{6}{5}{1}%
+ \TestMod{-5}{4}{3}%
+ \TestMod{-4}{4}{0}%
+ \TestMod{-3}{4}{1}%
+ \TestMod{-2}{4}{2}%
+ \TestMod{-1}{4}{3}%
+ \TestMod{0}{4}{0}%
+ \TestMod{1}{4}{1}%
+ \TestMod{2}{4}{2}%
+ \TestMod{3}{4}{3}%
+ \TestMod{4}{4}{0}%
+ \TestMod{5}{4}{1}%
+ \TestMod{-6}{-5}{-1}%
+ \TestMod{-5}{-5}{0}%
+ \TestMod{-4}{-5}{-4}%
+ \TestMod{-3}{-5}{-3}%
+ \TestMod{-2}{-5}{-2}%
+ \TestMod{-1}{-5}{-1}%
+ \TestMod{0}{-5}{0}%
+ \TestMod{1}{-5}{-4}%
+ \TestMod{2}{-5}{-3}%
+ \TestMod{3}{-5}{-2}%
+ \TestMod{4}{-5}{-1}%
+ \TestMod{5}{-5}{0}%
+ \TestMod{6}{-5}{-4}%
+ \TestMod{-5}{-4}{-1}%
+ \TestMod{-4}{-4}{0}%
+ \TestMod{-3}{-4}{-3}%
+ \TestMod{-2}{-4}{-2}%
+ \TestMod{-1}{-4}{-1}%
+ \TestMod{0}{-4}{0}%
+ \TestMod{1}{-4}{-3}%
+ \TestMod{2}{-4}{-2}%
+ \TestMod{3}{-4}{-1}%
+ \TestMod{4}{-4}{0}%
+ \TestMod{5}{-4}{-3}%
+ \TestMod{2147483647}{1000}{647}%
+ \TestMod{2147483647}{-1000}{-353}%
+ \TestMod{-2147483647}{1000}{353}%
+ \TestMod{-2147483647}{-1000}{-647}%
+ \TestMod{ 0 }{ 4 }{0}%
+ \TestMod{ 1 }{ 4 }{1}%
+ \TestMod{ -1 }{ 4 }{3}%
+ \TestMod{ 0 }{ -4 }{0}%
+ \TestMod{ 1 }{ -4 }{-3}%
+ \TestMod{ -1 }{ -4 }{-1}%
+ \TestMod{1+2}{1+3}{3}%
+ \TestMod{1-2}{1+3}{3}%
+ \TestMod{1-2}{1-4}{-1}%
+ \TestMod{1+2}{1-4}{0}%
+ \TestMod{1+2}{1-5}{-1}%
+\end{qstest}
+
+\newcommand*{\TestError}[2]{%
+ \begingroup
+ \expandafter\def\csname IntCalcError:#1\endcsname{}%
+ \Expect*{#2}{0}%
+ \expandafter\def\csname IntCalcError:#1\endcsname{ERROR}%
+ \Expect*{#2}{0ERROR }%
+ \endgroup
+}
+\begin{qstest}{error}{error}
+ \TestError{FacNegative}{\intcalcFac{-1}}%
+ \TestError{FacNegative}{\intcalcFac{-2147483647}}%
+ \TestError{FacOverflow}{\intcalcFac{13}}%
+ \TestError{FacOverflow}{\intcalcFac{2147483647}}%
+ \TestError{ShlNegativeNumber}{\intcalcShl{-1}}%
+ \TestError{ShrNegativeNumber}{\intcalcShr{-1}}%
+ \TestError{DivisionByZero}{\intcalcPow{0}{-1}}%
+ \TestError{DivisionByZero}{\intcalcDiv{1}{0}}%
+ \TestError{DivisionByZero}{\intcalcMod{1}{0}}%
+\end{qstest}
+
+\begin{document}
+\end{document}
+\endinput
+%%
+%% End of file `intcalc-test2.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/intcalc-test3.tex b/Master/texmf-dist/doc/latex/oberdiek/intcalc-test3.tex
new file mode 100644
index 00000000000..c01bff1c246
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/intcalc-test3.tex
@@ -0,0 +1,590 @@
+%%
+%% This is file `intcalc-test3.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% intcalc.dtx (with options: `test3,noetex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file intcalc.dtx
+%% and the derived files
+%% intcalc.sty, intcalc.pdf, intcalc.ins, intcalc.drv,
+%% intcalc-test1.tex, intcalc-test2.tex, intcalc-test3.tex,
+%% intcalc-test4.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\nofiles
+\documentclass{article}
+\let\SavedNumexpr\numexpr
+\let\numexpr\UNDEFINED
+\makeatletter
+\chardef\IntCalc@TestMode=1 %
+\makeatother
+\usepackage{intcalc}[2007/09/09]
+\let\numexpr\SavedNumexpr
+\usepackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+\newcommand*{\TestSpaceAtEnd}[1]{%
+ \let\SavedNumexpr\numexpr
+ \let\numexpr\UNDEFINED
+ \edef\resultA{#1}%
+ \edef\resultB{#1 }%
+ \let\numexpr\SavedNumexpr
+ \Expect*{\resultA\space}*{\resultB}%
+}
+\newcommand*{\TestResult}[2]{%
+ \let\SavedNumexpr\numexpr
+ \let\numexpr\UNDEFINED
+ \edef\result{#1}%
+ \let\numexpr\SavedNumexpr
+ \Expect*{\result}{#2}%
+}
+\newcommand*{\TestResultTwoExpansions}[2]{%
+ \begingroup
+ \let\numexpr\UNDEFINED
+ \expandafter\expandafter\expandafter
+ \endgroup
+ \expandafter\expandafter\expandafter\Expect
+ \expandafter\expandafter\expandafter{#1}{#2}%
+}
+\newcount\TestCount
+\newcommand*{\TestArg}[1]{#1}
+\newcommand*{\TestTeXDivide}[2]{%
+ \TestCount=\TestArg{#1}\relax
+ \divide\TestCount by \TestArg{#2}\relax
+ \Expect*{\intcalcDiv{#1}{#2}}*{\the\TestCount}%
+}
+\newcommand*{\Test}[2]{%
+ \TestResult{#1}{#2}%
+ \TestResultTwoExpansions{#1}{#2}%
+ \TestSpaceAtEnd{#1}%
+}
+\newcommand*{\TestExch}[2]{\Test{#2}{#1}}
+\newcommand*{\TestInv}[2]{%
+ \Test{\intcalcInv{#1}}{#2}%
+}
+\newcommand*{\TestAbs}[2]{%
+ \Test{\intcalcAbs{#1}}{#2}%
+}
+\newcommand*{\TestSgn}[2]{%
+ \Test{\intcalcSgn{#1}}{#2}%
+}
+\newcommand*{\TestMin}[3]{%
+ \Test{\intcalcMin{#1}{#2}}{#3}%
+}
+\newcommand*{\TestMax}[3]{%
+ \Test{\intcalcMax{#1}{#2}}{#3}%
+}
+\newcommand*{\TestCmp}[3]{%
+ \Test{\intcalcCmp{#1}{#2}}{#3}%
+}
+\newcommand*{\TestInc}[2]{%
+ \Test{\intcalcInc{#1}}{#2}%
+}
+\newcommand*{\TestDec}[2]{%
+ \Test{\intcalcDec{#1}}{#2}%
+}
+\newcommand*{\TestAdd}[3]{%
+ \Test{\intcalcAdd{#1}{#2}}{#3}%
+}
+\newcommand*{\TestSub}[3]{%
+ \Test{\intcalcSub{#1}{#2}}{#3}%
+}
+\newcommand*{\TestShl}[2]{%
+ \Test{\intcalcShl{#1}}{#2}%
+}
+\newcommand*{\TestShr}[2]{%
+ \Test{\intcalcShr{#1}}{#2}%
+}
+\newcommand*{\TestMul}[3]{%
+ \Test{\intcalcMul{#1}{#2}}{#3}%
+}
+\newcommand*{\TestSqr}[2]{%
+ \Test{\intcalcSqr{#1}}{#2}%
+}
+\newcommand*{\TestFac}[2]{%
+ \expandafter\TestExch\expandafter{\the\numexpr#2}{\intcalcFac{#1}}%
+}
+\newcommand*{\TestPow}[3]{%
+ \Test{\intcalcPow{#1}{#2}}{#3}%
+}
+\newcommand*{\TestDiv}[3]{%
+ \Test{\intcalcDiv{#1}{#2}}{#3}%
+ \TestTeXDivide{#1}{#2}%
+}
+\newcommand*{\TestMod}[3]{%
+ \Test{\intcalcMod{#1}{#2}}{#3}%
+}
+\makeatletter
+
+\begin{qstest}{inv}{inv}%
+ \TestInv{0}{0}%
+ \TestInv{1}{-1}%
+ \TestInv{-1}{1}%
+ \TestInv{10}{-10}%
+ \TestInv{-10}{10}%
+ \TestInv{2147483647}{-2147483647}%
+ \TestInv{-2147483647}{2147483647}%
+ \TestInv{ 0 }{0}%
+ \TestInv{ 1 }{-1}%
+ \TestInv{--1}{-1}%
+ \TestInv{\z@}{0}%
+ \TestInv{\@ne}{-1}%
+ \TestInv{\m@ne}{1}%
+\end{qstest}
+
+\begin{qstest}{abs}{abs}%
+ \TestAbs{0}{0}%
+ \TestAbs{1}{1}%
+ \TestAbs{-1}{1}%
+ \TestAbs{10}{10}%
+ \TestAbs{-10}{10}%
+ \TestAbs{2147483647}{2147483647}%
+ \TestAbs{-2147483647}{2147483647}%
+ \TestAbs{ 0 }{0}%
+ \TestAbs{ 1 }{1}%
+ \TestAbs{--1}{1}%
+ \TestAbs{\z@}{0}%
+ \TestAbs{\@ne}{1}%
+ \TestAbs{\m@ne}{1}%
+\end{qstest}
+
+\begin{qstest}{sign}{sign}%
+ \TestSgn{0}{0}%
+ \TestSgn{1}{1}%
+ \TestSgn{-1}{-1}%
+ \TestSgn{10}{1}%
+ \TestSgn{-10}{-1}%
+ \TestSgn{2147483647}{1}%
+ \TestSgn{-2147483647}{-1}%
+ \TestSgn{ 0 }{0}%
+ \TestSgn{ 2 }{1}%
+ \TestSgn{ -2 }{-1}%
+ \TestSgn{--2}{1}%
+ \TestSgn{\z@}{0}%
+ \TestSgn{\@ne}{1}%
+ \TestSgn{\m@ne}{-1}%
+\end{qstest}
+
+\begin{qstest}{min}{min}%
+ \TestMin{0}{1}{0}%
+ \TestMin{1}{0}{0}%
+ \TestMin{-10}{-20}{-20}%
+ \TestMin{ 1 }{ 2 }{1}%
+ \TestMin{ 2 }{ 1 }{1}%
+ \TestMin{1}{1}{1}%
+ \TestMin{\z@}{\@ne}{0}%
+ \TestMin{\@ne}{\m@ne}{-1}%
+\end{qstest}
+
+\begin{qstest}{max}{max}%
+ \TestMax{0}{1}{1}%
+ \TestMax{1}{0}{1}%
+ \TestMax{-10}{-20}{-10}%
+ \TestMax{ 1 }{ 2 }{2}%
+ \TestMax{ 2 }{ 1 }{2}%
+ \TestMax{1}{1}{1}%
+ \TestMax{\z@}{\@ne}{1}%
+ \TestMax{\@ne}{\m@ne}{1}%
+\end{qstest}
+
+\begin{qstest}{cmp}{cmp}%
+ \TestCmp{0}{0}{0}%
+ \TestCmp{-21}{17}{-1}%
+ \TestCmp{3}{4}{-1}%
+ \TestCmp{-10}{-10}{0}%
+ \TestCmp{-10}{-11}{1}%
+ \TestCmp{100}{5}{1}%
+ \TestCmp{2147483647}{-2147483647}{1}%
+ \TestCmp{-2147483647}{2147483647}{-1}%
+ \TestCmp{2147483647}{2147483647}{0}%
+ \TestCmp{\z@}{\@ne}{-1}%
+ \TestCmp{\@ne}{\m@ne}{1}%
+ \TestCmp{ 4 }{ 5 }{-1}%
+ \TestCmp{ -3 }{ -7 }{1}%
+\end{qstest}
+
+\begin{qstest}{fac}{fac}
+ \TestFac{0}{1}%
+ \TestFac{1}{1}%
+ \TestFac{2}{2}%
+ \TestFac{3}{2*3}%
+ \TestFac{4}{2*3*4}%
+ \TestFac{5}{2*3*4*5}%
+ \TestFac{6}{2*3*4*5*6}%
+ \TestFac{7}{2*3*4*5*6*7}%
+ \TestFac{8}{2*3*4*5*6*7*8}%
+ \TestFac{9}{2*3*4*5*6*7*8*9}%
+ \TestFac{10}{2*3*4*5*6*7*8*9*10}%
+ \TestFac{11}{2*3*4*5*6*7*8*9*10*11}%
+ \TestFac{12}{2*3*4*5*6*7*8*9*10*11*12}%
+\end{qstest}
+
+\begin{qstest}{inc}{inc}%
+ \TestInc{0}{1}%
+ \TestInc{1}{2}%
+ \TestInc{-1}{0}%
+ \TestInc{10}{11}%
+ \TestInc{-10}{-9}%
+ \TestInc{999}{1000}%
+ \TestInc{-1000}{-999}%
+ \TestInc{129}{130}%
+ \TestInc{2147483646}{2147483647}%
+ \TestInc{-2147483647}{-2147483646}%
+\end{qstest}
+
+\begin{qstest}{dec}{dec}%
+ \TestDec{0}{-1}%
+ \TestDec{1}{0}%
+ \TestDec{-1}{-2}%
+ \TestDec{10}{9}%
+ \TestDec{-10}{-11}%
+ \TestDec{1000}{999}%
+ \TestDec{-999}{-1000}%
+ \TestDec{130}{129}%
+ \TestDec{2147483647}{2147483646}%
+ \TestDec{-2147483646}{-2147483647}%
+\end{qstest}
+
+\begin{qstest}{add}{add}%
+ \TestAdd{0}{0}{0}%
+ \TestAdd{1}{0}{1}%
+ \TestAdd{0}{1}{1}%
+ \TestAdd{1}{2}{3}%
+ \TestAdd{-1}{-1}{-2}%
+ \TestAdd{2147483646}{1}{2147483647}%
+ \TestAdd{-2147483647}{2147483647}{0}%
+ \TestAdd{20}{-5}{15}%
+ \TestAdd{-4}{-1}{-5}%
+ \TestAdd{-1}{-4}{-5}%
+ \TestAdd{-4}{1}{-3}%
+ \TestAdd{-1}{4}{3}%
+ \TestAdd{4}{-1}{3}%
+ \TestAdd{1}{-4}{-3}%
+ \TestAdd{-4}{-1}{-5}%
+ \TestAdd{-1}{-4}{-5}%
+ \TestAdd{ -4 }{ -1 }{-5}%
+ \TestAdd{ -1 }{ -4 }{-5}%
+ \TestAdd{ -4 }{ 1 }{-3}%
+ \TestAdd{ -1 }{ 4 }{3}%
+ \TestAdd{ 4 }{ -1 }{3}%
+ \TestAdd{ 1 }{ -4 }{-3}%
+ \TestAdd{ -4 }{ -1 }{-5}%
+ \TestAdd{ -1 }{ -4 }{-5}%
+ \TestAdd{876543210}{111111111}{987654321}%
+ \TestAdd{999999999}{2}{1000000001}%
+\end{qstest}
+
+\begin{qstest}{sub}{sub}
+ \TestSub{0}{0}{0}%
+ \TestSub{1}{0}{1}%
+ \TestSub{1}{2}{-1}%
+ \TestSub{-1}{-1}{0}%
+ \TestSub{2147483646}{-1}{2147483647}%
+ \TestSub{-2147483647}{-2147483647}{0}%
+ \TestSub{-4}{-1}{-3}%
+ \TestSub{-1}{-4}{3}%
+ \TestSub{-4}{1}{-5}%
+ \TestSub{-1}{4}{-5}%
+ \TestSub{4}{-1}{5}%
+ \TestSub{1}{-4}{5}%
+ \TestSub{-4}{-1}{-3}%
+ \TestSub{-1}{-4}{3}%
+ \TestSub{ -4 }{ -1 }{-3}%
+ \TestSub{ -1 }{ -4 }{3}%
+ \TestSub{ -4 }{ 1 }{-5}%
+ \TestSub{ -1 }{ 4 }{-5}%
+ \TestSub{ 4 }{ -1 }{5}%
+ \TestSub{ 1 }{ -4 }{5}%
+ \TestSub{ -4 }{ -1 }{-3}%
+ \TestSub{ -1 }{ -4 }{3}%
+ \TestSub{1000000000}{2}{999999998}%
+ \TestSub{987654321}{111111111}{876543210}%
+\end{qstest}
+
+\begin{qstest}{shl}{shl}
+ \TestShl{0}{0}%
+ \TestShl{1}{2}%
+ \TestShl{5621}{11242}%
+ \TestShl{1073741823}{2147483646}%
+\end{qstest}
+
+\begin{qstest}{shr}{shr}
+ \TestShr{0}{0}%
+ \TestShr{1}{0}%
+ \TestShr{2}{1}%
+ \TestShr{3}{1}%
+ \TestShr{4}{2}%
+ \TestShr{5}{2}%
+ \TestShr{6}{3}%
+ \TestShr{7}{3}%
+ \TestShr{8}{4}%
+ \TestShr{9}{4}%
+ \TestShr{10}{5}%
+ \TestShr{11}{5}%
+ \TestShr{12}{6}%
+ \TestShr{13}{6}%
+ \TestShr{14}{7}%
+ \TestShr{15}{7}%
+ \TestShr{16}{8}%
+ \TestShr{17}{8}%
+ \TestShr{18}{9}%
+ \TestShr{19}{9}%
+ \TestShr{20}{10}%
+ \TestShr{21}{10}%
+ \TestShr{22}{11}%
+ \TestShr{11241}{5620}%
+ \TestShr{73054202}{36527101}%
+ \TestShr{2147483646}{1073741823}%
+\end{qstest}
+
+\begin{qstest}{mul}{mul}
+ \TestMul{0}{0}{0}%
+ \TestMul{1}{0}{0}%
+ \TestMul{0}{1}{0}%
+ \TestMul{1}{1}{1}%
+ \TestMul{3}{1}{3}%
+ \TestMul{1}{-3}{-3}%
+ \TestMul{-4}{-5}{20}%
+ \TestMul{3}{7}{21}%
+ \TestMul{7}{3}{21}%
+ \TestMul{3}{-7}{-21}%
+ \TestMul{7}{-3}{-21}%
+ \TestMul{-3}{7}{-21}%
+ \TestMul{-7}{3}{-21}%
+ \TestMul{-3}{-7}{21}%
+ \TestMul{-7}{-3}{21}%
+ \TestMul{12}{11}{132}%
+ \TestMul{999}{333}{332667}%
+ \TestMul{1000}{4321}{4321000}%
+ \TestMul{12345}{173955}{2147474475}%
+ \TestMul{1073741823}{2}{2147483646}%
+ \TestMul{2}{1073741823}{2147483646}%
+ \TestMul{-1073741823}{2}{-2147483646}%
+ \TestMul{2}{-1073741823}{-2147483646}%
+\end{qstest}
+
+\begin{qstest}{sqr}{sqr}
+ \TestSqr{0}{0}%
+ \TestSqr{1}{1}%
+ \TestSqr{2}{4}%
+ \TestSqr{3}{9}%
+ \TestSqr{4}{16}%
+ \TestSqr{9}{81}%
+ \TestSqr{10}{100}%
+ \TestSqr{46340}{2147395600}%
+ \TestSqr{-1}{1}%
+ \TestSqr{-2}{4}%
+ \TestSqr{-46340}{2147395600}%
+\end{qstest}
+
+\begin{qstest}{pow}{pow}
+ \TestPow{-2}{0}{1}%
+ \TestPow{-1}{0}{1}%
+ \TestPow{0}{0}{1}%
+ \TestPow{1}{0}{1}%
+ \TestPow{2}{0}{1}%
+ \TestPow{3}{0}{1}%
+ \TestPow{-2}{1}{-2}%
+ \TestPow{-1}{1}{-1}%
+ \TestPow{1}{1}{1}%
+ \TestPow{2}{1}{2}%
+ \TestPow{3}{1}{3}%
+ \TestPow{-2}{2}{4}%
+ \TestPow{-1}{2}{1}%
+ \TestPow{0}{2}{0}%
+ \TestPow{1}{2}{1}%
+ \TestPow{2}{2}{4}%
+ \TestPow{3}{2}{9}%
+ \TestPow{0}{1}{0}%
+ \TestPow{1}{-2}{1}%
+ \TestPow{1}{-1}{1}%
+ \TestPow{-1}{-2}{1}%
+ \TestPow{-1}{-1}{-1}%
+ \TestPow{-1}{3}{-1}%
+ \TestPow{-1}{4}{1}%
+ \TestPow{-2}{-1}{0}%
+ \TestPow{-2}{-2}{0}%
+ \TestPow{2}{3}{8}%
+ \TestPow{2}{4}{16}%
+ \TestPow{2}{5}{32}%
+ \TestPow{2}{6}{64}%
+ \TestPow{2}{7}{128}%
+ \TestPow{2}{8}{256}%
+ \TestPow{2}{9}{512}%
+ \TestPow{2}{10}{1024}%
+ \TestPow{-2}{3}{-8}%
+ \TestPow{-2}{4}{16}%
+ \TestPow{-2}{5}{-32}%
+ \TestPow{-2}{6}{64}%
+ \TestPow{-2}{7}{-128}%
+ \TestPow{-2}{8}{256}%
+ \TestPow{-2}{9}{-512}%
+ \TestPow{-2}{10}{1024}%
+ \TestPow{3}{3}{27}%
+ \TestPow{3}{4}{81}%
+ \TestPow{3}{5}{243}%
+ \TestPow{-3}{3}{-27}%
+ \TestPow{-3}{4}{81}%
+ \TestPow{-3}{5}{-243}%
+ \TestPow{2}{30}{1073741824}%
+ \TestPow{-3}{19}{-1162261467}%
+ \TestPow{5}{13}{1220703125}%
+ \TestPow{-7}{11}{-1977326743}%
+\end{qstest}
+
+\begin{qstest}{div}{div}
+ \TestDiv{1}{1}{1}%
+ \TestDiv{2}{1}{2}%
+ \TestDiv{-2}{1}{-2}%
+ \TestDiv{2}{-1}{-2}%
+ \TestDiv{-2}{-1}{2}%
+ \TestDiv{15}{2}{7}%
+ \TestDiv{-16}{2}{-8}%
+ \TestDiv{1}{2}{0}%
+ \TestDiv{1}{3}{0}%
+ \TestDiv{2}{3}{0}%
+ \TestDiv{-2}{3}{0}%
+ \TestDiv{2}{-3}{0}%
+ \TestDiv{-2}{-3}{0}%
+ \TestDiv{13}{3}{4}%
+ \TestDiv{-13}{-3}{4}%
+ \TestDiv{-13}{3}{-4}%
+ \TestDiv{-6}{5}{-1}%
+ \TestDiv{-5}{5}{-1}%
+ \TestDiv{-4}{5}{0}%
+ \TestDiv{-3}{5}{0}%
+ \TestDiv{-2}{5}{0}%
+ \TestDiv{-1}{5}{0}%
+ \TestDiv{0}{5}{0}%
+ \TestDiv{1}{5}{0}%
+ \TestDiv{2}{5}{0}%
+ \TestDiv{3}{5}{0}%
+ \TestDiv{4}{5}{0}%
+ \TestDiv{5}{5}{1}%
+ \TestDiv{6}{5}{1}%
+ \TestDiv{-5}{4}{-1}%
+ \TestDiv{-4}{4}{-1}%
+ \TestDiv{-3}{4}{0}%
+ \TestDiv{-2}{4}{0}%
+ \TestDiv{-1}{4}{0}%
+ \TestDiv{0}{4}{0}%
+ \TestDiv{1}{4}{0}%
+ \TestDiv{2}{4}{0}%
+ \TestDiv{3}{4}{0}%
+ \TestDiv{4}{4}{1}%
+ \TestDiv{5}{4}{1}%
+ \TestDiv{12345}{678}{18}%
+ \TestDiv{32372}{5952}{5}%
+ \TestDiv{284271294}{18162}{15651}%
+ \TestDiv{217652429}{12561}{17327}%
+ \TestDiv{462028434}{5439}{84947}%
+ \TestDiv{2147483647}{1000}{2147483}%
+ \TestDiv{2147483647}{-1000}{-2147483}%
+ \TestDiv{-2147483647}{1000}{-2147483}%
+ \TestDiv{-2147483647}{-1000}{2147483}%
+\end{qstest}
+
+\begin{qstest}{mod}{mod}
+ \TestMod{-6}{5}{4}%
+ \TestMod{-5}{5}{0}%
+ \TestMod{-4}{5}{1}%
+ \TestMod{-3}{5}{2}%
+ \TestMod{-2}{5}{3}%
+ \TestMod{-1}{5}{4}%
+ \TestMod{0}{5}{0}%
+ \TestMod{1}{5}{1}%
+ \TestMod{2}{5}{2}%
+ \TestMod{3}{5}{3}%
+ \TestMod{4}{5}{4}%
+ \TestMod{5}{5}{0}%
+ \TestMod{6}{5}{1}%
+ \TestMod{-5}{4}{3}%
+ \TestMod{-4}{4}{0}%
+ \TestMod{-3}{4}{1}%
+ \TestMod{-2}{4}{2}%
+ \TestMod{-1}{4}{3}%
+ \TestMod{0}{4}{0}%
+ \TestMod{1}{4}{1}%
+ \TestMod{2}{4}{2}%
+ \TestMod{3}{4}{3}%
+ \TestMod{4}{4}{0}%
+ \TestMod{5}{4}{1}%
+ \TestMod{-6}{-5}{-1}%
+ \TestMod{-5}{-5}{0}%
+ \TestMod{-4}{-5}{-4}%
+ \TestMod{-3}{-5}{-3}%
+ \TestMod{-2}{-5}{-2}%
+ \TestMod{-1}{-5}{-1}%
+ \TestMod{0}{-5}{0}%
+ \TestMod{1}{-5}{-4}%
+ \TestMod{2}{-5}{-3}%
+ \TestMod{3}{-5}{-2}%
+ \TestMod{4}{-5}{-1}%
+ \TestMod{5}{-5}{0}%
+ \TestMod{6}{-5}{-4}%
+ \TestMod{-5}{-4}{-1}%
+ \TestMod{-4}{-4}{0}%
+ \TestMod{-3}{-4}{-3}%
+ \TestMod{-2}{-4}{-2}%
+ \TestMod{-1}{-4}{-1}%
+ \TestMod{0}{-4}{0}%
+ \TestMod{1}{-4}{-3}%
+ \TestMod{2}{-4}{-2}%
+ \TestMod{3}{-4}{-1}%
+ \TestMod{4}{-4}{0}%
+ \TestMod{5}{-4}{-3}%
+ \TestMod{2147483647}{1000}{647}%
+ \TestMod{2147483647}{-1000}{-353}%
+ \TestMod{-2147483647}{1000}{353}%
+ \TestMod{-2147483647}{-1000}{-647}%
+ \TestMod{ 0 }{ 4 }{0}%
+ \TestMod{ 1 }{ 4 }{1}%
+ \TestMod{ -1 }{ 4 }{3}%
+ \TestMod{ 0 }{ -4 }{0}%
+ \TestMod{ 1 }{ -4 }{-3}%
+ \TestMod{ -1 }{ -4 }{-1}%
+\end{qstest}
+
+\newcommand*{\TestError}[2]{%
+ \begingroup
+ \expandafter\def\csname IntCalcError:#1\endcsname{}%
+ \Expect*{#2}{0}%
+ \expandafter\def\csname IntCalcError:#1\endcsname{ERROR}%
+ \Expect*{#2}{0ERROR }%
+ \endgroup
+}
+\begin{qstest}{error}{error}
+ \TestError{FacNegative}{\intcalcFac{-1}}%
+ \TestError{FacNegative}{\intcalcFac{-2147483647}}%
+ \TestError{FacOverflow}{\intcalcFac{13}}%
+ \TestError{FacOverflow}{\intcalcFac{2147483647}}%
+ \TestError{ShlNegativeNumber}{\intcalcShl{-1}}%
+ \TestError{ShrNegativeNumber}{\intcalcShr{-1}}%
+ \TestError{DivisionByZero}{\intcalcPow{0}{-1}}%
+ \TestError{DivisionByZero}{\intcalcDiv{1}{0}}%
+ \TestError{DivisionByZero}{\intcalcMod{1}{0}}%
+\end{qstest}
+
+\begin{document}
+\end{document}
+\endinput
+%%
+%% End of file `intcalc-test3.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/intcalc-test4.tex b/Master/texmf-dist/doc/latex/oberdiek/intcalc-test4.tex
new file mode 100644
index 00000000000..9d4d2391743
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/intcalc-test4.tex
@@ -0,0 +1,535 @@
+%%
+%% This is file `intcalc-test4.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% intcalc.dtx (with options: `test4,etex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file intcalc.dtx
+%% and the derived files
+%% intcalc.sty, intcalc.pdf, intcalc.ins, intcalc.drv,
+%% intcalc-test1.tex, intcalc-test2.tex, intcalc-test3.tex,
+%% intcalc-test4.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\nofiles
+\documentclass{article}
+\makeatletter
+\chardef\IntCalc@TestMode=1 %
+\makeatother
+\usepackage{intcalc}[2007/09/09]
+\usepackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+\newcommand*{\TestDo}[2]{%
+ \ifcase\numexpr#2\relax
+ \else
+ \edef\temp{\intcalcMod{#1}{#2}}%
+ \Expect*{%
+ \the\numexpr
+ \intcalcMul{%
+ \intcalcDiv{\intcalcAbs{#1}}{\intcalcAbs{#2}}%
+ }{\intcalcAbs{#2}}%
+ +\intcalcMod{\intcalcAbs{#1}}{\intcalcAbs{#2}}\relax
+ }*{\the\numexpr\intcalcAbs{#1}\relax}%
+ \fi
+}
+\newcommand*{\TestOne}[2]{%
+ \TestDo{#1}{#1}%
+}
+\newcommand*{\TestTwo}[3]{%
+ \TestDo{#1}{#2}%
+ \TestDo{#2}{#1}%
+}
+\let\TestInv\TestOne
+\let\TestAbs\TestOne
+\let\TestSgn\TestOne
+\let\TestMin\TestTwo
+\let\TestMax\TestTwo
+\let\TestCmp\TestTwo
+\let\TestInc\TestOne
+\let\TestDec\TestOne
+\let\TestAdd\TestTwo
+\let\TestSub\TestTwo
+\let\TestShl\TestOne
+\let\TestShr\TestOne
+\let\TestMul\TestTwo
+\let\TestSqr\TestOne
+\def\TestFac#1#2{}
+\let\TestPow\TestTwo
+\let\TestDiv\TestTwo
+\let\TestMod\TestTwo
+\makeatletter
+
+\begin{qstest}{inv}{inv}%
+ \TestInv{0}{0}%
+ \TestInv{1}{-1}%
+ \TestInv{-1}{1}%
+ \TestInv{10}{-10}%
+ \TestInv{-10}{10}%
+ \TestInv{2147483647}{-2147483647}%
+ \TestInv{-2147483647}{2147483647}%
+ \TestInv{ 0 }{0}%
+ \TestInv{ 1 }{-1}%
+ \TestInv{--1}{-1}%
+ \TestInv{\z@}{0}%
+ \TestInv{\@ne}{-1}%
+ \TestInv{\m@ne}{1}%
+ \TestInv{-10+30}{-20}%
+ \TestInv{10-30}{20}%
+\end{qstest}
+
+\begin{qstest}{abs}{abs}%
+ \TestAbs{0}{0}%
+ \TestAbs{1}{1}%
+ \TestAbs{-1}{1}%
+ \TestAbs{10}{10}%
+ \TestAbs{-10}{10}%
+ \TestAbs{2147483647}{2147483647}%
+ \TestAbs{-2147483647}{2147483647}%
+ \TestAbs{ 0 }{0}%
+ \TestAbs{ 1 }{1}%
+ \TestAbs{--1}{1}%
+ \TestAbs{\z@}{0}%
+ \TestAbs{\@ne}{1}%
+ \TestAbs{\m@ne}{1}%
+ \TestAbs{-10+30}{20}%
+ \TestAbs{10-30}{20}%
+\end{qstest}
+
+\begin{qstest}{sign}{sign}%
+ \TestSgn{0}{0}%
+ \TestSgn{1}{1}%
+ \TestSgn{-1}{-1}%
+ \TestSgn{10}{1}%
+ \TestSgn{-10}{-1}%
+ \TestSgn{2147483647}{1}%
+ \TestSgn{-2147483647}{-1}%
+ \TestSgn{ 0 }{0}%
+ \TestSgn{ 2 }{1}%
+ \TestSgn{ -2 }{-1}%
+ \TestSgn{--2}{1}%
+ \TestSgn{\z@}{0}%
+ \TestSgn{\@ne}{1}%
+ \TestSgn{\m@ne}{-1}%
+ \TestSgn{-10+30}{1}%
+ \TestSgn{10-30}{-1}%
+\end{qstest}
+
+\begin{qstest}{min}{min}%
+ \TestMin{0}{1}{0}%
+ \TestMin{1}{0}{0}%
+ \TestMin{-10}{-20}{-20}%
+ \TestMin{ 1 }{ 2 }{1}%
+ \TestMin{ 2 }{ 1 }{1}%
+ \TestMin{1}{1}{1}%
+ \TestMin{\z@}{\@ne}{0}%
+ \TestMin{\@ne}{\m@ne}{-1}%
+ \TestMin{1+2}{3+4}{3}%
+\end{qstest}
+
+\begin{qstest}{max}{max}%
+ \TestMax{0}{1}{1}%
+ \TestMax{1}{0}{1}%
+ \TestMax{-10}{-20}{-10}%
+ \TestMax{ 1 }{ 2 }{2}%
+ \TestMax{ 2 }{ 1 }{2}%
+ \TestMax{1}{1}{1}%
+ \TestMax{\z@}{\@ne}{1}%
+ \TestMax{\@ne}{\m@ne}{1}%
+ \TestMax{1+2}{3+4}{7}%
+\end{qstest}
+
+\begin{qstest}{cmp}{cmp}%
+ \TestCmp{0}{0}{0}%
+ \TestCmp{-21}{17}{-1}%
+ \TestCmp{3}{4}{-1}%
+ \TestCmp{-10}{-10}{0}%
+ \TestCmp{-10}{-11}{1}%
+ \TestCmp{100}{5}{1}%
+ \TestCmp{2147483647}{-2147483647}{1}%
+ \TestCmp{-2147483647}{2147483647}{-1}%
+ \TestCmp{2147483647}{2147483647}{0}%
+ \TestCmp{\z@}{\@ne}{-1}%
+ \TestCmp{\@ne}{\m@ne}{1}%
+ \TestCmp{ 4 }{ 5 }{-1}%
+ \TestCmp{ -3 }{ -7 }{1}%
+ \TestCmp{1+2}{3+4}{-1}%
+\end{qstest}
+
+\begin{qstest}{fac}{fac}
+ \TestFac{0}{1}%
+ \TestFac{1}{1}%
+ \TestFac{2}{2}%
+ \TestFac{3}{2*3}%
+ \TestFac{4}{2*3*4}%
+ \TestFac{5}{2*3*4*5}%
+ \TestFac{6}{2*3*4*5*6}%
+ \TestFac{7}{2*3*4*5*6*7}%
+ \TestFac{8}{2*3*4*5*6*7*8}%
+ \TestFac{9}{2*3*4*5*6*7*8*9}%
+ \TestFac{10}{2*3*4*5*6*7*8*9*10}%
+ \TestFac{11}{2*3*4*5*6*7*8*9*10*11}%
+ \TestFac{12}{2*3*4*5*6*7*8*9*10*11*12}%
+\end{qstest}
+
+\begin{qstest}{inc}{inc}%
+ \TestInc{0}{1}%
+ \TestInc{1}{2}%
+ \TestInc{-1}{0}%
+ \TestInc{10}{11}%
+ \TestInc{-10}{-9}%
+ \TestInc{999}{1000}%
+ \TestInc{-1000}{-999}%
+ \TestInc{129}{130}%
+ \TestInc{2147483646}{2147483647}%
+ \TestInc{-2147483647}{-2147483646}%
+\end{qstest}
+
+\begin{qstest}{dec}{dec}%
+ \TestDec{0}{-1}%
+ \TestDec{1}{0}%
+ \TestDec{-1}{-2}%
+ \TestDec{10}{9}%
+ \TestDec{-10}{-11}%
+ \TestDec{1000}{999}%
+ \TestDec{-999}{-1000}%
+ \TestDec{130}{129}%
+ \TestDec{2147483647}{2147483646}%
+ \TestDec{-2147483646}{-2147483647}%
+\end{qstest}
+
+\begin{qstest}{add}{add}%
+ \TestAdd{0}{0}{0}%
+ \TestAdd{1}{0}{1}%
+ \TestAdd{0}{1}{1}%
+ \TestAdd{1}{2}{3}%
+ \TestAdd{-1}{-1}{-2}%
+ \TestAdd{2147483646}{1}{2147483647}%
+ \TestAdd{-2147483647}{2147483647}{0}%
+ \TestAdd{20}{-5}{15}%
+ \TestAdd{-4}{-1}{-5}%
+ \TestAdd{-1}{-4}{-5}%
+ \TestAdd{-4}{1}{-3}%
+ \TestAdd{-1}{4}{3}%
+ \TestAdd{4}{-1}{3}%
+ \TestAdd{1}{-4}{-3}%
+ \TestAdd{-4}{-1}{-5}%
+ \TestAdd{-1}{-4}{-5}%
+ \TestAdd{ -4 }{ -1 }{-5}%
+ \TestAdd{ -1 }{ -4 }{-5}%
+ \TestAdd{ -4 }{ 1 }{-3}%
+ \TestAdd{ -1 }{ 4 }{3}%
+ \TestAdd{ 4 }{ -1 }{3}%
+ \TestAdd{ 1 }{ -4 }{-3}%
+ \TestAdd{ -4 }{ -1 }{-5}%
+ \TestAdd{ -1 }{ -4 }{-5}%
+ \TestAdd{876543210}{111111111}{987654321}%
+ \TestAdd{999999999}{2}{1000000001}%
+ \TestAdd{100}{50+150}{300}%
+ \TestAdd{2147483647}{10-2147483647}{10}%
+\end{qstest}
+
+\begin{qstest}{sub}{sub}
+ \TestSub{0}{0}{0}%
+ \TestSub{1}{0}{1}%
+ \TestSub{1}{2}{-1}%
+ \TestSub{-1}{-1}{0}%
+ \TestSub{2147483646}{-1}{2147483647}%
+ \TestSub{-2147483647}{-2147483647}{0}%
+ \TestSub{-4}{-1}{-3}%
+ \TestSub{-1}{-4}{3}%
+ \TestSub{-4}{1}{-5}%
+ \TestSub{-1}{4}{-5}%
+ \TestSub{4}{-1}{5}%
+ \TestSub{1}{-4}{5}%
+ \TestSub{-4}{-1}{-3}%
+ \TestSub{-1}{-4}{3}%
+ \TestSub{ -4 }{ -1 }{-3}%
+ \TestSub{ -1 }{ -4 }{3}%
+ \TestSub{ -4 }{ 1 }{-5}%
+ \TestSub{ -1 }{ 4 }{-5}%
+ \TestSub{ 4 }{ -1 }{5}%
+ \TestSub{ 1 }{ -4 }{5}%
+ \TestSub{ -4 }{ -1 }{-3}%
+ \TestSub{ -1 }{ -4 }{3}%
+ \TestSub{1000000000}{2}{999999998}%
+ \TestSub{987654321}{111111111}{876543210}%
+ \TestSub{100}{50+150}{-100}%
+ \TestSub{2147483647}{-10+2147483647}{10}%
+\end{qstest}
+
+\begin{qstest}{shl}{shl}
+ \TestShl{0}{0}%
+ \TestShl{1}{2}%
+ \TestShl{5621}{11242}%
+ \TestShl{1073741823}{2147483646}%
+\end{qstest}
+
+\begin{qstest}{shr}{shr}
+ \TestShr{0}{0}%
+ \TestShr{1}{0}%
+ \TestShr{2}{1}%
+ \TestShr{3}{1}%
+ \TestShr{4}{2}%
+ \TestShr{5}{2}%
+ \TestShr{6}{3}%
+ \TestShr{7}{3}%
+ \TestShr{8}{4}%
+ \TestShr{9}{4}%
+ \TestShr{10}{5}%
+ \TestShr{11}{5}%
+ \TestShr{12}{6}%
+ \TestShr{13}{6}%
+ \TestShr{14}{7}%
+ \TestShr{15}{7}%
+ \TestShr{16}{8}%
+ \TestShr{17}{8}%
+ \TestShr{18}{9}%
+ \TestShr{19}{9}%
+ \TestShr{20}{10}%
+ \TestShr{21}{10}%
+ \TestShr{22}{11}%
+ \TestShr{11241}{5620}%
+ \TestShr{73054202}{36527101}%
+ \TestShr{2147483646}{1073741823}%
+\end{qstest}
+
+\begin{qstest}{mul}{mul}
+ \TestMul{0}{0}{0}%
+ \TestMul{1}{0}{0}%
+ \TestMul{0}{1}{0}%
+ \TestMul{1}{1}{1}%
+ \TestMul{3}{1}{3}%
+ \TestMul{1}{-3}{-3}%
+ \TestMul{-4}{-5}{20}%
+ \TestMul{3}{7}{21}%
+ \TestMul{7}{3}{21}%
+ \TestMul{3}{-7}{-21}%
+ \TestMul{7}{-3}{-21}%
+ \TestMul{-3}{7}{-21}%
+ \TestMul{-7}{3}{-21}%
+ \TestMul{-3}{-7}{21}%
+ \TestMul{-7}{-3}{21}%
+ \TestMul{12}{11}{132}%
+ \TestMul{999}{333}{332667}%
+ \TestMul{1000}{4321}{4321000}%
+ \TestMul{12345}{173955}{2147474475}%
+ \TestMul{1073741823}{2}{2147483646}%
+ \TestMul{2}{1073741823}{2147483646}%
+ \TestMul{-1073741823}{2}{-2147483646}%
+ \TestMul{2}{-1073741823}{-2147483646}%
+ \TestMul{2+3}{5+7}{60}%
+ \TestMul{2147483647}{2147483647/2147483647}{2147483647}%
+\end{qstest}
+
+\begin{qstest}{sqr}{sqr}
+ \TestSqr{0}{0}%
+ \TestSqr{1}{1}%
+ \TestSqr{2}{4}%
+ \TestSqr{3}{9}%
+ \TestSqr{4}{16}%
+ \TestSqr{9}{81}%
+ \TestSqr{10}{100}%
+ \TestSqr{46340}{2147395600}%
+ \TestSqr{-1}{1}%
+ \TestSqr{-2}{4}%
+ \TestSqr{-46340}{2147395600}%
+\end{qstest}
+
+\begin{qstest}{pow}{pow}
+ \TestPow{-2}{0}{1}%
+ \TestPow{-1}{0}{1}%
+ \TestPow{0}{0}{1}%
+ \TestPow{1}{0}{1}%
+ \TestPow{2}{0}{1}%
+ \TestPow{3}{0}{1}%
+ \TestPow{-2}{1}{-2}%
+ \TestPow{-1}{1}{-1}%
+ \TestPow{1}{1}{1}%
+ \TestPow{2}{1}{2}%
+ \TestPow{3}{1}{3}%
+ \TestPow{-2}{2}{4}%
+ \TestPow{-1}{2}{1}%
+ \TestPow{0}{2}{0}%
+ \TestPow{1}{2}{1}%
+ \TestPow{2}{2}{4}%
+ \TestPow{3}{2}{9}%
+ \TestPow{0}{1}{0}%
+ \TestPow{1}{-2}{1}%
+ \TestPow{1}{-1}{1}%
+ \TestPow{-1}{-2}{1}%
+ \TestPow{-1}{-1}{-1}%
+ \TestPow{-1}{3}{-1}%
+ \TestPow{-1}{4}{1}%
+ \TestPow{-2}{-1}{0}%
+ \TestPow{-2}{-2}{0}%
+ \TestPow{2}{3}{8}%
+ \TestPow{2}{4}{16}%
+ \TestPow{2}{5}{32}%
+ \TestPow{2}{6}{64}%
+ \TestPow{2}{7}{128}%
+ \TestPow{2}{8}{256}%
+ \TestPow{2}{9}{512}%
+ \TestPow{2}{10}{1024}%
+ \TestPow{-2}{3}{-8}%
+ \TestPow{-2}{4}{16}%
+ \TestPow{-2}{5}{-32}%
+ \TestPow{-2}{6}{64}%
+ \TestPow{-2}{7}{-128}%
+ \TestPow{-2}{8}{256}%
+ \TestPow{-2}{9}{-512}%
+ \TestPow{-2}{10}{1024}%
+ \TestPow{3}{3}{27}%
+ \TestPow{3}{4}{81}%
+ \TestPow{3}{5}{243}%
+ \TestPow{-3}{3}{-27}%
+ \TestPow{-3}{4}{81}%
+ \TestPow{-3}{5}{-243}%
+ \TestPow{2}{30}{1073741824}%
+ \TestPow{-3}{19}{-1162261467}%
+ \TestPow{5}{13}{1220703125}%
+ \TestPow{-7}{11}{-1977326743}%
+\end{qstest}
+
+\begin{qstest}{div}{div}
+ \TestDiv{1}{1}{1}%
+ \TestDiv{2}{1}{2}%
+ \TestDiv{-2}{1}{-2}%
+ \TestDiv{2}{-1}{-2}%
+ \TestDiv{-2}{-1}{2}%
+ \TestDiv{15}{2}{7}%
+ \TestDiv{-16}{2}{-8}%
+ \TestDiv{1}{2}{0}%
+ \TestDiv{1}{3}{0}%
+ \TestDiv{2}{3}{0}%
+ \TestDiv{-2}{3}{0}%
+ \TestDiv{2}{-3}{0}%
+ \TestDiv{-2}{-3}{0}%
+ \TestDiv{13}{3}{4}%
+ \TestDiv{-13}{-3}{4}%
+ \TestDiv{-13}{3}{-4}%
+ \TestDiv{-6}{5}{-1}%
+ \TestDiv{-5}{5}{-1}%
+ \TestDiv{-4}{5}{0}%
+ \TestDiv{-3}{5}{0}%
+ \TestDiv{-2}{5}{0}%
+ \TestDiv{-1}{5}{0}%
+ \TestDiv{0}{5}{0}%
+ \TestDiv{1}{5}{0}%
+ \TestDiv{2}{5}{0}%
+ \TestDiv{3}{5}{0}%
+ \TestDiv{4}{5}{0}%
+ \TestDiv{5}{5}{1}%
+ \TestDiv{6}{5}{1}%
+ \TestDiv{-5}{4}{-1}%
+ \TestDiv{-4}{4}{-1}%
+ \TestDiv{-3}{4}{0}%
+ \TestDiv{-2}{4}{0}%
+ \TestDiv{-1}{4}{0}%
+ \TestDiv{0}{4}{0}%
+ \TestDiv{1}{4}{0}%
+ \TestDiv{2}{4}{0}%
+ \TestDiv{3}{4}{0}%
+ \TestDiv{4}{4}{1}%
+ \TestDiv{5}{4}{1}%
+ \TestDiv{12345}{678}{18}%
+ \TestDiv{32372}{5952}{5}%
+ \TestDiv{284271294}{18162}{15651}%
+ \TestDiv{217652429}{12561}{17327}%
+ \TestDiv{462028434}{5439}{84947}%
+ \TestDiv{2147483647}{1000}{2147483}%
+ \TestDiv{2147483647}{-1000}{-2147483}%
+ \TestDiv{-2147483647}{1000}{-2147483}%
+ \TestDiv{-2147483647}{-1000}{2147483}%
+\end{qstest}
+
+\begin{qstest}{mod}{mod}
+ \TestMod{-6}{5}{4}%
+ \TestMod{-5}{5}{0}%
+ \TestMod{-4}{5}{1}%
+ \TestMod{-3}{5}{2}%
+ \TestMod{-2}{5}{3}%
+ \TestMod{-1}{5}{4}%
+ \TestMod{0}{5}{0}%
+ \TestMod{1}{5}{1}%
+ \TestMod{2}{5}{2}%
+ \TestMod{3}{5}{3}%
+ \TestMod{4}{5}{4}%
+ \TestMod{5}{5}{0}%
+ \TestMod{6}{5}{1}%
+ \TestMod{-5}{4}{3}%
+ \TestMod{-4}{4}{0}%
+ \TestMod{-3}{4}{1}%
+ \TestMod{-2}{4}{2}%
+ \TestMod{-1}{4}{3}%
+ \TestMod{0}{4}{0}%
+ \TestMod{1}{4}{1}%
+ \TestMod{2}{4}{2}%
+ \TestMod{3}{4}{3}%
+ \TestMod{4}{4}{0}%
+ \TestMod{5}{4}{1}%
+ \TestMod{-6}{-5}{-1}%
+ \TestMod{-5}{-5}{0}%
+ \TestMod{-4}{-5}{-4}%
+ \TestMod{-3}{-5}{-3}%
+ \TestMod{-2}{-5}{-2}%
+ \TestMod{-1}{-5}{-1}%
+ \TestMod{0}{-5}{0}%
+ \TestMod{1}{-5}{-4}%
+ \TestMod{2}{-5}{-3}%
+ \TestMod{3}{-5}{-2}%
+ \TestMod{4}{-5}{-1}%
+ \TestMod{5}{-5}{0}%
+ \TestMod{6}{-5}{-4}%
+ \TestMod{-5}{-4}{-1}%
+ \TestMod{-4}{-4}{0}%
+ \TestMod{-3}{-4}{-3}%
+ \TestMod{-2}{-4}{-2}%
+ \TestMod{-1}{-4}{-1}%
+ \TestMod{0}{-4}{0}%
+ \TestMod{1}{-4}{-3}%
+ \TestMod{2}{-4}{-2}%
+ \TestMod{3}{-4}{-1}%
+ \TestMod{4}{-4}{0}%
+ \TestMod{5}{-4}{-3}%
+ \TestMod{2147483647}{1000}{647}%
+ \TestMod{2147483647}{-1000}{-353}%
+ \TestMod{-2147483647}{1000}{353}%
+ \TestMod{-2147483647}{-1000}{-647}%
+ \TestMod{ 0 }{ 4 }{0}%
+ \TestMod{ 1 }{ 4 }{1}%
+ \TestMod{ -1 }{ 4 }{3}%
+ \TestMod{ 0 }{ -4 }{0}%
+ \TestMod{ 1 }{ -4 }{-3}%
+ \TestMod{ -1 }{ -4 }{-1}%
+ \TestMod{1+2}{1+3}{3}%
+ \TestMod{1-2}{1+3}{3}%
+ \TestMod{1-2}{1-4}{-1}%
+ \TestMod{1+2}{1-4}{0}%
+ \TestMod{1+2}{1-5}{-1}%
+\end{qstest}
+
+
+\begin{document}
+\end{document}
+\endinput
+%%
+%% End of file `intcalc-test4.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/intcalc.pdf b/Master/texmf-dist/doc/latex/oberdiek/intcalc.pdf
new file mode 100644
index 00000000000..a3978b992e8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/intcalc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/kvoptions.pdf b/Master/texmf-dist/doc/latex/oberdiek/kvoptions.pdf
index b97494337ee..57996c95bab 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/kvoptions.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/kvoptions.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys-example.tex b/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys-example.tex
index 48a07c3b9b7..1466159e2db 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys-example.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys-example.tex
@@ -8,7 +8,7 @@
%%
%% This is a generated file.
%%
-%% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%% Copyright (C) 2006, 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -25,7 +25,7 @@
%% This work consists of the main source file kvsetkeys.dtx
%% and the derived files
%% kvsetkeys.sty, kvsetkeys.pdf, kvsetkeys.ins, kvsetkeys.drv,
-%% kvsetkeys-example.tex.
+%% kvsetkeys-example.tex, kvsetkeys-test1.tex.
%%
\documentclass{article}
\usepackage[T1]{fontenc}
diff --git a/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys-test1.tex
new file mode 100644
index 00000000000..718ce0bced8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys-test1.tex
@@ -0,0 +1,73 @@
+%%
+%% This is file `kvsetkeys-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% kvsetkeys.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2006, 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file kvsetkeys.dtx
+%% and the derived files
+%% kvsetkeys.sty, kvsetkeys.pdf, kvsetkeys.ins, kvsetkeys.drv,
+%% kvsetkeys-example.tex, kvsetkeys-test1.tex.
+%%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input kvsetkeys.sty\relax
+ \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
+\end
+\endinput
+%%
+%% End of file `kvsetkeys-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys.pdf b/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys.pdf
index ec3c2ebbe24..eb2c8c0652b 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/makerobust.pdf b/Master/texmf-dist/doc/latex/oberdiek/makerobust.pdf
index f2039c821cf..77dfad4fa94 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/makerobust.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/makerobust.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/oberdiek.pdf b/Master/texmf-dist/doc/latex/oberdiek/oberdiek.pdf
index b2f5c2da126..621d9703be5 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/oberdiek.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/oberdiek.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pagesel.pdf b/Master/texmf-dist/doc/latex/oberdiek/pagesel.pdf
index 6ac5c6e8ef7..0be191a8819 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/pagesel.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/pagesel.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcol-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/pdfcol-test1.tex
new file mode 100644
index 00000000000..531c7b9114f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcol-test1.tex
@@ -0,0 +1,73 @@
+%%
+%% This is file `pdfcol-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pdfcol.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file pdfcol.dtx
+%% and the derived files
+%% pdfcol.sty, pdfcol.pdf, pdfcol.ins, pdfcol.drv,
+%% pdfcol-test1.tex, pdfcol-test2.tex, pdfcol-test3.tex.
+%%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input pdfcol.sty\relax
+ \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
+\end
+\endinput
+%%
+%% End of file `pdfcol-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcol-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/pdfcol-test2.tex
new file mode 100644
index 00000000000..98a4e6e52f1
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcol-test2.tex
@@ -0,0 +1,53 @@
+%%
+%% This is file `pdfcol-test2.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pdfcol.dtx (with options: `test2')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file pdfcol.dtx
+%% and the derived files
+%% pdfcol.sty, pdfcol.pdf, pdfcol.ins, pdfcol.drv,
+%% pdfcol-test1.tex, pdfcol-test2.tex, pdfcol-test3.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\nofiles
+\documentclass{article}
+\usepackage{pdfcol}[2007/09/09]
+\usepackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+\begin{document}
+ \begin{qstest}{pdfcol}{}%
+ \makeatletter
+ \Expect*{\ifpdfcolAvailable true\else false\fi}{false}%
+ \setbox0=\hbox{%
+ \pdfcolInitStack{test}%
+ \pdfcolSwitchStack{test}%
+ \pdfcolSetCurrent{test}%
+ \pdfcolSetCurrent{}%
+ }%
+ \Expect*{\the\wd0}{0.0pt}%
+ \Expect*{\pdfcolIfStackExists{dummy}{true}{false}}{false}%
+ \end{qstest}%
+\end{document}
+\endinput
+%%
+%% End of file `pdfcol-test2.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcol-test3.tex b/Master/texmf-dist/doc/latex/oberdiek/pdfcol-test3.tex
new file mode 100644
index 00000000000..027ad453882
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcol-test3.tex
@@ -0,0 +1,60 @@
+%%
+%% This is file `pdfcol-test3.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pdfcol.dtx (with options: `test3')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file pdfcol.dtx
+%% and the derived files
+%% pdfcol.sty, pdfcol.pdf, pdfcol.ins, pdfcol.drv,
+%% pdfcol-test1.tex, pdfcol-test2.tex, pdfcol-test3.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\nofiles
+\documentclass{article}
+\usepackage{pdfcol}[2007/09/09]
+\usepackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+\begin{document}
+ \begin{qstest}{pdfcol}{}%
+ \makeatletter
+ \Expect*{\ifpdfcolAvailable true\else false\fi}{true}%
+ \Expect*{\number\@pdfcolorstack}{0}%
+ \setbox0=\hbox{%
+ \pdfcolInitStack{test}%
+ \Expect*{\number\pdfcol@Stack@test}{1}%
+ \Expect*{\number\@pdfcolorstack}{0}%
+ \pdfcolSwitchStack{test}%
+ \Expect*{\number\@pdfcolorstack}{1}%
+ \pdfcolSetCurrent{test}%
+ \pdfcolSetCurrent{}%
+ }%
+ \Expect*{\the\wd0}{0.0pt}%
+ \Expect*{\number\@pdfcolorstack}{0}%
+ \Expect*{\number\pdfcol@Stack@test}{1}%
+ \Expect*{\pdfcolIfStackExists{test}{true}{false}}{true}%
+ \Expect*{\pdfcolIfStackExists{dummy}{true}{false}}{false}%
+ \end{qstest}%
+\end{document}
+\endinput
+%%
+%% End of file `pdfcol-test3.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcol.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfcol.pdf
new file mode 100644
index 00000000000..be5d4d31346
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcol.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcolfoot-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/pdfcolfoot-test1.tex
new file mode 100644
index 00000000000..5ea5fc5e585
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcolfoot-test1.tex
@@ -0,0 +1,52 @@
+%%
+%% This is file `pdfcolfoot-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pdfcolfoot.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file pdfcolfoot.dtx
+%% and the derived files
+%% pdfcolfoot.sty, pdfcolfoot.pdf, pdfcolfoot.ins, pdfcolfoot.drv,
+%% pdfcolfoot-test1.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\AtEndDocument{%
+ \typeout{}%
+ \typeout{**************************************}%
+ \typeout{*** \space Check the PDF file manually! \space ***}%
+ \typeout{**************************************}%
+ \typeout{}%
+}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname pdfcompresslevel\endcsname\relax
+\else
+ \pdfcompresslevel=0 %
+\fi
+\documentclass[12pt,a5paper]{article}
+\usepackage{pdfcolfoot}[2007/09/09]
+\dimen\footins=\baselineskip % for testing
+\begin{document}
+ Black\footnote{Black \textcolor{blue}{Blue\\Blue} Black} %
+ \textcolor{red}{Red\newpage Red} Black%
+\end{document}
+\endinput
+%%
+%% End of file `pdfcolfoot-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcolfoot.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfcolfoot.pdf
index a9e7d244224..48ae28c940f 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/pdfcolfoot.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcolfoot.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcolmk.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfcolmk.pdf
index f98b9272f67..7e34d34f014 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/pdfcolmk.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcolmk.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcolparallel-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/pdfcolparallel-test1.tex
new file mode 100644
index 00000000000..d15d2454c5d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcolparallel-test1.tex
@@ -0,0 +1,79 @@
+%%
+%% This is file `pdfcolparallel-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pdfcolparallel.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file pdfcolparallel.dtx
+%% and the derived files
+%% pdfcolparallel.sty, pdfcolparallel.pdf, pdfcolparallel.ins, pdfcolparallel.drv,
+%% pdfcolparallel-test1.tex.
+%%
+\AtEndDocument{%
+ \typeout{}%
+ \typeout{**************************************}%
+ \typeout{*** \space Check the PDF file manually! \space ***}%
+ \typeout{**************************************}%
+ \typeout{}%
+}
+\documentclass{article}
+\usepackage{xcolor}
+\usepackage{pdfcolparallel}[2007/09/09]
+
+\begin{document}
+ \color{green}%
+ Green%
+ \begin{Parallel}{0.47\textwidth}{0.47\textwidth}%
+ \ParallelLText{%
+ \textcolor{red}{%
+ Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. %
+ Ein Absatz, der sich ueber zwei Zeilen erstrecken soll.%
+ }%
+ }%
+ \ParallelRText{%
+ \textcolor{blue}{%
+ Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. %
+ Ein Absatz, der sich ueber zwei Zeilen erstrecken soll.%
+ }%
+ }%
+ \end{Parallel}%
+ Green%
+ \begin{Parallel}[p]{\textwidth}{\textwidth}%
+ \ParallelLText{%
+ \textcolor{red}{%
+ Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. %
+ Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. %
+ Foo bar bla bla bla.%
+ }%
+ }%
+ \ParallelRText{%
+ \textcolor{blue}{%
+ Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. %
+ Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. %
+ Foo bar bla bla bla.%
+ }%
+ }%
+ \end{Parallel}%
+ Green%
+\end{document}
+\endinput
+%%
+%% End of file `pdfcolparallel-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcolparallel.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfcolparallel.pdf
new file mode 100644
index 00000000000..ab399713002
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcolparallel.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcolparcolumns-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/pdfcolparcolumns-test1.tex
new file mode 100644
index 00000000000..531fe69027e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcolparcolumns-test1.tex
@@ -0,0 +1,73 @@
+%%
+%% This is file `pdfcolparcolumns-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pdfcolparcolumns.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file pdfcolparcolumns.dtx
+%% and the derived files
+%% pdfcolparcolumns.sty, pdfcolparcolumns.pdf, pdfcolparcolumns.ins, pdfcolparcolumns.drv,
+%% pdfcolparcolumns-test1.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\AtEndDocument{%
+ \typeout{}%
+ \typeout{**************************************}%
+ \typeout{*** \space Check the PDF file manually! \space ***}%
+ \typeout{**************************************}%
+ \typeout{}%
+}
+\documentclass{article}
+\usepackage{xcolor}
+\usepackage{pdfcolparcolumns}
+
+\newcommand{\instruct}[1]{%
+ \noindent
+ \footnotesize
+ \textcolor{red}{#1}%
+}
+
+\begin{document}
+ \begin{parcolumns}[colwidths={1=2.3in,2=2.3in},sloppy]{2}%
+ \colchunk[1]{%
+ \instruct{Et non dicitur versus} %
+ Fidelium anim\ae\ %
+ \instruct{%
+ sed immediate subiungitur antiphona finalis %
+ beat\ae\ Mari\ae\ Virginis%
+ } %
+ 100.%
+ }%
+ \colchunk[2]{%
+ \instruct{%
+ And the verse %
+ \textcolor{black}{May the souls of the faithful} %
+ is not said, but the final antiphon of the %
+ Blessed Virgin Mary, %
+ \textcolor{black}{100,} %
+ is immediately joined.%
+ }%
+ }%
+ \end{parcolumns}%
+\end{document}
+\endinput
+%%
+%% End of file `pdfcolparcolumns-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcolparcolumns.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfcolparcolumns.pdf
new file mode 100644
index 00000000000..4e252de7e10
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcolparcolumns.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcrypt.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfcrypt.pdf
index 77f9a1093bc..52eda074d29 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/pdfcrypt.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcrypt.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test1.tex
index d7d2d9a86a7..ff1f9fc9d3a 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test1.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test1.tex
@@ -26,362 +26,49 @@
%% and the derived files
%% pdfescape.sty, pdfescape.pdf, pdfescape.ins, pdfescape.drv,
%% pdfescape-test1.tex, pdfescape-test2.tex,
-%% pdfescape-test3.tex.
+%% pdfescape-test3.tex, pdfescape-test4.tex.
%%
-\NeedsTeXFormat{LaTeX2e}
-\makeatletter
-\ProvidesFile{pdfescape-test1.tex}%
- [2007/04/21 v1.4 Test with \string\pdfescape... commands]%
-\@ifundefined{pdfescapehex}{%
- \PackageError{pdfescape-test1}{%
- Missing \string\pdfescape... commands%
- }{Test aborted.}%
- \stop
-}{}
-\RequirePackage{qstest}
-\IncludeTests{*}
-\LogTests{log}{*}{*}
-
-\newcommand*{\ExpectVar}[2]{%
- \ifx#1#2%
- \else
- \begingroup
- \@onelevel@sanitize#1%
- \@onelevel@sanitize#2%
- \typeout{[#1] <> [#2]}% hash-ok
- \endgroup
- \fi
- \Expect*{\ifx#1#2true\else false\fi}{true}%
-}
-
-\makeatletter
-\begingroup
- \gdef\AllBytes{}%
- \count@=0 %
- \catcode0=12 %
- \@whilenum\count@<256 \do{%
- \lccode0=\count@
- \ifnum\count@=32 %
- \xdef\AllBytes{\AllBytes\space}%
- \else
- \lowercase{%
- \xdef\AllBytes{\AllBytes^^@}%
- }%
- \fi
- \advance\count@ by 1 %
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
}%
-\endgroup
-\newcommand*{\AllBytesHex}{%
- 000102030405060708090A0B0C0D0E0F%
- 101112131415161718191A1B1C1D1E1F%
- 202122232425262728292A2B2C2D2E2F%
- 303132333435363738393A3B3C3D3E3F%
- 404142434445464748494A4B4C4D4E4F%
- 505152535455565758595A5B5C5D5E5F%
- 606162636465666768696A6B6C6D6E6F%
- 707172737475767778797A7B7C7D7E7F%
- 808182838485868788898A8B8C8D8E8F%
- 909192939495969798999A9B9C9D9E9F%
- A0A1A2A3A4A5A6A7A8A9AAABACADAEAF%
- B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF%
- C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF%
- D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF%
- E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF%
- F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
}
-\@onelevel@sanitize\AllBytesHex
-\expandafter\lowercase\expandafter{%
- \expandafter\newcommand\expandafter*\expandafter\AllBytesHexLC
- \expandafter{\AllBytesHex}%
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input pdfescape.sty\relax
+ \RestoreCatcodes
}
-\newcommand*{\AllBytesName}{}
-\begingroup
- \catcode`\#=12 %
- \xdef\AllBytesName{%
- #01#02#03#04#05#06#07#08#09#0A#0B#0C#0D#0E#0F%
- #10#11#12#13#14#15#16#17#18#19#1A#1B#1C#1D#1E#1F%
- #20!"#23$#25&'#28#29*+,-.#2F%
- 0123456789:;#3C=#3E?%
- @ABCDEFGHIJKLMNO%
- PQRSTUVWXYZ#5B\@backslashchar#5D^_%
- `abcdefghijklmno%
- pqrstuvwxyz#7B|#7D\string~#7F%
- #80#81#82#83#84#85#86#87#88#89#8A#8B#8C#8D#8E#8F%
- #90#91#92#93#94#95#96#97#98#99#9A#9B#9C#9D#9E#9F%
- #A0#A1#A2#A3#A4#A5#A6#A7#A8#A9#AA#AB#AC#AD#AE#AF%
- #B0#B1#B2#B3#B4#B5#B6#B7#B8#B9#BA#BB#BC#BD#BE#BF%
- #C0#C1#C2#C3#C4#C5#C6#C7#C8#C9#CA#CB#CC#CD#CE#CF%
- #D0#D1#D2#D3#D4#D5#D6#D7#D8#D9#DA#DB#DC#DD#DE#DF%
- #E0#E1#E2#E3#E4#E5#E6#E7#E8#E9#EA#EB#EC#ED#EE#EF%
- #F0#F1#F2#F3#F4#F5#F6#F7#F8#F9#FA#FB#FC#FD#FE#FF%
- }%
-\endgroup
-\@onelevel@sanitize\AllBytesName
-
-\newcommand*{\AllBytesString}{}
-\begingroup
- \def\|{|}%
- \edef\%{\@percentchar}%
- \catcode`\|=0 %
- \catcode`\#=12 %
- \catcode`\~=12 %
- \catcode`\\=12 %
- |xdef|AllBytesString{%
- \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017%
- \020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037%
- \040!"#$|%&'\(\)*+,-./%
- 0123456789:;<=>?%
- @ABCDEFGHIJKLMNO%
- PQRSTUVWXYZ[\\]^_%
- `abcdefghijklmno%
- pqrstuvwxyz{||}~\177%
- \200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217%
- \220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237%
- \240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257%
- \260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277%
- \300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317%
- \320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337%
- \340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357%
- \360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377%
- }%
-|endgroup
-\@onelevel@sanitize\AllBytesString
-
-\RequirePackage{pdfescape}
-
-\begin{qstest}{all-hex}{\AllBytes, escapehex}
- \EdefEscapeHex\x{\AllBytes}%
- \Expect*{\x}*{\AllBytesHex}%
- \ExpectVar\x\AllBytesHex
-\end{qstest}
-
-\begin{qstest}{all-unhex}{\AllBytesHex, unescapehex}
- \EdefUnescapeHex\x{\AllBytesHex}%
- \Expect*{\x}*{\AllBytes}%
- \ExpectVar\x\AllBytes
-\end{qstest}
-
-\begin{qstest}{all-unhex-lc}{\AllBytesHexLC, unescapehex, lowercase}
- \EdefUnescapeHex\x{\AllBytesHexLC}%
- \Expect*{\x}*{\AllBytes}%
- \ExpectVar\x\AllBytes
-\end{qstest}
-
-\begin{qstest}{unhex-incomplete}{unescapehex, incomplete}
- \EdefUnescapeHex\x{4}%
- \Expect*{\x}{@}%
-\end{qstest}
-
-\begin{qstest}{unhex-space}{unescapehex, space}
- \EdefUnescapeHex\x{20}%
- \Expect*{\x}{ }%
- \ExpectVar\x\space
-\end{qstest}
-
-\begin{qstest}{unhex-spaces}{unescapehex, spaces}
- \EdefUnescapeHex\x{204020204120}%
- \def\y#1{%
- \edef\z{#1\string @#1#1\string A#1}%
- }\y{ }%
- \Expect*{\x}*{\z}%
- \ExpectVar\x\z
-\end{qstest}
-
-\begin{qstest}{unhex-hash}{unescapehex, hash}
- \catcode`\#=12 %
- \EdefUnescapeHex\x{#20}%
- \ExpectVar\x\space
-\end{qstest}
-
-\begin{qstest}{unhex-invalid}{unescapehex, invalid}
- \def\test#1#2{%
- \EdefUnescapeHex\x{#1}%
- \edef\y{#2}%
- \@onelevel@sanitize\y
- \ExpectVar\x\y
- }%
- \edef\x{\pdfunescapehex{4X}}%
- \edef\y{\string @}%
- \ifx\x\y
- \else
- \def~{\space}%
- \typeout{************************************}%
- \typeout{* Your pdfTeX contains bug 777.~~~~*}%
- \typeout{* This test is redefined as dummy, *}%
- \typeout{* because it triggers the bug.~~~~~*}%
- \typeout{************************************}%
- \def\test#1#2{}%
- \fi
- \test{X}{}%
- \test{XY}{}%
- \test{XYZ}{}%
- \test{A}{^^a0}%
- \test{AX}{^^a0}%
- \test{XA}{^^a0}%
- \test{XXAXX}{^^a0}%
-\end{qstest}
-
-\begin{qstest}{all-name}{\AllBytes, escapename}
- \EdefEscapeName\x{\AllBytes}%
- \Expect*{\x}*{\AllBytesName}%
- \ExpectVar\x\AllBytesName
-\end{qstest}
-
-\begin{qstest}{all-string}{\AllBytes, escapestring}
- \EdefEscapeString\x{\AllBytes}%
- \Expect*{\x}*{\AllBytesString}%
- \ExpectVar\x\AllBytesString
-\end{qstest}
-
-\begin{qstest}{uchexdigit}{unescape, uppercase hex digit}
- \catcode`\@=11 %
- \catcode0=12 %
- \def\test#1#2{%
- \uccode0=#1\relax
- \uppercase{%
- \def\x{^^@}%
- }%
- \Expect*{%
- \ifcase\expandafter\PE@TestUcHexDigit\x
- true%
- \else
- false%
- \fi
- }{#2}%
- }%
- \def\range#1#2#3{%
- \count0=#1\relax
- \loop
- \ifnum\count0<#2\relax
- \test{\count0}{#3}%
- \advance\count0 by 1 %
- \repeat
- }%
- \range{0}{47}{false}%
- \range{48}{57}{true}%
- \range{58}{64}{false}%
- \range{65}{70}{true}%
- \range{71}{255}{false}%
-\end{qstest}
-
-\begin{qstest}{unescapename}{unescapename}
- \def\test#1#2{%
- \EdefUnescapeName\x{#1}%
- \edef\y{#2}%
- \@onelevel@sanitize\y
- \ExpectVar\x\y
- }%
- \catcode`\#=12 %
- \catcode0=12 %
- \test{}{}%
- \test{x}{x}%
- \test{xy}{xy}%
- \test{#}{#}%
- \test{##}{##}%
- \test{###}{###}%
- \test{####}{####}%
- \test{#x}{#x}%
- \test{#xy}{#xy}%
- \test{#1}{#1}%
- \test{#40}{@}%
- \test{#400}{@0}%
- \test{#4x0}{#4x0}%
- \test{#ab}{^^ab}%
- \test{#00}{^^@}%
- \test{x#40y#40z}{x@y@z}%
- \test{#40#40#40#40}{@@@@}%
- \test{a#x}{a#x}%
- \test{a#xy}{a#xy}%
- \test{a#1}{a#1}%
- \test{a#40}{a@}%
- \test{a#400}{a@0}%
- \test{#20}{ }%
- \test{a#20}{a }%
- \test{a#20b}{a b}%
- \test{a#20#20#20b}{a \space\space b}%
-\end{qstest}
-
-\begin{qstest}{unescapestring}{unescapestring}
- \def\test#1#2{%
- \EdefUnescapeString\x{#1}%
- \edef\y{#2}%
- \@onelevel@sanitize\y
- \ExpectVar\x\y
- }%
- \catcode0=12 %
- \def\DefChar#1#2{%
- \begingroup
- \uccode0=#2\relax
- \uppercase{\endgroup
- \def#1{^^@}%
- }%
- }%
- \DefChar\nul{0}%
- \DefChar\one{1}%
- \DefChar\bel{8}%
- \DefChar\tab{9}%
- \DefChar\lf{10}%
- \DefChar\ff{12}%
- \DefChar\cr{13}%
- \DefChar\\{92}%
- \test{}{}%
- \test{a}{a}%
- \test{\\}{}%
- \test{\\\\}{\\}%
- \test{\\\\y}{\\y}%
- \test{\\000}{\nul}%
- \test{\\b}{\bel}%
- \test{\\t}{\tab}%
- \test{\\n}{\lf}%
- \test{\\f}{\ff}%
- \test{\\r}{\cr}%
- \test{\\(}{(}%
- \test{\\)}{)}%
- \test{\\040}{ }%
- \test{\\100}{@}%
- \test{\\40}{ }%
- \test{\\1}{\one}%
- \test{\\01}{\one}%
- \test{\\001}{\one}%
- \test{\\18}{\one8}%
- \test{\\018}{\one8}%
- \test{\\0018}{\one8}%
- \test{x\\}{x}%
- \test{x\\\\}{x\\}%
- \test{x\\\\y}{x\\y}%
- \test{x\\000}{x\nul}%
- \test{x\\b}{x\bel}%
- \test{x\\t}{x\tab}%
- \test{x\\n}{x\lf}%
- \test{x\\f}{x\ff}%
- \test{x\\r}{x\cr}%
- \test{x\\(}{x(}%
- \test{x\\)}{x)}%
- \test{x\\040}{x }%
- \test{x\\100}{x@}%
- \test{x\\40}{x }%
- \test{x\\1}{x\one}%
- \test{x\\01}{x\one}%
- \test{x\\001}{x\one}%
- \test{x\\18}{x\one8}%
- \test{x\\018}{x\one8}%
- \test{x\\0018}{x\one8}%
- \test{\\b\\t\\n\\f\\r\\(\\)\\\\\\000\\040}{%
- \bel\tab\lf\ff\cr()\\\nul\space
- }%
- \test{\\\lf}{}%
- \test{x\\\lf}{x}%
- \test{\cr}{\lf}%
- \test{\cr\lf}{\lf}%
- \test{\lf}{\lf}%
- \test{\lf\cr}{\lf\lf}%
- \test{x\cr}{x\lf}%
- \test{x\cr\lf}{x\lf}%
- \test{x\lf}{x\lf}%
- \test{x\lf\cr}{x\lf\lf}%
- \test{x\\\cr\lf y\cr}{xy\lf}%
-\end{qstest}
-\stop
+\Test
+\csname @@end\endcsname
+\end
\endinput
%%
%% End of file `pdfescape-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test2.tex
index 2f965aa59e3..2f5df20991b 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test2.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test2.tex
@@ -26,19 +26,15 @@
%% and the derived files
%% pdfescape.sty, pdfescape.pdf, pdfescape.ins, pdfescape.drv,
%% pdfescape-test1.tex, pdfescape-test2.tex,
-%% pdfescape-test3.tex.
+%% pdfescape-test3.tex, pdfescape-test4.tex.
%%
\NeedsTeXFormat{LaTeX2e}
\makeatletter
-\ProvidesFile{pdfescape-test2.tex}%
- [2007/04/21 v1.4 Test without \string\pdfescape..., with e-TeX]%
-\let\pdfescapehex\@undefined
-\let\pdfunescapehex\@undefined
-\let\pdfescapename\@undefined
-\let\pdfescapestring\@undefined
-\@ifundefined{numexpr}{%
- \PackageError{pdfescape-test2}{%
- Missing \eTeX
+\ProvidesFile{pdfescape-test1.tex}%
+ [2007/09/09 v1.6 Test with \string\pdfescape... commands]%
+\@ifundefined{pdfescapehex}{%
+ \PackageError{pdfescape-test1}{%
+ Missing \string\pdfescape... commands%
}{Test aborted.}%
\stop
}{}
@@ -204,6 +200,18 @@
\@onelevel@sanitize\y
\ExpectVar\x\y
}%
+ \edef\x{\pdfunescapehex{4X}}%
+ \edef\y{\string @}%
+ \ifx\x\y
+ \else
+ \def~{\space}%
+ \typeout{************************************}%
+ \typeout{* Your pdfTeX contains bug 777.~~~~*}%
+ \typeout{* This test is redefined as dummy, *}%
+ \typeout{* because it triggers the bug.~~~~~*}%
+ \typeout{************************************}%
+ \def\test#1#2{}%
+ \fi
\test{X}{}%
\test{XY}{}%
\test{XYZ}{}%
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test3.tex b/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test3.tex
index f8a0a303ad6..3559f6d91ce 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test3.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test3.tex
@@ -26,16 +26,22 @@
%% and the derived files
%% pdfescape.sty, pdfescape.pdf, pdfescape.ins, pdfescape.drv,
%% pdfescape-test1.tex, pdfescape-test2.tex,
-%% pdfescape-test3.tex.
+%% pdfescape-test3.tex, pdfescape-test4.tex.
%%
\NeedsTeXFormat{LaTeX2e}
\makeatletter
-\ProvidesFile{pdfescape-test3.tex}%
- [2007/04/21 v1.4 Test without \string\pdfescape... and e-TeX]%
+\ProvidesFile{pdfescape-test2.tex}%
+ [2007/09/09 v1.6 Test without \string\pdfescape..., with e-TeX]%
\let\pdfescapehex\@undefined
\let\pdfunescapehex\@undefined
\let\pdfescapename\@undefined
\let\pdfescapestring\@undefined
+\@ifundefined{numexpr}{%
+ \PackageError{pdfescape-test2}{%
+ Missing \eTeX
+ }{Test aborted.}%
+ \stop
+}{}
\RequirePackage{qstest}
\IncludeTests{*}
\LogTests{log}{*}{*}
@@ -145,13 +151,7 @@
|endgroup
\@onelevel@sanitize\AllBytesString
-\let\org@detokenize\detokenize
-\let\detokenize\@undefined
-\let\org@numexpr\numexpr
-\let\numexpr\@undefined
\RequirePackage{pdfescape}
-\let\detokenize\org@detokenize
-\let\numexpr\org@numexpr
\begin{qstest}{all-hex}{\AllBytes, escapehex}
\EdefEscapeHex\x{\AllBytes}%
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test4.tex b/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test4.tex
new file mode 100644
index 00000000000..6043b54bb89
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfescape-test4.tex
@@ -0,0 +1,379 @@
+%%
+%% This is file `pdfescape-test4.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pdfescape.dtx (with options: `test4')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file pdfescape.dtx
+%% and the derived files
+%% pdfescape.sty, pdfescape.pdf, pdfescape.ins, pdfescape.drv,
+%% pdfescape-test1.tex, pdfescape-test2.tex,
+%% pdfescape-test3.tex, pdfescape-test4.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\makeatletter
+\ProvidesFile{pdfescape-test3.tex}%
+ [2007/09/09 v1.6 Test without \string\pdfescape... and e-TeX]%
+\let\pdfescapehex\@undefined
+\let\pdfunescapehex\@undefined
+\let\pdfescapename\@undefined
+\let\pdfescapestring\@undefined
+\RequirePackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+
+\newcommand*{\ExpectVar}[2]{%
+ \ifx#1#2%
+ \else
+ \begingroup
+ \@onelevel@sanitize#1%
+ \@onelevel@sanitize#2%
+ \typeout{[#1] <> [#2]}% hash-ok
+ \endgroup
+ \fi
+ \Expect*{\ifx#1#2true\else false\fi}{true}%
+}
+
+\makeatletter
+\begingroup
+ \gdef\AllBytes{}%
+ \count@=0 %
+ \catcode0=12 %
+ \@whilenum\count@<256 \do{%
+ \lccode0=\count@
+ \ifnum\count@=32 %
+ \xdef\AllBytes{\AllBytes\space}%
+ \else
+ \lowercase{%
+ \xdef\AllBytes{\AllBytes^^@}%
+ }%
+ \fi
+ \advance\count@ by 1 %
+ }%
+\endgroup
+\newcommand*{\AllBytesHex}{%
+ 000102030405060708090A0B0C0D0E0F%
+ 101112131415161718191A1B1C1D1E1F%
+ 202122232425262728292A2B2C2D2E2F%
+ 303132333435363738393A3B3C3D3E3F%
+ 404142434445464748494A4B4C4D4E4F%
+ 505152535455565758595A5B5C5D5E5F%
+ 606162636465666768696A6B6C6D6E6F%
+ 707172737475767778797A7B7C7D7E7F%
+ 808182838485868788898A8B8C8D8E8F%
+ 909192939495969798999A9B9C9D9E9F%
+ A0A1A2A3A4A5A6A7A8A9AAABACADAEAF%
+ B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF%
+ C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF%
+ D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF%
+ E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF%
+ F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF%
+}
+\@onelevel@sanitize\AllBytesHex
+\expandafter\lowercase\expandafter{%
+ \expandafter\newcommand\expandafter*\expandafter\AllBytesHexLC
+ \expandafter{\AllBytesHex}%
+}
+\newcommand*{\AllBytesName}{}
+\begingroup
+ \catcode`\#=12 %
+ \xdef\AllBytesName{%
+ #01#02#03#04#05#06#07#08#09#0A#0B#0C#0D#0E#0F%
+ #10#11#12#13#14#15#16#17#18#19#1A#1B#1C#1D#1E#1F%
+ #20!"#23$#25&'#28#29*+,-.#2F%
+ 0123456789:;#3C=#3E?%
+ @ABCDEFGHIJKLMNO%
+ PQRSTUVWXYZ#5B\@backslashchar#5D^_%
+ `abcdefghijklmno%
+ pqrstuvwxyz#7B|#7D\string~#7F%
+ #80#81#82#83#84#85#86#87#88#89#8A#8B#8C#8D#8E#8F%
+ #90#91#92#93#94#95#96#97#98#99#9A#9B#9C#9D#9E#9F%
+ #A0#A1#A2#A3#A4#A5#A6#A7#A8#A9#AA#AB#AC#AD#AE#AF%
+ #B0#B1#B2#B3#B4#B5#B6#B7#B8#B9#BA#BB#BC#BD#BE#BF%
+ #C0#C1#C2#C3#C4#C5#C6#C7#C8#C9#CA#CB#CC#CD#CE#CF%
+ #D0#D1#D2#D3#D4#D5#D6#D7#D8#D9#DA#DB#DC#DD#DE#DF%
+ #E0#E1#E2#E3#E4#E5#E6#E7#E8#E9#EA#EB#EC#ED#EE#EF%
+ #F0#F1#F2#F3#F4#F5#F6#F7#F8#F9#FA#FB#FC#FD#FE#FF%
+ }%
+\endgroup
+\@onelevel@sanitize\AllBytesName
+
+\newcommand*{\AllBytesString}{}
+\begingroup
+ \def\|{|}%
+ \edef\%{\@percentchar}%
+ \catcode`\|=0 %
+ \catcode`\#=12 %
+ \catcode`\~=12 %
+ \catcode`\\=12 %
+ |xdef|AllBytesString{%
+ \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017%
+ \020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037%
+ \040!"#$|%&'\(\)*+,-./%
+ 0123456789:;<=>?%
+ @ABCDEFGHIJKLMNO%
+ PQRSTUVWXYZ[\\]^_%
+ `abcdefghijklmno%
+ pqrstuvwxyz{||}~\177%
+ \200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217%
+ \220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237%
+ \240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257%
+ \260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277%
+ \300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317%
+ \320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337%
+ \340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357%
+ \360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377%
+ }%
+|endgroup
+\@onelevel@sanitize\AllBytesString
+
+\let\org@detokenize\detokenize
+\let\detokenize\@undefined
+\let\org@numexpr\numexpr
+\let\numexpr\@undefined
+\RequirePackage{pdfescape}
+\let\detokenize\org@detokenize
+\let\numexpr\org@numexpr
+
+\begin{qstest}{all-hex}{\AllBytes, escapehex}
+ \EdefEscapeHex\x{\AllBytes}%
+ \Expect*{\x}*{\AllBytesHex}%
+ \ExpectVar\x\AllBytesHex
+\end{qstest}
+
+\begin{qstest}{all-unhex}{\AllBytesHex, unescapehex}
+ \EdefUnescapeHex\x{\AllBytesHex}%
+ \Expect*{\x}*{\AllBytes}%
+ \ExpectVar\x\AllBytes
+\end{qstest}
+
+\begin{qstest}{all-unhex-lc}{\AllBytesHexLC, unescapehex, lowercase}
+ \EdefUnescapeHex\x{\AllBytesHexLC}%
+ \Expect*{\x}*{\AllBytes}%
+ \ExpectVar\x\AllBytes
+\end{qstest}
+
+\begin{qstest}{unhex-incomplete}{unescapehex, incomplete}
+ \EdefUnescapeHex\x{4}%
+ \Expect*{\x}{@}%
+\end{qstest}
+
+\begin{qstest}{unhex-space}{unescapehex, space}
+ \EdefUnescapeHex\x{20}%
+ \Expect*{\x}{ }%
+ \ExpectVar\x\space
+\end{qstest}
+
+\begin{qstest}{unhex-spaces}{unescapehex, spaces}
+ \EdefUnescapeHex\x{204020204120}%
+ \def\y#1{%
+ \edef\z{#1\string @#1#1\string A#1}%
+ }\y{ }%
+ \Expect*{\x}*{\z}%
+ \ExpectVar\x\z
+\end{qstest}
+
+\begin{qstest}{unhex-hash}{unescapehex, hash}
+ \catcode`\#=12 %
+ \EdefUnescapeHex\x{#20}%
+ \ExpectVar\x\space
+\end{qstest}
+
+\begin{qstest}{unhex-invalid}{unescapehex, invalid}
+ \def\test#1#2{%
+ \EdefUnescapeHex\x{#1}%
+ \edef\y{#2}%
+ \@onelevel@sanitize\y
+ \ExpectVar\x\y
+ }%
+ \test{X}{}%
+ \test{XY}{}%
+ \test{XYZ}{}%
+ \test{A}{^^a0}%
+ \test{AX}{^^a0}%
+ \test{XA}{^^a0}%
+ \test{XXAXX}{^^a0}%
+\end{qstest}
+
+\begin{qstest}{all-name}{\AllBytes, escapename}
+ \EdefEscapeName\x{\AllBytes}%
+ \Expect*{\x}*{\AllBytesName}%
+ \ExpectVar\x\AllBytesName
+\end{qstest}
+
+\begin{qstest}{all-string}{\AllBytes, escapestring}
+ \EdefEscapeString\x{\AllBytes}%
+ \Expect*{\x}*{\AllBytesString}%
+ \ExpectVar\x\AllBytesString
+\end{qstest}
+
+\begin{qstest}{uchexdigit}{unescape, uppercase hex digit}
+ \catcode`\@=11 %
+ \catcode0=12 %
+ \def\test#1#2{%
+ \uccode0=#1\relax
+ \uppercase{%
+ \def\x{^^@}%
+ }%
+ \Expect*{%
+ \ifcase\expandafter\PE@TestUcHexDigit\x
+ true%
+ \else
+ false%
+ \fi
+ }{#2}%
+ }%
+ \def\range#1#2#3{%
+ \count0=#1\relax
+ \loop
+ \ifnum\count0<#2\relax
+ \test{\count0}{#3}%
+ \advance\count0 by 1 %
+ \repeat
+ }%
+ \range{0}{47}{false}%
+ \range{48}{57}{true}%
+ \range{58}{64}{false}%
+ \range{65}{70}{true}%
+ \range{71}{255}{false}%
+\end{qstest}
+
+\begin{qstest}{unescapename}{unescapename}
+ \def\test#1#2{%
+ \EdefUnescapeName\x{#1}%
+ \edef\y{#2}%
+ \@onelevel@sanitize\y
+ \ExpectVar\x\y
+ }%
+ \catcode`\#=12 %
+ \catcode0=12 %
+ \test{}{}%
+ \test{x}{x}%
+ \test{xy}{xy}%
+ \test{#}{#}%
+ \test{##}{##}%
+ \test{###}{###}%
+ \test{####}{####}%
+ \test{#x}{#x}%
+ \test{#xy}{#xy}%
+ \test{#1}{#1}%
+ \test{#40}{@}%
+ \test{#400}{@0}%
+ \test{#4x0}{#4x0}%
+ \test{#ab}{^^ab}%
+ \test{#00}{^^@}%
+ \test{x#40y#40z}{x@y@z}%
+ \test{#40#40#40#40}{@@@@}%
+ \test{a#x}{a#x}%
+ \test{a#xy}{a#xy}%
+ \test{a#1}{a#1}%
+ \test{a#40}{a@}%
+ \test{a#400}{a@0}%
+ \test{#20}{ }%
+ \test{a#20}{a }%
+ \test{a#20b}{a b}%
+ \test{a#20#20#20b}{a \space\space b}%
+\end{qstest}
+
+\begin{qstest}{unescapestring}{unescapestring}
+ \def\test#1#2{%
+ \EdefUnescapeString\x{#1}%
+ \edef\y{#2}%
+ \@onelevel@sanitize\y
+ \ExpectVar\x\y
+ }%
+ \catcode0=12 %
+ \def\DefChar#1#2{%
+ \begingroup
+ \uccode0=#2\relax
+ \uppercase{\endgroup
+ \def#1{^^@}%
+ }%
+ }%
+ \DefChar\nul{0}%
+ \DefChar\one{1}%
+ \DefChar\bel{8}%
+ \DefChar\tab{9}%
+ \DefChar\lf{10}%
+ \DefChar\ff{12}%
+ \DefChar\cr{13}%
+ \DefChar\\{92}%
+ \test{}{}%
+ \test{a}{a}%
+ \test{\\}{}%
+ \test{\\\\}{\\}%
+ \test{\\\\y}{\\y}%
+ \test{\\000}{\nul}%
+ \test{\\b}{\bel}%
+ \test{\\t}{\tab}%
+ \test{\\n}{\lf}%
+ \test{\\f}{\ff}%
+ \test{\\r}{\cr}%
+ \test{\\(}{(}%
+ \test{\\)}{)}%
+ \test{\\040}{ }%
+ \test{\\100}{@}%
+ \test{\\40}{ }%
+ \test{\\1}{\one}%
+ \test{\\01}{\one}%
+ \test{\\001}{\one}%
+ \test{\\18}{\one8}%
+ \test{\\018}{\one8}%
+ \test{\\0018}{\one8}%
+ \test{x\\}{x}%
+ \test{x\\\\}{x\\}%
+ \test{x\\\\y}{x\\y}%
+ \test{x\\000}{x\nul}%
+ \test{x\\b}{x\bel}%
+ \test{x\\t}{x\tab}%
+ \test{x\\n}{x\lf}%
+ \test{x\\f}{x\ff}%
+ \test{x\\r}{x\cr}%
+ \test{x\\(}{x(}%
+ \test{x\\)}{x)}%
+ \test{x\\040}{x }%
+ \test{x\\100}{x@}%
+ \test{x\\40}{x }%
+ \test{x\\1}{x\one}%
+ \test{x\\01}{x\one}%
+ \test{x\\001}{x\one}%
+ \test{x\\18}{x\one8}%
+ \test{x\\018}{x\one8}%
+ \test{x\\0018}{x\one8}%
+ \test{\\b\\t\\n\\f\\r\\(\\)\\\\\\000\\040}{%
+ \bel\tab\lf\ff\cr()\\\nul\space
+ }%
+ \test{\\\lf}{}%
+ \test{x\\\lf}{x}%
+ \test{\cr}{\lf}%
+ \test{\cr\lf}{\lf}%
+ \test{\lf}{\lf}%
+ \test{\lf\cr}{\lf\lf}%
+ \test{x\cr}{x\lf}%
+ \test{x\cr\lf}{x\lf}%
+ \test{x\lf}{x\lf}%
+ \test{x\lf\cr}{x\lf\lf}%
+ \test{x\\\cr\lf y\cr}{xy\lf}%
+\end{qstest}
+\stop
+\endinput
+%%
+%% End of file `pdfescape-test4.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfescape.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfescape.pdf
index 805fd3297d0..107c2f93d17 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/pdfescape.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdfescape.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdflscape.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdflscape.pdf
index db6821695cc..d9d0beb4611 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/pdflscape.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/pdflscape.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/picture.pdf b/Master/texmf-dist/doc/latex/oberdiek/picture.pdf
index 5225b8323f2..caeacfcc186 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/picture.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/picture.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/pmboxdraw.pdf b/Master/texmf-dist/doc/latex/oberdiek/pmboxdraw.pdf
index 5df3d5bb719..de133485a5b 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/pmboxdraw.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/pmboxdraw.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/refcount.pdf b/Master/texmf-dist/doc/latex/oberdiek/refcount.pdf
index a18ef842c72..135dc0c67af 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/refcount.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/refcount.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/selinput-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/selinput-test1.tex
index ee05ea6ee1e..1f952da54e2 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/selinput-test1.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/selinput-test1.tex
@@ -51,7 +51,7 @@
\sbox2{#2}%
\Expect*{wd:\the\wd0, ht:\the\ht0, dp:\the\dp0}%
*{wd:\the\wd2, ht:\the\ht2, dp:\the\dp2}%
- [#1=##1] %
+ [#1=##1] % hash-ok
}%
}
\RequirePackage{keyval}
@@ -60,23 +60,23 @@
\TestKey{Euro}{\texteuro}
\makeatother
\usepackage[
- warning,
+ warning,%
]{selinput}
\inputencoding{ascii}
\begin{qstest}{preamble}{}
\TestEncoding{x-iso-8859-15}{%
- adieresis=^^e4,
- germandbls=^^df,
- Euro=^^a4,
+ adieresis=^^e4,%
+ germandbls=^^df,%
+ Euro=^^a4,%
}%
\TestEncoding{x-cp1252}{%
- adieresis=^^e4,
- germandbls=^^df,
- Euro=^^80,
+ adieresis=^^e4,%
+ germandbls=^^df,%
+ Euro=^^80,%
}%
\TestEncoding{utf8}{%
- adieresis=^^c3^^a4,
- germandbls=^^c3^^9f,
+ adieresis=^^c3^^a4,%
+ germandbls=^^c3^^9f,%
Euro=^^e2^^82^^ac,
}%
\end{qstest}
diff --git a/Master/texmf-dist/doc/latex/oberdiek/selinput-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/selinput-test2.tex
index 77511d0fba0..de58844bd09 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/selinput-test2.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/selinput-test2.tex
@@ -51,7 +51,7 @@
\sbox2{#2}%
\Expect*{wd:\the\wd0, ht:\the\ht0, dp:\the\dp0}%
*{wd:\the\wd2, ht:\the\ht2, dp:\the\dp2}%
- [#1=##1] %
+ [#1=##1] % hash-ok
}%
}
\RequirePackage{keyval}
@@ -60,24 +60,24 @@
\TestKey{Euro}{\texteuro}
\makeatother
\usepackage[
- warning,
+ warning,%
utf8=utf-8,
]{selinput}
\inputencoding{utf-8}
\begin{qstest}{preamble}{}
\TestEncoding{x-iso-8859-15}{%
- adieresis=^^e4,
- germandbls=^^df,
- Euro=^^a4,
+ adieresis=^^e4,%
+ germandbls=^^df,%
+ Euro=^^a4,%
}%
\TestEncoding{x-cp1252}{%
- adieresis=^^e4,
- germandbls=^^df,
- Euro=^^80,
+ adieresis=^^e4,%
+ germandbls=^^df,%
+ Euro=^^80,%
}%
\TestEncoding{utf-8}{%
- adieresis=^^c3^^a4,
- germandbls=^^c3^^9f,
+ adieresis=^^c3^^a4,%
+ germandbls=^^c3^^9f,%
}%
\end{qstest}
\begin{document}
diff --git a/Master/texmf-dist/doc/latex/oberdiek/selinput-test3.tex b/Master/texmf-dist/doc/latex/oberdiek/selinput-test3.tex
index b1a16eed7bd..897643f9927 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/selinput-test3.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/selinput-test3.tex
@@ -51,7 +51,7 @@
\sbox2{#2}%
\Expect*{wd:\the\wd0, ht:\the\ht0, dp:\the\dp0}%
*{wd:\the\wd2, ht:\the\ht2, dp:\the\dp2}%
- [#1=##1] %
+ [#1=##1] % hash-ok
}%
}
\RequirePackage{keyval}
@@ -60,25 +60,25 @@
\TestKey{Euro}{\texteuro}
\makeatother
\usepackage[
- warning,
+ warning,%
ucs,
]{selinput}
\inputencoding{ascii}
\usepackage{ucs}
\begin{qstest}{preamble}{}
\TestEncoding{x-iso-8859-15}{%
- adieresis=^^e4,
- germandbls=^^df,
- Euro=^^a4,
+ adieresis=^^e4,%
+ germandbls=^^df,%
+ Euro=^^a4,%
}%
\TestEncoding{x-cp1252}{%
- adieresis=^^e4,
- germandbls=^^df,
- Euro=^^80,
+ adieresis=^^e4,%
+ germandbls=^^df,%
+ Euro=^^80,%
}%
\TestEncoding{utf8x}{%
- adieresis=^^c3^^a4,
- germandbls=^^c3^^9f,
+ adieresis=^^c3^^a4,%
+ germandbls=^^c3^^9f,%
Euro=^^e2^^82^^ac,
}%
\end{qstest}
diff --git a/Master/texmf-dist/doc/latex/oberdiek/selinput-test4.tex b/Master/texmf-dist/doc/latex/oberdiek/selinput-test4.tex
index ce9b8c5ea54..94561b045b5 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/selinput-test4.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/selinput-test4.tex
@@ -34,17 +34,17 @@
\usepackage{qstest}
\usepackage[warning,ucs]{selinput}
\SelectInputMappings{
- adieresis=^^c3^^a4,
- germandbls=^^c3^^9f,
- Euro=^^e2^^82^^ac,
+ adieresis=^^c3^^a4,%
+ germandbls=^^c3^^9f,%
+ Euro=^^e2^^82^^ac,%
}
\begin{qstest}{encoding}{}
\Expect*{\inputencodingname}{utf8x}%
\end{qstest}
\begin{document}
- adieresis=^^c3^^a4,
- germandbls=^^c3^^9f,
- Euro=^^e2^^82^^ac
+ adieresis=^^c3^^a4, %
+ germandbls=^^c3^^9f, %
+ Euro=^^e2^^82^^ac%
\end{document}
\endinput
%%
diff --git a/Master/texmf-dist/doc/latex/oberdiek/selinput-test5.tex b/Master/texmf-dist/doc/latex/oberdiek/selinput-test5.tex
index 0d600df35c2..aa41dcc6d43 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/selinput-test5.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/selinput-test5.tex
@@ -34,17 +34,17 @@
\usepackage{qstest}
\usepackage[warning,ucs]{selinput}
\SelectInputMappings{
- adieresis={\"a},
- germandbls={{\ss}},
- Euro=\texteuro{},
+ adieresis={\"a},%
+ germandbls={{\ss}},%
+ Euro=\texteuro{},%
}
\begin{qstest}{encoding}{}
\Expect*{\inputencodingname}{ascii}%
\end{qstest}
\begin{document}
- adieresis={\"a},
- germandbls={{\ss}},
- Euro=\texteuro{}
+ adieresis={\"a}, %
+ germandbls={{\ss}}, %
+ Euro=\texteuro{}%
\end{document}
\endinput
%%
diff --git a/Master/texmf-dist/doc/latex/oberdiek/selinput.pdf b/Master/texmf-dist/doc/latex/oberdiek/selinput.pdf
index 033c316878a..e14700e609b 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/selinput.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/selinput.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/setouterhbox-example.tex b/Master/texmf-dist/doc/latex/oberdiek/setouterhbox-example.tex
index 4cc1d35983b..8c2a7dfc8f7 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/setouterhbox-example.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/setouterhbox-example.tex
@@ -26,7 +26,8 @@
%% This work consists of the main source file setouterhbox.dtx
%% and the derived files
%% setouterhbox.sty, setouterhbox.pdf, setouterhbox.ins, setouterhbox.drv,
-%% setouterhbox-example.tex.
+%% setouterhbox-example.tex, setouterhbox-test1.tex,
+%% setouterhbox-test2.tex.
%%
\documentclass[a5paper]{article}
\usepackage{url}[2005/06/27]
diff --git a/Master/texmf-dist/doc/latex/oberdiek/setouterhbox-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/setouterhbox-test1.tex
new file mode 100644
index 00000000000..92b27d356ce
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/setouterhbox-test1.tex
@@ -0,0 +1,75 @@
+%%
+%% This is file `setouterhbox-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% setouterhbox.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2005, 2006, 2007 by
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file setouterhbox.dtx
+%% and the derived files
+%% setouterhbox.sty, setouterhbox.pdf, setouterhbox.ins, setouterhbox.drv,
+%% setouterhbox-example.tex, setouterhbox-test1.tex,
+%% setouterhbox-test2.tex.
+%%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input setouterhbox.sty\relax
+ \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
+\end
+\endinput
+%%
+%% End of file `setouterhbox-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/setouterhbox-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/setouterhbox-test2.tex
new file mode 100644
index 00000000000..47caba209f2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/setouterhbox-test2.tex
@@ -0,0 +1,63 @@
+%%
+%% This is file `setouterhbox-test2.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% setouterhbox.dtx (with options: `test2')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2005, 2006, 2007 by
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file setouterhbox.dtx
+%% and the derived files
+%% setouterhbox.sty, setouterhbox.pdf, setouterhbox.ins, setouterhbox.drv,
+%% setouterhbox-example.tex, setouterhbox-test1.tex,
+%% setouterhbox-test2.tex.
+%%
+\nofiles
+\documentclass[a5paper]{article}
+\usepackage{url}[2005/06/27]
+\usepackage{setouterhbox}
+
+\newsavebox{\testbox}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{2em}
+
+\begin{document}
+\raggedright
+
+\url{http://this.is.a.very.long.host.name/followed/%
+by/a/very_long_long_long_path.html}%
+
+\sbox\testbox{%
+ \url{http://this.is.a.very.long.host.name/followed/%
+ by/a/very_long_long_long_path.html}%
+}%
+\unhbox\testbox
+
+\begin{setouterhbox}{\testbox}%
+ \url{http://this.is.a.very.long.host.name/followed/%
+ by/a/very_long_long_long_path.html}%
+\end{setouterhbox}
+\unhbox\testbox
+
+\end{document}
+\endinput
+%%
+%% End of file `setouterhbox-test2.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/setouterhbox.pdf b/Master/texmf-dist/doc/latex/oberdiek/setouterhbox.pdf
index 14a79cebe13..69044ed98d9 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/setouterhbox.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/setouterhbox.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/settobox.pdf b/Master/texmf-dist/doc/latex/oberdiek/settobox.pdf
index 0a10d32a92c..4bde244f1ea 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/settobox.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/settobox.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test1.tex
new file mode 100644
index 00000000000..573d15a8b42
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test1.tex
@@ -0,0 +1,74 @@
+%%
+%% This is file `soulutf8-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% soulutf8.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file soulutf8.dtx
+%% and the derived files
+%% soulutf8.sty, soulutf8.pdf, soulutf8.ins, soulutf8.drv,
+%% soulutf8-test1.tex, soulutf8-test2.tex, soulutf8-test3.tex,
+%% soulutf8-test4.tex, soulutf8-test5.tex.
+%%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input soulutf8.sty\relax
+ \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
+\end
+\endinput
+%%
+%% End of file `soulutf8-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test2.tex
new file mode 100644
index 00000000000..d43dc88aa01
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test2.tex
@@ -0,0 +1,365 @@
+%%
+%% This is file `soulutf8-test2.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% soulutf8.dtx (with options: `test2,utf8')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file soulutf8.dtx
+%% and the derived files
+%% soulutf8.sty, soulutf8.pdf, soulutf8.ins, soulutf8.drv,
+%% soulutf8-test1.tex, soulutf8-test2.tex, soulutf8-test3.tex,
+%% soulutf8-test4.tex, soulutf8-test5.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\documentclass{article}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage{textcomp}
+\usepackage[ngerman]{babel}
+\expandafter\def\csname ver@hypdestopt.sty\endcsname{}
+\usepackage[unicode]{hyperref}
+\usepackage{bookmark}
+\usepackage{color}
+\usepackage{soul}[2003/11/17]
+\makeatletter
+\newcommand*{\@ifDefined}[1]{%
+ \@ifundefined{#1}{%
+ \@latex@error{%
+ \expandafter\noexpand\csname#1\endcsname undefined%
+ }\@ehc
+ }%
+}
+\newcommand*{\SaveOrg}[1]{%
+ \@ifdefinable{ORG@SOUL@#1}{%
+ \@ifDefined{SOUL@#1}{%
+ \expandafter\let\csname ORG@SOUL@#1\expandafter\endcsname
+ \csname SOUL@#1\endcsname
+ }%
+ }%
+}
+\newcommand*{\RestoreOrg}[1]{%
+ \@ifDefined{ORG@SOUL@#1}{%
+ \@ifDefined{SOUL@#1}{%
+ \expandafter\let\csname SOUL@#1\expandafter\endcsname
+ \csname ORG@SOUL@#1\endcsname
+ }%
+ }%
+}
+\makeatother
+\SaveOrg{eval}
+\SaveOrg{splittoken}
+\SaveOrg{flushcomma}
+\SaveOrg{flushapo}
+\SaveOrg{grave}
+\SaveOrg{addgroup}
+\SaveOrg{addmath}
+\SaveOrg{addprotect}
+\SaveOrg{addtoken}
+\usepackage{soulutf8}[2007/09/09]
+\usepackage[utf8]{inputenc}
+\DeclareUnicodeCharacter{00A0}{\nobreakspace}
+\makeatletter
+\DeclareRobustCommand*{\an}{%
+ \def\SOUL@preamble{$^{^P}$}%
+ \def\SOUL@everyspace##1{##1\texttt{\char`\ }\linebreak[2]}%
+ \def\SOUL@postamble{$^{^E}$}%
+ \def\SOUL@everyhyphen{$^{^-}$\linebreak[1]}%
+ \def\SOUL@everyexhyphen##1{##1$^{^=}$}%
+ \def\SOUL@everysyllable{$^{^S}$}%
+ \def\SOUL@everytoken{\the\SOUL@token$^{^T}$}%
+ \def\SOUL@everylowerthan{$^{^L}$}%
+ \SOUL@
+}
+\DeclareRobustCommand*{\sy}{%
+ \SOUL@setup
+ \def\SOUL@preamble{%
+ \lefthyphenmin=\z@
+ \righthyphenmin=\z@
+ }%
+ \def\SOUL@everyspace##1{##1\space}%
+ \def\SOUL@everysyllable{\the\SOUL@syllable}%
+ \def\SOUL@everyhyphen{%
+ \discretionary{%
+ \SOUL@setkern\SOUL@hyphkern
+ \SOUL@sethyphenchar
+ }{}{%
+ \hbox{\kern1pt$\cdot$}%
+ }%
+ }%
+ \def\SOUL@everyexhyphen##1{%
+ \SOUL@setkern\SOUL@hyphkern
+ \hbox{##1}%
+ \discretionary{}{}{%
+ \SOUL@setkern\SOUL@charkern
+ }%
+ }%
+ \SOUL@
+}
+\DeclareRobustCommand*{\soulH}{%
+ \def\SOUL@preamble{%
+ \gdef\SOULH{}%
+ \soulHadd{[}%
+ }%
+ \def\SOUL@everyspace##1{%
+ \soulHadd{Sp}%
+ }%
+ \def\SOUL@postamble{%
+ \soulHadd{]}%
+ }%
+ \def\SOUL@everyhyphen{%
+ \soulHadd{Hy}%
+ }%
+ \def\SOUL@everyexhyphen##1{%
+ \soulHadd{Exhy}%
+ }%
+ \def\SOUL@everysyllable{%
+ \soulHadd{Sy}%
+ }%
+ \def\SOUL@everytoken{%
+ \soulHadd{T}%
+ }%
+ \def\SOUL@everylowerthan{%
+ \soulHadd{<}%
+ }%
+ \SOUL@
+}
+\newcommand*{\soulHadd}[1]{%
+ #1%
+ \expandafter\gdef\expandafter\soulHstring\expandafter{%
+ \soulHstring
+ #1%
+ }%
+}
+\usepackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+\newsavebox\boxA
+\newsavebox\boxB
+\newsavebox\boxC
+\newcommand*{\TestDriver}[4]{%
+ \subsection{Driver #1}%
+ \@PackageInfo{soulutf8-test}{* Driver #1}%
+ \expandafter\let\expandafter\testdriver\csname #1\endcsname
+ \def\teststringA{#3}%
+ \def\teststringB{#4}%
+ \begin{qstest}{string-#2-driver-#1}{string,#2,driver,#1}%
+ \@PackageInfo{soulutf8-test}{* Version: soulutf8}%
+ \global\let\soulHstring\@empty
+ \setbox0=\hbox{\expandafter\testdriver\expandafter{\teststringA}}%
+ \let\HstringA\soulHstring
+ \SetTestVBox{\boxA}{\teststringA}%
+ %
+ \@PackageInfo{soulutf8-test}{* Version: soul + patch}%
+ \global\let\soulHstring\@empty
+ \RestoreOrg{eval}%
+ \setbox2=\hbox{\expandafter\testdriver\expandafter{\teststringB}}%
+ \let\HstringB\soulHstring
+ \SetTestVBox{\boxB}{\teststringB}%
+ %
+ \@PackageInfo{soulutf8-test}{* Version: original soul}%
+ \global\let\soulHstring\@empty
+ \RestoreOrg{splittoken}%
+ \RestoreOrg{flushcomma}%
+ \RestoreOrg{flushapo}%
+ \RestoreOrg{grave}%
+ \RestoreOrg{addgroup}%
+ \RestoreOrg{addmath}%
+ \RestoreOrg{addprotect}%
+ \RestoreOrg{addtoken}%
+ \setbox4=\hbox{\expandafter\testdriver\expandafter{\teststringB}}%
+ \let\HstringC\soulHstring
+ \SetTestVBox{\boxC}{\teststringB}%
+ %
+ \TestInfo{0}{soulutf8}%
+ \TestInfo{2}{soul + patch}%
+ \TestInfo{4}{original soul}%
+ \TestInfoVBox
+ \showboxdepth=\maxdimen
+ \showboxbreadth=\maxdimen
+ \tracingonline=\@ne
+ \Expect*{\HstringA}*{\HstringB}%
+ \Expect*{\HstringA}*{\HstringC}%
+ \Expect*{\the\wd0}*{\the\wd2}%
+ \ifdim\wd0=\wd2 %
+ \else
+ \showbox0 %
+ \showbox2 %
+ \fi
+ \Expect*{\the\ht0}*{\the\ht2}%
+ \Expect*{\the\dp0}*{\the\dp2}%
+ \Expect*{\the\wd\boxB}*{\the\wd\boxA}%
+ \Expect*{\the\wd\boxC}*{\the\wd\boxA}%
+ \Expect*{\the\ht\boxB}*{\the\ht\boxA}%
+ \ifdim\ht\boxB=\ht\boxA
+ \else
+ \showbox\boxA
+ \showbox\boxB
+ \fi
+ \Expect*{\the\ht\boxC}*{\the\ht\boxA}%
+ \Expect*{\the\dp\boxB}*{\the\dp\boxA}%
+ \Expect*{\the\dp\boxC}*{\the\dp\boxA}%
+ \end{qstest}%
+}
+\newcommand*{\SetTestVBox}[2]{%
+ \setbox#1=\vbox{%
+ \hsize=0pt\relax
+ \hfuzz=100mm\relax
+ \expandafter\testdriver\expandafter{#2}%
+ }%
+}
+\newcommand*{\TestInfo}[2]{%
+ \par
+ \noindent
+ \copy#1\relax
+ \hfill
+ \begingroup
+ \small
+ \ifdim\wd0=\wd2\relax
+ \ifdim\wd0=\wd4\relax
+ \else
+ \ifnum#1=2 %
+ \raisebox{.5\baselineskip}[0pt][0pt]{%
+ \llap{$\}$ }%
+ \rlap{width = \the\wd#1\relax\space$\{$}%
+ \phantom{width = 999.99999pt}%
+ \qquad
+ }%
+ \else
+ \ifnum#1=4 %
+ \rlap{width = \the\wd#1}%
+ \phantom{width = 999.99999pt}%
+ \qquad
+ \fi
+ \fi
+ \fi
+ \else
+ \begingroup
+ \bfseries
+ \rlap{width = \the\wd#1}%
+ \phantom{width = 999.99999pt}%
+ \endgroup
+ \qquad
+ \fi
+ \rlap{(#2)}%
+ \phantom{(original soul)}%
+ \endgroup
+ \par
+}
+\newcommand*{\TestInfoVBox}{%
+ \par
+ \noindent
+ \mbox{\vrule\relax\space\copy\boxA}%
+ \ifdim\ht\boxA=\ht\boxB
+ \else
+ \hfill
+ \begingroup
+ \small
+ \rlap{(soulutf8)}%
+ \phantom{(soulutf8)}%
+ \endgroup
+ \par
+ \noindent
+ \mbox{\vrule\relax\space\copy\boxB}%
+ \hfill
+ \begingroup
+ \small
+ \rlap{(soul)}%
+ \phantom{(soulutf8)}%
+ \endgroup
+ \fi
+ \par
+}
+\makeatletter
+\newcommand*{\Test}[3]{%
+ \clearpage
+ \begingroup
+ \def\linebreak{\textbackslash linebreak }%
+ \def\\{\textbackslash\textbackslash}%
+ \def\soulomit##1{%
+ \textbackslash soulomit\textbraceleft##1\textbraceright
+ }%
+ \def\mbox##1{%
+ \textbackslash mbox\textbraceleft##1\textbraceright
+ }%
+ \def\abc{\textbackslash abc }%
+ \def\texttt##1{%
+ \textbackslash texttt\textbraceleft##1\textbraceright
+ }%
+ \def\c##1{%
+ \textbackslash c\textbraceleft##1\textbraceright
+ }%
+ \csname protected@edef\endcsname\x{\endgroup
+ \noexpand\section{String #1: #2}%
+ }%
+ \x
+ \TestDriver{so}{#1}{#2}{#3}%
+ \TestDriver{caps}{#1}{#2}{#3}%
+ \TestDriver{ul}{#1}{#2}{#3}%
+ \TestDriver{st}{#1}{#2}{#3}%
+ \TestDriver{hl}{#1}{#2}{#3}%
+ \TestDriver{an}{#1}{#2}{#3}%
+ \TestDriver{sy}{#1}{#2}{#3}%
+ \TestDriver{soulH}{#1}{#2}{#3}%
+}
+\makeatother
+\begin{document}
+ \Test A{}{}%
+ \Test B{Hello World}{Hello World}%
+ \Test C{%
+ Umlauts: ^^c3^^84^^c3^^96^^c3^^9c^^c3^^a4^^c3^^b6^^c3^^bc^^c3^^9f%
+ }{%
+ Umlauts: \"A\"O\"U\"a\"o\"u\ss
+ }%
+ \Test D{Euro: ^^e2^^82^^ac}{Euro: \texteuro}%
+ \Test E{Stra^^c3^^9fe}{Stra\ss e}%
+ \Test F{R^^c3^^b6mer}{R\"omer}%
+ \Test G{A^^e2^^80^^93B^^e2^^80^^94C}{A--B---C}%
+ \Test H{X^^c2^^a0Y}{X~Y}%
+ \Test I{A^^c5^^a4}{A\v T}%
+ \Test J{A,B,,C,,,D,,,,E}{A,B,,C,,,D,,,,E}%
+ \Test K{A'B''C'''D''''E}{A'B''C'''D''''E}%
+ \Test L{A`B``C```D````E}{A`B``C```D````E}%
+ \Test M{A$x$B}{A$x$B}%
+ \Test N{A\mbox{abc}B}{A\mbox{abc}B}%
+ \Test O{,,TA''}{,,TA''}%
+ \Test P{{!`}Hola{?`}}{{!`}Hola{?`}}%
+ \Test Q{re-sent\slash x}{re-sent\slash x}%
+ \Test R{new\\line}{new\\line}%
+ \Test S{foo\linebreak bar}{foo\linebreak bar}%
+ \Test T{Virchow{sche}}{Virchow{sche}}%
+ \Test U{A\soulomit{foo}B}{A\soulomit{foo}B}%
+ \Test V{A\texttt{xyz}B}{A\texttt{xyz}B}%
+ \Test W{ffi}{ffi}%
+ \Test X{f{}f{}i}{f{}f{}i}%
+ \Test Y{f\mbox{}f\mbox{}i}{f\mbox{}f\mbox{}i}%
+ \Test Z{\c{\"a}}{{\c{\"a}}}%
+ \let\abcx\UNDEFINED
+ \def\abc{%
+ \begingroup
+ \def\abcx{x}%
+ \abcx
+ \endgroup
+ }%
+ \Test{AA}{[{x\abc x}]}{[{xxx}]}%
+\end{document}
+\endinput
+%%
+%% End of file `soulutf8-test2.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test3.tex b/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test3.tex
new file mode 100644
index 00000000000..d6d33ae9a73
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test3.tex
@@ -0,0 +1,377 @@
+%%
+%% This is file `soulutf8-test3.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% soulutf8.dtx (with options: `test3,utf8x')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file soulutf8.dtx
+%% and the derived files
+%% soulutf8.sty, soulutf8.pdf, soulutf8.ins, soulutf8.drv,
+%% soulutf8-test1.tex, soulutf8-test2.tex, soulutf8-test3.tex,
+%% soulutf8-test4.tex, soulutf8-test5.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\documentclass{article}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage{textcomp}
+\usepackage[ngerman]{babel}
+\expandafter\def\csname ver@hypdestopt.sty\endcsname{}
+\usepackage[unicode]{hyperref}
+\usepackage{bookmark}
+\usepackage{color}
+\usepackage{soul}[2003/11/17]
+\makeatletter
+\newcommand*{\@ifDefined}[1]{%
+ \@ifundefined{#1}{%
+ \@latex@error{%
+ \expandafter\noexpand\csname#1\endcsname undefined%
+ }\@ehc
+ }%
+}
+\newcommand*{\SaveOrg}[1]{%
+ \@ifdefinable{ORG@SOUL@#1}{%
+ \@ifDefined{SOUL@#1}{%
+ \expandafter\let\csname ORG@SOUL@#1\expandafter\endcsname
+ \csname SOUL@#1\endcsname
+ }%
+ }%
+}
+\newcommand*{\RestoreOrg}[1]{%
+ \@ifDefined{ORG@SOUL@#1}{%
+ \@ifDefined{SOUL@#1}{%
+ \expandafter\let\csname SOUL@#1\expandafter\endcsname
+ \csname ORG@SOUL@#1\endcsname
+ }%
+ }%
+}
+\makeatother
+\SaveOrg{eval}
+\SaveOrg{splittoken}
+\SaveOrg{flushcomma}
+\SaveOrg{flushapo}
+\SaveOrg{grave}
+\SaveOrg{addgroup}
+\SaveOrg{addmath}
+\SaveOrg{addprotect}
+\SaveOrg{addtoken}
+\usepackage{soulutf8}[2007/09/09]
+\let\origshow\show
+\usepackage[utf8x]{inputenc}
+\AtBeginDocument{%
+ \let\show\origshow
+}
+\makeatletter
+\DeclareRobustCommand*{\an}{%
+ \def\SOUL@preamble{$^{^P}$}%
+ \def\SOUL@everyspace##1{##1\texttt{\char`\ }\linebreak[2]}%
+ \def\SOUL@postamble{$^{^E}$}%
+ \def\SOUL@everyhyphen{$^{^-}$\linebreak[1]}%
+ \def\SOUL@everyexhyphen##1{##1$^{^=}$}%
+ \def\SOUL@everysyllable{$^{^S}$}%
+ \def\SOUL@everytoken{\the\SOUL@token$^{^T}$}%
+ \def\SOUL@everylowerthan{$^{^L}$}%
+ \SOUL@
+}
+\DeclareRobustCommand*{\sy}{%
+ \SOUL@setup
+ \def\SOUL@preamble{%
+ \lefthyphenmin=\z@
+ \righthyphenmin=\z@
+ }%
+ \def\SOUL@everyspace##1{##1\space}%
+ \def\SOUL@everysyllable{\the\SOUL@syllable}%
+ \def\SOUL@everyhyphen{%
+ \discretionary{%
+ \SOUL@setkern\SOUL@hyphkern
+ \SOUL@sethyphenchar
+ }{}{%
+ \hbox{\kern1pt$\cdot$}%
+ }%
+ }%
+ \def\SOUL@everyexhyphen##1{%
+ \SOUL@setkern\SOUL@hyphkern
+ \hbox{##1}%
+ \discretionary{}{}{%
+ \SOUL@setkern\SOUL@charkern
+ }%
+ }%
+ \SOUL@
+}
+\DeclareRobustCommand*{\soulH}{%
+ \def\SOUL@preamble{%
+ \gdef\SOULH{}%
+ \soulHadd{[}%
+ }%
+ \def\SOUL@everyspace##1{%
+ \soulHadd{Sp}%
+ }%
+ \def\SOUL@postamble{%
+ \soulHadd{]}%
+ }%
+ \def\SOUL@everyhyphen{%
+ \soulHadd{Hy}%
+ }%
+ \def\SOUL@everyexhyphen##1{%
+ \soulHadd{Exhy}%
+ }%
+ \def\SOUL@everysyllable{%
+ \soulHadd{Sy}%
+ }%
+ \def\SOUL@everytoken{%
+ \soulHadd{T}%
+ }%
+ \def\SOUL@everylowerthan{%
+ \soulHadd{<}%
+ }%
+ \SOUL@
+}
+\newcommand*{\soulHadd}[1]{%
+ #1%
+ \expandafter\gdef\expandafter\soulHstring\expandafter{%
+ \soulHstring
+ #1%
+ }%
+}
+\usepackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+\newsavebox\boxA
+\newsavebox\boxB
+\newsavebox\boxC
+\newcommand*{\TestDriver}[4]{%
+ \subsection{Driver #1}%
+ \@PackageInfo{soulutf8-test}{* Driver #1}%
+ \expandafter\let\expandafter\testdriver\csname #1\endcsname
+ \def\teststringA{#3}%
+ \def\teststringB{#4}%
+ \begin{qstest}{string-#2-driver-#1}{string,#2,driver,#1}%
+ \@PackageInfo{soulutf8-test}{* Version: soulutf8}%
+ \global\let\soulHstring\@empty
+ \setbox0=\hbox{\expandafter\testdriver\expandafter{\teststringA}}%
+ \let\HstringA\soulHstring
+ \SetTestVBox{\boxA}{\teststringA}%
+ %
+ \@PackageInfo{soulutf8-test}{* Version: soul + patch}%
+ \global\let\soulHstring\@empty
+ \RestoreOrg{eval}%
+ \setbox2=\hbox{\expandafter\testdriver\expandafter{\teststringB}}%
+ \let\HstringB\soulHstring
+ \SetTestVBox{\boxB}{\teststringB}%
+ %
+ \@PackageInfo{soulutf8-test}{* Version: original soul}%
+ \global\let\soulHstring\@empty
+ \RestoreOrg{splittoken}%
+ \RestoreOrg{flushcomma}%
+ \RestoreOrg{flushapo}%
+ \RestoreOrg{grave}%
+ \RestoreOrg{addgroup}%
+ \RestoreOrg{addmath}%
+ \RestoreOrg{addprotect}%
+ \RestoreOrg{addtoken}%
+ \setbox4=\hbox{\expandafter\testdriver\expandafter{\teststringB}}%
+ \let\HstringC\soulHstring
+ \SetTestVBox{\boxC}{\teststringB}%
+ %
+ \TestInfo{0}{soulutf8}%
+ \TestInfo{2}{soul + patch}%
+ \TestInfo{4}{original soul}%
+ \TestInfoVBox
+ \showboxdepth=\maxdimen
+ \showboxbreadth=\maxdimen
+ \tracingonline=\@ne
+ \Expect*{\HstringA}*{\HstringB}%
+ \Expect*{\HstringA}*{\HstringC}%
+ \Expect*{\the\wd0}*{\the\wd2}%
+ \ifdim\wd0=\wd2 %
+ \else
+ \showbox0 %
+ \showbox2 %
+ \fi
+ \Expect*{\the\ht0}*{\the\ht2}%
+ \Expect*{\the\dp0}*{\the\dp2}%
+ \Expect*{\the\wd\boxB}*{\the\wd\boxA}%
+ \Expect*{\the\wd\boxC}*{\the\wd\boxA}%
+ \Expect*{\the\ht\boxB}*{\the\ht\boxA}%
+ \ifdim\ht\boxB=\ht\boxA
+ \else
+ \showbox\boxA
+ \showbox\boxB
+ \fi
+ \Expect*{\the\ht\boxC}*{\the\ht\boxA}%
+ \Expect*{\the\dp\boxB}*{\the\dp\boxA}%
+ \Expect*{\the\dp\boxC}*{\the\dp\boxA}%
+ \end{qstest}%
+}
+\newcommand*{\SetTestVBox}[2]{%
+ \setbox#1=\vbox{%
+ \hsize=0pt\relax
+ \hfuzz=100mm\relax
+ \expandafter\testdriver\expandafter{#2}%
+ }%
+}
+\newcommand*{\TestInfo}[2]{%
+ \par
+ \noindent
+ \copy#1\relax
+ \hfill
+ \begingroup
+ \small
+ \ifdim\wd0=\wd2\relax
+ \ifdim\wd0=\wd4\relax
+ \else
+ \ifnum#1=2 %
+ \raisebox{.5\baselineskip}[0pt][0pt]{%
+ \llap{$\}$ }%
+ \rlap{width = \the\wd#1\relax\space$\{$}%
+ \phantom{width = 999.99999pt}%
+ \qquad
+ }%
+ \else
+ \ifnum#1=4 %
+ \rlap{width = \the\wd#1}%
+ \phantom{width = 999.99999pt}%
+ \qquad
+ \fi
+ \fi
+ \fi
+ \else
+ \begingroup
+ \bfseries
+ \rlap{width = \the\wd#1}%
+ \phantom{width = 999.99999pt}%
+ \endgroup
+ \qquad
+ \fi
+ \rlap{(#2)}%
+ \phantom{(original soul)}%
+ \endgroup
+ \par
+}
+\newcommand*{\TestInfoVBox}{%
+ \par
+ \noindent
+ \mbox{\vrule\relax\space\copy\boxA}%
+ \ifdim\ht\boxA=\ht\boxB
+ \else
+ \hfill
+ \begingroup
+ \small
+ \rlap{(soulutf8)}%
+ \phantom{(soulutf8)}%
+ \endgroup
+ \par
+ \noindent
+ \mbox{\vrule\relax\space\copy\boxB}%
+ \hfill
+ \begingroup
+ \small
+ \rlap{(soul)}%
+ \phantom{(soulutf8)}%
+ \endgroup
+ \fi
+ \par
+}
+\makeatletter
+\newcommand*{\Test}[3]{%
+ \clearpage
+ \begingroup
+ \def\linebreak{\textbackslash linebreak }%
+ \def\\{\textbackslash\textbackslash}%
+ \def\soulomit##1{%
+ \textbackslash soulomit\textbraceleft##1\textbraceright
+ }%
+ \def\mbox##1{%
+ \textbackslash mbox\textbraceleft##1\textbraceright
+ }%
+ \def\abc{\textbackslash abc }%
+ \def\texttt##1{%
+ \textbackslash texttt\textbraceleft##1\textbraceright
+ }%
+ \def\c##1{%
+ \textbackslash c\textbraceleft##1\textbraceright
+ }%
+ \count@=128 %
+ \loop
+ \ifnum\count@<256 %
+ \lccode`\~=\count@
+ \lowercase{%
+ \def~{\noexpand~}%
+ }%
+ \advance\count@\@ne
+ \repeat
+ \csname protected@edef\endcsname\x{\endgroup
+ \noexpand\section{String #1: #2}%
+ }%
+ \x
+ \TestDriver{so}{#1}{#2}{#3}%
+ \TestDriver{caps}{#1}{#2}{#3}%
+ \TestDriver{ul}{#1}{#2}{#3}%
+ \TestDriver{st}{#1}{#2}{#3}%
+ \TestDriver{hl}{#1}{#2}{#3}%
+ \TestDriver{an}{#1}{#2}{#3}%
+ \TestDriver{sy}{#1}{#2}{#3}%
+ \TestDriver{soulH}{#1}{#2}{#3}%
+}
+\makeatother
+\begin{document}
+ \Test A{}{}%
+ \Test B{Hello World}{Hello World}%
+ \Test C{%
+ Umlauts: ^^c3^^84^^c3^^96^^c3^^9c^^c3^^a4^^c3^^b6^^c3^^bc^^c3^^9f%
+ }{%
+ Umlauts: \"A\"O\"U\"a\"o\"u\ss
+ }%
+ \Test D{Euro: ^^e2^^82^^ac}{Euro: \texteuro}%
+ \Test E{Stra^^c3^^9fe}{Stra\ss e}%
+ \Test F{R^^c3^^b6mer}{R\"omer}%
+ \Test G{A^^e2^^80^^93B^^e2^^80^^94C}{A--B---C}%
+ \Test H{X^^c2^^a0Y}{X~Y}%
+ \Test I{A^^c5^^a4}{A\v T}%
+ \Test J{A,B,,C,,,D,,,,E}{A,B,,C,,,D,,,,E}%
+ \Test K{A'B''C'''D''''E}{A'B''C'''D''''E}%
+ \Test L{A`B``C```D````E}{A`B``C```D````E}%
+ \Test M{A$x$B}{A$x$B}%
+ \Test N{A\mbox{abc}B}{A\mbox{abc}B}%
+ \Test O{,,TA''}{,,TA''}%
+ \Test P{{!`}Hola{?`}}{{!`}Hola{?`}}%
+ \Test Q{re-sent\slash x}{re-sent\slash x}%
+ \Test R{new\\line}{new\\line}%
+ \Test S{foo\linebreak bar}{foo\linebreak bar}%
+ \Test T{Virchow{sche}}{Virchow{sche}}%
+ \Test U{A\soulomit{foo}B}{A\soulomit{foo}B}%
+ \Test V{A\texttt{xyz}B}{A\texttt{xyz}B}%
+ \Test W{ffi}{ffi}%
+ \Test X{f{}f{}i}{f{}f{}i}%
+ \Test Y{f\mbox{}f\mbox{}i}{f\mbox{}f\mbox{}i}%
+ \Test Z{\c{\"a}}{{\c{\"a}}}%
+ \let\abcx\UNDEFINED
+ \def\abc{%
+ \begingroup
+ \def\abcx{x}%
+ \abcx
+ \endgroup
+ }%
+ \Test{AA}{[{x\abc x}]}{[{xxx}]}%
+\end{document}
+\endinput
+%%
+%% End of file `soulutf8-test3.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test4.tex b/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test4.tex
new file mode 100644
index 00000000000..0550357500b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test4.tex
@@ -0,0 +1,358 @@
+%%
+%% This is file `soulutf8-test4.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% soulutf8.dtx (with options: `test4,utf8,noetex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file soulutf8.dtx
+%% and the derived files
+%% soulutf8.sty, soulutf8.pdf, soulutf8.ins, soulutf8.drv,
+%% soulutf8-test1.tex, soulutf8-test2.tex, soulutf8-test3.tex,
+%% soulutf8-test4.tex, soulutf8-test5.tex.
+%%
+\let\unexpanded\UNDEFINED
+\NeedsTeXFormat{LaTeX2e}
+\documentclass{article}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage{textcomp}
+\usepackage[ngerman]{babel}
+\expandafter\def\csname ver@hypdestopt.sty\endcsname{}
+\usepackage[unicode]{hyperref}
+\usepackage{bookmark}
+\usepackage{color}
+\usepackage{soul}[2003/11/17]
+\makeatletter
+\newcommand*{\@ifDefined}[1]{%
+ \@ifundefined{#1}{%
+ \@latex@error{%
+ \expandafter\noexpand\csname#1\endcsname undefined%
+ }\@ehc
+ }%
+}
+\newcommand*{\SaveOrg}[1]{%
+ \@ifdefinable{ORG@SOUL@#1}{%
+ \@ifDefined{SOUL@#1}{%
+ \expandafter\let\csname ORG@SOUL@#1\expandafter\endcsname
+ \csname SOUL@#1\endcsname
+ }%
+ }%
+}
+\newcommand*{\RestoreOrg}[1]{%
+ \@ifDefined{ORG@SOUL@#1}{%
+ \@ifDefined{SOUL@#1}{%
+ \expandafter\let\csname SOUL@#1\expandafter\endcsname
+ \csname ORG@SOUL@#1\endcsname
+ }%
+ }%
+}
+\makeatother
+\SaveOrg{eval}
+\SaveOrg{splittoken}
+\SaveOrg{flushcomma}
+\SaveOrg{flushapo}
+\SaveOrg{grave}
+\SaveOrg{addgroup}
+\SaveOrg{addmath}
+\SaveOrg{addprotect}
+\SaveOrg{addtoken}
+\usepackage{soulutf8}[2007/09/09]
+\usepackage[utf8]{inputenc}
+\DeclareUnicodeCharacter{00A0}{\nobreakspace}
+\makeatletter
+\DeclareRobustCommand*{\an}{%
+ \def\SOUL@preamble{$^{^P}$}%
+ \def\SOUL@everyspace##1{##1\texttt{\char`\ }\linebreak[2]}%
+ \def\SOUL@postamble{$^{^E}$}%
+ \def\SOUL@everyhyphen{$^{^-}$\linebreak[1]}%
+ \def\SOUL@everyexhyphen##1{##1$^{^=}$}%
+ \def\SOUL@everysyllable{$^{^S}$}%
+ \def\SOUL@everytoken{\the\SOUL@token$^{^T}$}%
+ \def\SOUL@everylowerthan{$^{^L}$}%
+ \SOUL@
+}
+\DeclareRobustCommand*{\sy}{%
+ \SOUL@setup
+ \def\SOUL@preamble{%
+ \lefthyphenmin=\z@
+ \righthyphenmin=\z@
+ }%
+ \def\SOUL@everyspace##1{##1\space}%
+ \def\SOUL@everysyllable{\the\SOUL@syllable}%
+ \def\SOUL@everyhyphen{%
+ \discretionary{%
+ \SOUL@setkern\SOUL@hyphkern
+ \SOUL@sethyphenchar
+ }{}{%
+ \hbox{\kern1pt$\cdot$}%
+ }%
+ }%
+ \def\SOUL@everyexhyphen##1{%
+ \SOUL@setkern\SOUL@hyphkern
+ \hbox{##1}%
+ \discretionary{}{}{%
+ \SOUL@setkern\SOUL@charkern
+ }%
+ }%
+ \SOUL@
+}
+\DeclareRobustCommand*{\soulH}{%
+ \def\SOUL@preamble{%
+ \gdef\SOULH{}%
+ \soulHadd{[}%
+ }%
+ \def\SOUL@everyspace##1{%
+ \soulHadd{Sp}%
+ }%
+ \def\SOUL@postamble{%
+ \soulHadd{]}%
+ }%
+ \def\SOUL@everyhyphen{%
+ \soulHadd{Hy}%
+ }%
+ \def\SOUL@everyexhyphen##1{%
+ \soulHadd{Exhy}%
+ }%
+ \def\SOUL@everysyllable{%
+ \soulHadd{Sy}%
+ }%
+ \def\SOUL@everytoken{%
+ \soulHadd{T}%
+ }%
+ \def\SOUL@everylowerthan{%
+ \soulHadd{<}%
+ }%
+ \SOUL@
+}
+\newcommand*{\soulHadd}[1]{%
+ #1%
+ \expandafter\gdef\expandafter\soulHstring\expandafter{%
+ \soulHstring
+ #1%
+ }%
+}
+\usepackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+\newsavebox\boxA
+\newsavebox\boxB
+\newsavebox\boxC
+\newcommand*{\TestDriver}[4]{%
+ \subsection{Driver #1}%
+ \@PackageInfo{soulutf8-test}{* Driver #1}%
+ \expandafter\let\expandafter\testdriver\csname #1\endcsname
+ \def\teststringA{#3}%
+ \def\teststringB{#4}%
+ \begin{qstest}{string-#2-driver-#1}{string,#2,driver,#1}%
+ \@PackageInfo{soulutf8-test}{* Version: soulutf8}%
+ \global\let\soulHstring\@empty
+ \setbox0=\hbox{\expandafter\testdriver\expandafter{\teststringA}}%
+ \let\HstringA\soulHstring
+ \SetTestVBox{\boxA}{\teststringA}%
+ %
+ \@PackageInfo{soulutf8-test}{* Version: soul + patch}%
+ \global\let\soulHstring\@empty
+ \RestoreOrg{eval}%
+ \setbox2=\hbox{\expandafter\testdriver\expandafter{\teststringB}}%
+ \let\HstringB\soulHstring
+ \SetTestVBox{\boxB}{\teststringB}%
+ %
+ \@PackageInfo{soulutf8-test}{* Version: original soul}%
+ \global\let\soulHstring\@empty
+ \RestoreOrg{splittoken}%
+ \RestoreOrg{flushcomma}%
+ \RestoreOrg{flushapo}%
+ \RestoreOrg{grave}%
+ \RestoreOrg{addgroup}%
+ \RestoreOrg{addmath}%
+ \RestoreOrg{addprotect}%
+ \RestoreOrg{addtoken}%
+ \setbox4=\hbox{\expandafter\testdriver\expandafter{\teststringB}}%
+ \let\HstringC\soulHstring
+ \SetTestVBox{\boxC}{\teststringB}%
+ %
+ \TestInfo{0}{soulutf8}%
+ \TestInfo{2}{soul + patch}%
+ \TestInfo{4}{original soul}%
+ \TestInfoVBox
+ \showboxdepth=\maxdimen
+ \showboxbreadth=\maxdimen
+ \tracingonline=\@ne
+ \Expect*{\HstringA}*{\HstringB}%
+ \Expect*{\HstringA}*{\HstringC}%
+ \Expect*{\the\wd0}*{\the\wd2}%
+ \ifdim\wd0=\wd2 %
+ \else
+ \showbox0 %
+ \showbox2 %
+ \fi
+ \Expect*{\the\ht0}*{\the\ht2}%
+ \Expect*{\the\dp0}*{\the\dp2}%
+ \Expect*{\the\wd\boxB}*{\the\wd\boxA}%
+ \Expect*{\the\wd\boxC}*{\the\wd\boxA}%
+ \Expect*{\the\ht\boxB}*{\the\ht\boxA}%
+ \ifdim\ht\boxB=\ht\boxA
+ \else
+ \showbox\boxA
+ \showbox\boxB
+ \fi
+ \Expect*{\the\ht\boxC}*{\the\ht\boxA}%
+ \Expect*{\the\dp\boxB}*{\the\dp\boxA}%
+ \Expect*{\the\dp\boxC}*{\the\dp\boxA}%
+ \end{qstest}%
+}
+\newcommand*{\SetTestVBox}[2]{%
+ \setbox#1=\vbox{%
+ \hsize=0pt\relax
+ \hfuzz=100mm\relax
+ \expandafter\testdriver\expandafter{#2}%
+ }%
+}
+\newcommand*{\TestInfo}[2]{%
+ \par
+ \noindent
+ \copy#1\relax
+ \hfill
+ \begingroup
+ \small
+ \ifdim\wd0=\wd2\relax
+ \ifdim\wd0=\wd4\relax
+ \else
+ \ifnum#1=2 %
+ \raisebox{.5\baselineskip}[0pt][0pt]{%
+ \llap{$\}$ }%
+ \rlap{width = \the\wd#1\relax\space$\{$}%
+ \phantom{width = 999.99999pt}%
+ \qquad
+ }%
+ \else
+ \ifnum#1=4 %
+ \rlap{width = \the\wd#1}%
+ \phantom{width = 999.99999pt}%
+ \qquad
+ \fi
+ \fi
+ \fi
+ \else
+ \begingroup
+ \bfseries
+ \rlap{width = \the\wd#1}%
+ \phantom{width = 999.99999pt}%
+ \endgroup
+ \qquad
+ \fi
+ \rlap{(#2)}%
+ \phantom{(original soul)}%
+ \endgroup
+ \par
+}
+\newcommand*{\TestInfoVBox}{%
+ \par
+ \noindent
+ \mbox{\vrule\relax\space\copy\boxA}%
+ \ifdim\ht\boxA=\ht\boxB
+ \else
+ \hfill
+ \begingroup
+ \small
+ \rlap{(soulutf8)}%
+ \phantom{(soulutf8)}%
+ \endgroup
+ \par
+ \noindent
+ \mbox{\vrule\relax\space\copy\boxB}%
+ \hfill
+ \begingroup
+ \small
+ \rlap{(soul)}%
+ \phantom{(soulutf8)}%
+ \endgroup
+ \fi
+ \par
+}
+\makeatletter
+\newcommand*{\Test}[3]{%
+ \clearpage
+ \begingroup
+ \def\linebreak{\textbackslash linebreak }%
+ \def\\{\textbackslash\textbackslash}%
+ \def\soulomit##1{%
+ \textbackslash soulomit\textbraceleft##1\textbraceright
+ }%
+ \def\mbox##1{%
+ \textbackslash mbox\textbraceleft##1\textbraceright
+ }%
+ \def\abc{\textbackslash abc }%
+ \def\texttt##1{%
+ \textbackslash texttt\textbraceleft##1\textbraceright
+ }%
+ \def\c##1{%
+ \textbackslash c\textbraceleft##1\textbraceright
+ }%
+ \csname protected@edef\endcsname\x{\endgroup
+ \noexpand\section{String #1: #2}%
+ }%
+ \x
+ \TestDriver{so}{#1}{#2}{#3}%
+ \TestDriver{caps}{#1}{#2}{#3}%
+ \TestDriver{ul}{#1}{#2}{#3}%
+ \TestDriver{st}{#1}{#2}{#3}%
+ \TestDriver{hl}{#1}{#2}{#3}%
+ \TestDriver{an}{#1}{#2}{#3}%
+ \TestDriver{sy}{#1}{#2}{#3}%
+ \TestDriver{soulH}{#1}{#2}{#3}%
+}
+\makeatother
+\begin{document}
+ \Test A{}{}%
+ \Test B{Hello World}{Hello World}%
+ \Test C{%
+ Umlauts: ^^c3^^84^^c3^^96^^c3^^9c^^c3^^a4^^c3^^b6^^c3^^bc^^c3^^9f%
+ }{%
+ Umlauts: \"A\"O\"U\"a\"o\"u\ss
+ }%
+ \Test D{Euro: ^^e2^^82^^ac}{Euro: \texteuro}%
+ \Test E{Stra^^c3^^9fe}{Stra\ss e}%
+ \Test F{R^^c3^^b6mer}{R\"omer}%
+ \Test G{A^^e2^^80^^93B^^e2^^80^^94C}{A--B---C}%
+ \Test H{X^^c2^^a0Y}{X~Y}%
+ \Test I{A^^c5^^a4}{A\v T}%
+ \Test J{A,B,,C,,,D,,,,E}{A,B,,C,,,D,,,,E}%
+ \Test K{A'B''C'''D''''E}{A'B''C'''D''''E}%
+ \Test L{A`B``C```D````E}{A`B``C```D````E}%
+ \Test M{A$x$B}{A$x$B}%
+ \Test N{A\mbox{abc}B}{A\mbox{abc}B}%
+ \Test O{,,TA''}{,,TA''}%
+ \Test P{{!`}Hola{?`}}{{!`}Hola{?`}}%
+ \Test Q{re-sent\slash x}{re-sent\slash x}%
+ \Test R{new\\line}{new\\line}%
+ \Test S{foo\linebreak bar}{foo\linebreak bar}%
+ \Test T{Virchow{sche}}{Virchow{sche}}%
+ \Test U{A\soulomit{foo}B}{A\soulomit{foo}B}%
+ \Test V{A\texttt{xyz}B}{A\texttt{xyz}B}%
+ \Test W{ffi}{ffi}%
+ \Test X{f{}f{}i}{f{}f{}i}%
+ \Test Y{f\mbox{}f\mbox{}i}{f\mbox{}f\mbox{}i}%
+ \Test Z{\c{\"a}}{{\c{\"a}}}%
+\end{document}
+\endinput
+%%
+%% End of file `soulutf8-test4.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test5.tex b/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test5.tex
new file mode 100644
index 00000000000..41795b145ac
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/soulutf8-test5.tex
@@ -0,0 +1,370 @@
+%%
+%% This is file `soulutf8-test5.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% soulutf8.dtx (with options: `test5,utf8x,noetex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file soulutf8.dtx
+%% and the derived files
+%% soulutf8.sty, soulutf8.pdf, soulutf8.ins, soulutf8.drv,
+%% soulutf8-test1.tex, soulutf8-test2.tex, soulutf8-test3.tex,
+%% soulutf8-test4.tex, soulutf8-test5.tex.
+%%
+\let\unexpanded\UNDEFINED
+\NeedsTeXFormat{LaTeX2e}
+\documentclass{article}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage{textcomp}
+\usepackage[ngerman]{babel}
+\expandafter\def\csname ver@hypdestopt.sty\endcsname{}
+\usepackage[unicode]{hyperref}
+\usepackage{bookmark}
+\usepackage{color}
+\usepackage{soul}[2003/11/17]
+\makeatletter
+\newcommand*{\@ifDefined}[1]{%
+ \@ifundefined{#1}{%
+ \@latex@error{%
+ \expandafter\noexpand\csname#1\endcsname undefined%
+ }\@ehc
+ }%
+}
+\newcommand*{\SaveOrg}[1]{%
+ \@ifdefinable{ORG@SOUL@#1}{%
+ \@ifDefined{SOUL@#1}{%
+ \expandafter\let\csname ORG@SOUL@#1\expandafter\endcsname
+ \csname SOUL@#1\endcsname
+ }%
+ }%
+}
+\newcommand*{\RestoreOrg}[1]{%
+ \@ifDefined{ORG@SOUL@#1}{%
+ \@ifDefined{SOUL@#1}{%
+ \expandafter\let\csname SOUL@#1\expandafter\endcsname
+ \csname ORG@SOUL@#1\endcsname
+ }%
+ }%
+}
+\makeatother
+\SaveOrg{eval}
+\SaveOrg{splittoken}
+\SaveOrg{flushcomma}
+\SaveOrg{flushapo}
+\SaveOrg{grave}
+\SaveOrg{addgroup}
+\SaveOrg{addmath}
+\SaveOrg{addprotect}
+\SaveOrg{addtoken}
+\usepackage{soulutf8}[2007/09/09]
+\let\origshow\show
+\usepackage[utf8x]{inputenc}
+\AtBeginDocument{%
+ \let\show\origshow
+}
+\makeatletter
+\DeclareRobustCommand*{\an}{%
+ \def\SOUL@preamble{$^{^P}$}%
+ \def\SOUL@everyspace##1{##1\texttt{\char`\ }\linebreak[2]}%
+ \def\SOUL@postamble{$^{^E}$}%
+ \def\SOUL@everyhyphen{$^{^-}$\linebreak[1]}%
+ \def\SOUL@everyexhyphen##1{##1$^{^=}$}%
+ \def\SOUL@everysyllable{$^{^S}$}%
+ \def\SOUL@everytoken{\the\SOUL@token$^{^T}$}%
+ \def\SOUL@everylowerthan{$^{^L}$}%
+ \SOUL@
+}
+\DeclareRobustCommand*{\sy}{%
+ \SOUL@setup
+ \def\SOUL@preamble{%
+ \lefthyphenmin=\z@
+ \righthyphenmin=\z@
+ }%
+ \def\SOUL@everyspace##1{##1\space}%
+ \def\SOUL@everysyllable{\the\SOUL@syllable}%
+ \def\SOUL@everyhyphen{%
+ \discretionary{%
+ \SOUL@setkern\SOUL@hyphkern
+ \SOUL@sethyphenchar
+ }{}{%
+ \hbox{\kern1pt$\cdot$}%
+ }%
+ }%
+ \def\SOUL@everyexhyphen##1{%
+ \SOUL@setkern\SOUL@hyphkern
+ \hbox{##1}%
+ \discretionary{}{}{%
+ \SOUL@setkern\SOUL@charkern
+ }%
+ }%
+ \SOUL@
+}
+\DeclareRobustCommand*{\soulH}{%
+ \def\SOUL@preamble{%
+ \gdef\SOULH{}%
+ \soulHadd{[}%
+ }%
+ \def\SOUL@everyspace##1{%
+ \soulHadd{Sp}%
+ }%
+ \def\SOUL@postamble{%
+ \soulHadd{]}%
+ }%
+ \def\SOUL@everyhyphen{%
+ \soulHadd{Hy}%
+ }%
+ \def\SOUL@everyexhyphen##1{%
+ \soulHadd{Exhy}%
+ }%
+ \def\SOUL@everysyllable{%
+ \soulHadd{Sy}%
+ }%
+ \def\SOUL@everytoken{%
+ \soulHadd{T}%
+ }%
+ \def\SOUL@everylowerthan{%
+ \soulHadd{<}%
+ }%
+ \SOUL@
+}
+\newcommand*{\soulHadd}[1]{%
+ #1%
+ \expandafter\gdef\expandafter\soulHstring\expandafter{%
+ \soulHstring
+ #1%
+ }%
+}
+\usepackage{qstest}
+\IncludeTests{*}
+\LogTests{log}{*}{*}
+\newsavebox\boxA
+\newsavebox\boxB
+\newsavebox\boxC
+\newcommand*{\TestDriver}[4]{%
+ \subsection{Driver #1}%
+ \@PackageInfo{soulutf8-test}{* Driver #1}%
+ \expandafter\let\expandafter\testdriver\csname #1\endcsname
+ \def\teststringA{#3}%
+ \def\teststringB{#4}%
+ \begin{qstest}{string-#2-driver-#1}{string,#2,driver,#1}%
+ \@PackageInfo{soulutf8-test}{* Version: soulutf8}%
+ \global\let\soulHstring\@empty
+ \setbox0=\hbox{\expandafter\testdriver\expandafter{\teststringA}}%
+ \let\HstringA\soulHstring
+ \SetTestVBox{\boxA}{\teststringA}%
+ %
+ \@PackageInfo{soulutf8-test}{* Version: soul + patch}%
+ \global\let\soulHstring\@empty
+ \RestoreOrg{eval}%
+ \setbox2=\hbox{\expandafter\testdriver\expandafter{\teststringB}}%
+ \let\HstringB\soulHstring
+ \SetTestVBox{\boxB}{\teststringB}%
+ %
+ \@PackageInfo{soulutf8-test}{* Version: original soul}%
+ \global\let\soulHstring\@empty
+ \RestoreOrg{splittoken}%
+ \RestoreOrg{flushcomma}%
+ \RestoreOrg{flushapo}%
+ \RestoreOrg{grave}%
+ \RestoreOrg{addgroup}%
+ \RestoreOrg{addmath}%
+ \RestoreOrg{addprotect}%
+ \RestoreOrg{addtoken}%
+ \setbox4=\hbox{\expandafter\testdriver\expandafter{\teststringB}}%
+ \let\HstringC\soulHstring
+ \SetTestVBox{\boxC}{\teststringB}%
+ %
+ \TestInfo{0}{soulutf8}%
+ \TestInfo{2}{soul + patch}%
+ \TestInfo{4}{original soul}%
+ \TestInfoVBox
+ \showboxdepth=\maxdimen
+ \showboxbreadth=\maxdimen
+ \tracingonline=\@ne
+ \Expect*{\HstringA}*{\HstringB}%
+ \Expect*{\HstringA}*{\HstringC}%
+ \Expect*{\the\wd0}*{\the\wd2}%
+ \ifdim\wd0=\wd2 %
+ \else
+ \showbox0 %
+ \showbox2 %
+ \fi
+ \Expect*{\the\ht0}*{\the\ht2}%
+ \Expect*{\the\dp0}*{\the\dp2}%
+ \Expect*{\the\wd\boxB}*{\the\wd\boxA}%
+ \Expect*{\the\wd\boxC}*{\the\wd\boxA}%
+ \Expect*{\the\ht\boxB}*{\the\ht\boxA}%
+ \ifdim\ht\boxB=\ht\boxA
+ \else
+ \showbox\boxA
+ \showbox\boxB
+ \fi
+ \Expect*{\the\ht\boxC}*{\the\ht\boxA}%
+ \Expect*{\the\dp\boxB}*{\the\dp\boxA}%
+ \Expect*{\the\dp\boxC}*{\the\dp\boxA}%
+ \end{qstest}%
+}
+\newcommand*{\SetTestVBox}[2]{%
+ \setbox#1=\vbox{%
+ \hsize=0pt\relax
+ \hfuzz=100mm\relax
+ \expandafter\testdriver\expandafter{#2}%
+ }%
+}
+\newcommand*{\TestInfo}[2]{%
+ \par
+ \noindent
+ \copy#1\relax
+ \hfill
+ \begingroup
+ \small
+ \ifdim\wd0=\wd2\relax
+ \ifdim\wd0=\wd4\relax
+ \else
+ \ifnum#1=2 %
+ \raisebox{.5\baselineskip}[0pt][0pt]{%
+ \llap{$\}$ }%
+ \rlap{width = \the\wd#1\relax\space$\{$}%
+ \phantom{width = 999.99999pt}%
+ \qquad
+ }%
+ \else
+ \ifnum#1=4 %
+ \rlap{width = \the\wd#1}%
+ \phantom{width = 999.99999pt}%
+ \qquad
+ \fi
+ \fi
+ \fi
+ \else
+ \begingroup
+ \bfseries
+ \rlap{width = \the\wd#1}%
+ \phantom{width = 999.99999pt}%
+ \endgroup
+ \qquad
+ \fi
+ \rlap{(#2)}%
+ \phantom{(original soul)}%
+ \endgroup
+ \par
+}
+\newcommand*{\TestInfoVBox}{%
+ \par
+ \noindent
+ \mbox{\vrule\relax\space\copy\boxA}%
+ \ifdim\ht\boxA=\ht\boxB
+ \else
+ \hfill
+ \begingroup
+ \small
+ \rlap{(soulutf8)}%
+ \phantom{(soulutf8)}%
+ \endgroup
+ \par
+ \noindent
+ \mbox{\vrule\relax\space\copy\boxB}%
+ \hfill
+ \begingroup
+ \small
+ \rlap{(soul)}%
+ \phantom{(soulutf8)}%
+ \endgroup
+ \fi
+ \par
+}
+\makeatletter
+\newcommand*{\Test}[3]{%
+ \clearpage
+ \begingroup
+ \def\linebreak{\textbackslash linebreak }%
+ \def\\{\textbackslash\textbackslash}%
+ \def\soulomit##1{%
+ \textbackslash soulomit\textbraceleft##1\textbraceright
+ }%
+ \def\mbox##1{%
+ \textbackslash mbox\textbraceleft##1\textbraceright
+ }%
+ \def\abc{\textbackslash abc }%
+ \def\texttt##1{%
+ \textbackslash texttt\textbraceleft##1\textbraceright
+ }%
+ \def\c##1{%
+ \textbackslash c\textbraceleft##1\textbraceright
+ }%
+ \count@=128 %
+ \loop
+ \ifnum\count@<256 %
+ \lccode`\~=\count@
+ \lowercase{%
+ \def~{\noexpand~}%
+ }%
+ \advance\count@\@ne
+ \repeat
+ \csname protected@edef\endcsname\x{\endgroup
+ \noexpand\section{String #1: #2}%
+ }%
+ \x
+ \TestDriver{so}{#1}{#2}{#3}%
+ \TestDriver{caps}{#1}{#2}{#3}%
+ \TestDriver{ul}{#1}{#2}{#3}%
+ \TestDriver{st}{#1}{#2}{#3}%
+ \TestDriver{hl}{#1}{#2}{#3}%
+ \TestDriver{an}{#1}{#2}{#3}%
+ \TestDriver{sy}{#1}{#2}{#3}%
+ \TestDriver{soulH}{#1}{#2}{#3}%
+}
+\makeatother
+\begin{document}
+ \Test A{}{}%
+ \Test B{Hello World}{Hello World}%
+ \Test C{%
+ Umlauts: ^^c3^^84^^c3^^96^^c3^^9c^^c3^^a4^^c3^^b6^^c3^^bc^^c3^^9f%
+ }{%
+ Umlauts: \"A\"O\"U\"a\"o\"u\ss
+ }%
+ \Test D{Euro: ^^e2^^82^^ac}{Euro: \texteuro}%
+ \Test E{Stra^^c3^^9fe}{Stra\ss e}%
+ \Test F{R^^c3^^b6mer}{R\"omer}%
+ \Test G{A^^e2^^80^^93B^^e2^^80^^94C}{A--B---C}%
+ \Test H{X^^c2^^a0Y}{X~Y}%
+ \Test I{A^^c5^^a4}{A\v T}%
+ \Test J{A,B,,C,,,D,,,,E}{A,B,,C,,,D,,,,E}%
+ \Test K{A'B''C'''D''''E}{A'B''C'''D''''E}%
+ \Test L{A`B``C```D````E}{A`B``C```D````E}%
+ \Test M{A$x$B}{A$x$B}%
+ \Test N{A\mbox{abc}B}{A\mbox{abc}B}%
+ \Test O{,,TA''}{,,TA''}%
+ \Test P{{!`}Hola{?`}}{{!`}Hola{?`}}%
+ \Test Q{re-sent\slash x}{re-sent\slash x}%
+ \Test R{new\\line}{new\\line}%
+ \Test S{foo\linebreak bar}{foo\linebreak bar}%
+ \Test T{Virchow{sche}}{Virchow{sche}}%
+ \Test U{A\soulomit{foo}B}{A\soulomit{foo}B}%
+ \Test V{A\texttt{xyz}B}{A\texttt{xyz}B}%
+ \Test W{ffi}{ffi}%
+ \Test X{f{}f{}i}{f{}f{}i}%
+ \Test Y{f\mbox{}f\mbox{}i}{f\mbox{}f\mbox{}i}%
+ \Test Z{\c{\"a}}{{\c{\"a}}}%
+\end{document}
+\endinput
+%%
+%% End of file `soulutf8-test5.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/soulutf8.pdf b/Master/texmf-dist/doc/latex/oberdiek/soulutf8.pdf
new file mode 100644
index 00000000000..e8604c214a7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/soulutf8.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/stackrel.pdf b/Master/texmf-dist/doc/latex/oberdiek/stackrel.pdf
index f3c6f22bea1..d2eccc9186c 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/stackrel.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/stackrel.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/stringenc-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/stringenc-test1.tex
index 73c86a93762..940af5d5b64 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/stringenc-test1.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/stringenc-test1.tex
@@ -78,7 +78,7 @@
\catcode`\%=14 %
\catcode`\ =10 %
\catcode13=5 %
- \usepackage{stringenc}[2007/06/16]%
+ \usepackage{stringenc}[2007/09/09]%
\RestoreCatcodes
}
\Test
diff --git a/Master/texmf-dist/doc/latex/oberdiek/stringenc-test2.tex b/Master/texmf-dist/doc/latex/oberdiek/stringenc-test2.tex
index 4a99edb0d5c..973d5b92210 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/stringenc-test2.tex
+++ b/Master/texmf-dist/doc/latex/oberdiek/stringenc-test2.tex
@@ -47,7 +47,7 @@
\let\SavedNumexpr\numexpr
\let\numexpr\relax
\fi
-\usepackage{stringenc}[2007/06/16]
+\usepackage{stringenc}[2007/09/09]
\ifx\plainmode Y
\let\numexpr\SavedNumexpr
\fi
diff --git a/Master/texmf-dist/doc/latex/oberdiek/stringenc.pdf b/Master/texmf-dist/doc/latex/oberdiek/stringenc.pdf
index 041f401f52e..754122c52fc 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/stringenc.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/stringenc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/tabularht.pdf b/Master/texmf-dist/doc/latex/oberdiek/tabularht.pdf
index 3df0c7824b0..964eb41f869 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/tabularht.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/tabularht.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/tabularkv.pdf b/Master/texmf-dist/doc/latex/oberdiek/tabularkv.pdf
index 5a040ed8853..11132898a58 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/tabularkv.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/tabularkv.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/telprint-test1.tex b/Master/texmf-dist/doc/latex/oberdiek/telprint-test1.tex
new file mode 100644
index 00000000000..ed748e0c77a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/oberdiek/telprint-test1.tex
@@ -0,0 +1,74 @@
+%%
+%% This is file `telprint-test1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% telprint.dtx (with options: `test1')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 1996, 1997, 2004, 2005, 2006, 2007 by
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file telprint.dtx
+%% and the derived files
+%% telprint.sty, telprint.pdf, telprint.ins, telprint.drv,
+%% telprint-test1.tex.
+%%
+\catcode`\@=11 %
+\def\RestoreCatcodes{}
+\count@=0 %
+\loop
+ \edef\RestoreCatcodes{%
+ \RestoreCatcodes
+ \catcode\the\count@=\the\catcode\count@\relax
+ }%
+\ifnum\count@<255 %
+ \advance\count@\@ne
+\repeat
+
+\def\RangeCatcodeInvalid#1#2{%
+ \count@=#1\relax
+ \loop
+ \catcode\count@=15 %
+ \ifnum\count@<#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+\def\Test{%
+ \RangeCatcodeInvalid{0}{47}%
+ \RangeCatcodeInvalid{58}{64}%
+ \RangeCatcodeInvalid{91}{96}%
+ \RangeCatcodeInvalid{123}{255}%
+ \catcode`\@=12 %
+ \catcode`\\=0 %
+ \catcode`\{=1 %
+ \catcode`\}=2 %
+ \catcode`\#=6 %
+ \catcode`\[=12 %
+ \catcode`\]=12 %
+ \catcode`\%=14 %
+ \catcode`\ =10 %
+ \catcode13=5 %
+ \input telprint.sty\relax
+ \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
+\end
+\endinput
+%%
+%% End of file `telprint-test1.tex'.
diff --git a/Master/texmf-dist/doc/latex/oberdiek/telprint.pdf b/Master/texmf-dist/doc/latex/oberdiek/telprint.pdf
index ad90cbdee65..226f45a0f38 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/telprint.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/telprint.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/transparent.pdf b/Master/texmf-dist/doc/latex/oberdiek/transparent.pdf
index 4da279754df..7d5ea1e9227 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/transparent.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/transparent.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/twoopt.pdf b/Master/texmf-dist/doc/latex/oberdiek/twoopt.pdf
index cdc5189824d..cdd894dd434 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/twoopt.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/twoopt.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/oberdiek/zref.pdf b/Master/texmf-dist/doc/latex/oberdiek/zref.pdf
index 9fcfee9d5a5..30fd5d536f9 100644
--- a/Master/texmf-dist/doc/latex/oberdiek/zref.pdf
+++ b/Master/texmf-dist/doc/latex/oberdiek/zref.pdf
Binary files differ