diff options
author | Karl Berry <karl@freefriends.org> | 2011-03-25 22:32:09 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-03-25 22:32:09 +0000 |
commit | 3e0da7063ec8c3bfc7455bfe9935bda3d82e9dc5 (patch) | |
tree | 5cd6b56bafe2f5d5920fd004bcf34a733343a9f6 /Master/texmf-dist/tex/generic | |
parent | cfed44562985f2f168a5b2f6df46bcaec533d7e9 (diff) |
filemod (25mar11)
git-svn-id: svn://tug.org/texlive/trunk@21831 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic')
-rw-r--r-- | Master/texmf-dist/tex/generic/filemod/filemod-expmin.tex | 91 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/filemod/filemod.tex | 386 |
2 files changed, 477 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..5affd950122 --- /dev/null +++ b/Master/texmf-dist/tex/generic/filemod/filemod-expmin.tex @@ -0,0 +1,91 @@ +%% Copyright (C) 2011 by Martin Scharrer <martin@scharrer-online.de> +%% --------------------------------------------------------------------------- +%% 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 filebase filemod.sty. +\expandafter\edef\csname filemod@cat\endcsname{\noexpand\catcode`\noexpand\@=\the\catcode`\@\relax} +\catcode`\@=11 +\ifx\filemod@directtrue\@undefined +\csname newif\expandafter\endcsname\csname iffilemod@direct\endcsname +\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 +\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..26eb5679a1e --- /dev/null +++ b/Master/texmf-dist/tex/generic/filemod/filemod.tex @@ -0,0 +1,386 @@ +%% Copyright (C) 2011 by Martin Scharrer <martin@scharrer-online.de> +%% --------------------------------------------------------------------------- +%% 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 filebase filemod.sty. +\expandafter\edef\csname filemod@cat\endcsname{\noexpand\catcode`\noexpand\@=\the\catcode`\@\relax} +\catcode`\@=11 +\ifx\filemod@directtrue\@undefined +\csname newif\expandafter\endcsname\csname iffilemod@direct\endcsname +\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 +\fi +\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}% +} +\input filemod-expmin +\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 +\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'. |