diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleparser.code.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleparser.code.tex | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleparser.code.tex b/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleparser.code.tex index 3528771b1a8..3ac1aba9fce 100644 --- a/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleparser.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleparser.code.tex @@ -410,7 +410,7 @@ \def\pgfparserlet@g {% \ifx\pgfparserlet@argb\pgfutil@sptoken - % will also gobble the \pgfparserlet@c after \fi + % will also gobble the \pgfparserlet@h after \fi \pgfparserlet@gobble@space\pgfparserlet@f \fi \pgfparserlet@h @@ -496,24 +496,40 @@ {} {\csname \pgfparser@current\space final action\endcsname}% } - {% - \futurelet\pgfparsertoken\pgfparser@getnexttoken@a - }% + {\futurelet\pgfparsertoken\pgfparser@getnexttoken@a}% } \pgfutil@protected\def\pgfparser@getnexttoken@a {% - \pgfparser@getnexttoken@iftokengobble\bgroup\bgroup + % check the problematic categories based on the meaning of the token + \edef\pgfparser@tokencategory{\pgfparser@extractmeaning\pgfparsertoken}% + \pgfparser@getnexttoken@ifcategory\pgfparser@category@i\bgroup {% - \pgfparser@getnexttoken@iftokengobble\egroup\egroup + \pgfparser@getnexttoken@ifcategory\pgfparser@category@ii\egroup {% - \pgfparser@getnexttoken@iftokengobble\pgfutil@sptoken{ }% - {\pgfparser@getnexttoken@defchar}% + \pgfparser@getnexttoken@ifcategory\pgfparser@category@x{ }% + {% + \pgfparser@getnexttoken@ifcategory\pgfparser@category@vi{####}% + {\pgfparser@getnexttoken@defchar}% + }% }% }% } -\pgfutil@protected\def\pgfparser@getnexttoken@iftokengobble#1#2% +\begingroup +\def\pgfparser@extractmeaning#1% {% - \ifx\pgfparsertoken#1% + \endgroup + \def\pgfparser@extractmeaning##1% + {\expandafter\pgfparser@extractmeaning@\meaning##1#1#1\pgfparser@mark}% + \def\pgfparser@extractmeaning@##1#1##2#1##3\pgfparser@mark{##1#1##2}% + } +\catcode`\ =12\pgfparser@extractmeaning{ } % ends the group +\edef\pgfparser@category@i{\pgfparser@extractmeaning\bgroup} +\edef\pgfparser@category@ii{\pgfparser@extractmeaning\egroup} +\edef\pgfparser@category@vi{\pgfparser@extractmeaning#} +\edef\pgfparser@category@x{\pgfparser@extractmeaning\pgfutil@sptoken} +\pgfutil@protected\def\pgfparser@getnexttoken@ifcategory#1#2% + {% + \ifx\pgfparser@tokencategory#1% \def\pgfparserletter{#2}% \pgfparser@getnexttoken@gobble \fi |