1
2
3
4
5
6
7
8
9
10
11
12
13
14\writestatus
{
loading
}{
ConTeXt
Structure
Macros
Userdata
}
15
16\registerctxluafile
{
strc
usr
}{}
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85\unprotect
86
87\installnamespace
{
userdata
}
88\installnamespace
{
userdataalternative
}
89\installnamespace
{
userdatarenderings
}
90
91\installcommandhandler
\????userdata
{
userdata
}
\????userdata
92\installcommandhandler
\????userdataalternative
{
userdataalternative
}
\????userdataalternative
93
94\unexpanded
\def
\startuserdata
95 {
\begingroup
96 \let
\currentuserdata
\empty
97 \doifelsenextoptionalcs
\userdata_start_delayed
\userdata_start_indeed
}
98
99
100
101
102
103
104
105
106
107
108
109\def
\userdata_start_delayed
[#
1
]
110 {
\doifelseassignmentcs
{
#
1
}
111 \userdata_start_delayed_parameters
112 \userdata_start_delayed_name
113 [#
1
]
}
114
115\def
\userdata_start_delayed_parameters
[#
1
]
116 {
\setupcurrentuserdata
[#
1
]
117 \userdata_start_indeed
}
118
119\def
\userdata_start_delayed_name
[#
1
]
120 {
\edef
\currentuserdata
{
#
1
}
121 \checkuserdataparent
122 \doifelsenextoptionalcs
\userdata_start_delayed_parameters
\userdata_start_indeed
}
123
124\def
\userdata_start_indeed
125 {
\grabbufferdatadirect
\s!userdata
{
\csstring
\startuserdata
}{
\csstring
\stopuserdata
}}
126
127
128
129
130
131
132
133
134
135
136
137
138\unexpanded
\def
\stopuserdata
139 {
\userdataparameter
\c!before
140 \dostarttagged
\t!userdata
\currentuserdata
141 \begingroup
142 \useuserdatastyleandcolor
\c!style\c!color
143 \usealignparameter
\userdataparameter
144 \edef
\currentuserdataalternative
{
\userdataparameter
\c!alternative
}
145 \ifcsname
\currentuserdataalternativehash
\s!parent
\endcsname
\else
146 \let
\currentuserdataalternative
\s!default
147 \fi
148 \usesetupsparameter
\userdataparameter
149 \edef
\p_renderingsetup
{
\userdataalternativeparameter
\c!renderingsetup
}
150 \directsetup
\p_renderingsetup
151 \endgroup
152 \dostoptagged
153 \userdataparameter
\c!after
154 \endgroup
}
155
156\unexpanded
\def
\getuserdata
157 {
\getbufferdata
[
\s!userdata
]
}
158
159\unexpanded
\def
\getinlineuserdata
160 {
\inlinebuffer
[
\s!userdata
]
}
161
162\defineuserdataalternative
163 [
\s!default
]
164 [
\c!renderingsetup
=
\????userdatarenderings
:
\s!default
]
165
166
167
168
169
170
171
172
173\startsetups
[
\????userdatarenderings
:
\s!default
]
174 \getuserdata
175\stopsetups
176
177\setupuserdata
178 [
\c!alternative
=
\s!default
]
179
180\protect
181