diff options
author | Karl Berry <karl@freefriends.org> | 2009-03-26 20:23:52 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-03-26 20:23:52 +0000 |
commit | f8cb44bb3ade5fd393c1006101c81fb35e5eeb17 (patch) | |
tree | 17ea9520af628f1207d99850176d5a5aaaa7a1c2 /Master/texmf-dist/tex/latex/svn-multi | |
parent | 0bf974abd2b59043cda7dbc9eebc97ff12da391d (diff) |
svn-multi needs interaction
git-svn-id: svn://tug.org/texlive/trunk@12524 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/svn-multi')
-rw-r--r-- | Master/texmf-dist/tex/latex/svn-multi/svn-multi.sty | 1478 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/svn-multi/svnkw.sty | 44 |
2 files changed, 1522 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/svn-multi/svn-multi.sty b/Master/texmf-dist/tex/latex/svn-multi/svn-multi.sty new file mode 100644 index 00000000000..76550d11554 --- /dev/null +++ b/Master/texmf-dist/tex/latex/svn-multi/svn-multi.sty @@ -0,0 +1,1478 @@ +%% +%% This is file `svn-multi.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% svn-multi.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2006-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.3 +%% 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.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 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-multi.dtx, svn-multi-pl.dtx, svn-multi.ins +%% and the derived files svn-multi.sty, svnkw.sty and svn-multi.pl. +%% +\def\filedate$#1: #2 #3 #4-#5-#6 #7 ${% + \year#4\month#5\day#6\relax + \def\filedate{#4/#5/#6}% + \def\filerev{#3}% +} +\filedate$Id: svn-multi.dtx 621 2009-03-23 12:26:36Z martin $ +\def\fileversion{v2.0} +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{svn-multi} + [\filedate\space\fileversion\space SVN Keywords for multi-file LaTeX documents] + +\RequirePackage{kvoptions} + +\SetupKeyvalOptions{% + family = svn-multi, + prefix = @svnmulti@ +} +\newif\if@svnmulti@anygraphic +\newif\if@svnmulti@autoload + +\DeclareVoidOption{old}{% + \@svnmulti@verbatimtrue + \@svnmulti@groupsfalse + \@svnmulti@externalfalse + \@svnmulti@graphicsfalse + \@svnmulti@pgfimagesfalse + \@svnmulti@autoloadfalse + \@svnmulti@tablefalse + \@svnmulti@filehooksfalse + \@svnmulti@subgroupsfalse +} +\DeclareVoidOption{all}{% + \@svnmulti@verbatimtrue + \@svnmulti@groupstrue + \@svnmulti@externaltrue + \@svnmulti@graphicstrue + \@svnmulti@pgfimagestrue + \@svnmulti@autoloadtrue + \@svnmulti@tabletrue + \@svnmulti@filehookstrue + \@svnmulti@subgroupstrue +} +\DeclareBoolOption[true]{verbatim} +\DeclareBoolOption[false]{groups} +\DeclareBoolOption[false]{external} +\DeclareBoolOption[false]{subgroups} +\DeclareBoolOption[false]{graphics} +\DeclareBoolOption[false]{pgfimages} +\DeclareStringOption{autoload}[true] +\DeclareBoolOption[false]{table} +\DeclareBoolOption[false]{filehooks} + +\ExecuteOptions{old} +\ProcessKeyvalOptions{svn-multi} +\def\svn@depoption#1{% + \csname if@svnmulti@#1\endcsname\else + \message{svn-multi: Required option '#1' enabled.}% + \csname @svnmulti@#1true\endcsname + \fi +} + +\if@svnmulti@groups + \svn@depoption{filehooks} +\fi +\if@svnmulti@external + \svn@depoption{filehooks} +\fi +\if@svnmulti@subgroups + \svn@depoption{groups} + \svn@depoption{filehooks} +\fi +\if@svnmulti@graphics + \svn@depoption{external} + \svn@depoption{autoload} + \svn@depoption{filehooks} +\fi +\if@svnmulti@pgfimages + \svn@depoption{external} + \svn@depoption{autoload} + \svn@depoption{filehooks} +\fi +\if@svnmulti@autoload + \svn@depoption{external} + \svn@depoption{filehooks} +\fi +\if@svnmulti@table + \svn@depoption{groups} + \svn@depoption{filehooks} +\fi +\ifx\@svnmulti@autoload\@undefined +\else +\ifx\@svnmulti@autoload\empty +\else +\def\svn@temp{true} +\ifx\@svnmulti@autoload\svn@temp + \@svnmulti@autoloadtrue + \svn@depoption{external} + \svn@depoption{filehooks} +\else +\def\svn@temp{false} +\ifx\@svnmulti@autoload\svn@temp + \if@svnmulti@autoload + \PackageWarning{svn-multi}{Option 'autoload' disabled.} + \fi + \@svnmulti@autoloadfalse +\else + \PackageError{svn-multi}% + {Invalid value for 'autoload' option: '\@svnmulti@autoload'^^J% + ! Only 'true','false' or empty (='true') are allowed!} +\fi\fi\fi\fi + +\if@svnmulti@graphics + \@svnmulti@anygraphictrue +\fi +\if@svnmulti@pgfimages + \@svnmulti@anygraphictrue +\fi + +\def\svn@ifempty#1{% + \begingroup + \edef\svn@temp{#1}% + \ifx\svn@temp\empty + \endgroup + \expandafter + \@firstoftwo + \else + \endgroup + \expandafter + \@secondoftwo + \fi +} + +\def\svn@ifequal#1#2{% + \begingroup + \edef\svn@stringa{#1}% + \edef\svn@stringb{#2}% + \ifx\svn@stringa\svn@stringb + \endgroup + \expandafter + \@firstoftwo + \else + \endgroup + \expandafter + \@secondoftwo + \fi +} + +\def\svn@ifvalidrev#1{% + \begingroup + \@ifundefined{#1}% + {\def\svn@temp{-1}}% + {\expandafter\edef + \expandafter\svn@temp\expandafter{\csname #1\endcsname}}% + \ifnum\svn@temp>-1\relax + \endgroup + \expandafter + \@firstoftwo + \else + \endgroup + \expandafter + \@secondoftwo + \fi +} +\def\svn@input#1{% + \begingroup + \let\svn@rg\svn@g + \IfFileExists{#1}{\@@input #1\relax}{}% + \global\let\svn@g\svn@rg + \endgroup +} +\def\svn@inputsvx#1{% + \svn@pushfilestack + \svn@input{#1.svx}% + \svn@popfilestack +} +\providecommand\@namexdef[1]{% + \expandafter\xdef\csname #1\endcsname +} + +\def\svnrev{-1} \def\@svn@rev{-1} +\def\svndate{} \def\@svn@date{} +\def\svnauthor{} \def\@svn@author{} +\def\svnyear{0000} \def\@svn@year{0000} +\def\svnmonth{00} \def\@svn@month{00} +\def\svnday{00} \def\@svn@day{00} +\def\svnhour{00} \def\@svn@hour{00} +\def\svnminute{00} \def\@svn@minute{00} +\def\svnsecond{00} \def\@svn@second{00} +\def\svntimezonehour{+00} \def\@svn@timezonehour{+00} +\def\svntimezoneminute{00} \def\@svn@timezoneminute{00} +\def\svnmainurl{NOT SET} \def\svnmainfilename{NOT SET} +\def\svnurl{} \def\svnfname{} +\def\svn@temp{} + +\def\svn@pg{} \def\svn@g{} \def\svn@cg{\svn@g} +\let\@svng@@files\relax + +\def\svn@initfile{% + \gdef\svnfilerev{-1}% + \gdef\svnfiledate{}% + \gdef\svnfileauthor{}% + \gdef\svnfileyear{0000}% + \gdef\svnfilemonth{00}% + \gdef\svnfileday{00}% + \gdef\svnfilehour{00}% + \gdef\svnfileminute{00}% + \gdef\svnfilesecond{00}% + \gdef\svnfiletimezonehour{+00}% + \gdef\svnfiletimezoneminute{00}% + \gdef\svnfileurl{}% + \gdef\svnfilefname{}% +} +\svn@initfile +\def\svntimezone{\svntimezonehour\svntimezoneminute\svn@gobblezeros} +\def\svnfiletimezone{\svnfiletimezonehour\svnfiletimezoneminute\svn@gobblezeros} +\def\svncgtimezone{\svncgtimezonehour\svncgtimezoneminute} + +\def\svn@gobblezeros{% + \futurelet\svn@nextchar\svn@gobblezeros@ +} +\def\svn@gobblezeros@{% + \let\@tempa=\relax + \def\@tempb{0}% + \ifx0\svn@nextchar + \let\@tempa=\@gobbletwo + \fi + \@tempa +} + +\def\svntime{\svnhour:\svnminute:\svnsecond} +\def\svnfiletime{\svnfilehour:\svnfileminute:\svnfilesecond} +\def\svncgtime{\svncghour:\svncgminute:\svncgsecond} + +\newcommand*{\svntoday}{% + \begingroup + \year\svnyear \month\svnmonth \day\svnday + \relax \today + \endgroup +} +\newcommand*{\svnfiletoday}{% + \begingroup + \year\svnfileyear \month\svnfilemonth \day\svnfileday + \relax \today + \endgroup +} +\newcommand*{\svncgtoday}{% + \@ifundefined{svng@\svn@cg @year}{??}{% + \begingroup + \year\svncgyear \month\svncgmonth \day\svncgday + \relax \today + \endgroup + }% +}% + +\newcommand*{\svnid}{% + \@svnidswtrue + \svnkwsave +} +\newif\if@svnidsw +\@svnidswfalse + +\def\svn@scanId#1 #2 #3 #4 #5\relax{% + \@svn@scandate{#3 #4}% + \@svn@updateid{#2}{#3 #4}{#5}{#1}% + \svnkwdef{Filename}{#1}% + \svnkwdef{Date}{#3 #4}% + \svnkwdef{Revision}{#2}% + \svnkwdef{Author}{#5}% +} + +\def\@svn@updateid#1#2#3#4{% + \xdef\svnfilerev{#1}% + \xdef\svnfiledate{#2}% + \xdef\svnfileauthor{#3}% + \xdef\svnfileurl{#4}% + \svn@getfilename\svnfileurl% + \ifx\svnfilerev\empty\else + \ifnum\@svn@rev<\svnfilerev + \xdef\@svn@rev{\svnfilerev}% + \xdef\@svn@date{\svnfiledate}% + \xdef\@svn@author{\svnfileauthor}% + \xdef\@svn@year{\svnfileyear}% + \xdef\@svn@month{\svnfilemonth}% + \xdef\@svn@day{\svnfileday}% + \xdef\@svn@hour{\svnfilehour}% + \xdef\@svn@minute{\svnfileminute}% + \xdef\@svn@second{\svnfilesecond}% + \xdef\@svn@timezonehour{\svnfiletimezonehour}% + \xdef\@svn@timezoneminute{\svnfiletimezoneminute}% + \xdef\@svn@url{\svnfileurl}% + \xdef\@svn@fname{\svnfilefname}% + \fi + + \if@svnmulti@groups + \ifx\svn@g\empty\else + \svn@updategroup{\svn@g}% + \fi + \if@svnmulti@subgroups + \ifsvnsubgroups + \svn@updategroup{\svn@filedir\svn@filebase}% + \fi + \fi + \fi + \fi +} + +\def\@svncg@save#1#2{% + \expandafter\xdef\csname @svng@\svn@g @#1\endcsname{#2}% +} + + +\newcommand{\svnidlong}{% + \svnkwdef{HeadURL}{}% + \svnkwdef{LastChangedDate}{}% + \svnkwdef{LastChangedRevision}{0}% + \svnkwdef{LastChangedBy}{}% + \begingroup + \if@svnmulti@verbatim + \svn@catcodes + \catcode`\{=12 + \catcode`\}=12 + \else + \def\svnidlong@readargsfull{\svnidlong@readargs}% + \fi + \svnidlong@readargsfull +} + +\if@svnmulti@verbatim +\def\svn@catcodes{% + \let\do\@makeother + \dospecials + \catcode`\^^M9 + \catcode`\ 10 + \catcode`\{1 + \catcode`\}2 +} +\else + \def\svn@catcodes{} +\fi + +\if@svnmulti@verbatim +\begingroup +\catcode`\{=12\catcode`\}=12 +\catcode`\(=1\catcode`\)=2 +\gdef\svnidlong@readargsfull#1{#2}#3{#4}#5{#6}#7{#8}(% + \svnidlong@readargs(#2)(#4)(#6)(#8)% +) +\endgroup +\fi + +\def\svnidlong@readargs#1#2#3#4{% + \svnkwsave@read #1\relax + \svnkwsave@read #2\relax + \svnkwsave@read #3\relax + \svnkwsave@read #4\relax + \endgroup + \ifx\svnkwLastChangedDate\empty\else + \@svn@scanlongdate{\svnkwLastChangedDate}% + \fi + \@svn@updateid{\svnkw{LastChangedRevision}}{\svnkw{LastChangedDate}}% + {\svnkw{LastChangedBy}}{\svnkw{HeadURL}}% + \ignorespaces +}% + +\def\svnkwsave{% + \begingroup + \svn@catcodes + \svnkwsave@readargs +} + +\gdef\svnkwsave@readargs#1{% + \svnkwsave@read#1\relax + \endgroup + \if@svnidsw + \ifx\svnkwId\empty\else + \expandafter + \svn@scanId\svnkwId\relax + \@svnidswfalse + \fi + \fi + \ignorespaces +} + +\begingroup +\if@svnmulti@verbatim +\catcode`\$=12 +\fi +\gdef\svnkwsave@read $#1$\relax{% + \svn@checkcolon#1:\relax +} +\endgroup + +\begingroup +\catcode`\$=11 +\gdef\svnkwsave@parse$#1:#2${% + \expandafter\xdef\csname svnkw#1\endcsname{#2}% +}% +\endgroup + +\newcommand{\svnkwdef}[2]{% + \@ifundefined{svnkwdef@#1}% + {\svnkwdef@{#1}{#2}}% + {\csname svnkwdef@#1\endcsname{#2}}% +} + +\newcommand{\svnkwdef@}[2]{% + \expandafter\xdef\csname svnkw#1\endcsname{#2}% +} + +\def\svnkwdef@Rev#1{% + \svn@ifempty{#1}% + {\svnkwdef@{Rev}{0}}% + {\svnkwdef@{Rev}{#1}}% +} +\def\svnkwdef@Author#1{\svnkwdef@{Author}{#1}} +\def\svnkwdef@Date#1{\svnkwdef@{Date}{#1}} +\def\svnkwdef@URL#1{\svnkwdef@{HeadURL}{#1}} +\let\svnkwdef@Revision=\svnkwdef@Rev +\let\svnkwdef@LastChangedRevision=\svnkwdef@Rev +\let\svnkwdef@LastChangedBy=\svnkwdef@Author +\let\svnkwdef@LastChangedAt=\svnkwdef@Date +\def\svnkwRevision{\svnkwRev} +\def\svnkwLastChangedRevision{\svnkwRev} +\def\svnkwLastChangedBy{\svnkwAuthor} +\def\svnkwLastChangedAt{\svnkwDate} +\def\svnkwURL{\svnkwHeadURL} + +\svnkwdef{Rev}{0} +\svnkwdef{Date}{} +\svnkwdef{Author}{} +\svnkwdef{Filename}{} +\svnkwdef{HeadURL}{} + +\newcommand{\svnkw}[1]{% + \@ifundefined{svnkw#1}% + {\PackageWarning{svn-multi}{SVN keyword '#1' not defined (typo?)}}% + {\csname svnkw#1\endcsname}% +}% + +\def\svn@checkcolon#1:#2\relax{% + \svn@ifempty{#2}% + {\svnkwdef{#1}{}}% + {\svn@stripcolon#2\relax\svnkwdef{#1}{\svn@value}}% +} + +\def\svn@stripcolon#1:\relax{% + \svn@ifempty{#1}% + {\gdef\svn@value{}}% + {\svn@ifequal{#1}{ }% + {\gdef\svn@value{}}% + {\svn@stripspace#1\relax\relax}% + }% +} + +\def\svn@stripspace#1#2\relax{% + \svn@ifequal{#1}{ }% + {\gdef\svn@value{#2}}% + {\svn@striptrailingspace#1#2\relax}% +} + +\def\svn@striptrailingspace#1 \relax{% + \gdef\svn@value{#1}% +} + +\def\svn@gdefverb#1{% + \begingroup + \def\svn@temp{#1}% + \begingroup + \if@svnmulti@verbatim + \svn@catcodes + \fi + \svn@gdefverb@ +} + +\def\svn@gdefverb@#1{% + \endgroup + \expandafter\gdef\svn@temp{#1}% + \endgroup +} + +\def\svn@namegdefverb#1{% + \begingroup + \expandafter\def + \expandafter\svn@temp + \expandafter{\csname #1\endcsname}% + \begingroup + \if@svnmulti@verbatim + \svn@catcodes + \fi + \svn@gdefverb@ +} + +\def\@svn@scandate#1{\@svn@scandate@#1\relax} + +\def\@svn@scandate@#1-#2-#3 #4:#5:#6#7#8\relax{% + \gdef\svnfileyear{#1}% + \gdef\svnfilemonth{#2}% + \gdef\svnfileday{#3}% + \gdef\svnfilehour{#4}% + \gdef\svnfileminute{#5}% + \gdef\svnfilesecond{#6#7}% + \gdef\svnfiletimezonehour{+00}% + \gdef\svnfiletimezoneminute{00}% #8 always 'Z' for Zulu-time (UTC) +} + +\def\@svn@scanlongdate#1{\expandafter\@svn@scanlongdate@#1\relax} +\def\@svn@scanlongdate@#1-#2-#3 #4:#5:#6 #7 #8\relax{% + \gdef\svnfileyear{#1}% + \gdef\svnfilemonth{#2}% + \gdef\svnfileday{#3}% + \gdef\svnfilehour{#4}% + \gdef\svnfileminute{#5}% + \gdef\svnfilesecond{#6}% + \@svn@parsetimezone#7\relax% +} + +\def\@svn@parsetimezone#1#2#3#4#5\relax{% + \gdef\svnfiletimezonehour{#1#2#3}% + \gdef\svnfiletimezoneminute{#4#5}% +} + +\def\svnpdfdate{% + \svnyear\svnmonth\svnday + \svnhour\svnminute\svnsecond\svntimezonehour'\svntimezoneminute'% +} + +\newcommand{\svnsetmainfile}{% + \xdef\svnmainurl{\svnfileurl}% + \xdef\svnmainfilename{\svnfilefname}% +} +\AtBeginDocument{\svnsetmainfile} + +\newcommand{\svnRegisterAuthor}[2]{% + \expandafter\def\csname svn@author@#1\endcsname{#2}% +} + +\newcommand{\svnFullAuthor}{% + \@ifnextchar{*}% + {\svnFullAuthor@star}% + {\svnFullAuthor@normal}% +}% +\def\svnFullAuthor@star*#1{% + \edef\svn@temp{#1}% + \svnFullAuthor@{\svn@temp}{~(\svn@temp)}% +}% +\def\svnFullAuthor@normal#1{% + \edef\svn@temp{#1}% + \svnFullAuthor@{\svn@temp}{}% +}% +\def\svnFullAuthor@#1#2{% + \@ifundefined{svn@author@#1}% + {#1}% + {\csname svn@author@#1\endcsname #2}% +} + +\newcommand{\svnRegisterRevision}[2]{% + \expandafter\def\csname svn@revision@#1\endcsname{#2}% +} + +\newcommand{\svnFullRevision}{% + \@ifnextchar{*}% + {\svnFullRevision@star}% + {\svnFullRevision@normal}% +} +\def\svnFullRevision@star*#1{% + \edef\svn@temp{#1}% + \svnFullRevision@{\svn@temp}{~(r\svn@temp)}% +} +\def\svnFullRevision@normal#1{% + \edef\svn@temp{#1}% + \svnFullRevision@{\svn@temp}{}% +} +\def\svnFullRevision@#1#2{% + \@ifundefined{svn@revision@#1}% + {Revision #1}% + {\csname svn@revision@#1\endcsname #2}% +} + +\if@svnmulti@filehooks + +\RequirePackage{fink}[2008/02/27] +\begingroup +\def\svn@finkerror{% +\PackageError{svn-multi}{Your installed version of the 'fink' package does not +provide the needed macros. It is either too old or too new. +Try a different version, e.g. v2.1.1 from 2008/02/27}{}% +\let\svn@finkerror\relax +} +\@ifundefined{finkpath}{\svn@finkerror}{}% +\@ifundefined{finkdir}{\svn@finkerror}{}% +\@ifundefined{finkbase}{\svn@finkerror}{}% +\@ifundefined{fink@prepare}{\svn@finkerror}{}% +\@ifundefined{fink@restore}{\svn@finkerror}{}% +\@ifundefined{fnk@maindir}{\svn@finkerror}{}% +\@ifundefined{fnk@mainext}{\svn@finkerror}{}% +\endgroup + +\def\svn@removedotslash#1{% + \def\svn@removedotslash@##1##2##3\relax{% + \svn@ifequal{./}{##1##2}% + {\edef#1{##3}\def\next{\svn@removedotslash@##3\empty\empty\empty\relax}}% + {\edef#1{##1##2##3}\let\next\relax}% + \next + }% + \expandafter\svn@removedotslash@#1\empty\empty\empty\relax +} + +\let\svn@mainext\fnk@mainext +\let\svn@maindir\fnk@maindir +\svn@removedotslash\svn@maindir +\edef\svn@filebase{\jobname}% +\edef\svn@fileext{\svn@mainext}% +\edef\svn@filedir{\svn@maindir}% +\def\svn@filename{\fink@file\svn@filebase\svn@fileext}% +\def\svn@filepath{\svn@filedir\svn@filename}% + +\def\svnmulti@begininputfilehook{} +\message{Package svn-multi: patching macro '\string\fink@prepare' from the +'fink' package!}% +\let\svnmulti@fink@prepare\fink@prepare +\renewcommand*{\fink@prepare}[1]{% + \svnmulti@fink@prepare{#1}% + \if@svnmulti@groups + \svn@ifequal{\svn@filepath}{\jobname.\svn@mainext}% + {\global\let\svn@pg\svn@g}% + {\xdef\svn@pg{\svn@filedir\svn@filebase}}% + \fi + \xdef\svn@filebase{\fink@nextbase}% + \xdef\svn@fileext{\fink@nextext}% + \xdef\svn@filedir{\fink@nextdir}% + \svn@removedotslash\svn@filedir + \svnmulti@begininputfilehook +}% + +\def\svnmulti@endinputfilehook{} +\message{Package svn-multi: patching macro '\string\fink@restore' from the +'fink' package!}% +\let\svnmulti@fink@restore\fink@restore +\def\fink@restore#1{% + \svnmulti@endinputfilehook + \svnmulti@fink@restore{#1}% + \xdef\svn@filebase{\finkbase}% + \xdef\svn@fileext{\finkext}% + \xdef\svn@filedir{\finkdir}% + \svn@removedotslash\svn@filedir +}% + +\def\svnmulti@atbegininputfile{% + \g@addto@macro\svnmulti@begininputfilehook +} + +\long\def\svnmulti@atendinputfile#1{% + \begingroup + \@temptokena\expandafter{\svnmulti@endinputfilehook}% + \toks@{#1}% + \xdef\svnmulti@endinputfilehook{\the\toks@\the\@temptokena}% + \endgroup +} + +\def\svn@filestack{{}} + +\def\svn@pushfilestack{% + \xdef\svn@filestack{{% + {\svnfilerev}% + {\svnfiledate}% + {\svnfileauthor}% + {\svnfileyear}% + {\svnfilemonth}% + {\svnfileday}% + {\svnfilehour}% + {\svnfileminute}% + {\svnfilesecond}% + {\svnfiletimezonehour}% + {\svnfiletimezoneminute}% + {\svnfileurl}% + {\svnfilefname}% + {\svn@g}% + {\svn@pg}% + }\svn@filestack}% +} + +\def\svn@restorefilekws#1#2\relax{% + \svn@restorefilekws@#1\empty + \empty \empty \empty \empty + \empty \empty \empty \empty + \empty \empty \empty \empty + \svn@ifempty{#2}% + {\gdef\svn@filestack{{}}}% + {\gdef\svn@filestack{#2}}% +} +\def\svn@restorefilekws@#1#2#3#4#5#6#7#8#9{% + \gdef\svnfilerev{#1}% + \gdef\svnfiledate{#2}% + \gdef\svnfileauthor{#3}% + \gdef\svnfileyear{#4}% + \gdef\svnfilemonth{#5}% + \gdef\svnfileday{#6}% + \gdef\svnfilehour{#7}% + \gdef\svnfileminute{#8}% + \gdef\svnfilesecond{#9}% + \svn@restorefilekws@@ +} + +\def\svn@restorefilekws@@#1#2#3#4#5#6{% + \gdef\svnfiletimezonehour{#1}% + \gdef\svnfiletimezoneminute{#2}% + \gdef\svnfileurl{#3}% + \gdef\svnfilefname{#4}% + \gdef\svn@g{#5}% + \gdef\svn@pg{#6}% +} + +\def\svn@popfilestack{% + \ifx\svn@filestack\empty + \PackageWarning{svn-multi}{Underflow of file keyword stack!}% + \else + \svn@ifequal{\svn@filestack}{{}}% + {\PackageWarning{svn-multi}{Underflow of file keyword stack!}}% + {\expandafter\svn@restorefilekws\svn@filestack\relax}% + \fi +} + +\svnmulti@atbegininputfile{% + \svn@pushfilestack +} + +\svnmulti@atendinputfile{% + \svn@popfilestack +}% + +\fi + +\if@svnmulti@groups +\let\svn@glist=\empty + +\def\svngroup#1{% + \svn@ifequal{#1}{*}% + {\PackageError{svn-multi}% + {The group name '*' is invalid for '\string\svngroup'}{}{}% + }{}% + \xdef\svn@g{#1}% + \let\svn@pg\svn@g + \ifx\svn@g\empty\else% + \expandafter + \ifx\csname @svng@\svn@g @rev\endcsname\relax% + \svn@initgroup{\svn@g}% + \ifx\svn@glist\empty + \xdef\svn@glist{#1}% + \else + \xdef\svn@glist{\svn@glist,#1}% + \fi + \fi + \fi +} + +\def\thesvngroup{\svn@g} + +\def\svnsetcg#1{% + \svn@ifequal{#1}{*}% + {\def\svn@cg{\svn@g}}% + {\def\svn@cg{#1}}% +} + +\def\svncg@def#1{% + \expandafter + \def\csname svncg#1\endcsname{% + \@ifundefined{svng@\svn@cg @#1}{??}{% + \csname svng@\svn@cg @#1\endcsname}% + }% +} + +\@for\@tempa:=% + rev,author,date,year,month,day,hour,minute,second,% + timezonehour,timezoneminute,url,fname% +\do{% + \expandafter\svncg@def\expandafter{\@tempa}% +} + +\def\thesvncg{\svn@cg} + +\def\svng#1#2{% + \@ifundefined{svng@\svn@temp @#2}% + {??}% + {\csname svng@\svn@temp @#2\endcsname}% +} + +\def\svn@addfiletogroup#1#2{% + \expandafter + \ifx\csname @svng@#2@files@#1\endcsname\relax% + \expandafter\gdef\csname @svng@#2@files@#1\endcsname{1}% + % + \@ifundefined{@svng@#2@files}% + {\expandafter\xdef\csname @svng@#2@files\endcsname{#1}}% + {\expandafter\xdef\csname @svng@#2@files\endcsname{% + \csname @svng@#2@files\endcsname,#1% + }% + }% + \fi +} + +\svnmulti@atbegininputfile{% + \svn@ifequal{\svn@filepath}{\svn@maindir\jobname.\svn@mainext}% + {}% + {\svn@initfile}% + \svn@ifequal{\svn@fileext}{\svn@mainext}% + {\svn@addfiletogroup{\svn@filedir\svn@filebase}{\svn@pg}}{}% + \svn@ifequal{\svn@fileext}{sty}% + {\svn@addfiletogroup{\svn@filedir\svn@filebase}{\svn@pg}}{}% + \svn@ifequal{\svn@fileext}{cls}% + {\svn@addfiletogroup{\svn@filedir\svn@filebase}{\svn@pg}}{}% + \svn@addfiletogroup{\svn@filepath}{\svn@filedir\svn@filebase}% +} + +\def\svn@writegroup#1{% + \def\svn@writekw##1{% + \immediate\write\svn@write{% + \noexpand\@namedef{svng@#1@##1}{\csname @svng@#1@##1\endcsname}% + }% + }% + \svn@writekw{rev}% + \svn@writekw{date}% + \svn@writekw{author}% + \svn@writekw{year}% + \svn@writekw{month}% + \svn@writekw{day}% + \svn@writekw{hour}% + \svn@writekw{minute}% + \svn@writekw{second}% + \svn@writekw{timezonehour}% + \svn@writekw{timezoneminute}% + \@ifundefined{@svng@#1@files}{}{% + \immediate\write\svn@write{% + \noexpand + \svn@namegdefverb{svng@#1@files}{\csname @svng@#1@files\endcsname}% + }% + }% + \immediate\write\svn@write{% + \noexpand + \svn@namegdefverb{svng@#1@url}{\csname @svng@#1@url\endcsname}^^J% + \noexpand + \svn@namegdefverb{svng@#1@fname}{\csname @svng@#1@fname\endcsname}^^J% + }% +} +\def\svn@writeallgroups#1{% + \begingroup + \ifx\relax#1\relax\else + \@for\svn@temp:=#1\do{% + \svn@ifvalidrev{@svng@\svn@temp @rev}% + {% + \expandafter + \svn@cleanfilelist\csname @svng@\svn@temp @files\endcsname + \svn@writegroup{\svn@temp}% + \@ifundefined{@svng@\svn@temp @files}{}% + {\expandafter\svn@writeallgroups + \csname @svng@\svn@temp @files\endcsname + }% + }{}% + }% + \fi + \endgroup +} + +\def\svn@updategroup#1{% + \@ifundefined{@svng@#1@rev}% + {\svn@initgroup{#1}}% + {}% + \expandafter + \ifnum\csname @svng@#1@rev\endcsname<\svnfilerev + \svn@gkwset{#1}{rev}{\svnfilerev}% + \svn@gkwset{#1}{date}{\svnfiledate}% + \svn@gkwset{#1}{author}{\svnfileauthor}% + \svn@gkwset{#1}{year}{\svnfileyear}% + \svn@gkwset{#1}{month}{\svnfilemonth}% + \svn@gkwset{#1}{day}{\svnfileday}% + \svn@gkwset{#1}{hour}{\svnfilehour}% + \svn@gkwset{#1}{minute}{\svnfileminute}% + \svn@gkwset{#1}{second}{\svnfilesecond}% + \svn@gkwset{#1}{timezonehour}{\svnfiletimezonehour}% + \svn@gkwset{#1}{timezoneminute}{\svnfiletimezoneminute}% + \svn@gkwset{#1}{url}{\svnfileurl}% + \svn@gkwset{#1}{fname}{\svnfilefname}% + \fi +} + +\def\svn@definegroup#1{% + \svn@gkwdef{#1}{rev}% + \svn@gkwdef{#1}{date}% + \svn@gkwdef{#1}{author}% + \svn@gkwdef{#1}{year}% + \svn@gkwdef{#1}{month}% + \svn@gkwdef{#1}{day}% + \svn@gkwdef{#1}{hour}% + \svn@gkwdef{#1}{minute}% + \svn@gkwdef{#1}{second}% + \svn@gkwdef{#1}{timezonehour}% + \svn@gkwdef{#1}{timezoneminute}% + \svn@gkwdef{#1}{url}% + \svn@gkwdef{#1}{fname}% +} + +\def\svn@initgroup#1{% + \svn@gkwset{#1}{rev}{-1}% + \svn@gkwset{#1}{date}{}% + \svn@gkwset{#1}{author}{}% + \svn@gkwset{#1}{year}{0000}% + \svn@gkwset{#1}{month}{00}% + \svn@gkwset{#1}{day}{00}% + \svn@gkwset{#1}{hour}{00}% + \svn@gkwset{#1}{minute}{00}% + \svn@gkwset{#1}{second}{00}% + \svn@gkwset{#1}{timezonehour}{+00}% + \svn@gkwset{#1}{timezoneminute}{00}% + \svn@gkwset{#1}{url}{}% + \svn@gkwset{#1}{fname}{}% +} + +\def\svn@gkwset#1#2#3{% + \expandafter + \xdef\csname @svng@#1@#2\endcsname{#3}% +} + +\def\svn@gkwdef#1#2{% + \expandafter + \xdef\csname svng@#1@#2\endcsname{\csname @svng@#1@#2\endcsname}% +} + +\def\svn@cleanfilelist#1{ + \begingroup + \def\svn@tmplist{}% + \ifx\relax#1\relax\else + \@for\svn@temp:=#1\do{% + \expandafter\svn@ifvalidrev + \expandafter{@svng@\svn@temp @rev}% + {\edef\svn@tmplist{\svn@tmplist,\svn@temp}}% + {}% + }% + \xdef#1{\expandafter\@gobble\svn@tmplist\empty}% + \fi + \endgroup +} + +\fi + + +\newif\ifsvnsubgroups +\svnsubgroupsfalse + +\if@svnmulti@subgroups +\svnsubgroupstrue + +\def\svnsubgroup{% + \begingroup + \svn@removedotslash\svn@filedir + \svn@subgroup{\svn@filedir\svn@filebase}% + \svn@subgroup{\svn@filepath}% + \endgroup +} + +\def\svn@subgroup#1{% + \ifnum\svnfilerev>-1\relax + \expandafter\ifx\csname svn@g@#1\endcsname\relax% + \expandafter\gdef\csname svn@g@#1\endcsname{1}% + \svn@updategroup{#1}% + \fi + \fi +} + +\def\svnignoreextensions#1{% + \@for\svn@temp:=#1\do{% + \expandafter\def\csname svn@ignore@ext@\svn@temp\endcsname{}% + }% +} + +\def\svnconsiderextensions#1{% + \@for\svn@temp:=#1\do{% + \expandafter\let\csname svn@ignore@ext@\svn@temp\endcsname\relax% + }% +} + +\svnignoreextensions{aux,bbl,cfg,cls,fd,enc,fls,glo,idx,ilg,ind,ist,% +lof,log,lot,out,sty,svn,svt,svx,toc} + +\svnmulti@atendinputfile{% + \if@svnmulti@subgroups + \ifsvnsubgroups + \expandafter\ifx\csname svn@ignore@ext@\svn@fileext\endcsname\relax + \svnsubgroup + \fi + \fi + \fi +} + +\AtBeginDocument{% + \if@svnmulti@subgroups + \ifsvnsubgroups + \svn@addfiletogroup{\jobname .\svn@mainext}{\jobname}% + \svnsubgroup + \fi + \fi +} + +\fi + +\if@svnmulti@external + +\if@svnmulti@groups +\def\svnexternalgroup#1{% + \svn@ifequal{#1}{*}% + {\def\svn@externalgroup{#1}}% + {\def\svn@externalgroup{\svn@g}}% +} +\def\svn@externalgroup{\svn@g} +\else +\def\svn@externalgroup{} +\fi + +\newcommand*\svnexternal[2][]{% + \if@filesw + \svn@checkwrite + \begingroup + \svn@ifequal{#1}{*}% + {\def\svn@temp{\svn@g}}% + {\svn@ifempty{#1}% + {\def\svn@temp{\svn@externalgroup}}% + {\def\svn@temp{#1}}% + }% + \immediate\write\svn@write{% + \noexpand\@svnexternal[\svn@temp]{\svn@filepath}{#2}% + }% + \endgroup + \fi + \svn@inputsvx{\svn@filedir\svn@filebase}% +} + +\def\svnexternalpath#1{% + \if@filesw + \svn@checkwrite + \immediate\write\svn@write{% + \noexpand\@svnexternalpath{#1}% + }% + \fi +} + +\newcommand*\@svnexternal[3][]{} +\def\@svnexternalpath#1{} + +\newcommand*\svnexternalfile[1][\svn@filedir\svn@filebase]{% + \begingroup % TODO: maybe use \svn@catcodes + \catcode`\_=12 + \catcode`\&=12 + \catcode`\^=12 + \catcode`\$=12 + \catcode`\#=12 + \svn@externalfile{#1}% +} + +\def\svn@externalfile#1#2{% + \endgroup + \if@svnmulti@subgroups + \ifsvnsubgroups + \svn@ifequal{#1}{\svn@rg}% + {\svn@addfiletogroup{#2}{\svn@filedir\svn@filebase}}% + {\svn@addfiletogroup{#2}{#1}}% + \svn@subgroup{#2}% + \fi + \fi +} + +\else + \def\svnexternalfile#1{}% +\fi + +\if@svnmulti@autoload + +\svnmulti@atbegininputfile{% + \svn@ifequal{\svn@fileext}{tex}% + {\svn@inputsvx{\svn@filedir\svn@filebase}}% + {}% +} + +%%\AtEndOfPackage{% +\AtBeginDocument{% + \svn@inputsvx{\jobname}% +} + +\fi + + +\if@svnmulti@anygraphic + +\def\svngraphicsgroup#1{% + \svn@ifequal{#1}{*}% + {\def\svn@graphicsgroup{\svn@g}}% + {\def\svn@graphicsgroup{#1}}% +} +\def\svn@graphicsgroup{\svn@externalgroup} + +\def\svnignoregraphic#1{% + \expandafter\def\csname svn@ignoregraphic@#1\endcsname{}% +} + +\def\svnconsidergraphic#1{% + \expandafter\let\csname svn@ignoregraphic@#1\endcsname\relax% +} + +\fi + +\if@svnmulti@graphics +\RequirePackage{graphics}[2006/02/20] + +\message{Package svn-multi: patching macro '\string\Gin@setfile' from the +'graphics' package!}% +\let\svnmulti@Gin@setfile\Gin@setfile +\renewcommand*{\Gin@setfile}[3]{% + \expandafter\ifx\csname svn@ignoregraphic@#3\endcsname\relax% + \svnexternal[\svn@graphicsgroup]{{#3}}% + \fi + \svnmulti@Gin@setfile{#1}{#2}{#3}% +} + +\fi + +\if@svnmulti@pgfimages +\RequirePackage{pgf}[2008/01/15] + +\message{Package svn-multi: patching macro '\string\pgf@declareimage' and will +patch generated macros '\string\pgf@image@<name>!' from the 'pgf' package!}% +\let\svnmulti@pgf@declareimage\pgf@declareimage +\renewcommand*{\pgf@declareimage}[3][]{% + \svnmulti@pgf@declareimage[#1]{#2}{#3}% + \ifx\pgf@filename\empty\else + \expandafter\ifx\csname svn@ignoregraphic@\pgf@filename\endcsname\relax% + \expandafter\global\expandafter% + \let\csname svnmulti@pgf@image@#2!\endcsname=\pgf@image% + \expandafter\xdef\csname pgf@image@#2!\endcsname{% + \noexpand\svnexternal[\noexpand\svn@graphicsgroup]{{\pgf@filename}}% + \csname svnmulti@pgf@image@#2!\endcsname + }% + \fi + \fi +} +\fi +\if@svnmulti@table +\ifx\tableofcontents\relax\else +\def\svnrevisionsname{Table of Revisions}% +\def\svn@svt{svt} + +\AtBeginDocument{% +\ifx\chapter\@undefined + +%% Adapted from the \tableofcontents macro, LaTeX `article' class [2005/09/16] +\newcommand\tableofrevisions{% + \section*{\svnrevisionsname + \@mkboth{\MakeUppercase\svnrevisionsname}{\MakeUppercase\svnrevisionsname}}% + \svn@input{\jobname .\svn@svt}% +} + +\else + +%% Adapted from the \tableofcontents macro, LaTeX `book' class [2005/09/16] +\newcommand\tableofrevisions{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\svnrevisionsname + \@mkboth{\MakeUppercase\svnrevisionsname}{\MakeUppercase\svnrevisionsname}}% + \svn@input{\jobname .\svn@svt}% + \if@restonecol\twocolumn\fi +} + +\fi +} +\fi % defined \tableofcontents + +\def\svn@writerow#1#2#3{% + \immediate\write\svn@svtwrite{% + \expandafter\noexpand\csname svn#1row\endcsname + \expandafter\noexpand\csname svntab#1\endcsname{#2}{#3}\space + \@ampersamchar\space + \svn@tabcell{rev}\space\@ampersamchar\space + \svn@tabcell{author}\space\@ampersamchar\space + \noexpand\svntabdate% + \svn@tabcellarg{year}% + \svn@tabcellarg{month}% + \svn@tabcellarg{day}% + \svn@tabcellarg{hour}% + \svn@tabcellarg{minute}% + \svn@tabcellarg{second}% + \svn@tabcellarg{timezonehour}% + \svn@tabcellarg{timezoneminute}% + \space\@backslashchar\@backslashchar + \expandafter\noexpand\csname endsvn#1row\endcsname + }% +} + +\def\svn@writegrouprow#1{% + \begingroup + \def\svn@tabcellarg##1{{\csname @svng@#1@##1\endcsname}}% + \def\svn@tabcell##1{\expandafter\noexpand\csname svntab##1\endcsname% + \svn@tabcellarg{##1}% + }% + \svn@writerow{group}{#1}{}% + \endgroup +} + +\def\svn@writesubgrouprow#1#2{% + \begingroup + \def\svn@tabcellarg##1{{\csname @svng@#2@##1\endcsname}}% + \def\svn@tabcell##1{\expandafter\noexpand\csname svntab##1\endcsname% + \svn@tabcellarg{##1}% + }% + \svn@writerow{subgroup}{#1}{#2}% + \endgroup +} + +\def\svn@writefilerow#1#2{% + \begingroup + \def\svn@tabcellarg##1{{\csname @svng@#2@##1\endcsname}}% + \def\svn@tabcell##1{\expandafter\noexpand\csname svntab##1\endcsname% + \svn@tabcellarg{##1}% + }% + \svn@writerow{file}{#1}{#2}% + \endgroup +} + +\def\svn@writeglobalrow{% + \begingroup + \def\svn@tabcellarg##1{{\csname @svn@##1\endcsname}}% + \def\svn@tabcell##1{\expandafter\noexpand\csname svntab##1\endcsname% + \svn@tabcellarg{##1}% + }% + \svn@writerow{global}{}{}% + \endgroup +} + +\def\svntable{% + \begin{tabular}{p{0.425\textwidth}rp{0.25\textwidth}p{0.225\textwidth}}% + \hline +} +\def\endsvntable{\hline\end{tabular}} + +\def\svntablehead{% + Name & Rev & Last Author & Last Changed At \\\hline +} +\def\svntablefoot{} + +\def\svnbeforetable{} +\def\svnaftertable{\clearpage} + +\def\svnglobalrow{} +\def\endsvnglobalrow{} +\def\svngrouprow{} +\def\endsvngrouprow{} +\def\svnsubgrouprow{} +\def\endsvnsubgrouprow{} +\def\svnfilerow{} +\def\endsvnfilerow{} + +\def\svntabglobal{Document} +\def\svntabgroup#1{Group `#1'} + +\def\svntabsubgroup#1{% + \raggedright + \addtolength{\leftskip}{#1\medskipamount}% + \begingroup + \catcode`\_=12 + \catcode`\&=12 + \catcode`\^=12 + \catcode`\$=12 + \catcode`\#=12 + \svn@tabsubgroup +} +\def\svn@tabsubgroup#1{\endgroup Subgroup `\texttt{\small #1}'} + +\def\svntabfile#1{% + \raggedright + \addtolength{\leftskip}{#1\medskipamount}% + \begingroup + \catcode`\_=12 + \catcode`\&=12 + \catcode`\^=12 + \catcode`\$=12 + \catcode`\#=12 + \svn@tabfile +} +\def\svn@tabfile#1{\endgroup File `\texttt{\small #1}'} + +\def\svntabrev{} +\def\svntabauthor#1{\svnFullAuthor{#1}} +\def\svntabdate#1#2#3#4#5#6#7#8{% + #1-#2-#3 #4:#5:#6% #7#8% +} + +\fi + +\newcommand{\svn}{\@ifnextchar{*}{\svn@s}{\svn@n}} +\def\svn@n#1{\@svn@n#1} +\def\svn@s*#1{\@svn@s#1} +\def\@svn@n$#1${#1} +\def\@svn@s$#1 ${#1} + +%% Adapted from the \url macro of the `hyperref` package. +\DeclareRobustCommand*{\svnnolinkurl}{% + \@ifundefined{hyper@normalise}% + {\PackageWarning{svn-multi}{Package hyperref is needed for \noexpand + \svnnolinkurl.}}% + {\hyper@normalise\svnnolinkurl@}% +}% +\def\svnnolinkurl@#1{\Hurl{#1}}% + +\def\svn@getfilename#1{% + \begingroup + \edef\svn@temp{#1}% + \expandafter\@svn@getfilename\svn@temp/{}\relax +}% + +\def\@svn@getfilename#1/#2\relax{% + \svn@ifempty{#2}% + {\endgroup\gdef\svnfilefname{#1}}% + {\@svn@getfilename#2\relax}% +}% + +\@input{\jobname .svn} + +\def\svn@checkwrite{% + \@ifundefined{svn@write}{% + \newwrite\svn@write + \immediate\openout\svn@write=\jobname.svn\relax% + \immediate\write\svn@write{\@percentchar\space SVN Keyword cache}% + %\immediate\write\svn@write{\noexpand\makeatletter}% + }{}% + \let\svn@checkwrite=\relax +} +{\catcode`\&=12 +\gdef\@ampersamchar{&} +} +\def\svn@writesvn{% + \if@svnmulti@groups + \fi + \svn@checkwrite + \immediate\write\svn@write{^^J% + \@percentchar\space Global values:^^J% + \noexpand\def\noexpand\svnrev{\@svn@rev}^^J% + \noexpand\def\noexpand\svndate{\@svn@date}^^J% + \noexpand\def\noexpand\svnauthor{\@svn@author}^^J% + \noexpand\def\noexpand\svnyear{\@svn@year}^^J% + \noexpand\def\noexpand\svnmonth{\@svn@month}^^J% + \noexpand\def\noexpand\svnday{\@svn@day}^^J% + \noexpand\def\noexpand\svnhour{\@svn@hour}^^J% + \noexpand\def\noexpand\svnminute{\@svn@minute}^^J% + \noexpand\def\noexpand\svnsecond{\@svn@second}^^J% + \noexpand\def\noexpand\svntimezonehour{\@svn@timezonehour}^^J% + \noexpand\def\noexpand\svntimezoneminute{\@svn@timezoneminute}^^J% + \noexpand\svn@gdefverb\noexpand\svnurl{\@svn@url}^^J% + \noexpand\svn@gdefverb\noexpand\svnfname{\@svn@fname}^^J% + }% + \if@svnmulti@groups + \svn@cleanfilelist\@svng@@files + \immediate\write\svn@write{% + \noexpand\def\noexpand\svng@@files{\@svng@@files}^^J% + }% + \svn@writeallgroups\@svng@@files + \ifx\svn@glist\empty\else + \begingroup + \immediate\write\svn@write{^^J% + \@percentchar\space SVN File Groups: \svn@glist + }% + \svn@writeallgroups\svn@glist + \endgroup + \fi + \else + \immediate\write\svn@write{^^J}% + \fi + \immediate\closeout\svn@write% +} + +\def\svn@writegroupfiles#1{% + \begingroup + \advance\svn@grouplevel by 1\relax + \expandafter\let + \expandafter\svn@files\csname @svng@#1@files\endcsname + \ifx\svn@files\relax\else + \svn@cleanfilelist\svn@files + \@for\svn@file:=\svn@files\do{% + \svn@ifvalidrev{@svng@\svn@file @rev}% + {% + \@ifundefined{@svng@\svn@file @files}% + {\svn@writefilerow{\the\svn@grouplevel}{\svn@file}}% + {\svn@ifequal{\csname @svng@\svn@file @files\endcsname}{\svn@file.tex}% + {\svn@writefilerow{\the\svn@grouplevel}{\svn@file.tex}}% + {% + \svn@writesubgrouprow{\the\svn@grouplevel}{\svn@file}% + \svn@writegroupfiles{\svn@file}% + }% + }% + }{}% + }% + \fi + \endgroup +}% + +\def\svn@writesvt{% + \if@svnmulti@table + \newwrite\svn@svtwrite + \immediate\openout\svn@svtwrite=\jobname.\svn@svt\relax + \@onelevel@sanitize\svntable% + \immediate\write\svn@svtwrite{% + \noexpand\svnbeforetable^^J% + \svntable + \noexpand\svntablehead^^J% + }% + \let\svn@grouplevel\@tempcnta + \svn@grouplevel=0\relax + \svn@writeglobalrow{}% + \svn@writegroupfiles{}% + \@for\svn@g:=\svn@glist\do{% + \@ifundefined{@svng@\svn@g @rev}{}% + {% + \expandafter + \ifnum\csname @svng@\svn@g @rev\endcsname>0\relax + \svn@writegrouprow{\svn@g}% + \svn@writegroupfiles{\svn@g}% + \fi + }% + }% + + \@onelevel@sanitize\endsvntable% + \immediate\write\svn@svtwrite{% + \noexpand\svntablefoot^^J% + \endsvntable^^J% + \noexpand\svnaftertable + }% + \immediate\closeout\svn@svtwrite% + \fi +} + +\AtEndDocument{% + \if@filesw + \ifx\@svn@rev\empty\else + \ifnum\@svn@rev<1\else + \svn@writesvn + \svn@writesvt + \fi + \fi + \fi +} +\endinput +%% +%% End of file `svn-multi.sty'. diff --git a/Master/texmf-dist/tex/latex/svn-multi/svnkw.sty b/Master/texmf-dist/tex/latex/svn-multi/svnkw.sty new file mode 100644 index 00000000000..190ab159052 --- /dev/null +++ b/Master/texmf-dist/tex/latex/svn-multi/svnkw.sty @@ -0,0 +1,44 @@ +%% +%% This is file `svnkw.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% svn-multi.dtx (with options: `wrapper') +%% +%% This is a generated file. +%% +%% Copyright (C) 2006-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.3 +%% 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.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 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-multi.dtx, svn-multi-pl.dtx, svn-multi.ins +%% and the derived files svn-multi.sty, svnkw.sty and svn-multi.pl. +%% +\def\filedate$#1: #2 #3 #4-#5-#6 #7 ${% + \year#4\month#5\day#6\relax + \def\filedate{#4/#5/#6}% + \def\filerev{#3}% +} +\filedate$Id: svn-multi.dtx 621 2009-03-23 12:26:36Z martin $ +\def\fileversion{v2.0} +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{svnkw} +[\filedate\space\fileversion\space Backward compatibility wrapper for svn-multi] +\PackageWarning{svnkw}{The package 'svnkw' got renamed to 'svn-multi' +and is now only a backward compatibility wrapper which loads 'svn-multi'. +Please adjust your document preamble to use the new name.} +\RequirePackage{svn-multi}[\filedate] +\endinput +%% +%% End of file `svnkw.sty'. |