%% %% Copyright (C) 2011 by Martin Scharrer %% ---------------------------------------------------------- %% 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'. %% %% The Current Maintainer of this work is Martin Scharrer. %% %% This work consists of the files filemod.dtx and filemod.ins %% and the derived files filemod.sty, filemod-expmin.sty, %% filemod.tex and filemod-expmin.tex. %% \input filemod-expmin \expandafter\edef\csname filemod@cat\endcsname{\noexpand\catcode`\noexpand\@=\the\catcode`\@\relax} \catcode`\@=11 \iffilemod@direct \def\filemodparse#1#2{% \expandafter\filemod@parse\pdffilemoddate{#2}\relax{#1}% } \else \def\filemodparse#1#2{% \expandafter\expandafter \expandafter\filemod@parse\pdf@filemoddate{#2}\relax{#1}% } \fi \def\filemod@parse#1\relax#2{% \ifx\relax#1\relax \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi {\filemodnotexists{#2}}% {\filemod@parse@#1\empty{#2}\relax}% } \begingroup \catcode`\D=12 \catcode`\Z=12 \catcode`\:=12 \gdef\filemod@parse@ D:#1#2#3#4#5#6#7#8#9\relax{% \filemod@parse@@{{#1#2#3#4}{#5#6}{#7#8}}#9\relax } \gdef\filemodnotexists#1{% #1{0000}{00}{00}{00}{00}{00}{Z}% } \endgroup \def\filemod@parse@@#1#2#3#4#5#6#7#8\empty#9\relax{% #9#1{#2#3}{#4#5}{#6#7}{#8}% } \def \filemodnumdate{\filemodparse\filemod@numdate} \def\filemod@numdate#1#2#3#4#5#6#7{#1#2#3} \def \filemodnumtime{\filemodparse\filemod@numtime} \def\filemod@numtime#1#2#3#4#5#6#7{#4#5#6} \def\filemod@opt#1#2#3{% \expandafter \remove@to@nnil@exec \ifx[#3\@nnil\remove@to@nnil \expandafter#1% \else\@nnil\empty \expandafter#2% \expandafter\filemodoptdefault \fi {#3}% } \def\remove@to@nnil@exec#1\@nnil#2{% \ifx\@nnil#1\@nnil\else \expandafter#2 \fi } \def \filemodcmp{% \filemod@opt\filemod@cmp@opt\filemod@cmp } \def \filemodoptdefault{1} \def\filemod@cmp@opt#1#2]{% \filemod@cmp{#2}% } \def\filemod@cmp{\filemod@@cmp>} \def\filemod@@cmp#1#2#3#4{% \ifcase0% \ifnum\filemodnumdate{#4}#1\filemodnumdate{#3} 1\else \ifnum\filemodnumdate{#4}=\filemodnumdate{#3} % \ifnum\filemodnumtime{#4}#1\filemodnumtime{#3} 1\else \ifnum\filemodnumtime{#4}=\filemodnumtime{#3} 2\fi \fi \fi \fi \space \csname @firstoft\ifnum#2>2 hree\else wo\fi\expandafter\endcsname \or \csname @secondoft\ifnum#2>2 hree\else wo\fi\expandafter\endcsname \else \csname @% \ifcase#2% gobbletwo% \or firstoftwo% \or secondoftwo% \else thirdofthree% \fi \expandafter \endcsname \fi } \long\def\@firstofthree#1#2#3{#1} \long\def\@secondofthree#1#2#3{#2} \long\def\@thirdofthree#1#2#3{#3} \long\def\@gobble#1{} \long\def\@gobbletwo#1#2{} \def\remove@to@nnil#1\@nnil{} \def \filemodnewest{% \filemod@opt\filemod@newest@opt\filemod@newest } \def\filemod@newest@opt#1#2]{% \filemod@newest{#2}% } \def\filemod@newest#1#2#3{% \filemod@@cmp>{#1}{#2}{#3}{#2}{#3}% } \def \filemodoldest{% \filemod@opt\filemod@oldest@opt\filemod@oldest } \def\filemod@oldest@opt#1#2]{% \filemod@oldest{#2}% } \def\filemod@oldest#1#2#3{% \filemod@@cmp<{#1}{#2}{#3}{#2}{#3}% } \def\filemodNewest#1#{% \expandafter\expandafter \expandafter\@filemodNewest \csname @% \ifx\@nnil#1\@nnil first% \else second% \fi oftwo% \endcsname {[\filemodoptdefault]}% {#1}% } \def\filemodOldest#1#{% \expandafter\expandafter \expandafter\@filemodOldest \csname @% \ifx\@nnil#1\@nnil first% \else second% \fi oftwo% \endcsname {[\filemodoptdefault]}% {#1}% } \def\@filemodNewest[#1]#2{% \@@filemodNewest{#1}#2\filemod@end } \def\@filemodOldest[#1]#2{% \@@filemodOldest{#1}#2\filemod@end } \def\@@filemodNewest#1#2{% \filemod@Newest{#2}{#1}% } \def\@@filemodOldest#1#2{% \filemod@Oldest{#2}{#1}% } \def\filemod@Newest#1#2#3{% \iffilemod@end{#3}% {#1}% {% \expandafter\expandafter \expandafter\expandafter \expandafter\expandafter \expandafter\filemod@Newest \expandafter\expandafter \expandafter\expandafter \expandafter\expandafter \expandafter{% \expandafter\expandafter \expandafter\@gobble \expandafter\string\csname\filemod@@cmp>{#2}{#1}{#3}{#1}{#3}\endcsname}{#2}}% } \def\filemod@Oldest#1#2#3{% \iffilemod@end{#3}% {#1}% {% \expandafter\expandafter \expandafter\expandafter \expandafter\expandafter \expandafter\filemod@Oldest \expandafter\expandafter \expandafter\expandafter \expandafter\expandafter \expandafter{% \expandafter\expandafter \expandafter\@gobble \expandafter\string\csname\filemod@@cmp<{#2}{#1}{#3}{#1}{#3}\endcsname}{#2}}% } \def\iffilemod@end#1{% \ifx\filemod@end#1% \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi } \def\filemod@end{\@gobble{filemod@end}} \def \Filemodgetnum{\filemodparse\Filemod@getnum} \def\Filemod@getnum#1#2#3#4#5#6#7{% \def\filemoddate{#1#2#3}% \def\filemodtime{#4#5#6}% \def\filemodtz{#7}% } \def\Filemod@cmp#1#2#3{% \Filemodgetnum{#2}% \let\filemoddatea\filemoddate \let\filemodtimea\filemodtime \Filemodgetnum{#3}% \ifcase0% \ifnum\filemoddate>\filemoddatea\space1\else \ifnum\filemoddate=\filemoddatea\space \ifnum\filemodtime>\filemodtimea\space1\else \ifnum\filemodtime=\filemodtimea\space2\fi \fi \fi \fi \relax \def\filemodresultfile{#1}% \ifnum#1>2\relax \def\filemodcmpresult##1##2##3{##1}% \else \let\filemodcmpresult\@firstoftwo \fi \or \def\filemodresultfile{#2}% \ifnum#1>2\relax \def\filemodcmpresult##1##2##3{##2}% \else \let\filemodcmpresult\@secondoftwo \fi \else \ifcase#1\relax \let\filemodresultfile\empty \let\filemodcmpresult\@gobbletwo \or \def\filemodresultfile{#1}% \let\filemodcmpresult\@firstoftwo \or \def\filemodresultfile{#2}% \let\filemodcmpresult\@secondoftwo \else \let\filemodresultfile\empty \let\filemodcmpresult\@thirdofthree \fi \fi \filemod@next } \def\filemod@chkopt#1{% \def\filemod@optcmd{#1}% \futurelet\filemod@tok\filemod@@chkopt } \def\filemod@@chkopt{% \ifx[\filemod@tok \expandafter\filemod@readopt \else \expandafter\filemod@optcmd \expandafter\filemodoptdefault \fi } \def\filemod@readopt[#1]{% \filemod@optcmd{#1}% } \def\Filemodnewest{\filemod@chkopt\Filemod@newest} \def\Filemod@newest#1#2#3{\Filemod@Newest{#1}{{#2}{#3}}} \def\Filemodoldest{\filemod@chkopt\Filemod@oldest} \def\Filemod@oldest#1#2#3{\Filemod@Oldest{#1}{{#2}{#3}}} \def\FilemodNewest{\filemod@chkopt\Filemod@Newest} \def\Filemod@Newest#1#2% {% \def\filemode@tie{#1}% \def\filemod@gl{>}% \Filemod@est#2\filemod@end } \def\FilemodOldest{\filemod@chkopt\Filemod@Oldest} \def\Filemod@Oldest#1#2% {% \def\filemode@tie{#1}% \def\filemod@gl{<}% \Filemod@est#2\filemod@end } \def\Filemod@est#1{% \def\filemodresultfile{#1}% \Filemodgetnum{#1}% \let\filemodresultdate\filemoddate \let\filemodresulttime\filemodtime \Filemod@@est } \def\Filemod@@est#1{% \iffilemod@end{#1}{}{% \Filemodgetnum{#1}% \ifcase0% \ifnum\filemoddate\filemod@gl\filemodresultdate\space1\else \ifnum\filemoddate=\filemodresultdate\space \ifnum\filemodtime\filemod@gl\filemodresulttime\space1\else \ifnum\filemodtime=\filemodresulttime\space \ifnum\filemode@tie=1\else 1\fi \fi \fi \fi \fi \else \def\filemodresultfile{#1}% \let\filemodresultdate\filemoddate \let\filemodresulttime\filemodtime \fi \Filemod@@est }% } \def\filemod@gl{>} \def\Filemodtoday#1% {{% \def\thefilemod##1##2##3##4##5##6##7{\year##1 \month##2 \day##3 \today}% \filemodprint{#1}% }} \def\FilemodToday#1% {{% \def\thefilemoddate##1##2##3{\year##1 \month##2 \day##3 \today}% \filemodprint{#1}% }} \def \filemodprint{\filemodparse\thefilemod} \def \filemodprintdate{\filemodparse\the@filemoddate} \def \filemodprinttime{\filemodparse\the@filemodtime} \def\thefilemod#1#2#3#4#5#6#7% {% \thefilemoddate{#1}{#2}{#3}% \filemodsep \thefilemodtime{#4}{#5}{#6}{#7}% } \let\filemodsep\space \def\thefilemoddate#1#2#3% {#1/#2/#3} \def\thefilemodtime#1#2#3#4% {% #1:#2:#3~#4% } \def\the@filemoddate#1#2#3#4#5#6#7{% \thefilemoddate{#1}{#2}{#3}% } \def\the@filemodtime#1#2#3{% \thefilemodtime } \begingroup \catcode`\D=12 \expandafter\gdef\csname filemodZ\endcsname{Z}% \let\filemodz=Z\relax \endgroup \filemod@cat \expandafter\let\csname filemod@cat\endcsname\relax \endinput %% %% End of file `filemod.tex'.