diff options
author | Karl Berry <karl@freefriends.org> | 2011-09-20 23:14:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-09-20 23:14:36 +0000 |
commit | a0f4d2b96b28987ab2ebe37d9f1ce3d4e5fc2fec (patch) | |
tree | 97c79009665e1df2742918884b046e3edf4f5937 /Master/texmf-dist/tex/generic/filemod | |
parent | e64b9b2467b5c4b68eec69f80d56b9cf9210bbe6 (diff) |
filemod (20sep11)
git-svn-id: svn://tug.org/texlive/trunk@24042 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/filemod')
-rw-r--r-- | Master/texmf-dist/tex/generic/filemod/filemod-expmin.tex | 92 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/filemod/filemod.tex | 381 |
2 files changed, 473 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/filemod/filemod-expmin.tex b/Master/texmf-dist/tex/generic/filemod/filemod-expmin.tex new file mode 100644 index 00000000000..dc43b328d63 --- /dev/null +++ b/Master/texmf-dist/tex/generic/filemod/filemod-expmin.tex @@ -0,0 +1,92 @@ +%% +%% Copyright (C) 2011 by Martin Scharrer <martin@scharrer.me> +%% ---------------------------------------------------------- +%% 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. +%% +\expandafter\edef\csname filemod@cat\endcsname{\noexpand\catcode`\noexpand\@=\the\catcode`\@\relax} +\catcode`\@=11 +\newif\iffilemod@direct +\filemod@directtrue +\ifx\pdffilemoddate\@undefined + \input pdftexcmds.sty + \filemod@directfalse + \ifx\pdf@filemoddate\@undefined + \edef\filemod@help + {The required command \string\pdffilemoddate\space is not defined. + This means that the used\space\space LaTeX compiler does not support it. + Please make sure that pdfLaTeX 1.30.0 or\space\space\space newer or LuaLaTeX is used. + XeLaTeX does not support reading file modification\space\space dates. + }% + \errhelp\expandafter{\filemod@help} + \errmessage{filemod package: Required command \string\pdffilemoddate\space is not defined!} + \fi +\fi +\begingroup +\catcode`\D=12 +\catcode`\Z=12 +\catcode`\:=12 +\iffilemod@direct +\gdef\filemodNumdate#1{% + \expandafter\filemod@Numdate\pdffilemoddate{#1}D:00000000000000Z\relax +} +\else +\gdef\filemodNumdate#1{% + \expandafter\expandafter + \expandafter\filemod@Numdate\pdf@filemoddate{#1}D:00000000000000Z\relax +} +\fi +\gdef\filemod@Numdate D:#1#2#3#4#5#6#7#8#9\relax{% + #1#2#3#4#5#6#7#8% +} +\iffilemod@direct +\gdef\filemodNumtime#1{% + \expandafter\filemod@Numtime\pdffilemoddate{#1}D:00000000000000Z\relax +} +\else +\gdef\filemodNumtime#1{% + \expandafter\expandafter + \expandafter\filemod@Numtime\pdf@filemoddate{#1}D:00000000000000Z\relax +} +\fi +\gdef\filemod@Numtime D:#1#2#3#4#5#6#7#8#9\relax{% + \filemod@@Numtime#9\relax +} +\gdef\filemod@@Numtime#1#2#3#4#5#6#7\relax{% + #1#2#3#4#5#6% +} +\endgroup +\def\filemodCmp#1#2% +{% + \ifcase0% + \ifnum\filemodNumdate{#2}>\filemodNumdate{#1} 1\else + \ifnum\filemodNumdate{#2}=\filemodNumdate{#1} % + \ifnum\filemodNumtime{#2}>\filemodNumtime{#1} 1\fi + \fi + \fi + \space + \expandafter\@firstoftwo + \or + \expandafter\@secondoftwo + \fi +} +\long\def\@firstoftwo#1#2{#1} +\long\def\@secondoftwo#1#2{#2} +\filemod@cat +\expandafter\let\csname filemod@cat\endcsname\relax +\endinput +%% +%% End of file `filemod-expmin.tex'. diff --git a/Master/texmf-dist/tex/generic/filemod/filemod.tex b/Master/texmf-dist/tex/generic/filemod/filemod.tex new file mode 100644 index 00000000000..7a463cd4103 --- /dev/null +++ b/Master/texmf-dist/tex/generic/filemod/filemod.tex @@ -0,0 +1,381 @@ +%% +%% Copyright (C) 2011 by Martin Scharrer <martin@scharrer.me> +%% ---------------------------------------------------------- +%% 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'. |