% This macro source file is from the four volume series
% "TeX in Practice" by Stephan von Bechtolsheim, published
% 1993 by Springer-Verlag, New York.
% Copyright 1993 Stephan von Bechtolsheim.
% No warranty or liability is assumed.
% This macro may be copied freely if no fees other than
% media cost or shipping charges are charged and as long
% as this copyright and the following source code itself
% is not changed. Please see the series for further information.
%
% Version: 1.0
% Date: May 1, 1993
%
%
% This source code is documented in 30.8.7, p. III-575.
% Original source in file "pp1.TEX", starting line 2185.
\wlog{L: "part-lab.tip" ["pp1.TEX," l. 2185, p. III-575]}%
% This file DOES NOT belong to format "texip."
\catcode`\@ = 11
\newif\if@LabelNow
\def\@Label #1#2#3{% 
    \ifnum #3 = 0
        \@LabelNowtrue
    \else
        \ifvmode
            \ifinner
                \@LabelNowtrue
            \else
                \@LabelNowfalse
            \fi
        \else
            \@LabelNowtrue
        \fi
    \fi
    \bgroup
        \let\RefCounterTwo = \relax
        \xdef\@LabelTempA{%
            \write\@PartAuxStream{% 
                \string\@NewLabel{#1}{#2}{\RefCounterTwo{PageNo}}}%
        }%
    \egroup
    \if@LabelNow
        \@LabelTempA
    \else
        \bgroup
            \let\RefCounterTwo = \relax
            \xdef\EveryParC{%
                \EveryParC
                \@LabelTempA
            }%
        \egroup
    \fi
    \ignorespaces
}
\def\CheckLabels{% 
    \wlog{\string\CheckLabels: checking labels started.}%
    \global\@LabelsOktrue
    \@IgnoreAuxStuff
    \let\@NewLabel = \@NewLabelCompare
    \@ReadInAuxFiles
    \if@LabelsOk
        \wlog{** All labels are ok **}%
    \else
        \wlog{** LABELS CHANGED, reprocess document **}%
    \fi
    \wlog{\string\CheckLabels: done.}%
}
\def\@NewLabelCompare #1#2#3{% 
    \if\@LabelIsDefined{##1}% 
        \def\@CheckLabelTemp{{##2}{##3}}%
        \edef\@@CheckLabelTemp{% 
            \NameUse{\@LabelRefPrefix ##1}% 
        }% 
        \ifx\@CheckLabelTemp\@@CheckLabelTemp
            \let\@CheckLabelsNext = \relax
        \else
            \let\@CheckLabelsNext = \@StopCheckingLabels
        \fi
    \else
        \let\@CheckLabelsNext = \@StopCheckingLabels
    \fi
    \@CheckLabelsNext
}
\def\@StopCheckingLabels{% 
    \global\@LabelsOkfalse
    \let\@NewLabel = \GobbleThree
}
\catcode`\@ = 12