summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/svn-multi
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-12-10 00:13:16 +0000
committerKarl Berry <karl@freefriends.org>2010-12-10 00:13:16 +0000
commit51c770a8e01958bb18c9be9426a459a0c076e7ae (patch)
treeabd47d3b6c209ad35602e2ccfd2fb7d60805239b /Master/texmf-dist/tex/latex/svn-multi
parent4a3dacbf99dd46514cee178e616c31d1fe44ed58 (diff)
svn-multi 2.4 (10dec10)
git-svn-id: svn://tug.org/texlive/trunk@20703 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.sty223
1 files changed, 90 insertions, 133 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
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@<name>!' 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@<name>!' 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@<name>!' 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
}