summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/filecontentsdef/filecontentsdef.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/filecontentsdef/filecontentsdef.sty')
-rw-r--r--Master/texmf-dist/tex/latex/filecontentsdef/filecontentsdef.sty149
1 files changed, 95 insertions, 54 deletions
diff --git a/Master/texmf-dist/tex/latex/filecontentsdef/filecontentsdef.sty b/Master/texmf-dist/tex/latex/filecontentsdef/filecontentsdef.sty
index e956a6ff767..c1347d3af95 100644
--- a/Master/texmf-dist/tex/latex/filecontentsdef/filecontentsdef.sty
+++ b/Master/texmf-dist/tex/latex/filecontentsdef/filecontentsdef.sty
@@ -23,19 +23,25 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{filecontentsdef}
- [2019/04/20 v1.4 filecontents + macro + verbatim (JFB)]
+ [2019/09/29 v1.5 filecontents + macro + verbatim (JFB)]
%%
%% Package: filecontentsdef
-%% Version: 1.4 (2019/04/20)
+%% Version: 1.5 (2019/09/29)
%% License: LPPL 1.3c
%% Copyright (C) 2016-2019 Jean-Francois Burnol <jfbu at free dot fr>
%%
+\let\FCD@global\global
\begingroup
\catcode`\^^M\active%
\catcode`\^^L\active\let^^L\relax%
\catcode`\^^I\active%
-\gdef\filec@ntentsdef#1#2{%
- \let#2\@empty%
+\gdef\FCD@main#1#2{%
+ \def\FCD@defmacro%
+ {\toks@\expandafter{#2}%
+ \edef\x{\endgroup\def\noexpand#2{\the\toks@}%
+ \begingroup\def\noexpand\@currenvir{\@currenvir}}%
+ \x}%
+ \FCD@global\let#2\@empty%
\if@filesw%
\openin\@inputcheck#1 %
\ifeof\@inputcheck%
@@ -46,11 +52,11 @@
{Overwriting file `\@currdir#1'}%
\fi%
\closein\@inputcheck%
- \chardef\reserved@c15 %
- \ch@ck7\reserved@c\write%
- \immediate\openout\reserved@c#1\relax%
+ \chardef\FCD@reserved@c15 %
+ \ch@ck7\FCD@reserved@c\write%
+ \immediate\openout\FCD@reserved@c#1\relax%
\if@tempswa%
- \immediate\write\reserved@c{%
+ \immediate\write\FCD@reserved@c{%
\@percentchar\@percentchar\space%
\expandafter\@gobble\string\LaTeX2e file `#1'^^J%
\@percentchar\@percentchar\space generated by the %
@@ -73,26 +79,32 @@
\ifnum\count@<\@cclvi%
\repeat%
\let^^L\relax%
- \edef\E{\@backslashchar end\string{\@currenvir\string}}%
- \edef\reserved@b{\def\noexpand\reserved@b####1\E####2\E####3\relax}%
- \reserved@b{%
+ \edef\FCD@E{\@backslashchar end\string{\@currenvir\string}}%
+ \edef\FCD@reserved@b{\def\noexpand\FCD@reserved@b####1\FCD@E####2\FCD@E####3\relax}%
+ \FCD@reserved@b{%
\ifx\relax##3\relax%
- \if@filesw\immediate\write\reserved@c{##1}\fi%
+ \if@filesw%
+ \let^^L\FCDformfeedtofile%
+ \let^^I\FCDtabtofile%
+ \immediate\write\FCD@reserved@c{##1}%
+ \fi%
\toks@\expandafter{#2}%
- {\def^^L{\noexpand^^M\noexpand^^M}\lowercase{\let^^I~}%
- \xdef#2{\the\toks@##1\noexpand^^M}}%
+ \let^^L\FCDformfeedtomacro%
+ \let^^I\FCDtabtomacro%
+ \FCD@global\edef#2{\the\toks@##1\noexpand^^M}%
\else%
\edef^^M{\noexpand\end{\@currenvir}}%
\ifx\relax##1\relax%
\else%
- \if@filesw%
- \@latex@warning{Writing text `##1' before %
- \string\end{\@currenvir}\MessageBreak as last line of #1}%
- \immediate\write\reserved@c{##1}%
- \fi%
+ \if@filesw%
+ \let^^L\FCDformfeedtofile%
+ \let^^I\FCDtabtofile%
+ \immediate\write\FCD@reserved@c{##1}%
+ \fi%
\toks@\expandafter{#2}%
- {\def^^L{\noexpand^^M\noexpand^^M}\lowercase{\let^^I~}%
- \xdef#2{\the\toks@##1\noexpand^^M}}%
+ \let^^L\FCDformfeedtomacro%
+ \let^^I\FCDtabtomacro%
+ \FCD@global\edef#2{\the\toks@##1\noexpand\empty\noexpand^^M}%
\fi%
\ifx\relax##2\relax%
\else%
@@ -102,52 +114,81 @@
\fi%
^^M}%
\catcode`\^^L\active%
- \let\L\@undefined%
- \def^^L{\expandafter\ifx\csname L\endcsname\relax\fi^^J^^J}%
\catcode`\^^I\active%
- \let\I\@undefined%
- \def^^I{\expandafter\ifx\csname I\endcsname\relax\fi\space}%
\catcode`\^^M\active%
- \edef^^M##1^^M{\noexpand\reserved@b##1\E\E\relax}%
+ \edef^^M##1^^M{\noexpand\FCD@reserved@b##1\FCD@E\FCD@E\relax}%
\catcode32\active\lccode`~32 \lowercase{\def~{\noexpand~}}%
}%
-\endgroup
-\long\def\filecontentsdef@aux#1\filecontentsdef@aux{\@firstofone}%
-\def\filecontentsdef@get#1#2%
+\gdef\FCDformfeedtofile{^^J^^J}%
+\gdef\FCDformfeedtomacro{\noexpand^^M\noexpand^^M}%
+\gdef\FCDtabtofile{ }%
+\catcode32\active\gdef\FCDtabtomacro{\noexpand }%
+\endgroup%
+\long\def\FCD@get@aux#1\FCD@get@aux#2{#2}%
+\def\FCD@get#1#2%
{%
- \def\@tempa{#1}\def\@tempb{{#2}}%
- \expandafter\filecontentsdef@aux\@gobbletwo#2\filecontentsdef@aux
+ \def\FCD@tempa{#1}\def\FCD@tempb{{#2}}%
+ \expandafter\FCD@get@aux\@gobbletwo#2\FCD@get@aux
\@thirdofthree
- \filecontentsdef@aux
+ \FCD@get@aux
{\ifcat\relax\noexpand#2\expandafter\@gobble\else\expandafter\@firstofone\fi}%
- {\edef\@tempb{{\expandafter\noexpand\csname#2\endcsname}}}%
- \expandafter\@tempa\@tempb
+ {\edef\FCD@tempb{{\expandafter\noexpand\csname#2\endcsname}}}%
+ \expandafter\FCD@tempa\FCD@tempb
}%
\begingroup
\catcode`\*=11
-\gdef\filecontentsdef #1{\@tempswatrue\filecontentsdef@get{\filec@ntentsdef{#1}}}%
-\gdef\filecontentsdef*#1{\@tempswafalse\filecontentsdef@get{\filec@ntentsdef{#1}}}%
-\global\let\endfilecontentsdef \endfilecontents
-\global\let\endfilecontentsdef*\endfilecontents
-\gdef\filecontentsdefmacro{\@fileswfalse\filecontentsdef@get{\filec@ntentsdef{}}}%
-\global\let\endfilecontentsdefmacro\relax
-\gdef\filecontentshere #1{\@tempswatrue\filec@ntentsdef{#1}\filecontentsheremacro}%
-\gdef\filecontentshere*#1{\@tempswafalse\filec@ntentsdef{#1}\filecontentsheremacro}%
-\gdef\endfilecontentshere{\endfilecontentsdef\aftergroup\filecontents@here}%
+\gdef\filecontentsdef #1{\let\FCD@global\@empty
+ \@tempswatrue\FCD@get{\FCD@main{#1}}}%
+\gdef\filecontentsdef*#1{\let\FCD@global\@empty
+ \@tempswafalse\FCD@get{\FCD@main{#1}}}%
+\global\let\filecontentsdefstarred\filecontentsdef*
+\gdef\filecontentsgdef #1{\@tempswatrue\FCD@get{\FCD@main{#1}}}%
+\gdef\filecontentsgdef*#1{\@tempswafalse\FCD@get{\FCD@main{#1}}}%
+\global\let\filecontentsgdefstarred\filecontentsgdef*
+\gdef\endfilecontentsdef{\immediate\closeout\FCD@reserved@c\FCD@defmacro}%
+\global\let\endfilecontentsdef*\endfilecontentsdef
+\global\let\endfilecontentsdefstarred\endfilecontentsdef
+\gdef\endfilecontentsgdef{\immediate\closeout\FCD@reserved@c}%
+\global\let\endfilecontentsgdef*\endfilecontentsgdef
+\global\let\endfilecontentsgdefstarred\endfilecontentsgdef
+\gdef\filecontentsdefmacro{\let\FCD@global\@empty
+ \@fileswfalse\FCD@get{\FCD@main{}}}%
+\gdef\endfilecontentsdefmacro{\FCD@defmacro}%
+\gdef\filecontentsgdefmacro{\@fileswfalse\FCD@get{\FCD@main{}}}%
+\global\let\endfilecontentsgdefmacro\relax
+\gdef\filecontentshere #1{\let\FCD@global\@empty
+ \@tempswatrue\FCD@main{#1}\filecontentsheremacro}%
+\gdef\filecontentshere*#1{\let\FCD@global\@empty
+ \@tempswafalse\FCD@main{#1}\filecontentsheremacro}%
+\global\let\filecontentsherestarred\filecontentshere*
+\gdef\endfilecontentshere{\endfilecontentsdef\aftergroup\FCD@here}%
\global\let\endfilecontentshere*\endfilecontentshere
-\gdef\filecontentsprint{\filecontentsdef@get\filecontents@print}%
+\global\let\endfilecontentsherestarred\endfilecontentshere
+\gdef\filecontentsprint{\FCD@get\FCD@print}%
\catcode`\^^M\active%
-\gdef\filecontents@print #1{\let\filecontents@print@EOL^^M\let^^M\relax%
- \begingroup\toks@\expandafter{#1}\edef\x{\endgroup%
- \noexpand\begin{verbatim}^^M%
- \the\toks@\@backslashchar end\string{verbatim\string}}\x^^M%
- \filecontents@print@resetEOL}%
-\gdef\filecontents@print@resetEOL{\let^^M\filecontents@print@EOL}%
+\gdef\FCD@print #1{\let\FCD@print@EOL^^M\let^^M\relax%
+ \begingroup\toks@\expandafter{#1}%
+ \edef\x{\endgroup%
+ \noexpand\begin{\FCDprintenvname}\FCDprintenvoptions^^M%
+ \the\toks@\@backslashchar end\string{\FCDprintenvname\string}}%
+ \x^^M%
+ \FCD@print@resetEOL}%
+\gdef\FCD@print@resetEOL{\let^^M\FCD@print@EOL}%
+\gdef\filecontentsprintviascan{\FCD@get\FCD@printviascan}%
+\gdef\FCD@printviascan#1{%
+ \toks@\expandafter{#1}%
+ \edef\FCD@envwithcontents{%
+ \noexpand\begin{\FCDprintenvname}\FCDprintenvoptions\noexpand^^M%
+ \the\toks@\@backslashchar end{\FCDprintenvname}\noexpand^^M}%
+ \FCD@exec\FCD@envwithcontents}%
\endgroup
-\def\filecontents@here{\filecontents@print\filecontentsheremacro}%
-\def\filecontentsexec{\filecontentsdef@get\filecontents@exec}%
-\def\filecontents@exec #1{\newlinechar13
- \scantokens\expandafter{#1}\newlinechar10\relax}%
+\def\FCDprintenvname{verbatim}%
+\let\FCDprintenvoptions\@empty
+\def\FCD@here{\FCD@print\filecontentsheremacro}%
+\def\filecontentsexec{\FCD@get\FCD@exec}%
+\def\FCD@exec #1{\edef\FCD@newlinechar{\the\newlinechar}%
+ \newlinechar13
+ \scantokens\expandafter{#1}\newlinechar\FCD@newlinechar\relax}%
\endinput
%%
%% End of file `filecontentsdef.sty'.