\NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{currfile}[% 2011/09/18 v0.5 ydoc package to describe macros, environments, options etc.] \RequirePackage{kvoptions} \SetupKeyvalOptions{family=currfile,prefix=currfile@} \@ifpackageloaded{fink}{% \DeclareStringOption[\fnk@mainext]{mainext}% \DeclareStringOption[\fnk@maindir]{maindir}% \DeclareBoolOption[true]{fink}% \PackageWarning{currfile}{Deprecated package 'fink' detected. % The 'fink' option will default to 'true'.^^J% If set to 'false' no 'fink' macros will be changed but they will stop working correctly!}% }{% \DeclareStringOption[tex]{mainext}% \DeclareStringOption[\@currdir]{maindir}% \DeclareBoolOption[false]{fink}% }% \DeclareVoidOption{force}{\PassOptionsToPackage{force}{filehook}} \RequirePackage{filehook}[2011/01/09] \ProcessKeyvalOptions*\relax \begingroup \xdef\currfile@mainext{\currfile@mainext}% \xdef\currfile@maindir{\currfile@maindir}% \def\@tempa{./}% \ifx\@tempa\currfile@maindir \global\let\currfile@maindir\empty \fi \endgroup \filehook@prefixwarg\filehook@every@atbegin{% \currfile@push \currfile@set{#1}% } \filehook@appendwarg\filehook@every@atend{% \currfile@pop } \def\currfile@set#1{% \begingroup \edef\@filef@und{#1}% \ifx\input@path\@undefined\else \currfile@checkpath \fi \@onelevel@sanitize\@filef@und \let\filename@simple\currfile@parseext \let\filename@base\@gobble \expandafter\filename@parse\expandafter{\@filef@und}% \global\let\currfiledir\filename@area \global\let\currfilebase\filename@base \global\let\currfileext\filename@ext \xdef\currfilename{\currfilebase\ifx\currfileext\@empty\else.\currfileext\fi}% \xdef\currfilepath{\currfiledir\currfilename}% \endgroup } \def\currfile@checkpath{% \openin\@inputcheck\@filef@und\relax \ifeof\@inputcheck \expandafter\@tfor \expandafter\@tempb \expandafter:\expandafter=\input@path\do{% \openin\@inputcheck\@tempb\@filef@und\relax \ifeof\@inputcheck\else \edef\@filef@und{\@tempb\@filef@und}% \@break@tfor \fi }% \fi \closein\@inputcheck } \begingroup \@makeother{.} \gdef\currfile@parseext#1.#2\\{% \ifx\\#2\\% \ifx\filename@base\@gobble \def\filename@base{#1}% \let\filename@ext\currfile@defaultext% \else \def\filename@ext{#1}% \fi \else \edef\filename@base{\filename@base.#1}% \def\@tempa{\currfile@parseext#2\\}% \expandafter\@tempa \fi } \endgroup \def\currfile@defaultext{tex} \@onelevel@sanitize\currfile@defaultext \def\currfile@push{% \xdef\currfile@stack{% {\currfiledir}% {\currfilebase}% {\currfileext}% \currfile@stack }% } \def\currfile@pop{% \ifx\currfile@stack\empty \PackageWarning{currfile}{File stack underflow!}% \global\let\currfile@stack\currfile@stackinit \fi \expandafter\currfile@pop@\currfile@stack\relax \relax\relax\relax } \def\currfile@pop@#1#2#3#4\relax{% \gdef\currfiledir{#1}% \gdef\currfilebase{#2}% \gdef\currfileext{#3}% \xdef\currfilename{\currfilebase\ifx\currfileext\empty\else.\currfileext\fi}% \xdef\currfilepath{\currfiledir\currfilename}% \gdef\currfile@stack{#4}% } \def\currfile@stack{} \currfile@set{\currfile@maindir\jobname.\currfile@mainext} \currfile@push \let\currfile@stackinit\currfile@stack \newcommand*\ifcurrfilename{\begingroup\currfile@if\currfilename} \newcommand*\ifcurrfilebase{\begingroup\currfile@if\currfilebase} \newcommand*\ifcurrfileext{\begingroup\currfile@if\currfileext} \newcommand*\ifcurrfiledir{\begingroup\currfile@if\currfiledir} \newcommand*\ifcurrfilepath{\begingroup\currfile@if\currfilepath} \newcommand*\ifcurrfile[1]{% \begingroup \edef\@tempb{#1}% \@onelevel@sanitize\@tempb \currfile@if\@tempb } \def\currfile@if#1#2{% \edef\@tempa{#2}% \@onelevel@sanitize\@tempa \ifx\@tempa#1% \endgroup \expandafter\@firstoftwo \else \endgroup \expandafter\@secondoftwo \fi } \ifcurrfile@fink \def\finkfile{\currfilename}% \def\finkdir{\currfiledir}% \def\finkpath{\currfilepath}% \def\finkbase{\currfilebase}% \def\finkext{\currfileext}% \@ifpackageloaded{fink}{% \def\fink@restore#1{}% }{% \@namedef{ver@fink.sty}{2011/01/09}% \expandafter\edef\csname opt@fink.sty\endcsname{% maindir=\currfile@maindir,mainext=\currfile@mainext }% }% \else \@ifpackageloaded{fink}{}{% \AtBeginOfPackageFile{fink}{% \PackageError{currfile}{The 'fink' package is now deprecated. % Load 'currfile' with the 'fink' option or see the upgrade guide in the manual}{}% }% }% \fi \endinput %% %% End of file `currfile.sty'.