checkparameters and current beta (20120802)
![](https://secure.gravatar.com/avatar/b12df59411515e6737a4d3b35c3ee642.jpg?s=120&d=mm&r=g)
Hi, \checkparameters seems broken in the current beta. The following example used to work at least with version 2012.06.13 --------------------------------------------------------------------------------- \def\myCom[#1]{% \checkparameters[#1] \ifparameters \getparameters[do][one=1,two=2,#1] \doone\ \dotwo \else #1 \fi } \starttext \myCom[one] \myCom[one=one,two=two] \stoptext --------------------------------------------------------------------------------- … while with the current beta (2012.08.02) it results in: system > tex > error on line 11 in file testcheckparameters.tex: Undefined control sequence ... 1 \def\myCom[#1]{% 2 \checkparameters[#1] 3 \ifparameters 4 \getparameters[do][one=1,two=2,#1] 5 \doone\ \dotwo 6 \else 7 #1 8 \fi 9 } 10 \starttext 11 >> \myCom[one] 12 13 \myCom[one=one,two=two] 14 \stoptext \checkparameters ..._helpers_get_empty_parameters #1=@@\_e_o_s_ \myCom [#1]->\checkparameters [#1] \ifparameters \getparameters [do][one=1,t... l.11 \myCom[one] Thanks in advance, Daniel
![](https://secure.gravatar.com/avatar/27c34cb91f1e92bd850fe60b3d9ef336.jpg?s=120&d=mm&r=g)
Am 03.08.2012 um 21:12 schrieb Daniel Schopper
Hi, \checkparameters seems broken in the current beta. The following example used to work at least with version 2012.06.13
--------------------------------------------------------------------------------- \def\myCom[#1]{% \checkparameters[#1] \ifparameters \getparameters[do][one=1,two=2,#1] \doone\ \dotwo \else #1 \fi } \starttext \myCom[one]
\myCom[one=one,two=two] \stoptext
You have to change this on syst-aux.mkiv: \unexpanded\def\checkparameters[#1]% - {\syst_helpers_get_empty_parameters#1=@@\_e_o_s_} + {\syst_helpers_check_parameters#1=@@\_e_o_s_} You can also use \doifassignmentelse to check the content of your macro. \def\mycommand[#1]% {\doifassignmentelse{#1} {\getrawparameters[mycommand][one=1,two=2,#1]% \mycommandone\ \mycommandtwo} {#1}} When you want to use \if… \else … \fi in your command you can use this: \def\mycommand[#1]% {\doifassignmentelse{#1}\donetrue\donefalse \ifdone \getrawparameters[mycommand][one=1,two=2,#1]% \mycommandone\ \mycommandtwo \else #1% \fi} Wolfgang
![](https://secure.gravatar.com/avatar/b12df59411515e6737a4d3b35c3ee642.jpg?s=120&d=mm&r=g)
Great, thanks! Am 03.08.12 22:44, schrieb Wolfgang Schuster:
Am 03.08.2012 um 21:12 schrieb Daniel Schopper
: Hi, \checkparameters seems broken in the current beta. The following example used to work at least with version 2012.06.13
--------------------------------------------------------------------------------- \def\myCom[#1]{% \checkparameters[#1] \ifparameters \getparameters[do][one=1,two=2,#1] \doone\ \dotwo \else #1 \fi } \starttext \myCom[one]
\myCom[one=one,two=two] \stoptext
You have to change this on syst-aux.mkiv:
\unexpanded\def\checkparameters[#1]% - {\syst_helpers_get_empty_parameters#1=@@\_e_o_s_} + {\syst_helpers_check_parameters#1=@@\_e_o_s_}
You can also use \doifassignmentelse to check the content of your macro.
\def\mycommand[#1]% {\doifassignmentelse{#1} {\getrawparameters[mycommand][one=1,two=2,#1]% \mycommandone\ \mycommandtwo} {#1}}
When you want to use \if… \else … \fi in your command you can use this:
\def\mycommand[#1]% {\doifassignmentelse{#1}\donetrue\donefalse \ifdone \getrawparameters[mycommand][one=1,two=2,#1]% \mycommandone\ \mycommandtwo \else #1% \fi}
Wolfgang ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
participants (2)
-
Daniel Schopper
-
Wolfgang Schuster