diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/oberdiek/protecteddef.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/oberdiek/protecteddef.sty | 267 |
1 files changed, 267 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/oberdiek/protecteddef.sty b/Master/texmf-dist/tex/generic/oberdiek/protecteddef.sty new file mode 100644 index 00000000000..45359d0754e --- /dev/null +++ b/Master/texmf-dist/tex/generic/oberdiek/protecteddef.sty @@ -0,0 +1,267 @@ +%% +%% This is file `protecteddef.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% protecteddef.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2011 by +%% Heiko Oberdiek <heiko.oberdiek at googlemail.com> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. This version of this license is in +%% http://www.latex-project.org/lppl/lppl-1-3c.txt +%% and 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. +%% +%% The Base Interpreter refers to any `TeX-Format', +%% because some files are installed in TDS:tex/generic//. +%% +%% This work consists of the main source file protecteddef.dtx +%% and the derived files +%% protecteddef.sty, protecteddef.pdf, protecteddef.ins, protecteddef.drv, +%% protecteddef-test1.tex, protecteddef-test2.tex. +%% +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode35=6 % # + \catcode39=12 % ' + \catcode44=12 % , + \catcode45=12 % - + \catcode46=12 % . + \catcode58=12 % : + \catcode64=11 % @ + \catcode123=1 % { + \catcode125=2 % } + \expandafter\let\expandafter\x\csname ver@protecteddef.sty\endcsname + \ifx\x\relax % plain-TeX, first loading + \else + \def\empty{}% + \ifx\x\empty % LaTeX, first loading, + % variable is initialized, but \ProvidesPackage not yet seen + \else + \expandafter\ifx\csname PackageInfo\endcsname\relax + \def\x#1#2{% + \immediate\write-1{Package #1 Info: #2.}% + }% + \else + \def\x#1#2{\PackageInfo{#1}{#2, stopped}}% + \fi + \x{protecteddef}{The package is already loaded}% + \aftergroup\endinput + \fi + \fi +\endgroup% +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode35=6 % # + \catcode39=12 % ' + \catcode40=12 % ( + \catcode41=12 % ) + \catcode44=12 % , + \catcode45=12 % - + \catcode46=12 % . + \catcode47=12 % / + \catcode58=12 % : + \catcode64=11 % @ + \catcode91=12 % [ + \catcode93=12 % ] + \catcode123=1 % { + \catcode125=2 % } + \expandafter\ifx\csname ProvidesPackage\endcsname\relax + \def\x#1#2#3[#4]{\endgroup + \immediate\write-1{Package: #3 #4}% + \xdef#1{#4}% + }% + \else + \def\x#1#2[#3]{\endgroup + #2[{#3}]% + \ifx#1\@undefined + \xdef#1{#3}% + \fi + \ifx#1\relax + \xdef#1{#3}% + \fi + }% + \fi +\expandafter\x\csname ver@protecteddef.sty\endcsname +\ProvidesPackage{protecteddef}% + [2011/01/31 v1.0 Definition of protected macros (HO)]% +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode123=1 % { + \catcode125=2 % } + \catcode64=11 % @ + \def\x{\endgroup + \expandafter\edef\csname ProDef@AtEnd\endcsname{% + \endlinechar=\the\endlinechar\relax + \catcode13=\the\catcode13\relax + \catcode32=\the\catcode32\relax + \catcode35=\the\catcode35\relax + \catcode61=\the\catcode61\relax + \catcode64=\the\catcode64\relax + \catcode123=\the\catcode123\relax + \catcode125=\the\catcode125\relax + }% + }% +\x\catcode61\catcode48\catcode32=10\relax% +\catcode13=5 % ^^M +\endlinechar=13 % +\catcode35=6 % # +\catcode64=11 % @ +\catcode123=1 % { +\catcode125=2 % } +\def\TMP@EnsureCode#1#2{% + \edef\ProDef@AtEnd{% + \ProDef@AtEnd + \catcode#1=\the\catcode#1\relax + }% + \catcode#1=#2\relax +} +\TMP@EnsureCode{38}{4}% & +\TMP@EnsureCode{40}{12}% ( +\TMP@EnsureCode{41}{12}% ) +\TMP@EnsureCode{42}{12}% * +\TMP@EnsureCode{45}{12}% - +\TMP@EnsureCode{46}{12}% . +\TMP@EnsureCode{47}{12}% / +\TMP@EnsureCode{91}{12}% [ +\TMP@EnsureCode{93}{12}% ] +\TMP@EnsureCode{96}{12}% ` +\edef\ProDef@AtEnd{\ProDef@AtEnd\noexpand\endinput} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname RequirePackage\endcsname\relax + \def\TMP@RequirePackage#1[#2]{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname ver@#1.sty\endcsname\relax + \input #1.sty\relax + \fi + }% +\else + \let\TMP@RequirePackage\RequirePackage +\fi +\TMP@RequirePackage{ltxcmds}[2010/12/12]% +\TMP@RequirePackage{infwarerr}[2010/04/08]% +\def\ProDef@temp#1{% + \expandafter\def\csname ProDef@param[#1]\endcsname % hash-ok +} +\expandafter\def\csname ProDef@param\endcsname{} +\ProDef@temp0{} +\ProDef@temp1{##1} +\ProDef@temp2{##1##2} +\ProDef@temp3{##1##2##3} +\ProDef@temp4{##1##2##3##4} +\ProDef@temp5{##1##2##3##4##5} +\ProDef@temp6{##1##2##3##4##5##6} +\ProDef@temp7{##1##2##3##4##5##7} +\ProDef@temp8{##1##2##3##4##5##7##8} +\ProDef@temp9{##1##2##3##4##5##7##8##9} +\ltx@IfUndefined{@ifdefinable}{% + \long\def\ProDef@IfDefinable#1{% + \begingroup + \escapechar=-1 % + \ltx@ifundefined{\string#1}{% + \endgroup + \ltx@firstofone + }{% + \expandafter\endgroup + \expandafter + \edef\expandafter\ProDef@temp\expandafter{\string#1 }% + \@PackageError{protecteddef}{% + Command \ltx@backslashchar\ProDef@temp already defined% + }\@ehc + \ltx@gobbletwo + }% + }% +}{% + \long\def\ProDef@IfDefinable#1{% + \let\ProDef@next\ltx@gobbletwo + \@ifdefinable{#1}{% + \let\ProDef@next\ltx@firstofone + }% + \ProDef@next + }% +} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname protected\endcsname\relax + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname DeclareRobustCommand\endcsname\relax + \catcode`\&=14 % comment + \else + \newcommand*{\ProtectedDef}{% + \ltx@ifnextchar*{% + \ProDef@ProtectedDef + }{% + \ProDef@ProtectedDef{}% + }% + }% + \long\def\ProDef@ProtectedDef#1#2#3#{% + \ProDef@IfDefinable{#2}{% + \ltx@IfUndefined{ProDef@param#3}{% + \DeclareRobustCommand*{#2}{}% + \begingroup + \escapechar=-1 % + \def\ProDef@temp{#1}% + \edef\x{\endgroup + \ifx\ProDef@temp\ltx@empty + \noexpand\long + \fi + \noexpand\def + \expandafter\noexpand\csname\string#2 \endcsname + }% + \x#3% + }{% + \DeclareRobustCommand#1{#2}#3% + }% + }% + }% + \expandafter\expandafter\expandafter\ProDef@AtEnd + \fi +\else + \catcode`\&=9 % ignore +\fi% +\ProDef@IfDefinable\ProtectedDef{% +& \protected + \def\ProtectedDef% +}{% + \ltx@ifnextchar*{% + \let\ProDef@long\ltx@empty + \expandafter\ProDef@ProtectedDef\ltx@gobble + }{% + \let\ProDef@long\long + \ProDef@ProtectedDef + }% +} +\long\def\ProDef@ProtectedDef#1#2#{% + \ProDef@IfDefinable{#1}{% + \ltx@IfUndefined{ProDef@param#2}{% +& \protected + \ProDef@long + \def#1#2% + }{% +& \protected + \ProDef@long + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter#1% + \csname ProDef@param#2\endcsname + }% + }% +} +\ProDef@AtEnd% +\endinput +%% +%% End of file `protecteddef.sty'. |