From 51c770a8e01958bb18c9be9426a459a0c076e7ae Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 10 Dec 2010 00:13:16 +0000 Subject: svn-multi 2.4 (10dec10) git-svn-id: svn://tug.org/texlive/trunk@20703 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/svn-multi/svn-multi.sty | 223 +++++++++------------ 1 file changed, 90 insertions(+), 133 deletions(-) (limited to 'Master/texmf-dist/tex/latex/svn-multi') diff --git a/Master/texmf-dist/tex/latex/svn-multi/svn-multi.sty b/Master/texmf-dist/tex/latex/svn-multi/svn-multi.sty index 59de8a64e16..6c9c60e5988 100644 --- a/Master/texmf-dist/tex/latex/svn-multi/svn-multi.sty +++ b/Master/texmf-dist/tex/latex/svn-multi/svn-multi.sty @@ -26,11 +26,11 @@ %% and the derived files svn-multi.sty, svnkw.sty and svn-multi.pl. %% \makeatletter -\def\svnmulti@version{v2.3} -\RequirePackage{svn-prov} +\def\svnmulti@version{v2.4} +\RequirePackage{svn-prov}[2010/04/14] \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackageSVN - {$Id: svn-multi.dtx 1866 2010-07-19 11:17:15Z martin $} + {$Id: svn-multi.dtx 1914 2010-12-08 19:43:23Z martin $} [\svnmulti@version\space SVN Keywords for multi-file LaTeX documents] \RequirePackage{kvoptions} @@ -319,7 +319,20 @@ \let\do\@makeother \endlinechar=-1% \dospecials - \do\-\do\:\do\.\do\^^L% + \do0\do1\do2\do3\do4% + \do5\do6\do7\do8\do9% + \do\:\do\^^L% + \do\<\do\>\do\*\do\.\do\-% + \do\/\do\[\do\]\do\`\do\'\do\"% + \def\do##1{\catcode`##1=11\relax}% + \do\A\do\B\do\C\do\D\do\E\do\F + \do\G\do\H\do\I\do\J\do\K\do\L + \do\M\do\N\do\O\do\P\do\Q\do\R + \do\S\do\T\do\U\do\V\do\X\do\Y\do\Z + \do\a\do\b\do\c\do\d\do\e\do\f + \do\g\do\h\do\i\do\j\do\k\do\l + \do\m\do\n\do\o\do\p\do\q\do\r + \do\s\do\t\do\u\do\v\do\x\do\y\do\z } \def\svne@readline#1{% @@ -360,7 +373,6 @@ \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 @@ -475,6 +487,7 @@ \svn@getfilename{#1}% \edef\svnfilefname{\svnfilefname}% \@onelevel@sanitize\svnfilefname + \svne@catcodes \svne@parseentriesfile{\svnfiledir .svn/}% \svne@parseentriesfile{\svnfiledir _svn/}% \endgroup @@ -482,7 +495,7 @@ \if@svnmulti@autokwall \AtBeginDocument{% - \svnegetfile{\jobname.\svn@mainext}% + \svnegetfile{\jobname.\currfile@mainext}% } \fi @@ -536,7 +549,20 @@ \newif\if@svnidsw \@svnidswfalse -\def\svn@scanId#1 #2 #3 #4 #5\relax{% +\def\svn@scanId#1 #2\relax{% + \begingroup + \def\@tempa{#2}% + \def\@tempb{-1}% + \ifx\@tempa\@tempb + \endgroup + \svn@scanId@#1 -1 0000-00-00 00:00:00Z (uncommited)\relax + \else + \endgroup + \svn@scanId@#1 #2\relax + \fi +} + +\def\svn@scanId@#1 #2 #3 #4 #5\relax{% \@svn@scandate{#3 #4}% \@svn@updateid{#2}{#3 #4}{#5}{#1}% \svnkwdef{Filename}{#1}% @@ -580,7 +606,7 @@ \fi \if@svnmulti@subgroups \ifsvnsubgroups - \svn@updategroup{\svn@filedir\svn@filebase}% + \svn@updategroup{\currfiledir\currfilebase}% \fi \fi \fi @@ -905,85 +931,28 @@ \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 +\RequirePackage{filehook}[2010/12/08] +\RequirePackage{currfile}[2010/12/08] -\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}% +\filehook@prefixwarg\filehook@atbegin{% \svn@pushfilestack \if@svnmulti@groups - \svn@ifequal{\svn@filepath}{\jobname.\svn@mainext}% + \svn@ifequal{\currfilepath}{\jobname.\currfile@mainext}% {\xdef\svn@pg{\svn@g}}% - {\xdef\svn@pg{\svn@filedir\svn@filebase}}% + {\xdef\svn@pg{\currfiledir\currfilebase}}% \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}% +} +\AtEndOfFiles{% \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 +\AtBeginOfIncludes{% + \svn@pushfilestack + \if@svnmulti@groups + \svn@addfiletogroup{\currfiledir\currfilebase}{\svn@pg}% + \fi +} +\AtEndOfIncludes{% + \svn@popfilestack } \def\svn@filestack{{}} @@ -1110,6 +1079,7 @@ Try a different version, e.g. v2.1.1 from 2008/02/27}{}% } \def\svn@addfiletogroup#1#2{% + \svn@ifequal{#1}{#2}{}{% \expandafter \ifx\csname @svng@#2@files@#1\endcsname\relax% \expandafter\gdef\csname @svng@#2@files@#1\endcsname{1}% @@ -1121,25 +1091,26 @@ Try a different version, e.g. v2.1.1 from 2008/02/27}{}% }% }% \fi + }% } -\svnmulti@atbegininputfile{% - \svn@ifequal{\svn@filepath}{\svn@maindir\jobname.\svn@mainext}% +\AtBeginOfFiles{% + \svn@ifequal{\currfilepath}{\jobname.\currfile@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}% + \svn@ifequal{\currfileext}{\currfile@mainext}% + {\svn@addfiletogroup{\currfiledir\currfilebase}{\svn@pg}}{}% + \svn@ifequal{\currfileext}{sty}% + {\svn@addfiletogroup{\currfiledir\currfilebase}{\svn@pg}}{}% + \svn@ifequal{\currfileext}{cls}% + {\svn@addfiletogroup{\currfiledir\currfilebase}{\svn@pg}}{}% + \svn@addfiletogroup{\currfilepath}{\currfiledir\currfilebase}% } \def\svn@writegroup#1{% \def\svn@writekw##1{% \immediate\write\svn@write{% - \noexpand\@namedef{svng@#1@##1}{\csname @svng@#1@##1\endcsname}% + \string\global\string\@namedef{svng@#1@##1}{\csname @svng@#1@##1\endcsname}% }% }% \svn@writekw{rev}% @@ -1275,9 +1246,8 @@ Try a different version, e.g. v2.1.1 from 2008/02/27}{}% \def\svnsubgroup{% \begingroup - \svn@removedotslash\svn@filedir - \svn@subgroup{\svn@filedir\svn@filebase}% - \svn@subgroup{\svn@filepath}% + \svn@subgroup{\currfiledir\currfilebase}% + \svn@subgroup{\currfilepath}% \endgroup } @@ -1305,10 +1275,10 @@ Try a different version, e.g. v2.1.1 from 2008/02/27}{}% \svnignoreextensions{aux,bbl,fd,enc,fls,glo,idx,ilg,ind,ist,% lof,log,lot,out,svn,svt,svx,toc} -\svnmulti@atendinputfile{% +\AtEndOfFiles{% \if@svnmulti@subgroups \ifsvnsubgroups - \expandafter\ifx\csname svn@ignore@ext@\svn@fileext\endcsname\relax + \expandafter\ifx\csname svn@ignore@ext@\currfileext\endcsname\relax \svnsubgroup \fi \fi @@ -1317,7 +1287,7 @@ lof,log,lot,out,svn,svt,svx,toc} \if@svnmulti@subgroups \ifsvnsubgroups - \svn@addfiletogroup{\jobname .\svn@mainext}{\jobname}% + \svn@addfiletogroup{\jobname .\currfile@mainext}{\jobname}% \svnsubgroup \fi \fi @@ -1381,7 +1351,6 @@ lof,log,lot,out,svn,svt,svx,toc} \else \newcommand*\svnexternal[2][]{% \if@filesw - \svn@checkwrite \begingroup \svn@ifequal{#1}{*}% {\def\svn@temp{\svn@pg}}% @@ -1390,17 +1359,16 @@ lof,log,lot,out,svn,svt,svx,toc} {\def\svn@temp{#1}}% }% \immediate\write\svn@write{% - \noexpand\@svnexternal[\svn@temp]{\svn@filepath}{#2}% + \noexpand\@svnexternal[\svn@temp]{\currfilepath}{#2}% }% \endgroup \fi - \svn@inputsvx{\svn@filedir\svn@filebase}% + \svn@inputsvx{\currfiledir\currfilebase}% } \fi \def\svnexternalpath#1{% \if@filesw - \svn@checkwrite \immediate\write\svn@write{% \noexpand\@svnexternalpath{#1}% }% @@ -1410,7 +1378,7 @@ lof,log,lot,out,svn,svt,svx,toc} \newcommand*\@svnexternal[3][]{} \def\@svnexternalpath#1{} -\newcommand*\svnexternalfile[1][\svn@filedir\svn@filebase]{% +\newcommand*\svnexternalfile[1][\currfiledir\currfilebase]{% \begingroup % TODO: maybe use \svn@catcodes \catcode`\_=12 \catcode`\&=12 @@ -1425,7 +1393,7 @@ lof,log,lot,out,svn,svt,svx,toc} \if@svnmulti@subgroups \ifsvnsubgroups \svn@ifequal{#1}{\svn@rg}% - {\svn@addfiletogroup{#2}{\svn@filedir\svn@filebase}}% + {\svn@addfiletogroup{#2}{\currfiledir\currfilebase}}% {\svn@addfiletogroup{#2}{#1}}% \svn@subgroup{#2}% \fi @@ -1438,9 +1406,9 @@ lof,log,lot,out,svn,svt,svx,toc} \if@svnmulti@autoload -\svnmulti@atbegininputfile{% - \svn@ifequal{\svn@fileext}{tex}% - {\svn@inputsvx{\svn@filedir\svn@filebase}}% +\AtBeginOfFiles{% + \svn@ifequal{\currfileext}{tex}% + {\svn@inputsvx{\currfiledir\currfilebase}}% {}% } @@ -1704,45 +1672,35 @@ patch generated macros '\string\pgf@image@!' from the 'pgf' package!}% }% }% -\@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 -} +\let\svn@write\@mainaux {\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\let\noexpand\ifsvnmodified\@backslashchar\@svn@modified^^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\gdef\noexpand\svnrev{\@svn@rev}^^J% + \noexpand\global\noexpand\let\noexpand\ifsvnmodified\@backslashchar\@svn@modified^^J% + \noexpand\gdef\noexpand\svndate{\@svn@date}^^J% + \noexpand\gdef\noexpand\svnauthor{\@svn@author}^^J% + \noexpand\gdef\noexpand\svnyear{\@svn@year}^^J% + \noexpand\gdef\noexpand\svnmonth{\@svn@month}^^J% + \noexpand\gdef\noexpand\svnday{\@svn@day}^^J% + \noexpand\gdef\noexpand\svnhour{\@svn@hour}^^J% + \noexpand\gdef\noexpand\svnminute{\@svn@minute}^^J% + \noexpand\gdef\noexpand\svnsecond{\@svn@second}^^J% + \noexpand\gdef\noexpand\svntimezonehour{\@svn@timezonehour}^^J% + \noexpand\gdef\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% + \noexpand\gdef\noexpand\svng@@files{\@svng@@files}^^J% }% \svn@writeallgroups\@svng@@files \ifx\svn@glist\empty\else @@ -1756,7 +1714,6 @@ patch generated macros '\string\pgf@image@!' from the 'pgf' package!}% \else \immediate\write\svn@write{^^J}% \fi - \immediate\closeout\svn@write% } \def\svn@writegroupfiles#1{% @@ -1825,10 +1782,10 @@ patch generated macros '\string\pgf@image@!' from the 'pgf' package!}% \if@svnmulti@autokwall -\svnmulti@atbegininputfile{% +\AtBeginOfFiles{% \expandafter - \ifx\csname svn@ignore@ext@\svn@fileext\endcsname\relax - \svnegetfile{\svn@filepath}% + \ifx\csname svn@ignore@ext@\currfileext\endcsname\relax + \svnegetfile{\currfilepath}% \fi } -- cgit v1.2.3