%%
%% This is file `environ.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% environ.dtx  (with options: `package')
%% 
%%   __________________________________
%%   Copyright (C) 2007  Will Robertson
%% 
%%   License information appended.
%% 
%% ^^A Test that \RenewEnvironment works correctly:
\ProvidesPackage{environ}[2014/05/04 v0.3 A new way to define environments]
\RequirePackage{trimspaces}
\def\environbodyname#1{\def\env@BODY{#1}}
\environbodyname\BODY
\def\environfinalcode#1{%
  \def\env@finalcode{#1}}
\environfinalcode{\ignorespacesafterend}
\def\longdef@c#1{%
  \expandafter\long\expandafter\def\csname#1\endcsname}
\unless\ifdefined\collect@body
  \newtoks\@envbody
  \def\collect@body#1{%
    \@envbody{\expandafter#1\expandafter{\the\@envbody}}%
    \edef\process@envbody{\the\@envbody\noexpand\end{\@currenvir}}%
    \@envbody={}%
    \def\begin@stack{b}%
    \begingroup
    \expandafter\let\csname\@currenvir\endcsname\collect@@body
    \edef\process@envbody{%
      \expandafter\noexpand\csname\@currenvir\endcsname}%
    \process@envbody
  }
  \def\push@begins#1\begin#2{%
    \ifx\end#2\else
      b\expandafter\push@begins
    \fi}
  \def\addto@envbody#1{%
    \global\@envbody\expandafter{\the\@envbody#1}}
  \def\collect@@body#1\end#2{%
    \edef\begin@stack{%
      \push@begins#1\begin\end \expandafter\@gobble\begin@stack}%
    \ifx\@empty\begin@stack
      \endgroup
      \@checkend{#2}%
      \addto@envbody{#1}%
    \else
      \addto@envbody{#1\end{#2}}%
    \fi
    \process@envbody}
\fi
\long\def\Collect@Body#1{%
  \@envbody{\expandafter#1\expandafter{\the\@envbody}}%
  \edef\process@envbody{\the\@envbody\noexpand\end{\@currenvir}}%
  \@envbody={}%
  \def\begin@stack{b}%
  \begingroup
  \expandafter\let\csname\@currenvir\endcsname\Collect@@Body
  \edef\process@envbody{%
    \expandafter\noexpand\csname\@currenvir\endcsname}%
  \process@envbody
}
\long\def\Push@Begins#1\begin#2{%
  \ifx\end#2\else
    b\expandafter\Push@Begins
  \fi}
\long\def\Addto@Envbody#1{%
  \global\@envbody\expandafter{\the\@envbody#1}}
\long\def\Collect@@Body#1\end#2{%
  \edef\begin@stack{%
    \Push@Begins#1\begin\end\expandafter\@gobble\begin@stack}%
  \ifx\@empty\begin@stack
    \endgroup
    \@checkend{#2}%
    \Addto@Envbody{#1}%
  \else
    \Addto@Envbody{#1\end{#2}}%
  \fi
  \process@envbody}
\def\NewEnviron{%
  \let\env@newenvironment\newenvironment
  \env@NewEnviron}
\def\RenewEnviron{%
  \let\env@newenvironment\renewenvironment
  \env@NewEnviron}
\def\env@NewEnviron#1{%
  \@ifnextchar[
    {\env@new@i{#1}}
    {\env@new@iii{#1}{}}}
\def\env@new@i#1[#2]{%
  \@ifnextchar[
    {\env@new@ii{#1}[#2]}
    {\env@new@iii{#1}{[#2]}}}
\def\env@new@ii#1[#2][#3]{%
  \env@new@iii{#1}{[#2][#3]}}
\long\def\env@new@iii#1#2#3{%
  \@temptokena={\env@new{#1}{#2}{#3}}%
  \@ifnextchar[{%
    \the\@temptokena
  }{%
    \expandafter\the\expandafter
      \@temptokena\expandafter[\env@finalcode]%
  }}
\long\def\env@new#1#2#3[#4]{%
  \longdef@c{env@#1@BODY\expandafter}\expandafter{\env@BODY}%
  \env@newenvironment{#1}{%
    \expandafter\Collect@Body\csname env@#1@parse\endcsname
  }{#4}%
  \longdef@c{env@#1@parse}##1{%
    \csname env@#1@save@env\endcsname##1\env@nil
    \csname env@#1@process\endcsname##1\env@nil}%
  \expandafter\let\csname env@#1@save@env\endcsname\relax
  \expandafter\let\csname env@#1@process\endcsname\relax
  \expandafter\newcommand
    \csname env@#1@save@env\endcsname#2{%
      \expandafter\expandafter\expandafter
        \env@save\csname env@#1@BODY\endcsname}%
  \expandafter\newcommand
    \csname env@#1@process\endcsname#2{#3\env@ignore}%
}
\long\def\env@save#1#2\env@nil{%
  \edef#1{%
    \unexpanded\expandafter
      \expandafter\expandafter{\trim@spaces{#2}}}}
\long\def\env@ignore#1\env@nil{}
%% 
%% Copyright (C) 2007-2014 by Will Robertson <wspr81@gmail.com>
%% 
%% Distributable under the LaTeX Project Public License,
%% version 1.3c or higher (your choice). The latest version of
%% this license is at: http://www.latex-project.org/lppl.txt
%% 
%% This work is "maintained" (as per LPPL maintenance status)
%% by Will Robertson.
%% 
%% This work consists of the file  environ.dtx
%%           and the derived files environ.pdf,
%%                                 environ.sty, and
%%                                 environ.ins.
%% 
%%
%% End of file `environ.sty'.
