summaryrefslogtreecommitdiff
path: root/graphics/pgf/base/tex/generic/utilities/pgfrcs.code.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/base/tex/generic/utilities/pgfrcs.code.tex')
-rw-r--r--graphics/pgf/base/tex/generic/utilities/pgfrcs.code.tex153
1 files changed, 153 insertions, 0 deletions
diff --git a/graphics/pgf/base/tex/generic/utilities/pgfrcs.code.tex b/graphics/pgf/base/tex/generic/utilities/pgfrcs.code.tex
new file mode 100644
index 0000000000..ee194939ee
--- /dev/null
+++ b/graphics/pgf/base/tex/generic/utilities/pgfrcs.code.tex
@@ -0,0 +1,153 @@
+% Copyright 2019 by Till Tantau
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% 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
+% string. This command will also be available in plain TeX, where it
+% prints out a message to the log.
+
+\pgfutil@IfFileExists{pgf.revision.tex}{\input pgf.revision.tex } {%
+ \def\pgfrevision{0.0}%
+ \def\pgfversion{0.0}%
+ \def\pgfversiondate{2014-07-01}%
+ \def\pgfrevisiondate{2014-07-01}%
+}
+
+\begingroup
+\catcode`\"=12
+\pgfutil@IfUndefined{directlua}{}{%
+ \directlua{pgf = {}; pgf.pgfversion = "\pgfversion"}%
+}%
+\endgroup
+
+% \def\pgftypesetversion{\oldstylenums{3}.\oldstylenums{0}.\oldstylenums{1}}
+% XXX : implement pretty-printing:
+% which is better? 'version' is something like 3.0.1 . revision is
+% 3.0.1-151-g62184b3 which might be better for instable builds
+%\let\pgftypesetversion=\pgfversion
+\let\pgftypesetversion=\pgfrevision
+
+
+\ifx\pgfrcsloaded\undefined
+\def\pgfrcsloaded{}
+
+\edef\pgfrcsatcode{\the\catcode`\@}
+\catcode`\@=11
+
+% not used in PGF, deprecated
+\def\ProvidesFileRCS{%
+ \let\pgfrcs@final=\ProvidesFileRCS@
+ \pgfrcs@parseinput
+}
+\def\ProvidesFileRCS@#1{%
+ \ProvidesFile{#1}[\pgfversiondate\space v\pgfversion\space(\pgfrevision)]%
+}
+
+\def\pgf@remove@ext#1.#2\relax{%
+ \def\pgfretval{#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{%
+ \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.}}
+\fi
+
+\ifx\ProvidesFile\@undefined
+ % plain tex
+ \def\ProvidesFile#1[#2]{\wlog{Loading file #1 version #2.}}
+\fi
+
+\ProvidesPackageRCS{pgfrcs.code.tex}
+
+\catcode`\@=\pgfrcsatcode
+
+\fi
+
+
+% Local Variables:
+% coding: undecided-unix
+% End: