diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeysfiltered.code.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeysfiltered.code.tex | 202 |
1 files changed, 155 insertions, 47 deletions
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeysfiltered.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeysfiltered.code.tex index ed490784564..5d7a731334d 100644 --- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeysfiltered.code.tex +++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeysfiltered.code.tex @@ -1,3 +1,23 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% This file is a copy of some part of PGF/Tikz. +%%% It has been copied here to provide : +%%% - compatibility with older PGF versions +%%% - availability of PGF contributions by Christian Feuersaenger +%%% which are necessary or helpful for pgfplots. +%%% +%%% For reasons of simplicity, I have copied the whole file, including own contributions AND +%%% PGF parts. The copyrights are as they appear in PGF. +%%% +%%% Note that pgfplots has compatible licenses. +%%% +%%% This copy has been modified in the following ways: +%%% - nested \input commands have been updated +%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Date of this copy: Di 29. Dez 22:11:16 CET 2009 %%% + + + % Copyright 2008 by Christian Feuersaenger % % This file may be distributed and/or modified @@ -76,6 +96,8 @@ % The actual case number (0-3) will be provided as contents % of the macro % \pgfkeyscasenumber. +% It is always a one-character token, so it may be compared +% with both, \ifnum or \if. % Please note that unknown options will be processed with % the usual '.unknown' handlers unless the key filter takes % control over unknown options as well. @@ -150,17 +172,17 @@ % % Example: % \pgfkeys{/my group/.cd,/utils/exec=\pgfkeysalsofrom\filtered} -\def\pgfkeysalsofrom#1{% +\long\def\pgfkeysalsofrom#1{% \expandafter\pgfkeysalso\expandafter{#1}% } % The same as \pgfkeysalsofrom, but it invokes \pgfkeysalsofiltered. -\def\pgfkeysalsofilteredfrom#1{% +\long\def\pgfkeysalsofilteredfrom#1{% \expandafter\pgfkeysalsofiltered\expandafter{#1}% } % #1 = options -\long\def\pgfkeysalsofiltered#1{% +\long\long\def\pgfkeysalsofiltered#1{% \pgfkeys@install@filter@and@invoke{\pgfkeysalso{#1}}% }% @@ -168,14 +190,14 @@ % % #1: default path % #2: key-value-pairs -\def\pgfqkeysfiltered#1{% +\long\def\pgfqkeysfiltered#1{% \expandafter\pgfqkeysfiltered@@install\expandafter{\pgfkeysdefaultpath}{#1}% } % #1: old value of default path. % #2: default path % #3: key-value-list. -\def\pgfqkeysfiltered@@install#1#2#3{% +\long\def\pgfqkeysfiltered@@install#1#2#3{% \pgfkeys@install@filter@and@invoke{% \def\pgfkeysdefaultpath{#2/}\pgfkeys@parse#3,\pgfkeys@mainstop\def\pgfkeysdefaultpath{#1}% }% @@ -214,7 +236,7 @@ % Deactivates family #1. % % #1 maybe a macro. -\def\pgfkeysdeactivatefamily#1{ +\def\pgfkeysdeactivatefamily#1{% \pgfkeysiffamilydefined {#1}% {\csname pgfk@#1/familyactivefalse\endcsname}% @@ -292,7 +314,15 @@ \def\pgfkeysgetfamily#1#2{% \pgfkeysifdefined{#1/family}{\pgfkeysgetvalue{#1/family}{#2}\pgfkeyssuccesstrue}{\pgfkeyssuccessfalse}% } - + +% Equivalent to \pgfkeys{#1/.belongs to family=#2} +\def\pgfkeyssetfamily#1#2{% + \pgfkeysiffamilydefined{#2}{% + \pgfkeyssetvalue{#1/family}{#2}% + }{% + \pgfkeysalso{/errors/family unknown=#2}% + }% +}% % Sets \ifpgfkeysfiltercontinue to true iff the current key belongs to @@ -483,13 +513,7 @@ },% /handlers/.activate family/.code=\pgfkeysactivatefamily{\pgfkeyscurrentpath}, /handlers/.deactivate family/.code=\pgfkeysdeactivatefamily{\pgfkeyscurrentpath}, - /handlers/.belongs to family/.code={% - \pgfkeysiffamilydefined{#1}{% - \pgfkeyssetvalue{\pgfkeyscurrentpath/family}{#1}% - }{% - \pgfkeysalso{/errors/family unknown=#1}% - }% - },% + /handlers/.belongs to family/.code={\pgfkeyssetfamily{\pgfkeyscurrentpath}{#1}},% % % % An addition to the '.try' and '.retry' handlers: @@ -543,12 +567,12 @@ % Returns true iff the currently processed key belongs to an active family. % A family is active if it has been activated before. /pgf/key filters/active families/.code={% - \ifnum\pgfkeyscasenumber=0 + \if\pgfkeyscasenumber0% % unknown options shall be processed with the % unknown-handlers. \pgfkeysfiltercontinuetrue \else - \ifnum\pgfkeyscasenumber=3 + \if\pgfkeyscasenumber3% \pgfkeysgetfamily\pgfkeyscurrentpath\pgfkeyspred@TMP \else \pgfkeysgetfamily\pgfkeyscurrentkey\pgfkeyspred@TMP @@ -577,10 +601,10 @@ % #2: the predicate which will be invoked in case 3 with % the current case number as argument. /pgf/key filters/active families or no family/.code 2 args={% - \ifnum\pgfkeyscasenumber=0 + \if\pgfkeyscasenumber0% \pgfkeysevalkeyfilterwith{#2}% \else - \ifnum\pgfkeyscasenumber=3 + \if\pgfkeyscasenumber3% \pgfkeysgetfamily\pgfkeyscurrentpath\pgfkeyspred@TMP \else \pgfkeysgetfamily\pgfkeyscurrentkey\pgfkeyspred@TMP @@ -593,11 +617,11 @@ \fi }, /pgf/key filters/active families or no family DEBUG/.code 2 args={% - \ifnum\pgfkeyscasenumber=0 + \if\pgfkeyscasenumber0% \immediate\write16{[pgfkeyshasactivefamilyornofamily(\pgfkeyscurrentkey, \pgfkeyscasenumber) invoking unknown handler '#2']}% \pgfkeysevalkeyfilterwith{#2}% \else - \ifnum\pgfkeyscasenumber=3 + \if\pgfkeyscasenumber3% \pgfkeysgetfamily\pgfkeyscurrentpath\pgfkeyspred@TMP \else \pgfkeysgetfamily\pgfkeyscurrentkey\pgfkeyspred@TMP @@ -616,6 +640,59 @@ \fi }, % + % A (faster) shortcut for + % /pgf/key filters/active families or no family= + % {/pgf/keys filters/false} + % {/pgf/keys filters/false} + /pgf/key filters/active families and known/.code={% + \if\pgfkeyscasenumber0% + \pgfkeysfiltercontinuefalse + \else + \if\pgfkeyscasenumber3% + \pgfkeysgetfamily\pgfkeyscurrentpath\pgfkeyspred@TMP + \else + \pgfkeysgetfamily\pgfkeyscurrentkey\pgfkeyspred@TMP + \fi + \ifpgfkeyssuccess + \pgfkeysisfamilyactive{\pgfkeyspred@TMP}% + \else% Ok, it does not belong to any family. + \pgfkeysfiltercontinuefalse + \fi + \fi + }, + % A (faster) shortcut for + % /pgf/key filters/active families or no family= + % {/pgf/key filters/is descendant of=#1}% for keys without family + % {/pgf/keys filters/false} + /pgf/key filters/active families or descendants of/.code={% + \if\pgfkeyscasenumber0% + \pgfkeysfiltercontinuefalse + \else + \if\pgfkeyscasenumber3% + \pgfkeysgetfamily\pgfkeyscurrentpath\pgfkeyspred@TMP + \else + \pgfkeysgetfamily\pgfkeyscurrentkey\pgfkeyspred@TMP + \fi + \ifpgfkeyssuccess + \pgfkeysisfamilyactive{\pgfkeyspred@TMP}% + \else% Ok, it does not belong to any family. + % the 'is descendendant of' implementation has been + % COPY PASTED here: + % + % string prefix comparison: + \def\pgfkeysisdescendantof@impl##1#1##2\pgf@@eov{% + \def\pgfkeyspred@TMP{##1}% + \ifx\pgfkeyspred@TMP\pgfkeys@empty + \pgfkeysfiltercontinuetrue + \else + \pgfkeysfiltercontinuefalse + \fi + }% + \expandafter\pgfkeysisdescendantof@impl\pgfkeyscurrentkey#1\pgf@@eov + \fi + \fi + }, + % % Processes only options which are childs of #1. % Example: % is descendant of/.install key filter=/foo @@ -626,14 +703,16 @@ % but not for % /bar/foo/... /pgf/key filters/is descendant of/.code={% - \ifnum\pgfkeyscasenumber=0 + \if\pgfkeyscasenumber0% %\message{'\pgfkeyscurrentkey' (case \pgfkeyscasenumber) is UNKNOWN. Calling unknown handler.}% % unknown options shall be processed with the % unknown-handlers. \pgfkeysfiltercontinuetrue \else % string prefix comparison: - \long\def\pgfkeysisdescendantof@impl##1#1##2\pgf@@eov{% + % [ note : this has been COPY-PASTED to + % |active families or descendants of| ] + \def\pgfkeysisdescendantof@impl##1#1##2\pgf@@eov{% \def\pgfkeyspred@TMP{##1}% \ifx\pgfkeyspred@TMP\pgfkeys@empty %\message{'\pgfkeyscurrentkey' (case \pgfkeyscasenumber) is descendant of '#1': TRUE.}% @@ -651,7 +730,7 @@ % % Returns true if the currently processed full key equals #2. /pgf/key filters/equals/.code={% - \ifnum\pgfkeyscasenumber=0 + \if\pgfkeyscasenumber0% % Unknown option: \pgfkeysfiltercontinuetrue \else @@ -670,6 +749,7 @@ % Example: % not/.install key filter={is descendend of=/tikz} % will install a key filter which evaluates 'is descendant of' with argument '/tikz' and returns the logical negation of the result. + % /pgf/key filters/not/.code={% \pgfkeysevalkeyfilterwith{#1}% \ifpgfkeysfiltercontinue @@ -693,12 +773,14 @@ },% /pgf/key filters/true/.code={\pgfkeysfiltercontinuetrue},% /pgf/key filters/true/.install key filter, - /pgf/key filters/false/.code={\pgfkeysfiltercontinuefalse},% + /pgf/key filters/false/.code={% + \pgfkeysfiltercontinuefalse + },% % % Returns false if the current key is unknown, which avoids calling % the unknown handlers. /pgf/key filters/defined/.code={% - \ifnum\pgfkeyscasenumber=0 + \if\pgfkeyscasenumber0% \pgfkeysfiltercontinuefalse \else \pgfkeysfiltercontinuetrue @@ -731,7 +813,7 @@ \pgfkeysgetvalue{\pgfkeyscurrentkey/.@cmd}{\pgfkeys@code}% \expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov \else -%\message{FILTEReD OUT KEY \pgfkeyscurrentkey!}% +%\message{FILTERED OUT KEY \pgfkeyscurrentkey!}% \pgfkeys@filtered@handler% \fi }{% @@ -750,16 +832,20 @@ \pgfkeys@split@path % CASE THREE: a handler \pgfkeysifdefined{/handlers/\pgfkeyscurrentname/.@cmd}{% - \def\pgfkeyscasenumber{3}% - \pgfkeys@key@predicate% - \ifpgfkeysfiltercontinue + \pgfkeys@ifexecutehandler{% + \def\pgfkeyscasenumber{3}% + \pgfkeys@key@predicate% + \ifpgfkeysfiltercontinue %\message{PROCESSING KEY \pgfkeyscurrentkey!}% - \pgfkeysgetvalue{/handlers/\pgfkeyscurrentname/.@cmd}{\pgfkeys@code}% - \expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov - \else + \pgfkeysgetvalue{/handlers/\pgfkeyscurrentname/.@cmd}{\pgfkeys@code}% + \expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov + \else %\message{FILTERED OUT KEY \pgfkeyscurrentkey!}% - \pgfkeys@filtered@handler% - \fi + \pgfkeys@filtered@handler% + \fi + }{% + \pgfkeys@unknown + }% }{% \pgfkeys@unknown }% @@ -788,6 +874,12 @@ \pgfkeys@orig@try \else \pgfkeysfiltercontinuetrue + \edef\pgfkeyscurrentkey{\pgfkeyscurrentpath}% make sure that \pgfkeys@code doesn't know about 'try'. Important for .is choice + \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text% Hmm... no value + \pgfkeysifdefined{\pgfkeyscurrentpath/.@def}% + {\pgfkeysgetvalue{\pgfkeyscurrentpath/.@def}{\pgfkeyscurrentvalue}} + {}% no default, so leave it + \fi% \pgfkeysifdefined{\pgfkeyscurrentpath/.@cmd}% {% % CASE ONE: a command option @@ -795,11 +887,6 @@ \pgfkeys@key@predicate% \ifpgfkeysfiltercontinue \pgfkeysgetvalue{\pgfkeyscurrentkey/.@cmd}{\pgfkeys@code}% - \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text% Hmm... no value - \pgfkeysifdefined{\pgfkeyscurrentpath/.@def}% - {\pgfkeysgetvalue{\pgfkeyscurrentpath/.@def}{\pgfkeyscurrentvalue}} - {}% no default, so leave it - \fi% \expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov% \else \pgfkeys@filtered@handler% @@ -822,7 +909,33 @@ \fi \pgfkeyssuccesstrue% }% - {\pgfkeyssuccessfalse}% + {% + \pgfkeys@split@path% + \pgfkeysifdefined{/handlers/\pgfkeyscurrentname/.@cmd}{% + % CASE THREE: a handled key + % + % in the standard configuration, this check here is redundand + % because pgfkeys@ifexecutehandler === true. + % It is only interesting for 'handle only existing'. + \pgfkeys@ifexecutehandler{% + \def\pgfkeyscasenumber{3}% + \pgfkeys@key@predicate% + \ifpgfkeysfiltercontinue +%\message{PROCESSING KEY \pgfkeyscurrentkey!}% + \pgfkeysgetvalue{/handlers/\pgfkeyscurrentname/.@cmd}{\pgfkeys@code}% + \expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov + \else +%\message{FILTERED OUT KEY \pgfkeyscurrentkey!}% + \pgfkeys@filtered@handler% + \fi + \pgfkeyssuccesstrue% + }{% + \pgfkeyssuccessfalse + }% + }{% + \pgfkeyssuccessfalse + }% + }% }% \fi } @@ -883,10 +996,10 @@ % The argument '#1' MUST be a FULL KEY. % % The implementation employs a subset of the \pgfkeysalso code. -\def\pgfkeysevalkeyfilterwith#1{% +\long\def\pgfkeysevalkeyfilterwith#1{% \pgfkeys@eval@key@filter@subroutine@unpack#1=\pgfkeysnovalue=\pgfkeys@stop }% -\def\pgfkeys@eval@key@filter@subroutine@unpack#1=#2=#3\pgfkeys@stop{% +\long\def\pgfkeys@eval@key@filter@subroutine@unpack#1=#2=#3\pgfkeys@stop{% \pgfkeys@spdef\pgfkeyspred@TMP{#1}% \edef\pgfkeyspred@TMP{\pgfkeyspred@TMP}% \pgfkeys@spdef\pgfkeyspred@TMPB{#2}% TMPB=value @@ -908,11 +1021,6 @@ } -\def\pgfkeys@nevermind#1\relax{\let\pgfkeyscurrentkeyRAW=\pgfkeyscurrentkey} -\def\pgfkeys@addpath#1\relax{\def\pgfkeyscurrentkeyRAW{#1}% old @addpath: - \edef\pgfkeyscurrentkey{\pgfkeysdefaultpath#1}% -} - \def\pgfkeys@non@outer@newif@#1#2{% \expandafter\edef\csname #2true\endcsname{\noexpand\let\noexpand#1=\noexpand\iftrue}% \expandafter\edef\csname #2false\endcsname{\noexpand\let\noexpand#1=\noexpand\iffalse}% |