Current File : //usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty |
%%
%% 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{<no file>}
\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'.