From ed48151feadfdc69a37a082480d1b756a466e54c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 13 Nov 2012 00:22:24 +0000 Subject: filedate (12nov12) git-svn-id: svn://tug.org/texlive/trunk@28242 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/filedate/Announce.txt | 9 ++ Master/texmf-dist/doc/latex/filedate/SrcFILEs.txt | 8 +- Master/texmf-dist/doc/latex/filedate/filedate.pdf | Bin 580780 -> 583065 bytes .../texmf-dist/source/latex/filedate/filedate.tex | 9 +- .../texmf-dist/source/latex/filedate/makedoc.cfg | 95 ------------------- Master/texmf-dist/tex/latex/filedate/filedate.RLS | 1 + Master/texmf-dist/tex/latex/filedate/filedate.sty | 105 ++++++++++++++------- 7 files changed, 90 insertions(+), 137 deletions(-) delete mode 100644 Master/texmf-dist/source/latex/filedate/makedoc.cfg (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/filedate/Announce.txt b/Master/texmf-dist/doc/latex/filedate/Announce.txt index 1d7c942a9d4..db0fcd272e9 100644 --- a/Master/texmf-dist/doc/latex/filedate/Announce.txt +++ b/Master/texmf-dist/doc/latex/filedate/Announce.txt @@ -32,3 +32,12 @@ THIRD UPLOAD (r0.3a) 2012-11-06: - recommendation for using the package * still contains `filedate.sty' v0.3 +FOURTH UPLOAD 2012-11-11: v0.4 has + + * \FileDateAutoChecks after which each \Provides... + checks info date against its \pdffilemoddate + * \FileDateAutoChecks* additionally checking dates + of main file (hopefully \jobname.tex) + * \NoFileDateAutoChecks restoring the original behaviour + of \Provides..., e.g., for files whose original time + stamp has not been preserved in copying/sending diff --git a/Master/texmf-dist/doc/latex/filedate/SrcFILEs.txt b/Master/texmf-dist/doc/latex/filedate/SrcFILEs.txt index 04eab1e78a6..1b644e1d997 100644 --- a/Master/texmf-dist/doc/latex/filedate/SrcFILEs.txt +++ b/Master/texmf-dist/doc/latex/filedate/SrcFILEs.txt @@ -1,13 +1,13 @@ *File List* -filedate.sty 2012/10/25 v0.3 check file dates (UL) -filedate.tex 2012/11/06 -- documenting filedate.sty +filedate.sty 2012/11/11 v0.4 check file dates (UL) +filedate.tex 2012/11/11 -- documenting filedate.sty wrong.tex 2012/10/15 -- filedate.sty demo fdatechk.tex 2012/11/06 -- `filedate' checks -filedate.RLS 2012/11/06 r0.3a `fdatechk.tex' +filedate.RLS 2012/11/11 v0.4 \[No]FileDateAutoChecks srcfiles.tex 2012/11/06 -- file infos -> SrcFILEs.txt *********** - List made at 2012/11/06, 15:21 + List made at 2012/11/11, 16:43 from script file srcfiles.tex diff --git a/Master/texmf-dist/doc/latex/filedate/filedate.pdf b/Master/texmf-dist/doc/latex/filedate/filedate.pdf index 06de7fdc3c4..989d31335c2 100644 Binary files a/Master/texmf-dist/doc/latex/filedate/filedate.pdf and b/Master/texmf-dist/doc/latex/filedate/filedate.pdf differ diff --git a/Master/texmf-dist/source/latex/filedate/filedate.tex b/Master/texmf-dist/source/latex/filedate/filedate.tex index c80305232ea..92c07a73351 100644 --- a/Master/texmf-dist/source/latex/filedate/filedate.tex +++ b/Master/texmf-dist/source/latex/filedate/filedate.tex @@ -1,4 +1,4 @@ -\ProvidesFile{filedate.tex}[2012/11/06 documenting filedate.sty] +\ProvidesFile{filedate.tex}[2012/11/11 documenting filedate.sty] %% 2012/06/24 \title{\pkgtitle{filedate.sty}{Access and Compare \LaTeX~File~% %% 2012/11/06 @@ -17,9 +17,6 @@ document versions, macro programming} \usepackage{lmodern} \sloppy -% \newcommand*{\TODO}[1][]{% -% \textcolor{blue}{TODO\ifx$#1$\else\space#1\fi}} - %% <- rm. 2012/11/06 \providecommand*{\LuaTeX}{Lua\TeX} \providecommand*{\pdfTeX}{pdf\TeX} \providecommand*{\XeLaTeX}{X\lower.5ex\hbox{E}\kern-.125em\LaTeX} @@ -41,6 +38,9 @@ may insert---, and to choose the effect of comparisons Thus updating the ``info date" (``\strong{date consistency}") of a source file may be ensured by a test during typesetting from it or by some (shell/\TeX) script. +v0.4 enables checking info dates automatically as soon as +a \LaTeX\ file is loaded while typesetting or in a +\ctanpkgref{myfilist} script. \MDaddtoabstract{Related packages:} \ctanpkgref{filemod}, \ctanpkgref{getfiledate}, \ctanpkgref{zwgetfdate}, @@ -167,3 +167,4 @@ VERSION HISTORY 2012/11/06 for r0.3a final demo with `fdatechk.tex', \AddQuotes for \qtd{\file{..., and other mod.s of doc. there; title extended +2012/11/11 for v0.4 v0.4 in abstract diff --git a/Master/texmf-dist/source/latex/filedate/makedoc.cfg b/Master/texmf-dist/source/latex/filedate/makedoc.cfg deleted file mode 100644 index ea9293175e5..00000000000 --- a/Master/texmf-dist/source/latex/filedate/makedoc.cfg +++ /dev/null @@ -1,95 +0,0 @@ -\ProvidesFile{makedoc.cfg}[2012/11/06 documentation settings] - -\author{Uwe L\"uck\thanks{\url{http://contact-ednotes.sty.de.vu}}} -% \author{Uwe L\"uck---{\tt http://contact-ednotes.sty.de.vu}} - -%% hyperref: -\RequirePackage{ifpdf} -\usepackage[% - \ifpdf -% bookmarks=false, %% 2010/12/22 -% bookmarksnumbered, - bookmarksopen, %% 2011/01/24!? - bookmarksopenlevel=2, %% 2011/01/23 -% pdfpagemode=UseNone, -% pdfstartpage=10, -% pdfstartview=FitH, - pdfstartview=0 0 100, %% 2011/08/22 - pdffitwindow=true, %% 2011/08/22 - citebordercolor={ .6 1 .6}, - filebordercolor={1 .6 1}, - linkbordercolor={1 .9 .7}, - urlbordercolor={ .7 1 1}, %% playing 2011/01/24 - \else - draft - \fi -]{hyperref} -%% metadata, |\MDkeywords|, |\MDkeywordsstring|, |\printMDkeywords| -%% 2011/08/22: -\makeatletter - \newcommand*{\MDkeywords}[1]{% - \gdef\MDkeywordsstring{#1}% - \hypersetup{pdfkeywords=\MDkeywordsstring}%% TODO!? - } - \@onlypreamble\MDkeywords - \newcommand*{\MDaddtoabstract}[1]{% %% 2012/05/10 - \par\smallskip\noindent - \strong{#1:}\quad\ignorespaces} - \newcommand*{\printMDkeywords}{% - \MDaddtoabstract{Keywords}% - \MDkeywordsstring - \global\let\MDkeywordsstring\relax - } - \newenvironment{MDabstract} - {\abstract\noindent - \hspace{1sp}%% for niceverb - \ignorespaces} - {\@ifundefined{MDkeywordsstring}% - {}% - {\printMDkeywords}% - \endabstract} -\makeatother -\hypersetup{% - pdfauthor={Uwe L\374ck}% -} -\RequirePackage{niceverb}[2011/01/24] -\RequirePackage{readprov} %% 2010/12/08 -\RequirePackage{hypertoc} %% 2011/01/23 -\RequirePackage{texlinks} %% 2011/01/24 -\RequirePackage{relsize} %% 2011/06/27 -\RequirePackage{color} %% 2011/08/06 -\RequirePackage{lmodern} %% 2012/10/29 -%% Logical markup |\strong{}|, |\file{}|, |\acro{}|, -%% |\meta{}|, |\pkg{}|, |\code{}|, |\qtdcode{}|: -\makeatletter - \def\do#1#2{\@ifdefinable#1{\let#1#2}}%% 2012/07/13 - \do\strong\textbf \do\file\texttt \do\acro\textsmaller - %% <- wrong tests before 2012/07/13 - \do\meta\textit \do \pkg\textsf \do\code\texttt - \newcommand*{\qtdcode}[1]{`\code{#1}'} %% 2012/10/24 - \ifpdf - \pdfstringdefDisableCommands{% - \let\acro\textrm - \let\file\textrm %% 2011/11/09 - \let\code\textrm %% 2011/11/20 - \let\pkg \textrm %% 2012/03/23 - } - \fi - %% TODO 2011/07/22 -> `htlogml.sty' -\makeatother -\newcommand*{\pkgtitle}[2]{% %% 2012/07/13 - \global\let\pkgtitle\relax - \pkg{\huge #1}\\---\\#2\thanks{This - document describes version - \textcolor{blue}{\UseVersionOf{\jobname.sty}} - of \textsf{\jobname.sty} as of \UseDateOf{\jobname.sty}.}} -\newcommand*{\TODO}{\textcolor{blue}{\acro{TODO}}} -\newcommand*{\MDsampleinput}[1]{% %% 2012/11/06 - \par\bigskip\hrule\verbatiminput{#1}% - \hrule\bigskip} - -\errorcontextlines=4 -\pagestyle{headings} - -\endinput - diff --git a/Master/texmf-dist/tex/latex/filedate/filedate.RLS b/Master/texmf-dist/tex/latex/filedate/filedate.RLS index 01c1eb275ea..5f48a2845f2 100644 --- a/Master/texmf-dist/tex/latex/filedate/filedate.RLS +++ b/Master/texmf-dist/tex/latex/filedate/filedate.RLS @@ -1,4 +1,5 @@ \ProvidesFile{filedate.RLS} %% RELEASE INFO\ + [{2012/11/11 v0.4 \string\[No]FileDateAutoChecks}] [2012/11/06 r0.3a `fdatechk.tex'] [2012/11/06 v0.3 \DatesDiffWarning] [2012/10/19 v0.21 bug fix, reimplementation, diff --git a/Master/texmf-dist/tex/latex/filedate/filedate.sty b/Master/texmf-dist/tex/latex/filedate/filedate.sty index 5f3e52a7716..0fd44cbc674 100644 --- a/Master/texmf-dist/tex/latex/filedate/filedate.sty +++ b/Master/texmf-dist/tex/latex/filedate/filedate.sty @@ -1,5 +1,5 @@ \NeedsTeXFormat{LaTeX2e}[1994/12/01] -\ProvidesPackage{filedate}[2012/10/25 v0.3 check file dates (UL)] +\ProvidesPackage{filedate}[2012/11/11 v0.4 check file dates (UL)] %% Copyright (C) 2012 Uwe Lueck, %% http://www.contact-ednotes.sty.de.vu @@ -16,6 +16,7 @@ %% %% http://www.contact-ednotes.sty.de.vu %% +%% \filbreak %% 2012/11/10 %% === The \ctanpkgref{readprov} Package === %% \label{sec:readprov} % \RequirePackage{readprov} @@ -28,7 +29,6 @@ %% only. %% Please care for providing it on your own if you need that. %% -%% \pagebreak %% === Accessing ``Info Date" === %% \label{sec:readinfo} %% |\theinfodateof{}| will expand to the first ``word" of the @@ -36,8 +36,8 @@ \newcommand*{\theinfodateof}[1]{% \@ifundefined{ver@#1}{unknown}{% \expandafter\expandafter\expandafter - \fd@firstword\csname ver@#1\endcsname\@gobble{} \@nil}} -\def\fd@firstword#1 #2\@nil{#1} + \FD@firstword\csname ver@#1\endcsname\@gobble{} \@nil}} +\def\FD@firstword#1 #2\@nil{#1} %% This avoids the `\relax' that `\UseDateOf' from \ctanpkgref{readprov} %% currently adds (which doesn't harm in printing but is bad for comparing). %% @@ -75,9 +75,9 @@ \string\pdffilemoddate\space unavailable.} \else \newcommand*{\thepdfmoddateof}[1]{% - \expandafter \fd@pdftexdate \pdffilemoddate{#1}\@nil} + \expandafter \FD@pdftexdate \pdffilemoddate{#1}\@nil} \expandafter \def \expandafter - \fd@pdftexdate\string D:#1#2#3#4#5#6#7#8#9\@nil{% + \FD@pdftexdate\string D:#1#2#3#4#5#6#7#8#9\@nil{% #1#2#3#4/#5#6/#7#8} %% ---cf.~Will \ctanpkgauref{robertson}{Robertson}'s suggestion dating from 2010 on %% \httpref{stackoverflow.com/questions/2118972/latex-command-for-last-modified}{% @@ -106,12 +106,12 @@ \LoadInfoDateOf{#1}% % \show\theinfodate \ReadPDFmodDateOf{#1}% - \edef\fd@therefdate{#2}% -% \show\fd@therefdate - \ifx\theinfodate\fd@therefdate - \fd@datesequal{#1}% + \edef\FD@therefdate{#2}% +% \show\FD@therefdate + \ifx\theinfodate\FD@therefdate + \FD@datesequal{#1}% \else - \fd@datesdiff{#1}% + \FD@datesdiff{#1}% \fi} %% |\ReadCheckDateOf{}{}| prepends |\ReadFileInfos{}| %% from the \ctanpkgref{readprov} package (cf. Section~\ref{sec:readprov}): @@ -119,22 +119,22 @@ \ReadFileInfos{#1}\CheckDateOf{#1}} %% TODO provide automatically. %% -%% \pagebreak +%% \filbreak %% === Reporting Styles === %% By default, there is no report about comparisons finding equality. -\let\fd@datesequal\@gobble +\let\FD@datesequal\@gobble %% % We do not want to disturb `\listfiles' with \ctanpkgref{myfilist}. %% %% <- rm. 2012/10/25 %% |\EqualityMessages| changes this to screen and log messages: -\newcommand*{\EqualityMessages}{\let\fd@datesequal\fd@equalmess} -\def\fd@equalmess#1{\message{ + #1 passed date check + }} -\def\fd@errdatesdiff#1{% +\newcommand*{\EqualityMessages}{\let\FD@datesequal\FD@equalmess} +\def\FD@equalmess#1{\message{ + #1 passed date check + }} +\def\FD@errdatesdiff#1{% \PackageError{filedate}{% - \fd@infodate{#1}\fd@refdate}{% %% \fd@refdate 2012/10/19 + \FD@infodate{#1}\FD@refdate}{% %% \fd@refdate 2012/10/19 Fix that!}} -%% |\fd@infodate{}| might be used to change the current +%% |\FD@infodate{}| might be used to change the current %% presentation of the ``info date:" -\def\fd@infodate#1{% +\def\FD@infodate#1{% #1 has \string\Provides... date \theinfodate\space} %% TODO here |\theinfodate| could be replaced by %% |\theinfodateof{#1}|, there is no essential application of @@ -142,29 +142,29 @@ %% %% After |\DatesDiffErrors|, date differences are reportet ``drastically" %% by `\PackageError': -\newcommand*{\DatesDiffErrors}{\let\fd@datesdiff\fd@errdatesdiff} +\newcommand*{\DatesDiffErrors}{\let\FD@datesdiff\FD@errdatesdiff} %% This is the default: \DatesDiffErrors %% After |\DatesDiffNotices|, date differences are reported by %% %% <- told -> reported 2012/10/19 %% `\typeout': -\newcommand*{\DatesDiffNotices}{\let\fd@datesdiff\fd@notedatesdiff} -\def\fd@notedatesdiff#1{\def\MessageBreak{^^J}% %% added 2012/10/24 - {\typeout{\fd@infodate{#1}% - \fd@refdate}}} %% added 2012/10/19 -%% v0.7 adds |\DatesDiffWarnings| to get more salient reports of +\newcommand*{\DatesDiffNotices}{\let\FD@datesdiff\FD@notedatesdiff} +\def\FD@notedatesdiff#1{\def\MessageBreak{^^J}% %% added 2012/10/24 + {\typeout{\FD@infodate{#1}% + \FD@refdate}}} %% added 2012/10/19 +%% v0.3 adds |\DatesDiffWarnings| to get more salient reports of %% date differences by `\PackageWarningNoLine': -\newcommand*{\DatesDiffWarnings}{\let\fd@datesdiff\fd@warndatesdiff} -\def\fd@warndatesdiff#1{% +\newcommand*{\DatesDiffWarnings}{\let\FD@datesdiff\FD@warndatesdiff} +\def\FD@warndatesdiff#1{% \PackageWarningNoLine{filedate}% - {\fd@infodate{#1}\fd@refdate}} + {\FD@infodate{#1}\FD@refdate}} %% After |\ModDates|, reference dates are called ``modification'' dates: -\newcommand*{\ModDates}{\let\fd@refdate\fd@moddate} -\def\fd@moddate{\MessageBreak vs. modification date \fd@therefdate} +\newcommand*{\ModDates}{\let\FD@refdate\FD@moddate} +\def\FD@moddate{\MessageBreak vs. modification date \FD@therefdate} %% After |\SomeDates|, the type of reference dates is not specified. %% This is more accurate when the info date is compared with |\rawtoday|. -\newcommand*{\SomeDates}{\let\fd@refdate\fd@somedate} -\def\fd@somedate{\MessageBreak vs. \fd@therefdate} +\newcommand*{\SomeDates}{\let\FD@refdate\FD@somedate} +\def\FD@somedate{\MessageBreak vs. \FD@therefdate} %% That's the default: \SomeDates %% @@ -212,15 +212,48 @@ %% know that the file was modified ``today".) \newcommand*{\CheckDateOfToday}[1]{% \begingroup - \def\fd@refdate{% + \def\FD@refdate{% \MessageBreak which is not today}% \CheckDateOf{#1}{\rawtoday}% \endgroup} %% +%% === Automatical Immediate Checking === +%% |\FileDateAutoChecks| modifies the \qtdcode{&\Provides...} +%% commands internally so that they check their date with +%% with the file's modification date according to +%% |\pdffilemoddate|---this choice might be queried (TODO). +%% The modification may be undone by |\NoFileDateAutoChecks| +%% so that the \qtdcode{&\Provides...} commands get their +%% original functionality (only) again. This will even work +%% with \ctanpkgref{readprov} v0.4. +%% +%% Actually, \LaTeX's internal `\@pr@videpackage' and +%% `\@profidesfile' are used as hooks. Their original meanings +%% are stored so they can be regained by \qtd{&\NoFile...}: +\let\FD@@provpkg\@pr@videpackage +\def\FD@provpkg[#1]{% + \FD@@provpkg[#1]% + \CheckDateOfPDFmod{\@currname.\@currext}} +\let\FD@@provfile\@providesfile +\def\FD@provfile#1[#2]{% + \FD@@provfile{#1}[#2]% + \CheckDateOfPDFmod{#1}} +%% |\FileDateAutoChecks*| in addition to `\FileDateAutoChecks' +%% checks the main file's info date, +%% assuming the main file is `\jobname.tex': +\newcommand*{\FileDateAutoChecks}{% + \@ifstar{\CheckDateOfPDFmod{\jobname.tex}% + \FD@autochecks}% + {\FD@autochecks}} +\newcommand*{\FD@autochecks}{% + \let\@pr@videpackage\FD@provpkg + \let\@providesfile\FD@provfile} +\newcommand*{\NoFileDateAutoChecks}{% + \let\@pr@videpackage\FD@@provpkg + \let\@providesfile\FD@@provfile} %% %% TODO single check commands for comma-separated list of files, %% (\ctanpkgref{dowith}) -%% automatic tests by `\ReadFileInfos' etc. (\ctanpkgref{fileinfo}). %% %% === Leaving the Package File === \endinput @@ -238,3 +271,7 @@ v0.3 2012/10/24 \MessageBreak fix, \DatesDiffWarnings rm. remark on \fd@datesequal, mod. text on \DatesDiffWarnings, -- -> --- before `a script might' +v0.4 2012/11/10 \fd@ -> \FD@, doc. v0.7 -> v0.3, v0.21, + \filbreak; code for \...AutoChecks + 2012/11/11 doc. another \filbreak, documenenting + \...AutoChecks, \...AutoChecks* -- cgit v1.2.3