summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/svn-multi
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-06-02 20:59:25 +0000
committerKarl Berry <karl@freefriends.org>2006-06-02 20:59:25 +0000
commit91230936ac4cc78b9f59de25afd779b5362b8646 (patch)
tree72ee94d127fdac3d76e1017c02ad0d997ad3635e /Master/texmf-dist/tex/latex/svn-multi
parent6a3f70a7106e6881776bd33bb4dad106d91c4146 (diff)
svn-multi
git-svn-id: svn://tug.org/texlive/trunk@1653 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/svnkw.sty195
1 files changed, 195 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/svn-multi/svnkw.sty b/Master/texmf-dist/tex/latex/svn-multi/svnkw.sty
new file mode 100644
index 00000000000..ec63ae8c440
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/svn-multi/svnkw.sty
@@ -0,0 +1,195 @@
+%%
+%% This is file `svnkw.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% svnkw.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2006 by Martin Scharrer <martin@scharrer-online.de>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 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.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{svnkw}
+ [2006/05/27 v1.0 SVN Keywords]
+
+\newcommand{\svn}[1]{\@svn#1}
+\def\@svn$#1${#1}
+
+\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{\svnkwdef@{Rev}{#1}}
+\def\svnkwdef@Author#1{\svnkwdef@{Author}{#1}}
+\def\svnkwdef@Date#1{\svnkwdef@{Date}{#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}
+\svnkwdef{Rev}{0} % must always be numerical
+\svnkwdef{Date}{}
+\svnkwdef{Author}{}
+\svnkwdef{Filename}{}
+\svnkwdef{HeadURL}{}
+
+\newcommand{\svnkw}[1]{\csname svnkw#1\endcsname}
+
+\def\svn@scanId#1 #2 #3 #4 #5${%
+\@svn@updateid{#2}{#3 #4}{#5}%
+\svnkwdef{Filename}{#1}%
+\svnkwdef{Date}{#3 #4}%
+\svnkwdef{Revision}{#2}%
+\svnkwdef{Author}{#5}%
+}
+
+\def\svn@readkw$#1${%
+\svn@readkw@sub$#1: $ % call submacro to get case
+\ifnum\svn@case<3
+\def\svn@key{#1}
+\let\svn@value=\svn@empty
+\svn@checkkeyforcolon$#1:$ % needed for case '$kw:$'
+\relax
+\else
+\svn@readkw@def$#1$ % needed to remove leading space
+\fi
+}
+
+\newcount\svn@case
+\let\svn@empty=\empty
+\def\svn@readkw@sub$#1: #2${%
+\def\svn@temp{#2}
+\ifx\svn@temp\empty
+\svn@case=1
+\else
+\svn@checkcolon$#2$
+\ifx\svn@temp\empty
+\svn@case=2
+\else
+\svn@case=3
+\fi\fi
+}
+
+\def\svn@readkw@def$#1: #2 ${%
+\def\svn@key{#1}
+\def\svn@value{#2}
+}
+
+\def\svn@checkcolon$#1: ${%
+\def\svn@temp{#1}
+}
+
+\def\svn@checkkeyforcolon$#1:#2${%
+\def\svn@temp{#2}
+\ifx\svn@temp\empty
+\else
+\def\svn@key{#1}
+\fi
+}
+
+\def\svnrev{0} % \
+\def\svndate{} % > Values for whole project
+\def\svnauthor{} % /
+\def\svnfilerev{0} % \
+\def\svnfiledate{} % > Values for current file
+\def\svnfileauthor{} % /
+\def\@svn@rev{0} % \
+\def\@svn@date{} % > Values for packet internal use
+\def\@svn@author{} % /
+
+\newcommand{\svnid}[1]{%
+\svn@readkw#1 % Read keyword
+\ifx\svn@value\empty % Check if value is empty
+\else
+\expandafter\svn@scanId\svn@value$ % Scan Id
+\fi
+}
+
+\newcommand{\svnidlong}[4]{
+\svnkwdef{HeadURL}{}%
+\svnkwdef{LastChangedDate}{}%
+\svnkwdef{LastChangedRevision}{0}%
+\svnkwdef{LastChangedBy}{}%
+\svnkwsave{#1}\svnkwsave{#2}
+\svnkwsave{#3}\svnkwsave{#4}
+\@svn@updateid{\svnkw{LastChangedRevision}}{\svnkw{LastChangedDate}}%
+{\svnkw{LastChangedBy}}
+}
+
+\newcommand{\svnkwsave}[1]{%
+\def\svn@temp{#1}
+\ifx\svn@temp\empty
+%% skip at empty argument
+\else
+\svn@readkw#1% read keyword
+\svnkwdef{\svn@key}{\svn@value}
+\fi
+}
+
+\def\@svn@updateid#1#2#3{% #1 = rev, #2 date, #3 author (username)
+\edef\svnfilerev{#1}
+\edef\svnfiledate{#2}
+\edef\svnfileauthor{#3}
+\ifx\svnfilerev\empty\else % skip rest if rev is empty
+\ifnum\@svn@rev<\svnfilerev%
+\edef\@svn@rev{#1}
+\edef\@svn@date{#2}
+\edef\@svn@author{#3}
+\else\fi
+\fi
+}
+
+\newcommand{\svnRegisterAuthor}[2]{%
+\expandafter\def\csname svn@author@#1\endcsname{#2}
+}
+
+\newcommand{\svnFullAuthor}{%
+\@ifnextchar{*}
+{\svnFullAuthor@star}
+{\svnFullAuthor@normal}
+}
+\def\svnFullAuthor@star*#1{\svnFullAuthor@{#1}{\ (#1)}}
+\def\svnFullAuthor@normal#1{\svnFullAuthor@{#1}{}}
+\def\svnFullAuthor@#1#2{%
+\csname svn@author@#1\endcsname #2
+}
+
+\AtEndDocument{
+ \ifx\@svn@rev\empty\else
+ \ifnum\@svn@rev=0\else
+ \ifx\@svn@date\empty\else
+ \ifx\@svn@author\empty\else
+ \newwrite\svnwrite
+ \immediate\openout\svnwrite=\jobname.svn
+ \immediate\write\svnwrite{\@percentchar\space SVN cache}
+ \immediate\write\svnwrite{\noexpand\def\noexpand\svnrev{\@svn@rev}}
+ \immediate\write\svnwrite{\noexpand\def\noexpand\svndate{\@svn@date}}
+ \immediate\write\svnwrite{\noexpand\def\noexpand\svnauthor{\@svn@author}}
+ \immediate\closeout\svnwrite
+ \fi\fi\fi\fi
+}
+
+\InputIfFileExists{\jobname.svn}{}{}
+\endinput
+%%
+%% End of file `svnkw.sty'.