%%
%% This is file `dateiliste.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% dateiliste.dtx  (with options: `package')
%% 
%%  ,--------------------------------------------------.
%%  |  Das ist eine generierte Datei.                  |
%%  |                                                  |
%%  | (c) 2006 Paul Ebermann.                          |
%%  '--------------------------------------------------'
%%  (C) 2006, 2009 Paul Ebermann (Hauptautor)
%%  (C) 2006 Rolf Niepraschk (einiges an Code gespendet)
%%
%%   Package dateiliste - Zur Ausgabe der Liste der Dateien im Dokument.
%%
%%   Die Datei dateiliste.dtx sowie die dazugehörige
%%   dateiliste.ins sowie die damit generierte
%%   dateiliste.sty stehen unter der
%%   "LaTeX Project Public License" (LPPL, zu finden
%%   unter http://www.latex-project.org/lppl/, sowie
%%   auch in den meisten TeX-Distributionen in
%%   texmf/docs/latex/base/lppl*.txt), Version 1.3b oder
%%   später (nach Wahl des Verwenders).
%%
%%   Der 'maintenance-status' ist (zur Zeit) 'maintained'.
%%
%%   Das heißt in etwa, die Dateien dürfen frei vertrieben werden,
%%   bei Änderungen (durch andere Personen als Paul Ebermann)
%%   ist aber der Name der Datei zu ändern.
\NeedsTeXFormat{LaTeX2e}[2003/12/01]
\ProvidesPackage{dateiliste}[%
      2009/11/04 v0.5 %
      Ausgabe der Dateiliste (PE)]
\newif\if@dateiliste@addMain
\DeclareOption{addmain} {%
   \@dateiliste@addMaintrue
}
\DeclareOption{noaddmain} {%
   \@dateiliste@addMainfalse
}
\newif\if@dateiliste@catxii \@dateiliste@catxiifalse
\newif\if@dateiliste@nocatxii \@dateiliste@nocatxiifalse
\DeclareOption{cat12} {%
   \@dateiliste@catxiitrue
}
\DeclareOption{nocat12} {%
   \@dateiliste@nocatxiitrue
}
\newif\if@dateiliste@showpages \@dateiliste@showpagesfalse
\DeclareOption{showpages} {%
  \@dateiliste@showpagestrue
}
\DeclareOption{noshowpages} {%
  \@dateiliste@showpagesfalse
}
\newif\if@dateiliste@subversion \@dateiliste@subversionfalse
\DeclareOption{svn} {%
  \@dateiliste@subversiontrue
}
\DeclareOption{subversion} {%
  \@dateiliste@subversiontrue
}
\DeclareOption{cvs} {%
  \@dateiliste@subversionfalse
}
\DeclareOption{rcs} {%
  \@dateiliste@subversionfalse
}
\ExecuteOptions{addmain}
\ExecuteOptions{showpages}
\ExecuteOptions{rcs}
\ProcessOptions
   \if@dateiliste@showpages
     \CheckCommand*{\@addtofilelist}[1]{\xdef\@filelist{\@filelist,#1}}
     \renewcommand*{\@addtofilelist}[1]{%
       \expandafter\xdef%
       \csname dateiliste@page@#1\endcsname%
       {\thepage}%
       \xdef\@filelist{\@filelist,#1}%
   }
   \fi
\setcounter{page}{0}
\AtBeginDocument{\stepcounter{page}}
\if@dateiliste@subversion
\RequirePackage[nofancy, notoday, final]{svninfo}[2006/05/11]
\newcommand*{\ProvideFileInfos}[2] {%
   \svnInfo #1 %
   \ProvidesFile%
   {\svnInfoFile}%
   [\svnInfoYear/\svnInfoMonth/\svnInfoDay\space
     v\svnInfoRevision\space #2]%
}
\else%  \if@dateiliste@subversion
\RequirePackage[nofancy, notoday]{rcsinfo}
\newcommand*{\ProvideFileInfos}[2] {%
   \rcsInfo #1 %
   \ProvidesFile%
   {\expandafter\@firstofone\rcsInfoFile}%
   [\rcsInfoDate\space v\rcsInfoRevision\space #2]%
}
\fi%  \if@dateiliste@subversion
\RequirePackage{ltxtable}
\AtBeginDocument{%
   \@ifpackageloaded{pauldoc}{%
      \newcommand*{\dateiliste@preInclude}{\DeleteShortVerb{\'}}%
      \newcommand*{\dateiliste@postInclude}{\MakeShortVerb{\'}}%
   }{%
      \newcommand*{\dateiliste@preInclude}{\relax}%
      \newcommand*{\dateiliste@postInclude}{\relax}%
   }%
}%
\newcommand*{\printFileList}[1][\section*] {% \printFileList
   \@ifundefined{@dofilelist}
   {%
      \PackageWarning{dateiliste}
      {
         \protect\printFileList\space works only if
         \protect\listfiles\space is given in the preamble.
      }
   }%
   {%                      else (\@ifundefined{@dofilelist})
      #1{\fileListName}\label{sec:filelist}%
      \fileListPreamble
      \IfFileExists{\jobname.filelist}{%
         \let \dateiliste@addtofilelist = \@addtofilelist
         \def\@addtofilelist####1{%
            \edef\dateiliste@tempa{####1}%
            \edef\dateiliste@tempb{\jobname.filelist}\relax%
            \ifx\dateiliste@tempa\dateiliste@tempb
              \relax
            \else
              \dateiliste@addtofilelist{####1}
            \fi
         }%
         \dateiliste@preInclude
         \LTXtable{\linewidth}{\jobname.filelist}%
         \dateiliste@postInclude
         \let \@addtofilelist = \dateiliste@addtofilelist
         \@addtofilelist{\jobname.filelist}%
      }
      {%
         \AtEndDocument{\PackageWarning{dateiliste}{
            Run LaTeX again to include the File list.
         }}%
      }%
      \AtEndDocument{%
         \begingroup
         \@writefilelist
         \endgroup
      }%
      \newcommand*{\@writefilelist}{%  \@writefilelist
         \newwrite\dateiliste@file
         \immediate\openout\dateiliste@file = \jobname.filelist
         \edef\dateiliste@today{%
            \the\year/\two@digits{\the\month}/\two@digits{\the\day}}%
         \immediate\write\dateiliste@file{%
            \string\ProvidesFile{\jobname.filelist}%
            [\dateiliste@today\space --- automatically %
            generated filelist]%
         }%
         \if@dateiliste@showpages
         \def\@tempa{lrll}
         \else
         \def\@tempa{lll}
         \fi
         \immediate\write\dateiliste@file{%
            \string\LTleft=0pt%
            \string\LTright=0pt%
            \string\begin{longtable}{\@tempa>{%
                  \string\raggedright\string\arraybackslash}X}%
               \string\textbf{\fileNameName} \expandafter&%
               \if@dateiliste@showpages
               \string\textbf{\pageName} &
               \fi
               \string\textbf{\dateName} &
               \string\textbf{\verName} &
               \string\textbf{\descriptionName}
               \string\endhead%
            }%
         \@for\@currname:=\@filelist\do{%  \@for
            \filename@parse\@currname%
            \edef\dateiliste@filename{%
               \filename@base.%
               \ifx\filename@ext\relax tex\else\filename@ext\fi}%
            \expandafter\let\expandafter\dateiliste@fileversion%
            \csname ver@\dateiliste@filename\endcsname%
            \if@dateiliste@showpages
            \@ifundefined{dateiliste@page@\@currname}
            {%
              \def\dateiliste@filepage{0}%
            }{%
              \expandafter\let\expandafter\dateiliste@filepage%
              \csname dateiliste@page@\@currname\endcsname%
            }%
            \fi
            \edef\dateiliste@zeile{%
                \expandafter\dateiliste@escapeii\expandafter{%
                  \dateiliste@filename
                }
              \space& %
              \if@dateiliste@showpages
              \dateiliste@filepage
              \space& %
              \fi
               \ifx\dateiliste@fileversion\relax
               ---
               \else
               \expandafter\dateiliste@parse@ver
               \dateiliste@fileversion{} {} {} \dateiliste@parse@ver
               \fi
               \string\\}%   \edef
             \immediate\write\dateiliste@file{%
               \dateiliste@zeile
             }%
         }%  \@for
      \immediate\write\dateiliste@file{\string\end{longtable}}
         \immediate\closeout\dateiliste@file
      }%
      \def\dateiliste@parse@ver##1 ##2 ##3\dateiliste@parse@ver{%
        ##1 & ##2 &
        % \dateiliste@general@escape{##3}{\@backslashchar}%
        % {\string\textbackslash{}}%
        \dateiliste@escapeii{##3}%
        \relax
      }%
   }%
}%
\newcommand*{\dateiliste@escapeii}[1]{%
  \dateiliste@escape@@ii#1\@nil. \@@nil\@@
}%
\def\dateiliste@escape@@ii#1 #2#3\@@{%
  \ifx\@@nil#2
    % nur ein Wort, und das '\@nil' ist schon in '#1' drin.
    \afterfi{%
      \dateiliste@escape@ii#1\@@%
    }%
  \else
    %Rekursion
    \afterfi{%
      \dateiliste@escape@ii#1\@nil\@@%
      \space%
      \dateiliste@escape@@ii#2#3\@@%
    }%
  \fi
}%
\def\dateiliste@escape@ii#1#2\@@{%
  \ifx#1\@nil
    \@empty
  \else
    \afterfi{%
      \dateiliste@escapetoken{#1}%
      \dateiliste@escape@ii#2\@@
    }%
  \fi
}%
\newcommand*{\dateiliste@escapetoken}[1] {%
    \ifx#1\@empty\@empty
    \else
    \ifcat\noexpand\relax
          \noexpand#1%
      \string\string\string#1%
    \else
    \ifcase \catcode\expandafter`#1 %
      \string\textbackslash\space% (kann nur mit Tricks vorkommen) - \
      \or\string\{% dito - {
      \or\string\}% dito - }
      \or\string\$% math shift (3) - $
      \or\string\&% alignment tab (4) - &
      \or(Kategorie 5)% end of line
      \or\string\#% parameter (6) - sollte nicht vorkommen
      \or\string\^{ }% superscript (7)
      \or\string\_% subscript (8)
      \or(Kategorie 9 - ignored)%  (9) - sollte nicht vorkommen
      \or#1% space (10)
      \or#1% letter (11)
      \or#1% other (12)
      \or\string\string\string#1% active -- sollte auch normalerweise
      %                          nicht vorkommen.
      \or\%% comment (14) (dafür muss man auch etwas tricksen)
      \or(Kategorie 15 - invalid)% (15 - sollte nicht vorkommen)
      \else(andere Kategorie)%  (und da es eigentlich nur
      %                          Kategorien 0-15 gibt, auch das nicht.)
    \fi%  (\ifcase)
    \fi%  (\ifcat)
    \fi%  (\ifx)
}%
\long\def\afterfi#1#2\fi{%
  \fi#1%
}
\newcommand*\@@nil{\@@nil}%
\newcommand*\@nil{\@nil}%
\newcommand*\@@{\@@}%
\newcommand*\fileListPreamble{
   Here is the list of all files used during the run of \LaTeX{}
   which produced this document. \footnote{More precisely, it is
      the list of files used one \LaTeX-run before the one which
      produced this document, but after some runs the list should
      stabilize.}
}
\newcommand*\fileListName{List of Files}
\newcommand*\fileNameName{file name}
\newcommand*\pageName{page}
\newcommand*\dateName{release date}
\newcommand*\verName{version}
\newcommand*\descriptionName{description}
\newcommand*{\dateiliste@babel}{
   \addto{\extrasenglish}{%
      \renewcommand*\fileListPreamble{%
         Here is the list of all files used during the run of \LaTeX{}
         which produced this document.\footnote{More precisely, it is
            the list of files used one \LaTeX-run before the one which
            produced this document, but after some runs the list
            should stabilize.}
      }
      \renewcommand*\fileListName{List of Files}%
      \renewcommand*\fileNameName{file name}
      \renewcommand*\pageName{page}
      \renewcommand*\dateName{release date}
      \renewcommand*\verName{ver.}
      \renewcommand*\descriptionName{description}
   }%
   \addto{\extrasgerman}{%
      \renewcommand*\fileListPreamble{%
         Hier die Liste aller Dateien, die w\"ahrend des \LaTeX-Laufes,
         welcher dieses Dokument erzeugte, verwendet wurden.
         \footnote{genauer: Es ist die Liste aller Dokumente, die
            einen \LaTeX-Lauf fr\"uher verwendet wurden. Aber nach
            einigen L\"aufen sollte sich die Liste stabilisieren.}
      }
      \renewcommand*\fileListName{Liste der Dateinamen}%
      \renewcommand*\fileNameName{Dateiname}
      \renewcommand*\pageName{\llap{Se}ite}
      \renewcommand*\dateName{Datum}
      \renewcommand*\verName{Ver.}
      \renewcommand*\descriptionName{Beschreibung}
   }%
   \addto{\extrasngerman}{%
      \renewcommand*\fileListPreamble{%
         Hier die Liste aller Dateien, die w\"ahrend des \LaTeX-Laufes,
         welcher dieses Dokument erzeugte, verwendet wurden.
         \footnote{genauer: Es ist die Liste aller Dokumente, die
            einen \LaTeX-Lauf fr\"uher verwendet wurden. Aber nach
            einigen L\"aufen sollte sich die Liste stabilisieren.}
      }
      \renewcommand*\fileListName{Liste der Dateinamen}%
      \renewcommand*\fileNameName{Dateiname}
      \renewcommand*\pageName{Seite}
      \renewcommand*\dateName{Datum}
      \renewcommand*\verName{Ver.}
      \renewcommand*\descriptionName{Beschreibung}
   }%
   \addto{\extrasesperanto}{%
      \renewcommand*\fileListPreamble{%
         Jen listo de \^ciuj dosieroj, kiuj estis uzitaj dum
         la \LaTeX-rulo, kiu produktis tiun \^ci dokumenton.
         \footnote{Pli precize: estas la listo de dosieroj uzitaj
            unu rulon anta\u{u} tiu, kiu produktis tiun \^ci
            dokumenton. Sed kutime post kelkaj ruloj la listo
            devus stabili\^gi.}
      }
      \renewcommand*\fileListName{Listo de dosieroj}%
      \renewcommand*\fileNameName{dosiernomo}
      \renewcommand*\pageName{pa\^go}
      \renewcommand*\dateName{dato}
      \renewcommand*\verName{versio}
      \renewcommand*\descriptionName{priskribo}
   }%
   \let \dateiliste@babel = \relax%
}%
\@ifpackageloaded{babel}
{%
   \dateiliste@babel%
}%
{%
   \AtBeginDocument{%
      \@ifpackageloaded{babel}{%
         \dateiliste@babel%
      }{%
         \let \dateiliste@babel = \relax
      }%
   }%
}%
\newcommand*{\mainFileToList}{%  \mainFileToList
   \IfFileExists{\jobname.tex} {%
      \begingroup
      \newcommand*{\dateiliste@catxii@transform}
      {
         \edef\dateiliste@mainfile{\jobname.tex}%
         \edef\dateiliste@mainfile{%
            \expandafter\strip@prefix\meaning\dateiliste@mainfile
         }%
         \edef\@filelist{\expandafter\strip@prefix\meaning\@filelist}%
      }%
      \newcommand*{\dateiliste@scantoken@tr}
      {%
         \scantokens
         \expandafter{%
            \expandafter\makeatletter
            \expandafter\edef
            \expandafter\dateiliste@mainfile
            \expandafter{%
               \jobname
               .tex}%
            \makeatother
         }%
      }%
      \if@dateiliste@catxii
        \dateiliste@catxii@transform
      \else
        \@ifundefined{scantokens}
        {%
          \if@dateiliste@nocatxii
            \edef\dateiliste@mainfile{\jobname.tex}%
          \else
            \dateiliste@catxii@transform
          \fi
        }
        {%
          \dateiliste@scantoken@tr
        }%
      \fi
      \@expandtwoargs\@removeelement{\dateiliste@mainfile}%
      \@filelist\@filelist
      \xdef\@filelist{%
         \dateiliste@mainfile,\@filelist
      }%
      \endgroup
   }{%
      \relax
   }%
}%
\if@dateiliste@addMain
  \AtEndDocument{\mainFileToList}
\fi
\endinput %
\endinput
%%
%% End of file `dateiliste.sty'.
