summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex')
-rw-r--r--Master/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex74
1 files changed, 70 insertions, 4 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex b/Master/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
index 58fa5b0ef74..f83674c7528 100644
--- a/Master/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
+++ b/Master/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
@@ -7,7 +7,15 @@
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.
+\ifx\eTeXrevision\undefined%
+ \pgfutil@packageerror{PGF}{PGF requires etex in extended mode}{}%
+ \csname @@end\expandafter\endcsname\expandafter\end%
+\fi
+\ifnum\eTeXversion<2
+ \pgfutil@packageerror{PGF}{PGF requires etex version 2}{}%
+ \csname @@end\expandafter\endcsname\expandafter\end%
+\fi
% The purpose of this file is to define the command
% \ProvidesPackageRCS, which should be followed by an RCS id
@@ -44,9 +52,12 @@
\edef\pgfrcsatcode{\the\catcode`\@}
\catcode`\@=11
-
% not used in PGF, deprecated
-\def\ProvidesFileRCS#1{%
+\def\ProvidesFileRCS{%
+ \let\pgfrcs@final=\ProvidesFileRCS@
+ \pgfrcs@parseinput
+}
+\def\ProvidesFileRCS@#1{%
\ProvidesFile{#1}[\pgfversiondate\space v\pgfversion\space(\pgfrevision)]%
}
@@ -54,19 +65,74 @@
\def\pgfretval{#1}%
}%
-\def\ProvidesPackageRCS#1{%
+\def\ProvidesPackageRCS{%
+ \let\pgfrcs@final=\ProvidesPackageRCS@
+ \pgfrcs@parseinput
+}
+\def\ProvidesPackageRCS@#1{%
\pgf@remove@ext#1.\relax
\edef\pgfrcs@marshal{{\pgfretval}[\pgfversiondate\space v\pgfversion\space(\pgfrevision)]}%
\expandafter\ProvidesPackage\pgfrcs@marshal
}
% not used in PGF, deprecated
-\def\ProvidesClassRCS#1{%
+\def\ProvidesClassRCS{%
+ \let\pgfrcs@final=\ProvidesClassRCS@
+ \pgfrcs@parseinput
+}
+\def\ProvidesClassRCS@#1{%
\pgf@remove@ext#1.\relax
\edef\pgfrcs@marshal{{\pgfretval}[\pgfversiondate\space v\pgfversion\space(\pgfrevision)]}%
\expandafter\ProvidesClass\pgfrcs@marshal
}
+\def\pgfrcs@parseinput@bracket{[}%
+\def\pgfrcs@parseinput@dollarsign{$}%
+
+\def\pgfrcs@parseinput#1{%
+ \def\pgfrcs@parseinput@{#1}%
+ \ifx\pgfrcs@parseinput@\pgfrcs@parseinput@bracket%
+ % still accept it if someone has written his own pgfrcs files with headers of sorts
+ % \ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcore.code.tex,v 1.7 2010/04/11 07:09:19 username Exp $
+ \let\next=\pgfrcs@parseinput@opt
+ \else
+ \ifx\pgfrcs@parseinput@\pgfrcs@parseinput@dollarsign
+ % still accept it if someone has written his own pgfrcs files with headers of sorts
+ % \ProvidesPackageRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcore.code.tex,v 1.7 2010/04/11 07:09:19 username Exp $
+ \let\next\pgfrcs@parseinput@dollar
+ \else
+ % the new, normal pgf-way is \ProvidesPackageRCS{pgfcore.code.tex}
+ \def\next{\pgfrcs@final{#1}}%
+ \fi
+ \fi
+ \next
+}
+\def\pgfrcs@parseinput@opt#1] ${%
+ % just backwards compatibility -- ignore the information, but parse the input tokens:
+ \pgfrcs@parseinput@dollar
+}%
+\def\pgfrcs@parseinput@dollar#1${%
+ \pgf@parseid $#1$%
+ % we ignore pretty much everything except for the file name:
+ \edef\pgfrcs@parseinput@{\pgf@rcsfile.\pgf@rcssuffix}%
+ \expandafter\pgfrcs@final\expandafter{\pgfrcs@parseinput@}%
+}%
+% Get date and version from RCS Ids
+\def\pgf@parseid $#1: #2.#3,v #4 #5/#6/#7 #8${%
+ \pgf@parsercsfile$#2/$
+ \def\pgf@rcssuffix{#3}
+ \def\pgf@rcsrevision{#4}
+ \def\pgf@rcsdate{#5/#6/#7}
+}
+\def\pgf@parsercsfile$#1/#2${
+ \def\pgf@temp{#2}
+ \ifx\pgf@temp\pgfutil@empty
+ \def\pgf@rcsfile{#1}
+ \else
+ \pgf@parsercsfile$#2$
+ \fi}
+
+
\ifx\ProvidesPackage\@undefined
% plain tex
\def\ProvidesPackage#1[#2]{\wlog{Loading package #1 version #2.}}