From fa7eed4bf8f7627ecfe89595c8b3a073188da90b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 6 Dec 2019 23:16:27 +0000 Subject: rerunfilecheck split from oberdiek (7dec19) git-svn-id: svn://tug.org/texlive/trunk@53045 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/rerunfilecheck/rerunfilecheck.sty | 359 +++++++++++++++++++++ 1 file changed, 359 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty (limited to 'Master/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty') diff --git a/Master/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty b/Master/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty new file mode 100644 index 00000000000..c2e16b2cc2e --- /dev/null +++ b/Master/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty @@ -0,0 +1,359 @@ +%% +%% This is file `rerunfilecheck.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rerunfilecheck.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Project: rerunfilecheck +%% Version: 2019/12/05 v1.9 +%% +%% Copyright (C) +%% 2009-2011 Heiko Oberdiek +%% 2016-2019 Oberdiek Package Support Group +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. This version of this license is in +%% https://www.latex-project.org/lppl/lppl-1-3c.txt +%% and the latest version of this license is in +%% https://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 Maintainers of this work are +%% Heiko Oberdiek and the Oberdiek Package Support Group +%% https://github.com/ho-tex/rerunfilecheck/issues +%% +%% +%% This work consists of the main source file rerunfilecheck.dtx +%% and the derived files +%% rerunfilecheck.sty, rerunfilecheck.pdf, rerunfilecheck.ins, +%% rerunfilecheck.drv, rerunfilecheck-example.cfg, +%% rerunfilecheck-test1.tex. +%% +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode123=1 % { + \catcode125=2 % } + \catcode64=11 % @ + \def\x{\endgroup + \expandafter\edef\csname ReFiCh@AtEnd\endcsname{% + \endlinechar=\the\endlinechar\relax + \catcode13=\the\catcode13\relax + \catcode32=\the\catcode32\relax + \catcode35=\the\catcode35\relax + \catcode61=\the\catcode61\relax + \catcode64=\the\catcode64\relax + \catcode123=\the\catcode123\relax + \catcode125=\the\catcode125\relax + }% + }% +\x\catcode61\catcode48\catcode32=10\relax% +\catcode13=5 % ^^M +\endlinechar=13 % +\catcode35=6 % # +\catcode64=11 % @ +\catcode123=1 % { +\catcode125=2 % } +\def\TMP@EnsureCode#1#2{% + \edef\ReFiCh@AtEnd{% + \ReFiCh@AtEnd + \catcode#1=\the\catcode#1\relax + }% + \catcode#1=#2\relax +} +\TMP@EnsureCode{39}{12}% ' +\TMP@EnsureCode{40}{12}% ( +\TMP@EnsureCode{41}{12}% ) +\TMP@EnsureCode{42}{12}% * +\TMP@EnsureCode{44}{12}% , +\TMP@EnsureCode{46}{12}% . +\TMP@EnsureCode{47}{12}% / +\TMP@EnsureCode{58}{12}% : +\TMP@EnsureCode{59}{12}% ; +\TMP@EnsureCode{60}{12}% < +\TMP@EnsureCode{62}{12}% > +\TMP@EnsureCode{91}{12}% [ +\TMP@EnsureCode{93}{12}% ] +\TMP@EnsureCode{96}{12}% ` +\edef\ReFiCh@AtEnd{\ReFiCh@AtEnd\noexpand\endinput} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{rerunfilecheck}% + [2019/12/05 v1.9 Rerun checks for auxiliary files (HO)] +\RequirePackage{kvoptions}[2010/02/22] +\SetupKeyvalOptions{% + family=rerunfilecheck,% + prefix=ReFiCh@% +} +\newcommand*{\RerunFileCheckSetup}{% + \setkeys{rerunfilecheck}% +} +\DeclareBoolOption{mainaux} +\DeclareBoolOption{partaux} +\DeclareBoolOption{starttoc} +\DeclareBoolOption{index} +\DeclareBoolOption{glossary} +\define@key{rerunfilecheck}{aux}[true]{% + \RerunFileCheckSetup{% + mainaux={#1},% + partaux={#1},% + starttoc={#1},% + index={#1},% + glossary={#1}% + }% +} +\InputIfFileExists{rerunfilecheck.cfg}{}{} +\ProcessLocalKeyvalOptions* +\def\ReFiCh@DisableOption{% + \DisableKeyvalOption[% + action=warning,% + package=rerunfilecheck% + ]{rerunfilecheck}% +} +\RequirePackage{infwarerr}[2007/09/09] +\RequirePackage{pdftexcmds}[2009/04/10] +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdf@filemdfivesum\endcsname\relax + \@PackageInfoNoLine{rerunfilecheck}{% + Feature \string\pdfmdfivesum\space is not available\MessageBreak + (e.g. pdfTeX or LuaTeX with package `pdftexcmds').\MessageBreak + Therefore file contents cannot be checked efficiently\MessageBreak + and the loading of the package is aborted% + }% + \newcommand*{\RerunFileCheck}[3]{}% + \renewcommand*{\RerunFileCheckSetup}[1]{}% + \expandafter\ReFiCh@AtEnd +\fi% +\ifReFiCh@partaux + \let\ReFiCh@org@include\@include + \def\@include#1 {% + \if@filesw + \RerunFileCheck{#1.aux}{}{}% + \fi + \ReFiCh@org@include{#1} % + }% +\fi +\ifReFiCh@mainaux + \AtBeginDocument{% + \ReFiCh@mainauxfalse + }% + \ifReFiCh@mainaux + \AtEndOfPackage{% + \RerunFileCheck{\jobname.aux}{}{}% + }% + \else + \if@filesw + \@PackageWarningNoLine{rerunfilecheck}{% + Main aux file check is disabled,\MessageBreak + because the file is already opened.\MessageBreak + Load the package before \string\begin{document}% + }% + \fi + \fi +\fi +\ifReFiCh@starttoc + \let\ReFiCh@org@starttoc\@starttoc + \def\@starttoc#1{% + \if@filesw + \RerunFileCheck{\jobname.#1}{% + \@ifundefined{tf@#1}{% + }{% + \immediate\closeout\csname tf@#1\endcsname + }% + }{}% + \fi + \ReFiCh@org@starttoc{#1}% + }% +\fi +\ifReFiCh@index + \ifx\makeindex\@empty + \@PackageWarningNoLine{rerunfilecheck}{% + Option `index' ignored,\MessageBreak + because \string\makeindex\space has already been called% + }% + \else + \def\ReFiCh@temp{% + \newwrite\@indexfile + \immediate\openout\@indexfile=\jobname.idx % + \def\index{% + \@bsphack + \begingroup + \@sanitize + \@wrindex + }% + \typeout{Writing index file \jobname.idx}% + \let\makeindex\@empty + }% + \ifx\ReFiCh@temp\makeindex + \def\makeindex{% + \newwrite\@indexfile + \RerunFileCheck{\jobname.idx}{% + \immediate\closeout\@indexfile + }{% + Rerun LaTeX/makeindex to get index right% + }% + \immediate\openout\@indexfile=\jobname.idx % + \def\index{% + \@bsphack + \begingroup + \@sanitize + \@wrindex + }% + \typeout{Writing index file \jobname.idx}% + \let\makeindex\@empty + }% + \else + \@PackageInfoNoLine{rerunfilecheck}{% + Option `index': unsupported version of \string\makeindex + }% + \fi + \fi +\fi +\ifReFiCh@glossary + \ifx\makeglossary\@empty + \@PackageWarningNoLine{rerunfilecheck}{% + Option `glossary' ignored,\MessageBreak + because \string\makeglossary\space has already been called% + }% + \else + \def\ReFiCh@temp{% + \newwrite\@glossaryfile + \immediate\openout\@glossaryfile=\jobname.glo % + \def\glossary{% + \@bsphack + \begingroup + \@sanitize + \@wrglossary + }% + \typeout{Writing glossary file \jobname.glo }% + \let\makeglossary\@empty + }% + \ifx\ReFiCh@temp\makeglossary + \def\ReFiCh@temp{% + \newwrite\@glossaryfile + \RerunFileCheck{\jobname.glo}{% + \immediate\closeout\@glossaryfile + }{% + Rerun LaTeX/makeindex to get glossary right% + }% + \immediate\openout\@glossaryfile=\jobname.glo % + \def\glossary{% + \@bsphack + \begingroup + \@sanitize + \@wrglossary + }% + \typeout{Writing glossary file \jobname.glo}% + \let\makeglossary\@empty + }% + \else + \@PackageInfoNoLine{rerunfilecheck}{% + Option `glossary': unsupported version of \string\makeglossary + }% + \fi + \fi +\fi +\ReFiCh@DisableOption{mainaux} +\ReFiCh@DisableOption{partaux} +\ReFiCh@DisableOption{starttoc} +\ReFiCh@DisableOption{index} +\ReFiCh@DisableOption{glossary} +\ReFiCh@DisableOption{aux} +\RequirePackage{atveryend}[2019/12/05] +\RequirePackage{uniquecounter}[2009/12/18] +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdf@filesize\endcsname\relax + \def\ReFiCh@CheckSum{% + \pdf@filemdfivesum + }% +\else + \def\ReFiCh@CheckSum#1{% + \pdf@filemdfivesum{#1}% + \ReFiCh@Separator + \pdf@filesize{#1}% + }% +\fi +\def\ReFiCh@Separator{;} +\def\ReFiCh@NoFile{} +\UniqueCounterNew{rerunfilecheck} +\newcommand*{\RerunFileCheck}{% + \UniqueCounterCall{rerunfilecheck}\ReFiCh@RerunFileCheck +} +\def\ReFiCh@RerunFileCheck#1{% + \expandafter\ReFiCh@@RerunFileCheck\csname ReFiCh@#1\endcsname +} +\def\ReFiCh@Check#1#2#3{% + #1\edef#2{\ReFiCh@CheckSum{#3}}% + \ifx#2\ReFiCh@Separator + #1\let#2\ReFiCh@NoFile + \fi +} +\def\ReFiCh@@RerunFileCheck#1#2#3#4{% + \ReFiCh@Check\global#1{#2}% + \AtEndAfterFileList{% + \begingroup + #3% + \ReFiCh@Check{}\x{#2}% + \ifx#1\x + \@PackageInfoNoLine{rerunfilecheck}{% + File `#2' has not changed.\MessageBreak + Checksum: \x + }% + \else + \ifnum + \ReFiCh@IsAux#2\relax.aux\relax\@nil + \ifx#1\ReFiCh@NoFile 1\else 0\fi + \ifx\x\ReFiCh@AuxEmptyUnix 1% + \else + \ifx\x\ReFiCh@AuxEmptyDos 1\fi + \fi + =111 % + \@PackageInfoNoLine{rerunfilecheck}{% + File `#2' is empty .aux file.\MessageBreak + Before: #1\MessageBreak + After: \space\x + }% + \else + \@PackageWarningNoLine{rerunfilecheck}{% + File `#2' has changed.% + \ifx\\#4\\% + \space Rerun% + \else + \MessageBreak + #4% + \fi + }% + \@PackageInfoNoLine{rerunfilecheck}{% + Checksums for `#2':\MessageBreak + Before: #1\MessageBreak + After: \space\x + }% + \fi + \fi + \endgroup + }% +} +\def\ReFiCh@IsAux#1.aux\relax#2\@nil{% + \ifx\hbox#2\hbox + 0% + \else + 1% + \fi +} +\def\ReFiCh@AuxEmptyUnix{A94A2480D3289E625EEA47CD1B285758;8}% +\@onelevel@sanitize\ReFiCh@AuxEmptyUnix +\def\ReFiCh@AuxEmptyDos{A62A15ECE803E2EBE94952FCC9933BC0;9}% +\@onelevel@sanitize\ReFiCh@AuxEmptyDos +\ReFiCh@AtEnd% +%% \section{Installation} +\endinput +%% +%% End of file `rerunfilecheck.sty'. -- cgit v1.2.3