[Distr-commits] r628 - branches/distr-2.2/pkg/SweaveListingUtils/inst/doc branches/distr-2.2/pkg/distr/inst/doc branches/distr-2.2/pkg/distrDoc/inst/doc branches/distr-2.3/pkg/SweaveListingUtils/inst/doc branches/distr-2.3/pkg/distr/inst/doc branches/distr-2.3/pkg/distrDoc/inst/doc pkg/SweaveListingUtils/inst/doc pkg/distr/inst/doc pkg/distrDoc/inst/doc
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Mon Nov 2 18:29:57 CET 2009
Author: ruckdeschel
Date: 2009-11-02 18:29:56 +0100 (Mon, 02 Nov 2009)
New Revision: 628
Added:
branches/distr-2.2/pkg/SweaveListingUtils/inst/doc/svn-multi.sty
branches/distr-2.2/pkg/SweaveListingUtils/inst/doc/svnkw.sty
branches/distr-2.2/pkg/distr/inst/doc/svn-multi.sty
branches/distr-2.2/pkg/distr/inst/doc/svnkw.sty
branches/distr-2.2/pkg/distrDoc/inst/doc/svn-multi.sty
branches/distr-2.2/pkg/distrDoc/inst/doc/svnkw.sty
branches/distr-2.3/pkg/SweaveListingUtils/inst/doc/svn-multi.sty
branches/distr-2.3/pkg/SweaveListingUtils/inst/doc/svnkw.sty
branches/distr-2.3/pkg/distr/inst/doc/svn-multi.sty
branches/distr-2.3/pkg/distr/inst/doc/svnkw.sty
branches/distr-2.3/pkg/distrDoc/inst/doc/svn-multi.sty
branches/distr-2.3/pkg/distrDoc/inst/doc/svnkw.sty
pkg/SweaveListingUtils/inst/doc/svn-multi.sty
pkg/SweaveListingUtils/inst/doc/svnkw.sty
pkg/distr/inst/doc/svn-multi.sty
pkg/distr/inst/doc/svnkw.sty
pkg/distrDoc/inst/doc/svn-multi.sty
pkg/distrDoc/inst/doc/svnkw.sty
Log:
re-uploaded svn-multi.sty and svnkw.sty after error report by Jan de Leeuw.
Added: branches/distr-2.2/pkg/SweaveListingUtils/inst/doc/svn-multi.sty
===================================================================
--- branches/distr-2.2/pkg/SweaveListingUtils/inst/doc/svn-multi.sty (rev 0)
+++ branches/distr-2.2/pkg/SweaveListingUtils/inst/doc/svn-multi.sty 2009-11-02 17:29:56 UTC (rev 628)
@@ -0,0 +1,1752 @@
+%%
+%% 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 at 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.
+%%
+\makeatletter
+\def\svnmulti at version {v2.1}
+\def\svnmulti at rev $#1: #2 ${\def\svnmulti at rev{#2}}
+\def\svnmulti at date $#1: #2-#3-#4 #5 ${\def\svnmulti at date{#2/#3/#4}}
+\svnmulti at rev $Rev: 691 $\relax
+\svnmulti at date $Date: 2009-03-27 21:37:56 +0000 (Fri, 27 Mar 2009) $\relax
+
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{svn-multi}
+ [\svnmulti at date\space\svnmulti at version\space SVN Keywords for multi-file LaTeX documents]
+
+\RequirePackage{kvoptions}
+
+\SetupKeyvalOptions{%
+ family = svn-multi,
+ prefix = @svnmulti@
+}
+\newif\if at svnmulti@anygraphic
+\newif\if at svnmulti@autoload
+\newif\if at svnmulti@autokw
+\newif\if at svnmulti@autokwall
+
+\DeclareVoidOption{old}{%
+ \@svnmulti at verbatimtrue
+ \@svnmulti at groupsfalse
+ \@svnmulti at externalfalse
+ \@svnmulti at graphicsfalse
+ \@svnmulti at pgfimagesfalse
+ \@svnmulti at autoloadfalse
+ \@svnmulti at tablefalse
+ \@svnmulti at filehooksfalse
+ \@svnmulti at subgroupsfalse
+}
+\DeclareVoidOption{all}{%
+ \@svnmulti at verbatimtrue
+ \@svnmulti at groupstrue
+ \@svnmulti at externaltrue
+ \@svnmulti at graphicstrue
+ \@svnmulti at pgfimagestrue
+ \@svnmulti at autoloadtrue
+ \@svnmulti at tabletrue
+ \@svnmulti at filehookstrue
+ \@svnmulti at 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}
+\DeclareStringOption[false]{autokw}[all]
+
+\ExecuteOptions{old}
+\ProcessKeyvalOptions{svn-multi}
+\def\svn at depoption#1{%
+ \csname if at svnmulti@#1\endcsname\else
+ \message{svn-multi: Required option '#1' enabled.}%
+ \csname @svnmulti@#1true\endcsname
+ \fi
+}
+
+\if at svnmulti@groups
+ \svn at depoption{filehooks}
+\fi
+\if at svnmulti@external
+ \svn at depoption{filehooks}
+\fi
+\if at svnmulti@subgroups
+ \svn at depoption{groups}
+ \svn at depoption{filehooks}
+\fi
+\if at svnmulti@graphics
+ \svn at depoption{external}
+ \svn at depoption{autoload}
+ \svn at depoption{filehooks}
+\fi
+\if at svnmulti@pgfimages
+ \svn at depoption{external}
+ \svn at depoption{autoload}
+ \svn at depoption{filehooks}
+\fi
+\if at svnmulti@autoload
+ \svn at depoption{external}
+ \svn at depoption{filehooks}
+\fi
+\if at svnmulti@table
+ \svn at depoption{groups}
+ \svn at depoption{filehooks}
+\fi
+\ifx\@svnmulti at autoload\@undefined
+\else
+\ifx\@svnmulti at autoload\empty
+\else
+\def\svn at temp{true}
+\ifx\@svnmulti at autoload\svn at temp
+ \@svnmulti at autoloadtrue
+ \svn at depoption{external}
+ \svn at depoption{filehooks}
+\else
+\def\svn at temp{false}
+\ifx\@svnmulti at autoload\svn at temp
+ \if at svnmulti@autoload
+ \PackageWarning{svn-multi}{Option 'autoload' disabled.}
+ \fi
+ \@svnmulti at autoloadfalse
+\else
+ \PackageError{svn-multi}%
+ {Invalid value for 'autoload' option: '\@svnmulti at autoload'^^J%
+ ! Only 'true','false' or empty (='true') are allowed!}
+\fi\fi\fi\fi
+
+\def\svn at temp{true}
+\ifx\@svnmulti at autokw\svn at temp
+ \@svnmulti at autokwtrue
+ \@svnmulti at autokwalltrue
+ \svn at depoption{filehooks}
+\fi
+\def\svn at temp{all}
+\ifx\@svnmulti at autokw\svn at temp
+ \@svnmulti at autokwtrue
+ \@svnmulti at autokwalltrue
+ \svn at depoption{filehooks}
+\fi
+\def\svn at temp{ext}
+\ifx\@svnmulti at autokw\svn at temp
+ \@svnmulti at autokwtrue
+ \@svnmulti at autokwallfalse
+\fi
+\def\svn at temp{false}
+\ifx\@svnmulti at autokw\svn at temp
+ \@svnmulti at autokwfalse
+ \@svnmulti at autokwallfalse
+\fi
+
+\if at svnmulti@graphics
+ \@svnmulti at anygraphictrue
+\fi
+\if at svnmulti@pgfimages
+ \@svnmulti at anygraphictrue
+\fi
+
+\def\svn at ifempty#1{%
+ \begingroup
+ \edef\svn at temp{#1}%
+ \ifx\svn at temp\empty
+ \endgroup
+ \expandafter
+ \@firstoftwo
+ \else
+ \endgroup
+ \expandafter
+ \@secondoftwo
+ \fi
+}
+
+\def\svn at ifequal#1#2{%
+ \begingroup
+ \edef\svn at stringa{#1}%
+ \edef\svn at stringb{#2}%
+ \ifx\svn at stringa\svn at stringb
+ \endgroup
+ \expandafter
+ \@firstoftwo
+ \else
+ \endgroup
+ \expandafter
+ \@secondoftwo
+ \fi
+}
+
+\def\svn at ifvalidrev#1{%
+ \begingroup
+ \@ifundefined{#1}%
+ {\def\svn at temp{-1}}%
+ {\expandafter\edef
+ \expandafter\svn at temp\expandafter{\csname #1\endcsname}}%
+ \ifnum\svn at temp>-1\relax
+ \endgroup
+ \expandafter
+ \@firstoftwo
+ \else
+ \endgroup
+ \expandafter
+ \@secondoftwo
+ \fi
+}
+
+\def\svn at ifeof#1{%
+ \ifeof#1%
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+
+\def\svn at ifonlyone#1{%
+ \expandafter\expandafter\expandafter
+ \svn@@ifonlyone\csname @svng@#1 at files\endcsname,\relax
+}
+
+\def\svn@@ifonlyone#1,#2\relax{%
+ \svn at ifempty{#2}
+}
+
+\def\svn at input#1{%
+ \begingroup
+ \let\svn at rg\svn at g
+ \IfFileExists{#1}{\@@input #1\relax}{}%
+ \global\let\svn at g\svn at rg
+ \endgroup
+}
+
+\def\svn at inputsvx#1{%
+ \svn at pushfilestack
+ \svn at input{#1.svx}%
+ \svn at popfilestack
+}
+
+\def\svnrev{-1} \def\@svn at rev{-1}
+\def\svndate{} \def\@svn at date{}
+\def\svnauthor{} \def\@svn at author{}
+\def\svnyear{0000} \def\@svn at year{0000}
+\def\svnmonth{00} \def\@svn at month{00}
+\def\svnday{00} \def\@svn at day{00}
+\def\svnhour{00} \def\@svn at hour{00}
+\def\svnminute{00} \def\@svn at minute{00}
+\def\svnsecond{00} \def\@svn at second{00}
+\def\svntimezonehour{+00} \def\@svn at timezonehour{+00}
+\def\svntimezoneminute{00} \def\@svn at timezoneminute{00}
+\def\svnmainurl{NOT SET} \def\svnmainfilename{NOT SET}
+\def\svnurl{} \def\svnfname{}
+\def\svn at temp{}
+
+\def\svn at pg{} \def\svn at g{} \def\svn at cg{\svn at g} \def\svn at rg{\svn at pg}
+\let\@svng@@files\relax
+
+\def\svn at 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{}%
+ \gdef\svnfiledir{}%
+}
+\svn at initfile
+
+
+\begingroup
+\@makeother\^^L
+\if at svnmulti@autokw
+\gdef\svne at ff{^^L}
+\fi
+\endgroup
+
+\if at svnmulti@autokw
+\newread\svne at read
+
+\newcommand*{\svne at catcodes}{%
+ \let\do\@makeother
+ \endlinechar=-1
+ \dospecials
+ \do\- \do\: \do\. \do\^^L
+}
+
+\def\svne at readline#1{%
+ \ifeof\svne at read
+ \def#1{}%
+ \else
+ \read\svne at read to #1\relax
+ \fi
+}
+
+\def\svne at gobblerest{%
+ \ifeof\svne at read
+ \let\next\relax
+ \else
+ \read\svne at read to \svn at temp
+ \ifx\svn at temp\svne at ff
+ \let\next\relax
+ \else
+ \let\next\svne at gobblerest
+ \fi
+ \fi
+ \next
+}
+
+\def\svne at endread{%
+ \closein\svne at read
+}
+
+\newcommand*{\svne at parseentriesfile}[1]{%
+ \begingroup
+ \let\next\relax
+ \openin\svne at read=#1format\relax
+ \ifeof\svne at read\else
+ \svne at readline\svne at version
+ \closein\svne at read
+ \ifnum\svne at version>7\relax
+ \openin\svne at read=#1entries\relax
+ \ifeof\svne at read\else
+ \svne at catcodes
+ \svne at readline\svne at version
+ \ifnum\svne at version>7\relax
+ \def\next{\svne at parsedirentry%
+ \svne at parseentries}
+ \else
+ \closein\svne at read
+ \fi
+ \fi
+ \fi
+ \fi
+ \next
+ \endgroup
+}
+
+\newcommand*{\svne at parsedirentry}{%
+ \svne at readline\svne at name
+ \svne at readline\svne at kind
+ \svn at ifempty{\svne at name}%
+ {\svn at ifequal{\svne at kind}{dir}%
+ {%
+ {\svne at readline\svn at temp}%
+ \svne at readline\svne at baseurl
+ \svne at gobblerest
+ }{}%
+ }{}%
+}
+
+\begingroup
+
+\@makeother\-
+\@makeother\:
+\@makeother\.
+
+\gdef\svne at scandate#1{%
+ \expandafter\svne at scandate@#1\relax
+ 0000-00-00T00:00:00.00000Z\relax\relax
+}
+
+\gdef\svne at scandate@#1-#2-#3T#4:#5:#6.#7\relax#8\relax{%
+ \gdef\svnfileyear{#1}%
+ \gdef\svnfilemonth{#2}%
+ \gdef\svnfileday{#3}%
+ \gdef\svnfilehour{#4}%
+ \gdef\svnfileminute{#5}%
+ \gdef\svnfilesecond{#6}%
+ \gdef\svnfiletimezonehour{+00}%
+ \gdef\svnfiletimezoneminute{00}%
+ \gdef\svnfiledate{#1-#2-#3 #4:#5:#6Z}%
+ \def\svne at date{#1-#2-#3 #4:#5:#6Z}%
+}
+
+\endgroup
+
+\newcommand*{\svne at parseentries}{%
+ \svn at ifeof{\svne at read}%
+ {}%
+ {%
+ \svne at readline\svne at name
+ \@onelevel at sanitize\svne at name
+ \svn at ifeof{\svne at read}%
+ {}%
+ {%
+ \svne at readline\svne at kind
+ \svn at ifequal{\svne at kind}{file}%
+ {%
+ \svne at readline\svn at temp
+ \svne at readline\svn at temp
+ \svne at readline\svn at temp
+ \svne at readline\svn at temp
+ \svne at readline\svn at temp
+ \svne at readline\svn at temp
+ \svne at readline\svne at date
+ \svne at readline\svne at rev
+ \svne at readline\svne at author
+ %\@onelevel at sanitize\svne at date
+ \svne at scandate{\svne at date}%
+ \edef\svne at url{\svne at baseurl/\svne at name}%
+ \svne at handleentry
+ }{}%
+ \svne at gobblerest
+ \svne at parseentries
+ }%
+ }%
+}
+
+\def\svne at handleentry{%
+ \svn at ifequal{\svne at name}{\svnfilefname}%
+ {%
+ \svnkwdef{Filename}{\svne at name}%
+ \svnkwdef{Date}{\svne at date}%
+ \svnkwdef{Revision}{\svne at rev}%
+ \svnkwdef{Author}{\svne at author}%
+ \svnkwdef{HeadURL}{\svne at url}%
+ \@svn at updateid{\svne at rev}{\svne at date}{\svne at author}{\svne at url}%
+ \svne at endread
+ }{}%
+}%
+
+\def\svnegetfile#1{%
+ \begingroup
+ \svn at getfilename{#1}%
+ \edef\svnfilefname{\svnfilefname}%
+ \@onelevel at sanitize\svnfilefname
+ \svne at parseentriesfile{\svnfiledir .svn/}%
+ \svne at parseentriesfile{\svnfiledir _svn/}%
+ \endgroup
+}
+
+\if at svnmulti@autokwall
+\AtBeginDocument{%
+ \svnegetfile{\jobname.\svn at mainext}%
+}
+\fi
+
+\fi
+
+\def\svntimezone{\svntimezonehour\svntimezoneminute\svn at gobblezeros}
+\def\svnfiletimezone{\svnfiletimezonehour\svnfiletimezoneminute\svn at gobblezeros}
+\def\svncgtimezone{\svncgtimezonehour\svncgtimezoneminute}
+
+\def\svn at gobblezeros{%
+ \futurelet\svn at nextchar\svn at gobblezeros@
+}
+\def\svn at gobblezeros@{%
+ \let\@tempa=\relax
+ \def\@tempb{0}%
+ \ifx0\svn at 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 at cg @year}{??}{%
+ \begingroup
+ \year\svncgyear \month\svncgmonth \day\svncgday
+ \relax \today
+ \endgroup
+ }%
+}%
+
+\newcommand*{\svnid}{%
+ \@svnidswtrue
+ \svnkwsave
+}
+\newif\if at svnidsw
+\@svnidswfalse
+
+\def\svn at scanId#1 #2 #3 #4 #5\relax{%
+ \@svn at scandate{#3 #4}%
+ \@svn at updateid{#2}{#3 #4}{#5}{#1}%
+ \svnkwdef{Filename}{#1}%
+ \svnkwdef{Date}{#3 #4}%
+ \svnkwdef{Revision}{#2}%
+ \svnkwdef{Author}{#5}%
+}
+
+\def\@svn at updateid#1#2#3#4{%
+ \xdef\svnfilerev{#1}%
+ \xdef\svnfiledate{#2}%
+ \xdef\svnfileauthor{#3}%
+ \xdef\svnfileurl{#4}%
+ \svn at getfilename\svnfileurl%
+ \ifx\svnfilerev\empty\else
+ \ifnum\@svn at rev<\svnfilerev
+ \xdef\@svn at rev{\svnfilerev}%
+ \xdef\@svn at date{\svnfiledate}%
+ \xdef\@svn at author{\svnfileauthor}%
+ \xdef\@svn at year{\svnfileyear}%
+ \xdef\@svn at month{\svnfilemonth}%
+ \xdef\@svn at day{\svnfileday}%
+ \xdef\@svn at hour{\svnfilehour}%
+ \xdef\@svn at minute{\svnfileminute}%
+ \xdef\@svn at second{\svnfilesecond}%
+ \xdef\@svn at timezonehour{\svnfiletimezonehour}%
+ \xdef\@svn at timezoneminute{\svnfiletimezoneminute}%
+ \xdef\@svn at url{\svnfileurl}%
+ \xdef\@svn at fname{\svnfilefname}%
+ \fi
+
+ \if at svnmulti@groups
+ \ifx\svn at g\empty\else
+ \svn at updategroup{\svn at g}%
+ \fi
+ \if at svnmulti@subgroups
+ \ifsvnsubgroups
+ \svn at updategroup{\svn at filedir\svn at filebase}%
+ \fi
+ \fi
+ \fi
+ \fi
+}
+
+\def\@svncg at save#1#2{%
+ \expandafter\xdef\csname @svng@\svn at g @#1\endcsname{#2}%
+}
+
+
+\newcommand{\svnidlong}{%
+ \svnkwdef{HeadURL}{}%
+ \svnkwdef{LastChangedDate}{}%
+ \svnkwdef{LastChangedRevision}{0}%
+ \svnkwdef{LastChangedBy}{}%
+ \begingroup
+ \if at svnmulti@verbatim
+ \svn at catcodes
+ \catcode`\{=12
+ \catcode`\}=12
+ \else
+ \def\svnidlong at readargsfull{\svnidlong at readargs}%
+ \fi
+ \svnidlong at readargsfull
+}
+
+\if at svnmulti@verbatim
+\def\svn at catcodes{%
+ \let\do\@makeother
+ \dospecials
+ \catcode`\^^M9
+ \catcode`\ 10
+ \catcode`\{1
+ \catcode`\}2
+}
+\else
+ \def\svn at catcodes{}
+\fi
+
+\if at svnmulti@verbatim
+\begingroup
+\catcode`\{=12\catcode`\}=12
+\catcode`\(=1\catcode`\)=2
+\gdef\svnidlong at readargsfull#1{#2}#3{#4}#5{#6}#7{#8}(%
+ \svnidlong at readargs(#2)(#4)(#6)(#8)%
+)
+\endgroup
+\fi
+
+\def\svnidlong at readargs#1#2#3#4{%
+ \svnkwsave at read #1\relax
+ \svnkwsave at read #2\relax
+ \svnkwsave at read #3\relax
+ \svnkwsave at read #4\relax
+ \endgroup
+ \ifx\svnkwLastChangedDate\empty\else
+ \@svn at scanlongdate{\svnkwLastChangedDate}%
+ \fi
+ \@svn at updateid{\svnkw{LastChangedRevision}}{\svnkw{LastChangedDate}}%
+ {\svnkw{LastChangedBy}}{\svnkw{HeadURL}}%
+ \ignorespaces
+}%
+
+\def\svnkwsave{%
+ \begingroup
+ \svn at catcodes
+ \svnkwsave at readargs
+}
+
+\gdef\svnkwsave at readargs#1{%
+ \svnkwsave at read#1\relax
+ \endgroup
+ \if at svnidsw
+ \ifx\svnkwId\empty\else
+ \expandafter
+ \svn at scanId\svnkwId\relax
+ \@svnidswfalse
+ \fi
+ \fi
+ \ignorespaces
+}
+
+\begingroup
+\if at svnmulti@verbatim
+\catcode`\$=12
+\fi
+\gdef\svnkwsave at read $#1$\relax{%
+ \svn at checkcolon#1:\relax
+}
+\endgroup
+
+\begingroup
+\catcode`\$=11
+\gdef\svnkwsave at 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 at Rev#1{%
+ \svn at ifempty{#1}%
+ {\svnkwdef@{Rev}{0}}%
+ {\svnkwdef@{Rev}{#1}}%
+}
+\def\svnkwdef at Author#1{\svnkwdef@{Author}{#1}}
+\def\svnkwdef at Date#1{\svnkwdef@{Date}{#1}}
+\def\svnkwdef at URL#1{\svnkwdef@{HeadURL}{#1}}
+\let\svnkwdef at Revision=\svnkwdef at Rev
+\let\svnkwdef at LastChangedRevision=\svnkwdef at Rev
+\let\svnkwdef at LastChangedBy=\svnkwdef at Author
+\let\svnkwdef at LastChangedAt=\svnkwdef at 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 at checkcolon#1:#2\relax{%
+ \svn at ifempty{#2}%
+ {\svnkwdef{#1}{}}%
+ {\svn at stripcolon#2\relax\svnkwdef{#1}{\svn at value}}%
+}
+
+\def\svn at stripcolon#1:\relax{%
+ \svn at ifempty{#1}%
+ {\gdef\svn at value{}}%
+ {\svn at ifequal{#1}{ }%
+ {\gdef\svn at value{}}%
+ {\svn at stripspace#1\relax\relax}%
+ }%
+}
+
+\def\svn at stripspace#1#2\relax{%
+ \svn at ifequal{#1}{ }%
+ {\gdef\svn at value{#2}}%
+ {\svn at striptrailingspace#1#2\relax}%
+}
+
+\def\svn at striptrailingspace#1 \relax{%
+ \gdef\svn at value{#1}%
+}
+
+\def\svn at gdefverb#1{%
+ \begingroup
+ \def\svn at temp{#1}%
+ \begingroup
+ \if at svnmulti@verbatim
+ \svn at catcodes
+ \fi
+ \svn at gdefverb@
+}
+
+\def\svn at gdefverb@#1{%
+ \endgroup
+ \expandafter\gdef\svn at temp{#1}%
+ \endgroup
+}
+
+\def\svn at namegdefverb#1{%
+ \begingroup
+ \expandafter\def
+ \expandafter\svn at temp
+ \expandafter{\csname #1\endcsname}%
+ \begingroup
+ \if at svnmulti@verbatim
+ \svn at catcodes
+ \fi
+ \svn at gdefverb@
+}
+
+\def\@svn at scandate#1{\@svn at scandate@#1\relax}
+
+\def\@svn at 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 at scanlongdate#1{\expandafter\@svn at scanlongdate@#1\relax}
+\def\@svn at 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 at parsetimezone#7\relax%
+}
+
+\def\@svn at 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 at author@#1\endcsname{#2}%
+}
+
+\newcommand{\svnFullAuthor}{%
+ \@ifnextchar{*}%
+ {\svnFullAuthor at star}%
+ {\svnFullAuthor at normal}%
+}%
+\def\svnFullAuthor at star*#1{%
+ \edef\svn at temp{#1}%
+ \svnFullAuthor@{\svn at temp}{~(\svn at temp)}%
+}%
+\def\svnFullAuthor at normal#1{%
+ \edef\svn at temp{#1}%
+ \svnFullAuthor@{\svn at temp}{}%
+}%
+\def\svnFullAuthor@#1#2{%
+ \@ifundefined{svn at author@#1}%
+ {#1}%
+ {\csname svn at author@#1\endcsname #2}%
+}
+
+\newcommand{\svnRegisterRevision}[2]{%
+ \expandafter\def\csname svn at revision@#1\endcsname{#2}%
+}
+
+\newcommand{\svnFullRevision}{%
+ \@ifnextchar{*}%
+ {\svnFullRevision at star}%
+ {\svnFullRevision at normal}%
+}
+\def\svnFullRevision at star*#1{%
+ \edef\svn at temp{#1}%
+ \svnFullRevision@{\svn at temp}{~(r\svn at temp)}%
+}
+\def\svnFullRevision at normal#1{%
+ \edef\svn at temp{#1}%
+ \svnFullRevision@{\svn at temp}{}%
+}
+\def\svnFullRevision@#1#2{%
+ \@ifundefined{svn at revision@#1}%
+ {Revision #1}%
+ {\csname svn at revision@#1\endcsname #2}%
+}
+
+\if at svnmulti@filehooks
+
+\RequirePackage{fink}[2008/02/27]
+\begingroup
+\def\svn at 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 at finkerror\relax
+}
+\@ifundefined{finkpath}{\svn at finkerror}{}%
+\@ifundefined{finkdir}{\svn at finkerror}{}%
+\@ifundefined{finkbase}{\svn at finkerror}{}%
+\@ifundefined{fink at prepare}{\svn at finkerror}{}%
+\@ifundefined{fink at restore}{\svn at finkerror}{}%
+\@ifundefined{fnk at maindir}{\svn at finkerror}{}%
+\@ifundefined{fnk at mainext}{\svn at finkerror}{}%
+\endgroup
+
+\def\svn at removedotslash#1{%
+ \def\svn at removedotslash@##1##2##3\relax{%
+ \svn at ifequal{./}{##1##2}%
+ {\edef#1{##3}\def\next{\svn at removedotslash@##3\empty\empty\empty\relax}}%
+ {\edef#1{##1##2##3}\let\next\relax}%
+ \next
+ }%
+ \expandafter\svn at removedotslash@#1\empty\empty\empty\relax
+}
+
+\let\svn at mainext\fnk at mainext
+\let\svn at maindir\fnk at maindir
+\svn at removedotslash\svn at maindir
+\edef\svn at filebase{\jobname}%
+\edef\svn at fileext{\svn at mainext}%
+\edef\svn at filedir{\svn at maindir}%
+\def\svn at filename{\fink at file\svn at filebase\svn at fileext}%
+\def\svn at filepath{\svn at filedir\svn at filename}%
+
+\def\svnmulti at begininputfilehook{}
+\message{Package svn-multi: patching macro '\string\fink at prepare' from the
+'fink' package!}%
+\let\svnmulti at fink@prepare\fink at prepare
+\renewcommand*{\fink at prepare}[1]{%
+ \svnmulti at fink@prepare{#1}%
+ \if at svnmulti@groups
+ \svn at ifequal{\svn at filepath}{\jobname.\svn at mainext}%
+ {\global\let\svn at pg\svn at g}%
+ {\xdef\svn at pg{\svn at filedir\svn at filebase}}%
+ \fi
+ \xdef\svn at filebase{\fink at nextbase}%
+ \xdef\svn at fileext{\fink at nextext}%
+ \xdef\svn at filedir{\fink at nextdir}%
+ \svn at removedotslash\svn at filedir
+ \svnmulti at begininputfilehook
+}%
+
+\def\svnmulti at endinputfilehook{}
+\message{Package svn-multi: patching macro '\string\fink at restore' from the
+'fink' package!}%
+\let\svnmulti at fink@restore\fink at restore
+\def\fink at restore#1{%
+ \svnmulti at endinputfilehook
+ \svnmulti at fink@restore{#1}%
+ \xdef\svn at filebase{\finkbase}%
+ \xdef\svn at fileext{\finkext}%
+ \xdef\svn at filedir{\finkdir}%
+ \svn at removedotslash\svn at filedir
+}%
+
+\def\svnmulti at atbegininputfile{%
+ \g at addto@macro\svnmulti at begininputfilehook
+}
+
+\long\def\svnmulti at atendinputfile#1{%
+ \begingroup
+ \@temptokena\expandafter{\svnmulti at endinputfilehook}%
+ \toks@{#1}%
+ \xdef\svnmulti at endinputfilehook{\the\toks@\the\@temptokena}%
+ \endgroup
+}
+
+\def\svn at filestack{{}}
+
+\def\svn at pushfilestack{%
+ \xdef\svn at filestack{{%
+ {\svnfilerev}%
+ {\svnfiledate}%
+ {\svnfileauthor}%
+ {\svnfileyear}%
+ {\svnfilemonth}%
+ {\svnfileday}%
+ {\svnfilehour}%
+ {\svnfileminute}%
+ {\svnfilesecond}%
+ {\svnfiletimezonehour}%
+ {\svnfiletimezoneminute}%
+ {\svnfileurl}%
+ {\svnfilefname}%
+ {\svn at g}%
+ {\svn at pg}%
+ }\svn at filestack}%
+}
+
+\def\svn at restorefilekws#1#2\relax{%
+ \svn at restorefilekws@#1\empty
+ \empty \empty \empty \empty
+ \empty \empty \empty \empty
+ \empty \empty \empty \empty
+ \svn at ifempty{#2}%
+ {\gdef\svn at filestack{{}}}%
+ {\gdef\svn at filestack{#2}}%
+}
+\def\svn at 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 at restorefilekws@@
+}
+
+\def\svn at restorefilekws@@#1#2#3#4#5#6{%
+ \gdef\svnfiletimezonehour{#1}%
+ \gdef\svnfiletimezoneminute{#2}%
+ \gdef\svnfileurl{#3}%
+ \gdef\svnfilefname{#4}%
+ \gdef\svn at g{#5}%
+ \gdef\svn at pg{#6}%
+}
+
+\def\svn at popfilestack{%
+ \ifx\svn at filestack\empty
+ \PackageWarning{svn-multi}{Underflow of file keyword stack!}%
+ \else
+ \svn at ifequal{\svn at filestack}{{}}%
+ {\PackageWarning{svn-multi}{Underflow of file keyword stack!}}%
+ {\expandafter\svn at restorefilekws\svn at filestack\relax}%
+ \fi
+}
+
+\svnmulti at atbegininputfile{%
+ \svn at pushfilestack
+}
+
+\svnmulti at atendinputfile{%
+ \svn at popfilestack
+}%
+
+\fi
+
+\if at svnmulti@groups
+\let\svn at glist=\empty
+
+\def\svngroup#1{%
+ \svn at ifequal{#1}{*}%
+ {\PackageError{svn-multi}%
+ {The group name '*' is invalid for '\string\svngroup'}{}{}%
+ }{}%
+ \xdef\svn at g{#1}%
+ \let\svn at pg\svn at g
+ \ifx\svn at g\empty\else%
+ \expandafter
+ \ifx\csname @svng@\svn at g @rev\endcsname\relax%
+ \svn at initgroup{\svn at g}%
+ \ifx\svn at glist\empty
+ \xdef\svn at glist{#1}%
+ \else
+ \xdef\svn at glist{\svn at glist,#1}%
+ \fi
+ \fi
+ \fi
+}
+
+\def\thesvngroup{\svn at g}
+
+\def\svnsetcg#1{%
+ \svn at ifequal{#1}{*}%
+ {\def\svn at cg{\svn at g}}%
+ {\def\svn at cg{#1}}%
+}
+
+\def\svncg at def#1{%
+ \expandafter
+ \def\csname svncg#1\endcsname{%
+ \@ifundefined{svng@\svn at cg @#1}{??}{%
+ \csname svng@\svn at cg @#1\endcsname}%
+ }%
+}
+
+\@for\@tempa:=%
+ rev,author,date,year,month,day,hour,minute,second,%
+ timezonehour,timezoneminute,url,fname%
+\do{%
+ \expandafter\svncg at def\expandafter{\@tempa}%
+}
+
+\def\thesvncg{\svn at cg}
+
+\def\svng#1#2{%
+ \@ifundefined{svng@\svn at temp @#2}%
+ {??}%
+ {\csname svng@\svn at temp @#2\endcsname}%
+}
+
+\def\svn at addfiletogroup#1#2{%
+ \expandafter
+ \ifx\csname @svng@#2 at files@#1\endcsname\relax%
+ \expandafter\gdef\csname @svng@#2 at files@#1\endcsname{1}%
+ %
+ \@ifundefined{@svng@#2 at files}%
+ {\expandafter\xdef\csname @svng@#2 at files\endcsname{#1}}%
+ {\expandafter\xdef\csname @svng@#2 at files\endcsname{%
+ \csname @svng@#2 at files\endcsname,#1%
+ }%
+ }%
+ \fi
+}
+
+\svnmulti at atbegininputfile{%
+ \svn at ifequal{\svn at filepath}{\svn at maindir\jobname.\svn at mainext}%
+ {}%
+ {\svn at initfile}%
+ \svn at ifequal{\svn at fileext}{\svn at mainext}%
+ {\svn at addfiletogroup{\svn at filedir\svn at filebase}{\svn at pg}}{}%
+ \svn at ifequal{\svn at fileext}{sty}%
+ {\svn at addfiletogroup{\svn at filedir\svn at filebase}{\svn at pg}}{}%
+ \svn at ifequal{\svn at fileext}{cls}%
+ {\svn at addfiletogroup{\svn at filedir\svn at filebase}{\svn at pg}}{}%
+ \svn at addfiletogroup{\svn at filepath}{\svn at filedir\svn at filebase}%
+}
+
+\def\svn at writegroup#1{%
+ \def\svn at writekw##1{%
+ \immediate\write\svn at write{%
+ \noexpand\@namedef{svng@#1@##1}{\csname @svng@#1@##1\endcsname}%
+ }%
+ }%
+ \svn at writekw{rev}%
+ \svn at writekw{date}%
+ \svn at writekw{author}%
+ \svn at writekw{year}%
+ \svn at writekw{month}%
+ \svn at writekw{day}%
+ \svn at writekw{hour}%
+ \svn at writekw{minute}%
+ \svn at writekw{second}%
+ \svn at writekw{timezonehour}%
+ \svn at writekw{timezoneminute}%
+ \@ifundefined{@svng@#1 at files}{}{%
+ \immediate\write\svn at write{%
+ \noexpand
+ \svn at namegdefverb{svng@#1 at files}{\csname @svng@#1 at files\endcsname}%
+ }%
+ }%
+ \immediate\write\svn at write{%
+ \noexpand
+ \svn at namegdefverb{svng@#1 at url}{\csname @svng@#1 at url\endcsname}^^J%
+ \noexpand
+ \svn at namegdefverb{svng@#1 at fname}{\csname @svng@#1 at fname\endcsname}^^J%
+ }%
+}
+\def\svn at writeallgroups#1{%
+ \begingroup
+ \ifx\relax#1\relax\else
+ \@for\svn at temp:=#1\do{%
+ \svn at ifvalidrev{@svng@\svn at temp @rev}%
+ {%
+ \expandafter
+ \svn at cleanfilelist\csname @svng@\svn at temp @files\endcsname
+ \svn at writegroup{\svn at temp}%
+ \@ifundefined{@svng@\svn at temp @files}{}%
+ {\expandafter\svn at writeallgroups
+ \csname @svng@\svn at temp @files\endcsname
+ }%
+ }{}%
+ }%
+ \fi
+ \endgroup
+}
+
+\def\svn at updategroup#1{%
+ \@ifundefined{@svng@#1 at rev}%
+ {\svn at initgroup{#1}}%
+ {}%
+ \expandafter
+ \ifnum\csname @svng@#1 at rev\endcsname<\svnfilerev
+ \svn at gkwset{#1}{rev}{\svnfilerev}%
+ \svn at gkwset{#1}{date}{\svnfiledate}%
+ \svn at gkwset{#1}{author}{\svnfileauthor}%
+ \svn at gkwset{#1}{year}{\svnfileyear}%
+ \svn at gkwset{#1}{month}{\svnfilemonth}%
+ \svn at gkwset{#1}{day}{\svnfileday}%
+ \svn at gkwset{#1}{hour}{\svnfilehour}%
+ \svn at gkwset{#1}{minute}{\svnfileminute}%
+ \svn at gkwset{#1}{second}{\svnfilesecond}%
+ \svn at gkwset{#1}{timezonehour}{\svnfiletimezonehour}%
+ \svn at gkwset{#1}{timezoneminute}{\svnfiletimezoneminute}%
+ \svn at gkwset{#1}{url}{\svnfileurl}%
+ \svn at gkwset{#1}{fname}{\svnfilefname}%
+ \fi
+}
+
+\def\svn at definegroup#1{%
+ \svn at gkwdef{#1}{rev}%
+ \svn at gkwdef{#1}{date}%
+ \svn at gkwdef{#1}{author}%
+ \svn at gkwdef{#1}{year}%
+ \svn at gkwdef{#1}{month}%
+ \svn at gkwdef{#1}{day}%
+ \svn at gkwdef{#1}{hour}%
+ \svn at gkwdef{#1}{minute}%
+ \svn at gkwdef{#1}{second}%
+ \svn at gkwdef{#1}{timezonehour}%
+ \svn at gkwdef{#1}{timezoneminute}%
+ \svn at gkwdef{#1}{url}%
+ \svn at gkwdef{#1}{fname}%
+}
+
+\def\svn at initgroup#1{%
+ \svn at gkwset{#1}{rev}{-1}%
+ \svn at gkwset{#1}{date}{}%
+ \svn at gkwset{#1}{author}{}%
+ \svn at gkwset{#1}{year}{0000}%
+ \svn at gkwset{#1}{month}{00}%
+ \svn at gkwset{#1}{day}{00}%
+ \svn at gkwset{#1}{hour}{00}%
+ \svn at gkwset{#1}{minute}{00}%
+ \svn at gkwset{#1}{second}{00}%
+ \svn at gkwset{#1}{timezonehour}{+00}%
+ \svn at gkwset{#1}{timezoneminute}{00}%
+ \svn at gkwset{#1}{url}{}%
+ \svn at gkwset{#1}{fname}{}%
+}
+
+\def\svn at gkwset#1#2#3{%
+ \expandafter
+ \xdef\csname @svng@#1@#2\endcsname{#3}%
+}
+
+\def\svn at gkwdef#1#2{%
+ \expandafter
+ \xdef\csname svng@#1@#2\endcsname{\csname @svng@#1@#2\endcsname}%
+}
+
+\def\svn at cleanfilelist#1{
+ \begingroup
+ \def\svn at tmplist{}%
+ \ifx\relax#1\relax\else
+ \@for\svn at temp:=#1\do{%
+ \expandafter\svn at ifvalidrev
+ \expandafter{@svng@\svn at temp @rev}%
+ {\edef\svn at tmplist{\svn at tmplist,\svn at temp}}%
+ {}%
+ }%
+ \xdef#1{\expandafter\@gobble\svn at tmplist\empty}%
+ \fi
+ \endgroup
+}
+
+\fi
+
+
+\newif\ifsvnsubgroups
+\svnsubgroupsfalse
+
+\if at svnmulti@subgroups
+\svnsubgroupstrue
+
+\def\svnsubgroup{%
+ \begingroup
+ \svn at removedotslash\svn at filedir
+ \svn at subgroup{\svn at filedir\svn at filebase}%
+ \svn at subgroup{\svn at filepath}%
+ \endgroup
+}
+
+\def\svn at subgroup#1{%
+ \ifnum\svnfilerev>-1\relax
+ \expandafter\ifx\csname svn at g@#1\endcsname\relax%
+ \expandafter\gdef\csname svn at g@#1\endcsname{1}%
+ \svn at updategroup{#1}%
+ \fi
+ \fi
+}
+
+\def\svnignoreextensions#1{%
+ \@for\svn at temp:=#1\do{%
+ \expandafter\def\csname svn at ignore@ext@\svn at temp\endcsname{}%
+ }%
+}
+
+\def\svnconsiderextensions#1{%
+ \@for\svn at temp:=#1\do{%
+ \expandafter\let\csname svn at ignore@ext@\svn at temp\endcsname\relax%
+ }%
+}
+
+\svnignoreextensions{aux,bbl,fd,enc,fls,glo,idx,ilg,ind,ist,%
+lof,log,lot,out,svn,svt,svx,toc}
+
+\svnmulti at atendinputfile{%
+ \if at svnmulti@subgroups
+ \ifsvnsubgroups
+ \expandafter\ifx\csname svn at ignore@ext@\svn at fileext\endcsname\relax
+ \svnsubgroup
+ \fi
+ \fi
+ \fi
+}
+
+\if at svnmulti@subgroups
+ \ifsvnsubgroups
+ \svn at addfiletogroup{\jobname .\svn at mainext}{\jobname}%
+ \svnsubgroup
+ \fi
+\fi
+\AtBeginDocument{%
+ \if at svnmulti@subgroups
+ \ifsvnsubgroups
+ \@ifundefined{@svng@\svn at g @files}%
+ {%
+ \expandafter
+ \xdef\csname @svng@\svn at g @files\endcsname{\jobname}%
+ }%
+ {%
+ \expandafter
+ \xdef\csname @svng@\svn at g @files\endcsname
+ {\jobname,\csname @svng@\svn at g @files\endcsname}%
+ }%
+ \svnsubgroup
+ \fi
+ \fi
+}
+
+\fi
+
+\if at svnmulti@external
+
+\if at svnmulti@groups
+\def\svnexternalgroup#1{%
+ \svn at ifequal{#1}{*}%
+ {\def\svn at externalgroup{#1}}%
+ {\def\svn at externalgroup{\svn at g}}%
+}
+\def\svn at externalgroup{\svn at g}
+\else
+\def\svn at externalgroup{}
+\fi
+
+\if at svnmulti@autokw
+\newcommand*\svnexternal[2][]{%
+ \svn at pushfilestack
+ \svn at ifequal{#1}{*}%
+ {\edef\svn at eg{\svn at g}}%
+ {\svn at ifempty{#1}%
+ {\edef\svn at eg{\svn at externalgroup}}%
+ {\edef\svn at eg{#1}}%
+ }%
+ \svne@@external#2\relax
+ \svn at popfilestack
+}
+
+\def\svne@@external#1{%
+ \ifx\relax#1\empty\else
+ \svnegetfile{#1}%
+ \begingroup\svn at externalfile{\svn at eg}{#1}%
+ \expandafter\svne@@external
+ \fi
+}
+\else
+\newcommand*\svnexternal[2][]{%
+ \if at filesw
+ \svn at checkwrite
+ \begingroup
+ \svn at ifequal{#1}{*}%
+ {\def\svn at temp{\svn at g}}%
+ {\svn at ifempty{#1}%
+ {\def\svn at temp{\svn at externalgroup}}%
+ {\def\svn at temp{#1}}%
+ }%
+ \immediate\write\svn at write{%
+ \noexpand\@svnexternal[\svn at temp]{\svn at filepath}{#2}%
+ }%
+ \endgroup
+ \fi
+ \svn at inputsvx{\svn at filedir\svn at filebase}%
+}
+\fi
+
+\def\svnexternalpath#1{%
+ \if at filesw
+ \svn at checkwrite
+ \immediate\write\svn at write{%
+ \noexpand\@svnexternalpath{#1}%
+ }%
+ \fi
+}
+
+\newcommand*\@svnexternal[3][]{}
+\def\@svnexternalpath#1{}
+
+\newcommand*\svnexternalfile[1][\svn at filedir\svn at filebase]{%
+ \begingroup % TODO: maybe use \svn at catcodes
+ \catcode`\_=12
+ \catcode`\&=12
+ \catcode`\^=12
+ \catcode`\$=12
+ \catcode`\#=12
+ \svn at externalfile{#1}%
+}
+
+\def\svn at externalfile#1#2{%
+ \endgroup
+ \if at svnmulti@subgroups
+ \ifsvnsubgroups
+ \svn at ifequal{#1}{\svn at rg}%
+ {\svn at addfiletogroup{#2}{\svn at filedir\svn at filebase}}%
+ {\svn at addfiletogroup{#2}{#1}}%
+ \svn at subgroup{#2}%
+ \fi
+ \fi
+}
+
+\else
+ \def\svnexternalfile#1{}%
+\fi
+
+\if at svnmulti@autoload
+
+\svnmulti at atbegininputfile{%
+ \svn at ifequal{\svn at fileext}{tex}%
+ {\svn at inputsvx{\svn at filedir\svn at filebase}}%
+ {}%
+}
+
+%%\AtEndOfPackage{%
+\AtBeginDocument{%
+ \svn at inputsvx{\jobname}%
+}
+
+\fi
+
+
+\if at svnmulti@anygraphic
+
+\def\svngraphicsgroup#1{%
+ \svn at ifequal{#1}{*}%
+ {\def\svn at graphicsgroup{\svn at g}}%
+ {\def\svn at graphicsgroup{#1}}%
+}
+\def\svn at graphicsgroup{\svn at externalgroup}
+
+\def\svnignoregraphic#1{%
+ \expandafter\def\csname svn at ignoregraphic@#1\endcsname{}%
+}
+
+\def\svnconsidergraphic#1{%
+ \expandafter\let\csname svn at ignoregraphic@#1\endcsname\relax%
+}
+
+\fi
+
+\if at svnmulti@graphics
+\RequirePackage{graphics}[2006/02/20]
+
+\message{Package svn-multi: patching macro '\string\Gin at setfile' from the
+'graphics' package!}%
+\let\svnmulti at Gin@setfile\Gin at setfile
+\renewcommand*{\Gin at setfile}[3]{%
+ \expandafter\ifx\csname svn at ignoregraphic@#3\endcsname\relax%
+ \svnexternal[\svn at graphicsgroup]{{#3}}%
+ \fi
+ \svnmulti at Gin@setfile{#1}{#2}{#3}%
+}
+
+\fi
+
+\if at svnmulti@pgfimages
+\RequirePackage{pgf}[2008/01/15]
+
+\message{Package svn-multi: patching macro '\string\pgf at declareimage' and will
[TRUNCATED]
To get the complete diff run:
svnlook diff /svnroot/distr -r 628
More information about the Distr-commits
mailing list