% \iffalse meta-comment
%
% Copyright 1994 the LaTeX3 project and the individual authors.
% All rights reserved. For further copyright information see the file
% legal.txt, and any other copyright indicated in this file.
% 
% This file is part of the LaTeX2e system.
% ----------------------------------------
% 
%  This system is distributed in the hope that it will be useful,
%  but WITHOUT ANY WARRANTY; without even the implied warranty of
%  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
% 
% 
% IMPORTANT NOTICE:
% 
% For error reports in case of UNCHANGED versions see bugs.txt.
% 
% Please do not request updates from us directly.  Distribution is
% done through Mail-Servers and TeX organizations.
% 
% You are not allowed to change this file.
% 
% You are allowed to distribute this file under the condition that
% it is distributed together with all files mentioned in manifest.txt.
% 
% If you receive only some of these files from someone, complain!
% 
% You are NOT ALLOWED to distribute this file alone.  You are NOT
% ALLOWED to take money for the distribution or use of either this
% file or a changed version, except for a nominal charge for copying
% etc.
% \fi
%
% \iffalse
%%% File: ltpar.dtx
%<*driver>
% \fi
\ProvidesFile{ltpar.dtx}
             [1994/05/16 v1.1a LaTeX Kernel (paragraphs)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltpar.dtx}
\title{\filename}
\date{\filedate}
 \author{%
  Johannes Braams\and
  David Carlisle\and
  Alan Jeffrey\and
  Leslie Lamport\and
  Frank Mittelbach\and
  Chris Rowley\and
  Rainer Sch\"opf}
\begin{document}
\maketitle
 \DocInput{\filename}
\end{document}
%</driver>
% \fi
%
% \CheckSum{18}
%
% \changes{v1.1a}{1994/05/16}{(ASAJ) Split from ltinit.dtx.}
%
% \section{Paragraphs}
%
% This section deals with |\par| and |\everypar|
%
% \StopEventually{}
%
% \begin{oldcomments}
%
%    \begin{macrocode}
%<*2ekernel>
\message{par,}
%    \end{macrocode}
%       ****************************************
%       *          \par AND \everypar          *
%       ****************************************
%
% There are two situations in which \par may be changed:
%
%   - Long-term changes, in which the new value is to remain in effect
%     until the current environment is left.  The environments that
%     change \par in this way are the following:
%
%         * All list environments (itemize, quote, etc.)
%         * Environments that turn \par into a noop:
%              tabbing, array and tabular.
%
%   - Temporary changes, in which \par is restored to its previous value
%   the next time it is executed. The following are all such uses.
%         * \end [when preceded by \@endparenv, which is called by
%                 \endtrivlist]
%         * The mechanism for avoiding page breaks and getting the
%           spacing right after section heads.
%
% To permit the proper interaction of these two situations, long-term
% changes are made by the following command:
%     \@setpar{VAL}      : To set \par. It \def's \par and \@par to VAL.
% Short-term changes are made by the usual \def\par commands.
% The original values are restored after a short-term change
% by the \@restorepar commands.
%
% NOTE: \@@par always is defined to be the original TeX \par.
%
% \everypar is changed only for the short term.  Whenever \everypar
% is set non-null, it should restore itself to null when executed.
% The following commands change \everypar in this way:
%         * \item
%         * \end [when preceded by \@endparenv, which is called by
%                 \endtrivlist]
%         * \minipage
%
% WARNING: Commands that make short-term changes to \par and \everypar
% must take account of the possibility that the new commands and the
% ones that do the restoration may be executed inside a group.  In
% particular, \everypar is executed inside a group whenever a new
% paragraph 
% begins with a left brace.  The \everypar command that restores its
% definition should be local to the current group (in case the command
% is inside a minipage used inside someplace where \everypar has been
% redefined).  Thus, if \everypar is redefined to do an \everypar{}
% it could take several executions of \everypar before
% the restoration 'holds'.  This usually causes no problem.  However, to
% prevent the extra executions from doing harm, use a global switch
% to keep anything harmful in the new \everypar from being done twice.
%
% WARNING: Commands that change \everypar should remember that \everypar
% might be supposed to set the following switches false:
%              @nobreak
%              @minipage
% they should do the setting if necessary.
%
%    \begin{macrocode}
\def\@par{\let\par\@@par\par}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\@setpar#1{\def\par{#1}\def\@par{#1}}
\def\@restorepar{\def\par{\@par}}
%</2ekernel>
%    \end{macrocode}
%
% \end{oldcomments}
%
% \Finale
\endinput

