\ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbaseverbatim.sty,v 1.2 2004/10/13 10:52:08 tantau Exp $

% Copyright 2003 by Till Tantau <tantau@users.sourceforge.net>.
%
% This program can be redistributed and/or modified under the terms
% of the GNU Public License, version 2.

\mode<presentation>


\newwrite\beamer@verbatimfileout

\def\beamer@verbatimreadframe{%
  \begingroup%
  \let\do\beamer@makeinnocent\dospecials%
  \beamer@makeinnocent\^^L% and whatever other special cases
  \endlinechar`\^^M \catcode`\^^M=12 \beamer@processframefirstline}

{\catcode`\^^M=12\endlinechar=-1%
  \long\gdef\beamer@processframefirstline#1^^M{%
    \def\beamer@test{#1}%
    \ifx\beamer@test\beamer@stopframefirst%
      \let\next=\beamer@framewritten%
    \else
      \@temptokena={#1}%
      \immediate\write\beamer@verbatimfileout{\the\@temptokena}%
      \let\next=\beamer@processframeline%
    \fi%
    \next%
  }
  \long\gdef\beamer@processframeline#1^^M{%
    \def\beamer@test{#1}%
    \ifx\beamer@test\beamer@stopframe%
      \let\next=\beamer@framewritten%
    \else
      \immediate\write\beamer@verbatimfileout{#1}%  
      \let\next=\beamer@processframeline%
    \fi%
    \next%
  }
}

\def\beamer@setupstoppers#1{%
  {
    \escapechar=-1\relax%
    \xdef\beamer@stopframe{\string\\end\string\{#1\string\}}
    \xdef\beamer@stopframefirst{\noexpand\end\string\{#1\string\}}
}
}


\def\beamer@framewritten{\endgroup%
  \beamer@afterexternalframe%
}




% The following code is partly adapted from code from the alltt package.

\mode
<all>
{
\begingroup
\lccode`\~=`\'
\lowercase{\endgroup
\newenvironment{semiverbatim}{%
  \trivlist
  \item\relax
    \if@minipage
    \else
      \vskip\parskip
    \fi
    \leftskip\@totalleftmargin
    \rightskip\z@skip
    \parindent\z@
    \parfillskip\@flushglue
    \parskip\z@skip
    \@@par
    \@tempswafalse
    \def\par{%
      \if@tempswa
        \leavevmode\null\@@par\penalty\interlinepenalty
    \else
      \@tempswatrue
      \ifhmode\@@par\penalty\interlinepenalty\fi
    \fi}
    \obeylines
    \verbatim@font
    \let\org@prime~%
    \everymath\expandafter{\the\everymath
      \catcode`\'=12 \let~\org@prime}
    \everydisplay\expandafter{\the\everydisplay
      \catcode`\'=12 \let~\org@prime}
    \def\dospecials{\do\ \do\$\do\&%
     \do\#\do\^\do\_\do\%\do\~\do\`\do\,\do\'\do\-}
    \let\do\@makeother
    \dospecials
    \def\\{\char`\\}
    \def\{{\char`\{}
    \def\}{\char`\}}
    \frenchspacing\@vobeyspaces
    \everypar \expandafter{\the\everypar \unpenalty}}
{\endtrivlist}}
}

\mode
<all>
% End in common mode


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex"
%%% End: 
