diff options
author | Karl Berry <karl@freefriends.org> | 2009-03-29 00:02:03 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-03-29 00:02:03 +0000 |
commit | 43a7105f048cdbdeda3ea4c6c6ebd31948e2c5f0 (patch) | |
tree | 7d948dc496a28981ad02eaab14ba2f02d2fca071 | |
parent | eaa8639264ba02c98a791e7a78bb22239841f79f (diff) |
svn-multi 2.1 (28mar09)
git-svn-id: svn://tug.org/texlive/trunk@12558 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/svn-multi.pl | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/svn-multi/README | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/svn-multi/example.pdf | bin | 43038 -> 42960 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/svn-multi/svn-multi.pdf | bin | 1136846 -> 1232969 bytes | |||
-rwxr-xr-x | Master/texmf-dist/scripts/svn-multi/svn-multi.pl | 4 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/svn-multi/Makefile | 3 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/svn-multi/svn-multi-pl.dtx | 29 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/svn-multi/svn-multi.dtx | 565 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/svn-multi/svn-multi.sty | 322 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/svn-multi/svnkw.sty | 18 |
10 files changed, 838 insertions, 109 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/svn-multi.pl b/Build/source/texk/texlive/linked_scripts/svn-multi.pl index 68159ee1213..b98168f7dcc 100755 --- a/Build/source/texk/texlive/linked_scripts/svn-multi.pl +++ b/Build/source/texk/texlive/linked_scripts/svn-multi.pl @@ -8,7 +8,7 @@ # E-mail: martin@scharrer-online.de # WWW: http://www.scharrer-online.de/latex/svn-multi/ # -# $Id: svn-multi-pl.dtx 591 2009-03-19 18:08:07Z martin $ +# $Id: svn-multi-pl.dtx 692 2009-03-27 21:38:45Z martin $ # # This program works only in combination with the LaTeX package 'svn-multi' and # generates .svx files with '\svnidlong' macros holding Subversion keywords for @@ -57,7 +57,7 @@ use warnings; use File::Basename; my $VERSION = "0.2"; my ($REV,$DATE) = - (split ' ','$Id: svn-multi-pl.dtx 591 2009-03-19 18:08:07Z martin $')[2,3]; + (split ' ','$Id: svn-multi-pl.dtx 692 2009-03-27 21:38:45Z martin $')[2,3]; my $dollar = '$'; my @PATH; diff --git a/Master/texmf-dist/doc/latex/svn-multi/README b/Master/texmf-dist/doc/latex/svn-multi/README index 7b5ef2e18a5..e50ba810df2 100644 --- a/Master/texmf-dist/doc/latex/svn-multi/README +++ b/Master/texmf-dist/doc/latex/svn-multi/README @@ -1,6 +1,6 @@ -------------------------------------------------------------- svn-multi (was svnkw) - version 2.0, Mar 23rd, 2009 + version 2.1, Mar 27th, 2009 -------------------------------------------------------------- This package lets you typeset keywords of the version diff --git a/Master/texmf-dist/doc/latex/svn-multi/example.pdf b/Master/texmf-dist/doc/latex/svn-multi/example.pdf Binary files differindex 5a5f1435065..e96fecb03c0 100644 --- a/Master/texmf-dist/doc/latex/svn-multi/example.pdf +++ b/Master/texmf-dist/doc/latex/svn-multi/example.pdf diff --git a/Master/texmf-dist/doc/latex/svn-multi/svn-multi.pdf b/Master/texmf-dist/doc/latex/svn-multi/svn-multi.pdf Binary files differindex 32bf5183d6f..454fee78ef6 100644 --- a/Master/texmf-dist/doc/latex/svn-multi/svn-multi.pdf +++ b/Master/texmf-dist/doc/latex/svn-multi/svn-multi.pdf diff --git a/Master/texmf-dist/scripts/svn-multi/svn-multi.pl b/Master/texmf-dist/scripts/svn-multi/svn-multi.pl index 68159ee1213..b98168f7dcc 100755 --- a/Master/texmf-dist/scripts/svn-multi/svn-multi.pl +++ b/Master/texmf-dist/scripts/svn-multi/svn-multi.pl @@ -8,7 +8,7 @@ # E-mail: martin@scharrer-online.de # WWW: http://www.scharrer-online.de/latex/svn-multi/ # -# $Id: svn-multi-pl.dtx 591 2009-03-19 18:08:07Z martin $ +# $Id: svn-multi-pl.dtx 692 2009-03-27 21:38:45Z martin $ # # This program works only in combination with the LaTeX package 'svn-multi' and # generates .svx files with '\svnidlong' macros holding Subversion keywords for @@ -57,7 +57,7 @@ use warnings; use File::Basename; my $VERSION = "0.2"; my ($REV,$DATE) = - (split ' ','$Id: svn-multi-pl.dtx 591 2009-03-19 18:08:07Z martin $')[2,3]; + (split ' ','$Id: svn-multi-pl.dtx 692 2009-03-27 21:38:45Z martin $')[2,3]; my $dollar = '$'; my @PATH; diff --git a/Master/texmf-dist/source/latex/svn-multi/Makefile b/Master/texmf-dist/source/latex/svn-multi/Makefile index fc3662c8d2b..b6b663f2aa2 100644 --- a/Master/texmf-dist/source/latex/svn-multi/Makefile +++ b/Master/texmf-dist/source/latex/svn-multi/Makefile @@ -75,7 +75,8 @@ group_example.pdf: group_example.tex svn-multi.sty zip: fullclean package doc example tests ${ZIPFILE} ${PACKAGE}.zip: zip -zip: ZIPVERSION=$(shell grep '\\def\\fileversion{.*}' svn-multi.dtx | sed -e 's/\\def\\fileversion{\(.*\)}/\1/' -e 's/\s\+//g') +zip: ZIPVERSION=$(shell grep 'Package: svn-multi ' svn-multi.log | \ + sed -e 's/.*Package: svn-multi ....\/..\/..\s\+\(v\S\+\).*/\1/') ${ZIPFILE}: ${PACKFILES} grep -q '\* Checksum passed \*' svn-multi.log diff --git a/Master/texmf-dist/source/latex/svn-multi/svn-multi-pl.dtx b/Master/texmf-dist/source/latex/svn-multi/svn-multi-pl.dtx index cd849921e65..c6b881819a2 100644 --- a/Master/texmf-dist/source/latex/svn-multi/svn-multi-pl.dtx +++ b/Master/texmf-dist/source/latex/svn-multi/svn-multi-pl.dtx @@ -12,7 +12,7 @@ # E-mail: martin@scharrer-online.de # WWW: http://www.scharrer-online.de/latex/svn-multi/ # -# $Id: svn-multi-pl.dtx 591 2009-03-19 18:08:07Z martin $ +# $Id: svn-multi-pl.dtx 692 2009-03-27 21:38:45Z martin $ # # This program works only in combination with the LaTeX package 'svn-multi' and # generates .svx files with '\svnidlong' macros holding Subversion keywords for @@ -58,14 +58,19 @@ # %<*driver> \fi -\def\filedate$#1: #2 #3 #4-#5-#6 #7 ${% - \year#4\month#5\day#6\relax - \def\filedate{#4/#5/#6}% +\makeatletter +% $Id: svn-multi-pl.dtx 692 2009-03-27 21:38:45Z martin $ +\def\svnmultipl@version {v0.1a} +\def\svnmultipl@rev $#1: #2 ${\def\svnmultipl@rev{#2}} +\def\svnmultipl@date $#1: #2-#3-#4 #5 ${% + \def\svnmultipl@today{{\year#2\month#3\day#4\today}}% + \def\svnmultipl@date{#2/#3/#4}% } -\filedate$Id: svn-multi-pl.dtx 591 2009-03-19 18:08:07Z martin $ -\def\fileversion{v0.1} +\svnmultipl@rev $Rev: 692 $ +\svnmultipl@date $Date: 2009-03-27 21:38:45 +0000 (Fri, 27 Mar 2009) $ + \ProvidesFile{svn-multi-pl.dtx} - [\filedate\space\fileversion\space SVN Keywords extractor for svn-multi] + [\svnmultipl@date\space\svnmultipl@version\space SVN Keywords extractor for svn-multi] \documentclass{ltxdoc} \usepackage{ifpdf} @@ -123,10 +128,12 @@ % } % \iffalse " \fi % -% \title{The \textsf{svn-multi.pl} script\thanks{This document -% corresponds to \textsf{svn-multi.pl}~\fileversion, dated \filedate.}} +% \title{The \textsf{svn-multi.pl} Script} % \author{Martin Scharrer \\ \url{martin@scharrer-online.de} \\ -% \url{http://www.scharrer-online.de/latex/svn-multi}} +% \url{http://www.scharrer-online.de/latex/svn-multi} \\ +% CTAN: \url{http://tug.ctan.org/pkg/svn-multi}} +% \date{Version \expandafter\@gobble\svnmultipl@version\\[0.5ex]\svnmultipl@today} +% % % \ifpdf % \hypersetup{ @@ -159,7 +166,7 @@ use File::Basename; % \begin{macrocode} my $VERSION = "0.2"; my ($REV,$DATE) = - (split ' ','$Id: svn-multi-pl.dtx 591 2009-03-19 18:08:07Z martin $')[2,3]; + (split ' ','$Id: svn-multi-pl.dtx 692 2009-03-27 21:38:45Z martin $')[2,3]; % \end{macrocode} % Declaration of other global constants and variables: diff --git a/Master/texmf-dist/source/latex/svn-multi/svn-multi.dtx b/Master/texmf-dist/source/latex/svn-multi/svn-multi.dtx index 8b33547727d..c5e3f0af0c2 100644 --- a/Master/texmf-dist/source/latex/svn-multi/svn-multi.dtx +++ b/Master/texmf-dist/source/latex/svn-multi/svn-multi.dtx @@ -17,24 +17,35 @@ % % This work consists of the files svn-multi.dtx and svn-multi.ins % and the derived files svn-multi.sty and svnkw.sty. -% $Id: svn-multi.dtx 621 2009-03-23 12:26:36Z martin $ +% +% <*driver> +\makeatletter +% </driver> % \fi % \iffalse -%<*package|driver|wrapper> -\def\filedate$#1: #2 #3 #4-#5-#6 #7 ${% - \year#4\month#5\day#6\relax - \def\filedate{#4/#5/#6}% - \def\filerev{#3}% -} -\filedate$Id: svn-multi.dtx 621 2009-03-23 12:26:36Z martin $ -\def\fileversion{v2.0} -%</package|driver|wrapper> +%<*package|driver> +% $Id: svn-multi.dtx 691 2009-03-27 21:37:56Z martin $ +% +\def\svnmulti@version {v2.1} +\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: 691 $\relax +\svnmulti@date $Date: 2009-03-27 21:37:56 +0000 (Fri, 27 Mar 2009) $\relax + +%</package|driver> %<*driver> \ProvidesFile{svn-multi.dtx} - [\filedate\space\fileversion\space SVN Keywords for multi-file LaTeX documents] + [\svnmulti@date\space\svnmulti@version\space SVN Keywords for multi-file LaTeX documents] + +\def\svnmulti@date $#1: #2-#3-#4 #5 $ {% + \def\svnmulti@today{{\year#2\month#3\day#4\today}}% + \def\svnmulti@date{#2/#3/#4}% +} +\svnmulti@date $Date: 2009-03-27 21:37:56 +0000 (Fri, 27 Mar 2009) $ \documentclass{ltxdoc} -\usepackage{svn-multi} + +\usepackage{svn-multi}[\svnmulti@date] \usepackage{booktabs} \usepackage{ifpdf} \ifpdf @@ -98,8 +109,9 @@ \newcommand{\macrohlinkprefix}{desc} \newcommand{\macrolink}{} +\usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} -\usepackage{lmodern} +\IfFileExists{lmodern.sty}{\usepackage{lmodern}}{}% \def\DescribeMacro{\@ifnextchar*{\DescribeMacroS}{\DescribeMacroN}} \def\DescribeMacroN{% @@ -275,7 +287,7 @@ %<*package> % \fi % -% \CheckSum{2264} +% \CheckSum{2638} % % {\makeatother % \CharacterTable @@ -316,6 +328,8 @@ % \cs{svnfiletoday}.} % \changes{v2.0}{2009/03/23}{New features: keyword groups, external file % support, auto-include of images, files as subgroups and table of revisions.} +% \changes{v2.1}{2009/03/27}{Added automatic extraction of keywords from +% Subversion 'entries' file: 'autokw' option} % % ^^A \GetFileInfo{svn-multi.dtx} % @@ -330,7 +344,7 @@ % \DoNotIndex{\^,\ ,\_,\(,\),\$,\&,\#,\@ampersamchar,\AtEndOfPackage} % \DoNotIndex{\@backslashchar,\begin,\bgroup,\chapter,\day} % \DoNotIndex{\DeclareOption,\do,\dospecials,\@dottedtocline,\egroup} -% \DoNotIndex{\end,\ExecuteOptions,\filedate,\fileversion,\@for} +% \DoNotIndex{\end,\ExecuteOptions,\svnmulti@date,\svnmulti@version,\@for} % \DoNotIndex{\futurelet,\g@addto@macro,\global,\@gobbletwo,\hline} % \DoNotIndex{\hspace,\if@restonecol,\if@twocolumn,\ignorespaces} % \DoNotIndex{\makeatletter,\MakeUppercase,\@mkboth,\month,\@namedef} @@ -346,17 +360,18 @@ % \DoNotIndex{\ProcessKeyvalOptions,\SetupKeyvalOptions} % \DoNotIndex{\@firstoftwo,\@secondoftwo,\@gobble} % -% \title{The \textsf{svn-multi} package \\ formerly known as \textsf{svnkw}} +% \title{The \textsf{svn-multi} Package \\\large formerly known as +% \textsf{svnkw}} % \author{Martin Scharrer \\ \url{martin@scharrer-online.de} \\ % \url{http://www.scharrer-online.de/latex/svn-multi}\\ % CTAN: \url{http://tug.ctan.org/pkg/svn-multi}} -% \date{Version \expandafter\@gobble\fileversion\\[0.5ex]\today} +% \date{Version \expandafter\@gobble\svnmulti@version\\[0.5ex]\svnmulti@today} % % \ifpdf % \hypersetup{% % pdfauthor = {Martin Scharrer <martin@scharrer-online.de>}, -% pdftitle = {The svn-multi package, \fileversion, r\filerev\ from -% \filedate}, +% pdftitle = {The svn-multi package, \svnmulti@version, r\svnmulti@rev\ +% from \svnmulti@date}, % pdfsubject = {Documentation of LaTeX package svn-multi which allows the % typesetting of Subversion keywords in multi-file LaTeX % documents}, @@ -366,6 +381,8 @@ % \fi % \maketitle % +% \vfill +% % \section{Introduction} % This package allows to typeset version control (VC) information provided by % Subversion\footnote{Subversion homepage: \url{http://subversion.tigris.org/}} @@ -390,6 +407,7 @@ % \item Including of the VC information of external files. % \item Table of Revisions. % \end{itemize} +% \newpage % % \subsection{Scope of Keywords} % This package provides the Subversion keyword data in several different scopes: @@ -466,7 +484,7 @@ % other options below. This is the default for reasons mentioned above. % % \DescribeOption{all} -% Activates all features of the package. +% Activates all features of the package except of the experimental ones. % % \DescribeOption{verbatim} % Controls the verbatim mode of the keyword parser macros. Normally verbatim @@ -477,9 +495,8 @@ % % \DescribeOption{external} % Controls the support for keywords from external files described in -% section~\ref{sec:external}. An old |.svn| file should be removed when this -% feature is deactivated to avoid \textit{undefined macro} errors caused by -% macros placed there by this feature. +% section~\ref{sec:external}. This needs either the external script +% \scr{svn-multi.pl} or the \op{autokw} option. % % If the \op{groups} option is enabled the macro % \csi{svnexternalgroup}\marg{group name} can be used to declare a own group @@ -552,7 +569,41 @@ % manually to ensure that the file-local macros are reset to empty values at % the begin of each input file. This prevents the keyword from leaking over % from one file to the next. After every subfile the file-local keyword macros -% are also restored to the value of the parent file. +% are also restored to the value of the parent file. +% +% \DescribeOption{autokw} +% This experimental feature allows the automatically extraction of the keyword +% values from the hidden Subversion working copy database. The database (a text +% file called `|entries|') is located in the hidden Subversion directory +% `|.svn|' (or `|_svn|' on some Windows installations) inside every directory +% which is under VC. +% +% This feature makes an external script like \scr{svn-multi.pl} or even keyword +% macros redundant as long the files are inside a Subversion working directory. +% However, this feature does not work if the files are exported (\eg with +% \texttt{svn~export}) or manually copied and also depends on the used version +% of Subversion. Only versions starting with 1.4 (with working copy format +% version 7) are supported. Earlier version used a different format for the +% |entries| file. Newer versions should be compatible as long the basic format +% is not changed again. +% +% The experimental status will be lifted after the feature was tested using +% different Subversion versions on different platforms. Please do not hesitate +% to send error reports to the package author. Minimal examples and information +% about the used Subversion version and platform are very much appreciated. +% +% This option allows the following values: +% \begin{description} +% \item[\texttt{false}] Feature is disabled (default). +% \item[\textnormal{\sffamily No value or \textbf{\texttt{true}} or +% \textbf{\texttt{all}}}] The keywords of all files are automatically +% extracted. No \cs{svnid} or \cs{svnidlong} macros or external scripts are +% necessary as long the files are inside a Subversion working directory and +% not exported. +% \item[\texttt{ext}] Only the keywords of external files are extracted. This +% avoids the need of the \scr{svn-multi.pl} script. The option \op{external} +% must be still enabled manually. +% \end{description} % % \subsection{Including Subversion Keywords}\label{sec:usage:id} % Subversion keywords are included using \cs{svnid} or \cs{svnidlong}. These @@ -1333,7 +1384,7 @@ % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{svn-multi} - [\filedate\space\fileversion\space SVN Keywords for multi-file LaTeX documents] + [\svnmulti@date\space\svnmulti@version\space SVN Keywords for multi-file LaTeX documents] % \end{macrocode} % \subsubsection*{Options} @@ -1347,6 +1398,8 @@ } \newif\if@svnmulti@anygraphic \newif\if@svnmulti@autoload +\newif\if@svnmulti@autokw +\newif\if@svnmulti@autokwall \DeclareVoidOption{old}{% \@svnmulti@verbatimtrue @@ -1379,6 +1432,7 @@ \DeclareStringOption{autoload}[true] \DeclareBoolOption[false]{table} \DeclareBoolOption[false]{filehooks} +\DeclareStringOption[false]{autokw}[all] \ExecuteOptions{old} \ProcessKeyvalOptions{svn-multi} @@ -1448,6 +1502,32 @@ \fi\fi\fi\fi % \end{macrocode} +% Set \op{autokw} modes: +% \begin{macrocode} +\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 +% \end{macrocode} + % General switch if any graphic option is enabled: % \begin{macrocode} \if@svnmulti@graphics @@ -1525,7 +1605,35 @@ } % \end{macrocode} % \end{macro} -% + +% \begin{macro}{\svn@ifeof}[1]{input file handle} +% Checks if the input file is at the end-of-file (or not open). +% \begin{macrocode} +\def\svn@ifeof#1{% + \ifeof#1% + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\svn@ifonlyone}[1]{group name} +% Checks if there is only one element in the given group file list. +% It looks whether there is a comma in the list. +% \begin{macrocode} +\def\svn@ifonlyone#1{% + \expandafter\expandafter\expandafter + \svn@@ifonlyone\csname @svng@#1@files\endcsname,\relax +} + +\def\svn@@ifonlyone#1,#2\relax{% + \svn@ifempty{#2} +} +% \end{macrocode} +% \end{macro} + % \begin{macro}{\svn@input}[1]{file name/path} % Macro to load |.svx| and |.svt| files. The current keyword group is saved % away and restored after the |.svx| file is loaded. The macros |\IfFileExists| @@ -1541,7 +1649,7 @@ } % \end{macrocode} % \end{macro} -% + % \begin{macro}{\svn@inputsvx}[1]{file name/path without extension} % Used to save and restore file keywords when reading |.svx| files. % \begin{macrocode} @@ -1552,16 +1660,6 @@ } % \end{macrocode} % \end{macro} -% -% \begin{macro}{\@namexdef}[1]{macro name} -% Provides an expanding and global version of |\@namedef|. -% \begin{macrocode} -\providecommand\@namexdef[1]{% - \expandafter\xdef\csname #1\endcsname -} -% \end{macrocode} -% \end{macro} -% % \subsection{Definition of init values} % Initialisation of at least the revision to a numeric value is necessary to not @@ -1599,7 +1697,7 @@ \def\svnurl{} \def\svnfname{} \def\svn@temp{} -\def\svn@pg{} \def\svn@g{} \def\svn@cg{\svn@g} +\def\svn@pg{} \def\svn@g{} \def\svn@cg{\svn@g} \def\svn@rg{\svn@pg} \let\@svng@@files\relax \def\svn@initfile{% @@ -1616,10 +1714,273 @@ \gdef\svnfiletimezoneminute{00}% \gdef\svnfileurl{}% \gdef\svnfilefname{}% + \gdef\svnfiledir{}% } \svn@initfile % \end{macrocode} + +% \subsection{Auto-Keywords} + +% Special care must be taken for the line feed character, otherwise it causes an +% error if \op{autokw} is disabled. +% \begin{macrocode} +\begingroup +\@makeother\^^L +\if@svnmulti@autokw +\gdef\svne@ff{^^L} +\fi +\endgroup +% \end{macrocode} + +% \begin{macrocode} +\if@svnmulti@autokw +% \end{macrocode} +% +% \begin{macrocode} +\newread\svne@read +% \end{macrocode} + +% \begin{macro}{\svne@catcodes} +% Sets the catcodes for verbatim input reading. Also removes the end-of-line +% character. +% \begin{macrocode} +\newcommand*{\svne@catcodes}{% + \let\do\@makeother + \endlinechar=-1 + \dospecials + \do\- \do\: \do\. \do\^^L +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\svne@readline}[1]{macro} +% Reads the next line to the provided macro and handles the end-of-file case +% correctly. +% \begin{macrocode} +\def\svne@readline#1{% + \ifeof\svne@read + \def#1{}% + \else + \read\svne@read to #1\relax + \fi +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\svne@gobblerest} +% Gobbles the rest of the current entry. +% \begin{macrocode} +\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 +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\svne@endread} +% Stops the reading process of the entries file. +% \begin{macrocode} +\def\svne@endread{% + \closein\svne@read +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\svne@parseentriesfile}[1]{file path} +% \begin{macrocode} +\newcommand*{\svne@parseentriesfile}[1]{% + \begingroup + \let\next\relax +% \end{macrocode} +% Open the format file to read the version number: +% \begin{macrocode} + \openin\svne@read=#1format\relax + \ifeof\svne@read\else + \svne@readline\svne@version + \closein\svne@read +% \end{macrocode} +% Check the format version: +% \begin{macrocode} + \ifnum\svne@version>7\relax +% \end{macrocode} +% Now open the entries file and read the version number from there again. +% \begin{macrocode} + \openin\svne@read=#1entries\relax + \ifeof\svne@read\else + \svne@catcodes + \svne@readline\svne@version +% \end{macrocode} +% Check the version and call the parse macros if OK: +% \begin{macrocode} + \ifnum\svne@version>7\relax + \def\next{\svne@parsedirentry% + \svne@parseentries} + \else + \closein\svne@read + \fi + \fi + \fi + \fi + \next + \endgroup +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\svne@parsedirentry} +% Reads the first entry which is the directory entry and sets its URL as base +% URL for all other entries. +% \begin{macrocode} +\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 + }{}% + }{}% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\svne@scandate} +% \begin{macro}{\svne@scandate@} +% Parses the date from the svn entries file. Special care is taken to handle the +% case when the TeX parsing would fail. The catcode of the characters '|-|', +% '|:|', '|.|' used inside the date is set explicitly to ensure the correct +% value. % +% \begin{macrocode} +\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 +% \end{macrocode} +% \end{macro} +% \end{macro} + +% \begin{macro}{\svne@parseentries} +% \begin{macrocode} +\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 + }% + }% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\svne@handleentry} +% This macro is called for every entry except the first one which stands for the +% directory. The VC data is located in the following macros: \csi{svne@name}, +% \csi{svne@date}, \csi{svne@rev}, \csi{svne@author}, \csi{svne@url}. +% +% This implementation sets the correct keywords and calls the update macro to +% emulate the behaviour of \cs{svnidlong}. Then the \cs{svne@endread} macro is +% used to stop the file reading. +% \begin{macrocode} +\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 + }{}% +}% +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\svnegetfile}[1]{file path} +% \begin{macrocode} +\def\svnegetfile#1{% + \begingroup + \svn@getfilename{#1}% + \edef\svnfilefname{\svnfilefname}% + \@onelevel@sanitize\svnfilefname + \svne@parseentriesfile{\svnfiledir .svn/}% + \svne@parseentriesfile{\svnfiledir _svn/}% + \endgroup +} +% \end{macrocode} +% \end{macro} + +% Load keywords of main document at begin of the document body if option is set +% to 'all'. +% \begin{macrocode} +\if@svnmulti@autokwall +\AtBeginDocument{% + \svnegetfile{\jobname.\svn@mainext}% +} +\fi +% \end{macrocode} + +% \begin{macrocode} +\fi +% \end{macrocode} + + % \subsection{Timezone macros} % \begin{macro}{\svntimezone} % \begin{macro}{\svnfiletimezone} @@ -2987,8 +3348,8 @@ Try a different version, e.g. v2.1.1 from 2008/02/27}{}% % The following extensions are ignored by default. % \begin{macrocode} -\svnignoreextensions{aux,bbl,cfg,cls,fd,enc,fls,glo,idx,ilg,ind,ist,% -lof,log,lot,out,sty,svn,svt,svx,toc} +\svnignoreextensions{aux,bbl,fd,enc,fls,glo,idx,ilg,ind,ist,% +lof,log,lot,out,svn,svt,svx,toc} % \end{macrocode} % Check at the end of every input file if files should be extra groups and @@ -3005,11 +3366,29 @@ lof,log,lot,out,sty,svn,svt,svx,toc} } % \end{macrocode} +% The main file is added to the main base name (|\jobname|) subgroup here. This +% subgroup is added as first element to the active group at begin of the +% document body. % \begin{macrocode} +\if@svnmulti@subgroups + \ifsvnsubgroups + \svn@addfiletogroup{\jobname .\svn@mainext}{\jobname}% + \svnsubgroup + \fi +\fi \AtBeginDocument{% \if@svnmulti@subgroups \ifsvnsubgroups - \svn@addfiletogroup{\jobname .\svn@mainext}{\jobname}% + \@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 @@ -3045,7 +3424,37 @@ lof,log,lot,out,sty,svn,svt,svx,toc} % \end{macrocode} % \end{macro} -% \begin{macro}{\svnexternal}[2]{group name}{list of filenames in \texttt{\{ \}}} +% \begin{macro}{\svnexternal}[2]{group name}{list of filenames in \texttt{\{ +% \}}} +% \begin{macrocode} +\if@svnmulti@autokw +% \end{macrocode} +% +% \begin{macrocode} +\newcommand*\svnexternal[2][]{% + \svn@pushfilestack + \svn@ifequal{#1}{*}% + {\edef\svn@eg{\svn@g}}% + {\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 +} +% \end{macrocode} +% +% \begin{macrocode} +\else +% \end{macrocode} % Writes the current input file path and its argument as arguments of % \cs{@svnexternal} into the |.svn| file. % \begin{macrocode} @@ -3067,6 +3476,9 @@ lof,log,lot,out,sty,svn,svt,svx,toc} \svn@inputsvx{\svn@filedir\svn@filebase}% } % \end{macrocode} +% \begin{macrocode} +\fi +% \end{macrocode} % \end{macro} % \begin{macro}{\svnexternalpath}[1]{list of paths in \texttt{\{ \}}} @@ -3430,7 +3842,7 @@ patch generated macros '\string\pgf@image@<name>!' from the 'pgf' package!}% % \begin{macro}{\svntable} % \begin{macrocode} \def\svntable{% - \begin{tabular}{p{0.425\textwidth}rp{0.25\textwidth}p{0.225\textwidth}}% + \begin{tabular}{p{0.425\textwidth}rll}% \hline } % \end{macrocode} @@ -3621,6 +4033,7 @@ patch generated macros '\string\pgf@image@<name>!' from the 'pgf' package!}% % \begin{macrocode} \def\svn@getfilename#1{% \begingroup + \gdef\svnfiledir{}% \edef\svn@temp{#1}% \expandafter\@svn@getfilename\svn@temp/{}\relax }% @@ -3635,9 +4048,15 @@ patch generated macros '\string\pgf@image@<name>!' from the 'pgf' package!}% % split the remainder. % \begin{macrocode} \def\@svn@getfilename#1/#2\relax{% - \svn@ifempty{#2}% - {\endgroup\gdef\svnfilefname{#1}}% - {\@svn@getfilename#2\relax}% + \svn@ifempty{#2}% + {% + \endgroup + \gdef\svnfilefname{#1}% + }% + {% + \xdef\svnfiledir{\svnfiledir#1/}% + \@svn@getfilename#2\relax + }% }% % \end{macrocode} % \end{macro} @@ -3741,18 +4160,34 @@ patch generated macros '\string\pgf@image@<name>!' from the 'pgf' package!}% \advance\svn@grouplevel by 1\relax \expandafter\let \expandafter\svn@files\csname @svng@#1@files\endcsname +% \end{macrocode} +% Stop if no files in list. +% \begin{macrocode} \ifx\svn@files\relax\else \svn@cleanfilelist\svn@files \@for\svn@file:=\svn@files\do{% +% \end{macrocode} +% Check if VC data is set and then if it is a (sub)group or not by looking at +% the file list. +% \begin{macrocode} \svn@ifvalidrev{@svng@\svn@file @rev}% {% \@ifundefined{@svng@\svn@file @files}% {\svn@writefilerow{\the\svn@grouplevel}{\svn@file}}% - {\svn@ifequal{\csname @svng@\svn@file @files\endcsname}{\svn@file.tex}% - {\svn@writefilerow{\the\svn@grouplevel}{\svn@file.tex}}% - {% - \svn@writesubgrouprow{\the\svn@grouplevel}{\svn@file}% - \svn@writegroupfiles{\svn@file}% +% \end{macrocode} +% If subgroup only contains out of a TeX file with the same name print it as +% file and only as subgroup otherwise. If the subgroup file list is empty the +% subgroup was generated in error and is not printed at all. +% \begin{macrocode} + {\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}% + }% }% }% }{}% @@ -3817,6 +4252,24 @@ patch generated macros '\string\pgf@image@<name>!' from the 'pgf' package!}% % \end{macrocode} % \end{macro} +% Load the keywords of every subfile if the \op{autokw} option is enabled and +% the extension is not on the ignore list. +% +% This code is placed here because it has to come after the at-begin-input-file +% code. +% \begin{macrocode} +\if@svnmulti@autokwall + +\svnmulti@atbegininputfile{% + \expandafter + \ifx\csname svn@ignore@ext@\svn@fileext\endcsname\relax + \svnegetfile{\svn@filepath}% + \fi +} + +\fi +% \end{macrocode} + % At the end of document the values are written to the auxiliary file. % \begin{macrocode} \AtEndDocument{% @@ -3842,11 +4295,11 @@ patch generated macros '\string\pgf@image@<name>!' from the 'pgf' package!}% % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{svnkw} -[\filedate\space\fileversion\space Backward compatibility wrapper for svn-multi] -\PackageWarning{svnkw}{The package 'svnkw' got renamed to 'svn-multi' -and is now only a backward compatibility wrapper which loads 'svn-multi'. -Please adjust your document preamble to use the new name.} -\RequirePackage{svn-multi}[\filedate] + [2009/03/27 v2.1 Backward compatibility wrapper for svn-multi] +\PackageWarning{svnkw}{The package 'svnkw' got renamed to 'svn-multi' and is now +only a backward compatibility wrapper which loads 'svn-multi'. Please adjust +your document preamble to use the new name.} +\RequirePackage{svn-multi} % \end{macrocode} % \iffalse %</wrapper> 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 76550d11554..22d1d92e512 100644 --- a/Master/texmf-dist/tex/latex/svn-multi/svn-multi.sty +++ b/Master/texmf-dist/tex/latex/svn-multi/svn-multi.sty @@ -25,16 +25,16 @@ %% This work consists of the files svn-multi.dtx, svn-multi-pl.dtx, svn-multi.ins %% and the derived files svn-multi.sty, svnkw.sty and svn-multi.pl. %% -\def\filedate$#1: #2 #3 #4-#5-#6 #7 ${% - \year#4\month#5\day#6\relax - \def\filedate{#4/#5/#6}% - \def\filerev{#3}% -} -\filedate$Id: svn-multi.dtx 621 2009-03-23 12:26:36Z martin $ -\def\fileversion{v2.0} +\makeatletter +\def\svnmulti@version {v2.1} +\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: 691 $\relax +\svnmulti@date $Date: 2009-03-27 21:37:56 +0000 (Fri, 27 Mar 2009) $\relax + \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{svn-multi} - [\filedate\space\fileversion\space SVN Keywords for multi-file LaTeX documents] + [\svnmulti@date\space\svnmulti@version\space SVN Keywords for multi-file LaTeX documents] \RequirePackage{kvoptions} @@ -44,6 +44,8 @@ } \newif\if@svnmulti@anygraphic \newif\if@svnmulti@autoload +\newif\if@svnmulti@autokw +\newif\if@svnmulti@autokwall \DeclareVoidOption{old}{% \@svnmulti@verbatimtrue @@ -76,6 +78,7 @@ \DeclareStringOption{autoload}[true] \DeclareBoolOption[false]{table} \DeclareBoolOption[false]{filehooks} +\DeclareStringOption[false]{autokw}[all] \ExecuteOptions{old} \ProcessKeyvalOptions{svn-multi} @@ -136,6 +139,29 @@ ! 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 @@ -188,6 +214,24 @@ \@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 @@ -195,14 +239,12 @@ \global\let\svn@g\svn@rg \endgroup } + \def\svn@inputsvx#1{% \svn@pushfilestack \svn@input{#1.svx}% \svn@popfilestack } -\providecommand\@namexdef[1]{% - \expandafter\xdef\csname #1\endcsname -} \def\svnrev{-1} \def\@svn@rev{-1} \def\svndate{} \def\@svn@date{} @@ -219,7 +261,7 @@ \def\svnurl{} \def\svnfname{} \def\svn@temp{} -\def\svn@pg{} \def\svn@g{} \def\svn@cg{\svn@g} +\def\svn@pg{} \def\svn@g{} \def\svn@cg{\svn@g} \def\svn@rg{\svn@pg} \let\@svng@@files\relax \def\svn@initfile{% @@ -236,8 +278,181 @@ \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} @@ -1004,8 +1219,8 @@ Try a different version, e.g. v2.1.1 from 2008/02/27}{}% }% } -\svnignoreextensions{aux,bbl,cfg,cls,fd,enc,fls,glo,idx,ilg,ind,ist,% -lof,log,lot,out,sty,svn,svt,svx,toc} +\svnignoreextensions{aux,bbl,fd,enc,fls,glo,idx,ilg,ind,ist,% +lof,log,lot,out,svn,svt,svx,toc} \svnmulti@atendinputfile{% \if@svnmulti@subgroups @@ -1017,10 +1232,25 @@ lof,log,lot,out,sty,svn,svt,svx,toc} \fi } +\if@svnmulti@subgroups + \ifsvnsubgroups + \svn@addfiletogroup{\jobname .\svn@mainext}{\jobname}% + \svnsubgroup + \fi +\fi \AtBeginDocument{% \if@svnmulti@subgroups \ifsvnsubgroups - \svn@addfiletogroup{\jobname .\svn@mainext}{\jobname}% + \@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 @@ -1041,6 +1271,27 @@ lof,log,lot,out,sty,svn,svt,svx,toc} \def\svn@externalgroup{} \fi +\if@svnmulti@autokw +\newcommand*\svnexternal[2][]{% + \svn@pushfilestack + \svn@ifequal{#1}{*}% + {\edef\svn@eg{\svn@g}}% + {\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 @@ -1058,6 +1309,7 @@ lof,log,lot,out,sty,svn,svt,svx,toc} \fi \svn@inputsvx{\svn@filedir\svn@filebase}% } +\fi \def\svnexternalpath#1{% \if@filesw @@ -1263,7 +1515,7 @@ patch generated macros '\string\pgf@image@<name>!' from the 'pgf' package!}% } \def\svntable{% - \begin{tabular}{p{0.425\textwidth}rp{0.25\textwidth}p{0.225\textwidth}}% + \begin{tabular}{p{0.425\textwidth}rll}% \hline } \def\endsvntable{\hline\end{tabular}} @@ -1339,14 +1591,21 @@ patch generated macros '\string\pgf@image@<name>!' from the 'pgf' package!}% \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}}% - {\@svn@getfilename#2\relax}% + \svn@ifempty{#2}% + {% + \endgroup + \gdef\svnfilefname{#1}% + }% + {% + \xdef\svnfiledir{\svnfiledir#1/}% + \@svn@getfilename#2\relax + }% }% \@input{\jobname .svn} @@ -1415,11 +1674,15 @@ patch generated macros '\string\pgf@image@<name>!' from the 'pgf' package!}% {% \@ifundefined{@svng@\svn@file @files}% {\svn@writefilerow{\the\svn@grouplevel}{\svn@file}}% - {\svn@ifequal{\csname @svng@\svn@file @files\endcsname}{\svn@file.tex}% - {\svn@writefilerow{\the\svn@grouplevel}{\svn@file.tex}}% - {% - \svn@writesubgrouprow{\the\svn@grouplevel}{\svn@file}% - \svn@writegroupfiles{\svn@file}% + {\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}% + }% }% }% }{}% @@ -1463,6 +1726,17 @@ patch generated macros '\string\pgf@image@<name>!' from the 'pgf' package!}% \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 diff --git a/Master/texmf-dist/tex/latex/svn-multi/svnkw.sty b/Master/texmf-dist/tex/latex/svn-multi/svnkw.sty index 190ab159052..b3aa179102a 100644 --- a/Master/texmf-dist/tex/latex/svn-multi/svnkw.sty +++ b/Master/texmf-dist/tex/latex/svn-multi/svnkw.sty @@ -25,20 +25,14 @@ %% This work consists of the files svn-multi.dtx, svn-multi-pl.dtx, svn-multi.ins %% and the derived files svn-multi.sty, svnkw.sty and svn-multi.pl. %% -\def\filedate$#1: #2 #3 #4-#5-#6 #7 ${% - \year#4\month#5\day#6\relax - \def\filedate{#4/#5/#6}% - \def\filerev{#3}% -} -\filedate$Id: svn-multi.dtx 621 2009-03-23 12:26:36Z martin $ -\def\fileversion{v2.0} +\makeatletter \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{svnkw} -[\filedate\space\fileversion\space Backward compatibility wrapper for svn-multi] -\PackageWarning{svnkw}{The package 'svnkw' got renamed to 'svn-multi' -and is now only a backward compatibility wrapper which loads 'svn-multi'. -Please adjust your document preamble to use the new name.} -\RequirePackage{svn-multi}[\filedate] + [2009/03/27 v2.1 Backward compatibility wrapper for svn-multi] +\PackageWarning{svnkw}{The package 'svnkw' got renamed to 'svn-multi' and is now +only a backward compatibility wrapper which loads 'svn-multi'. Please adjust +your document preamble to use the new name.} +\RequirePackage{svn-multi} \endinput %% %% End of file `svnkw.sty'. |