%% %% 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 %% %% 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@version {v2.1a} \def\svnmulti@rev $#1: #2 ${\def\svnmulti@rev{#2}} \def\svnmulti@date $#1: #2-#3-#4 #5 ${\def\svnmulti@date{#2/#3/#4}} \svnmulti@rev $Rev: 845 $\relax \svnmulti@date $Date: 2009-04-21 13:03:08 +0100 (Tue, 21 Apr 2009) $\relax \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{svn-multi} [\svnmulti@date\space\svnmulti@version\space SVN Keywords for multi-file LaTeX documents] \RequirePackage{kvoptions} \SetupKeyvalOptions{% family = svn-multi, prefix = @svnmulti@ } \newif\if@svnmulti@anygraphic \newif\if@svnmulti@autoload \newif\if@svnmulti@autokw \newif\if@svnmulti@autokwall \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} \DeclareStringOption[false]{autokw}[all] \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 \def\svn@temp{true} \ifx\@svnmulti@autokw\svn@temp \@svnmulti@autokwtrue \@svnmulti@autokwalltrue \svn@depoption{filehooks} \fi \def\svn@temp{all} \ifx\@svnmulti@autokw\svn@temp \@svnmulti@autokwtrue \@svnmulti@autokwalltrue \svn@depoption{filehooks} \fi \def\svn@temp{ext} \ifx\@svnmulti@autokw\svn@temp \@svnmulti@autokwtrue \@svnmulti@autokwallfalse \fi \def\svn@temp{false} \ifx\@svnmulti@autokw\svn@temp \@svnmulti@autokwfalse \@svnmulti@autokwallfalse \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@ifeof#1{% \ifeof#1% \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi } \def\svn@ifonlyone#1{% \expandafter\expandafter\expandafter \svn@@ifonlyone\csname @svng@#1@files\endcsname,\relax } \def\svn@@ifonlyone#1,#2\relax{% \svn@ifempty{#2} } \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 } \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} \def\svn@rg{\svn@pg} \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{}% \gdef\svnfiledir{}% } \svn@initfile \begingroup \@makeother\^^L \if@svnmulti@autokw \gdef\svne@ff{^^L} \fi \endgroup \if@svnmulti@autokw \newread\svne@read \newcommand*{\svne@catcodes}{% \let\do\@makeother \endlinechar=-1 \dospecials \do\- \do\: \do\. \do\^^L } \def\svne@readline#1{% \ifeof\svne@read \def#1{}% \else \read\svne@read to #1\relax \fi } \def\svne@gobblerest{% \ifeof\svne@read \let\next\relax \else \read\svne@read to \svn@temp \ifx\svn@temp\svne@ff \let\next\relax \else \let\next\svne@gobblerest \fi \fi \next } \def\svne@endread{% \closein\svne@read } \newcommand*{\svne@parseentriesfile}[1]{% \begingroup \let\next\relax \openin\svne@read=#1format\relax \ifeof\svne@read\else \svne@readline\svne@version \closein\svne@read \ifnum\svne@version>7\relax \openin\svne@read=#1entries\relax \ifeof\svne@read\else \svne@catcodes \svne@readline\svne@version \ifnum\svne@version>7\relax \def\next{\svne@parsedirentry% \svne@parseentries} \else \closein\svne@read \fi \fi \fi \fi \next \endgroup } \newcommand*{\svne@parsedirentry}{% \svne@readline\svne@name \svne@readline\svne@kind \svn@ifempty{\svne@name}% {\svn@ifequal{\svne@kind}{dir}% {% {\svne@readline\svn@temp}% \svne@readline\svne@baseurl \svne@gobblerest }{}% }{}% } \begingroup \@makeother\- \@makeother\: \@makeother\. \gdef\svne@scandate#1{% \expandafter\svne@scandate@#1\relax 0000-00-00T00:00:00.00000Z\relax\relax } \gdef\svne@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@date{#1-#2-#3 #4:#5:#6Z}% } \endgroup \newcommand*{\svne@parseentries}{% \svn@ifeof{\svne@read}% {}% {% \svne@readline\svne@name \@onelevel@sanitize\svne@name \svn@ifeof{\svne@read}% {}% {% \svne@readline\svne@kind \svn@ifequal{\svne@kind}{file}% {% \svne@readline\svn@temp \svne@readline\svn@temp \svne@readline\svn@temp \svne@readline\svn@temp \svne@readline\svn@temp \svne@readline\svn@temp \svne@readline\svne@date \svne@readline\svne@rev \svne@readline\svne@author %\@onelevel@sanitize\svne@date \svne@scandate{\svne@date}% \edef\svne@url{\svne@baseurl/\svne@name}% \svne@handleentry }{}% \svne@gobblerest \svne@parseentries }% }% } \def\svne@handleentry{% \svn@ifequal{\svne@name}{\svnfilefname}% {% \svnkwdef{Filename}{\svne@name}% \svnkwdef{Date}{\svne@date}% \svnkwdef{Revision}{\svne@rev}% \svnkwdef{Author}{\svne@author}% \svnkwdef{HeadURL}{\svne@url}% \@svn@updateid{\svne@rev}{\svne@date}{\svne@author}{\svne@url}% \svne@endread }{}% }% \def\svnegetfile#1{% \begingroup \svn@getfilename{#1}% \edef\svnfilefname{\svnfilefname}% \@onelevel@sanitize\svnfilefname \svne@parseentriesfile{\svnfiledir .svn/}% \svne@parseentriesfile{\svnfiledir _svn/}% \endgroup } \if@svnmulti@autokwall \AtBeginDocument{% \svnegetfile{\jobname.\svn@mainext}% } \fi \fi \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}% {\def\next{\svn@removedotslash@##3\empty\empty\empty\relax}}% {\xdef#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}% \svn@pushfilestack \if@svnmulti@groups \svn@ifequal{\svn@filepath}{\jobname.\svn@mainext}% {\xdef\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}% \svn@popfilestack \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 } \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,fd,enc,fls,glo,idx,ilg,ind,ist,% lof,log,lot,out,svn,svt,svx,toc} \svnmulti@atendinputfile{% \if@svnmulti@subgroups \ifsvnsubgroups \expandafter\ifx\csname svn@ignore@ext@\svn@fileext\endcsname\relax \svnsubgroup \fi \fi \fi } \if@svnmulti@subgroups \ifsvnsubgroups \svn@addfiletogroup{\jobname .\svn@mainext}{\jobname}% \svnsubgroup \fi \fi \AtBeginDocument{% \if@svnmulti@subgroups \ifsvnsubgroups \@ifundefined{@svng@\svn@g @files@\jobname}% {% \@namedef{@svng@\svn@g @files@\jobname}{1}% \@ifundefined{@svng@\svn@g @files}% {% \expandafter \xdef\csname @svng@\svn@g @files\endcsname{\jobname}% }% {% \expandafter \xdef\csname @svng@\svn@g @files\endcsname {\jobname,\csname @svng@\svn@g @files\endcsname}% }% }{}% \svnsubgroup \fi \fi } \fi \if@svnmulti@external \if@svnmulti@groups \def\svnexternalgroup#1{% \svn@ifequal{#1}{*}% {\def\svn@externalgroup{\svn@pg}}% {\def\svn@externalgroup{#1}}% } \def\svn@externalgroup{\svn@pg} \else \def\svn@externalgroup{} \fi \if@svnmulti@autokw \newcommand*\svnexternal[2][]{% \svn@pushfilestack \svn@ifequal{#1}{*}% {\edef\svn@eg{\svn@pg}}% {\svn@ifempty{#1}% {\edef\svn@eg{\svn@externalgroup}}% {\edef\svn@eg{#1}}% }% \svne@@external#2\relax \svn@popfilestack } \def\svne@@external#1{% \ifx\relax#1\empty\else \svnegetfile{#1}% \begingroup\svn@externalfile{\svn@eg}{#1}% \expandafter\svne@@external \fi } \else \newcommand*\svnexternal[2][]{% \if@filesw \svn@checkwrite \begingroup \svn@ifequal{#1}{*}% {\def\svn@temp{\svn@pg}}% {\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}% } \fi \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@pg}}% {\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@!' 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{% \expandafter\ifx \csname if@twocolumn\expandafter\endcsname \csname iftrue\endcsname \@restonecoltrue\onecolumn \else \@restonecolfalse \fi \chapter*{\svnrevisionsname \@mkboth{\MakeUppercase\svnrevisionsname}{\MakeUppercase\svnrevisionsname}}% \svn@input{\jobname .\svn@svt}% \expandafter\ifx \csname if@restonecol\expandafter\endcsname \csname iftrue\endcsname \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}rll}% \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 \gdef\svnfiledir{}% \edef\svn@temp{#1}% \expandafter\@svn@getfilename\svn@temp/{}\relax }% \def\@svn@getfilename#1/#2\relax{% \svn@ifempty{#2}% {% \endgroup \gdef\svnfilefname{#1}% }% {% \xdef\svnfiledir{\svnfiledir#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@ifonlyone{\svn@file}% {\svn@writefilerow{\the\svn@grouplevel}% {\csname @svng@\svn@file @files\endcsname}}% {\svn@ifempty{\csname @svng@\svn@file @files\endcsname}% {}% {% \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 } \if@svnmulti@autokwall \svnmulti@atbegininputfile{% \expandafter \ifx\csname svn@ignore@ext@\svn@fileext\endcsname\relax \svnegetfile{\svn@filepath}% \fi } \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'.