From d85f248e3b38ea0ecda38c5340e3cadd08d65346 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sun, 16 Sep 2007 00:07:34 +0000
Subject: oberdiek update (14sep07)

git-svn-id: svn://tug.org/texlive/trunk@4947 c570f23f-e606-0410-a88d-b1316a301751
---
 .../texmf-dist/source/latex/oberdiek/catchfile.dtx | 125 ++++++++++++++++-----
 1 file changed, 96 insertions(+), 29 deletions(-)

(limited to 'Master/texmf-dist/source/latex/oberdiek/catchfile.dtx')

diff --git a/Master/texmf-dist/source/latex/oberdiek/catchfile.dtx b/Master/texmf-dist/source/latex/oberdiek/catchfile.dtx
index 58dfe9abef8..ca87b190bad 100644
--- a/Master/texmf-dist/source/latex/oberdiek/catchfile.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/catchfile.dtx
@@ -17,7 +17,8 @@
 % 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.
 %
 % Distribution:
 %    CTAN:macros/latex/contrib/oberdiek/catchfile.dtx
@@ -54,6 +55,7 @@
 %    TDS:doc/latex/oberdiek/catchfile.pdf
 %    TDS:doc/latex/oberdiek/catchfile-test1.tex
 %    TDS:doc/latex/oberdiek/catchfile-test2.tex
+%    TDS:doc/latex/oberdiek/catchfile-test3.tex
 %    TDS:source/latex/oberdiek/catchfile.dtx
 %
 %<*ignore>
@@ -69,7 +71,7 @@
 \input docstrip.tex
 \Msg{************************************************************************}
 \Msg{* Installation}
-\Msg{* Package: catchfile 2007/05/30 v1.0 Catches the contents of a file (HO)}
+\Msg{* Package: catchfile 2007/09/09 v1.1 Catches the contents of a file (HO)}
 \Msg{************************************************************************}
 
 \keepsilent
@@ -96,7 +98,8 @@ 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-test1.tex, catchfile-test2.tex,
+   catchfile-test3.tex.
 
 \endpreamble
 
@@ -108,6 +111,7 @@ and the derived files
   \usedir{doc/latex/oberdiek}%
   \file{catchfile-test1.tex}{\from{catchfile.dtx}{test1}}%
   \file{catchfile-test2.tex}{\from{catchfile.dtx}{test2}}%
+  \file{catchfile-test3.tex}{\from{catchfile.dtx}{test3}}%
 }
 
 \obeyspaces
@@ -133,7 +137,7 @@ and the derived files
 %<*driver>
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{catchfile.drv}%
-  [2007/05/30 v1.0 Catches the contents of a file (HO)]%
+  [2007/09/09 v1.1 Catches the contents of a file (HO)]%
 \documentclass{ltxdoc}
 \usepackage{holtxdoc}
 \begin{document}
@@ -142,7 +146,7 @@ and the derived files
 %</driver>
 % \fi
 %
-% \CheckSum{419}
+% \CheckSum{481}
 %
 % \CharacterTable
 %  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -163,7 +167,7 @@ and the derived files
 % \GetFileInfo{catchfile.drv}
 %
 % \title{The \xpackage{catchfile} package}
-% \date{2007/05/30 v1.0}
+% \date{2007/09/09 v1.1}
 % \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
 %
 % \maketitle
@@ -258,27 +262,30 @@ and the derived files
   \fi
 \expandafter\x\csname ver@catchfile.sty\endcsname
 \ProvidesPackage{catchfile}%
-  [2007/05/30 v1.0 Catches the contents of a file (HO)]
+  [2007/09/09 v1.1 Catches the contents of a file (HO)]
 %    \end{macrocode}
 %
 % \subsection{Catcodes}
 %
 %    \begin{macrocode}
-\expandafter\edef\csname CatchFile@End\endcsname{%
-  \catcode44 \the\catcode44\relax % ,
-  \catcode45 \the\catcode45\relax % -
-  \catcode46 \the\catcode46\relax % .
-  \catcode61 \the\catcode61\relax % =
-  \catcode64 \the\catcode64\relax % @
-  \catcode96 \the\catcode96\relax % `
-  \noexpand\endinput
+\expandafter\edef\csname CatchFile@AtEnd\endcsname{%
+  \catcode64 \the\catcode64\relax
 }
-\catcode44 12 % ,
-\catcode45 12 % -
-\catcode46 12 % .
-\catcode61 12 % =
 \catcode64 11 % @
-\catcode96 12 % `
+\def\TMP@EnsureCode#1#2{%
+  \edef\CatchFile@AtEnd{%
+    \CatchFile@AtEnd
+    \catcode#1 \the\catcode#1\relax
+  }%
+  \catcode#1 #2\relax
+}
+\TMP@EnsureCode{39}{12}% '
+\TMP@EnsureCode{44}{12}% ,
+\TMP@EnsureCode{45}{12}% -
+\TMP@EnsureCode{46}{12}% .
+\TMP@EnsureCode{47}{12}% /
+\TMP@EnsureCode{61}{12}% =
+\TMP@EnsureCode{96}{12}% `
 %    \end{macrocode}
 %
 % \subsection{Preparations}
@@ -288,7 +295,7 @@ and the derived files
 \expandafter\ifx\csname RequirePackage\endcsname\relax
   \input infwarerr.sty\relax
 \else
-  \RequirePackage{infwarerr}%
+  \RequirePackage{infwarerr}[2007/09/09]%
 \fi
 %    \end{macrocode}
 %
@@ -305,7 +312,8 @@ and the derived files
       package loading is aborted%
     }\@ehd
     \endgroup
-    \expandafter\CatchFile@End
+    \CatchFile@AtEnd
+    \expandafter\endinput
   \fi
 \endgroup
 %    \end{macrocode}
@@ -343,7 +351,8 @@ and the derived files
     package loading is aborted%
   }\@ehd
   \csname endgroup\endcsname
-  \CatchFile@End
+  \CatchFile@AtEnd
+  \endinput
 \endgroup
 %    \end{macrocode}
 %    \end{macro}
@@ -471,21 +480,73 @@ and the derived files
 %    \end{macro}
 %
 %    \begin{macrocode}
-\CatchFile@End
+\CatchFile@AtEnd
 %</package>
 %    \end{macrocode}
 %
 % \section{Test}
 %
-% \subsection{\LaTeX}
+% \subsection{Catcode checks for loading}
 %
 %    \begin{macrocode}
 %<*test1>
+%    \end{macrocode}
+%    \begin{macrocode}
+\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 catchfile.sty\relax
+  \RestoreCatcodes
+}
+\Test
+\csname @@end\endcsname
+\end
+%    \end{macrocode}
+%    \begin{macrocode}
+%</test1>
+%    \end{macrocode}
+%
+% \subsection{\LaTeX}
+%
+%    \begin{macrocode}
+%<*test2>
 \NeedsTeXFormat{LaTeX2e}
 \nofiles
 \listfiles
 \documentclass{minimal}
-\usepackage{catchfile}[2007/05/30]
+\usepackage{catchfile}[2007/09/09]
 \makeatletter
 \def\mysetup{%
   \let\do\@makeother
@@ -504,13 +565,13 @@ and the derived files
 }
 \typeout{\contents}
 \end{document}
-%</test1>
+%</test2>
 %    \end{macrocode}
 %
 % \subsection{\plainTeX}
 %
 %    \begin{macrocode}
-%<*test2>
+%<*test3>
 \def\msg#{\immediate\write16}
 \newlinechar=10 %
 \input catchfile.sty\relax
@@ -534,8 +595,9 @@ and the derived files
 
 \csname @@end\endcsname
 \end
-%</test2>
+%</test3>
 %    \end{macrocode}
+%
 % \section{Installation}
 %
 % \subsection{Download}
@@ -599,6 +661,7 @@ and the derived files
 %   catchfile.pdf & doc/latex/oberdiek/catchfile.pdf\\
 %   catchfile-test1.tex & doc/latex/oberdiek/catchfile-test1.tex\\
 %   catchfile-test2.tex & doc/latex/oberdiek/catchfile-test2.tex\\
+%   catchfile-test3.tex & doc/latex/oberdiek/catchfile-test3.tex\\
 %   catchfile.dtx & source/latex/oberdiek/catchfile.dtx\\
 % \end{tabular}^^A
 % }^^A
@@ -724,6 +787,10 @@ and the derived files
 %   \item
 %     First version.
 %   \end{Version}
+%   \begin{Version}{2007/09/09 v1.1}
+%   \item
+%     Catcode section rewritten.
+%   \end{Version}
 % \end{History}
 %
 % \PrintIndex
-- 
cgit v1.2.3

