1
2
3
4
5
6
7
8
9
10
11
12
13
14\writestatus{loading}{ConTeXt Multilingual Macros Checking}
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34\unprotect
35
36\registerctxluafile{multchk}{}
37
38\protected\def\setvalidparameterkeys{\dodoubleargument\mult_checkers_set_valid_parameter_keys}
39\protected\def\addvalidparameterkeys{\dodoubleargument\mult_checkers_add_valid_parameter_keys}
40
41\def\mult_checkers_set_valid_parameter_keys[#1][#2]{\clf_setvalidinterfacekeys{#1}{#2}}
42\def\mult_checkers_add_valid_parameter_keys[#1][#2]{\clf_addvalidinterfacekeys{#1}{#2}}
43
44\def\mult_checkers_get_checked_parameters_yes[#1]#2[#3]#4[#5
45 {\if\noexpand#5]
46 \expandafter\gobblethreearguments
47 \else
48 \let\setsomevalue\dosetvalue
49 \expandafter\mult_checkers_get_checked_parameters_yes_indeed
50 \fi{#1}{#3}#5}
51
52\def\mult_checkers_get_checked_parameters_yes_indeed#1#2#3]
53 {\clf_getcheckedinterfaceparameters{#1}{#2}{\detokenize{#3}}}
54
55\def\mult_checkers_get_checked_parameters_nop[#1]#2[#3]#4[#5
56 {\if\noexpand#5]
57 \expandafter\gobbletwoarguments
58 \else
59 \let\setsomevalue\dosetvalue
60 \expandafter\mult_checkers_get_checked_parameters_nop_indeed
61 \fi{#3}#5}
62
63\def\mult_checkers_get_checked_parameters_nop_indeed#1#2]
64 {\def\syst_helpers_get_parameters_assign{\syst_helpers_get_parameters_assign_indeed#1}
65 \syst_helpers_process_comma_item#2,],0004}
66
67\protected\def\disablecheckparameters{\let\getcheckedparameters\mult_checkers_get_checked_parameters_nop}
68\protected\def\enablecheckparameters {\let\getcheckedparameters\mult_checkers_get_checked_parameters_yes}
69
70\disablecheckparameters
71
72\protect \endinput
73
74\starttext
75
76\testfeatureonce{10000}{\getcheckedparameters[test][xx][a=b,c= d, e = f]}
77
78\enablecheckparameters
79
80\testfeatureonce{10000}{\getcheckedparameters[test][xx][a=b,c= d, e = f]}
81
82\getcheckedparameters[test][xx][a=a]
83\getcheckedparameters[test][xx][b= b]
84\getcheckedparameters[test][xx][c = c]
85\getcheckedparameters[test][xx][d = d d , e = e ,f = f ]
86\getcheckedparameters[test][xx][g={oeps {oeps}}]
87\getcheckedparameters[test][xx][crap=whatever]
88
89\startlines
90[a:\getvalue{xxa}][a]
91[b:\getvalue{xxb}][b]
92[c:\getvalue{xxc}][c]
93[d:\getvalue{xxd}][d d ]
94[e:\getvalue{xxe}][e ]
95[f:\getvalue{xxf}][f ]
96[g:\getvalue{xxg}][\detokenize\expandafter{\xxg}]
97\stoplines
98
99\setvalidparameterkeys[test][crap]
100
101\getcheckedparameters[test][xx][crap=whatever]
102
103\stoptext
104 |