% 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