%%
%% This is file `svn-prov.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% svn-prov.dtx  (with options: `package')
%% 
%% Copyright (C) 2009 by Martin Scharrer <martin@scharrer-online.de>
%% 
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% 
%%    http://www.latex-project.org/lppl.txt
%% 
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
%% 
%% This work has the LPPL maintenance status `maintained'.
%% 
%% The Current Maintainer of this work is Martin Scharrer.
%% 
%% This work consists of the files svn-prov.dtx, svn-prov.ins
%% and the derived file svn-prov.sty.
%% 
\def\svnprov@version{v3.\rev}
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\def\ProvidesClassSVN{%
  \svnprov@generic\ProvidesClass{\svnprov@filebase@}%
}
\def\ProvidesFileSVN{%
  \svnprov@generic\ProvidesFile{\svnprov@filebase@.\svnprov@fileext@}%
}
\def\ProvidesPackageSVN{%
  \svnprov@generic\ProvidesPackage{\svnprov@filebase@}%
}
\def\svnprov@generic#1#2{%
  \def\svnprov@ltxprov{#1}%
  \def\svnprov@filemask{#2}%
  \begingroup
  \svnprov@catcodes
  \@ifnextchar{[}%
    {\svnprov@getid}%
    {\svnprov@getid[\svnprov@svnfilename]}%
}
\def\svnprov@catcodes{%
  \catcode`\ =10%
  \catcode`\$=3%
  \@makeother\:%
  \@makeother\-%
}
\begingroup
\svnprov@catcodes
\gdef\svnprov@getid[#1]#2{%
  \endgroup
  \def\svnprov@filename{#1}%
  \svnprov@scanid #2\relax $%
    Id: unknown.xxx 0 0000-00-00 00:00:00Z user $\empty\svnprov@endmarker
}
\gdef\svnprov@scanid#1$%
  Id: #2 #3 #4-#5-#6 #7 $#8{%
  \def\next{%
    \begingroup
    \PackageWarning{svn-prov}{Invalid SVN Id line found! File name might be
    '#2' or '\expandafter\strip@prefix\meaning\@filef@und'. This occured}{}{}{}%
    \endgroup
    \svnprov@gobbleopt
  }%
  \ifx\relax#1\relax
    \ifx\relax#8\empty
      \def\svnprov@svnfilename{#2}%
      \svnprov@splitfilename{#2}%
      \def\svnprov@filerev@{#3}%
      \def\svnprov@filedate@{#4/#5/#6}%
      \def\svnprov@filetoday@{\svnprov@@today{#4}{#5}{#6}}%
      \def\next{\begingroup\svnprov@catcodes\svnprov@buildstring}%
    \fi
  \fi
  \expandafter\next\svnprov@gobblerest
}% $
\endgroup
\def\svnprov@@today#1#2#3{%
  {\year#1\month#2\day#3\relax\today}%
}
\def\svnprov@splitfilename#1{%
  \edef\g@tempa{#1}%
  \let\svnprov@filebase@\@gobble
  \expandafter
  \svnprov@splitfilename@\g@tempa.\relax
}
\def\svnprov@splitfilename@#1.#2\relax{%
  \if&#2&
    \ifx\svnprov@filebase@\@gobble
      \gdef\svnprov@filebase@{#1}%
      \gdef\svnprov@fileext@{}%
    \else
      \gdef\svnprov@fileext@{#1}%
    \fi
    \let\next\relax
  \else
    \xdef\svnprov@filebase@{\svnprov@filebase@.#1}%
    \def\next{\svnprov@splitfilename@#2\relax}%
  \fi
  \next
}
\def\svnprov@gobblerest#1\svnprov@endmarker{}
\def\svnprov@endmarker{\@gobble{svn-prov endmarker}}
\newcommand*\svnprov@gobbleopt[1][]{}
\def\svnprov@defaultdesc{%
  (SVN Rev:\space\svnprov@filerev@)%
}
\newcommand*\svnprov@buildstring[1][\svnprov@defaultdesc]{%
  \@ifnextchar{[}%
    {\svnprov@buildstring@{#1}}%
    {\svnprov@buildstring@{#1}[\relax]}%
}
\def\svnprov@buildstring@#1[#2]{%
  \endgroup
  \begingroup
    \let\rev\svnprov@filerev@
    \let\filerev\svnprov@filerev@
    \def\Rev{\rev\space}%
    \let\revinfo\svnprov@defaultdesc
    \let\filebase\svnprov@filebase@
    \let\fileext\svnprov@fileext@
    \ifx\fileversion\@undefined
      \def\fileversion{v0.0}%
    \fi
    \edef\filename{\filebase.\fileext}%
    \xdef\svnprov@filename{\svnprov@filename}%
    \ifx\svnprov@filename\filename\else
      \svnprov@splitfilename{\svnprov@filename}%
    \fi
    \let\filename\svnprov@filename
    \ifx\relax#2\empty
      \xdef\svnprov@fileinfo@{#1}%
      \svnprov@getversion{#1}%
      \global\let\svnprov@filedesc@\svnprov@filedesc@
      \global\let\svnprov@fileinfo@\svnprov@fileinfo@
    \else
      \xdef\svnprov@fileversion@{#1}%
      \xdef\svnprov@filedesc@{#2}%
      \xdef\svnprov@fileinfo@{#1 #2}%
    \fi
  \endgroup
  \svnprov@ltxprov{\svnprov@filemask}%
    [\svnprov@filedate@
     \ifx\svnprov@fileinfo@\empty\else
      \space
      \svnprov@fileinfo@
     \fi
   ]%
}
\def\GetFileInfoSVN#1{%
  \ifx*#1\relax
    \let\filebase\svnprov@filebase@
    \let\fileext\svnprov@fileext@
    \let\filename\svnprov@filename
    \let\filedate\svnprov@filedate@
    \let\filerev\svnprov@filerev@
    \let\fileversion\svnprov@fileversion@
    \let\fileinfo\svnprov@filedesc@
    \let\filetoday\svnprov@filetoday@
  \else
    \expandafter\let\expandafter\@gtempa\csname#1@short\endcsname%
    \ifx\@gtempa\relax
      \def\@gtempa{#1}%
      \expandafter\let\expandafter\filename\csname#1@long\endcsname
    \else
      \edef\filename{#1}%
    \fi
    \expandafter\let\expandafter\filebase\csname\@gtempa @base\endcsname
    \expandafter\let\expandafter\fileext \csname\@gtempa @ext\endcsname
    \expandafter\let\expandafter\filedate\csname\@gtempa @date\endcsname
    \expandafter\let\expandafter\filerev \csname\@gtempa @rev\endcsname
    \expandafter\let\expandafter\fileversion\csname\@gtempa @version\endcsname
    \expandafter\let\expandafter\fileinfo\csname\@gtempa @info\endcsname
    \expandafter\let\expandafter\filetoday\csname\@gtempa @today\endcsname
  \fi
}
\newcommand*\DefineFileInfoSVN[1][\svnprov@filemask]{%
  \expandafter
  \edef\csname\svnprov@filemask @short\endcsname{#1}%
  \expandafter
  \edef\csname#1@long\endcsname{\svnprov@filemask}%
  \expandafter
  \let\csname#1@base\endcsname\svnprov@filebase@
  \expandafter
  \let\csname#1@ext\endcsname\svnprov@fileext@
  \expandafter
  \let\csname#1@date\endcsname\svnprov@filedate@
  \expandafter
  \let\csname#1@version\endcsname\svnprov@fileversion@
  \expandafter
  \let\csname#1@rev\endcsname\svnprov@filerev@
  \expandafter
  \let\csname#1@info\endcsname\svnprov@filedesc@
  \expandafter
  \let\csname#1@today\endcsname\svnprov@filetoday@
}
\def\svnprov@getversion#1{%
  \edef\@tempa{#1\space}%
  \expandafter\svnprov@@getversion\@tempa\svnprov@endmarker
}
\def\svnprov@@getversion{%
  \@ifnextchar{v}%
    {\svnprov@getversion@}%
    {\svnprov@getversion@@}%
}
\def\svnprov@getversion@#1 #2\svnprov@endmarker{%
  \gdef\svnprov@fileversion@{#1}%
  \ifx&#2&%
    \gdef\svnprov@filedesc@{}%
  \else
    \xdef\svnprov@filedesc@{\svnprov@zapspace#2\svnprov@endmarker}%
  \fi
}
\def\svnprov@getversion@@#1 \svnprov@endmarker{%
  \gdef\svnprov@fileversion@{}%
  \gdef\svnprov@filedesc@{#1}%
}
\def\svnprov@zapspace#1 \svnprov@endmarker{#1}
\ProvidesPackageSVN{$Id: svn-prov.dtx 1862 2010-04-24 14:19:07Z martin $}%
  [\svnprov@version\space Package Date/Version from SVN Keywords]
\DefineFileInfoSVN[svnprov]

\endinput
%%
%% End of file `svn-prov.sty'.
