From 4855f5a841edc1db318818c89f30d12227f4740f Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Tue, 8 Oct 2019 22:03:39 +0200 Subject: 2019-10-08 19:24:00 --- tex/context/base/mkiv/mult-aux.mkiv | 66 +++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 29 deletions(-) (limited to 'tex/context/base/mkiv/mult-aux.mkiv') diff --git a/tex/context/base/mkiv/mult-aux.mkiv b/tex/context/base/mkiv/mult-aux.mkiv index 929943d7f..99d252c6b 100644 --- a/tex/context/base/mkiv/mult-aux.mkiv +++ b/tex/context/base/mkiv/mult-aux.mkiv @@ -180,22 +180,34 @@ % End of experimental code. -\unexpanded\def\mult_interfaces_let #1#2{\expandafter\let \csname#1\ifcsname\k!prefix!#2\endcsname\csname\k!prefix!#2\endcsname\else#2\fi\endcsname} -\unexpanded\def\mult_interfaces_lete#1#2{\expandafter\let \csname#1\ifcsname\k!prefix!#2\endcsname\csname\k!prefix!#2\endcsname\else#2\fi\endcsname\empty} -\unexpanded\def\mult_interfaces_def #1#2{\expandafter\def \csname#1\ifcsname\k!prefix!#2\endcsname\csname\k!prefix!#2\endcsname\else#2\fi\endcsname} -\unexpanded\def\mult_interfaces_edef#1#2{\expandafter\edef\csname#1\ifcsname\k!prefix!#2\endcsname\csname\k!prefix!#2\endcsname\else#2\fi\endcsname} -\unexpanded\def\mult_interfaces_gdef#1#2{\expandafter\gdef\csname#1\ifcsname\k!prefix!#2\endcsname\csname\k!prefix!#2\endcsname\else#2\fi\endcsname} -\unexpanded\def\mult_interfaces_xdef#1#2{\expandafter\xdef\csname#1\ifcsname\k!prefix!#2\endcsname\csname\k!prefix!#2\endcsname\else#2\fi\endcsname} - -\startinterface english - +%D This can give wrong results when we pass e.g. \type{\c!format}, so either we need +%D to use the \type {\k!} ones, but these are not defined in the english interface +%D so from now on we assume that the low level ones are used with the symbolic names +%D and that only the high level setup commands are used with language specific +%D interfaces. + +% \unexpanded\def\mult_interfaces_let #1#2{\expandafter\let \csname#1\ifcsname\k!prefix!#2\endcsname\csname\k!prefix!#2\endcsname\else#2\fi\endcsname} +% \unexpanded\def\mult_interfaces_lete#1#2{\expandafter\let \csname#1\ifcsname\k!prefix!#2\endcsname\csname\k!prefix!#2\endcsname\else#2\fi\endcsname\empty} +% \unexpanded\def\mult_interfaces_def #1#2{\expandafter\def \csname#1\ifcsname\k!prefix!#2\endcsname\csname\k!prefix!#2\endcsname\else#2\fi\endcsname} +% \unexpanded\def\mult_interfaces_edef#1#2{\expandafter\edef\csname#1\ifcsname\k!prefix!#2\endcsname\csname\k!prefix!#2\endcsname\else#2\fi\endcsname} +% \unexpanded\def\mult_interfaces_gdef#1#2{\expandafter\gdef\csname#1\ifcsname\k!prefix!#2\endcsname\csname\k!prefix!#2\endcsname\else#2\fi\endcsname} +% \unexpanded\def\mult_interfaces_xdef#1#2{\expandafter\xdef\csname#1\ifcsname\k!prefix!#2\endcsname\csname\k!prefix!#2\endcsname\else#2\fi\endcsname} + +% \startinterface english \unexpanded\def\mult_interfaces_let #1#2{\expandafter \let\csname#1#2\endcsname} \unexpanded\def\mult_interfaces_lete#1#2{\expandafter \let\csname#1#2\endcsname\empty} \unexpanded\def\mult_interfaces_def #1#2{\expandafter \def\csname#1#2\endcsname} \unexpanded\def\mult_interfaces_edef#1#2{\expandafter\edef\csname#1#2\endcsname} \unexpanded\def\mult_interfaces_gdef#1#2{\expandafter\gdef\csname#1#2\endcsname} \unexpanded\def\mult_interfaces_xdef#1#2{\expandafter\xdef\csname#1#2\endcsname} +% \stopinterface + +%D Do, we only interface the assignment definition: + +\unexpanded\def\mult_interfaces_adef#1#2{\expandafter\def \csname#1\ifcsname\k!prefix!#2\endcsname\csname\k!prefix!#2\endcsname\else#2\fi\endcsname} +\startinterface english + \unexpanded\def\mult_interfaces_adef#1#2{\expandafter \def\csname#1#2\endcsname} \stopinterface % the commented detokenized variant that backtracks ... needs testing usage first @@ -279,23 +291,21 @@ % todo: inline the def/let -\unexpanded\def\mult_interfaces_install_parameter_set_handler#1#2#3#4#5#6% - {\ifx#2\relax\let#2\empty\fi - \unexpanded\def#3{\mult_interfaces_def {#1#2:}}% ##1 {##2} (braces are mandate) - \unexpanded\def#4{\mult_interfaces_edef{#1#2:}}% ##1 {##2} (braces are mandate) - \unexpanded\def#5{\mult_interfaces_let {#1#2:}}% ##1 ##2 - \unexpanded\def#6{\mult_interfaces_lete{#1#2:}}}% ##1 - -\startinterface english - +% \unexpanded\def\mult_interfaces_install_parameter_set_handler#1#2#3#4#5#6% +% {\ifx#2\relax\let#2\empty\fi +% \unexpanded\def#3{\mult_interfaces_def {#1#2:}}% ##1 {##2} (braces are mandate) +% \unexpanded\def#4{\mult_interfaces_edef{#1#2:}}% ##1 {##2} (braces are mandate) +% \unexpanded\def#5{\mult_interfaces_let {#1#2:}}% ##1 ##2 +% \unexpanded\def#6{\mult_interfaces_lete{#1#2:}}}% ##1 +% +% \startinterface english \unexpanded\def\mult_interfaces_install_parameter_set_handler#1#2#3#4#5#6% {\ifx#2\relax\let#2\empty\fi \unexpanded\def#3##1{\expandafter \def\csname#1#2:##1\endcsname}% ##1 {##2} (braces are mandate) \unexpanded\def#4##1{\expandafter\edef\csname#1#2:##1\endcsname}% ##1 {##2} (braces are mandate) \unexpanded\def#5##1{\expandafter \let\csname#1#2:##1\endcsname}% ##1 ##2 \unexpanded\def#6##1{\expandafter \let\csname#1#2:##1\endcsname\empty}}% ##1 - -\stopinterface +% \stopinterface \unexpanded\def\installparametersethandler#1#2% {\normalexpanded @@ -720,21 +730,19 @@ \expandafter\noexpand\csname setupcurrent#2\endcsname % no \every (we use 'current' for consistency) \expandafter\noexpand\csname everysetup#2\endcsname}} -\unexpanded\def\mult_interfaces_install_direct_parameter_set_handler#1#2#3#4#5% - {\unexpanded\def#2{\mult_interfaces_def #1}% - \unexpanded\def#3{\mult_interfaces_edef#1}% - \unexpanded\def#4{\mult_interfaces_let #1}% - \unexpanded\def#5{\mult_interfaces_let #1\empty}}% - -\startinterface english +% \unexpanded\def\mult_interfaces_install_direct_parameter_set_handler#1#2#3#4#5% +% {\unexpanded\def#2{\mult_interfaces_def #1}% +% \unexpanded\def#3{\mult_interfaces_edef#1}% +% \unexpanded\def#4{\mult_interfaces_let #1}% +% \unexpanded\def#5{\mult_interfaces_let #1\empty}}% +% \startinterface english \unexpanded\def\mult_interfaces_install_direct_parameter_set_handler#1#2#3#4#5% {\unexpanded\def#2##1{\expandafter \def\csname#1##1\endcsname}% \unexpanded\def#3##1{\expandafter\edef\csname#1##1\endcsname}% \unexpanded\def#4##1{\expandafter \let\csname#1##1\endcsname}% \unexpanded\def#5##1{\expandafter \let\csname#1##1\endcsname\empty}}% - -\stopinterface +% \stopinterface \unexpanded\def\installdirectparametersethandler#1#2% {\normalexpanded -- cgit v1.2.3