summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-plain.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-plain.def')
-rw-r--r--Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-plain.def72
1 files changed, 64 insertions, 8 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-plain.def b/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-plain.def
index 9128021faa7..c09cf21fe0f 100644
--- a/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-plain.def
+++ b/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-plain.def
@@ -157,12 +157,20 @@
\ifx\pdfoutput\@undefined\alloc@0\count\countdef\insc@unt\pdfoutput\fi
\ifx\pdfoutput\relax\alloc@0\count\countdef\insc@unt\pdfoutput\fi
-\ifcase\pdfoutput%
- \gdef\Gin@driver{dvips.def}%
-\else%
- \gdef\Gin@driver{pdftex.def}%
-\fi%
+\def\pgfutil@guessdriver{
+ \ifcase\pdfoutput%
+ \ifx\XeTeXversion\@undefined
+ \def\pgfsysdriver{pgfsys-dvips.def}% hopefully
+ \else
+ \def\pgfsysdriver{pgfsys-xetex.def}% should be right
+ \fi
+ \else%
+ \def\pgfsysdriver{pgfsys-pdftex.def}% should be right
+ \fi%
+}
+
+
% Global colors
@@ -213,14 +221,62 @@
\let\pgfutil@origend=\end
\def\end{\the\pgfutil@everybye\pgfutil@origend}
+% Link to existing stuff
+\let\pgfutil@voidb@x\voidb@x
+\let\pgfutil@toks@\toks@
+
+
+
+
+% Hack shipout. Should perhaps use atbegshi? Not in standard distribution, currently...
+% Code inspired (but patched...) from everyshi.sty:
+
+\def\pgfutil@insertatbegincurrentpagefrombox#1{%
+ \global\setbox\pgfutil@abb\hbox{\unhbox\pgfutil@abb#1}%
+}
+\newbox\pgfutil@abb%
+\def\pgfutil@insertatbegincurrentpage#1{%
+ \expandafter\gdef\expandafter\pgfutil@abc\expandafter{\pgfutil@abc#1}%
+}
+\let\pgfutil@abc\pgfutil@empty%
+\def\pgfutil@insertatbegineverypage#1{%
+ \expandafter\gdef\expandafter\pgfutil@abe\expandafter{\pgfutil@abe#1}%
+}
+\let\pgfutil@abe\pgfutil@empty%
+
+\def\pgfutil@@EveryShipout@Shipout{%
+ \afterassignment\pgfutil@@EveryShipout@Test
+ \setbox255= %
+}
+\def\pgfutil@@EveryShipout@Test{%
+ \ifvoid\@cclv\relax
+ \aftergroup\pgfutil@EveryShipout@Output
+ \else
+ \pgfutil@EveryShipout@Output
+ \fi%
+}
+\def\pgfutil@EveryShipout@Output{%
+ \setbox255=\vbox{%
+ \setbox0=\hbox{\pgfutil@abe\unhbox\pgfutil@abb\pgfutil@abc\global\let\pgfutil@abc\pgfutil@empty}%
+ \wd0=0pt%
+ \ht0=0pt%
+ \dp0=0pt%
+ \box0%
+ \unvbox255%
+ }%
+ \pgfutil@@EveryShipout@Org@Shipout\box\@cclv%
+}
+\let\pgfutil@@EveryShipout@Org@Shipout\shipout
+\let\shipout\pgfutil@@EveryShipout@Shipout
+
+
% The following is still messy and needs to be cleanup up (everything
% prefixed by pgfutil@):
\def\PackageInfo#1#2{}
-\def\PackageWarning#1#2{\immediate\write-1{Package #1: Warning! #2.}}%
-\def\PackageError#1#2#3{\immediate\write-1{Package #1: Error! #2.}}%
+\def\PackageWarning#1#2{\immediate\write17{Package #1: Warning! #2.}}%
+\def\PackageError#1#2#3{\immediate\write17{Package #1: Error! #2.}}%
\long\def\AtBeginDocument#1{#1}%
-\long\def\AtBeginDvi#1{#1}%
\endinput