% The first think here is my begin definitions environment.  It is
% an environment for programming, and is seperate from the footnote-
% related stuff.  I find it convenient, and it is needed for my other
% code to work.  I also use symbolic names for all catcodes in my 
% programming, but I've gotten that out of this code for greater ease
% of use by the great wide world out there.
%			-- Brian T. Schellenberger

%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

%----definitions: within \begin{definitions} (which does not really define
%    a group), spacing means nothing.  Use \space for a space character
%    and \par for a blank line, for those rare instances where they are
%    really desired.  Also, @ is seen as a letter.  All these are reversed
%    and \end{definitions}---\E{even if} they had the same catagories before!
%    These should not be nested but, unfortunately, there is no way to tell.

\ifx\defsloaded\relax\endinput\else\let\defsloaded=\relax\fi

\newif\ifatletter

\newenvironment {definitions}
  {
  \endgroup     % doesn't really nest -- close \begingroup from \begin
  \ifcat @a \atlettertrue \else \atletterfalse \fi
                % \catcode`\ =\ignoreC \catcode`\^^M=\ignoreC
  \makeatletter   \catcode`\ =9        \catcode`\^^M=9        
  }%
  {
               % \catcode`\ =\spaceC \catcode`\^^M=\nlC
  \makeatother   \catcode`\ =10      \catcode`\^^M=5   
  \ifatletter \makeatletter \fi
  \begingroup   % doesn't really nest -- reopen \begingroup closed above
  \def \@currenvir {definitions}
  }
