Tcl Library Source Code

Changes On Branch tcllib-1-17-rc
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch tcllib-1-17-rc Excluding Merge-Ins

This is equivalent to a diff from 837cadf794 to c2e764dd63

2015-04-30
04:21
Tcllib 1.17 Release check-in: 66ed0de3b3 user: aku tags: trunk, release, tcllib-1-17
04:13
Updated list of released packages. Closed-Leaf check-in: c2e764dd63 user: aku tags: tcllib-1-17-rc
03:57
Properly close odie_tools_for_1.17 for release. check-in: 788ac075c9 user: aku tags: tcllib-1-17-rc
2015-04-29
19:51
Extending the statistics package with a number of procedures (most common probability distributions now implemented and some additional tests). Bumped to version 1.0. Also merging in changes from tcllib 1.17 Closed-Leaf check-in: 5fe06d906c user: markus tags: math-stats-extended
04:49
Modified the implementations for zip encode/decode to make use of the embedded ziplib facilities in the Tcl core when running under 8.6+ check-in: 45878913f0 user: hypnotoad tags: zip_for_8.6
2015-04-27
17:19
Adding the bits from odie that will be included in 1.17 check-in: a0af500968 user: hypnotoad tags: odie_tools_for_1.17
2015-04-23
20:51
Merged math::linalg fix into release. check-in: 7ef762388b user: aku tags: tcllib-1-17-rc
20:50
Merged math::linalg fix. check-in: 837cadf794 user: aku tags: trunk
20:49
Updated docs. Closed-Leaf check-in: ebcc91a605 user: aku tags: linalg-7f082f8667
2015-04-21
20:25
logger - Ticket [cf775f72ef] - Fixed handling of level default for initNamespace. Inherit from parent first, if it exists. Bumped to version 0.9.4. Extended testsuite. Updated docs. check-in: 69e306a577 user: andreask tags: trunk

Changes to DESCRIPTION.txt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
Identifier: tcllib
Title:  Tcl Standard Library
Description: This package is intended to be a collection of
    Tcl packages that provide utility functions useful to a
    large collection of Tcl programmers.
Rights: BSD
Version: 1.15
URL: http://core.tcl.tk/tcllib
Architecture: tcl
Contributor:  <jeffh at activestate dot com>
Contributor: Aaron Faupell <afaupell at users dot sourceforge dot net>
Contributor: Andreas Kupries <andreask at activestate dot com>
Contributor: Arjen Markus <arjenmarkus at users dot sourceforge dot net>
Contributor: Benjamin Riefenstahl <b dot riefenstahl at turtle-trading dot net>
Contributor: Bob Techentin <techentin at users dot sourceforge dot net>
Contributor: Brent Welch <welch at scriptics dot com>
Contributor: Brett Schwarz <schwarzkopf at users dot sourceforge dot net>
Contributor: Colin McCormack <coldstore at users dot sourceforge dot net>
Contributor: Dan Kuchler <kuchler at ajubasolutions dot com>
Contributor: David N. Welton <davidw at dedasys dot com>
Contributor: Don Porter <dgp at users dot sf dot net>
Contributor: Donal K. Fellows <fellowsd at cs dot man dot ac dot uk>
Contributor: Elchonon Edelson <eee at activestate dot com>

Contributor: Eric Melski <ericm at scriptics dot com>
Contributor: Gerald Lester <gwlester at users dot sourceforge dot net>
Contributor: Gerhard Reithofer <gerhard dot rithofer at tech-edv dot co dot at>
Contributor: Jeff Hobbs <jeffh at ActiveState dot com>
Contributor: Joe English <jenglish at users dot sourceforge dot net>
Contributor: Johannes-Heinrich Vogeler <vogeler at users dot sourceforge dot net>
Contributor: KATO Kanryu <kanryu6 at users dot sourceforge dot net>
Contributor: Kevin B, Kenny <kennykb at acm dot org>
Contributor: Kevin B. Kenny <kennykb at acm dot org>
Contributor: Kevin Kenny <kennykb at users dot sourceforge dot net>
Contributor: Lars Hellstr\"om <lars_h at users dot sourceforge dot net>
Contributor: Marty Backe <marty at lucidway dot org>
Contributor: Melissa Chawla <hershey at ajubasolutions dot com>
Contributor: Michael Schlenker <mic42 at users dot sourceforge dot net>
Contributor: Miguel Sofer <mig at utdt dot edu>
Contributor: Pat Thoyts <patthoyts at users dot sourceforge dot net>
Contributor: Peter MacDonald <peter at pdqi dot com>
Contributor: Pierre David <pdav at users dot sourceforge dot net>
Contributor: Reinhard Max <max at suse dot de>
Contributor: Ross Mohn <rpmohn at panix dot com>
Contributor: Sandeep Tamhankar <sandeep at scriptics dot com>
Contributor: Scott Redman <redman at scriptics dot com>






|








|




|


>












|

|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
Identifier: tcllib
Title:  Tcl Standard Library
Description: This package is intended to be a collection of
    Tcl packages that provide utility functions useful to a
    large collection of Tcl programmers.
Rights: BSD
Version: 1.17
URL: http://core.tcl.tk/tcllib
Architecture: tcl
Contributor:  <jeffh at activestate dot com>
Contributor: Aaron Faupell <afaupell at users dot sourceforge dot net>
Contributor: Andreas Kupries <andreask at activestate dot com>
Contributor: Arjen Markus <arjenmarkus at users dot sourceforge dot net>
Contributor: Benjamin Riefenstahl <b dot riefenstahl at turtle-trading dot net>
Contributor: Bob Techentin <techentin at users dot sourceforge dot net>
Contributor: Brent Welch <welch at ajubasolutions dot com>
Contributor: Brett Schwarz <schwarzkopf at users dot sourceforge dot net>
Contributor: Colin McCormack <coldstore at users dot sourceforge dot net>
Contributor: Dan Kuchler <kuchler at ajubasolutions dot com>
Contributor: David N. Welton <davidw at dedasys dot com>
Contributor: Don Porter <dgp at users dot sourceforge dot net>
Contributor: Donal K. Fellows <fellowsd at cs dot man dot ac dot uk>
Contributor: Elchonon Edelson <eee at activestate dot com>
Contributor: Emmanuel Frecon <efrecon at gmail dot com>
Contributor: Eric Melski <ericm at scriptics dot com>
Contributor: Gerald Lester <gwlester at users dot sourceforge dot net>
Contributor: Gerhard Reithofer <gerhard dot rithofer at tech-edv dot co dot at>
Contributor: Jeff Hobbs <jeffh at ActiveState dot com>
Contributor: Joe English <jenglish at users dot sourceforge dot net>
Contributor: Johannes-Heinrich Vogeler <vogeler at users dot sourceforge dot net>
Contributor: KATO Kanryu <kanryu6 at users dot sourceforge dot net>
Contributor: Kevin B, Kenny <kennykb at acm dot org>
Contributor: Kevin B. Kenny <kennykb at acm dot org>
Contributor: Kevin Kenny <kennykb at users dot sourceforge dot net>
Contributor: Lars Hellstr\"om <lars_h at users dot sourceforge dot net>
Contributor: Marty Backe <marty at lucidway dot org>
Contributor: Melissa Chawla <hershey at scriptics dot com>
Contributor: Michael Schlenker <mic42 at users dot sourceforge dot net>
Contributor: Miguel Sofer <msofer at users dot sourceforge dot net>
Contributor: Pat Thoyts <patthoyts at users dot sourceforge dot net>
Contributor: Peter MacDonald <peter at pdqi dot com>
Contributor: Pierre David <pdav at users dot sourceforge dot net>
Contributor: Reinhard Max <max at suse dot de>
Contributor: Ross Mohn <rpmohn at panix dot com>
Contributor: Sandeep Tamhankar <sandeep at scriptics dot com>
Contributor: Scott Redman <redman at scriptics dot com>

Changes to embedded/man/files/modules/amazon-s3/S3.n.

1
2
3
4
5
6
7
8
9
10
11
12
'\"
'\" Generated from file 'S3\&.man' by tcllib/doctools with format 'nroff'
'\" 2006,2008 Darren New\&. All Rights Reserved\&. See LICENSE\&.TXT for terms\&.
'\"
.TH "S3" n 1\&.0\&.2 tcllib "Amazon S3 Web Service Utilities"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,




|







1
2
3
4
5
6
7
8
9
10
11
12
'\"
'\" Generated from file 'S3\&.man' by tcllib/doctools with format 'nroff'
'\" 2006,2008 Darren New\&. All Rights Reserved\&. See LICENSE\&.TXT for terms\&.
'\"
.TH "S3" n 1\&.0\&.3 tcllib "Amazon S3 Web Service Utilities"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
..
.BS
.SH NAME
S3 \- Amazon S3 Web Service Interface
.SH SYNOPSIS
package require \fBTcl  8\&.5\fR
.sp
package require \fBS3  ?1\&.0\&.2?\fR
.sp
package require \fBsha1  1\&.0\fR
.sp
package require \fBmd5  2\&.0\fR
.sp
package require \fBbase64  2\&.3\fR
.sp







|







272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
..
.BS
.SH NAME
S3 \- Amazon S3 Web Service Interface
.SH SYNOPSIS
package require \fBTcl  8\&.5\fR
.sp
package require \fBS3  ?1\&.0\&.3?\fR
.sp
package require \fBsha1  1\&.0\fR
.sp
package require \fBmd5  2\&.0\fR
.sp
package require \fBbase64  2\&.3\fR
.sp

Changes to embedded/man/files/modules/bibtex/bibtex.n.

1
2
3
4
5
6
7
8
9
10
11
12
'\"
'\" Generated from file 'bibtex\&.man' by tcllib/doctools with format 'nroff'
'\" Copyright (c) 2005 for documentation, Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net>
'\"
.TH "bibtex" n 0\&.5 tcllib "bibtex"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,




|







1
2
3
4
5
6
7
8
9
10
11
12
'\"
'\" Generated from file 'bibtex\&.man' by tcllib/doctools with format 'nroff'
'\" Copyright (c) 2005 for documentation, Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net>
'\"
.TH "bibtex" n 0\&.6 tcllib "bibtex"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
..
.BS
.SH NAME
bibtex \- Parse bibtex files
.SH SYNOPSIS
package require \fBTcl  8\&.4\fR
.sp
package require \fBbibtex  ?0\&.5?\fR
.sp
\fB::bibtex::parse\fR ?\fIoptions\fR? ?\fItext\fR?
.sp
\fB::bibtex::parse\fR \fItext\fR
.sp
\fB::bibtex::parse\fR ?\fB-command\fR \fIcmd\fR? \fB-channel\fR \fIchan\fR
.sp
\fB::bibtex::parse\fR ?\fB-recordcommand\fR   \fIrecordcmd\fR? ?\fB-preamblecommand\fR \fIpreamblecmd\fR? ?\fB-stringcommand\fR   \fIstringcmd\fR? ?\fB-commentcommand\fR  \fIcommentcmd\fR? ?\fB-progresscommand\fR \fIprogresscmd\fR? (\fItext\fR | \fB-channel\fR \fIchan\fR)
.sp
\fB::bibtex::wait\fR \fItoken\fR
.sp
\fB::bibtex::destroy\fR \fItoken\fR
.sp
\fB::bibtex::addStrings\fR \fItoken\fR \fIstringdict\fR
.sp







|







|







272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
..
.BS
.SH NAME
bibtex \- Parse bibtex files
.SH SYNOPSIS
package require \fBTcl  8\&.4\fR
.sp
package require \fBbibtex  ?0\&.6?\fR
.sp
\fB::bibtex::parse\fR ?\fIoptions\fR? ?\fItext\fR?
.sp
\fB::bibtex::parse\fR \fItext\fR
.sp
\fB::bibtex::parse\fR ?\fB-command\fR \fIcmd\fR? \fB-channel\fR \fIchan\fR
.sp
\fB::bibtex::parse\fR ?\fB-recordcommand\fR   \fIrecordcmd\fR? ?\fB-preamblecommand\fR \fIpreamblecmd\fR? ?\fB-stringcommand\fR   \fIstringcmd\fR? ?\fB-commentcommand\fR  \fIcommentcmd\fR? ?\fB-progresscommand\fR \fIprogresscmd\fR? ?\fB-casesensitivestrings\fR \fIbool\fR? (\fItext\fR | \fB-channel\fR \fIchan\fR)
.sp
\fB::bibtex::wait\fR \fItoken\fR
.sp
\fB::bibtex::destroy\fR \fItoken\fR
.sp
\fB::bibtex::addStrings\fR \fItoken\fR \fIstringdict\fR
.sp
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358





359
360
361
362
363
364
365
simpler forms of the parser\&.
.RE
.sp
\fINote\fR that the parser will \fInot\fR close the channel after it
has exhausted it\&. This is still the responsibility of the user of the
parser\&.
.TP
\fB::bibtex::parse\fR ?\fB-recordcommand\fR   \fIrecordcmd\fR? ?\fB-preamblecommand\fR \fIpreamblecmd\fR? ?\fB-stringcommand\fR   \fIstringcmd\fR? ?\fB-commentcommand\fR  \fIcommentcmd\fR? ?\fB-progresscommand\fR \fIprogresscmd\fR? (\fItext\fR | \fB-channel\fR \fIchan\fR)
This is the most low-level form for the parser\&. The returned result
will be a handle for the parser\&. During processing it will invoke the
invoke the specified callback commands for each type of data found in
the bibliography\&.
.sp
The processing will be incremental and happen in the background if,
and only if a Tcl channel \fIchan\fR is specified\&. For a \fItext\fR
the processing will happen immediately and all callbacks will be
invoked before the command itself returns\&.
.sp
The callbacks, i\&.e\&. \fI*cmd\fR, are all command prefixes and will be
invoked with additional arguments appended to them\&. The meaning of the
arguments depends on the callback and is explained below\&. The first
argument will however always be the handle of the parser invoking the
callback\&.
.RS





.TP
\fBrecordcmd\fR \fItoken\fR \fItype\fR \fIkey\fR \fIrecorddict\fR
This callback is invoked whenever the parser detects a bibliography
record in the input\&. Its arguments are the record type, the
bibliography key for the record, and a dictionary containing the keys
and values describing the record\&. Any string macros known to the
parser have already been expanded\&.







|
















>
>
>
>
>







335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
simpler forms of the parser\&.
.RE
.sp
\fINote\fR that the parser will \fInot\fR close the channel after it
has exhausted it\&. This is still the responsibility of the user of the
parser\&.
.TP
\fB::bibtex::parse\fR ?\fB-recordcommand\fR   \fIrecordcmd\fR? ?\fB-preamblecommand\fR \fIpreamblecmd\fR? ?\fB-stringcommand\fR   \fIstringcmd\fR? ?\fB-commentcommand\fR  \fIcommentcmd\fR? ?\fB-progresscommand\fR \fIprogresscmd\fR? ?\fB-casesensitivestrings\fR \fIbool\fR? (\fItext\fR | \fB-channel\fR \fIchan\fR)
This is the most low-level form for the parser\&. The returned result
will be a handle for the parser\&. During processing it will invoke the
invoke the specified callback commands for each type of data found in
the bibliography\&.
.sp
The processing will be incremental and happen in the background if,
and only if a Tcl channel \fIchan\fR is specified\&. For a \fItext\fR
the processing will happen immediately and all callbacks will be
invoked before the command itself returns\&.
.sp
The callbacks, i\&.e\&. \fI*cmd\fR, are all command prefixes and will be
invoked with additional arguments appended to them\&. The meaning of the
arguments depends on the callback and is explained below\&. The first
argument will however always be the handle of the parser invoking the
callback\&.
.RS
.TP
\fB-casesensitivestrings\fR
This option takes a boolean value\&. When set string macro processing
becomes case-sensitive\&. The default is case-insensitive string macro
processing\&.
.TP
\fBrecordcmd\fR \fItoken\fR \fItype\fR \fIkey\fR \fIrecorddict\fR
This callback is invoked whenever the parser detects a bibliography
record in the input\&. Its arguments are the record type, the
bibliography key for the record, and a dictionary containing the keys
and values describing the record\&. Any string macros known to the
parser have already been expanded\&.

Added embedded/man/files/modules/cron/cron.n.

























































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
'\"
'\" Generated from file 'cron\&.man' by tcllib/doctools with format 'nroff'
'\" Copyright (c) 2015 Sean Woods <yoda@etoyoc\&.com>
'\"
.TH "cron" n 0\&.1 tcllib "cron"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,
.\"	and indent is equivalent to second arg of .IP (shouldn't ever be
.\"	needed;  use .AS below instead)
.\"
.\" .AS ?type? ?name?
.\"	Give maximum sizes of arguments for setting tab stops.  Type and
.\"	name are examples of largest possible arguments that will be passed
.\"	to .AP later.  If args are omitted, default tab stops are used.
.\"
.\" .BS
.\"	Start box enclosure.  From here until next .BE, everything will be
.\"	enclosed in one large box.
.\"
.\" .BE
.\"	End of box enclosure.
.\"
.\" .CS
.\"	Begin code excerpt.
.\"
.\" .CE
.\"	End code excerpt.
.\"
.\" .VS ?version? ?br?
.\"	Begin vertical sidebar, for use in marking newly-changed parts
.\"	of man pages.  The first argument is ignored and used for recording
.\"	the version when the .VS was added, so that the sidebars can be
.\"	found and removed when they reach a certain age.  If another argument
.\"	is present, then a line break is forced before starting the sidebar.
.\"
.\" .VE
.\"	End of vertical sidebar.
.\"
.\" .DS
.\"	Begin an indented unfilled display.
.\"
.\" .DE
.\"	End of indented unfilled display.
.\"
.\" .SO ?manpage?
.\"	Start of list of standard options for a Tk widget. The manpage
.\"	argument defines where to look up the standard options; if
.\"	omitted, defaults to "options". The options follow on successive
.\"	lines, in three columns separated by tabs.
.\"
.\" .SE
.\"	End of list of standard options for a Tk widget.
.\"
.\" .OP cmdName dbName dbClass
.\"	Start of description of a specific option.  cmdName gives the
.\"	option's name as specified in the class command, dbName gives
.\"	the option's name in the option database, and dbClass gives
.\"	the option's class in the option database.
.\"
.\" .UL arg1 arg2
.\"	Print arg1 underlined, then print arg2 normally.
.\"
.\" .QW arg1 ?arg2?
.\"	Print arg1 in quotes, then arg2 normally (for trailing punctuation).
.\"
.\" .PQ arg1 ?arg2?
.\"	Print an open parenthesis, arg1 in quotes, then arg2 normally
.\"	(for trailing punctuation) and then a closing parenthesis.
.\"
.\"	# Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
.if t .wh -1.3i ^B
.nr ^l \n(.l
.ad b
.\"	# Start an argument description
.de AP
.ie !"\\$4"" .TP \\$4
.el \{\
.   ie !"\\$2"" .TP \\n()Cu
.   el          .TP 15
.\}
.ta \\n()Au \\n()Bu
.ie !"\\$3"" \{\
\&\\$1 \\fI\\$2\\fP (\\$3)
.\".b
.\}
.el \{\
.br
.ie !"\\$2"" \{\
\&\\$1	\\fI\\$2\\fP
.\}
.el \{\
\&\\fI\\$1\\fP
.\}
.\}
..
.\"	# define tabbing values for .AP
.de AS
.nr )A 10n
.if !"\\$1"" .nr )A \\w'\\$1'u+3n
.nr )B \\n()Au+15n
.\"
.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
.nr )C \\n()Bu+\\w'(in/out)'u+2n
..
.AS Tcl_Interp Tcl_CreateInterp in/out
.\"	# BS - start boxed text
.\"	# ^y = starting y location
.\"	# ^b = 1
.de BS
.br
.mk ^y
.nr ^b 1u
.if n .nf
.if n .ti 0
.if n \l'\\n(.lu\(ul'
.if n .fi
..
.\"	# BE - end boxed text (draw box now)
.de BE
.nf
.ti 0
.mk ^t
.ie n \l'\\n(^lu\(ul'
.el \{\
.\"	Draw four-sided box normally, but don't draw top of
.\"	box if the box started on an earlier page.
.ie !\\n(^b-1 \{\
\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
.\}
.el \}\
\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
.\}
.\}
.fi
.br
.nr ^b 0
..
.\"	# VS - start vertical sidebar
.\"	# ^Y = starting y location
.\"	# ^v = 1 (for troff;  for nroff this doesn't matter)
.de VS
.if !"\\$2"" .br
.mk ^Y
.ie n 'mc \s12\(br\s0
.el .nr ^v 1u
..
.\"	# VE - end of vertical sidebar
.de VE
.ie n 'mc
.el \{\
.ev 2
.nf
.ti 0
.mk ^t
\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
.sp -1
.fi
.ev
.\}
.nr ^v 0
..
.\"	# Special macro to handle page bottom:  finish off current
.\"	# box/sidebar if in box/sidebar mode, then invoked standard
.\"	# page bottom macro.
.de ^B
.ev 2
'ti 0
'nf
.mk ^t
.if \\n(^b \{\
.\"	Draw three-sided box if this is the box's first page,
.\"	draw two sides but no top otherwise.
.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
.\}
.if \\n(^v \{\
.nr ^x \\n(^tu+1v-\\n(^Yu
\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
.\}
.bp
'fi
.ev
.if \\n(^b \{\
.mk ^y
.nr ^b 2
.\}
.if \\n(^v \{\
.mk ^Y
.\}
..
.\"	# DS - begin display
.de DS
.RS
.nf
.sp
..
.\"	# DE - end display
.de DE
.fi
.RE
.sp
..
.\"	# SO - start of list of standard options
.de SO
'ie '\\$1'' .ds So \\fBoptions\\fR
'el .ds So \\fB\\$1\\fR
.SH "STANDARD OPTIONS"
.LP
.nf
.ta 5.5c 11c
.ft B
..
.\"	# SE - end of list of standard options
.de SE
.fi
.ft R
.LP
See the \\*(So manual entry for details on the standard options.
..
.\"	# OP - start of full description for a single option
.de OP
.LP
.nf
.ta 4c
Command-Line Name:	\\fB\\$1\\fR
Database Name:	\\fB\\$2\\fR
Database Class:	\\fB\\$3\\fR
.fi
.IP
..
.\"	# CS - begin code excerpt
.de CS
.RS
.nf
.ta .25i .5i .75i 1i
..
.\"	# CE - end code excerpt
.de CE
.fi
.RE
..
.\"	# UL - underline word
.de UL
\\$1\l'|0\(ul'\\$2
..
.\"	# QW - apply quotation marks to word
.de QW
.ie '\\*(lq'"' ``\\$1''\\$2
.\"" fix emacs highlighting
.el \\*(lq\\$1\\*(rq\\$2
..
.\"	# PQ - apply parens and quotation marks to word
.de PQ
.ie '\\*(lq'"' (``\\$1''\\$2)\\$3
.\"" fix emacs highlighting
.el (\\*(lq\\$1\\*(rq\\$2)\\$3
..
.\"	# QR - quoted range
.de QR
.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
.\"" fix emacs highlighting
.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
..
.\"	# MT - "empty" string
.de MT
.QW ""
..
.BS
.SH NAME
cron \- Tool for automating the period callback of commands
.SH SYNOPSIS
package require \fBTcl  8\&.5\fR
.sp
package require \fBcron  ?0\&.1?\fR
.sp
\fB::cron::at\fR \fI?processname?\fR \fItimecode\fR \fIcommand\fR
.sp
\fB::cron::cancel\fR \fIprocessname\fR
.sp
\fB::cron::every\fR \fIprocessname\fR \fIfrequency\fR \fIcommand\fR
.sp
\fB::cron::in\fR \fI?processname?\fR \fItimecode\fR \fIcommand\fR
.sp
.BE
.SH DESCRIPTION
.PP
The \fBcron\fR package provides a Pure-tcl set of tools to allow
programs to schedule tasks to occur at regular intervals\&. Rather than
force each task to issue it's own call to the event loop, the cron
system mimics the cron utility in Unix: on task periodically checks to
see if something is to be done, and issues all commands for a given
time step at once\&.
The cron package is intended to work in time scales greater than 1 second\&.
.SH COMMANDS
.TP
\fB::cron::at\fR \fI?processname?\fR \fItimecode\fR \fIcommand\fR
This command registers a \fIcommand\fR to be called at the time specified by \fItimecode\fR\&.
If \fItimecode\fR is expressed as an integer, the timecode is assumed to be in unixtime\&. All
other inputs will be interpreted by \fBclock scan\fR and converted to unix time\&.
This task can be modified by subsequent calls to
this package's commands by referencing \fIprocessname\fR\&. If \fIprocessname\fR exists,
it will be replaced\&.
If \fIprocessname\fR is not given, one is generated and returned by the command\&.
.CS


::cron::at start_coffee {Tomorrow at 9:00am}  {remote::exec::coffeepot power on}
::cron::at shutdown_coffee {Tomorrow at 12:00pm}  {remote::exec::coffeepot power off}

.CE
.TP
\fB::cron::cancel\fR \fIprocessname\fR
This command unregisters the process \fIprocessname\fR and cancels any pending commands\&.
Note: processname can be a process created by either \fB::cron::at\fR or \fB::cron::every\fR\&.
.CS


::cron::cancel check_mail

.CE
.TP
\fB::cron::every\fR \fIprocessname\fR \fIfrequency\fR \fIcommand\fR
This command registers a \fIcommand\fR to be called at the interval of \fIfrequency\fR\&.
\fIfrequency\fR is given in seconds\&. This task can be modified by subsequent calls to
this package's commands by referencing \fIprocessname\fR\&. If \fIprocessname\fR exists,
it will be replaced\&.
.CS


::cron::every check_mail 900  ::imap_client::check_mail
::cron::every backup_db  3600 {::backup_procedure ::mydb}

.CE
.TP
\fB::cron::in\fR \fI?processname?\fR \fItimecode\fR \fIcommand\fR
This command registers a \fIcommand\fR to be called after a delay of time specified by \fItimecode\fR\&.
\fItimecode\fR is expressed as an seconds\&.
This task can be modified by subsequent calls to
this package's commands by referencing \fIprocessname\fR\&. If \fIprocessname\fR exists,
it will be replaced\&.
If \fIprocessname\fR is not given, one is generated and returned by the command\&.
.PP
.PP
.SH "BUGS, IDEAS, FEEDBACK"
This document, and the package it describes, will undoubtedly contain
bugs and other problems\&.
Please report such in the category \fIodie\fR of the
\fITcllib Trackers\fR [http://core\&.tcl\&.tk/tcllib/reportlist]\&.
Please also report any ideas for enhancements you may have for either
package and/or documentation\&.
.SH KEYWORDS
cron, odie
.SH CATEGORY
System
.SH COPYRIGHT
.nf
Copyright (c) 2015 Sean Woods <yoda@etoyoc\&.com>

.fi

Changes to embedded/man/files/modules/fileutil/traverse.n.

1
2
3
4
5
6
7
8
9
10
11
'\"
'\" Generated from file 'traverse\&.man' by tcllib/doctools with format 'nroff'
'\"
.TH "fileutil_traverse" n 0\&.4\&.5 tcllib "file utilities"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,



|







1
2
3
4
5
6
7
8
9
10
11
'\"
'\" Generated from file 'traverse\&.man' by tcllib/doctools with format 'nroff'
'\"
.TH "fileutil_traverse" n 0\&.5 tcllib "file utilities"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
..
.BS
.SH NAME
fileutil_traverse \- Iterative directory traversal
.SH SYNOPSIS
package require \fBTcl  8\&.3\fR
.sp
package require \fBfileutil::traverse  ?0\&.4\&.3?\fR
.sp
package require \fBfileutil \fR
.sp
package require \fBcontrol \fR
.sp
\fB::fileutil::traverse\fR ?\fIobjectName\fR? \fIpath\fR ?\fIoption\fR \fIvalue\fR\&.\&.\&.?
.sp







|







271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
..
.BS
.SH NAME
fileutil_traverse \- Iterative directory traversal
.SH SYNOPSIS
package require \fBTcl  8\&.3\fR
.sp
package require \fBfileutil::traverse  ?0\&.5?\fR
.sp
package require \fBfileutil \fR
.sp
package require \fBcontrol \fR
.sp
\fB::fileutil::traverse\fR ?\fIobjectName\fR? \fIpath\fR ?\fIoption\fR \fIvalue\fR\&.\&.\&.?
.sp

Changes to embedded/man/files/modules/math/calculus.n.

1
2
3
4
5
6
7
8
9
10
11
12
'\"
'\" Generated from file 'calculus\&.man' by tcllib/doctools with format 'nroff'
'\" Copyright (c) 2002,2003,2004 Arjen Markus
'\"
.TH "math::calculus" n 0\&.8 tcllib "Tcl Math Library"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,




|







1
2
3
4
5
6
7
8
9
10
11
12
'\"
'\" Generated from file 'calculus\&.man' by tcllib/doctools with format 'nroff'
'\" Copyright (c) 2002,2003,2004 Arjen Markus
'\"
.TH "math::calculus" n 0\&.8\&.1 tcllib "Tcl Math Library"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
..
.BS
.SH NAME
math::calculus \- Integration and ordinary differential equations
.SH SYNOPSIS
package require \fBTcl  8\&.4\fR
.sp
package require \fBmath::calculus  0\&.8\fR
.sp
\fB::math::calculus::integral\fR \fIbegin\fR \fIend\fR \fInosteps\fR \fIfunc\fR
.sp
\fB::math::calculus::integralExpr\fR \fIbegin\fR \fIend\fR \fInosteps\fR \fIexpression\fR
.sp
\fB::math::calculus::integral2D\fR \fIxinterval\fR \fIyinterval\fR \fIfunc\fR
.sp







|







272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
..
.BS
.SH NAME
math::calculus \- Integration and ordinary differential equations
.SH SYNOPSIS
package require \fBTcl  8\&.4\fR
.sp
package require \fBmath::calculus  0\&.8\&.1\fR
.sp
\fB::math::calculus::integral\fR \fIbegin\fR \fIend\fR \fInosteps\fR \fIfunc\fR
.sp
\fB::math::calculus::integralExpr\fR \fIbegin\fR \fIend\fR \fInosteps\fR \fIexpression\fR
.sp
\fB::math::calculus::integral2D\fR \fIxinterval\fR \fIyinterval\fR \fIfunc\fR
.sp

Changes to embedded/man/files/modules/math/statistics.n.

1
2
3
4
5
6
7
8
9
10
11
'\"
'\" Generated from file 'statistics\&.man' by tcllib/doctools with format 'nroff'
'\"
.TH "math::statistics" n 0\&.9 tcllib "Tcl Math Library"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,



|







1
2
3
4
5
6
7
8
9
10
11
'\"
'\" Generated from file 'statistics\&.man' by tcllib/doctools with format 'nroff'
'\"
.TH "math::statistics" n 0\&.9\&.3 tcllib "Tcl Math Library"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
..
.BS
.SH NAME
math::statistics \- Basic statistical functions and procedures
.SH SYNOPSIS
package require \fBTcl  8\&.4\fR
.sp
package require \fBmath::statistics  0\&.9\fR
.sp
\fB::math::statistics::mean\fR \fIdata\fR
.sp
\fB::math::statistics::min\fR \fIdata\fR
.sp
\fB::math::statistics::max\fR \fIdata\fR
.sp







|







271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
..
.BS
.SH NAME
math::statistics \- Basic statistical functions and procedures
.SH SYNOPSIS
package require \fBTcl  8\&.4\fR
.sp
package require \fBmath::statistics  0\&.9\&.3\fR
.sp
\fB::math::statistics::mean\fR \fIdata\fR
.sp
\fB::math::statistics::min\fR \fIdata\fR
.sp
\fB::math::statistics::max\fR \fIdata\fR
.sp
295
296
297
298
299
300
301


302
303
304
305
306
307
308
309
310
311
312
313
314
315
.sp
\fB::math::statistics::median\fR \fIdata\fR
.sp
\fB::math::statistics::basic-stats\fR \fIdata\fR
.sp
\fB::math::statistics::histogram\fR \fIlimits\fR \fIvalues\fR ?weights?
.sp


\fB::math::statistics::corr\fR \fIdata1\fR \fIdata2\fR
.sp
\fB::math::statistics::interval-mean-stdev\fR \fIdata\fR \fIconfidence\fR
.sp
\fB::math::statistics::t-test-mean\fR \fIdata\fR \fIest_mean\fR \fIest_stdev\fR \fIconfidence\fR
.sp
\fB::math::statistics::test-normal\fR \fIdata\fR \fIconfidence\fR
.sp
\fB::math::statistics::lillieforsFit\fR \fIdata\fR
.sp
\fB::math::statistics::quantiles\fR \fIdata\fR \fIconfidence\fR
.sp
\fB::math::statistics::quantiles\fR \fIlimits\fR \fIcounts\fR \fIconfidence\fR
.sp







>
>




|

|







295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
.sp
\fB::math::statistics::median\fR \fIdata\fR
.sp
\fB::math::statistics::basic-stats\fR \fIdata\fR
.sp
\fB::math::statistics::histogram\fR \fIlimits\fR \fIvalues\fR ?weights?
.sp
\fB::math::statistics::histogram-alt\fR \fIlimits\fR \fIvalues\fR ?weights?
.sp
\fB::math::statistics::corr\fR \fIdata1\fR \fIdata2\fR
.sp
\fB::math::statistics::interval-mean-stdev\fR \fIdata\fR \fIconfidence\fR
.sp
\fB::math::statistics::t-test-mean\fR \fIdata\fR \fIest_mean\fR \fIest_stdev\fR \fIalpha\fR
.sp
\fB::math::statistics::test-normal\fR \fIdata\fR \fIsignificance\fR
.sp
\fB::math::statistics::lillieforsFit\fR \fIdata\fR
.sp
\fB::math::statistics::quantiles\fR \fIdata\fR \fIconfidence\fR
.sp
\fB::math::statistics::quantiles\fR \fIlimits\fR \fIcounts\fR \fIconfidence\fR
.sp
580
581
582
583
584
585
586

















587
588
589
590
591
592
593
list \fIvalues\fR
- List of data
.TP
list \fIweights\fR
- List of weights, one weight per value
.RE
.sp

















.TP
\fB::math::statistics::corr\fR \fIdata1\fR \fIdata2\fR
Determine the correlation coefficient between two sets of data\&.
.RS
.TP
list \fIdata1\fR
- First list of data







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
list \fIvalues\fR
- List of data
.TP
list \fIweights\fR
- List of weights, one weight per value
.RE
.sp
.TP
\fB::math::statistics::histogram-alt\fR \fIlimits\fR \fIvalues\fR ?weights?
Alternative implementation of the histogram procedure: the open end of the intervals
is at the lower bound instead of the upper bound\&.
.RS
.TP
list \fIlimits\fR
- List of upper limits (in ascending order) for the
intervals of the histogram\&.
.TP
list \fIvalues\fR
- List of data
.TP
list \fIweights\fR
- List of weights, one weight per value
.RE
.sp
.TP
\fB::math::statistics::corr\fR \fIdata1\fR \fIdata2\fR
Determine the correlation coefficient between two sets of data\&.
.RS
.TP
list \fIdata1\fR
- First list of data
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647

648
649


650
651
652
653
654
655
656
- List of raw data values (small sample)
.TP
float \fIconfidence\fR
- Confidence level (0\&.95 or 0\&.99 for instance)
.RE
.sp
.TP
\fB::math::statistics::t-test-mean\fR \fIdata\fR \fIest_mean\fR \fIest_stdev\fR \fIconfidence\fR
Test whether the mean value of a sample is in accordance with the
estimated normal distribution with a certain level of confidence\&.
Returns 1 if the test succeeds or 0 if the mean is unlikely to fit
the given distribution\&.
.RS
.TP
list \fIdata\fR
- List of raw data values (small sample)
.TP
float \fIest_mean\fR
- Estimated mean of the distribution
.TP
float \fIest_stdev\fR
- Estimated stdev of the distribution
.TP
float \fIconfidence\fR
- Confidence level (0\&.95 or 0\&.99 for instance)
.RE
.sp
.TP
\fB::math::statistics::test-normal\fR \fIdata\fR \fIconfidence\fR
Test whether the given data follow a normal distribution
with a certain level of confidence\&.
Returns 1 if the data are normally distributed within the level of
confidence, returns 0 if not\&. The underlying test is the Lilliefors
test\&.
.RS
.TP
list \fIdata\fR
- List of raw data values
.TP
float \fIconfidence\fR
- Confidence level (one of 0\&.80, 0\&.90, 0\&.95 or 0\&.99)

.RE
.sp


.TP
\fB::math::statistics::lillieforsFit\fR \fIdata\fR
Returns the goodness of fit to a normal distribution according to
Lilliefors\&. The higher the number, the more likely the data are indeed
normally distributed\&. The test requires at least \fIfive\fR data
points\&.
.RS







|

|













|
|



|

|

|
|





|
|
>


>
>







626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
- List of raw data values (small sample)
.TP
float \fIconfidence\fR
- Confidence level (0\&.95 or 0\&.99 for instance)
.RE
.sp
.TP
\fB::math::statistics::t-test-mean\fR \fIdata\fR \fIest_mean\fR \fIest_stdev\fR \fIalpha\fR
Test whether the mean value of a sample is in accordance with the
estimated normal distribution with a certain probability\&.
Returns 1 if the test succeeds or 0 if the mean is unlikely to fit
the given distribution\&.
.RS
.TP
list \fIdata\fR
- List of raw data values (small sample)
.TP
float \fIest_mean\fR
- Estimated mean of the distribution
.TP
float \fIest_stdev\fR
- Estimated stdev of the distribution
.TP
float \fIalpha\fR
- Probability level (0\&.95 or 0\&.99 for instance)
.RE
.sp
.TP
\fB::math::statistics::test-normal\fR \fIdata\fR \fIsignificance\fR
Test whether the given data follow a normal distribution
with a certain level of significance\&.
Returns 1 if the data are normally distributed within the level of
significance, returns 0 if not\&. The underlying test is the Lilliefors
test\&. Smaller values of the significance mean a stricter testing\&.
.RS
.TP
list \fIdata\fR
- List of raw data values
.TP
float \fIsignificance\fR
- Significance level (one of 0\&.01, 0\&.05, 0\&.10, 0\&.15 or 0\&.20)\&. For compatibility
reasons the values "1-significance", 0\&.80, 0\&.85, 0\&.90, 0\&.95 or 0\&.99 are also accepted\&.
.RE
.sp
Compatibility issue: the original implementation and documentation used the term "confidence" and used a value
1-significance (see ticket 2812473fff)\&. This has been corrected as of version 0\&.9\&.3\&.
.TP
\fB::math::statistics::lillieforsFit\fR \fIdata\fR
Returns the goodness of fit to a normal distribution according to
Lilliefors\&. The higher the number, the more likely the data are indeed
normally distributed\&. The test requires at least \fIfive\fR data
points\&.
.RS
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
distribution with given shape parameters
.RS
.TP
float \fIa\fR
- First shape parameter
.TP
float \fIb\fR
- First shape parameter
.TP
float \fIvalue\fR
- Value for which the probability is required
.RE
.sp
.TP
\fB::math::statistics::random-normal\fR \fImean\fR \fIstdev\fR \fInumber\fR







|







1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
distribution with given shape parameters
.RS
.TP
float \fIa\fR
- First shape parameter
.TP
float \fIb\fR
- Second shape parameter
.TP
float \fIvalue\fR
- Value for which the probability is required
.RE
.sp
.TP
\fB::math::statistics::random-normal\fR \fImean\fR \fIstdev\fR \fInumber\fR

Added embedded/man/files/modules/nettool/nettool.n.





























































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
'\"
'\" Generated from file 'nettool\&.man' by tcllib/doctools with format 'nroff'
'\" Copyright (c) 2015 Sean Woods <yoda@etoyoc\&.com>
'\"
.TH "nettool" n 0\&.1 tcllib "nettool"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,
.\"	and indent is equivalent to second arg of .IP (shouldn't ever be
.\"	needed;  use .AS below instead)
.\"
.\" .AS ?type? ?name?
.\"	Give maximum sizes of arguments for setting tab stops.  Type and
.\"	name are examples of largest possible arguments that will be passed
.\"	to .AP later.  If args are omitted, default tab stops are used.
.\"
.\" .BS
.\"	Start box enclosure.  From here until next .BE, everything will be
.\"	enclosed in one large box.
.\"
.\" .BE
.\"	End of box enclosure.
.\"
.\" .CS
.\"	Begin code excerpt.
.\"
.\" .CE
.\"	End code excerpt.
.\"
.\" .VS ?version? ?br?
.\"	Begin vertical sidebar, for use in marking newly-changed parts
.\"	of man pages.  The first argument is ignored and used for recording
.\"	the version when the .VS was added, so that the sidebars can be
.\"	found and removed when they reach a certain age.  If another argument
.\"	is present, then a line break is forced before starting the sidebar.
.\"
.\" .VE
.\"	End of vertical sidebar.
.\"
.\" .DS
.\"	Begin an indented unfilled display.
.\"
.\" .DE
.\"	End of indented unfilled display.
.\"
.\" .SO ?manpage?
.\"	Start of list of standard options for a Tk widget. The manpage
.\"	argument defines where to look up the standard options; if
.\"	omitted, defaults to "options". The options follow on successive
.\"	lines, in three columns separated by tabs.
.\"
.\" .SE
.\"	End of list of standard options for a Tk widget.
.\"
.\" .OP cmdName dbName dbClass
.\"	Start of description of a specific option.  cmdName gives the
.\"	option's name as specified in the class command, dbName gives
.\"	the option's name in the option database, and dbClass gives
.\"	the option's class in the option database.
.\"
.\" .UL arg1 arg2
.\"	Print arg1 underlined, then print arg2 normally.
.\"
.\" .QW arg1 ?arg2?
.\"	Print arg1 in quotes, then arg2 normally (for trailing punctuation).
.\"
.\" .PQ arg1 ?arg2?
.\"	Print an open parenthesis, arg1 in quotes, then arg2 normally
.\"	(for trailing punctuation) and then a closing parenthesis.
.\"
.\"	# Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
.if t .wh -1.3i ^B
.nr ^l \n(.l
.ad b
.\"	# Start an argument description
.de AP
.ie !"\\$4"" .TP \\$4
.el \{\
.   ie !"\\$2"" .TP \\n()Cu
.   el          .TP 15
.\}
.ta \\n()Au \\n()Bu
.ie !"\\$3"" \{\
\&\\$1 \\fI\\$2\\fP (\\$3)
.\".b
.\}
.el \{\
.br
.ie !"\\$2"" \{\
\&\\$1	\\fI\\$2\\fP
.\}
.el \{\
\&\\fI\\$1\\fP
.\}
.\}
..
.\"	# define tabbing values for .AP
.de AS
.nr )A 10n
.if !"\\$1"" .nr )A \\w'\\$1'u+3n
.nr )B \\n()Au+15n
.\"
.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
.nr )C \\n()Bu+\\w'(in/out)'u+2n
..
.AS Tcl_Interp Tcl_CreateInterp in/out
.\"	# BS - start boxed text
.\"	# ^y = starting y location
.\"	# ^b = 1
.de BS
.br
.mk ^y
.nr ^b 1u
.if n .nf
.if n .ti 0
.if n \l'\\n(.lu\(ul'
.if n .fi
..
.\"	# BE - end boxed text (draw box now)
.de BE
.nf
.ti 0
.mk ^t
.ie n \l'\\n(^lu\(ul'
.el \{\
.\"	Draw four-sided box normally, but don't draw top of
.\"	box if the box started on an earlier page.
.ie !\\n(^b-1 \{\
\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
.\}
.el \}\
\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
.\}
.\}
.fi
.br
.nr ^b 0
..
.\"	# VS - start vertical sidebar
.\"	# ^Y = starting y location
.\"	# ^v = 1 (for troff;  for nroff this doesn't matter)
.de VS
.if !"\\$2"" .br
.mk ^Y
.ie n 'mc \s12\(br\s0
.el .nr ^v 1u
..
.\"	# VE - end of vertical sidebar
.de VE
.ie n 'mc
.el \{\
.ev 2
.nf
.ti 0
.mk ^t
\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
.sp -1
.fi
.ev
.\}
.nr ^v 0
..
.\"	# Special macro to handle page bottom:  finish off current
.\"	# box/sidebar if in box/sidebar mode, then invoked standard
.\"	# page bottom macro.
.de ^B
.ev 2
'ti 0
'nf
.mk ^t
.if \\n(^b \{\
.\"	Draw three-sided box if this is the box's first page,
.\"	draw two sides but no top otherwise.
.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
.\}
.if \\n(^v \{\
.nr ^x \\n(^tu+1v-\\n(^Yu
\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
.\}
.bp
'fi
.ev
.if \\n(^b \{\
.mk ^y
.nr ^b 2
.\}
.if \\n(^v \{\
.mk ^Y
.\}
..
.\"	# DS - begin display
.de DS
.RS
.nf
.sp
..
.\"	# DE - end display
.de DE
.fi
.RE
.sp
..
.\"	# SO - start of list of standard options
.de SO
'ie '\\$1'' .ds So \\fBoptions\\fR
'el .ds So \\fB\\$1\\fR
.SH "STANDARD OPTIONS"
.LP
.nf
.ta 5.5c 11c
.ft B
..
.\"	# SE - end of list of standard options
.de SE
.fi
.ft R
.LP
See the \\*(So manual entry for details on the standard options.
..
.\"	# OP - start of full description for a single option
.de OP
.LP
.nf
.ta 4c
Command-Line Name:	\\fB\\$1\\fR
Database Name:	\\fB\\$2\\fR
Database Class:	\\fB\\$3\\fR
.fi
.IP
..
.\"	# CS - begin code excerpt
.de CS
.RS
.nf
.ta .25i .5i .75i 1i
..
.\"	# CE - end code excerpt
.de CE
.fi
.RE
..
.\"	# UL - underline word
.de UL
\\$1\l'|0\(ul'\\$2
..
.\"	# QW - apply quotation marks to word
.de QW
.ie '\\*(lq'"' ``\\$1''\\$2
.\"" fix emacs highlighting
.el \\*(lq\\$1\\*(rq\\$2
..
.\"	# PQ - apply parens and quotation marks to word
.de PQ
.ie '\\*(lq'"' (``\\$1''\\$2)\\$3
.\"" fix emacs highlighting
.el (\\*(lq\\$1\\*(rq\\$2)\\$3
..
.\"	# QR - quoted range
.de QR
.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
.\"" fix emacs highlighting
.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
..
.\"	# MT - "empty" string
.de MT
.QW ""
..
.BS
.SH NAME
nettool \- Tools for networked applications
.SH SYNOPSIS
package require \fBTcl  8\&.5\fR
.sp
package require \fBnettool  ?0\&.1?\fR
.sp
package require \fBtwapi  3\&.1\fR
.sp
package require \fBip  0\&.1\fR
.sp
package require \fBplatform  0\&.1\fR
.sp
\fB::cat\fR \fIfilename\fR
.sp
\fB::nettool::allocate_port\fR \fIstartingport\fR
.sp
\fB::nettool::arp_table\fR
.sp
\fB::nettool::broadcast_list\fR
.sp
\fB::nettool::claim_port\fR \fIport\fR ?\fIprotocol\fR?
.sp
\fB::nettool::cpuinfo\fR \fIargs\fR
.sp
\fB::nettool::find_port\fR \fIstartingport\fR
.sp
\fB::nettool::hwid_list\fR
.sp
\fB::nettool::ip_list\fR
.sp
\fB::nettool::mac_list\fR
.sp
\fB::nettool::network_list\fR
.sp
\fB::nettool::port_busy\fR \fIport\fR
.sp
\fB::nettool::release_port\fR \fIport\fR ?\fIprotocol\fR?
.sp
\fB::nettool::status\fR
.sp
.BE
.SH DESCRIPTION
.PP
The \fBnettool\fR package consists of a Pure-tcl set of tools
to perform common network functions that would normally require
different packages or calls to exec, in a standard Tcl interface\&.
At present nettool has reference implementations for the following operating
systems: Windows, MacOSX, and Linux (debian)\&.
.SH COMMANDS
.TP
\fB::cat\fR \fIfilename\fR
Dump the contents of a file as a result\&.
.TP
\fB::nettool::allocate_port\fR \fIstartingport\fR
Attempt to allocate \fIstartingport\fR, or, if busy, advance the port
number sequentially until a free port is found, and claim that port\&.
This command uses a built-in database of known ports to avoid returning a
port which is in common use\&. (For example: http (80))
.TP
\fB::nettool::arp_table\fR
Dump the contents of this computer's Address Resolution Protocol (ARP) table\&.
The result will be a Tcl formatted list: \fImacid\fR \fIipaddrlist\fR \&.\&.\&.
.TP
\fB::nettool::broadcast_list\fR
Returns a list of broadcast addresses (suitable for UDP multicast)
that this computer is associated with\&.
.TP
\fB::nettool::claim_port\fR \fIport\fR ?\fIprotocol\fR?
Mark \fIport\fR as busy, optionally as either \fBtcp\fR (default) or \fBudp\fR\&.
.TP
\fB::nettool::cpuinfo\fR \fIargs\fR
If no arguments are given, return a key/value list describing the
CPU of the present machine\&. Included in the matrix is info on the number
of cores/processors that are available for parallel tasking, installed physical
RAM, and processor family\&.
.sp
The exact contents are platform specific\&.
.sp
For Linux, information is drawn from /proc/cpuinfo and /proc/meminfo\&.
.sp
For MacOSX, information is drawn from sysctl
.sp
For Windows, information is draw from TWAPI\&.
.sp
If arguments are given, the result with be a key/value list limited to the
fields requested\&.
.sp
Canonical fields for all platforms:
.RS
.TP
cpus
Count of CPUs/cores/execution units
.TP
speed
Clock speed of processor(s) in Mhz
.TP
memory
Installed RAM (in MB)
.TP
vendor
Manufacturer
.RE
.TP
\fB::nettool::find_port\fR \fIstartingport\fR
Return \fIstartingport\fR if it is available, or the next free port after
\fIstartingport\fR\&. Note: Unlike \fB::nettool::allocate_port\fR, this
command does not claim the port\&.
.sp
This command uses a built-in database of known ports to avoid returning a
port which is in common use\&. (For example: http (80))
.TP
\fB::nettool::hwid_list\fR
Return a list of hardware specific identifiers from this computer\&. The source
and content will vary by platform\&.
.sp
For MacOSX, the motherboard serial number and macids for all network devices is returned\&.
.sp
For Windows, the volume serial number of C and macids for all network devices is returned\&.
.sp
For Linux, macids for all network devices is returned\&.
.TP
\fB::nettool::ip_list\fR
Return a list of IP addresses associated with this computer\&.
.TP
\fB::nettool::mac_list\fR
Return a list of MACIDs for the network cards attached to this machine\&. The MACID of the
primary network card is returned first\&.
.TP
\fB::nettool::network_list\fR
Return a list of networks associated with this computer\&. Networks are formated with
\fBip::nativeToPrefix\fR\&.
.TP
\fB::nettool::port_busy\fR \fIport\fR
Return true if \fIport\fR is claimed, false otherwise\&.
.TP
\fB::nettool::release_port\fR \fIport\fR ?\fIprotocol\fR?
Mark \fIport\fR as not busy, optionally as either \fBtcp\fR (default) or \fBudp\fR\&.
.TP
\fB::nettool::status\fR
Return a key/value list describing the status of the computer\&. The output
is designed to be comparable to the output of \fBtop\fR for all platforms\&.
.sp
Common fields include:
.RS
.TP
load
Processes per processing unit
.TP
memory_total
Total physical RAM (MB)
.TP
memory_free
Total physical RAM unused (MB)
.RE
.PP
.PP
.SH "BUGS, IDEAS, FEEDBACK"
This document, and the package it describes, will undoubtedly contain
bugs and other problems\&.
Please report such in the category \fIodie\fR of the
\fITcllib Trackers\fR [http://core\&.tcl\&.tk/tcllib/reportlist]\&.
Please also report any ideas for enhancements you may have for either
package and/or documentation\&.
.SH KEYWORDS
nettool, odie
.SH CATEGORY
System
.SH COPYRIGHT
.nf
Copyright (c) 2015 Sean Woods <yoda@etoyoc\&.com>

.fi

Added embedded/man/files/modules/processman/processman.n.























































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
'\"
'\" Generated from file 'processman\&.man' by tcllib/doctools with format 'nroff'
'\" Copyright (c) 2015 Sean Woods <yoda@etoyoc\&.com>
'\"
.TH "processman" n 0\&.1 tcllib "processman"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,
.\"	and indent is equivalent to second arg of .IP (shouldn't ever be
.\"	needed;  use .AS below instead)
.\"
.\" .AS ?type? ?name?
.\"	Give maximum sizes of arguments for setting tab stops.  Type and
.\"	name are examples of largest possible arguments that will be passed
.\"	to .AP later.  If args are omitted, default tab stops are used.
.\"
.\" .BS
.\"	Start box enclosure.  From here until next .BE, everything will be
.\"	enclosed in one large box.
.\"
.\" .BE
.\"	End of box enclosure.
.\"
.\" .CS
.\"	Begin code excerpt.
.\"
.\" .CE
.\"	End code excerpt.
.\"
.\" .VS ?version? ?br?
.\"	Begin vertical sidebar, for use in marking newly-changed parts
.\"	of man pages.  The first argument is ignored and used for recording
.\"	the version when the .VS was added, so that the sidebars can be
.\"	found and removed when they reach a certain age.  If another argument
.\"	is present, then a line break is forced before starting the sidebar.
.\"
.\" .VE
.\"	End of vertical sidebar.
.\"
.\" .DS
.\"	Begin an indented unfilled display.
.\"
.\" .DE
.\"	End of indented unfilled display.
.\"
.\" .SO ?manpage?
.\"	Start of list of standard options for a Tk widget. The manpage
.\"	argument defines where to look up the standard options; if
.\"	omitted, defaults to "options". The options follow on successive
.\"	lines, in three columns separated by tabs.
.\"
.\" .SE
.\"	End of list of standard options for a Tk widget.
.\"
.\" .OP cmdName dbName dbClass
.\"	Start of description of a specific option.  cmdName gives the
.\"	option's name as specified in the class command, dbName gives
.\"	the option's name in the option database, and dbClass gives
.\"	the option's class in the option database.
.\"
.\" .UL arg1 arg2
.\"	Print arg1 underlined, then print arg2 normally.
.\"
.\" .QW arg1 ?arg2?
.\"	Print arg1 in quotes, then arg2 normally (for trailing punctuation).
.\"
.\" .PQ arg1 ?arg2?
.\"	Print an open parenthesis, arg1 in quotes, then arg2 normally
.\"	(for trailing punctuation) and then a closing parenthesis.
.\"
.\"	# Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
.if t .wh -1.3i ^B
.nr ^l \n(.l
.ad b
.\"	# Start an argument description
.de AP
.ie !"\\$4"" .TP \\$4
.el \{\
.   ie !"\\$2"" .TP \\n()Cu
.   el          .TP 15
.\}
.ta \\n()Au \\n()Bu
.ie !"\\$3"" \{\
\&\\$1 \\fI\\$2\\fP (\\$3)
.\".b
.\}
.el \{\
.br
.ie !"\\$2"" \{\
\&\\$1	\\fI\\$2\\fP
.\}
.el \{\
\&\\fI\\$1\\fP
.\}
.\}
..
.\"	# define tabbing values for .AP
.de AS
.nr )A 10n
.if !"\\$1"" .nr )A \\w'\\$1'u+3n
.nr )B \\n()Au+15n
.\"
.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
.nr )C \\n()Bu+\\w'(in/out)'u+2n
..
.AS Tcl_Interp Tcl_CreateInterp in/out
.\"	# BS - start boxed text
.\"	# ^y = starting y location
.\"	# ^b = 1
.de BS
.br
.mk ^y
.nr ^b 1u
.if n .nf
.if n .ti 0
.if n \l'\\n(.lu\(ul'
.if n .fi
..
.\"	# BE - end boxed text (draw box now)
.de BE
.nf
.ti 0
.mk ^t
.ie n \l'\\n(^lu\(ul'
.el \{\
.\"	Draw four-sided box normally, but don't draw top of
.\"	box if the box started on an earlier page.
.ie !\\n(^b-1 \{\
\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
.\}
.el \}\
\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
.\}
.\}
.fi
.br
.nr ^b 0
..
.\"	# VS - start vertical sidebar
.\"	# ^Y = starting y location
.\"	# ^v = 1 (for troff;  for nroff this doesn't matter)
.de VS
.if !"\\$2"" .br
.mk ^Y
.ie n 'mc \s12\(br\s0
.el .nr ^v 1u
..
.\"	# VE - end of vertical sidebar
.de VE
.ie n 'mc
.el \{\
.ev 2
.nf
.ti 0
.mk ^t
\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
.sp -1
.fi
.ev
.\}
.nr ^v 0
..
.\"	# Special macro to handle page bottom:  finish off current
.\"	# box/sidebar if in box/sidebar mode, then invoked standard
.\"	# page bottom macro.
.de ^B
.ev 2
'ti 0
'nf
.mk ^t
.if \\n(^b \{\
.\"	Draw three-sided box if this is the box's first page,
.\"	draw two sides but no top otherwise.
.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
.\}
.if \\n(^v \{\
.nr ^x \\n(^tu+1v-\\n(^Yu
\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
.\}
.bp
'fi
.ev
.if \\n(^b \{\
.mk ^y
.nr ^b 2
.\}
.if \\n(^v \{\
.mk ^Y
.\}
..
.\"	# DS - begin display
.de DS
.RS
.nf
.sp
..
.\"	# DE - end display
.de DE
.fi
.RE
.sp
..
.\"	# SO - start of list of standard options
.de SO
'ie '\\$1'' .ds So \\fBoptions\\fR
'el .ds So \\fB\\$1\\fR
.SH "STANDARD OPTIONS"
.LP
.nf
.ta 5.5c 11c
.ft B
..
.\"	# SE - end of list of standard options
.de SE
.fi
.ft R
.LP
See the \\*(So manual entry for details on the standard options.
..
.\"	# OP - start of full description for a single option
.de OP
.LP
.nf
.ta 4c
Command-Line Name:	\\fB\\$1\\fR
Database Name:	\\fB\\$2\\fR
Database Class:	\\fB\\$3\\fR
.fi
.IP
..
.\"	# CS - begin code excerpt
.de CS
.RS
.nf
.ta .25i .5i .75i 1i
..
.\"	# CE - end code excerpt
.de CE
.fi
.RE
..
.\"	# UL - underline word
.de UL
\\$1\l'|0\(ul'\\$2
..
.\"	# QW - apply quotation marks to word
.de QW
.ie '\\*(lq'"' ``\\$1''\\$2
.\"" fix emacs highlighting
.el \\*(lq\\$1\\*(rq\\$2
..
.\"	# PQ - apply parens and quotation marks to word
.de PQ
.ie '\\*(lq'"' (``\\$1''\\$2)\\$3
.\"" fix emacs highlighting
.el (\\*(lq\\$1\\*(rq\\$2)\\$3
..
.\"	# QR - quoted range
.de QR
.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
.\"" fix emacs highlighting
.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
..
.\"	# MT - "empty" string
.de MT
.QW ""
..
.BS
.SH NAME
processman \- Tool for automating the period callback of commands
.SH SYNOPSIS
package require \fBTcl  8\&.5\fR
.sp
package require \fBtwapi  3\&.1\fR
.sp
package require \fBcron  1\&.1\fR
.sp
package require \fBprocessman  ?0\&.1?\fR
.sp
\fB::processman::find_exe\fR \fIname\fR
.sp
\fB::processman::kill\fR \fIid\fR
.sp
\fB::processman::kill_all\fR
.sp
\fB::processman::killexe\fR \fIname\fR
.sp
\fB::processman::onexit\fR \fIid\fR \fIcmd\fR
.sp
\fB::processman::priority\fR \fIid\fR \fIlevel\fR
.sp
\fB::processman::process_list\fR
.sp
\fB::processman::process_list\fR \fIid\fR
.sp
\fB::processman::spawn\fR \fIid\fR \fIcmd\fR \fIargs\fR
.sp
.BE
.SH DESCRIPTION
.PP
The \fBprocessman\fR package provides a Pure-tcl set of utilities
to manage child processes in a platform-generic nature\&.
.SH COMMANDS
.TP
\fB::processman::find_exe\fR \fIname\fR
Locate an executable by the name of \fIname\fR in the system path\&. On windows,
also add the \&.exe extention if not given\&.
.TP
\fB::processman::kill\fR \fIid\fR
Kill a child process \fIid\fR\&.
.TP
\fB::processman::kill_all\fR
Kill all processes spawned by this program
.TP
\fB::processman::killexe\fR \fIname\fR
Kill a process identified by the executable\&. On Unix, this triggers a killall\&.
On windows, \fBtwapi::get_process_ids\fR is used to map a name one or more IDs,
which are then killed\&.
.TP
\fB::processman::onexit\fR \fIid\fR \fIcmd\fR
Arrange to execute the script \fIcmd\fR when this programe detects that
process \fIid\fR as terminated\&.
.TP
\fB::processman::priority\fR \fIid\fR \fIlevel\fR
Mark process \fIid\fR with the priorty \fIlevel\fR\&. Valid levels: low, high, default\&.
.sp
On Unix, the process is tagged using the \fBnice\fR command\&.
.sp
On Windows, the process is modifed via the \fBtwapi::set_priority_class\fR
.TP
\fB::processman::process_list\fR
Return a list of processes that have been triggered by this program, as
well as a boolean flag to indicate if the process is still running\&.
.TP
\fB::processman::process_list\fR \fIid\fR
Return true if process \fIid\fR is still running, false otherwise\&.
.TP
\fB::processman::spawn\fR \fIid\fR \fIcmd\fR \fIargs\fR
Start a child process, identified by \fIid\fR\&. \fIcmd\fR is the name
of the command to execute\&. \fIargs\fR are arguments to pass to that command\&.
.PP
.PP
.SH "BUGS, IDEAS, FEEDBACK"
This document, and the package it describes, will undoubtedly contain
bugs and other problems\&.
Please report such in the category \fIodie\fR of the
\fITcllib Trackers\fR [http://core\&.tcl\&.tk/tcllib/reportlist]\&.
Please also report any ideas for enhancements you may have for either
package and/or documentation\&.
.SH KEYWORDS
odie, processman
.SH CATEGORY
System
.SH COPYRIGHT
.nf
Copyright (c) 2015 Sean Woods <yoda@etoyoc\&.com>

.fi

Changes to embedded/man/files/modules/struct/pool.n.

1
2
3
4
5
6
7
8
9
10
11
12
'\"
'\" Generated from file 'pool\&.man' by tcllib/doctools with format 'nroff'
'\" Copyright (c) 2002, Erik Leunissen <e\&.leunissen@hccnet\&.nl>
'\"
.TH "struct::pool" n 1\&.2\&.2 tcllib "Tcl Data Structures"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,




|







1
2
3
4
5
6
7
8
9
10
11
12
'\"
'\" Generated from file 'pool\&.man' by tcllib/doctools with format 'nroff'
'\" Copyright (c) 2002, Erik Leunissen <e\&.leunissen@hccnet\&.nl>
'\"
.TH "struct::pool" n 1\&.2\&.3 tcllib "Tcl Data Structures"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
..
.BS
.SH NAME
struct::pool \- Create and manipulate pool objects (of discrete items)
.SH SYNOPSIS
package require \fBTcl  8\&.2\fR
.sp
package require \fBstruct::pool  ?1\&.2\&.2?\fR
.sp
\fB::struct::pool\fR ?\fIpoolName\fR? ?\fImaxsize\fR?
.sp
\fBpoolName\fR \fIoption\fR ?\fIarg arg \&.\&.\&.\fR?
.sp
\fIpoolName\fR \fBadd\fR \fIitemName1\fR ?\fIitemName2 itemName3 \&.\&.\&.\fR?
.sp







|







272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
..
.BS
.SH NAME
struct::pool \- Create and manipulate pool objects (of discrete items)
.SH SYNOPSIS
package require \fBTcl  8\&.2\fR
.sp
package require \fBstruct::pool  ?1\&.2\&.3?\fR
.sp
\fB::struct::pool\fR ?\fIpoolName\fR? ?\fImaxsize\fR?
.sp
\fBpoolName\fR \fIoption\fR ?\fIarg arg \&.\&.\&.\fR?
.sp
\fIpoolName\fR \fBadd\fR \fIitemName1\fR ?\fIitemName2 itemName3 \&.\&.\&.\fR?
.sp

Changes to embedded/man/index.n.

1929
1930
1931
1932
1933
1934
1935






1936
1937
1938
1939
1940
1941
1942
valtype::creditcard::discover
.TP
\fBfiles/modules/valtype/cc_mastercard\&.n\fR
valtype::creditcard::mastercard
.TP
\fBfiles/modules/valtype/cc_visa\&.n\fR
valtype::creditcard::visa






.RE
cryptography
.RS
.TP
\fBfiles/modules/blowfish/blowfish\&.n\fR
blowfish
.RE







>
>
>
>
>
>







1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
valtype::creditcard::discover
.TP
\fBfiles/modules/valtype/cc_mastercard\&.n\fR
valtype::creditcard::mastercard
.TP
\fBfiles/modules/valtype/cc_visa\&.n\fR
valtype::creditcard::visa
.RE
cron
.RS
.TP
\fBfiles/modules/cron/cron\&.n\fR
cron
.RE
cryptography
.RS
.TP
\fBfiles/modules/blowfish/blowfish\&.n\fR
blowfish
.RE
6259
6260
6261
6262
6263
6264
6265






6266
6267
6268
6269
6270
6271
6272
.TP
\fBfiles/modules/mime/smtp\&.n\fR
smtp
.TP
\fBfiles/modules/websocket/websocket\&.n\fR
websocket
.RE






network
.RS
.TP
\fBfiles/modules/pop3d/pop3d\&.n\fR
pop3d
.TP
\fBfiles/modules/pop3d/pop3d_dbox\&.n\fR







>
>
>
>
>
>







6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
.TP
\fBfiles/modules/mime/smtp\&.n\fR
smtp
.TP
\fBfiles/modules/websocket/websocket\&.n\fR
websocket
.RE
nettool
.RS
.TP
\fBfiles/modules/nettool/nettool\&.n\fR
nettool
.RE
network
.RS
.TP
\fBfiles/modules/pop3d/pop3d\&.n\fR
pop3d
.TP
\fBfiles/modules/pop3d/pop3d_dbox\&.n\fR
6463
6464
6465
6466
6467
6468
6469












6470
6471
6472
6473
6474
6475
6476
.TP
\fBfiles/modules/hook/hook\&.n\fR
hook
.TP
\fBfiles/modules/virtchannel_transform/observe\&.n\fR
tcl::transform::observe
.RE












on-idle
.RS
.TP
\fBfiles/modules/uev/uevent_onidle\&.n\fR
uevent::onidle
.RE
one time pad







>
>
>
>
>
>
>
>
>
>
>
>







6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
.TP
\fBfiles/modules/hook/hook\&.n\fR
hook
.TP
\fBfiles/modules/virtchannel_transform/observe\&.n\fR
tcl::transform::observe
.RE
odie
.RS
.TP
\fBfiles/modules/cron/cron\&.n\fR
cron
.TP
\fBfiles/modules/nettool/nettool\&.n\fR
nettool
.TP
\fBfiles/modules/processman/processman\&.n\fR
processman
.RE
on-idle
.RS
.TP
\fBfiles/modules/uev/uevent_onidle\&.n\fR
uevent::onidle
.RE
one time pad
7521
7522
7523
7524
7525
7526
7527






7528
7529
7530
7531
7532
7533
7534
tepam::procedure
.RE
procedure documentation
.RS
.TP
\fBfiles/modules/tepam/tepam_doc_gen\&.n\fR
tepam::doc_gen






.RE
producer
.RS
.TP
\fBfiles/modules/hook/hook\&.n\fR
hook
.RE







>
>
>
>
>
>







7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
tepam::procedure
.RE
procedure documentation
.RS
.TP
\fBfiles/modules/tepam/tepam_doc_gen\&.n\fR
tepam::doc_gen
.RE
processman
.RS
.TP
\fBfiles/modules/processman/processman\&.n\fR
processman
.RE
producer
.RS
.TP
\fBfiles/modules/hook/hook\&.n\fR
hook
.RE

Changes to embedded/man/toc.n.

362
363
364
365
366
367
368



369
370
371
372
373
374
375
.TP
\fBcrc16\fR
\fIfiles/modules/crc/crc16\&.n\fR: Perform a 16bit Cyclic Redundancy Check
.TP
\fBcrc32\fR
\fIfiles/modules/crc/crc32\&.n\fR: Perform a 32bit Cyclic Redundancy Check
.TP



\fBcsv\fR
\fIfiles/modules/csv/csv\&.n\fR: Procedures to handle CSV data\&.
.TP
\fBdebug\fR
\fIfiles/modules/debug/debug\&.n\fR: debug narrative - core
.TP
\fBdebug::caller\fR







>
>
>







362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
.TP
\fBcrc16\fR
\fIfiles/modules/crc/crc16\&.n\fR: Perform a 16bit Cyclic Redundancy Check
.TP
\fBcrc32\fR
\fIfiles/modules/crc/crc32\&.n\fR: Perform a 32bit Cyclic Redundancy Check
.TP
\fBcron\fR
\fIfiles/modules/cron/cron\&.n\fR: Tool for automating the period callback of commands
.TP
\fBcsv\fR
\fIfiles/modules/csv/csv\&.n\fR: Procedures to handle CSV data\&.
.TP
\fBdebug\fR
\fIfiles/modules/debug/debug\&.n\fR: debug narrative - core
.TP
\fBdebug::caller\fR
857
858
859
860
861
862
863



864
865
866
867
868
869
870
.TP
\fBnamespacex\fR
\fIfiles/modules/namespacex/namespacex\&.n\fR: Namespace utility commands
.TP
\fBncgi\fR
\fIfiles/modules/ncgi/ncgi\&.n\fR: Procedures to manipulate CGI values\&.
.TP



\fBnmea\fR
\fIfiles/modules/nmea/nmea\&.n\fR: Process NMEA data
.TP
\fBnns\fR
\fIfiles/apps/nns\&.n\fR: Name service facility, Commandline Client Application
.TP
\fBnns_intro\fR







>
>
>







860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
.TP
\fBnamespacex\fR
\fIfiles/modules/namespacex/namespacex\&.n\fR: Namespace utility commands
.TP
\fBncgi\fR
\fIfiles/modules/ncgi/ncgi\&.n\fR: Procedures to manipulate CGI values\&.
.TP
\fBnettool\fR
\fIfiles/modules/nettool/nettool\&.n\fR: Tools for networked applications
.TP
\fBnmea\fR
\fIfiles/modules/nmea/nmea\&.n\fR: Process NMEA data
.TP
\fBnns\fR
\fIfiles/apps/nns\&.n\fR: Name service facility, Commandline Client Application
.TP
\fBnns_intro\fR
935
936
937
938
939
940
941



942
943
944
945
946
947
948
.TP
\fBpop3d::dbox\fR
\fIfiles/modules/pop3d/pop3d_dbox\&.n\fR: Simple mailbox database for pop3d
.TP
\fBpop3d::udb\fR
\fIfiles/modules/pop3d/pop3d_udb\&.n\fR: Simple user database for pop3d
.TP



\fBprofiler\fR
\fIfiles/modules/profiler/profiler\&.n\fR: Tcl source code profiler
.TP
\fBpt\fR
\fIfiles/apps/pt\&.n\fR: Parser Tools Application
.TP
\fBpt::ast\fR







>
>
>







941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
.TP
\fBpop3d::dbox\fR
\fIfiles/modules/pop3d/pop3d_dbox\&.n\fR: Simple mailbox database for pop3d
.TP
\fBpop3d::udb\fR
\fIfiles/modules/pop3d/pop3d_udb\&.n\fR: Simple user database for pop3d
.TP
\fBprocessman\fR
\fIfiles/modules/processman/processman\&.n\fR: Tool for automating the period callback of commands
.TP
\fBprofiler\fR
\fIfiles/modules/profiler/profiler\&.n\fR: Tcl source code profiler
.TP
\fBpt\fR
\fIfiles/apps/pt\&.n\fR: Parser Tools Application
.TP
\fBpt::ast\fR

Changes to embedded/www/index.html.

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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
<a href="#c1"> . </a> &#183; <a href="#c2"> / </a> &#183; <a href="#c3"> 3 </a> &#183; <a href="#c4"> A </a> &#183; <a href="#c5"> B </a> &#183; <a href="#c6"> C </a> &#183; <a href="#c7"> D </a> &#183; <a href="#c8"> E </a> &#183; <a href="#c9"> F </a> &#183; <a href="#c10"> G </a> &#183; <a href="#c11"> H </a> &#183; <a href="#c12"> I </a> &#183; <a href="#c13"> J </a> &#183; <a href="#c14"> K </a> &#183; <a href="#c15"> L </a> &#183; <a href="#c16"> M </a> &#183; <a href="#c17"> N </a> &#183; <a href="#c18"> O </a> &#183; <a href="#c19"> P </a> &#183; <a href="#c20"> Q </a> &#183; <a href="#c21"> R </a> &#183; <a href="#c22"> S </a> &#183; <a href="#c23"> T </a> &#183; <a href="#c24"> U </a> &#183; <a href="#c25"> V </a> &#183; <a href="#c26"> W </a> &#183; <a href="#c27"> X </a> &#183; <a href="#c28"> Y </a> &#183; <a href="#c29"> Z </a>
</div>
<hr><table class="#idx" width="100%">
<tr class="#idxheader"><th colspan="2">
<a name="c1">Keywords: .</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key659"> .ddt </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key434"> .dtx </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip.html"> docstrip </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c2">Keywords: /</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key756"> /dev/null </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_null.html"> tcl::chan::null </a> &#183; <a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key585"> /dev/random </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_random.html"> tcl::chan::random </a> &#183; <a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key114"> /dev/zero </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_zero.html"> tcl::chan::zero </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c3">Keywords: 3</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key294"> 3DES </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/des/des.html"> des </a> &#183; <a href="tcllib/files/modules/des/tcldesjr.html"> tcldes </a> &#183; <a href="tcllib/files/modules/des/tcldes.html"> tcldes </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c4">Keywords: A</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key738"> abstract syntax tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_util.html"> grammar::me::util </a> &#183; <a href="tcllib/files/modules/grammar_me/me_ast.html"> grammar::me_ast </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key322"> acceptance </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key319"> acceptor </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key607"> active </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key240"> adaptors </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key463"> adjacency list </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key487"> adjacency matrix </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key480"> adjacent </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key342"> adjusting </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key661"> adler32 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key787"> aes </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/aes/aes.html"> aes </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key409"> after </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key768"> alias </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/tcllib_interp.html"> interp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key517"> amazon </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/amazon-s3/S3.html"> S3 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key814"> ambiguous </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key392"> American Express </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key393"> AMEX </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key576"> angle </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/math_geometry.html"> math::geometry </a> &#183; <a href="tcllib/files/modules/units/units.html"> units </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key590"> anonymous procedure </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/lambda/lambda.html"> lambda </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key166"> ansi </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_cattr.html"> term::ansi::code::attr </a> &#183; <a href="tcllib/files/modules/term/ansi_cctrl.html"> term::ansi::code::ctrl </a> &#183; <a href="tcllib/files/modules/term/ansi_cmacros.html"> term::ansi::code::macros </a> &#183; <a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key404"> appender </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/log/loggerAppender.html"> logger::appender </a> &#183; <a href="tcllib/files/modules/log/loggerUtils.html"> logger::utils </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key28"> application </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/apps/nns.html"> nns </a> &#183; <a href="tcllib/files/apps/nnsd.html"> nnsd </a> &#183; <a href="tcllib/files/apps/nnslog.html"> nnslog </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key489"> approximation algorithm </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key468"> arc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key125"> arcfour </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rc4/rc4.html"> rc4 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key728"> archive </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tar/tar.html"> tar </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key750"> argument integrity </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a> &#183; <a href="tcllib/files/modules/tepam/tepam_procedure.html"> tepam::procedure </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key260"> argument processing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cmdline/cmdline.html"> cmdline </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key751"> argument validation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a> &#183; <a href="tcllib/files/modules/tepam/tepam_procedure.html"> tepam::procedure </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key749"> arguments </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a> &#183; <a href="tcllib/files/modules/tepam/tepam_procedure.html"> tepam::procedure </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key259"> argv </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cmdline/cmdline.html"> cmdline </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key258"> argv0 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cmdline/cmdline.html"> cmdline </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key37"> array </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tie/tie_std.html"> tie </a> &#183; <a href="tcllib/files/modules/tie/tie.html"> tie </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key478"> articulation point </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key711"> ascii85 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base64/ascii85.html"> ascii85 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key422"> asn </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key314"> assembler </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/gasm.html"> grammar::me::cpu::gasm </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key144"> assert </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/control/control.html"> control </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key565"> assign </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key806"> AST </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_ast.html"> grammar::me_ast </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key637"> asynchronous </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cache/async.html"> cache::async </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key165"> attribute control </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_cattr.html"> term::ansi::code::attr </a> &#183; <a href="tcllib/files/modules/term/ansi_cctrl.html"> term::ansi::code::ctrl </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key465"> augmenting network </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key485"> augmenting path </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key389"> authentication </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/http/autoproxy.html"> autoproxy </a> &#183; <a href="tcllib/files/modules/sasl/sasl.html"> SASL </a> &#183; <a href="tcllib/files/modules/sasl/ntlm.html"> SASL::NTLM </a> &#183; <a href="tcllib/files/modules/sasl/scram.html"> SASL::SCRAM </a> &#183; <a href="tcllib/files/modules/sasl/gtoken.html"> SASL::XGoogleToken </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key510"> automatic </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nns/nns_auto.html"> nameserv::auto </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key822"> automatic documentation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_doc_gen.html"> tepam::doc_gen </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key316"> automaton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key817"> aycock </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c5">Keywords: B</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key265"> bank </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a> &#183; <a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key295"> base32 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base32/base32.html"> base32 </a> &#183; <a href="tcllib/files/modules/base32/base32core.html"> base32::core </a> &#183; <a href="tcllib/files/modules/base32/base32hex.html"> base32::hex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key581"> base64 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base64/base64.html"> base64 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key735"> bash </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/string/token_shell.html"> string::token::shell </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key383"> bee </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bee/bee.html"> bee </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key98"> bench language </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_intro.html"> bench_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_intro.html"> bench_lang_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_spec.html"> bench_lang_spec </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key101"> benchmark </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench.html"> bench </a> &#183; <a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wcsv.html"> bench::out::csv </a> &#183; <a href="tcllib/files/modules/bench/bench_wtext.html"> bench::out::text </a> &#183; <a href="tcllib/files/modules/bench/bench_intro.html"> bench_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_intro.html"> bench_lang_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_spec.html"> bench_lang_spec </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key420"> ber </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key678"> Bessel functions </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/special.html"> math::special </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key460"> bfs </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key416"> bibliography </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bibtex/bibtex.html"> bibtex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key417"> bibtex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bibtex/bibtex.html"> bibtex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key283"> bignums </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/bignum.html"> math::bignum </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key706"> bind </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uev/uevent.html"> uevent </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key490"> bipartite </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key385"> BitTorrent </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bee/bee.html"> bee </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key384"> bittorrent </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bee/bee.html"> bee </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key278"> blanks </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/repeat.html"> textutil::repeat </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key293"> block cipher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/aes/aes.html"> aes </a> &#183; <a href="tcllib/files/modules/blowfish/blowfish.html"> blowfish </a> &#183; <a href="tcllib/files/modules/des/des.html"> des </a> &#183; <a href="tcllib/files/modules/des/tcldesjr.html"> tcldes </a> &#183; <a href="tcllib/files/modules/des/tcldes.html"> tcldes </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key451"> blocking flow </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key792"> blowfish </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/blowfish/blowfish.html"> blowfish </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key359"> Book Number </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key695"> breadth-first </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key462"> bridge </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key239"> BWidget </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c6">Keywords: C</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key286"> C </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key235"> C++ </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a> &#183; <a href="tcllib/files/modules/stooop/stooop.html"> stooop </a> &#183; <a href="tcllib/files/modules/stooop/switched.html"> switched </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key379"> cache </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cache/async.html"> cache::async </a> &#183; <a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key396"> caesar cipher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key775"> calculus </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/calculus.html"> math::calculus </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key534"> callback </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cache/async.html"> cache::async </a> &#183; <a href="tcllib/files/modules/hook/hook.html"> hook </a> &#183; <a href="tcllib/files/modules/lambda/lambda.html"> lambda </a> &#183; <a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a> &#183; <a href="tcllib/files/modules/uev/uevent_onidle.html"> uevent::onidle </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key713"> callbacks </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/halfpipe.html"> tcl::chan::halfpipe </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key682"> capitalize </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key263"> card for credit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key722"> cardinality </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key310"> cat </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key176"> catalog package </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key658"> catalogue </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key786"> cell-phone </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key421"> cer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key22"> CFG </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key27"> CFL </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key669"> CGI </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ncgi/ncgi.html"> ncgi </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key609"> cgraph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graph1.html"> struct::graph_v1 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key443"> changelog </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/changelog.html"> doctools::changelog </a> &#183; <a href="tcllib/files/modules/doctools/cvs.html"> doctools::cvs </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key63"> channel </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a> &#183; <a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a> &#183; <a href="tcllib/files/modules/transfer/copyops.html"> transfer::copy </a> &#183; <a href="tcllib/files/modules/transfer/tqueue.html"> transfer::copy::queue </a> &#183; <a href="tcllib/files/modules/transfer/ddest.html"> transfer::data::destination </a> &#183; <a href="tcllib/files/modules/transfer/dsource.html"> transfer::data::source </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key273"> channel transformation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_counter.html"> tcl::transform::counter </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/hex.html"> tcl::transform::hex </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/identity.html"> tcl::transform::identity </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/spacer.html"> tcl::transform::spacer </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key96"> character input </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/receive.html"> term::receive </a> &#183; <a href="tcllib/files/modules/term/term_bind.html"> term::receive::bind </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key415"> character output </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_send.html"> term::ansi::send </a> &#183; <a href="tcllib/files/modules/term/term_send.html"> term::send </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key686"> chat </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/irc/irc.html"> irc </a> &#183; <a href="tcllib/files/modules/multiplexer/multiplexer.html"> multiplexer </a> &#183; <a href="tcllib/files/modules/irc/picoirc.html"> picoirc </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key614"> checkbox </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/html/html.html"> html </a> &#183; <a href="tcllib/files/modules/javascript/javascript.html"> javascript </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key612"> checkbutton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/html/html.html"> html </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key53"> Checking </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/valtype_common.html"> valtype::common </a> &#183; <a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a> &#183; <a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a> &#183; <a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a> &#183; <a href="tcllib/files/modules/valtype/luhn.html"> valtype::luhn </a> &#183; <a href="tcllib/files/modules/valtype/luhn5.html"> valtype::luhn5 </a> &#183; <a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a> &#183; <a href="tcllib/files/modules/valtype/verhoeff.html"> valtype::verhoeff </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key150"> checksum </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key681"> chop </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key169"> cipher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pki/pki.html"> pki </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key149"> cksum </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key238"> class </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a> &#183; <a href="tcllib/files/modules/stooop/stooop.html"> stooop </a> &#183; <a href="tcllib/files/modules/stooop/switched.html"> switched </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key762"> class methods </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key765"> class variables </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key158"> cleanup </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/try/tcllib_try.html"> try </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key30"> client </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nns/nns_client.html"> nameserv </a> &#183; <a href="tcllib/files/modules/nns/nns_auto.html"> nameserv::auto </a> &#183; <a href="tcllib/files/modules/nns/nns_common.html"> nameserv::common </a> &#183; <a href="tcllib/files/apps/nns.html"> nns </a> &#183; <a href="tcllib/files/modules/nns/nns_intro.html"> nns_intro </a> &#183; <a href="tcllib/files/apps/nnslog.html"> nnslog </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key518"> cloud </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/amazon-s3/S3.html"> S3 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key261"> cmdline processing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cmdline/cmdline.html"> cmdline </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key164"> color control </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_cattr.html"> term::ansi::code::attr </a> &#183; <a href="tcllib/files/modules/term/ansi_cctrl.html"> term::ansi::code::ctrl </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key502"> columns </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key40"> comm </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a> &#183; <a href="tcllib/files/modules/interp/deleg_method.html"> deleg_method </a> &#183; <a href="tcllib/files/modules/interp/deleg_proc.html"> deleg_proc </a> &#183; <a href="tcllib/files/modules/nns/nns_protocol.html"> nameserv::protocol </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key271"> command </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcl_parse.html"> doctools::tcl::parse </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key257"> command line processing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cmdline/cmdline.html"> cmdline </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key589"> command prefix </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/lambda/lambda.html"> lambda </a> &#183; <a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key155"> comment </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/jpeg/jpeg.html"> jpeg </a> &#183; <a href="tcllib/files/modules/png/png.html"> png </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key546"> common </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key683"> common prefix </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key351"> communication </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key548"> comparison </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key483"> complete graph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key788"> complex numbers </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/qcomplex.html"> math::complexnumbers </a> &#183; <a href="tcllib/files/modules/math/fourier.html"> math::fourier </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key262"> compression </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a> &#183; <a href="tcllib/files/modules/zip/encode.html"> zipfile::encode </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key743"> computations </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/bigfloat.html"> math::bigfloat </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key163"> concatenation channel </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/cat.html"> tcl::chan::cat </a> &#183; <a href="tcllib/files/modules/virtchannel_base/facade.html"> tcl::chan::facade </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key476"> connected component </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key733"> connected fifos </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key606"> connection </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key604"> constants </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/constants.html"> math::constants </a> &#183; <a href="tcllib/files/modules/units/units.html"> units </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key345"> CONTAINER </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key514"> contents </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key23"> context-free grammar </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a>







|




|







|




|












|







|




|




|




|









|




|




|




|




|




|




|




|




|




|




|




|




|




|









|









|




|









|




|




|




|




|




|




|









|




|




|




|









|




|




|









|




|




|




|




|




|




|







|




|




|




|




|














|




|




|




|




|




|




|




|




|




|




|




|




|




|




|




|




|












|









|




|




|




|




|




|




|




|




|









|




|




|














|




|




|









|









|




|




|




|














|



















|




|














|




|









|









|




|




|









|




|




|




|




|




|




|




|









|




|




|




|




|




|







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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
<a href="#c1"> . </a> &#183; <a href="#c2"> / </a> &#183; <a href="#c3"> 3 </a> &#183; <a href="#c4"> A </a> &#183; <a href="#c5"> B </a> &#183; <a href="#c6"> C </a> &#183; <a href="#c7"> D </a> &#183; <a href="#c8"> E </a> &#183; <a href="#c9"> F </a> &#183; <a href="#c10"> G </a> &#183; <a href="#c11"> H </a> &#183; <a href="#c12"> I </a> &#183; <a href="#c13"> J </a> &#183; <a href="#c14"> K </a> &#183; <a href="#c15"> L </a> &#183; <a href="#c16"> M </a> &#183; <a href="#c17"> N </a> &#183; <a href="#c18"> O </a> &#183; <a href="#c19"> P </a> &#183; <a href="#c20"> Q </a> &#183; <a href="#c21"> R </a> &#183; <a href="#c22"> S </a> &#183; <a href="#c23"> T </a> &#183; <a href="#c24"> U </a> &#183; <a href="#c25"> V </a> &#183; <a href="#c26"> W </a> &#183; <a href="#c27"> X </a> &#183; <a href="#c28"> Y </a> &#183; <a href="#c29"> Z </a>
</div>
<hr><table class="#idx" width="100%">
<tr class="#idxheader"><th colspan="2">
<a name="c1">Keywords: .</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key663"> .ddt </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key436"> .dtx </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip.html"> docstrip </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c2">Keywords: /</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key760"> /dev/null </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_null.html"> tcl::chan::null </a> &#183; <a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key588"> /dev/random </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_random.html"> tcl::chan::random </a> &#183; <a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key114"> /dev/zero </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_zero.html"> tcl::chan::zero </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c3">Keywords: 3</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key296"> 3DES </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/des/des.html"> des </a> &#183; <a href="tcllib/files/modules/des/tcldesjr.html"> tcldes </a> &#183; <a href="tcllib/files/modules/des/tcldes.html"> tcldes </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c4">Keywords: A</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key742"> abstract syntax tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_util.html"> grammar::me::util </a> &#183; <a href="tcllib/files/modules/grammar_me/me_ast.html"> grammar::me_ast </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key324"> acceptance </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key321"> acceptor </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key610"> active </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key240"> adaptors </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key465"> adjacency list </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key489"> adjacency matrix </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key482"> adjacent </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key344"> adjusting </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key665"> adler32 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key791"> aes </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/aes/aes.html"> aes </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key411"> after </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key772"> alias </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/tcllib_interp.html"> interp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key519"> amazon </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/amazon-s3/S3.html"> S3 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key818"> ambiguous </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key394"> American Express </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key395"> AMEX </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key579"> angle </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/math_geometry.html"> math::geometry </a> &#183; <a href="tcllib/files/modules/units/units.html"> units </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key593"> anonymous procedure </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/lambda/lambda.html"> lambda </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key166"> ansi </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_cattr.html"> term::ansi::code::attr </a> &#183; <a href="tcllib/files/modules/term/ansi_cctrl.html"> term::ansi::code::ctrl </a> &#183; <a href="tcllib/files/modules/term/ansi_cmacros.html"> term::ansi::code::macros </a> &#183; <a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key406"> appender </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/log/loggerAppender.html"> logger::appender </a> &#183; <a href="tcllib/files/modules/log/loggerUtils.html"> logger::utils </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key28"> application </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/apps/nns.html"> nns </a> &#183; <a href="tcllib/files/apps/nnsd.html"> nnsd </a> &#183; <a href="tcllib/files/apps/nnslog.html"> nnslog </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key491"> approximation algorithm </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key470"> arc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key125"> arcfour </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rc4/rc4.html"> rc4 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key732"> archive </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tar/tar.html"> tar </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key754"> argument integrity </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a> &#183; <a href="tcllib/files/modules/tepam/tepam_procedure.html"> tepam::procedure </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key262"> argument processing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cmdline/cmdline.html"> cmdline </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key755"> argument validation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a> &#183; <a href="tcllib/files/modules/tepam/tepam_procedure.html"> tepam::procedure </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key753"> arguments </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a> &#183; <a href="tcllib/files/modules/tepam/tepam_procedure.html"> tepam::procedure </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key261"> argv </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cmdline/cmdline.html"> cmdline </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key260"> argv0 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cmdline/cmdline.html"> cmdline </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key37"> array </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tie/tie_std.html"> tie </a> &#183; <a href="tcllib/files/modules/tie/tie.html"> tie </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key480"> articulation point </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key715"> ascii85 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base64/ascii85.html"> ascii85 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key424"> asn </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key316"> assembler </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/gasm.html"> grammar::me::cpu::gasm </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key144"> assert </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/control/control.html"> control </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key568"> assign </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key810"> AST </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_ast.html"> grammar::me_ast </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key641"> asynchronous </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cache/async.html"> cache::async </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key165"> attribute control </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_cattr.html"> term::ansi::code::attr </a> &#183; <a href="tcllib/files/modules/term/ansi_cctrl.html"> term::ansi::code::ctrl </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key467"> augmenting network </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key487"> augmenting path </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key391"> authentication </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/http/autoproxy.html"> autoproxy </a> &#183; <a href="tcllib/files/modules/sasl/sasl.html"> SASL </a> &#183; <a href="tcllib/files/modules/sasl/ntlm.html"> SASL::NTLM </a> &#183; <a href="tcllib/files/modules/sasl/scram.html"> SASL::SCRAM </a> &#183; <a href="tcllib/files/modules/sasl/gtoken.html"> SASL::XGoogleToken </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key512"> automatic </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nns/nns_auto.html"> nameserv::auto </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key826"> automatic documentation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_doc_gen.html"> tepam::doc_gen </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key318"> automaton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key821"> aycock </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c5">Keywords: B</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key267"> bank </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a> &#183; <a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key297"> base32 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base32/base32.html"> base32 </a> &#183; <a href="tcllib/files/modules/base32/base32core.html"> base32::core </a> &#183; <a href="tcllib/files/modules/base32/base32hex.html"> base32::hex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key584"> base64 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base64/base64.html"> base64 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key739"> bash </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/string/token_shell.html"> string::token::shell </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key385"> bee </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bee/bee.html"> bee </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key98"> bench language </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_intro.html"> bench_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_intro.html"> bench_lang_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_spec.html"> bench_lang_spec </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key101"> benchmark </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench.html"> bench </a> &#183; <a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wcsv.html"> bench::out::csv </a> &#183; <a href="tcllib/files/modules/bench/bench_wtext.html"> bench::out::text </a> &#183; <a href="tcllib/files/modules/bench/bench_intro.html"> bench_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_intro.html"> bench_lang_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_spec.html"> bench_lang_spec </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key422"> ber </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key682"> Bessel functions </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/special.html"> math::special </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key462"> bfs </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key418"> bibliography </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bibtex/bibtex.html"> bibtex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key419"> bibtex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bibtex/bibtex.html"> bibtex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key285"> bignums </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/bignum.html"> math::bignum </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key710"> bind </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uev/uevent.html"> uevent </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key492"> bipartite </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key387"> BitTorrent </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bee/bee.html"> bee </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key386"> bittorrent </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bee/bee.html"> bee </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key280"> blanks </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/repeat.html"> textutil::repeat </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key295"> block cipher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/aes/aes.html"> aes </a> &#183; <a href="tcllib/files/modules/blowfish/blowfish.html"> blowfish </a> &#183; <a href="tcllib/files/modules/des/des.html"> des </a> &#183; <a href="tcllib/files/modules/des/tcldesjr.html"> tcldes </a> &#183; <a href="tcllib/files/modules/des/tcldes.html"> tcldes </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key453"> blocking flow </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key796"> blowfish </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/blowfish/blowfish.html"> blowfish </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key361"> Book Number </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key699"> breadth-first </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key464"> bridge </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key239"> BWidget </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c6">Keywords: C</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key288"> C </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key235"> C++ </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a> &#183; <a href="tcllib/files/modules/stooop/stooop.html"> stooop </a> &#183; <a href="tcllib/files/modules/stooop/switched.html"> switched </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key381"> cache </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cache/async.html"> cache::async </a> &#183; <a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key398"> caesar cipher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key779"> calculus </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/calculus.html"> math::calculus </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key537"> callback </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cache/async.html"> cache::async </a> &#183; <a href="tcllib/files/modules/hook/hook.html"> hook </a> &#183; <a href="tcllib/files/modules/lambda/lambda.html"> lambda </a> &#183; <a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a> &#183; <a href="tcllib/files/modules/uev/uevent_onidle.html"> uevent::onidle </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key717"> callbacks </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/halfpipe.html"> tcl::chan::halfpipe </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key686"> capitalize </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key265"> card for credit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key726"> cardinality </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key312"> cat </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key176"> catalog package </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key662"> catalogue </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key790"> cell-phone </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key423"> cer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key22"> CFG </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key27"> CFL </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key673"> CGI </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ncgi/ncgi.html"> ncgi </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key612"> cgraph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graph1.html"> struct::graph_v1 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key445"> changelog </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/changelog.html"> doctools::changelog </a> &#183; <a href="tcllib/files/modules/doctools/cvs.html"> doctools::cvs </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key63"> channel </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a> &#183; <a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a> &#183; <a href="tcllib/files/modules/transfer/copyops.html"> transfer::copy </a> &#183; <a href="tcllib/files/modules/transfer/tqueue.html"> transfer::copy::queue </a> &#183; <a href="tcllib/files/modules/transfer/ddest.html"> transfer::data::destination </a> &#183; <a href="tcllib/files/modules/transfer/dsource.html"> transfer::data::source </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key275"> channel transformation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_counter.html"> tcl::transform::counter </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/hex.html"> tcl::transform::hex </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/identity.html"> tcl::transform::identity </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/spacer.html"> tcl::transform::spacer </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key96"> character input </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/receive.html"> term::receive </a> &#183; <a href="tcllib/files/modules/term/term_bind.html"> term::receive::bind </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key417"> character output </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_send.html"> term::ansi::send </a> &#183; <a href="tcllib/files/modules/term/term_send.html"> term::send </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key690"> chat </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/irc/irc.html"> irc </a> &#183; <a href="tcllib/files/modules/multiplexer/multiplexer.html"> multiplexer </a> &#183; <a href="tcllib/files/modules/irc/picoirc.html"> picoirc </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key617"> checkbox </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/html/html.html"> html </a> &#183; <a href="tcllib/files/modules/javascript/javascript.html"> javascript </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key615"> checkbutton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/html/html.html"> html </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key53"> Checking </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/valtype_common.html"> valtype::common </a> &#183; <a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a> &#183; <a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a> &#183; <a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a> &#183; <a href="tcllib/files/modules/valtype/luhn.html"> valtype::luhn </a> &#183; <a href="tcllib/files/modules/valtype/luhn5.html"> valtype::luhn5 </a> &#183; <a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a> &#183; <a href="tcllib/files/modules/valtype/verhoeff.html"> valtype::verhoeff </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key150"> checksum </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key685"> chop </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key169"> cipher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pki/pki.html"> pki </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key149"> cksum </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key238"> class </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a> &#183; <a href="tcllib/files/modules/stooop/stooop.html"> stooop </a> &#183; <a href="tcllib/files/modules/stooop/switched.html"> switched </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key766"> class methods </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key769"> class variables </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key158"> cleanup </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/try/tcllib_try.html"> try </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key30"> client </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nns/nns_client.html"> nameserv </a> &#183; <a href="tcllib/files/modules/nns/nns_auto.html"> nameserv::auto </a> &#183; <a href="tcllib/files/modules/nns/nns_common.html"> nameserv::common </a> &#183; <a href="tcllib/files/apps/nns.html"> nns </a> &#183; <a href="tcllib/files/modules/nns/nns_intro.html"> nns_intro </a> &#183; <a href="tcllib/files/apps/nnslog.html"> nnslog </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key520"> cloud </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/amazon-s3/S3.html"> S3 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key263"> cmdline processing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cmdline/cmdline.html"> cmdline </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key164"> color control </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_cattr.html"> term::ansi::code::attr </a> &#183; <a href="tcllib/files/modules/term/ansi_cctrl.html"> term::ansi::code::ctrl </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key504"> columns </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key40"> comm </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a> &#183; <a href="tcllib/files/modules/interp/deleg_method.html"> deleg_method </a> &#183; <a href="tcllib/files/modules/interp/deleg_proc.html"> deleg_proc </a> &#183; <a href="tcllib/files/modules/nns/nns_protocol.html"> nameserv::protocol </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key273"> command </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcl_parse.html"> doctools::tcl::parse </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key259"> command line processing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cmdline/cmdline.html"> cmdline </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key592"> command prefix </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/lambda/lambda.html"> lambda </a> &#183; <a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key155"> comment </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/jpeg/jpeg.html"> jpeg </a> &#183; <a href="tcllib/files/modules/png/png.html"> png </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key549"> common </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key687"> common prefix </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key353"> communication </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key551"> comparison </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key485"> complete graph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key792"> complex numbers </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/qcomplex.html"> math::complexnumbers </a> &#183; <a href="tcllib/files/modules/math/fourier.html"> math::fourier </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key264"> compression </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a> &#183; <a href="tcllib/files/modules/zip/encode.html"> zipfile::encode </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key747"> computations </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/bigfloat.html"> math::bigfloat </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key163"> concatenation channel </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/cat.html"> tcl::chan::cat </a> &#183; <a href="tcllib/files/modules/virtchannel_base/facade.html"> tcl::chan::facade </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key478"> connected component </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key737"> connected fifos </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key609"> connection </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key607"> constants </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/constants.html"> math::constants </a> &#183; <a href="tcllib/files/modules/units/units.html"> units </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key347"> CONTAINER </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key516"> contents </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key23"> context-free grammar </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a>
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831





832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092





1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122





1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270





1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448





1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543





1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601





1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189





2190
2191










2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374





2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467





2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572





2573
2574
2575





2576










2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668





2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743





2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key20"> conversion </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/math/roman.html"> math::roman </a> &#183; <a href="tcllib/files/modules/doctools/mpexpand.html"> mpexpand </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a> &#183; <a href="tcllib/files/modules/units/units.html"> units </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key501"> cooked </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key668"> cookie </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ncgi/ncgi.html"> ncgi </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key64"> copy </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/multi.html"> fileutil::multi </a> &#183; <a href="tcllib/files/modules/fileutil/multiop.html"> fileutil::multi::op </a> &#183; <a href="tcllib/files/modules/transfer/copyops.html"> transfer::copy </a> &#183; <a href="tcllib/files/modules/transfer/tqueue.html"> transfer::copy::queue </a> &#183; <a href="tcllib/files/modules/transfer/ddest.html"> transfer::data::destination </a> &#183; <a href="tcllib/files/modules/transfer/dsource.html"> transfer::data::source </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key217"> coroutine </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a> &#183; <a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key810"> Cost </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key272"> counter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/vt_counter.html"> tcl::transform::counter </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key709"> counting </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/counter/counter.html"> counter </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key801"> CPARAM </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key146"> crc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key800"> crc16 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/crc16.html"> crc16 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key147"> crc32 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key266"> credit card </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key791"> cryptography </a></td>





<td class="#idxright" width="65%">
<a href="tcllib/files/modules/blowfish/blowfish.html"> blowfish </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key401"> CSS </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/html_cssdefaults.html"> doctools::html::cssdefaults </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key49"> csv </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wcsv.html"> bench::out::csv </a> &#183; <a href="tcllib/files/modules/csv/csv.html"> csv </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key591"> currying </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/lambda/lambda.html"> lambda </a> &#183; <a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key479"> cut edge </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key481"> cut vertex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key627"> CVS </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key766"> cvs </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/cvs.html"> doctools::cvs </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key767"> cvs log </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/cvs.html"> doctools::cvs </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key148"> cyclic redundancy check </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c7">Keywords: D</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key623"> data analysis </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/statistics.html"> math::statistics </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key61"> data destination </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/ddest.html"> transfer::data::destination </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key398"> data entry form </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_argument_dialogbox.html"> tepam::argument_dialogbox </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key203"> data exchange </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/modules/json/json.html"> json </a> &#183; <a href="tcllib/files/modules/json/json_write.html"> json::write </a> &#183; <a href="tcllib/files/modules/yaml/yaml.html"> yaml </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key124"> data integrity </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/aes/aes.html"> aes </a> &#183; <a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/des/des.html"> des </a> &#183; <a href="tcllib/files/modules/pki/pki.html"> pki </a> &#183; <a href="tcllib/files/modules/rc4/rc4.html"> rc4 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a> &#183; <a href="tcllib/files/modules/des/tcldesjr.html"> tcldes </a> &#183; <a href="tcllib/files/modules/des/tcldes.html"> tcldes </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key361"> data source </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/dsource.html"> transfer::data::source </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key324"> data structures </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/record.html"> struct::record </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key34"> database </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tie/tie_std.html"> tie </a> &#183; <a href="tcllib/files/modules/tie/tie.html"> tie </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key397"> dataflow </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_util_flow.html"> page_util_flow </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key632"> DE </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key76"> debug </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/debug/debug.html"> debug </a> &#183; <a href="tcllib/files/modules/debug/debug_caller.html"> debug::caller </a> &#183; <a href="tcllib/files/modules/debug/debug_heartbeat.html"> debug::heartbeat </a> &#183; <a href="tcllib/files/modules/debug/debug_timestamp.html"> debug::timestamp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key755"> decimal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/decimal.html"> math::decimal </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key334"> declare </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_code.html"> term::ansi::code </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key43"> decompression </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a> &#183; <a href="tcllib/files/modules/zip/decode.html"> zipfile::decode </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key370"> decryption </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key537"> deferal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uev/uevent_onidle.html"> uevent::onidle </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key335"> define </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_code.html"> term::ansi::code </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key470"> degree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key471"> degree constrained spanning tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key799"> degrees </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/constants.html"> math::constants </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key39"> delegation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/deleg_method.html"> deleg_method </a> &#183; <a href="tcllib/files/modules/interp/deleg_proc.html"> deleg_proc </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key693"> depth-first </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key423"> der </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key292"> DES </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/des/des.html"> des </a> &#183; <a href="tcllib/files/modules/des/tcldesjr.html"> tcldes </a> &#183; <a href="tcllib/files/modules/des/tcldes.html"> tcldes </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key288"> deserialization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/import_docidx.html"> doctools::idx::import::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import_json.html"> doctools::idx::import::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_structure.html"> doctools::idx::structure </a> &#183; <a href="tcllib/files/modules/doctools2toc/import_doctoc.html"> doctools::toc::import::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import_json.html"> doctools::toc::import::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_structure.html"> doctools::toc::structure </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key453"> diameter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key557"> diff </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a> &#183; <a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key628"> diff -n format </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key725"> difference </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key551"> differential </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key776"> differential equations </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/calculus.html"> math::calculus </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key491"> dijkstra </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key135"> directory access </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldap.html"> ldap </a> &#183; <a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key715"> directory traversal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/traverse.html"> fileutil_traverse </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key267"> Discover </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key778"> discrete items </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/pool.html"> struct::pool </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key616"> disjoint set </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key512"> dispatcher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/term_bind.html"> term::receive::bind </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key474"> distance </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/math_geometry.html"> math::geometry </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a> &#183; <a href="tcllib/files/modules/units/units.html"> units </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key593"> DNS </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_dns.html"> dns </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key145"> do </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/control/control.html"> control </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key178"> docidx </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/export_docidx.html"> doctools::idx::export::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2idx/import_docidx.html"> doctools::idx::import::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_parse.html"> doctools::idx::parse </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_structure.html"> doctools::idx::structure </a> &#183; <a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a>
</td></tr>





<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key363"> docidx commands </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_lang_cmdref.html"> docidx_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_intro.html"> docidx_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_syntax.html"> docidx_lang_syntax </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key366"> docidx language </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_lang_cmdref.html"> docidx_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_intro.html"> docidx_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_syntax.html"> docidx_lang_syntax </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key247"> docidx markup </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_lang_cmdref.html"> docidx_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_intro.html"> docidx_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_syntax.html"> docidx_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key364"> docidx syntax </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_intro.html"> docidx_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_syntax.html"> docidx_lang_syntax </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key430"> docstrip </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip.html"> docstrip </a> &#183; <a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key254"> doctoc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/export_doctoc.html"> doctools::toc::export::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/import_doctoc.html"> doctools::toc::import::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_parse.html"> doctools::toc::parse </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_structure.html"> doctools::toc::structure </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a>
</td></tr>





<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key507"> doctoc commands </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_lang_cmdref.html"> doctoc_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_intro.html"> doctoc_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_syntax.html"> doctoc_lang_syntax </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key506"> doctoc language </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_lang_cmdref.html"> doctoc_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_intro.html"> doctoc_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_syntax.html"> doctoc_lang_syntax </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key382"> doctoc markup </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_lang_cmdref.html"> doctoc_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_intro.html"> doctoc_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_syntax.html"> doctoc_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key540"> doctoc syntax </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_intro.html"> doctoc_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_syntax.html"> doctoc_lang_syntax </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key179"> doctools </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a> &#183; <a href="tcllib/files/modules/doctools/changelog.html"> doctools::changelog </a> &#183; <a href="tcllib/files/modules/doctools2base/html_cssdefaults.html"> doctools::html::cssdefaults </a> &#183; <a href="tcllib/files/modules/doctools2idx/export_docidx.html"> doctools::idx::export::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_html.html"> doctools::idx::export::html </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_json.html"> doctools::idx::export::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_nroff.html"> doctools::idx::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_text.html"> doctools::idx::export::text </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_wiki.html"> doctools::idx::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2idx/import_docidx.html"> doctools::idx::import::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import_json.html"> doctools::idx::import::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_parse.html"> doctools::idx::parse </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_structure.html"> doctools::idx::structure </a> &#183; <a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a> &#183; <a href="tcllib/files/modules/doctools2base/nroff_manmacros.html"> doctools::nroff::man_macros </a> &#183; <a href="tcllib/files/modules/doctools2base/tcl_parse.html"> doctools::tcl::parse </a> &#183; <a href="tcllib/files/modules/doctools2toc/export_doctoc.html"> doctools::toc::export::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_html.html"> doctools::toc::export::html </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_json.html"> doctools::toc::export::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_nroff.html"> doctools::toc::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_text.html"> doctools::toc::export::text </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_wiki.html"> doctools::toc::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2toc/import_doctoc.html"> doctools::toc::import::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import_json.html"> doctools::toc::import::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_parse.html"> doctools::toc::parse </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_structure.html"> doctools::toc::structure </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key137"> doctools commands </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools_lang_cmdref.html"> doctools_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_intro.html"> doctools_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_syntax.html"> doctools_lang_syntax </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key140"> doctools language </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools_lang_cmdref.html"> doctools_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_intro.html"> doctools_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_syntax.html"> doctools_lang_syntax </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key139"> doctools markup </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools_lang_cmdref.html"> doctools_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_intro.html"> doctools_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_syntax.html"> doctools_lang_syntax </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key138"> doctools syntax </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_intro.html"> doctools_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_syntax.html"> doctools_lang_syntax </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key652"> document </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools_plugin_apiref.html"> doctools_plugin_apiref </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key185"> documentation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip.html"> docstrip </a> &#183; <a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a> &#183; <a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a> &#183; <a href="tcllib/files/modules/tepam/tepam_doc_gen.html"> tepam::doc_gen </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key807"> DOM </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key746"> dom </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/amazon-s3/xsxp.html"> xsxp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key596"> domain name service </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_dns.html"> dns </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c8">Keywords: E</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key798"> e </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/constants.html"> math::constants </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key103"> EAN </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key104"> EAN13 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key816"> earley </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key3"> EBNF </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key496"> eccentricity </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key455"> edge </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key444"> emacs </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/changelog.html"> doctools::changelog </a> &#183; <a href="tcllib/files/modules/doctools/cvs.html"> doctools::cvs </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key331"> email </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a> &#183; <a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key721"> emptiness </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key769"> empty interpreter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/tcllib_interp.html"> interp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key543"> EN </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key252"> encoding </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base64/ascii85.html"> ascii85 </a> &#183; <a href="tcllib/files/modules/base64/base64.html"> base64 </a> &#183; <a href="tcllib/files/modules/base64/uuencode.html"> uuencode </a> &#183; <a href="tcllib/files/modules/base64/yencode.html"> yencode </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key127"> encryption </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/aes/aes.html"> aes </a> &#183; <a href="tcllib/files/modules/blowfish/blowfish.html"> blowfish </a> &#183; <a href="tcllib/files/modules/des/des.html"> des </a> &#183; <a href="tcllib/files/modules/pki/pki.html"> pki </a> &#183; <a href="tcllib/files/modules/rc4/rc4.html"> rc4 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a> &#183; <a href="tcllib/files/modules/des/tcldesjr.html"> tcldes </a> &#183; <a href="tcllib/files/modules/des/tcldes.html"> tcldes </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key752"> entry mask </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a>
</td></tr>





<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key554"> equal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key567"> equality </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key615"> equivalence class </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key161"> error </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/try/tcllib_try.html"> try </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key676"> error function </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/special.html"> math::special </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key102"> European Article Number </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key536"> event </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a> &#183; <a href="tcllib/files/modules/uev/uevent.html"> uevent </a> &#183; <a href="tcllib/files/modules/uev/uevent_onidle.html"> uevent::onidle </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key511"> event management </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_core/events.html"> tcl::chan::events </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key407"> events </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key365"> examples </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_lang_intro.html"> bench_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key162"> exception </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/try/tcllib_try.html"> try </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key202"> exchange format </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/modules/json/json.html"> json </a> &#183; <a href="tcllib/files/modules/json/json_write.html"> json::write </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key723"> exclusion </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key425"> execution </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key152"> exif </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/jpeg/jpeg.html"> jpeg </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key410"> exit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key256"> export </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/html_cssdefaults.html"> doctools::html::cssdefaults </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/export_docidx.html"> doctools::idx::export::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_html.html"> doctools::idx::export::html </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_json.html"> doctools::idx::export::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_nroff.html"> doctools::idx::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_text.html"> doctools::idx::export::text </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_wiki.html"> doctools::idx::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2base/nroff_manmacros.html"> doctools::nroff::man_macros </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/export_doctoc.html"> doctools::toc::export::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_html.html"> doctools::toc::export::html </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_json.html"> doctools::toc::export::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_nroff.html"> doctools::toc::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_text.html"> doctools::toc::export::text </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_wiki.html"> doctools::toc::export::wiki </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key0"> expression </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key87"> extended namespace </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/namespacex/namespacex.html"> namespacex </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c9">Keywords: F</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key362"> faq </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key527"> fetching information </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key794"> FFT </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/fourier.html"> math::fourier </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key602"> fifo </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_fifo.html"> tcl::chan::fifo </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a> &#183; <a href="tcllib/files/modules/virtchannel_base/halfpipe.html"> tcl::chan::halfpipe </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key31"> file </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tie/tie_std.html"> tie </a> &#183; <a href="tcllib/files/modules/tie/tie.html"> tie </a> &#183; <a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key116"> file recognition </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fumagic/cfront.html"> fileutil::magic::cfront </a> &#183; <a href="tcllib/files/modules/fumagic/cgen.html"> fileutil::magic::cgen </a> &#183; <a href="tcllib/files/modules/fumagic/filetypes.html"> fileutil::magic::filetype </a> &#183; <a href="tcllib/files/modules/fumagic/mimetypes.html"> fileutil::magic::mimetype </a> &#183; <a href="tcllib/files/modules/fumagic/rtcore.html"> fileutil::magic::rt </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key118"> file type </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fumagic/cfront.html"> fileutil::magic::cfront </a> &#183; <a href="tcllib/files/modules/fumagic/cgen.html"> fileutil::magic::cgen </a> &#183; <a href="tcllib/files/modules/fumagic/filetypes.html"> fileutil::magic::filetype </a> &#183; <a href="tcllib/files/modules/fumagic/mimetypes.html"> fileutil::magic::mimetype </a> &#183; <a href="tcllib/files/modules/fumagic/rtcore.html"> fileutil::magic::rt </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key115"> file utilities </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a> &#183; <a href="tcllib/files/modules/fumagic/cfront.html"> fileutil::magic::cfront </a> &#183; <a href="tcllib/files/modules/fumagic/cgen.html"> fileutil::magic::cgen </a> &#183; <a href="tcllib/files/modules/fumagic/filetypes.html"> fileutil::magic::filetype </a> &#183; <a href="tcllib/files/modules/fumagic/mimetypes.html"> fileutil::magic::mimetype </a> &#183; <a href="tcllib/files/modules/fumagic/rtcore.html"> fileutil::magic::rt </a> &#183; <a href="tcllib/files/modules/fileutil/multi.html"> fileutil::multi </a> &#183; <a href="tcllib/files/modules/fileutil/multiop.html"> fileutil::multi::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key380"> filesystem </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key221"> filter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a> &#183; <a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key160"> final </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/try/tcllib_try.html"> try </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key264"> finance </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a> &#183; <a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key619"> find </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key779"> finite </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/pool.html"> struct::pool </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key321"> finite automaton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key211"> FIPS 180-1 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sha1/sha1.html"> sha1 </a> &#183; <a href="tcllib/files/modules/sha1/sha256.html"> sha256 </a>
</td></tr>





<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key555"> first permutation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key563"> Fisher-Yates </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key552"> flatten </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key388"> floating-point </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/bigfloat.html"> math::bigfloat </a> &#183; <a href="tcllib/files/modules/math/fuzzy.html"> math::fuzzy </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key141"> flow </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/control/control.html"> control </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key494"> flow network </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key560"> folding </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key219"> foldl </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key224"> foldr </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key216"> foreach </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key610"> form </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/html/html.html"> html </a> &#183; <a href="tcllib/files/modules/ncgi/ncgi.html"> ncgi </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key110"> format conversion </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key650"> formatter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools_plugin_apiref.html"> doctools_plugin_apiref </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key245"> formatting </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wcsv.html"> bench::out::csv </a> &#183; <a href="tcllib/files/modules/bench/bench_wtext.html"> bench::out::text </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a> &#183; <a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a> &#183; <a href="tcllib/files/modules/textutil/tabify.html"> textutil::tabify </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key651"> formatting engine </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctools_plugin_apiref.html"> doctools_plugin_apiref </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key793"> Fourier transform </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/fourier.html"> math::fourier </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key170"> FR </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key667"> frame </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_cmacros.html"> term::ansi::code::macros </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key290"> ftp </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ftp/ftp.html"> ftp </a> &#183; <a href="tcllib/files/modules/ftp/ftp_geturl.html"> ftp::geturl </a> &#183; <a href="tcllib/files/modules/ftpd/ftpd.html"> ftpd </a> &#183; <a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>





<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key601"> ftpd </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ftpd/ftpd.html"> ftpd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key600"> ftpserver </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ftpd/ftpd.html"> ftpd </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key558"> full outer join </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c10">Keywords: G</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key705"> generate event </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uev/uevent.html"> uevent </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key566"> generate permutations </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key248"> generation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key223"> generator </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key578"> geocoding </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key195"> geodesy </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a> &#183; <a href="tcllib/files/modules/mapproj/mapproj.html"> mapproj </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key200"> geography </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key94"> get character </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/receive.html"> term::receive </a>
</td></tr>





<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key411"> gets </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key408"> global </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key525"> gopher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key403"> gps </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/gpx/gpx.html"> gpx </a> &#183; <a href="tcllib/files/modules/nmea/nmea.html"> nmea </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key662"> gpx </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/gpx/gpx.html"> gpx </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key11"> grammar </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a> &#183; <a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a> &#183; <a href="tcllib/files/modules/grammar_me/me_cpu.html"> grammar::me::cpu </a> &#183; <a href="tcllib/files/modules/grammar_me/me_cpucore.html"> grammar::me::cpu::core </a> &#183; <a href="tcllib/files/modules/grammar_me/gasm.html"> grammar::me::cpu::gasm </a> &#183; <a href="tcllib/files/modules/grammar_me/me_tcl.html"> grammar::me::tcl </a> &#183; <a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_me/me_vm.html"> grammar::me_vm </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key301"> graph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/gasm.html"> grammar::me::cpu::gasm </a> &#183; <a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a> &#183; <a href="tcllib/files/modules/struct/graph1.html"> struct::graph_v1 </a> &#183; <a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/struct/stack.html"> struct::stack </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key192"> graph walking </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_util_flow.html"> page_util_flow </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key414"> green threads </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key312"> grep </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key208"> GUID </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uuid/uuid.html"> uuid </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c11">Keywords: H</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key214"> hashing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/md5crypt/md5crypt.html"> md5crypt </a> &#183; <a href="tcllib/files/modules/otp/otp.html"> otp </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a> &#183; <a href="tcllib/files/modules/sha1/sha1.html"> sha1 </a> &#183; <a href="tcllib/files/modules/sha1/sha256.html"> sha256 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key702"> heartbeat </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/debug/debug_heartbeat.html"> debug::heartbeat </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key469"> heuristic </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key336"> hex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base32/base32hex.html"> base32::hex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key726"> hexadecimal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/hex.html"> tcl::transform::hex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key708"> histogram </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/counter/counter.html"> counter </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key673"> hook </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a> &#183; <a href="tcllib/files/modules/uev/uevent.html"> uevent </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key815"> horspool </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key18"> HTML </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools2base/html_cssdefaults.html"> doctools::html::cssdefaults </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_html.html"> doctools::idx::export::html </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_html.html"> doctools::toc::export::html </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/doctools/mpexpand.html"> mpexpand </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key611"> html </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/html/html.html"> html </a> &#183; <a href="tcllib/files/modules/htmlparse/htmlparse.html"> htmlparse </a> &#183; <a href="tcllib/files/modules/javascript/javascript.html"> javascript </a> &#183; <a href="tcllib/files/modules/ncgi/ncgi.html"> ncgi </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key441"> http </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/http/autoproxy.html"> autoproxy </a> &#183; <a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a> &#183; <a href="tcllib/files/modules/uri/uri.html"> uri </a> &#183; <a href="tcllib/files/modules/websocket/websocket.html"> websocket </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key582"> huddle </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/modules/yaml/yaml.html"> yaml </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key499"> human readable </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wtext.html"> bench::out::text </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key344"> hyphenation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c12">Keywords: I</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key171"> i18n </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key378"> IBAN </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key428"> ident </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ident/ident.html"> ident </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key429"> identification </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ident/ident.html"> ident </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key437"> identity </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/identity.html"> tcl::transform::identity </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key535"> idle </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uev/uevent_onidle.html"> uevent::onidle </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key121"> image </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/jpeg/jpeg.html"> jpeg </a> &#183; <a href="tcllib/files/modules/png/png.html"> png </a> &#183; <a href="tcllib/files/modules/tiff/tiff.html"> tiff </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key796"> imap </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key782"> IMEI </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key287"> import </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2idx/import_docidx.html"> doctools::idx::import::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import_json.html"> doctools::idx::import::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/import_doctoc.html"> doctools::toc::import::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import_json.html"> doctools::toc::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key46"> in-memory channel </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_fifo.html"> tcl::chan::fifo </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a> &#183; <a href="tcllib/files/modules/virtchannel_base/halfpipe.html"> tcl::chan::halfpipe </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_memchan.html"> tcl::chan::memchan </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_string.html"> tcl::chan::string </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_variable.html"> tcl::chan::variable </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key692"> in-order </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key720"> inclusion </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key242"> Incr Tcl </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key340"> indenting </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key466"> independent set </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key182"> index </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_intro.html"> docidx_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/export_docidx.html"> doctools::idx::export::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_html.html"> doctools::idx::export::html </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_json.html"> doctools::idx::export::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_nroff.html"> doctools::idx::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_text.html"> doctools::idx::export::text </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_wiki.html"> doctools::idx::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2idx/import_docidx.html"> doctools::idx::import::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import_json.html"> doctools::idx::import::json </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key771"> index formatter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key83"> info </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/namespacex/namespacex.html"> namespacex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key562"> inner join </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key500"> input mode </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key347"> integer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/roman.html"> math::roman </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key774"> integration </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/calculus.html"> math::calculus </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key732"> inter-thread communication </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key105"> International Article Number </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key377"> International Bank Account Number </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key785"> International Mobile Equipment Identity </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key360"> International Standard Book Number </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key175"> internationalization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key131"> internet </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a> &#183; <a href="tcllib/files/modules/ftp/ftp.html"> ftp </a> &#183; <a href="tcllib/files/modules/ftp/ftp_geturl.html"> ftp::geturl </a> &#183; <a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a> &#183; <a href="tcllib/files/modules/ldap/ldap.html"> ldap </a> &#183; <a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a> &#183; <a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_dbox.html"> pop3d::dbox </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_udb.html"> pop3d::udb </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a> &#183; <a href="tcllib/files/modules/websocket/websocket.html"> websocket </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key449"> internet address </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_ip.html"> tcllib_ip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key825"> interpolation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/interpolate.html"> math::interpolate </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key38"> interpreter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/deleg_method.html"> deleg_method </a> &#183; <a href="tcllib/files/modules/interp/deleg_proc.html"> deleg_proc </a> &#183; <a href="tcllib/files/modules/interp/tcllib_interp.html"> interp </a> &#183; <a href="tcllib/files/modules/wip/wip.html"> wip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key724"> intersection </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key742"> interval </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/bigfloat.html"> math::bigfloat </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key446"> ip </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_ip.html"> tcllib_ip </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key356"> ipc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key448"> ipv4 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_ip.html"> tcllib_ip </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key445"> ipv6 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_ip.html"> tcllib_ip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key736"> irc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/irc/irc.html"> irc </a> &#183; <a href="tcllib/files/modules/irc/picoirc.html"> picoirc </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key55"> isA </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/valtype_common.html"> valtype::common </a> &#183; <a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a> &#183; <a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a> &#183; <a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a> &#183; <a href="tcllib/files/modules/valtype/luhn.html"> valtype::luhn </a> &#183; <a href="tcllib/files/modules/valtype/luhn5.html"> valtype::luhn5 </a> &#183; <a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a> &#183; <a href="tcllib/files/modules/valtype/verhoeff.html"> valtype::verhoeff </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key358"> ISBN </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key486"> isthmus </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key220"> iterator </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c13">Keywords: J</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key205"> javascript </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/javascript/javascript.html"> javascript </a> &#183; <a href="tcllib/files/modules/json/json.html"> json </a> &#183; <a href="tcllib/files/modules/json/json_write.html"> json::write </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key154"> jfif </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/jpeg/jpeg.html"> jpeg </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key553"> join </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key153"> jpeg </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/jpeg/jpeg.html"> jpeg </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key255"> JSON </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_export_json.html"> doctools::idx::export::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import_json.html"> doctools::idx::import::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_json.html"> doctools::toc::export::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import_json.html"> doctools::toc::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key204"> json </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/modules/json/json.html"> json </a> &#183; <a href="tcllib/files/modules/json/json_write.html"> json::write </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key339"> justification </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c14">Keywords: K</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key184"> keyword index </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_intro.html"> docidx_intro </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key770"> keywords </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key281"> knuth </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/soundex/soundex.html"> soundex </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c15">Keywords: L</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key177"> l10n </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key588"> lambda </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/lambda/lambda.html"> lambda </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key433"> LaTeX </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip.html"> docstrip </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key186"> latex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key194"> latitute </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key130"> ldap </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldap.html"> ldap </a> &#183; <a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a> &#183; <a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key128"> ldap client </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldap.html"> ldap </a> &#183; <a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key498"> ldif </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key69"> least squares </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key547"> left outer join </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key191"> lemon </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key482"> level graph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key253"> lexer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_parse.html"> doctools::idx::parse </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_parse.html"> doctools::toc::parse </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key690"> lexing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/string/token.html"> string::token </a> &#183; <a href="tcllib/files/modules/string/token_shell.html"> string::token::shell </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key717"> limitsize </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key574"> line </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/math_geometry.html"> math::geometry </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key68"> linear algebra </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key67"> linear equations </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key308"> linear program </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/optimize.html"> math::optimize </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key505"> lines </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key298"> list </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a> &#183; <a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/wip/wip.html"> wip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key97"> listener </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/receive.html"> term::receive </a> &#183; <a href="tcllib/files/modules/term/term_bind.html"> term::receive::bind </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key432"> literate programming </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip.html"> docstrip </a> &#183; <a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key15"> LL(k) </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key477"> local searching </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key174"> localization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key198"> location </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a> &#183; <a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a> &#183; <a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key73"> log </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/debug/debug.html"> debug </a> &#183; <a href="tcllib/files/modules/debug/debug_caller.html"> debug::caller </a> &#183; <a href="tcllib/files/modules/debug/debug_heartbeat.html"> debug::heartbeat </a> &#183; <a href="tcllib/files/modules/debug/debug_timestamp.html"> debug::timestamp </a> &#183; <a href="tcllib/files/modules/doctools/cvs.html"> doctools::cvs </a> &#183; <a href="tcllib/files/modules/log/log.html"> log </a> &#183; <a href="tcllib/files/modules/log/logger.html"> logger </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key91"> log level </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/log/log.html"> log </a> &#183; <a href="tcllib/files/modules/log/logger.html"> logger </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key89"> logger </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/log/logger.html"> logger </a> &#183; <a href="tcllib/files/modules/log/loggerAppender.html"> logger::appender </a> &#183; <a href="tcllib/files/modules/log/loggerUtils.html"> logger::utils </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key545"> longest common subsequence </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key201"> longitude </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key452"> loop </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key59"> luhn </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/luhn.html"> valtype::luhn </a> &#183; <a href="tcllib/files/modules/valtype/luhn5.html"> valtype::luhn5 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key54"> luhn-5 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/luhn5.html"> valtype::luhn5 </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c16">Keywords: M</a>
</th></tr>





<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key521"> macros </a></td>










<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/nroff_manmacros.html"> doctools::nroff::man_macros </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key326"> mail </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a> &#183; <a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key528"> mailto </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key520"> man_macros </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/nroff_manmacros.html"> doctools::nroff::man_macros </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key17"> manpage </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/doctools/doctools_plugin_apiref.html"> doctools_plugin_apiref </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/doctools/mpexpand.html"> mpexpand </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key199"> map </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a> &#183; <a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a> &#183; <a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a> &#183; <a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a> &#183; <a href="tcllib/files/modules/mapproj/mapproj.html"> mapproj </a> &#183; <a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key16"> markup </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_intro.html"> docidx_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_cmdref.html"> docidx_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_intro.html"> docidx_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_syntax.html"> docidx_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_intro.html"> doctoc_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_cmdref.html"> doctoc_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_intro.html"> doctoc_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_syntax.html"> doctoc_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/doctools/doctools_intro.html"> doctools_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_cmdref.html"> doctools_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_intro.html"> doctools_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_syntax.html"> doctools_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools/doctools_plugin_apiref.html"> doctools_plugin_apiref </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/doctools/mpexpand.html"> mpexpand </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key663"> MasterCard </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key5"> matching </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key71"> math </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/math.html"> math </a> &#183; <a href="tcllib/files/modules/math/bigfloat.html"> math::bigfloat </a> &#183; <a href="tcllib/files/modules/math/bignum.html"> math::bignum </a> &#183; <a href="tcllib/files/modules/math/calculus.html"> math::calculus </a> &#183; <a href="tcllib/files/modules/math/qcomplex.html"> math::complexnumbers </a> &#183; <a href="tcllib/files/modules/math/constants.html"> math::constants </a> &#183; <a href="tcllib/files/modules/math/decimal.html"> math::decimal </a> &#183; <a href="tcllib/files/modules/math/fuzzy.html"> math::fuzzy </a> &#183; <a href="tcllib/files/modules/math/math_geometry.html"> math::geometry </a> &#183; <a href="tcllib/files/modules/math/interpolate.html"> math::interpolate </a> &#183; <a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a> &#183; <a href="tcllib/files/modules/math/optimize.html"> math::optimize </a> &#183; <a href="tcllib/files/modules/math/polynomials.html"> math::polynomials </a> &#183; <a href="tcllib/files/modules/math/rational_funcs.html"> math::rationalfunctions </a> &#183; <a href="tcllib/files/modules/math/special.html"> math::special </a> &#183; <a href="tcllib/files/modules/simulation/annealing.html"> simulation::annealing </a> &#183; <a href="tcllib/files/modules/simulation/montecarlo.html"> simulation::montecarlo </a> &#183; <a href="tcllib/files/modules/simulation/simulation_random.html"> simulation::random </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key622"> mathematics </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/fourier.html"> math::fourier </a> &#183; <a href="tcllib/files/modules/math/statistics.html"> math::statistics </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key66"> matrices </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key51"> matrix </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/csv/csv.html"> csv </a> &#183; <a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a> &#183; <a href="tcllib/files/modules/report/report.html"> report </a> &#183; <a href="tcllib/files/modules/struct/matrix.html"> struct::matrix </a> &#183; <a href="tcllib/files/modules/struct/matrix1.html"> struct::matrix_v1 </a> &#183; <a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/struct/stack.html"> struct::stack </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key473"> max cut </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key306"> maximum </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/optimize.html"> math::optimize </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key493"> maximum flow </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key375"> md4 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key654"> md5 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/md5crypt/md5crypt.html"> md5crypt </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key753"> md5crypt </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md5crypt/md5crypt.html"> md5crypt </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key231"> medicare </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key237"> mega widget </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key719"> membership </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key666"> menu </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_cmacros.html"> term::ansi::code::macros </a> &#183; <a href="tcllib/files/modules/term/imenu.html"> term::interact::menu </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key533"> merge </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a> &#183; <a href="tcllib/files/modules/uev/uevent_onidle.html"> uevent::onidle </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key618"> merge find </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key111"> merging </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench.html"> bench </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key357"> message </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a> &#183; <a href="tcllib/files/modules/log/log.html"> log </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key172"> message catalog </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key790"> message level </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/log/log.html"> log </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key173"> message package </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key213"> message-digest </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/md5crypt/md5crypt.html"> md5crypt </a> &#183; <a href="tcllib/files/modules/otp/otp.html"> otp </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a> &#183; <a href="tcllib/files/modules/sha1/sha1.html"> sha1 </a> &#183; <a href="tcllib/files/modules/sha1/sha256.html"> sha256 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key36"> metakit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tie/tie_std.html"> tie </a> &#183; <a href="tcllib/files/modules/tie/tie.html"> tie </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key367"> method </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/deleg_method.html"> deleg_method </a> &#183; <a href="tcllib/files/modules/interp/tcllib_interp.html"> interp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key760"> method reference </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key228"> mime </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fumagic/cfront.html"> fileutil::magic::cfront </a> &#183; <a href="tcllib/files/modules/fumagic/cgen.html"> fileutil::magic::cgen </a> &#183; <a href="tcllib/files/modules/fumagic/mimetypes.html"> fileutil::magic::mimetype </a> &#183; <a href="tcllib/files/modules/fumagic/rtcore.html"> fileutil::magic::rt </a> &#183; <a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key456"> minimal spanning tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key305"> minimum </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/optimize.html"> math::optimize </a>
</td></tr>





<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key467"> minimum cost flow </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key457"> minimum degree spanning tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key495"> minimum diameter spanning tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key783"> mobile phone </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key660"> module </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key740"> montecarlo simulation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/simulation/montecarlo.html"> simulation::montecarlo </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key227"> move </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/multi.html"> fileutil::multi </a> &#183; <a href="tcllib/files/modules/fileutil/multiop.html"> fileutil::multi::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key225"> multi-file </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/multi.html"> fileutil::multi </a> &#183; <a href="tcllib/files/modules/fileutil/multiop.html"> fileutil::multi::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key687"> multiplexer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/multiplexer/multiplexer.html"> multiplexer </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key285"> multiprecision </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/bigfloat.html"> math::bigfloat </a> &#183; <a href="tcllib/files/modules/math/bignum.html"> math::bignum </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key764"> my method </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c17">Keywords: N</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key29"> name service </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nns/nns_client.html"> nameserv </a> &#183; <a href="tcllib/files/modules/nns/nns_auto.html"> nameserv::auto </a> &#183; <a href="tcllib/files/modules/nns/nns_common.html"> nameserv::common </a> &#183; <a href="tcllib/files/modules/nns/nns_protocol.html"> nameserv::protocol </a> &#183; <a href="tcllib/files/modules/nns/nns_server.html"> nameserv::server </a> &#183; <a href="tcllib/files/apps/nns.html"> nns </a> &#183; <a href="tcllib/files/modules/nns/nns_intro.html"> nns_intro </a> &#183; <a href="tcllib/files/apps/nnsd.html"> nnsd </a> &#183; <a href="tcllib/files/apps/nnslog.html"> nnslog </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key86"> namespace unknown </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/namespacex/namespacex.html"> namespacex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key85"> namespace utilities </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/namespacex/namespacex.html"> namespacex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key72"> narrative </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/debug/debug.html"> debug </a> &#183; <a href="tcllib/files/modules/debug/debug_caller.html"> debug::caller </a> &#183; <a href="tcllib/files/modules/debug/debug_heartbeat.html"> debug::heartbeat </a> &#183; <a href="tcllib/files/modules/debug/debug_timestamp.html"> debug::timestamp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key229"> National Provider Identifier </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key484"> neighbour </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key291"> net </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ftp/ftp.html"> ftp </a> &#183; <a href="tcllib/files/modules/ftp/ftp_geturl.html"> ftp::geturl </a> &#183; <a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a> &#183; <a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a> &#183; <a href="tcllib/files/modules/websocket/websocket.html"> websocket </a>
</td></tr>





<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key665"> network </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_dbox.html"> pop3d::dbox </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_udb.html"> pop3d::udb </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key526"> news </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nntp/nntp.html"> nntp </a> &#183; <a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key570"> next permutation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key402"> nmea </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nmea/nmea.html"> nmea </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key645"> nntp </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nntp/nntp.html"> nntp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key648"> nntpclient </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nntp/nntp.html"> nntp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key143"> no-op </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/control/control.html"> control </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key458"> node </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a> &#183; <a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key577"> nominatim </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key112"> normalization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench.html"> bench </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a> &#183; <a href="tcllib/files/modules/stringprep/unicode.html"> unicode </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key232"> NPI </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key21"> nroff </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_nroff.html"> doctools::idx::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2base/nroff_manmacros.html"> doctools::nroff::man_macros </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_nroff.html"> doctools::toc::export::nroff </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/doctools/mpexpand.html"> mpexpand </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key703"> NTLM </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sasl/ntlm.html"> SASL::NTLM </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key80"> NTP </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ntp/ntp_time.html"> ntp_time </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key757"> null </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_null.html"> tcl::chan::null </a> &#183; <a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key758"> number theory </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/numtheory.html"> math::numtheory </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c18">Keywords: O</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key829"> oauth </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/oauth/oauth.html"> oauth </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key241"> object </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a> &#183; <a href="tcllib/files/modules/stooop/stooop.html"> stooop </a> &#183; <a href="tcllib/files/modules/stooop/switched.html"> switched </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key234"> object oriented </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a> &#183; <a href="tcllib/files/modules/stooop/stooop.html"> stooop </a> &#183; <a href="tcllib/files/modules/stooop/switched.html"> switched </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key643"> observer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key532"> on-idle </a></td>





<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uev/uevent_onidle.html"> uevent::onidle </a>
</td></tr>





<tr class="#idxeven" valign=top>










<td class="#idxleft" width="35%"><a name="key371"> one time pad </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key307"> optimization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/optimize.html"> math::optimize </a> &#183; <a href="tcllib/files/modules/simulation/annealing.html"> simulation::annealing </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key744"> ordered list </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/prioqueue.html"> struct::prioqueue </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key372"> otp </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key569"> outer join </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c19">Keywords: P</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key48"> package </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/csv/csv.html"> csv </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key657"> package indexing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key189"> page </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_intro.html"> page_intro </a> &#183; <a href="tcllib/files/modules/page/page_pluginmgr.html"> page_pluginmgr </a> &#183; <a href="tcllib/files/modules/page/page_util_flow.html"> page_util_flow </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_peg.html"> page_util_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_quote.html"> page_util_quote </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key781"> pager </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ipager.html"> term::interact::pager </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key343"> paragraph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key513"> PARAM </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key399"> parameter entry form </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a> &#183; <a href="tcllib/files/modules/tepam/tepam_argument_dialogbox.html"> tepam::argument_dialogbox </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key9"> parser </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_parse.html"> doctools::idx::parse </a> &#183; <a href="tcllib/files/modules/doctools2base/tcl_parse.html"> doctools::tcl::parse </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_parse.html"> doctools::toc::parse </a> &#183; <a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a> &#183; <a href="tcllib/files/modules/amazon-s3/xsxp.html"> xsxp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key187"> parser generator </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/apps/page.html"> page </a> &#183; <a href="tcllib/files/modules/page/page_intro.html"> page_intro </a> &#183; <a href="tcllib/files/modules/page/page_pluginmgr.html"> page_pluginmgr </a> &#183; <a href="tcllib/files/modules/page/page_util_flow.html"> page_util_flow </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_peg.html"> page_util_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_quote.html"> page_util_quote </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key26"> parsing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bibtex/bibtex.html"> bibtex </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a> &#183; <a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a> &#183; <a href="tcllib/files/modules/grammar_me/me_cpu.html"> grammar::me::cpu </a> &#183; <a href="tcllib/files/modules/grammar_me/me_cpucore.html"> grammar::me::cpu::core </a> &#183; <a href="tcllib/files/modules/grammar_me/gasm.html"> grammar::me::cpu::gasm </a> &#183; <a href="tcllib/files/modules/grammar_me/me_tcl.html"> grammar::me::tcl </a> &#183; <a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_me/me_vm.html"> grammar::me_vm </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/modules/htmlparse/htmlparse.html"> htmlparse </a> &#183; <a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/modules/string/token_shell.html"> string::token::shell </a> &#183; <a href="tcllib/files/modules/yaml/yaml.html"> yaml </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key8"> parsing expression </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key14"> parsing expression grammar </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/modules/page/page_util_peg.html"> page_util_peg </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key587"> partial application </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/lambda/lambda.html"> lambda </a>
</td></tr>





<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key620"> partition </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key621"> partitioned set </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key608"> passive </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key685"> password </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/otp/otp.html"> otp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key655"> patch </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key629"> patching </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key6"> PEG </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_peg.html"> page_util_peg </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key100"> performance </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench.html"> bench </a> &#183; <a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wcsv.html"> bench::out::csv </a> &#183; <a href="tcllib/files/modules/bench/bench_wtext.html"> bench::out::text </a> &#183; <a href="tcllib/files/modules/bench/bench_intro.html"> bench_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_intro.html"> bench_lang_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_spec.html"> bench_lang_spec </a> &#183; <a href="tcllib/files/modules/profiler/profiler.html"> profiler </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key544"> permutation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key33"> persistence </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tie/tie_std.html"> tie </a> &#183; <a href="tcllib/files/modules/tie/tie.html"> tie </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key784"> phone </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key797"> pi </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/constants.html"> math::constants </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key539"> plain text </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_export_text.html"> doctools::idx::export::text </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_text.html"> doctools::toc::export::text </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key573"> plane geometry </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/math_geometry.html"> math::geometry </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key250"> plugin </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools2base/html_cssdefaults.html"> doctools::html::cssdefaults </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2base/nroff_manmacros.html"> doctools::nroff::man_macros </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a>
</td></tr>





<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key180"> plugin management </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pluginmgr/pluginmgr.html"> pluginmgr </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key181"> plugin search </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pluginmgr/pluginmgr.html"> pluginmgr </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key697"> png </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/png/png.html"> png </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key575"> point </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/math_geometry.html"> math::geometry </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key805"> polynomial functions </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/polynomials.html"> math::polynomials </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key300"> pool </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/pool.html"> struct::pool </a> &#183; <a href="tcllib/files/modules/struct/queue.html"> struct::queue </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key440"> pop </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key439"> pop3 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_dbox.html"> pop3d::dbox </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_udb.html"> pop3d::udb </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key694"> post-order </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key691"> pre-order </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key680"> prefix </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a> &#183; <a href="tcllib/files/modules/textutil/trim.html"> textutil::trim </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key759"> prime </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/numtheory.html"> math::numtheory </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key304"> prioqueue </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/prioqueue.html"> struct::prioqueue </a> &#183; <a href="tcllib/files/modules/struct/queue.html"> struct::queue </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key745"> priority queue </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/prioqueue.html"> struct::prioqueue </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key586"> proc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/lambda/lambda.html"> lambda </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key41"> procedure </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/deleg_proc.html"> deleg_proc </a> &#183; <a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a> &#183; <a href="tcllib/files/modules/tepam/tepam_procedure.html"> tepam::procedure </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key823"> procedure documentation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_doc_gen.html"> tepam::doc_gen </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key672"> producer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key642"> profile </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/profiler/profiler.html"> profiler </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key636"> projection </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mapproj/mapproj.html"> mapproj </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key523"> prospero </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key133"> protocol </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a> &#183; <a href="tcllib/files/modules/ldap/ldap.html"> ldap </a> &#183; <a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a> &#183; <a href="tcllib/files/modules/nns/nns_protocol.html"> nameserv::protocol </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_dbox.html"> pop3d::dbox </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_udb.html"> pop3d::udb </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key821"> proxy </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/http/autoproxy.html"> autoproxy </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key168"> public key cipher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pki/pki.html"> pki </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key674"> publisher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key1"> push down automaton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c20">Keywords: Q</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key50"> queue </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/csv/csv.html"> csv </a> &#183; <a href="tcllib/files/modules/htmlparse/htmlparse.html"> htmlparse </a> &#183; <a href="tcllib/files/modules/struct/stack.html"> struct::stack </a> &#183; <a href="tcllib/files/modules/transfer/tqueue.html"> transfer::copy::queue </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key598"> quoting </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_util_quote.html"> page_util_quote </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c21">Keywords: R</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key605"> radians </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/constants.html"> math::constants </a> &#183; <a href="tcllib/files/modules/units/units.html"> units </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key613"> radiobutton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/html/html.html"> html </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key464"> radius </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key584"> random </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_random.html"> tcl::chan::random </a> &#183; <a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key635"> random numbers </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/simulation/simulation_random.html"> simulation::random </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key649"> rational functions </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/rational_funcs.html"> math::rationalfunctions </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key503"> raw </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key123"> rc4 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rc4/rc4.html"> rc4 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key626"> RCS </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key625"> RCS patch </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key406"> read </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key519"> reading </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key93"> receiver </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/receive.html"> term::receive </a> &#183; <a href="tcllib/files/modules/term/term_bind.html"> term::receive::bind </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key509"> reconnect </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nns/nns_auto.html"> nameserv::auto </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key303"> record </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/struct/record.html"> struct::record </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key10"> recursive descent </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>







|




|














|




|




|




|









|









|




|
>
>
>
>
>



|
|



|




|
|



|
|



|
|



|
|



|
|



|
|



|







|
|



|




|
|



|




|




|
|



|
|



|




|
|



|
|



|




|
|



|
|



|




|
|



|
|



|
|



|
|



|
|



|
|



|




|
|



|
|



|
|



|
|



|
|



|
|



|
|



|
|



|
|



|
|



|
|



|




|
|



|
|



|
|



|
|



|
|



|
|



|
|



|




|




>
>
>
>
>

|




<
<
<
<
<




|
|



|
|



|
|



>
>
>
>
>

|




|

|


|

|


<
<
<
<
<




|




|




|




|




|
|



|




|
|



|
|



|
|






|
|



|




|




|
|



|




|
|



|
|



|
|



|
|



|
|



|
|



|
|



|




|




|
|



>
>
>
>
>

|




|
<
<
<
<
<



|




|
|



|




|
|



|
|



|
|



|
|



|




|




|
|



|
|



|




|
|



|
|



|




|







|
|



|
|



|
|



|
|



|




|




|




|




|
|



|




|




|
|



|
|



|
|



|
|



|




>
>
>
>
>

|




|




|
<
<
<
<
<



|




|
|



|
|



|




|




|




|
|



|




|
|



|




|
|



|
|



|




|
|



|
|



>
>
>
>
>

|




|
<
<
<
<
<






|
|



|
|



|




|




|
|



|




|




|




>
>
>
>
>

|




|
<
<
<
<
<



|
|



|
|



|




|
|



|




|
|



|
|



|







|




|
|



|
|



|
|



|
|



|
|



|
|



|
|



|




|
|



|
|



|
|



|
|



|
|






|




|
|



|
|



|
|



|
|



|
|



|




|
|



|
|



|
|



|




|
|



|
|



|




|
|



|
|



|




|
|



|




|
|



|
|



|
|



|
|



|
|



|




|
|



|
|



|
|



|




|




|
|



|
|



|




|
|



|
|



|
|



|
|



|
|



|
|



|
|



|




|
|



|
|



|







|




|




|
|



|




|
|



|




|
|






|




|
|



|
|






|




|
|



|
|



|




|




|




|




|
|



|




|
|



|




|
|



|
|



|
|



|
|



|
|



|




|




|
|



|
|



|
|



|




|
|



|




|
|



|




|




|




|




|




|
|



|




|
|



|




|







>
>
>
>
>

|
>
>
>
>
>
>
>
>
>
>




<
<
<
<
<
<
<
<
<
<
<
<
<
<
<




|




|




|
|



|




|




|
|



|




|




|
|



|
|



|
|



|
|



|
|



|
|



|




|




|
|



|
|



|
|



|
|



|




|
|



|




|
|



|




|




|




|
|



|
|



|




|
|



|
|



>
>
>
>
>

|




|




<
<
<
<
<
|



|
|



|
|



|




|




|
|



|
|



|
|






|




|




|




|




|




|
|



|
|



>
>
>
>
>

|




|




|




|




|




|









|




|



















|









|




|







|














|




|
>
>
>
>
>



>
>
>
>
>

>
>
>
>
>
>
>
>
>
>
|




<
<
<
<
<
<
<
<
<
<
|
<
<
<
<
<






|




|
|



|




|
|



|
|



|
|



|
|



|




|




|




|




|




|
|



>
>
>
>
>

|




|

|


|

|


|

|


|

|


<
<
<
<
<




|




|
|



|




|
|



|
|



|
|



|
|



|




>
>
>
>
>

|




|

|


|

|


|

|


|

|


|

|


|

|


|

|


|




|

|


|

|


|

|


|

|


|

|


|

|


|

|


|

|


|




|




|




|









|









|

















|







|




|




|




|




|




|




|









|




|




|




|









|




|







764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108





1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148





1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287





1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470





1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560





1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618





1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215















2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395





2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611










2612





2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714





2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key20"> conversion </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/math/roman.html"> math::roman </a> &#183; <a href="tcllib/files/modules/doctools/mpexpand.html"> mpexpand </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a> &#183; <a href="tcllib/files/modules/units/units.html"> units </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key503"> cooked </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key672"> cookie </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ncgi/ncgi.html"> ncgi </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key64"> copy </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/multi.html"> fileutil::multi </a> &#183; <a href="tcllib/files/modules/fileutil/multiop.html"> fileutil::multi::op </a> &#183; <a href="tcllib/files/modules/transfer/copyops.html"> transfer::copy </a> &#183; <a href="tcllib/files/modules/transfer/tqueue.html"> transfer::copy::queue </a> &#183; <a href="tcllib/files/modules/transfer/ddest.html"> transfer::data::destination </a> &#183; <a href="tcllib/files/modules/transfer/dsource.html"> transfer::data::source </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key217"> coroutine </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a> &#183; <a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key814"> Cost </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key274"> counter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/vt_counter.html"> tcl::transform::counter </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key713"> counting </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/counter/counter.html"> counter </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key805"> CPARAM </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key146"> crc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key804"> crc16 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/crc16.html"> crc16 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key147"> crc32 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key268"> credit card </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key618"> cron </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cron/cron.html"> cron </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key795"> cryptography </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/blowfish/blowfish.html"> blowfish </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key403"> CSS </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/html_cssdefaults.html"> doctools::html::cssdefaults </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key49"> csv </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wcsv.html"> bench::out::csv </a> &#183; <a href="tcllib/files/modules/csv/csv.html"> csv </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key594"> currying </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/lambda/lambda.html"> lambda </a> &#183; <a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key481"> cut edge </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key483"> cut vertex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key631"> CVS </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key770"> cvs </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/cvs.html"> doctools::cvs </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key771"> cvs log </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/cvs.html"> doctools::cvs </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key148"> cyclic redundancy check </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c7">Keywords: D</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key627"> data analysis </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/statistics.html"> math::statistics </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key61"> data destination </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/ddest.html"> transfer::data::destination </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key400"> data entry form </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_argument_dialogbox.html"> tepam::argument_dialogbox </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key203"> data exchange </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/modules/json/json.html"> json </a> &#183; <a href="tcllib/files/modules/json/json_write.html"> json::write </a> &#183; <a href="tcllib/files/modules/yaml/yaml.html"> yaml </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key124"> data integrity </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/aes/aes.html"> aes </a> &#183; <a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/des/des.html"> des </a> &#183; <a href="tcllib/files/modules/pki/pki.html"> pki </a> &#183; <a href="tcllib/files/modules/rc4/rc4.html"> rc4 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a> &#183; <a href="tcllib/files/modules/des/tcldesjr.html"> tcldes </a> &#183; <a href="tcllib/files/modules/des/tcldes.html"> tcldes </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key363"> data source </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/dsource.html"> transfer::data::source </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key326"> data structures </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/record.html"> struct::record </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key34"> database </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tie/tie_std.html"> tie </a> &#183; <a href="tcllib/files/modules/tie/tie.html"> tie </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key399"> dataflow </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_util_flow.html"> page_util_flow </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key636"> DE </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key76"> debug </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/debug/debug.html"> debug </a> &#183; <a href="tcllib/files/modules/debug/debug_caller.html"> debug::caller </a> &#183; <a href="tcllib/files/modules/debug/debug_heartbeat.html"> debug::heartbeat </a> &#183; <a href="tcllib/files/modules/debug/debug_timestamp.html"> debug::timestamp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key759"> decimal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/decimal.html"> math::decimal </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key336"> declare </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_code.html"> term::ansi::code </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key43"> decompression </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a> &#183; <a href="tcllib/files/modules/zip/decode.html"> zipfile::decode </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key372"> decryption </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key540"> deferal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uev/uevent_onidle.html"> uevent::onidle </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key337"> define </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_code.html"> term::ansi::code </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key472"> degree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key473"> degree constrained spanning tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key803"> degrees </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/constants.html"> math::constants </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key39"> delegation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/deleg_method.html"> deleg_method </a> &#183; <a href="tcllib/files/modules/interp/deleg_proc.html"> deleg_proc </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key697"> depth-first </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key425"> der </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key294"> DES </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/des/des.html"> des </a> &#183; <a href="tcllib/files/modules/des/tcldesjr.html"> tcldes </a> &#183; <a href="tcllib/files/modules/des/tcldes.html"> tcldes </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key290"> deserialization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/import_docidx.html"> doctools::idx::import::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import_json.html"> doctools::idx::import::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_structure.html"> doctools::idx::structure </a> &#183; <a href="tcllib/files/modules/doctools2toc/import_doctoc.html"> doctools::toc::import::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import_json.html"> doctools::toc::import::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_structure.html"> doctools::toc::structure </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key455"> diameter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key560"> diff </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a> &#183; <a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key632"> diff -n format </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key729"> difference </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key554"> differential </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key780"> differential equations </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/calculus.html"> math::calculus </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key493"> dijkstra </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key135"> directory access </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldap.html"> ldap </a> &#183; <a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key719"> directory traversal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/traverse.html"> fileutil_traverse </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key269"> Discover </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key782"> discrete items </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/pool.html"> struct::pool </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key620"> disjoint set </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key514"> dispatcher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/term_bind.html"> term::receive::bind </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key476"> distance </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/math_geometry.html"> math::geometry </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a> &#183; <a href="tcllib/files/modules/units/units.html"> units </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key596"> DNS </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_dns.html"> dns </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key145"> do </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/control/control.html"> control </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key178"> docidx </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/export_docidx.html"> doctools::idx::export::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2idx/import_docidx.html"> doctools::idx::import::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_parse.html"> doctools::idx::parse </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_structure.html"> doctools::idx::structure </a> &#183; <a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key365"> docidx commands </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_lang_cmdref.html"> docidx_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_intro.html"> docidx_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_syntax.html"> docidx_lang_syntax </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key368"> docidx language </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_lang_cmdref.html"> docidx_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_intro.html"> docidx_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_syntax.html"> docidx_lang_syntax </a>
</td></tr>
<tr class="#idxodd" valign=top>





<td class="#idxleft" width="35%"><a name="key247"> docidx markup </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_lang_cmdref.html"> docidx_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_intro.html"> docidx_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_syntax.html"> docidx_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key366"> docidx syntax </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_intro.html"> docidx_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_syntax.html"> docidx_lang_syntax </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key432"> docstrip </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip.html"> docstrip </a> &#183; <a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key256"> doctoc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/export_doctoc.html"> doctools::toc::export::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/import_doctoc.html"> doctools::toc::import::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_parse.html"> doctools::toc::parse </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_structure.html"> doctools::toc::structure </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key509"> doctoc commands </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_lang_cmdref.html"> doctoc_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_intro.html"> doctoc_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_syntax.html"> doctoc_lang_syntax </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key508"> doctoc language </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_lang_cmdref.html"> doctoc_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_intro.html"> doctoc_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_syntax.html"> doctoc_lang_syntax </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key384"> doctoc markup </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_lang_cmdref.html"> doctoc_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_intro.html"> doctoc_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_syntax.html"> doctoc_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key543"> doctoc syntax </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_intro.html"> doctoc_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_syntax.html"> doctoc_lang_syntax </a>
</td></tr>
<tr class="#idxodd" valign=top>





<td class="#idxleft" width="35%"><a name="key179"> doctools </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a> &#183; <a href="tcllib/files/modules/doctools/changelog.html"> doctools::changelog </a> &#183; <a href="tcllib/files/modules/doctools2base/html_cssdefaults.html"> doctools::html::cssdefaults </a> &#183; <a href="tcllib/files/modules/doctools2idx/export_docidx.html"> doctools::idx::export::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_html.html"> doctools::idx::export::html </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_json.html"> doctools::idx::export::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_nroff.html"> doctools::idx::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_text.html"> doctools::idx::export::text </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_wiki.html"> doctools::idx::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2idx/import_docidx.html"> doctools::idx::import::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import_json.html"> doctools::idx::import::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_parse.html"> doctools::idx::parse </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_structure.html"> doctools::idx::structure </a> &#183; <a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a> &#183; <a href="tcllib/files/modules/doctools2base/nroff_manmacros.html"> doctools::nroff::man_macros </a> &#183; <a href="tcllib/files/modules/doctools2base/tcl_parse.html"> doctools::tcl::parse </a> &#183; <a href="tcllib/files/modules/doctools2toc/export_doctoc.html"> doctools::toc::export::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_html.html"> doctools::toc::export::html </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_json.html"> doctools::toc::export::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_nroff.html"> doctools::toc::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_text.html"> doctools::toc::export::text </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_wiki.html"> doctools::toc::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2toc/import_doctoc.html"> doctools::toc::import::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import_json.html"> doctools::toc::import::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_parse.html"> doctools::toc::parse </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_structure.html"> doctools::toc::structure </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key137"> doctools commands </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools_lang_cmdref.html"> doctools_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_intro.html"> doctools_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_syntax.html"> doctools_lang_syntax </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key140"> doctools language </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools_lang_cmdref.html"> doctools_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_intro.html"> doctools_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_syntax.html"> doctools_lang_syntax </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key139"> doctools markup </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools_lang_cmdref.html"> doctools_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_intro.html"> doctools_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_syntax.html"> doctools_lang_syntax </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key138"> doctools syntax </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_intro.html"> doctools_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_syntax.html"> doctools_lang_syntax </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key656"> document </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools_plugin_apiref.html"> doctools_plugin_apiref </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key185"> documentation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip.html"> docstrip </a> &#183; <a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a> &#183; <a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a> &#183; <a href="tcllib/files/modules/tepam/tepam_doc_gen.html"> tepam::doc_gen </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key811"> DOM </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key750"> dom </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/amazon-s3/xsxp.html"> xsxp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key599"> domain name service </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_dns.html"> dns </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c8">Keywords: E</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key802"> e </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/constants.html"> math::constants </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key103"> EAN </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key104"> EAN13 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key820"> earley </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key3"> EBNF </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key498"> eccentricity </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key457"> edge </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key446"> emacs </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/changelog.html"> doctools::changelog </a> &#183; <a href="tcllib/files/modules/doctools/cvs.html"> doctools::cvs </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key333"> email </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a> &#183; <a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key725"> emptiness </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key773"> empty interpreter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/tcllib_interp.html"> interp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key546"> EN </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key252"> encoding </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base64/ascii85.html"> ascii85 </a> &#183; <a href="tcllib/files/modules/base64/base64.html"> base64 </a> &#183; <a href="tcllib/files/modules/base64/uuencode.html"> uuencode </a> &#183; <a href="tcllib/files/modules/base64/yencode.html"> yencode </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key127"> encryption </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/aes/aes.html"> aes </a> &#183; <a href="tcllib/files/modules/blowfish/blowfish.html"> blowfish </a> &#183; <a href="tcllib/files/modules/des/des.html"> des </a> &#183; <a href="tcllib/files/modules/pki/pki.html"> pki </a> &#183; <a href="tcllib/files/modules/rc4/rc4.html"> rc4 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a> &#183; <a href="tcllib/files/modules/des/tcldesjr.html"> tcldes </a> &#183; <a href="tcllib/files/modules/des/tcldes.html"> tcldes </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key756"> entry mask </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key557"> equal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key570"> equality </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key619"> equivalence class </a></td>





<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key161"> error </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/try/tcllib_try.html"> try </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key680"> error function </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/special.html"> math::special </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key102"> European Article Number </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key539"> event </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a> &#183; <a href="tcllib/files/modules/uev/uevent.html"> uevent </a> &#183; <a href="tcllib/files/modules/uev/uevent_onidle.html"> uevent::onidle </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key513"> event management </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_core/events.html"> tcl::chan::events </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key409"> events </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key367"> examples </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_lang_intro.html"> bench_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key162"> exception </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/try/tcllib_try.html"> try </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key202"> exchange format </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/modules/json/json.html"> json </a> &#183; <a href="tcllib/files/modules/json/json_write.html"> json::write </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key727"> exclusion </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key427"> execution </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key152"> exif </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/jpeg/jpeg.html"> jpeg </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key412"> exit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key258"> export </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/html_cssdefaults.html"> doctools::html::cssdefaults </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/export_docidx.html"> doctools::idx::export::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_html.html"> doctools::idx::export::html </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_json.html"> doctools::idx::export::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_nroff.html"> doctools::idx::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_text.html"> doctools::idx::export::text </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_wiki.html"> doctools::idx::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2base/nroff_manmacros.html"> doctools::nroff::man_macros </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/export_doctoc.html"> doctools::toc::export::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_html.html"> doctools::toc::export::html </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_json.html"> doctools::toc::export::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_nroff.html"> doctools::toc::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_text.html"> doctools::toc::export::text </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_wiki.html"> doctools::toc::export::wiki </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key0"> expression </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key87"> extended namespace </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/namespacex/namespacex.html"> namespacex </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c9">Keywords: F</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key364"> faq </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key530"> fetching information </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key798"> FFT </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/fourier.html"> math::fourier </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key605"> fifo </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_fifo.html"> tcl::chan::fifo </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a> &#183; <a href="tcllib/files/modules/virtchannel_base/halfpipe.html"> tcl::chan::halfpipe </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key31"> file </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tie/tie_std.html"> tie </a> &#183; <a href="tcllib/files/modules/tie/tie.html"> tie </a> &#183; <a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key116"> file recognition </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fumagic/cfront.html"> fileutil::magic::cfront </a> &#183; <a href="tcllib/files/modules/fumagic/cgen.html"> fileutil::magic::cgen </a> &#183; <a href="tcllib/files/modules/fumagic/filetypes.html"> fileutil::magic::filetype </a> &#183; <a href="tcllib/files/modules/fumagic/mimetypes.html"> fileutil::magic::mimetype </a> &#183; <a href="tcllib/files/modules/fumagic/rtcore.html"> fileutil::magic::rt </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key118"> file type </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fumagic/cfront.html"> fileutil::magic::cfront </a> &#183; <a href="tcllib/files/modules/fumagic/cgen.html"> fileutil::magic::cgen </a> &#183; <a href="tcllib/files/modules/fumagic/filetypes.html"> fileutil::magic::filetype </a> &#183; <a href="tcllib/files/modules/fumagic/mimetypes.html"> fileutil::magic::mimetype </a> &#183; <a href="tcllib/files/modules/fumagic/rtcore.html"> fileutil::magic::rt </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key115"> file utilities </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a> &#183; <a href="tcllib/files/modules/fumagic/cfront.html"> fileutil::magic::cfront </a> &#183; <a href="tcllib/files/modules/fumagic/cgen.html"> fileutil::magic::cgen </a> &#183; <a href="tcllib/files/modules/fumagic/filetypes.html"> fileutil::magic::filetype </a> &#183; <a href="tcllib/files/modules/fumagic/mimetypes.html"> fileutil::magic::mimetype </a> &#183; <a href="tcllib/files/modules/fumagic/rtcore.html"> fileutil::magic::rt </a> &#183; <a href="tcllib/files/modules/fileutil/multi.html"> fileutil::multi </a> &#183; <a href="tcllib/files/modules/fileutil/multiop.html"> fileutil::multi::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key382"> filesystem </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key221"> filter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a> &#183; <a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key160"> final </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/try/tcllib_try.html"> try </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key266"> finance </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a> &#183; <a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key623"> find </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key783"> finite </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/pool.html"> struct::pool </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key323"> finite automaton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key211"> FIPS 180-1 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sha1/sha1.html"> sha1 </a> &#183; <a href="tcllib/files/modules/sha1/sha256.html"> sha256 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key558"> first permutation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key566"> Fisher-Yates </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key555"> flatten </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key390"> floating-point </a></td>





<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/bigfloat.html"> math::bigfloat </a> &#183; <a href="tcllib/files/modules/math/fuzzy.html"> math::fuzzy </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key141"> flow </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/control/control.html"> control </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key496"> flow network </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key563"> folding </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key219"> foldl </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key224"> foldr </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key216"> foreach </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key613"> form </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/html/html.html"> html </a> &#183; <a href="tcllib/files/modules/ncgi/ncgi.html"> ncgi </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key110"> format conversion </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key654"> formatter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools_plugin_apiref.html"> doctools_plugin_apiref </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key245"> formatting </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wcsv.html"> bench::out::csv </a> &#183; <a href="tcllib/files/modules/bench/bench_wtext.html"> bench::out::text </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a> &#183; <a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a> &#183; <a href="tcllib/files/modules/textutil/tabify.html"> textutil::tabify </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key655"> formatting engine </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctools_plugin_apiref.html"> doctools_plugin_apiref </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key797"> Fourier transform </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/fourier.html"> math::fourier </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key170"> FR </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key671"> frame </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_cmacros.html"> term::ansi::code::macros </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key292"> ftp </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ftp/ftp.html"> ftp </a> &#183; <a href="tcllib/files/modules/ftp/ftp_geturl.html"> ftp::geturl </a> &#183; <a href="tcllib/files/modules/ftpd/ftpd.html"> ftpd </a> &#183; <a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key604"> ftpd </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ftpd/ftpd.html"> ftpd </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key603"> ftpserver </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ftpd/ftpd.html"> ftpd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key561"> full outer join </a></td>





<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c10">Keywords: G</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key709"> generate event </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uev/uevent.html"> uevent </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key569"> generate permutations </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key248"> generation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key223"> generator </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key581"> geocoding </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key195"> geodesy </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a> &#183; <a href="tcllib/files/modules/mapproj/mapproj.html"> mapproj </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key200"> geography </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key94"> get character </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/receive.html"> term::receive </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key413"> gets </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key410"> global </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key528"> gopher </a></td>





<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key405"> gps </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/gpx/gpx.html"> gpx </a> &#183; <a href="tcllib/files/modules/nmea/nmea.html"> nmea </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key666"> gpx </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/gpx/gpx.html"> gpx </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key11"> grammar </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a> &#183; <a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a> &#183; <a href="tcllib/files/modules/grammar_me/me_cpu.html"> grammar::me::cpu </a> &#183; <a href="tcllib/files/modules/grammar_me/me_cpucore.html"> grammar::me::cpu::core </a> &#183; <a href="tcllib/files/modules/grammar_me/gasm.html"> grammar::me::cpu::gasm </a> &#183; <a href="tcllib/files/modules/grammar_me/me_tcl.html"> grammar::me::tcl </a> &#183; <a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_me/me_vm.html"> grammar::me_vm </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key303"> graph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/gasm.html"> grammar::me::cpu::gasm </a> &#183; <a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a> &#183; <a href="tcllib/files/modules/struct/graph1.html"> struct::graph_v1 </a> &#183; <a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/struct/stack.html"> struct::stack </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key192"> graph walking </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_util_flow.html"> page_util_flow </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key416"> green threads </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key314"> grep </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key208"> GUID </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uuid/uuid.html"> uuid </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c11">Keywords: H</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key214"> hashing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/md5crypt/md5crypt.html"> md5crypt </a> &#183; <a href="tcllib/files/modules/otp/otp.html"> otp </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a> &#183; <a href="tcllib/files/modules/sha1/sha1.html"> sha1 </a> &#183; <a href="tcllib/files/modules/sha1/sha256.html"> sha256 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key706"> heartbeat </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/debug/debug_heartbeat.html"> debug::heartbeat </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key471"> heuristic </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key338"> hex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base32/base32hex.html"> base32::hex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key730"> hexadecimal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/hex.html"> tcl::transform::hex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key712"> histogram </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/counter/counter.html"> counter </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key677"> hook </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a> &#183; <a href="tcllib/files/modules/uev/uevent.html"> uevent </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key819"> horspool </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key18"> HTML </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools2base/html_cssdefaults.html"> doctools::html::cssdefaults </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_html.html"> doctools::idx::export::html </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_html.html"> doctools::toc::export::html </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/doctools/mpexpand.html"> mpexpand </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key614"> html </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/html/html.html"> html </a> &#183; <a href="tcllib/files/modules/htmlparse/htmlparse.html"> htmlparse </a> &#183; <a href="tcllib/files/modules/javascript/javascript.html"> javascript </a> &#183; <a href="tcllib/files/modules/ncgi/ncgi.html"> ncgi </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key443"> http </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/http/autoproxy.html"> autoproxy </a> &#183; <a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a> &#183; <a href="tcllib/files/modules/uri/uri.html"> uri </a> &#183; <a href="tcllib/files/modules/websocket/websocket.html"> websocket </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key585"> huddle </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/modules/yaml/yaml.html"> yaml </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key501"> human readable </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wtext.html"> bench::out::text </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key346"> hyphenation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c12">Keywords: I</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key171"> i18n </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key380"> IBAN </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key430"> ident </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ident/ident.html"> ident </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key431"> identification </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ident/ident.html"> ident </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key439"> identity </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/identity.html"> tcl::transform::identity </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key538"> idle </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uev/uevent_onidle.html"> uevent::onidle </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key121"> image </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/jpeg/jpeg.html"> jpeg </a> &#183; <a href="tcllib/files/modules/png/png.html"> png </a> &#183; <a href="tcllib/files/modules/tiff/tiff.html"> tiff </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key800"> imap </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key786"> IMEI </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key289"> import </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2idx/import_docidx.html"> doctools::idx::import::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import_json.html"> doctools::idx::import::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/import_doctoc.html"> doctools::toc::import::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import_json.html"> doctools::toc::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key46"> in-memory channel </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_fifo.html"> tcl::chan::fifo </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a> &#183; <a href="tcllib/files/modules/virtchannel_base/halfpipe.html"> tcl::chan::halfpipe </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_memchan.html"> tcl::chan::memchan </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_string.html"> tcl::chan::string </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_variable.html"> tcl::chan::variable </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key696"> in-order </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key724"> inclusion </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key242"> Incr Tcl </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key342"> indenting </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key468"> independent set </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key182"> index </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_intro.html"> docidx_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/export_docidx.html"> doctools::idx::export::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_html.html"> doctools::idx::export::html </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_json.html"> doctools::idx::export::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_nroff.html"> doctools::idx::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_text.html"> doctools::idx::export::text </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_wiki.html"> doctools::idx::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2idx/import_docidx.html"> doctools::idx::import::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import_json.html"> doctools::idx::import::json </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key775"> index formatter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key83"> info </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/namespacex/namespacex.html"> namespacex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key565"> inner join </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key502"> input mode </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key349"> integer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/roman.html"> math::roman </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key778"> integration </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/calculus.html"> math::calculus </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key736"> inter-thread communication </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key105"> International Article Number </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key379"> International Bank Account Number </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key789"> International Mobile Equipment Identity </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key362"> International Standard Book Number </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key175"> internationalization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key131"> internet </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a> &#183; <a href="tcllib/files/modules/ftp/ftp.html"> ftp </a> &#183; <a href="tcllib/files/modules/ftp/ftp_geturl.html"> ftp::geturl </a> &#183; <a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a> &#183; <a href="tcllib/files/modules/ldap/ldap.html"> ldap </a> &#183; <a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a> &#183; <a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_dbox.html"> pop3d::dbox </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_udb.html"> pop3d::udb </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a> &#183; <a href="tcllib/files/modules/websocket/websocket.html"> websocket </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key451"> internet address </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_ip.html"> tcllib_ip </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key829"> interpolation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/interpolate.html"> math::interpolate </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key38"> interpreter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/deleg_method.html"> deleg_method </a> &#183; <a href="tcllib/files/modules/interp/deleg_proc.html"> deleg_proc </a> &#183; <a href="tcllib/files/modules/interp/tcllib_interp.html"> interp </a> &#183; <a href="tcllib/files/modules/wip/wip.html"> wip </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key728"> intersection </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key746"> interval </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/bigfloat.html"> math::bigfloat </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key448"> ip </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_ip.html"> tcllib_ip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key358"> ipc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key450"> ipv4 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_ip.html"> tcllib_ip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key447"> ipv6 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_ip.html"> tcllib_ip </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key740"> irc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/irc/irc.html"> irc </a> &#183; <a href="tcllib/files/modules/irc/picoirc.html"> picoirc </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key55"> isA </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/valtype_common.html"> valtype::common </a> &#183; <a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a> &#183; <a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a> &#183; <a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a> &#183; <a href="tcllib/files/modules/valtype/luhn.html"> valtype::luhn </a> &#183; <a href="tcllib/files/modules/valtype/luhn5.html"> valtype::luhn5 </a> &#183; <a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a> &#183; <a href="tcllib/files/modules/valtype/verhoeff.html"> valtype::verhoeff </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key360"> ISBN </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key488"> isthmus </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key220"> iterator </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c13">Keywords: J</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key205"> javascript </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/javascript/javascript.html"> javascript </a> &#183; <a href="tcllib/files/modules/json/json.html"> json </a> &#183; <a href="tcllib/files/modules/json/json_write.html"> json::write </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key154"> jfif </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/jpeg/jpeg.html"> jpeg </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key556"> join </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key153"> jpeg </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/jpeg/jpeg.html"> jpeg </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key257"> JSON </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_export_json.html"> doctools::idx::export::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import_json.html"> doctools::idx::import::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_json.html"> doctools::toc::export::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import_json.html"> doctools::toc::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key204"> json </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/modules/json/json.html"> json </a> &#183; <a href="tcllib/files/modules/json/json_write.html"> json::write </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key341"> justification </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c14">Keywords: K</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key184"> keyword index </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_intro.html"> docidx_intro </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key774"> keywords </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key283"> knuth </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/soundex/soundex.html"> soundex </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c15">Keywords: L</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key177"> l10n </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key591"> lambda </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/lambda/lambda.html"> lambda </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key435"> LaTeX </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip.html"> docstrip </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key186"> latex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key194"> latitute </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key130"> ldap </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldap.html"> ldap </a> &#183; <a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a> &#183; <a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key128"> ldap client </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldap.html"> ldap </a> &#183; <a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key500"> ldif </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key69"> least squares </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key550"> left outer join </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key191"> lemon </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key484"> level graph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key255"> lexer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_parse.html"> doctools::idx::parse </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_parse.html"> doctools::toc::parse </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key694"> lexing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/string/token.html"> string::token </a> &#183; <a href="tcllib/files/modules/string/token_shell.html"> string::token::shell </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key721"> limitsize </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key577"> line </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/math_geometry.html"> math::geometry </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key68"> linear algebra </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key67"> linear equations </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key310"> linear program </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/optimize.html"> math::optimize </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key507"> lines </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key300"> list </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a> &#183; <a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/wip/wip.html"> wip </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key97"> listener </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/receive.html"> term::receive </a> &#183; <a href="tcllib/files/modules/term/term_bind.html"> term::receive::bind </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key434"> literate programming </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip.html"> docstrip </a> &#183; <a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key15"> LL(k) </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key479"> local searching </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key174"> localization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key198"> location </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a> &#183; <a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a> &#183; <a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key73"> log </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/debug/debug.html"> debug </a> &#183; <a href="tcllib/files/modules/debug/debug_caller.html"> debug::caller </a> &#183; <a href="tcllib/files/modules/debug/debug_heartbeat.html"> debug::heartbeat </a> &#183; <a href="tcllib/files/modules/debug/debug_timestamp.html"> debug::timestamp </a> &#183; <a href="tcllib/files/modules/doctools/cvs.html"> doctools::cvs </a> &#183; <a href="tcllib/files/modules/log/log.html"> log </a> &#183; <a href="tcllib/files/modules/log/logger.html"> logger </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key91"> log level </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/log/log.html"> log </a> &#183; <a href="tcllib/files/modules/log/logger.html"> logger </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key89"> logger </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/log/logger.html"> logger </a> &#183; <a href="tcllib/files/modules/log/loggerAppender.html"> logger::appender </a> &#183; <a href="tcllib/files/modules/log/loggerUtils.html"> logger::utils </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key548"> longest common subsequence </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key201"> longitude </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key454"> loop </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key59"> luhn </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/luhn.html"> valtype::luhn </a> &#183; <a href="tcllib/files/modules/valtype/luhn5.html"> valtype::luhn5 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key54"> luhn-5 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/luhn5.html"> valtype::luhn5 </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c16">Keywords: M</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key524"> macros </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/nroff_manmacros.html"> doctools::nroff::man_macros </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key328"> mail </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a> &#183; <a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key531"> mailto </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key523"> man_macros </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/nroff_manmacros.html"> doctools::nroff::man_macros </a>
</td></tr>
<tr class="#idxodd" valign=top>















<td class="#idxleft" width="35%"><a name="key17"> manpage </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/doctools/doctools_plugin_apiref.html"> doctools_plugin_apiref </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/doctools/mpexpand.html"> mpexpand </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key199"> map </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a> &#183; <a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a> &#183; <a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a> &#183; <a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a> &#183; <a href="tcllib/files/modules/mapproj/mapproj.html"> mapproj </a> &#183; <a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key16"> markup </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_intro.html"> docidx_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_cmdref.html"> docidx_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_intro.html"> docidx_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_syntax.html"> docidx_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_intro.html"> doctoc_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_cmdref.html"> doctoc_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_intro.html"> doctoc_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_syntax.html"> doctoc_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/doctools/doctools_intro.html"> doctools_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_cmdref.html"> doctools_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_intro.html"> doctools_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_syntax.html"> doctools_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools/doctools_plugin_apiref.html"> doctools_plugin_apiref </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/doctools/mpexpand.html"> mpexpand </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key667"> MasterCard </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key5"> matching </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key71"> math </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/math.html"> math </a> &#183; <a href="tcllib/files/modules/math/bigfloat.html"> math::bigfloat </a> &#183; <a href="tcllib/files/modules/math/bignum.html"> math::bignum </a> &#183; <a href="tcllib/files/modules/math/calculus.html"> math::calculus </a> &#183; <a href="tcllib/files/modules/math/qcomplex.html"> math::complexnumbers </a> &#183; <a href="tcllib/files/modules/math/constants.html"> math::constants </a> &#183; <a href="tcllib/files/modules/math/decimal.html"> math::decimal </a> &#183; <a href="tcllib/files/modules/math/fuzzy.html"> math::fuzzy </a> &#183; <a href="tcllib/files/modules/math/math_geometry.html"> math::geometry </a> &#183; <a href="tcllib/files/modules/math/interpolate.html"> math::interpolate </a> &#183; <a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a> &#183; <a href="tcllib/files/modules/math/optimize.html"> math::optimize </a> &#183; <a href="tcllib/files/modules/math/polynomials.html"> math::polynomials </a> &#183; <a href="tcllib/files/modules/math/rational_funcs.html"> math::rationalfunctions </a> &#183; <a href="tcllib/files/modules/math/special.html"> math::special </a> &#183; <a href="tcllib/files/modules/simulation/annealing.html"> simulation::annealing </a> &#183; <a href="tcllib/files/modules/simulation/montecarlo.html"> simulation::montecarlo </a> &#183; <a href="tcllib/files/modules/simulation/simulation_random.html"> simulation::random </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key626"> mathematics </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/fourier.html"> math::fourier </a> &#183; <a href="tcllib/files/modules/math/statistics.html"> math::statistics </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key66"> matrices </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key51"> matrix </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/csv/csv.html"> csv </a> &#183; <a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a> &#183; <a href="tcllib/files/modules/report/report.html"> report </a> &#183; <a href="tcllib/files/modules/struct/matrix.html"> struct::matrix </a> &#183; <a href="tcllib/files/modules/struct/matrix1.html"> struct::matrix_v1 </a> &#183; <a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/struct/stack.html"> struct::stack </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key475"> max cut </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key308"> maximum </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/optimize.html"> math::optimize </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key495"> maximum flow </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key377"> md4 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key658"> md5 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/md5crypt/md5crypt.html"> md5crypt </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key757"> md5crypt </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md5crypt/md5crypt.html"> md5crypt </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key231"> medicare </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key237"> mega widget </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key723"> membership </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key670"> menu </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_cmacros.html"> term::ansi::code::macros </a> &#183; <a href="tcllib/files/modules/term/imenu.html"> term::interact::menu </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key536"> merge </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a> &#183; <a href="tcllib/files/modules/uev/uevent_onidle.html"> uevent::onidle </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key622"> merge find </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key111"> merging </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench.html"> bench </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key359"> message </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a> &#183; <a href="tcllib/files/modules/log/log.html"> log </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key172"> message catalog </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key794"> message level </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/log/log.html"> log </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key173"> message package </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcllib_msgcat.html"> doctools::msgcat </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_c.html"> doctools::msgcat::idx::c </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_de.html"> doctools::msgcat::idx::de </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_en.html"> doctools::msgcat::idx::en </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_msgcat_fr.html"> doctools::msgcat::idx::fr </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_c.html"> doctools::msgcat::toc::c </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_de.html"> doctools::msgcat::toc::de </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_en.html"> doctools::msgcat::toc::en </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_msgcat_fr.html"> doctools::msgcat::toc::fr </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key213"> message-digest </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/md5crypt/md5crypt.html"> md5crypt </a> &#183; <a href="tcllib/files/modules/otp/otp.html"> otp </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a> &#183; <a href="tcllib/files/modules/sha1/sha1.html"> sha1 </a> &#183; <a href="tcllib/files/modules/sha1/sha256.html"> sha256 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key36"> metakit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tie/tie_std.html"> tie </a> &#183; <a href="tcllib/files/modules/tie/tie.html"> tie </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key369"> method </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/deleg_method.html"> deleg_method </a> &#183; <a href="tcllib/files/modules/interp/tcllib_interp.html"> interp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key764"> method reference </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key228"> mime </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fumagic/cfront.html"> fileutil::magic::cfront </a> &#183; <a href="tcllib/files/modules/fumagic/cgen.html"> fileutil::magic::cgen </a> &#183; <a href="tcllib/files/modules/fumagic/mimetypes.html"> fileutil::magic::mimetype </a> &#183; <a href="tcllib/files/modules/fumagic/rtcore.html"> fileutil::magic::rt </a> &#183; <a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key458"> minimal spanning tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key307"> minimum </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/optimize.html"> math::optimize </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key469"> minimum cost flow </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key459"> minimum degree spanning tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key497"> minimum diameter spanning tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>





<td class="#idxleft" width="35%"><a name="key787"> mobile phone </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key664"> module </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key744"> montecarlo simulation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/simulation/montecarlo.html"> simulation::montecarlo </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key227"> move </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/multi.html"> fileutil::multi </a> &#183; <a href="tcllib/files/modules/fileutil/multiop.html"> fileutil::multi::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key225"> multi-file </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/multi.html"> fileutil::multi </a> &#183; <a href="tcllib/files/modules/fileutil/multiop.html"> fileutil::multi::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key691"> multiplexer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/multiplexer/multiplexer.html"> multiplexer </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key287"> multiprecision </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/bigfloat.html"> math::bigfloat </a> &#183; <a href="tcllib/files/modules/math/bignum.html"> math::bignum </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key768"> my method </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c17">Keywords: N</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key29"> name service </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nns/nns_client.html"> nameserv </a> &#183; <a href="tcllib/files/modules/nns/nns_auto.html"> nameserv::auto </a> &#183; <a href="tcllib/files/modules/nns/nns_common.html"> nameserv::common </a> &#183; <a href="tcllib/files/modules/nns/nns_protocol.html"> nameserv::protocol </a> &#183; <a href="tcllib/files/modules/nns/nns_server.html"> nameserv::server </a> &#183; <a href="tcllib/files/apps/nns.html"> nns </a> &#183; <a href="tcllib/files/modules/nns/nns_intro.html"> nns_intro </a> &#183; <a href="tcllib/files/apps/nnsd.html"> nnsd </a> &#183; <a href="tcllib/files/apps/nnslog.html"> nnslog </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key86"> namespace unknown </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/namespacex/namespacex.html"> namespacex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key85"> namespace utilities </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/namespacex/namespacex.html"> namespacex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key72"> narrative </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/debug/debug.html"> debug </a> &#183; <a href="tcllib/files/modules/debug/debug_caller.html"> debug::caller </a> &#183; <a href="tcllib/files/modules/debug/debug_heartbeat.html"> debug::heartbeat </a> &#183; <a href="tcllib/files/modules/debug/debug_timestamp.html"> debug::timestamp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key229"> National Provider Identifier </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key486"> neighbour </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key293"> net </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ftp/ftp.html"> ftp </a> &#183; <a href="tcllib/files/modules/ftp/ftp_geturl.html"> ftp::geturl </a> &#183; <a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a> &#183; <a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a> &#183; <a href="tcllib/files/modules/websocket/websocket.html"> websocket </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key521"> nettool </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nettool/nettool.html"> nettool </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key669"> network </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_dbox.html"> pop3d::dbox </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_udb.html"> pop3d::udb </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key529"> news </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nntp/nntp.html"> nntp </a> &#183; <a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key573"> next permutation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key404"> nmea </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nmea/nmea.html"> nmea </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key649"> nntp </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nntp/nntp.html"> nntp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key652"> nntpclient </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nntp/nntp.html"> nntp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key143"> no-op </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/control/control.html"> control </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key460"> node </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a> &#183; <a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key580"> nominatim </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key112"> normalization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench.html"> bench </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a> &#183; <a href="tcllib/files/modules/stringprep/unicode.html"> unicode </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key232"> NPI </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key21"> nroff </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_nroff.html"> doctools::idx::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2base/nroff_manmacros.html"> doctools::nroff::man_macros </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_nroff.html"> doctools::toc::export::nroff </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/doctools/mpexpand.html"> mpexpand </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key707"> NTLM </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sasl/ntlm.html"> SASL::NTLM </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key80"> NTP </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ntp/ntp_time.html"> ntp_time </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key761"> null </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_null.html"> tcl::chan::null </a> &#183; <a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key762"> number theory </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/numtheory.html"> math::numtheory </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c18">Keywords: O</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key833"> oauth </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/oauth/oauth.html"> oauth </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key241"> object </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a> &#183; <a href="tcllib/files/modules/stooop/stooop.html"> stooop </a> &#183; <a href="tcllib/files/modules/stooop/switched.html"> switched </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key234"> object oriented </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a> &#183; <a href="tcllib/files/modules/stooop/stooop.html"> stooop </a> &#183; <a href="tcllib/files/modules/stooop/switched.html"> switched </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key647"> observer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key253"> odie </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cron/cron.html"> cron </a> &#183; <a href="tcllib/files/modules/nettool/nettool.html"> nettool </a> &#183; <a href="tcllib/files/modules/processman/processman.html"> processman </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key535"> on-idle </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uev/uevent_onidle.html"> uevent::onidle </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key373"> one time pad </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key309"> optimization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/optimize.html"> math::optimize </a> &#183; <a href="tcllib/files/modules/simulation/annealing.html"> simulation::annealing </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key748"> ordered list </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/prioqueue.html"> struct::prioqueue </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key374"> otp </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a>
</td></tr>
<tr class="#idxodd" valign=top>










<td class="#idxleft" width="35%"><a name="key572"> outer join </a></td>





<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c19">Keywords: P</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key48"> package </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/csv/csv.html"> csv </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key661"> package indexing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key189"> page </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_intro.html"> page_intro </a> &#183; <a href="tcllib/files/modules/page/page_pluginmgr.html"> page_pluginmgr </a> &#183; <a href="tcllib/files/modules/page/page_util_flow.html"> page_util_flow </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_peg.html"> page_util_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_quote.html"> page_util_quote </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key785"> pager </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ipager.html"> term::interact::pager </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key345"> paragraph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key515"> PARAM </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key401"> parameter entry form </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a> &#183; <a href="tcllib/files/modules/tepam/tepam_argument_dialogbox.html"> tepam::argument_dialogbox </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key9"> parser </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_parse.html"> doctools::idx::parse </a> &#183; <a href="tcllib/files/modules/doctools2base/tcl_parse.html"> doctools::tcl::parse </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_parse.html"> doctools::toc::parse </a> &#183; <a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a> &#183; <a href="tcllib/files/modules/amazon-s3/xsxp.html"> xsxp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key187"> parser generator </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/apps/page.html"> page </a> &#183; <a href="tcllib/files/modules/page/page_intro.html"> page_intro </a> &#183; <a href="tcllib/files/modules/page/page_pluginmgr.html"> page_pluginmgr </a> &#183; <a href="tcllib/files/modules/page/page_util_flow.html"> page_util_flow </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_peg.html"> page_util_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_quote.html"> page_util_quote </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key26"> parsing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bibtex/bibtex.html"> bibtex </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/grammar_aycock/aycock.html"> grammar::aycock </a> &#183; <a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a> &#183; <a href="tcllib/files/modules/grammar_me/me_cpu.html"> grammar::me::cpu </a> &#183; <a href="tcllib/files/modules/grammar_me/me_cpucore.html"> grammar::me::cpu::core </a> &#183; <a href="tcllib/files/modules/grammar_me/gasm.html"> grammar::me::cpu::gasm </a> &#183; <a href="tcllib/files/modules/grammar_me/me_tcl.html"> grammar::me::tcl </a> &#183; <a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_me/me_vm.html"> grammar::me_vm </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/modules/htmlparse/htmlparse.html"> htmlparse </a> &#183; <a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/modules/string/token_shell.html"> string::token::shell </a> &#183; <a href="tcllib/files/modules/yaml/yaml.html"> yaml </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key8"> parsing expression </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key14"> parsing expression grammar </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/modules/page/page_util_peg.html"> page_util_peg </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key590"> partial application </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/lambda/lambda.html"> lambda </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key624"> partition </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key625"> partitioned set </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key611"> passive </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key689"> password </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/otp/otp.html"> otp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key659"> patch </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key633"> patching </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxodd" valign=top>





<td class="#idxleft" width="35%"><a name="key6"> PEG </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_peg.html"> page_util_peg </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key100"> performance </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench.html"> bench </a> &#183; <a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wcsv.html"> bench::out::csv </a> &#183; <a href="tcllib/files/modules/bench/bench_wtext.html"> bench::out::text </a> &#183; <a href="tcllib/files/modules/bench/bench_intro.html"> bench_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_intro.html"> bench_lang_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_spec.html"> bench_lang_spec </a> &#183; <a href="tcllib/files/modules/profiler/profiler.html"> profiler </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key547"> permutation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key33"> persistence </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tie/tie_std.html"> tie </a> &#183; <a href="tcllib/files/modules/tie/tie.html"> tie </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key788"> phone </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key801"> pi </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/constants.html"> math::constants </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key542"> plain text </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_export_text.html"> doctools::idx::export::text </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_text.html"> doctools::toc::export::text </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key576"> plane geometry </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/math_geometry.html"> math::geometry </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key250"> plugin </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools2base/html_cssdefaults.html"> doctools::html::cssdefaults </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2base/nroff_manmacros.html"> doctools::nroff::man_macros </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key180"> plugin management </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pluginmgr/pluginmgr.html"> pluginmgr </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key181"> plugin search </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pluginmgr/pluginmgr.html"> pluginmgr </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key701"> png </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/png/png.html"> png </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key578"> point </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/math_geometry.html"> math::geometry </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key809"> polynomial functions </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/polynomials.html"> math::polynomials </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key302"> pool </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/pool.html"> struct::pool </a> &#183; <a href="tcllib/files/modules/struct/queue.html"> struct::queue </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key442"> pop </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key441"> pop3 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_dbox.html"> pop3d::dbox </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_udb.html"> pop3d::udb </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key698"> post-order </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key695"> pre-order </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key684"> prefix </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a> &#183; <a href="tcllib/files/modules/textutil/trim.html"> textutil::trim </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key763"> prime </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/numtheory.html"> math::numtheory </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key306"> prioqueue </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/prioqueue.html"> struct::prioqueue </a> &#183; <a href="tcllib/files/modules/struct/queue.html"> struct::queue </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key749"> priority queue </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/prioqueue.html"> struct::prioqueue </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key589"> proc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/lambda/lambda.html"> lambda </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key41"> procedure </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/deleg_proc.html"> deleg_proc </a> &#183; <a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a> &#183; <a href="tcllib/files/modules/tepam/tepam_procedure.html"> tepam::procedure </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key827"> procedure documentation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_doc_gen.html"> tepam::doc_gen </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key254"> processman </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/processman/processman.html"> processman </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key676"> producer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key646"> profile </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/profiler/profiler.html"> profiler </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key640"> projection </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mapproj/mapproj.html"> mapproj </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key526"> prospero </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key133"> protocol </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a> &#183; <a href="tcllib/files/modules/ldap/ldap.html"> ldap </a> &#183; <a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a> &#183; <a href="tcllib/files/modules/nns/nns_protocol.html"> nameserv::protocol </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_dbox.html"> pop3d::dbox </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_udb.html"> pop3d::udb </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key825"> proxy </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/http/autoproxy.html"> autoproxy </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key168"> public key cipher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pki/pki.html"> pki </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key678"> publisher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key1"> push down automaton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c20">Keywords: Q</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key50"> queue </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/csv/csv.html"> csv </a> &#183; <a href="tcllib/files/modules/htmlparse/htmlparse.html"> htmlparse </a> &#183; <a href="tcllib/files/modules/struct/stack.html"> struct::stack </a> &#183; <a href="tcllib/files/modules/transfer/tqueue.html"> transfer::copy::queue </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key601"> quoting </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_util_quote.html"> page_util_quote </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c21">Keywords: R</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key608"> radians </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/constants.html"> math::constants </a> &#183; <a href="tcllib/files/modules/units/units.html"> units </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key616"> radiobutton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/html/html.html"> html </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key466"> radius </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key587"> random </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/tcllib_random.html"> tcl::chan::random </a> &#183; <a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key639"> random numbers </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/simulation/simulation_random.html"> simulation::random </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key653"> rational functions </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/rational_funcs.html"> math::rationalfunctions </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key505"> raw </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key123"> rc4 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rc4/rc4.html"> rc4 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key630"> RCS </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key629"> RCS patch </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key408"> read </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key522"> reading </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key93"> receiver </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/receive.html"> term::receive </a> &#183; <a href="tcllib/files/modules/term/term_bind.html"> term::receive::bind </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key511"> reconnect </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nns/nns_auto.html"> nameserv::auto </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key305"> record </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/struct/record.html"> struct::record </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key10"> recursive descent </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key47"> reflected channel </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/cat.html"> tcl::chan::cat </a> &#183; <a href="tcllib/files/modules/virtchannel_core/core.html"> tcl::chan::core </a> &#183; <a href="tcllib/files/modules/virtchannel_core/events.html"> tcl::chan::events </a> &#183; <a href="tcllib/files/modules/virtchannel_base/facade.html"> tcl::chan::facade </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo.html"> tcl::chan::fifo </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a> &#183; <a href="tcllib/files/modules/virtchannel_base/halfpipe.html"> tcl::chan::halfpipe </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_memchan.html"> tcl::chan::memchan </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_null.html"> tcl::chan::null </a> &#183; <a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_random.html"> tcl::chan::random </a> &#183; <a href="tcllib/files/modules/virtchannel_base/std.html"> tcl::chan::std </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_string.html"> tcl::chan::string </a> &#183; <a href="tcllib/files/modules/virtchannel_base/textwindow.html"> tcl::chan::textwindow </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_variable.html"> tcl::chan::variable </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_zero.html"> tcl::chan::zero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a> &#183; <a href="tcllib/files/modules/virtchannel_core/transformcore.html"> tcl::transform::core </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_counter.html"> tcl::transform::counter </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/hex.html"> tcl::transform::hex </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/identity.html"> tcl::transform::identity </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/spacer.html"> tcl::transform::spacer </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key689"> regex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/string/token.html"> string::token </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key320"> regular expression </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a> &#183; <a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/textutil_split.html"> textutil::split </a> &#183; <a href="tcllib/files/modules/textutil/trim.html"> textutil::trim </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key318"> regular grammar </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key317"> regular languages </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key354"> remote communication </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key353"> remote execution </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key226"> remove </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/multi.html"> fileutil::multi </a> &#183; <a href="tcllib/files/modules/fileutil/multiop.html"> fileutil::multi::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key568"> repeating </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key277"> repetition </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a> &#183; <a href="tcllib/files/modules/textutil/repeat.html"> textutil::repeat </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key107"> report </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/report/report.html"> report </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key561"> reshuffle </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key461"> residual graph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key595"> resolver </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_dns.html"> dns </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key159"> resource management </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/try/tcllib_try.html"> try </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key508"> restore </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nns/nns_auto.html"> nameserv::auto </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key549"> reverse </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key328"> rfc 821 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a> &#183; <a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key329"> rfc 822 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_dbox.html"> pop3d::dbox </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key79"> rfc 868 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ntp/ntp_time.html"> ntp_time </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key289"> rfc 959 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ftp/ftp.html"> ftp </a> &#183; <a href="tcllib/files/modules/ftp/ftp_geturl.html"> ftp::geturl </a> &#183; <a href="tcllib/files/modules/ftpd/ftpd.html"> ftpd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key647"> rfc 977 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nntp/nntp.html"> nntp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key597"> rfc 1034 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_dns.html"> dns </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key592"> rfc 1035 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_dns.html"> dns </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key646"> rfc 1036 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nntp/nntp.html"> nntp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key374"> rfc 1320 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key376"> rfc 1321 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key427"> rfc 1413 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ident/ident.html"> ident </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key594"> rfc 1886 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_dns.html"> dns </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key438"> rfc 1939 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key77"> rfc 2030 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ntp/ntp_time.html"> ntp_time </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key803"> rfc 2045 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/mime.html"> mime </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key804"> rfc 2046 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/mime.html"> mime </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key802"> rfc 2049 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/mime.html"> mime </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key212"> rfc 2104 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a> &#183; <a href="tcllib/files/modules/sha1/sha1.html"> sha1 </a> &#183; <a href="tcllib/files/modules/sha1/sha256.html"> sha256 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key572"> rfc 2141 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/urn-scheme.html"> uri_urn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key129"> rfc 2251 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldap.html"> ldap </a> &#183; <a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key529"> rfc 2255 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key684"> rfc 2289 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/otp/otp.html"> otp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key531"> rfc 2396 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key332"> rfc 2554 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/smtp.html"> smtp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key827"> RFC 2718 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/oauth/oauth.html"> oauth </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key325"> rfc 2821 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/smtp.html"> smtp </a> &#183; <a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key497"> rfc 2849 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key330"> rfc 3207 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/smtp.html"> smtp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key447"> rfc 3513 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_ip.html"> tcllib_ip </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key132"> rfc 4511 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldap.html"> ldap </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key828"> RFC 5849 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/oauth/oauth.html"> oauth </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key442"> rfc 6455 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/websocket/websocket.html"> websocket </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key795"> rfc3501 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key337"> rfc3548 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base32/base32.html"> base32 </a> &#183; <a href="tcllib/files/modules/base32/base32hex.html"> base32::hex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key550"> right outer join </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key373"> RIPEMD </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key346"> roman numeral </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/roman.html"> math::roman </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key777"> roots </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/calculus.html"> math::calculus </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key395"> rot </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key394"> rot13 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key387"> rounding </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/fuzzy.html"> math::fuzzy </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key504"> rows </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key350"> rpc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key167"> rsa </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pki/pki.html"> pki </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key426"> running </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c22">Keywords: S</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key516"> s3 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/amazon-s3/S3.html"> S3 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key391"> SASL </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sasl/sasl.html"> SASL </a> &#183; <a href="tcllib/files/modules/sasl/ntlm.html"> SASL::NTLM </a> &#183; <a href="tcllib/files/modules/sasl/scram.html"> SASL::SCRAM </a> &#183; <a href="tcllib/files/modules/sasl/gtoken.html"> SASL::XGoogleToken </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key218"> scanl </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key624"> SCCS </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key754"> SCRAM </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sasl/scram.html"> SASL::SCRAM </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key352"> secure </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key122"> security </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/aes/aes.html"> aes </a> &#183; <a href="tcllib/files/modules/blowfish/blowfish.html"> blowfish </a> &#183; <a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/des/des.html"> des </a> &#183; <a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/md5crypt/md5crypt.html"> md5crypt </a> &#183; <a href="tcllib/files/modules/otp/otp.html"> otp </a> &#183; <a href="tcllib/files/modules/pki/pki.html"> pki </a> &#183; <a href="tcllib/files/modules/rc4/rc4.html"> rc4 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a> &#183; <a href="tcllib/files/modules/sha1/sha1.html"> sha1 </a> &#183; <a href="tcllib/files/modules/sha1/sha256.html"> sha256 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a> &#183; <a href="tcllib/files/modules/des/tcldesjr.html"> tcldes </a> &#183; <a href="tcllib/files/modules/des/tcldes.html"> tcldes </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key824"> seed </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key731"> selectionbox </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/javascript/javascript.html"> javascript </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key136"> semantic markup </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_intro.html"> docidx_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_cmdref.html"> docidx_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_intro.html"> docidx_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_syntax.html"> docidx_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_intro.html"> doctoc_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_cmdref.html"> doctoc_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_intro.html"> doctoc_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_syntax.html"> doctoc_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools/doctools_intro.html"> doctools_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_cmdref.html"> doctools_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_intro.html"> doctools_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_syntax.html"> doctools_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools/doctools_plugin_apiref.html"> doctools_plugin_apiref </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key349"> send </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key109"> serialization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bee/bee.html"> bee </a> &#183; <a href="tcllib/files/modules/doctools2idx/export_docidx.html"> doctools::idx::export::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_html.html"> doctools::idx::export::html </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_json.html"> doctools::idx::export::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_nroff.html"> doctools::idx::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_text.html"> doctools::idx::export::text </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_wiki.html"> doctools::idx::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_structure.html"> doctools::idx::structure </a> &#183; <a href="tcllib/files/modules/doctools2toc/export_doctoc.html"> doctools::toc::export::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_html.html"> doctools::toc::export::html </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_json.html"> doctools::toc::export::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_nroff.html"> doctools::toc::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_text.html"> doctools::toc::export::text </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_wiki.html"> doctools::toc::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_structure.html"> doctools::toc::structure </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key65"> server </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a> &#183; <a href="tcllib/files/modules/nns/nns_common.html"> nameserv::common </a> &#183; <a href="tcllib/files/modules/nns/nns_server.html"> nameserv::server </a> &#183; <a href="tcllib/files/modules/nns/nns_intro.html"> nns_intro </a> &#183; <a href="tcllib/files/apps/nnsd.html"> nnsd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key90"> service </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/log/logger.html"> logger </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key599"> services </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ftpd/ftpd.html"> ftpd </a> &#183; <a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key297"> set </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key436"> sha1 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sha1/sha1.html"> sha1 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key210"> sha256 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sha1/sha256.html"> sha256 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key734"> shell </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/string/token_shell.html"> string::token::shell </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key472"> shortest path </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key564"> shuffle </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key315"> simulated annealing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/simulation/annealing.html"> simulation::annealing </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key634"> simulation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/simulation/simulation_random.html"> simulation::random </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key763"> singleton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key716"> size limit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key302"> skiplist </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/struct/skiplist.html"> struct::skiplist </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key197"> slippy </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a> &#183; <a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key333"> smtp </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a> &#183; <a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key664"> smtpd </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key789"> Snit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key368"> snit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/deleg_method.html"> deleg_method </a> &#183; <a href="tcllib/files/modules/interp/tcllib_interp.html"> interp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key78"> SNTP </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ntp/ntp_time.html"> ntp_time </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key348"> socket </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a> &#183; <a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key280"> soundex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/soundex/soundex.html"> soundex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key431"> source </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip.html"> docstrip </a> &#183; <a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key515"> spacing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/spacer.html"> tcl::transform::spacer </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key826"> spatial interpolation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/interpolate.html"> math::interpolate </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key677"> special functions </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/special.html"> math::special </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key653"> specification </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_lang_spec.html"> bench_lang_spec </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key641"> speed </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/profiler/profiler.html"> profiler </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key435"> split </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil_split.html"> textutil::split </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key488"> squared graph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key355"> ssl </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a> &#183; <a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key299"> stack </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/queue.html"> struct::queue </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key818"> standard io </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/std.html"> tcl::chan::std </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key2"> state </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key84"> state (de)serialization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/namespacex/namespacex.html"> namespacex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key633"> statistical distribution </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/simulation/simulation_random.html"> simulation::random </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key193"> statistics </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/counter/counter.html"> counter </a> &#183; <a href="tcllib/files/modules/math/math.html"> math </a> &#183; <a href="tcllib/files/modules/math/statistics.html"> math::statistics </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key819"> stdin </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/std.html"> tcl::chan::std </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key820"> stdout </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/std.html"> tcl::chan::std </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key739"> stochastic modelling </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/simulation/montecarlo.html"> simulation::montecarlo </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key126"> stream cipher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rc4/rc4.html"> rc4 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key644"> stream copy </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key276"> string </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/string/token.html"> string::token </a> &#183; <a href="tcllib/files/modules/string/token_shell.html"> string::token::shell </a> &#183; <a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a> &#183; <a href="tcllib/files/modules/textutil/expander.html"> textutil::expander </a> &#183; <a href="tcllib/files/modules/textutil/repeat.html"> textutil::repeat </a> &#183; <a href="tcllib/files/modules/textutil/textutil_split.html"> textutil::split </a> &#183; <a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a> &#183; <a href="tcllib/files/modules/textutil/tabify.html"> textutil::tabify </a> &#183; <a href="tcllib/files/modules/textutil/trim.html"> textutil::trim </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key639"> stringprep </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/stringprep/stringprep.html"> stringprep </a> &#183; <a href="tcllib/files/modules/stringprep/stringprep_data.html"> stringprep::data </a> &#183; <a href="tcllib/files/modules/stringprep/unicode_data.html"> unicode::data </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key450"> strongly connected component </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key323"> struct </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/pool.html"> struct::pool </a> &#183; <a href="tcllib/files/modules/struct/record.html"> struct::record </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key142"> structure </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/control/control.html"> control </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key813"> structured queries </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key400"> style </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/html_cssdefaults.html"> doctools::html::cssdefaults </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key748"> subcommand </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a> &#183; <a href="tcllib/files/modules/tepam/tepam_procedure.html"> tepam::procedure </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key475"> subgraph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key671"> subject </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key730"> submitbutton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/javascript/javascript.html"> javascript </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key670"> subscriber </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key559"> subsequence </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key269"> subst </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcl_parse.html"> doctools::tcl::parse </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key579"> sum </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/sum.html"> sum </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key556"> swapping </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key718"> symmetric difference </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key638"> synchronous </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cache/async.html"> cache::async </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key737"> syntax tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_util.html"> grammar::me::util </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c23">Keywords: T</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key106"> table </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/html/html.html"> html </a> &#183; <a href="tcllib/files/modules/report/report.html"> report </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key157"> table of contents </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_intro.html"> doctoc_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/export_doctoc.html"> doctools::toc::export::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_html.html"> doctools::toc::export::html </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_json.html"> doctools::toc::export::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_nroff.html"> doctools::toc::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_text.html"> doctools::toc::export::text </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_wiki.html"> doctools::toc::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/import_doctoc.html"> doctools::toc::import::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import_json.html"> doctools::toc::import::json </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key538"> tabstops </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/tabify.html"> textutil::tabify </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key707"> tallying </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/counter/counter.html"> counter </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key727"> tape archive </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tar/tar.html"> tar </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key729"> tar </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tar/tar.html"> tar </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key284"> tcl </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/bigfloat.html"> math::bigfloat </a> &#183; <a href="tcllib/files/modules/math/bignum.html"> math::bignum </a> &#183; <a href="tcllib/files/modules/math/decimal.html"> math::decimal </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key656"> Tcl module </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key270"> Tcl syntax </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcl_parse.html"> doctools::tcl::parse </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key243"> tcler's wiki </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key52"> tcllib </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/csv/csv.html"> csv </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key761"> TclOO </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key108"> TCLPARAM </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key7"> TDPL </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key311"> temp file </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key772"> template processing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/expander.html"> textutil::expander </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key92"> terminal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/term.html"> term </a> &#183; <a href="tcllib/files/modules/term/ansi_code.html"> term::ansi::code </a> &#183; <a href="tcllib/files/modules/term/ansi_cattr.html"> term::ansi::code::attr </a> &#183; <a href="tcllib/files/modules/term/ansi_cctrl.html"> term::ansi::code::ctrl </a> &#183; <a href="tcllib/files/modules/term/ansi_cmacros.html"> term::ansi::code::macros </a> &#183; <a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a> &#183; <a href="tcllib/files/modules/term/ansi_send.html"> term::ansi::send </a> &#183; <a href="tcllib/files/modules/term/imenu.html"> term::interact::menu </a> &#183; <a href="tcllib/files/modules/term/ipager.html"> term::interact::pager </a> &#183; <a href="tcllib/files/modules/term/receive.html"> term::receive </a> &#183; <a href="tcllib/files/modules/term/term_bind.html"> term::receive::bind </a> &#183; <a href="tcllib/files/modules/term/term_send.html"> term::send </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key309"> test </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key58"> Testing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/valtype_common.html"> valtype::common </a> &#183; <a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a> &#183; <a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a> &#183; <a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a> &#183; <a href="tcllib/files/modules/valtype/luhn.html"> valtype::luhn </a> &#183; <a href="tcllib/files/modules/valtype/luhn5.html"> valtype::luhn5 </a> &#183; <a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a> &#183; <a href="tcllib/files/modules/valtype/verhoeff.html"> valtype::verhoeff </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key99"> testing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench.html"> bench </a> &#183; <a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wcsv.html"> bench::out::csv </a> &#183; <a href="tcllib/files/modules/bench/bench_wtext.html"> bench::out::text </a> &#183; <a href="tcllib/files/modules/bench/bench_intro.html"> bench_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_intro.html"> bench_lang_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_spec.html"> bench_lang_spec </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key341"> TeX </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key246"> text </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wtext.html"> bench::out::text </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key279"> text comparison </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/soundex/soundex.html"> soundex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key631"> text conversion </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key630"> text differences </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key780"> text display </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/imenu.html"> term::interact::menu </a> &#183; <a href="tcllib/files/modules/term/ipager.html"> term::interact::pager </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key773"> text expansion </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/expander.html"> textutil::expander </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key282"> text likeness </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/soundex/soundex.html"> soundex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key190"> text processing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bibtex/bibtex.html"> bibtex </a> &#183; <a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/apps/page.html"> page </a> &#183; <a href="tcllib/files/modules/page/page_intro.html"> page_intro </a> &#183; <a href="tcllib/files/modules/page/page_pluginmgr.html"> page_pluginmgr </a> &#183; <a href="tcllib/files/modules/page/page_util_flow.html"> page_util_flow </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_peg.html"> page_util_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_quote.html"> page_util_quote </a> &#183; <a href="tcllib/files/modules/yaml/yaml.html"> yaml </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key206"> text widget </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/textwindow.html"> tcl::chan::textwindow </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key405"> threads </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key151"> thumbnail </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/jpeg/jpeg.html"> jpeg </a>







|




|




|




|




|




|









|




|









|




|




|









|




|




|




|









|




|




|




|




|




|




|




|




|




|









|




|




|









|









|




|




|




|




|




|




|




|




|









|




|




|




|




|




|




|




|




|




|




|




|




|









|







|




|









|




|




|









|




|









|



















|




|




|









|




|




|




|




|




|




|




|









|




|




|




|









|




|




|




|




|




|




|




|




|




|




|




|




|














|









|




|




|









|




|




|




|




|









|




|




|




|




|




|




|




|




|




|




|




|




|




|

















|




|




|




|




|




|




|














|














|




|









|














|









|




|




|




|




|




|














|







2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key47"> reflected channel </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/cat.html"> tcl::chan::cat </a> &#183; <a href="tcllib/files/modules/virtchannel_core/core.html"> tcl::chan::core </a> &#183; <a href="tcllib/files/modules/virtchannel_core/events.html"> tcl::chan::events </a> &#183; <a href="tcllib/files/modules/virtchannel_base/facade.html"> tcl::chan::facade </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo.html"> tcl::chan::fifo </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a> &#183; <a href="tcllib/files/modules/virtchannel_base/halfpipe.html"> tcl::chan::halfpipe </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_memchan.html"> tcl::chan::memchan </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_null.html"> tcl::chan::null </a> &#183; <a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_random.html"> tcl::chan::random </a> &#183; <a href="tcllib/files/modules/virtchannel_base/std.html"> tcl::chan::std </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_string.html"> tcl::chan::string </a> &#183; <a href="tcllib/files/modules/virtchannel_base/textwindow.html"> tcl::chan::textwindow </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_variable.html"> tcl::chan::variable </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_zero.html"> tcl::chan::zero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a> &#183; <a href="tcllib/files/modules/virtchannel_core/transformcore.html"> tcl::transform::core </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_counter.html"> tcl::transform::counter </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/hex.html"> tcl::transform::hex </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/identity.html"> tcl::transform::identity </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/spacer.html"> tcl::transform::spacer </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key693"> regex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/string/token.html"> string::token </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key322"> regular expression </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a> &#183; <a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/textutil_split.html"> textutil::split </a> &#183; <a href="tcllib/files/modules/textutil/trim.html"> textutil::trim </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key320"> regular grammar </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key319"> regular languages </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key356"> remote communication </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key355"> remote execution </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key226"> remove </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/multi.html"> fileutil::multi </a> &#183; <a href="tcllib/files/modules/fileutil/multiop.html"> fileutil::multi::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key571"> repeating </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key279"> repetition </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a> &#183; <a href="tcllib/files/modules/textutil/repeat.html"> textutil::repeat </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key107"> report </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/report/report.html"> report </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key564"> reshuffle </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key463"> residual graph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key598"> resolver </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_dns.html"> dns </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key159"> resource management </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/try/tcllib_try.html"> try </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key510"> restore </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nns/nns_auto.html"> nameserv::auto </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key552"> reverse </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key330"> rfc 821 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a> &#183; <a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key331"> rfc 822 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d_dbox.html"> pop3d::dbox </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key79"> rfc 868 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ntp/ntp_time.html"> ntp_time </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key291"> rfc 959 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ftp/ftp.html"> ftp </a> &#183; <a href="tcllib/files/modules/ftp/ftp_geturl.html"> ftp::geturl </a> &#183; <a href="tcllib/files/modules/ftpd/ftpd.html"> ftpd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key651"> rfc 977 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nntp/nntp.html"> nntp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key600"> rfc 1034 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_dns.html"> dns </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key595"> rfc 1035 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_dns.html"> dns </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key650"> rfc 1036 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/nntp/nntp.html"> nntp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key376"> rfc 1320 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key378"> rfc 1321 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key429"> rfc 1413 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ident/ident.html"> ident </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key597"> rfc 1886 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_dns.html"> dns </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key440"> rfc 1939 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key77"> rfc 2030 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ntp/ntp_time.html"> ntp_time </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key807"> rfc 2045 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/mime.html"> mime </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key808"> rfc 2046 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/mime.html"> mime </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key806"> rfc 2049 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/mime.html"> mime </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key212"> rfc 2104 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a> &#183; <a href="tcllib/files/modules/sha1/sha1.html"> sha1 </a> &#183; <a href="tcllib/files/modules/sha1/sha256.html"> sha256 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key575"> rfc 2141 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/urn-scheme.html"> uri_urn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key129"> rfc 2251 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldap.html"> ldap </a> &#183; <a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key532"> rfc 2255 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key688"> rfc 2289 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/otp/otp.html"> otp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key534"> rfc 2396 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key334"> rfc 2554 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/smtp.html"> smtp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key831"> RFC 2718 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/oauth/oauth.html"> oauth </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key327"> rfc 2821 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/smtp.html"> smtp </a> &#183; <a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key499"> rfc 2849 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldapx.html"> ldapx </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key332"> rfc 3207 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/smtp.html"> smtp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key449"> rfc 3513 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/dns/tcllib_ip.html"> tcllib_ip </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key132"> rfc 4511 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldap.html"> ldap </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key832"> RFC 5849 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/oauth/oauth.html"> oauth </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key444"> rfc 6455 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/websocket/websocket.html"> websocket </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key799"> rfc3501 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key339"> rfc3548 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base32/base32.html"> base32 </a> &#183; <a href="tcllib/files/modules/base32/base32hex.html"> base32::hex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key553"> right outer join </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key375"> RIPEMD </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key348"> roman numeral </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/roman.html"> math::roman </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key781"> roots </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/calculus.html"> math::calculus </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key397"> rot </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key396"> rot13 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key389"> rounding </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/fuzzy.html"> math::fuzzy </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key506"> rows </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key352"> rpc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key167"> rsa </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pki/pki.html"> pki </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key428"> running </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c22">Keywords: S</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key518"> s3 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/amazon-s3/S3.html"> S3 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key393"> SASL </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sasl/sasl.html"> SASL </a> &#183; <a href="tcllib/files/modules/sasl/ntlm.html"> SASL::NTLM </a> &#183; <a href="tcllib/files/modules/sasl/scram.html"> SASL::SCRAM </a> &#183; <a href="tcllib/files/modules/sasl/gtoken.html"> SASL::XGoogleToken </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key218"> scanl </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/generator/generator.html"> generator </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key628"> SCCS </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key758"> SCRAM </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sasl/scram.html"> SASL::SCRAM </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key354"> secure </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key122"> security </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/aes/aes.html"> aes </a> &#183; <a href="tcllib/files/modules/blowfish/blowfish.html"> blowfish </a> &#183; <a href="tcllib/files/modules/crc/cksum.html"> cksum </a> &#183; <a href="tcllib/files/modules/crc/crc16.html"> crc16 </a> &#183; <a href="tcllib/files/modules/crc/crc32.html"> crc32 </a> &#183; <a href="tcllib/files/modules/des/des.html"> des </a> &#183; <a href="tcllib/files/modules/md4/md4.html"> md4 </a> &#183; <a href="tcllib/files/modules/md5/md5.html"> md5 </a> &#183; <a href="tcllib/files/modules/md5crypt/md5crypt.html"> md5crypt </a> &#183; <a href="tcllib/files/modules/otp/otp.html"> otp </a> &#183; <a href="tcllib/files/modules/pki/pki.html"> pki </a> &#183; <a href="tcllib/files/modules/rc4/rc4.html"> rc4 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd128.html"> ripemd128 </a> &#183; <a href="tcllib/files/modules/ripemd/ripemd160.html"> ripemd160 </a> &#183; <a href="tcllib/files/modules/sha1/sha1.html"> sha1 </a> &#183; <a href="tcllib/files/modules/sha1/sha256.html"> sha256 </a> &#183; <a href="tcllib/files/modules/crc/sum.html"> sum </a> &#183; <a href="tcllib/files/modules/des/tcldesjr.html"> tcldes </a> &#183; <a href="tcllib/files/modules/des/tcldes.html"> tcldes </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key828"> seed </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key735"> selectionbox </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/javascript/javascript.html"> javascript </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key136"> semantic markup </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx_intro.html"> docidx_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_cmdref.html"> docidx_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_faq.html"> docidx_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_intro.html"> docidx_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/docidx_lang_syntax.html"> docidx_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools/docidx_plugin_apiref.html"> docidx_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_intro.html"> doctoc_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_cmdref.html"> doctoc_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_faq.html"> doctoc_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_intro.html"> doctoc_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_lang_syntax.html"> doctoc_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_introduction.html"> doctools2idx_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools/doctools_intro.html"> doctools_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_cmdref.html"> doctools_lang_cmdref </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_faq.html"> doctools_lang_faq </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_intro.html"> doctools_lang_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctools_lang_syntax.html"> doctools_lang_syntax </a> &#183; <a href="tcllib/files/modules/doctools/doctools_plugin_apiref.html"> doctools_plugin_apiref </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key351"> send </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key109"> serialization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bee/bee.html"> bee </a> &#183; <a href="tcllib/files/modules/doctools2idx/export_docidx.html"> doctools::idx::export::docidx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_html.html"> doctools::idx::export::html </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_json.html"> doctools::idx::export::json </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_nroff.html"> doctools::idx::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_text.html"> doctools::idx::export::text </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_wiki.html"> doctools::idx::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_structure.html"> doctools::idx::structure </a> &#183; <a href="tcllib/files/modules/doctools2toc/export_doctoc.html"> doctools::toc::export::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_html.html"> doctools::toc::export::html </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_json.html"> doctools::toc::export::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_nroff.html"> doctools::toc::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_text.html"> doctools::toc::export::text </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_wiki.html"> doctools::toc::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_structure.html"> doctools::toc::structure </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key65"> server </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a> &#183; <a href="tcllib/files/modules/nns/nns_common.html"> nameserv::common </a> &#183; <a href="tcllib/files/modules/nns/nns_server.html"> nameserv::server </a> &#183; <a href="tcllib/files/modules/nns/nns_intro.html"> nns_intro </a> &#183; <a href="tcllib/files/apps/nnsd.html"> nnsd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key90"> service </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/log/logger.html"> logger </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key602"> services </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ftpd/ftpd.html"> ftpd </a> &#183; <a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key299"> set </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key438"> sha1 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sha1/sha1.html"> sha1 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key210"> sha256 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sha1/sha256.html"> sha256 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key738"> shell </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/string/token_shell.html"> string::token::shell </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key474"> shortest path </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key567"> shuffle </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key317"> simulated annealing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/simulation/annealing.html"> simulation::annealing </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key638"> simulation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/simulation/simulation_random.html"> simulation::random </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key767"> singleton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key720"> size limit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key304"> skiplist </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/struct/skiplist.html"> struct::skiplist </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key197"> slippy </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a> &#183; <a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key335"> smtp </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/mime/mime.html"> mime </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a> &#183; <a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key668"> smtpd </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key793"> Snit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key370"> snit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/interp/deleg_method.html"> deleg_method </a> &#183; <a href="tcllib/files/modules/interp/tcllib_interp.html"> interp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key78"> SNTP </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ntp/ntp_time.html"> ntp_time </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key350"> socket </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/comm/comm_wire.html"> comm_wire </a> &#183; <a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key282"> soundex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/soundex/soundex.html"> soundex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key433"> source </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip.html"> docstrip </a> &#183; <a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a> &#183; <a href="tcllib/files/apps/tcldocstrip.html"> tcldocstrip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key517"> spacing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/spacer.html"> tcl::transform::spacer </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key830"> spatial interpolation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/interpolate.html"> math::interpolate </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key681"> special functions </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/special.html"> math::special </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key657"> specification </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_lang_spec.html"> bench_lang_spec </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key645"> speed </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/profiler/profiler.html"> profiler </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key437"> split </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil_split.html"> textutil::split </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key490"> squared graph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key357"> ssl </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a> &#183; <a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key301"> stack </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/queue.html"> struct::queue </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key822"> standard io </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/std.html"> tcl::chan::std </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key2"> state </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_fa/fa.html"> grammar::fa </a> &#183; <a href="tcllib/files/modules/grammar_fa/dacceptor.html"> grammar::fa::dacceptor </a> &#183; <a href="tcllib/files/modules/grammar_fa/dexec.html"> grammar::fa::dexec </a> &#183; <a href="tcllib/files/modules/grammar_fa/faop.html"> grammar::fa::op </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key84"> state (de)serialization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/namespacex/namespacex.html"> namespacex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key637"> statistical distribution </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/simulation/simulation_random.html"> simulation::random </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key193"> statistics </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/counter/counter.html"> counter </a> &#183; <a href="tcllib/files/modules/math/math.html"> math </a> &#183; <a href="tcllib/files/modules/math/statistics.html"> math::statistics </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key823"> stdin </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/std.html"> tcl::chan::std </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key824"> stdout </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/std.html"> tcl::chan::std </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key743"> stochastic modelling </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/simulation/montecarlo.html"> simulation::montecarlo </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key126"> stream cipher </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rc4/rc4.html"> rc4 </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key648"> stream copy </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key278"> string </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/string/token.html"> string::token </a> &#183; <a href="tcllib/files/modules/string/token_shell.html"> string::token::shell </a> &#183; <a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a> &#183; <a href="tcllib/files/modules/textutil/expander.html"> textutil::expander </a> &#183; <a href="tcllib/files/modules/textutil/repeat.html"> textutil::repeat </a> &#183; <a href="tcllib/files/modules/textutil/textutil_split.html"> textutil::split </a> &#183; <a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a> &#183; <a href="tcllib/files/modules/textutil/tabify.html"> textutil::tabify </a> &#183; <a href="tcllib/files/modules/textutil/trim.html"> textutil::trim </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key643"> stringprep </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/stringprep/stringprep.html"> stringprep </a> &#183; <a href="tcllib/files/modules/stringprep/stringprep_data.html"> stringprep::data </a> &#183; <a href="tcllib/files/modules/stringprep/unicode_data.html"> unicode::data </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key452"> strongly connected component </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key325"> struct </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/pool.html"> struct::pool </a> &#183; <a href="tcllib/files/modules/struct/record.html"> struct::record </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key142"> structure </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/control/control.html"> control </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key817"> structured queries </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key402"> style </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/html_cssdefaults.html"> doctools::html::cssdefaults </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key752"> subcommand </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tepam/tepam_introduction.html"> tepam </a> &#183; <a href="tcllib/files/modules/tepam/tepam_procedure.html"> tepam::procedure </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key477"> subgraph </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key675"> subject </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key734"> submitbutton </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/javascript/javascript.html"> javascript </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key674"> subscriber </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key562"> subsequence </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key271"> subst </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcl_parse.html"> doctools::tcl::parse </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key582"> sum </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/crc/sum.html"> sum </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key559"> swapping </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_list.html"> struct::list </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key722"> symmetric difference </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key642"> synchronous </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/cache/async.html"> cache::async </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key741"> syntax tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_util.html"> grammar::me::util </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c23">Keywords: T</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key106"> table </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/html/html.html"> html </a> &#183; <a href="tcllib/files/modules/report/report.html"> report </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key157"> table of contents </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_intro.html"> doctoc_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_introduction.html"> doctools2toc_introduction </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/export_doctoc.html"> doctools::toc::export::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_html.html"> doctools::toc::export::html </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_json.html"> doctools::toc::export::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_nroff.html"> doctools::toc::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_text.html"> doctools::toc::export::text </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_wiki.html"> doctools::toc::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/import_doctoc.html"> doctools::toc::import::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import_json.html"> doctools::toc::import::json </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key541"> tabstops </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/tabify.html"> textutil::tabify </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key711"> tallying </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/counter/counter.html"> counter </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key731"> tape archive </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tar/tar.html"> tar </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key733"> tar </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tar/tar.html"> tar </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key286"> tcl </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/bigfloat.html"> math::bigfloat </a> &#183; <a href="tcllib/files/modules/math/bignum.html"> math::bignum </a> &#183; <a href="tcllib/files/modules/math/decimal.html"> math::decimal </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key660"> Tcl module </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/docstrip/docstrip_util.html"> docstrip_util </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key272"> Tcl syntax </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcl_parse.html"> doctools::tcl::parse </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key243"> tcler's wiki </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key52"> tcllib </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/csv/csv.html"> csv </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key765"> TclOO </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ooutil/ooutil.html"> oo::util </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key108"> TCLPARAM </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key7"> TDPL </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key313"> temp file </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key776"> template processing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/expander.html"> textutil::expander </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key92"> terminal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/term.html"> term </a> &#183; <a href="tcllib/files/modules/term/ansi_code.html"> term::ansi::code </a> &#183; <a href="tcllib/files/modules/term/ansi_cattr.html"> term::ansi::code::attr </a> &#183; <a href="tcllib/files/modules/term/ansi_cctrl.html"> term::ansi::code::ctrl </a> &#183; <a href="tcllib/files/modules/term/ansi_cmacros.html"> term::ansi::code::macros </a> &#183; <a href="tcllib/files/modules/term/ansi_ctrlu.html"> term::ansi::ctrl::unix </a> &#183; <a href="tcllib/files/modules/term/ansi_send.html"> term::ansi::send </a> &#183; <a href="tcllib/files/modules/term/imenu.html"> term::interact::menu </a> &#183; <a href="tcllib/files/modules/term/ipager.html"> term::interact::pager </a> &#183; <a href="tcllib/files/modules/term/receive.html"> term::receive </a> &#183; <a href="tcllib/files/modules/term/term_bind.html"> term::receive::bind </a> &#183; <a href="tcllib/files/modules/term/term_send.html"> term::send </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key311"> test </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key58"> Testing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/valtype_common.html"> valtype::common </a> &#183; <a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a> &#183; <a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a> &#183; <a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a> &#183; <a href="tcllib/files/modules/valtype/luhn.html"> valtype::luhn </a> &#183; <a href="tcllib/files/modules/valtype/luhn5.html"> valtype::luhn5 </a> &#183; <a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a> &#183; <a href="tcllib/files/modules/valtype/verhoeff.html"> valtype::verhoeff </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key99"> testing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench.html"> bench </a> &#183; <a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wcsv.html"> bench::out::csv </a> &#183; <a href="tcllib/files/modules/bench/bench_wtext.html"> bench::out::text </a> &#183; <a href="tcllib/files/modules/bench/bench_intro.html"> bench_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_intro.html"> bench_lang_intro </a> &#183; <a href="tcllib/files/modules/bench/bench_lang_spec.html"> bench_lang_spec </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key343"> TeX </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key246"> text </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bench/bench_read.html"> bench::in </a> &#183; <a href="tcllib/files/modules/bench/bench_wtext.html"> bench::out::text </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key281"> text comparison </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/soundex/soundex.html"> soundex </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key635"> text conversion </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key634"> text differences </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/rcs/rcs.html"> rcs </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key784"> text display </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/term/imenu.html"> term::interact::menu </a> &#183; <a href="tcllib/files/modules/term/ipager.html"> term::interact::pager </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key777"> text expansion </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/expander.html"> textutil::expander </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key284"> text likeness </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/soundex/soundex.html"> soundex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key190"> text processing </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bibtex/bibtex.html"> bibtex </a> &#183; <a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/apps/page.html"> page </a> &#183; <a href="tcllib/files/modules/page/page_intro.html"> page_intro </a> &#183; <a href="tcllib/files/modules/page/page_pluginmgr.html"> page_pluginmgr </a> &#183; <a href="tcllib/files/modules/page/page_util_flow.html"> page_util_flow </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_peg.html"> page_util_peg </a> &#183; <a href="tcllib/files/modules/page/page_util_quote.html"> page_util_quote </a> &#183; <a href="tcllib/files/modules/yaml/yaml.html"> yaml </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key206"> text widget </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/textwindow.html"> tcl::chan::textwindow </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key407"> threads </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key151"> thumbnail </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/jpeg/jpeg.html"> jpeg </a>
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key119"> tiff </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tiff/tiff.html"> tiff </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key381"> tile </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key81"> time </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ntp/ntp_time.html"> ntp_time </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key696"> timestamp </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/png/png.html"> png </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key75"> timestamps </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/debug/debug_timestamp.html"> debug::timestamp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key45"> tip 219 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/cat.html"> tcl::chan::cat </a> &#183; <a href="tcllib/files/modules/virtchannel_core/core.html"> tcl::chan::core </a> &#183; <a href="tcllib/files/modules/virtchannel_core/events.html"> tcl::chan::events </a> &#183; <a href="tcllib/files/modules/virtchannel_base/facade.html"> tcl::chan::facade </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo.html"> tcl::chan::fifo </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a> &#183; <a href="tcllib/files/modules/virtchannel_base/halfpipe.html"> tcl::chan::halfpipe </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_memchan.html"> tcl::chan::memchan </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_null.html"> tcl::chan::null </a> &#183; <a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_random.html"> tcl::chan::random </a> &#183; <a href="tcllib/files/modules/virtchannel_base/std.html"> tcl::chan::std </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_string.html"> tcl::chan::string </a> &#183; <a href="tcllib/files/modules/virtchannel_base/textwindow.html"> tcl::chan::textwindow </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_variable.html"> tcl::chan::variable </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_zero.html"> tcl::chan::zero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a> &#183; <a href="tcllib/files/modules/virtchannel_core/transformcore.html"> tcl::transform::core </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key274"> tip 230 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_counter.html"> tcl::transform::counter </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/hex.html"> tcl::transform::hex </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/identity.html"> tcl::transform::identity </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/spacer.html"> tcl::transform::spacer </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key542"> tip 234 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key580"> tip 317 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key207"> Tk </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/textwindow.html"> tcl::chan::textwindow </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key327"> tls </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a> &#183; <a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a> &#183; <a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key19"> TMML </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/doctools/mpexpand.html"> mpexpand </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key156"> toc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_intro.html"> doctoc_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/export_doctoc.html"> doctools::toc::export::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_html.html"> doctools::toc::export::html </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_json.html"> doctools::toc::export::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_nroff.html"> doctools::toc::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_text.html"> doctools::toc::export::text </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_wiki.html"> doctools::toc::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2toc/import_doctoc.html"> doctools::toc::import::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import_json.html"> doctools::toc::import::json </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key712"> toc formatter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key688"> tokenization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/string/token.html"> string::token </a> &#183; <a href="tcllib/files/modules/string/token_shell.html"> string::token::shell </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key13"> top-down parsing languages </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key386"> torrent </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bee/bee.html"> bee </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key313"> touch </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key25"> TPDL </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a>







|









|














|




|




|









|














|




|









|




|







3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key119"> tiff </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tiff/tiff.html"> tiff </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key383"> tile </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key81"> time </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ntp/ntp_time.html"> ntp_time </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key700"> timestamp </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/png/png.html"> png </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key75"> timestamps </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/debug/debug_timestamp.html"> debug::timestamp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key45"> tip 219 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/cat.html"> tcl::chan::cat </a> &#183; <a href="tcllib/files/modules/virtchannel_core/core.html"> tcl::chan::core </a> &#183; <a href="tcllib/files/modules/virtchannel_core/events.html"> tcl::chan::events </a> &#183; <a href="tcllib/files/modules/virtchannel_base/facade.html"> tcl::chan::facade </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo.html"> tcl::chan::fifo </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a> &#183; <a href="tcllib/files/modules/virtchannel_base/halfpipe.html"> tcl::chan::halfpipe </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_memchan.html"> tcl::chan::memchan </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_null.html"> tcl::chan::null </a> &#183; <a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_random.html"> tcl::chan::random </a> &#183; <a href="tcllib/files/modules/virtchannel_base/std.html"> tcl::chan::std </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_string.html"> tcl::chan::string </a> &#183; <a href="tcllib/files/modules/virtchannel_base/textwindow.html"> tcl::chan::textwindow </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_variable.html"> tcl::chan::variable </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_zero.html"> tcl::chan::zero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a> &#183; <a href="tcllib/files/modules/virtchannel_core/transformcore.html"> tcl::transform::core </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key276"> tip 230 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_counter.html"> tcl::transform::counter </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/hex.html"> tcl::transform::hex </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/identity.html"> tcl::transform::identity </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/spacer.html"> tcl::transform::spacer </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key545"> tip 234 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key583"> tip 317 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key207"> Tk </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/textwindow.html"> tcl::chan::textwindow </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key329"> tls </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/comm/comm.html"> comm </a> &#183; <a href="tcllib/files/modules/imap4/imap4.html"> imap4 </a> &#183; <a href="tcllib/files/modules/pop3/pop3.html"> pop3 </a> &#183; <a href="tcllib/files/modules/pop3d/pop3d.html"> pop3d </a> &#183; <a href="tcllib/files/modules/mime/smtp.html"> smtp </a> &#183; <a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key19"> TMML </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctools.html"> doctools </a> &#183; <a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/apps/dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/dtplite/pkg_dtplite.html"> dtplite </a> &#183; <a href="tcllib/files/modules/doctools/mpexpand.html"> mpexpand </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key156"> toc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_intro.html"> doctoc_intro </a> &#183; <a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/export_doctoc.html"> doctools::toc::export::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_html.html"> doctools::toc::export::html </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_json.html"> doctools::toc::export::json </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_nroff.html"> doctools::toc::export::nroff </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_text.html"> doctools::toc::export::text </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_wiki.html"> doctools::toc::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2toc/import_doctoc.html"> doctools::toc::import::doctoc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import_json.html"> doctools::toc::import::json </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key716"> toc formatter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/doctoc_plugin_apiref.html"> doctoc_plugin_apiref </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key692"> tokenization </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/string/token.html"> string::token </a> &#183; <a href="tcllib/files/modules/string/token_shell.html"> string::token::shell </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key13"> top-down parsing languages </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg.html"> grammar::peg </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/apps/pt.html"> pt </a> &#183; <a href="tcllib/files/modules/pt/pt_astree.html"> pt::ast </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_critcl.html"> pt::cparam::configuration::critcl </a> &#183; <a href="tcllib/files/modules/pt/pt_cparam_config_tea.html"> pt::cparam::configuration::tea </a> &#183; <a href="tcllib/files/modules/pt/pt_json_language.html"> pt::json_language </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpression.html"> pt::pe </a> &#183; <a href="tcllib/files/modules/pt/pt_pexpr_op.html"> pt::pe::op </a> &#183; <a href="tcllib/files/modules/pt/pt_pegrammar.html"> pt::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container.html"> pt::peg::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_container_peg.html"> pt::peg::container::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export.html"> pt::peg::export </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_container.html"> pt::peg::export::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_json.html"> pt::peg::export::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_export_peg.html"> pt::peg::export::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_container.html"> pt::peg::from::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_json.html"> pt::peg::from::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_from_peg.html"> pt::peg::from::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import.html"> pt::peg::import </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_container.html"> pt::peg::import::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_json.html"> pt::peg::import::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_import_peg.html"> pt::peg::import::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_interp.html"> pt::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_container.html"> pt::peg::to::container </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_cparam.html"> pt::peg::to::cparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_json.html"> pt::peg::to::json </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_param.html"> pt::peg::to::param </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_peg.html"> pt::peg::to::peg </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_to_tclparam.html"> pt::peg::to::tclparam </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_language.html"> pt::peg_language </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_introduction.html"> pt::pegrammar </a> &#183; <a href="tcllib/files/modules/pt/pt_pgen.html"> pt::pgen </a> &#183; <a href="tcllib/files/modules/pt/pt_rdengine.html"> pt::rde </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_snit.html"> pt::tclparam::configuration::snit </a> &#183; <a href="tcllib/files/modules/pt/pt_tclparam_config_tcloo.html"> pt::tclparam::configuration::tcloo </a> &#183; <a href="tcllib/files/modules/pt/pt_util.html"> pt::util </a> &#183; <a href="tcllib/files/modules/pt/pt_to_api.html"> pt_export_api </a> &#183; <a href="tcllib/files/modules/pt/pt_from_api.html"> pt_import_api </a> &#183; <a href="tcllib/files/modules/pt/pt_introduction.html"> pt_introduction </a> &#183; <a href="tcllib/files/modules/pt/pt_parse_peg.html"> pt_parse_peg </a> &#183; <a href="tcllib/files/modules/pt/pt_parser_api.html"> pt_parser_api </a> &#183; <a href="tcllib/files/modules/pt/pt_peg_op.html"> pt_peg_op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key388"> torrent </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/bee/bee.html"> bee </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key315"> touch </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key25"> TPDL </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a>
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key62"> transfer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a> &#183; <a href="tcllib/files/modules/transfer/copyops.html"> transfer::copy </a> &#183; <a href="tcllib/files/modules/transfer/tqueue.html"> transfer::copy::queue </a> &#183; <a href="tcllib/files/modules/transfer/ddest.html"> transfer::data::destination </a> &#183; <a href="tcllib/files/modules/transfer/dsource.html"> transfer::data::source </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key275"> transformation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_util_peg.html"> page_util_peg </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_counter.html"> tcl::transform::counter </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/hex.html"> tcl::transform::hex </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/identity.html"> tcl::transform::identity </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/spacer.html"> tcl::transform::spacer </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key710"> transmitter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key454"> travelling salesman </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key714"> traversal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/traverse.html"> fileutil_traverse </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key296"> tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/gasm.html"> grammar::me::cpu::gasm </a> &#183; <a href="tcllib/files/modules/grammar_me/me_util.html"> grammar::me::util </a> &#183; <a href="tcllib/files/modules/htmlparse/htmlparse.html"> htmlparse </a> &#183; <a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/struct/stack.html"> struct::stack </a> &#183; <a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a> &#183; <a href="tcllib/files/modules/struct/struct_tree1.html"> struct::tree_v1 </a> &#183; <a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key811"> tree query language </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key188"> tree walking </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_util_flow.html"> page_util_flow </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key809"> TreeQL </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key424"> trimming </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/trim.html"> textutil::trim </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key830"> twitter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/oauth/oauth.html"> oauth </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key117"> type </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a> &#183; <a href="tcllib/files/modules/fumagic/cfront.html"> fileutil::magic::cfront </a> &#183; <a href="tcllib/files/modules/fumagic/cgen.html"> fileutil::magic::cgen </a> &#183; <a href="tcllib/files/modules/fumagic/filetypes.html"> fileutil::magic::filetype </a> &#183; <a href="tcllib/files/modules/fumagic/mimetypes.html"> fileutil::magic::mimetype </a> &#183; <a href="tcllib/files/modules/fumagic/rtcore.html"> fileutil::magic::rt </a> &#183; <a href="tcllib/files/modules/snit/snit.html"> snit </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key57"> Type checking </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/valtype_common.html"> valtype::common </a> &#183; <a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a> &#183; <a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a> &#183; <a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a> &#183; <a href="tcllib/files/modules/valtype/luhn.html"> valtype::luhn </a> &#183; <a href="tcllib/files/modules/valtype/luhn5.html"> valtype::luhn5 </a> &#183; <a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a> &#183; <a href="tcllib/files/modules/valtype/verhoeff.html"> valtype::verhoeff </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c24">Keywords: U</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key675"> uevent </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key704"> unbind </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uev/uevent.html"> uevent </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key679"> uncapitalize </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key338"> undenting </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key640"> unicode </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/stringprep/stringprep.html"> stringprep </a> &#183; <a href="tcllib/files/modules/stringprep/stringprep_data.html"> stringprep::data </a> &#183; <a href="tcllib/files/modules/stringprep/unicode.html"> unicode </a> &#183; <a href="tcllib/files/modules/stringprep/unicode_data.html"> unicode::data </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key617"> union </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a> &#183; <a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key603"> unit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/units/units.html"> units </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key88"> unknown hooking </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/namespacex/namespacex.html"> namespacex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key32"> untie </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tie/tie_std.html"> tie </a> &#183; <a href="tcllib/files/modules/tie/tie.html"> tie </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key412"> update </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key522"> uri </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a> &#183; <a href="tcllib/files/modules/uri/urn-scheme.html"> uri_urn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key244"> url </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a> &#183; <a href="tcllib/files/modules/uri/uri.html"> uri </a> &#183; <a href="tcllib/files/modules/uri/urn-scheme.html"> uri_urn </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key571"> urn </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/urn-scheme.html"> uri_urn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key230"> US-NPI </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a>







|




|




|




|




|




|









|




|




|

















|




|




|




|




|




|




|














|




|









|







3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key62"> transfer </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/connect.html"> transfer::connect </a> &#183; <a href="tcllib/files/modules/transfer/copyops.html"> transfer::copy </a> &#183; <a href="tcllib/files/modules/transfer/tqueue.html"> transfer::copy::queue </a> &#183; <a href="tcllib/files/modules/transfer/ddest.html"> transfer::data::destination </a> &#183; <a href="tcllib/files/modules/transfer/dsource.html"> transfer::data::source </a> &#183; <a href="tcllib/files/modules/transfer/receiver.html"> transfer::receiver </a> &#183; <a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key277"> transformation </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_util_peg.html"> page_util_peg </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_counter.html"> tcl::transform::counter </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/hex.html"> tcl::transform::hex </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/identity.html"> tcl::transform::identity </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/spacer.html"> tcl::transform::spacer </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key714"> transmitter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/transfer/transmitter.html"> transfer::transmitter </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key456"> travelling salesman </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key718"> traversal </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/traverse.html"> fileutil_traverse </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key298"> tree </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/gasm.html"> grammar::me::cpu::gasm </a> &#183; <a href="tcllib/files/modules/grammar_me/me_util.html"> grammar::me::util </a> &#183; <a href="tcllib/files/modules/htmlparse/htmlparse.html"> htmlparse </a> &#183; <a href="tcllib/files/modules/struct/queue.html"> struct::queue </a> &#183; <a href="tcllib/files/modules/struct/stack.html"> struct::stack </a> &#183; <a href="tcllib/files/modules/struct/struct_tree.html"> struct::tree </a> &#183; <a href="tcllib/files/modules/struct/struct_tree1.html"> struct::tree_v1 </a> &#183; <a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key815"> tree query language </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key188"> tree walking </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/page/page_util_flow.html"> page_util_flow </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_lemon.html"> page_util_norm_lemon </a> &#183; <a href="tcllib/files/modules/page/page_util_norm_peg.html"> page_util_norm_peg </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key813"> TreeQL </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key426"> trimming </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil.html"> textutil </a> &#183; <a href="tcllib/files/modules/textutil/trim.html"> textutil::trim </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key834"> twitter </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/oauth/oauth.html"> oauth </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key117"> type </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/fileutil/fileutil.html"> fileutil </a> &#183; <a href="tcllib/files/modules/fumagic/cfront.html"> fileutil::magic::cfront </a> &#183; <a href="tcllib/files/modules/fumagic/cgen.html"> fileutil::magic::cgen </a> &#183; <a href="tcllib/files/modules/fumagic/filetypes.html"> fileutil::magic::filetype </a> &#183; <a href="tcllib/files/modules/fumagic/mimetypes.html"> fileutil::magic::mimetype </a> &#183; <a href="tcllib/files/modules/fumagic/rtcore.html"> fileutil::magic::rt </a> &#183; <a href="tcllib/files/modules/snit/snit.html"> snit </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key57"> Type checking </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/valtype_common.html"> valtype::common </a> &#183; <a href="tcllib/files/modules/valtype/cc_amex.html"> valtype::creditcard::amex </a> &#183; <a href="tcllib/files/modules/valtype/cc_discover.html"> valtype::creditcard::discover </a> &#183; <a href="tcllib/files/modules/valtype/cc_mastercard.html"> valtype::creditcard::mastercard </a> &#183; <a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a> &#183; <a href="tcllib/files/modules/valtype/ean13.html"> valtype::gs1::ean13 </a> &#183; <a href="tcllib/files/modules/valtype/iban.html"> valtype::iban </a> &#183; <a href="tcllib/files/modules/valtype/imei.html"> valtype::imei </a> &#183; <a href="tcllib/files/modules/valtype/isbn.html"> valtype::isbn </a> &#183; <a href="tcllib/files/modules/valtype/luhn.html"> valtype::luhn </a> &#183; <a href="tcllib/files/modules/valtype/luhn5.html"> valtype::luhn5 </a> &#183; <a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a> &#183; <a href="tcllib/files/modules/valtype/verhoeff.html"> valtype::verhoeff </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c24">Keywords: U</a>
</th></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key679"> uevent </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/hook/hook.html"> hook </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key708"> unbind </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uev/uevent.html"> uevent </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key683"> uncapitalize </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/textutil_string.html"> textutil::string </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key340"> undenting </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/textutil/adjust.html"> textutil::adjust </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key644"> unicode </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/stringprep/stringprep.html"> stringprep </a> &#183; <a href="tcllib/files/modules/stringprep/stringprep_data.html"> stringprep::data </a> &#183; <a href="tcllib/files/modules/stringprep/unicode.html"> unicode </a> &#183; <a href="tcllib/files/modules/stringprep/unicode_data.html"> unicode::data </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key621"> union </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/disjointset.html"> struct::disjointset </a> &#183; <a href="tcllib/files/modules/struct/struct_set.html"> struct::set </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key606"> unit </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/units/units.html"> units </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key88"> unknown hooking </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/namespacex/namespacex.html"> namespacex </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key32"> untie </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/tie/tie_std.html"> tie </a> &#183; <a href="tcllib/files/modules/tie/tie.html"> tie </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key414"> update </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key525"> uri </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a> &#183; <a href="tcllib/files/modules/uri/urn-scheme.html"> uri_urn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key244"> url </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_import.html"> doctools::idx::import </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_import.html"> doctools::toc::import </a> &#183; <a href="tcllib/files/modules/map/map_geocode_nominatim.html"> map::geocode::nominatim </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a> &#183; <a href="tcllib/files/modules/uri/uri.html"> uri </a> &#183; <a href="tcllib/files/modules/uri/urn-scheme.html"> uri_urn </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key574"> urn </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/urn-scheme.html"> uri_urn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key230"> US-NPI </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/usnpi.html"> valtype::usnpi </a>
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key70"> vectors </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key741"> verhoeff </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/verhoeff.html"> valtype::verhoeff </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key459"> vertex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key492"> vertex cover </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key44"> virtual channel </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/cat.html"> tcl::chan::cat </a> &#183; <a href="tcllib/files/modules/virtchannel_core/core.html"> tcl::chan::core </a> &#183; <a href="tcllib/files/modules/virtchannel_core/events.html"> tcl::chan::events </a> &#183; <a href="tcllib/files/modules/virtchannel_base/facade.html"> tcl::chan::facade </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo.html"> tcl::chan::fifo </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a> &#183; <a href="tcllib/files/modules/virtchannel_base/halfpipe.html"> tcl::chan::halfpipe </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_memchan.html"> tcl::chan::memchan </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_null.html"> tcl::chan::null </a> &#183; <a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_random.html"> tcl::chan::random </a> &#183; <a href="tcllib/files/modules/virtchannel_base/std.html"> tcl::chan::std </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_string.html"> tcl::chan::string </a> &#183; <a href="tcllib/files/modules/virtchannel_base/textwindow.html"> tcl::chan::textwindow </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_variable.html"> tcl::chan::variable </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_zero.html"> tcl::chan::zero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a> &#183; <a href="tcllib/files/modules/virtchannel_core/transformcore.html"> tcl::transform::core </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_counter.html"> tcl::transform::counter </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/hex.html"> tcl::transform::hex </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/identity.html"> tcl::transform::identity </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/spacer.html"> tcl::transform::spacer </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key24"> virtual machine </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_cpu.html"> grammar::me::cpu </a> &#183; <a href="tcllib/files/modules/grammar_me/me_cpucore.html"> grammar::me::cpu::core </a> &#183; <a href="tcllib/files/modules/grammar_me/gasm.html"> grammar::me::cpu::gasm </a> &#183; <a href="tcllib/files/modules/grammar_me/me_tcl.html"> grammar::me::tcl </a> &#183; <a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_me/me_vm.html"> grammar::me_vm </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key701"> VISA </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key413"> vwait </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a> &#183; <a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c26">Keywords: W</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key524"> wais </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key233"> widget </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key236"> widget adaptors </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key183"> wiki </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_wiki.html"> doctools::idx::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_wiki.html"> doctools::toc::export::wiki </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key268"> word </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcl_parse.html"> doctools::tcl::parse </a> &#183; <a href="tcllib/files/modules/wip/wip.html"> wip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key530"> www </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c27">Keywords: X</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key418"> x.208 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key419"> x.209 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key134"> x.500 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldap.html"> ldap </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key390"> XGoogleToken </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sasl/gtoken.html"> SASL::XGoogleToken </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key747"> xml </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/amazon-s3/xsxp.html"> xsxp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key369"> xor </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key808"> XPath </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key812"> XSLT </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c28">Keywords: Y</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key583"> yaml </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/modules/yaml/yaml.html"> yaml </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key698"> ydecode </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base64/yencode.html"> yencode </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key700"> yEnc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base64/yencode.html"> yencode </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key699"> yencode </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base64/yencode.html"> yencode </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c29">Keywords: Z</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key113"> zero </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_zero.html"> tcl::chan::zero </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key42"> zip </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/zip/decode.html"> zipfile::decode </a> &#183; <a href="tcllib/files/modules/zip/encode.html"> zipfile::encode </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key541"> zlib </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key196"> zoom </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a> &#183; <a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a>
</td></tr>
</table>
</body></html>







|




|




|














|




|







|



















|




|







|




|









|




|




|




|




|







|




|




|




|

















|










4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key70"> vectors </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/math/linalg.html"> math::linearalgebra </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key745"> verhoeff </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/verhoeff.html"> valtype::verhoeff </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key461"> vertex </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graph.html"> struct::graph </a> &#183; <a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key494"> vertex cover </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/struct/graphops.html"> struct::graph::op </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key44"> virtual channel </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/cat.html"> tcl::chan::cat </a> &#183; <a href="tcllib/files/modules/virtchannel_core/core.html"> tcl::chan::core </a> &#183; <a href="tcllib/files/modules/virtchannel_core/events.html"> tcl::chan::events </a> &#183; <a href="tcllib/files/modules/virtchannel_base/facade.html"> tcl::chan::facade </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo.html"> tcl::chan::fifo </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_fifo2.html"> tcl::chan::fifo2 </a> &#183; <a href="tcllib/files/modules/virtchannel_base/halfpipe.html"> tcl::chan::halfpipe </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_memchan.html"> tcl::chan::memchan </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_null.html"> tcl::chan::null </a> &#183; <a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_random.html"> tcl::chan::random </a> &#183; <a href="tcllib/files/modules/virtchannel_base/std.html"> tcl::chan::std </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_string.html"> tcl::chan::string </a> &#183; <a href="tcllib/files/modules/virtchannel_base/textwindow.html"> tcl::chan::textwindow </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_variable.html"> tcl::chan::variable </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_zero.html"> tcl::chan::zero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/randseed.html"> tcl::randomseed </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/adler32.html"> tcl::transform::adler32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_base64.html"> tcl::transform::base64 </a> &#183; <a href="tcllib/files/modules/virtchannel_core/transformcore.html"> tcl::transform::core </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_counter.html"> tcl::transform::counter </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_crc32.html"> tcl::transform::crc32 </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/hex.html"> tcl::transform::hex </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/identity.html"> tcl::transform::identity </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/limitsize.html"> tcl::transform::limitsize </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/observe.html"> tcl::transform::observe </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/spacer.html"> tcl::transform::spacer </a> &#183; <a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key24"> virtual machine </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/grammar_me/me_cpu.html"> grammar::me::cpu </a> &#183; <a href="tcllib/files/modules/grammar_me/me_cpucore.html"> grammar::me::cpu::core </a> &#183; <a href="tcllib/files/modules/grammar_me/gasm.html"> grammar::me::cpu::gasm </a> &#183; <a href="tcllib/files/modules/grammar_me/me_tcl.html"> grammar::me::tcl </a> &#183; <a href="tcllib/files/modules/grammar_me/me_intro.html"> grammar::me_intro </a> &#183; <a href="tcllib/files/modules/grammar_me/me_vm.html"> grammar::me_vm </a> &#183; <a href="tcllib/files/modules/grammar_peg/peg_interp.html"> grammar::peg::interp </a> &#183; <a href="tcllib/files/modules/pt/pt_param.html"> pt::param </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key705"> VISA </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/valtype/cc_visa.html"> valtype::creditcard::visa </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key415"> vwait </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/coroutine/tcllib_coroutine.html"> coroutine </a> &#183; <a href="tcllib/files/modules/coroutine/coro_auto.html"> coroutine::auto </a> &#183; <a href="tcllib/files/modules/smtpd/smtpd.html"> smtpd </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c26">Keywords: W</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key527"> wais </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key233"> widget </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key236"> widget adaptors </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/snit/snit.html"> snit </a> &#183; <a href="tcllib/files/modules/snit/snitfaq.html"> snitfaq </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key183"> wiki </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools/docidx.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_container.html"> doctools::idx </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export.html"> doctools::idx::export </a> &#183; <a href="tcllib/files/modules/doctools2idx/idx_export_wiki.html"> doctools::idx::export::wiki </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_container.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools/doctoc.html"> doctools::toc </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export.html"> doctools::toc::export </a> &#183; <a href="tcllib/files/modules/doctools2toc/toc_export_wiki.html"> doctools::toc::export::wiki </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key270"> word </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/doctools2base/tcl_parse.html"> doctools::tcl::parse </a> &#183; <a href="tcllib/files/modules/wip/wip.html"> wip </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key533"> www </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/uri/uri.html"> uri </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c27">Keywords: X</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key420"> x.208 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key421"> x.209 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/asn/asn.html"> asn </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key134"> x.500 </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/ldap/ldap.html"> ldap </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key392"> XGoogleToken </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/sasl/gtoken.html"> SASL::XGoogleToken </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key751"> xml </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/amazon-s3/xsxp.html"> xsxp </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key371"> xor </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/vt_otp.html"> tcl::transform::otp </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key812"> XPath </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key816"> XSLT </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/treeql/treeql.html"> treeql </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c28">Keywords: Y</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key586"> yaml </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/yaml/huddle.html"> huddle </a> &#183; <a href="tcllib/files/modules/yaml/yaml.html"> yaml </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key702"> ydecode </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base64/yencode.html"> yencode </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key704"> yEnc </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base64/yencode.html"> yencode </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key703"> yencode </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/base64/yencode.html"> yencode </a>
</td></tr>
<tr class="#idxheader"><th colspan="2">
<a name="c29">Keywords: Z</a>
</th></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key113"> zero </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_base/nullzero.html"> tcl::chan::nullzero </a> &#183; <a href="tcllib/files/modules/virtchannel_base/tcllib_zero.html"> tcl::chan::zero </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key42"> zip </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/zip/decode.html"> zipfile::decode </a> &#183; <a href="tcllib/files/modules/zip/encode.html"> zipfile::encode </a>
</td></tr>
<tr class="#idxodd" valign=top>
<td class="#idxleft" width="35%"><a name="key544"> zlib </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/virtchannel_transform/tcllib_zlib.html"> tcl::transform::zlib </a>
</td></tr>
<tr class="#idxeven" valign=top>
<td class="#idxleft" width="35%"><a name="key196"> zoom </a></td>
<td class="#idxright" width="65%">
<a href="tcllib/files/modules/map/map_slippy.html"> map::slippy </a> &#183; <a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a> &#183; <a href="tcllib/files/modules/map/map_slippy_fetcher.html"> map::slippy::fetcher </a>
</td></tr>
</table>
</body></html>

Changes to embedded/www/tcllib/files/apps/dtplite.html.

421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../modules/doctools/docidx_intro.html">docidx introduction</a>, <a href="../modules/doctools/doctoc_intro.html">doctoc introduction</a>, <a href="../modules/doctools/doctools_intro.html">doctools introduction</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../index.html#key18">HTML</a>, <a href="../../../index.html#key19">TMML</a>, <a href="../../../index.html#key20">conversion</a>, <a href="../../../index.html#key178">docidx</a>, <a href="../../../index.html#key254">doctoc</a>, <a href="../../../index.html#key179">doctools</a>, <a href="../../../index.html#key17">manpage</a>, <a href="../../../index.html#key16">markup</a>, <a href="../../../index.html#key21">nroff</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004-2013 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../modules/doctools/docidx_intro.html">docidx introduction</a>, <a href="../modules/doctools/doctoc_intro.html">doctoc introduction</a>, <a href="../modules/doctools/doctools_intro.html">doctools introduction</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../index.html#key18">HTML</a>, <a href="../../../index.html#key19">TMML</a>, <a href="../../../index.html#key20">conversion</a>, <a href="../../../index.html#key178">docidx</a>, <a href="../../../index.html#key256">doctoc</a>, <a href="../../../index.html#key179">doctools</a>, <a href="../../../index.html#key17">manpage</a>, <a href="../../../index.html#key16">markup</a>, <a href="../../../index.html#key21">nroff</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004-2013 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/apps/nns.html.

146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
command line client for the nano name service facility provided by the
Tcllib packages <b class="package"><a href="../modules/nns/nns_client.html">nameserv</a></b>, and <b class="package"><a href="../modules/nns/nns_server.html">nameserv::server</a></b>.
Beyond that the application's sources also serve as an example of how
to use the client package <b class="package"><a href="../modules/nns/nns_client.html">nameserv</a></b>. All abilities of a
client are covered, from configuration to registration of names to
searching.</p>
<p>This name service facility has nothing to do with the Internet's
<i class="term">Domain Name System</i>, otherwise known as <i class="term"><a href="../../../index.html#key593">DNS</a></i>. If the
reader is looking for a package dealing with that please see either of
the packages <b class="package"><a href="../modules/dns/tcllib_dns.html">dns</a></b> and <b class="package">resolv</b>, both found in Tcllib
too.</p>
<div id="subsection1" class="subsection"><h3><a name="subsection1">USE CASES</a></h3>
<p><b class="syscmd">nns</b> was written with the following two main use cases in
mind.</p>
<ol class="enumerated">







|







146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
command line client for the nano name service facility provided by the
Tcllib packages <b class="package"><a href="../modules/nns/nns_client.html">nameserv</a></b>, and <b class="package"><a href="../modules/nns/nns_server.html">nameserv::server</a></b>.
Beyond that the application's sources also serve as an example of how
to use the client package <b class="package"><a href="../modules/nns/nns_client.html">nameserv</a></b>. All abilities of a
client are covered, from configuration to registration of names to
searching.</p>
<p>This name service facility has nothing to do with the Internet's
<i class="term">Domain Name System</i>, otherwise known as <i class="term"><a href="../../../index.html#key596">DNS</a></i>. If the
reader is looking for a package dealing with that please see either of
the packages <b class="package"><a href="../modules/dns/tcllib_dns.html">dns</a></b> and <b class="package">resolv</b>, both found in Tcllib
too.</p>
<div id="subsection1" class="subsection"><h3><a name="subsection1">USE CASES</a></h3>
<p><b class="syscmd">nns</b> was written with the following two main use cases in
mind.</p>
<ol class="enumerated">

Changes to embedded/www/tcllib/files/apps/nnsd.html.

141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<p>Please read <i class="term"><a href="../modules/nns/nns_intro.html">Name service facility, introduction</a></i> first.</p>
<p>The application described by this document, <b class="syscmd"><a href="nns.html">nns</a></b>, is a simple
command line server for the nano name service facility provided by the
Tcllib packages <b class="package"><a href="../modules/nns/nns_client.html">nameserv</a></b>, and <b class="package"><a href="../modules/nns/nns_server.html">nameserv::server</a></b>.
Beyond that the application's sources also serve as an example of how
to use the server package <b class="package"><a href="../modules/nns/nns_server.html">nameserv::server</a></b>.</p>
<p>This name service facility has nothing to do with the Internet's
<i class="term">Domain Name System</i>, otherwise known as <i class="term"><a href="../../../index.html#key593">DNS</a></i>. If the
reader is looking for a package dealing with that please see either of
the packages <b class="package"><a href="../modules/dns/tcllib_dns.html">dns</a></b> and <b class="package">resolv</b>, both found in Tcllib
too.</p>
<div id="subsection1" class="subsection"><h3><a name="subsection1">USE CASES</a></h3>
<p><b class="syscmd">nnsd</b> was written with the following main use case in
mind.</p>
<ol class="enumerated">







|







141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<p>Please read <i class="term"><a href="../modules/nns/nns_intro.html">Name service facility, introduction</a></i> first.</p>
<p>The application described by this document, <b class="syscmd"><a href="nns.html">nns</a></b>, is a simple
command line server for the nano name service facility provided by the
Tcllib packages <b class="package"><a href="../modules/nns/nns_client.html">nameserv</a></b>, and <b class="package"><a href="../modules/nns/nns_server.html">nameserv::server</a></b>.
Beyond that the application's sources also serve as an example of how
to use the server package <b class="package"><a href="../modules/nns/nns_server.html">nameserv::server</a></b>.</p>
<p>This name service facility has nothing to do with the Internet's
<i class="term">Domain Name System</i>, otherwise known as <i class="term"><a href="../../../index.html#key596">DNS</a></i>. If the
reader is looking for a package dealing with that please see either of
the packages <b class="package"><a href="../modules/dns/tcllib_dns.html">dns</a></b> and <b class="package">resolv</b>, both found in Tcllib
too.</p>
<div id="subsection1" class="subsection"><h3><a name="subsection1">USE CASES</a></h3>
<p><b class="syscmd">nnsd</b> was written with the following main use case in
mind.</p>
<ol class="enumerated">

Changes to embedded/www/tcllib/files/apps/nnslog.html.

143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
simple command line client for the nano name service facility provided
by the Tcllib packages <b class="package"><a href="../modules/nns/nns_client.html">nameserv</a></b>, and <b class="package"><a href="../modules/nns/nns_server.html">nameserv::server</a></b>.</p>
<p>It essentially implements &quot;<b class="syscmd"><a href="nns.html">nns</a></b> search -continuous *&quot;, but
uses a different output formatting. Instead of continuously showing
the current contents of the server in the terminal it simply logs all
received add/remove events to <b class="const">stdout</b>.</p>
<p>This name service facility has nothing to do with the Internet's
<i class="term">Domain Name System</i>, otherwise known as <i class="term"><a href="../../../index.html#key593">DNS</a></i>. If the
reader is looking for a package dealing with that please see either of
the packages <b class="package"><a href="../modules/dns/tcllib_dns.html">dns</a></b> and <b class="package">resolv</b>, both found in Tcllib
too.</p>
<div id="subsection1" class="subsection"><h3><a name="subsection1">USE CASES</a></h3>
<p><b class="syscmd">nnslog</b> was written with the following main use case in mind.</p>
<ol class="enumerated">
<li><p>Monitoring the name service for all changes and logging them in a text







|







143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
simple command line client for the nano name service facility provided
by the Tcllib packages <b class="package"><a href="../modules/nns/nns_client.html">nameserv</a></b>, and <b class="package"><a href="../modules/nns/nns_server.html">nameserv::server</a></b>.</p>
<p>It essentially implements &quot;<b class="syscmd"><a href="nns.html">nns</a></b> search -continuous *&quot;, but
uses a different output formatting. Instead of continuously showing
the current contents of the server in the terminal it simply logs all
received add/remove events to <b class="const">stdout</b>.</p>
<p>This name service facility has nothing to do with the Internet's
<i class="term">Domain Name System</i>, otherwise known as <i class="term"><a href="../../../index.html#key596">DNS</a></i>. If the
reader is looking for a package dealing with that please see either of
the packages <b class="package"><a href="../modules/dns/tcllib_dns.html">dns</a></b> and <b class="package">resolv</b>, both found in Tcllib
too.</p>
<div id="subsection1" class="subsection"><h3><a name="subsection1">USE CASES</a></h3>
<p><b class="syscmd">nnslog</b> was written with the following main use case in mind.</p>
<ol class="enumerated">
<li><p>Monitoring the name service for all changes and logging them in a text

Changes to embedded/www/tcllib/files/apps/pt.html.

492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
<dt><b class="option">-version</b> string</dt>
<dd><p>The value of this option is the version of the package to generate.
The default value is <b class="const">1</b>.</p></dd>
</dl>
</div>
<div id="section8" class="section"><h2><a name="section8">TclOO Parser</a></h2>
<p>The <b class="const">oo</b> format is executable code, a parser for the grammar. It
is a Tcl package holding a <b class="package"><a href="../../../index.html#key761">TclOO</a></b> class, whose instances are
parsers for the input grammar.</p>
<p>This result-format supports the following options:</p>
<dl class="options">
<dt><b class="option">-file</b> string</dt>
<dd><p>The value of this option is the name of the file or other entity from
which the grammar came, for which the command is run. The default
value is <b class="const">unknown</b>.</p></dd>







|







492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
<dt><b class="option">-version</b> string</dt>
<dd><p>The value of this option is the version of the package to generate.
The default value is <b class="const">1</b>.</p></dd>
</dl>
</div>
<div id="section8" class="section"><h2><a name="section8">TclOO Parser</a></h2>
<p>The <b class="const">oo</b> format is executable code, a parser for the grammar. It
is a Tcl package holding a <b class="package"><a href="../../../index.html#key765">TclOO</a></b> class, whose instances are
parsers for the input grammar.</p>
<p>This result-format supports the following options:</p>
<dl class="options">
<dt><b class="option">-file</b> string</dt>
<dd><p>The value of this option is the name of the file or other entity from
which the grammar came, for which the command is run. The default
value is <b class="const">unknown</b>.</p></dd>

Changes to embedded/www/tcllib/files/apps/tcldocstrip.html.

176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
be the path to a file or directory, or <b class="const">-</b>.
The last value causes the application to write the generated
documented to <b class="const">stdout</b>.</p>
<p>If the <i class="arg">output</i> does not exist then [file dirname $output]
has to exist and must be a writable directory.</p></dd>
<dt>path <i class="arg">inputfile</i> (in)</dt>
<dd><p>This argument specifies the path to the file to process. It has to
exist, must be readable, and written in <i class="term"><a href="../../../index.html#key430">docstrip</a></i> format.</p></dd>
</dl></dd>
<dt><a name="2"><b class="cmd">tcldocstrip</b> <span class="opt">?options?</span> <i class="arg">output</i> (<span class="opt">?options?</span> <i class="arg">input</i> <i class="arg">guards</i>)...</a></dt>
<dd><p>This is the form for use case [2]. It differs from the form for
use case [1] by the possibility of having options before the
output file, which apply in general, and specifying more than one
inputfile, each with its own set of input specific options and guards.</p>
<p>It extracts data from the various <i class="arg">input</i> files, according to the







|







176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
be the path to a file or directory, or <b class="const">-</b>.
The last value causes the application to write the generated
documented to <b class="const">stdout</b>.</p>
<p>If the <i class="arg">output</i> does not exist then [file dirname $output]
has to exist and must be a writable directory.</p></dd>
<dt>path <i class="arg">inputfile</i> (in)</dt>
<dd><p>This argument specifies the path to the file to process. It has to
exist, must be readable, and written in <i class="term"><a href="../../../index.html#key432">docstrip</a></i> format.</p></dd>
</dl></dd>
<dt><a name="2"><b class="cmd">tcldocstrip</b> <span class="opt">?options?</span> <i class="arg">output</i> (<span class="opt">?options?</span> <i class="arg">input</i> <i class="arg">guards</i>)...</a></dt>
<dd><p>This is the form for use case [2]. It differs from the form for
use case [1] by the possibility of having options before the
output file, which apply in general, and specifying more than one
inputfile, each with its own set of input specific options and guards.</p>
<p>It extracts data from the various <i class="arg">input</i> files, according to the
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../modules/docstrip/docstrip.html">docstrip</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../index.html#key434">.dtx</a>, <a href="../../../index.html#key433">LaTeX</a>, <a href="../../../index.html#key20">conversion</a>, <a href="../../../index.html#key430">docstrip</a>, <a href="../../../index.html#key185">documentation</a>, <a href="../../../index.html#key432">literate programming</a>, <a href="../../../index.html#key16">markup</a>, <a href="../../../index.html#key431">source</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../modules/docstrip/docstrip.html">docstrip</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../index.html#key436">.dtx</a>, <a href="../../../index.html#key435">LaTeX</a>, <a href="../../../index.html#key20">conversion</a>, <a href="../../../index.html#key432">docstrip</a>, <a href="../../../index.html#key185">documentation</a>, <a href="../../../index.html#key434">literate programming</a>, <a href="../../../index.html#key16">markup</a>, <a href="../../../index.html#key433">source</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/aes/aes.html.

252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../blowfish/blowfish.html">blowfish(n)</a>, <a href="../des/des.html">des(n)</a>, <a href="../md5/md5.html">md5(n)</a>, <a href="../sha1/sha1.html">sha1(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key787">aes</a>, <a href="../../../../index.html#key293">block cipher</a>, <a href="../../../../index.html#key124">data integrity</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005, Pat Thoyts &lt;[email protected]&gt;<br>
Copyright &copy; 2012-2014, Andreas Kupries &lt;[email protected]&gt;</p>







|







252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../blowfish/blowfish.html">blowfish(n)</a>, <a href="../des/des.html">des(n)</a>, <a href="../md5/md5.html">md5(n)</a>, <a href="../sha1/sha1.html">sha1(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key791">aes</a>, <a href="../../../../index.html#key295">block cipher</a>, <a href="../../../../index.html#key124">data integrity</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005, Pat Thoyts &lt;[email protected]&gt;<br>
Copyright &copy; 2012-2014, Andreas Kupries &lt;[email protected]&gt;</p>

Changes to embedded/www/tcllib/files/modules/amazon-s3/S3.html.

104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">S3(n) 1.0.2 tcllib &quot;Amazon S3 Web Service Utilities&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>S3 - Amazon S3 Web Service Interface</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>







|







104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">S3(n) 1.0.3 tcllib &quot;Amazon S3 Web Service Utilities&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>S3 - Amazon S3 Web Service Interface</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">S3 <span class="opt">?1.0.2?</span></b></li>
<li>package require <b class="pkgname">sha1 1.0</b></li>
<li>package require <b class="pkgname">md5 2.0</b></li>
<li>package require <b class="pkgname">base64 2.3</b></li>
<li>package require <b class="pkgname">xsxp 1.0</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">S3::Configure</b> <span class="opt">?<b class="option">-reset</b> <i class="arg">boolean</i>?</span> <span class="opt">?<b class="option">-retries</b> <i class="arg">integer</i>?</span> <span class="opt">?<b class="option">-accesskeyid</b> <i class="arg">idstring</i>?</span> <span class="opt">?<b class="option">-secretaccesskey</b> <i class="arg">idstring</i>?</span> <span class="opt">?<b class="option">-service-access-point</b> <i class="arg">FQDN</i>?</span> <span class="opt">?<b class="option">-use-tls</b> <i class="arg">boolean</i>?</span> <span class="opt">?<b class="option">-default-compare</b> <i class="arg">always|never|exists|missing|newer|date|checksum|different</i>?</span> <span class="opt">?<b class="option">-default-separator</b> <i class="arg">string</i>?</span> <span class="opt">?<b class="option">-default-acl</b> <i class="arg">private|public-read|public-read-write|authenticated-read|keep|calc</i>?</span> <span class="opt">?<b class="option">-default-bucket</b> <i class="arg">bucketname</i>?</span></a></li>







|







131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">S3 <span class="opt">?1.0.3?</span></b></li>
<li>package require <b class="pkgname">sha1 1.0</b></li>
<li>package require <b class="pkgname">md5 2.0</b></li>
<li>package require <b class="pkgname">base64 2.3</b></li>
<li>package require <b class="pkgname">xsxp 1.0</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">S3::Configure</b> <span class="opt">?<b class="option">-reset</b> <i class="arg">boolean</i>?</span> <span class="opt">?<b class="option">-retries</b> <i class="arg">integer</i>?</span> <span class="opt">?<b class="option">-accesskeyid</b> <i class="arg">idstring</i>?</span> <span class="opt">?<b class="option">-secretaccesskey</b> <i class="arg">idstring</i>?</span> <span class="opt">?<b class="option">-service-access-point</b> <i class="arg">FQDN</i>?</span> <span class="opt">?<b class="option">-use-tls</b> <i class="arg">boolean</i>?</span> <span class="opt">?<b class="option">-default-compare</b> <i class="arg">always|never|exists|missing|newer|date|checksum|different</i>?</span> <span class="opt">?<b class="option">-default-separator</b> <i class="arg">string</i>?</span> <span class="opt">?<b class="option">-default-acl</b> <i class="arg">private|public-read|public-read-write|authenticated-read|keep|calc</i>?</span> <span class="opt">?<b class="option">-default-bucket</b> <i class="arg">bucketname</i>?</span></a></li>
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
with a number of scripts to run, and the OddJob program can
be invoked on multiple machines to run scripts on all the machines,
each moving on to the next unstarted task as it finishes each.
This is still being designed, and it is intended primarily
to be run on Amazon's Elastic Compute Cloud.</p>
</div>
<div id="section9" class="section"><h2><a name="section9">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section10" class="section"><h2><a name="section10">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>amazon-s3</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key517">amazon</a>, <a href="../../../../index.html#key518">cloud</a>, <a href="../../../../index.html#key516">s3</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>2006,2008 Darren New. All Rights Reserved. See LICENSE.TXT for terms.</p>
</div>
</div></body></html>







|


|







|
|

















|








1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
with a number of scripts to run, and the OddJob program can
be invoked on multiple machines to run scripts on all the machines,
each moving on to the next unstarted task as it finishes each.
This is still being designed, and it is intended primarily
to be run on Amazon's Elastic Compute Cloud.</p>
</div>
<div id="section9" class="section"><h2><a name="section9">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section10" class="section"><h2><a name="section10">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>amazon-s3</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key519">amazon</a>, <a href="../../../../index.html#key520">cloud</a>, <a href="../../../../index.html#key518">s3</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>2006,2008 Darren New. All Rights Reserved. See LICENSE.TXT for terms.</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/amazon-s3/xsxp.html.

232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
bugs and other problems.
Please report such in the category <em>amazon-s3</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key746">dom</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key747">xml</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>2006 Darren New. All Rights Reserved.</p>
</div>







|







232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
bugs and other problems.
Please report such in the category <em>amazon-s3</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key750">dom</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key751">xml</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>2006 Darren New. All Rights Reserved.</p>
</div>

Changes to embedded/www/tcllib/files/modules/asn/asn.html.

490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
bugs and other problems.
Please report such in the category <em>asn</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key422">asn</a>, <a href="../../../../index.html#key420">ber</a>, <a href="../../../../index.html#key421">cer</a>, <a href="../../../../index.html#key423">der</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key133">protocol</a>, <a href="../../../../index.html#key418">x.208</a>, <a href="../../../../index.html#key419">x.209</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Andreas Kupries &lt;[email protected]&gt;<br>
Copyright &copy; 2004 Jochen Loewer &lt;[email protected]&gt;<br>







|







490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
bugs and other problems.
Please report such in the category <em>asn</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key424">asn</a>, <a href="../../../../index.html#key422">ber</a>, <a href="../../../../index.html#key423">cer</a>, <a href="../../../../index.html#key425">der</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key133">protocol</a>, <a href="../../../../index.html#key420">x.208</a>, <a href="../../../../index.html#key421">x.209</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Andreas Kupries &lt;[email protected]&gt;<br>
Copyright &copy; 2004 Jochen Loewer &lt;[email protected]&gt;<br>

Changes to embedded/www/tcllib/files/modules/base32/base32.html.

188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
bugs and other problems.
Please report such in the category <em>base32</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key295">base32</a>, <a href="../../../../index.html#key337">rfc3548</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Public domain</p>
</div>







|







188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
bugs and other problems.
Please report such in the category <em>base32</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key297">base32</a>, <a href="../../../../index.html#key339">rfc3548</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Public domain</p>
</div>

Changes to embedded/www/tcllib/files/modules/base32/base32core.html.

178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
bugs and other problems.
Please report such in the category <em>base32</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key295">base32</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Public domain</p>
</div>







|







178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
bugs and other problems.
Please report such in the category <em>base32</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key297">base32</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Public domain</p>
</div>

Changes to embedded/www/tcllib/files/modules/base32/base32hex.html.

190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
bugs and other problems.
Please report such in the category <em>base32</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key295">base32</a>, <a href="../../../../index.html#key336">hex</a>, <a href="../../../../index.html#key337">rfc3548</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Public domain</p>
</div>







|







190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
bugs and other problems.
Please report such in the category <em>base32</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key297">base32</a>, <a href="../../../../index.html#key338">hex</a>, <a href="../../../../index.html#key339">rfc3548</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Public domain</p>
</div>

Changes to embedded/www/tcllib/files/modules/base64/ascii85.html.

186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
bugs and other problems.
Please report such in the category <em>base64</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key711">ascii85</a>, <a href="../../../../index.html#key252">encoding</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2010, Emiliano Gavil&aacute;n</p>
</div>







|







186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
bugs and other problems.
Please report such in the category <em>base64</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key715">ascii85</a>, <a href="../../../../index.html#key252">encoding</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2010, Emiliano Gavil&aacute;n</p>
</div>

Changes to embedded/www/tcllib/files/modules/base64/base64.html.

179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
bugs and other problems.
Please report such in the category <em>base64</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key581">base64</a>, <a href="../../../../index.html#key252">encoding</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2000, Eric Melski<br>
Copyright &copy; 2001, Miguel Sofer</p>







|







179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
bugs and other problems.
Please report such in the category <em>base64</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key584">base64</a>, <a href="../../../../index.html#key252">encoding</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2000, Eric Melski<br>
Copyright &copy; 2001, Miguel Sofer</p>

Changes to embedded/www/tcllib/files/modules/base64/yencode.html.

139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a Tcl-only implementation of the yEnc file
encoding. This is a recently introduced method of encoding binary
files for transmission through Usenet. This encoding packs binary data
into a format that requires an 8-bit clean transmission layer but that
escapes characters special to the <i class="term"><a href="../../../../index.html#key645">NNTP</a></i> posting protocols. See
<a href="http://www.yenc.org/">http://www.yenc.org/</a> for details concerning the algorithm.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::yencode::encode</b> <i class="arg">string</i></a></dt>
<dd><p>returns the yEnc encoded data.</p></dd>
<dt><a name="2"><b class="cmd">::yencode::decode</b> <i class="arg">string</i></a></dt>
<dd><p>Decodes the given yEnc encoded data.</p></dd>
<dt><a name="3"><b class="cmd">::yencode::yencode</b> <span class="opt">?<b class="option">-name</b> <i class="arg">string</i>?</span> <span class="opt">?<b class="option">-line</b> <i class="arg">integer</i>?</span> <span class="opt">?<b class="option">-crc32</b> <i class="arg">boolean</i>?</span> (<b class="option">-file</b> <i class="arg">filename</i> | <span class="opt">?<b class="option">--</b>?</span> <i class="arg">string</i>)</a></dt>







|







139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a Tcl-only implementation of the yEnc file
encoding. This is a recently introduced method of encoding binary
files for transmission through Usenet. This encoding packs binary data
into a format that requires an 8-bit clean transmission layer but that
escapes characters special to the <i class="term"><a href="../../../../index.html#key649">NNTP</a></i> posting protocols. See
<a href="http://www.yenc.org/">http://www.yenc.org/</a> for details concerning the algorithm.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::yencode::encode</b> <i class="arg">string</i></a></dt>
<dd><p>returns the yEnc encoded data.</p></dd>
<dt><a name="2"><b class="cmd">::yencode::decode</b> <i class="arg">string</i></a></dt>
<dd><p>Decodes the given yEnc encoded data.</p></dd>
<dt><a name="3"><b class="cmd">::yencode::yencode</b> <span class="opt">?<b class="option">-name</b> <i class="arg">string</i>?</span> <span class="opt">?<b class="option">-line</b> <i class="arg">integer</i>?</span> <span class="opt">?<b class="option">-crc32</b> <i class="arg">boolean</i>?</span> (<b class="option">-file</b> <i class="arg">filename</i> | <span class="opt">?<b class="option">--</b>?</span> <i class="arg">string</i>)</a></dt>
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
bugs and other problems.
Please report such in the category <em>base64</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key252">encoding</a>, <a href="../../../../index.html#key700">yEnc</a>, <a href="../../../../index.html#key698">ydecode</a>, <a href="../../../../index.html#key699">yencode</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002, Pat Thoyts</p>
</div>
</div></body></html>







|








195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
bugs and other problems.
Please report such in the category <em>base64</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key252">encoding</a>, <a href="../../../../index.html#key704">yEnc</a>, <a href="../../../../index.html#key702">ydecode</a>, <a href="../../../../index.html#key703">yencode</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002, Pat Thoyts</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/bee/bee.html.

366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
bugs and other problems.
Please report such in the category <em>bee</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key385">BitTorrent</a>, <a href="../../../../index.html#key383">bee</a>, <a href="../../../../index.html#key384">bittorrent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key386">torrent</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
bugs and other problems.
Please report such in the category <em>bee</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key387">BitTorrent</a>, <a href="../../../../index.html#key385">bee</a>, <a href="../../../../index.html#key386">bittorrent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key388">torrent</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/bench/bench_lang_intro.html.

241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="bench_intro.html">bench_intro</a>, <a href="bench_lang_spec.html">bench_lang_spec</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key98">bench language</a>, <a href="../../../../index.html#key101">benchmark</a>, <a href="../../../../index.html#key365">examples</a>, <a href="../../../../index.html#key100">performance</a>, <a href="../../../../index.html#key99">testing</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Benchmark tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="bench_intro.html">bench_intro</a>, <a href="bench_lang_spec.html">bench_lang_spec</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key98">bench language</a>, <a href="../../../../index.html#key101">benchmark</a>, <a href="../../../../index.html#key367">examples</a>, <a href="../../../../index.html#key100">performance</a>, <a href="../../../../index.html#key99">testing</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Benchmark tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/bench/bench_lang_spec.html.

221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="bench_intro.html">bench_intro</a>, <a href="bench_lang_intro.html">bench_lang_intro</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key98">bench language</a>, <a href="../../../../index.html#key101">benchmark</a>, <a href="../../../../index.html#key100">performance</a>, <a href="../../../../index.html#key653">specification</a>, <a href="../../../../index.html#key99">testing</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Benchmark tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="bench_intro.html">bench_intro</a>, <a href="bench_lang_intro.html">bench_lang_intro</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key98">bench language</a>, <a href="../../../../index.html#key101">benchmark</a>, <a href="../../../../index.html#key100">performance</a>, <a href="../../../../index.html#key657">specification</a>, <a href="../../../../index.html#key99">testing</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Benchmark tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/bench/bench_read.html.

172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="bench.html">bench</a>, <a href="bench_wcsv.html">bench::out::csv</a>, <a href="bench_wtext.html">bench::out::text</a>, <a href="bench_intro.html">bench_intro</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key101">benchmark</a>, <a href="../../../../index.html#key49">csv</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key499">human readable</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key100">performance</a>, <a href="../../../../index.html#key519">reading</a>, <a href="../../../../index.html#key99">testing</a>, <a href="../../../../index.html#key246">text</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Benchmark tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="bench.html">bench</a>, <a href="bench_wcsv.html">bench::out::csv</a>, <a href="bench_wtext.html">bench::out::text</a>, <a href="bench_intro.html">bench_intro</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key101">benchmark</a>, <a href="../../../../index.html#key49">csv</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key501">human readable</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key100">performance</a>, <a href="../../../../index.html#key522">reading</a>, <a href="../../../../index.html#key99">testing</a>, <a href="../../../../index.html#key246">text</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Benchmark tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/bench/bench_wtext.html.

164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="bench.html">bench</a>, <a href="bench_wcsv.html">bench::out::csv</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key101">benchmark</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key499">human readable</a>, <a href="../../../../index.html#key100">performance</a>, <a href="../../../../index.html#key99">testing</a>, <a href="../../../../index.html#key246">text</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Benchmark tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="bench.html">bench</a>, <a href="bench_wcsv.html">bench::out::csv</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key101">benchmark</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key501">human readable</a>, <a href="../../../../index.html#key100">performance</a>, <a href="../../../../index.html#key99">testing</a>, <a href="../../../../index.html#key246">text</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Benchmark tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/bibtex/bibtex.html.

104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">bibtex(n) 0.5 tcllib &quot;bibtex&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>bibtex - Parse bibtex files</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>
<li class="section"><a href="#section1">Description</a></li>
<li class="section"><a href="#section2">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#category">Category</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">bibtex <span class="opt">?0.5?</span></b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::bibtex::parse</b> <span class="opt">?<i class="arg">options</i>?</span> <span class="opt">?<i class="arg">text</i>?</span></a></li>
<li><a href="#2"><b class="cmd">::bibtex::parse</b> <i class="arg">text</i></a></li>
<li><a href="#3"><b class="cmd">::bibtex::parse</b> <span class="opt">?<b class="option">-command</b> <i class="arg">cmd</i>?</span> <b class="option">-channel</b> <i class="arg">chan</i></a></li>
<li><a href="#4"><b class="cmd">::bibtex::parse</b> <span class="opt">?<b class="option">-recordcommand</b>   <i class="arg">recordcmd</i>?</span> <span class="opt">?<b class="option">-preamblecommand</b> <i class="arg">preamblecmd</i>?</span> <span class="opt">?<b class="option">-stringcommand</b>   <i class="arg">stringcmd</i>?</span> <span class="opt">?<b class="option">-commentcommand</b>  <i class="arg">commentcmd</i>?</span> <span class="opt">?<b class="option">-progresscommand</b> <i class="arg">progresscmd</i>?</span> (<i class="arg">text</i> | <b class="option">-channel</b> <i class="arg">chan</i>)</a></li>
<li><a href="#5"><b class="cmd">::bibtex::wait</b> <i class="arg">token</i></a></li>
<li><a href="#6"><b class="cmd">::bibtex::destroy</b> <i class="arg">token</i></a></li>
<li><a href="#7"><b class="cmd">::bibtex::addStrings</b> <i class="arg">token</i> <i class="arg">stringdict</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>







|


















|





|







104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">bibtex(n) 0.6 tcllib &quot;bibtex&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>bibtex - Parse bibtex files</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>
<li class="section"><a href="#section1">Description</a></li>
<li class="section"><a href="#section2">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#category">Category</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">bibtex <span class="opt">?0.6?</span></b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::bibtex::parse</b> <span class="opt">?<i class="arg">options</i>?</span> <span class="opt">?<i class="arg">text</i>?</span></a></li>
<li><a href="#2"><b class="cmd">::bibtex::parse</b> <i class="arg">text</i></a></li>
<li><a href="#3"><b class="cmd">::bibtex::parse</b> <span class="opt">?<b class="option">-command</b> <i class="arg">cmd</i>?</span> <b class="option">-channel</b> <i class="arg">chan</i></a></li>
<li><a href="#4"><b class="cmd">::bibtex::parse</b> <span class="opt">?<b class="option">-recordcommand</b>   <i class="arg">recordcmd</i>?</span> <span class="opt">?<b class="option">-preamblecommand</b> <i class="arg">preamblecmd</i>?</span> <span class="opt">?<b class="option">-stringcommand</b>   <i class="arg">stringcmd</i>?</span> <span class="opt">?<b class="option">-commentcommand</b>  <i class="arg">commentcmd</i>?</span> <span class="opt">?<b class="option">-progresscommand</b> <i class="arg">progresscmd</i>?</span> <span class="opt">?<b class="option">-casesensitivestrings</b> <i class="arg">bool</i>?</span> (<i class="arg">text</i> | <b class="option">-channel</b> <i class="arg">chan</i>)</a></li>
<li><a href="#5"><b class="cmd">::bibtex::wait</b> <i class="arg">token</i></a></li>
<li><a href="#6"><b class="cmd">::bibtex::destroy</b> <i class="arg">token</i></a></li>
<li><a href="#7"><b class="cmd">::bibtex::addStrings</b> <i class="arg">token</i> <i class="arg">stringdict</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195




196
197
198
199
200
201
202
<dt><b class="cmd">cmd</b> <i class="arg">token</i> <i class="arg">parseresult</i></dt>
<dd><p>The parse result will have the structure explained above, for the
simpler forms of the parser.</p></dd>
</dl>
<p><em>Note</em> that the parser will <em>not</em> close the channel after it
has exhausted it. This is still the responsibility of the user of the
parser.</p></dd>
<dt><a name="4"><b class="cmd">::bibtex::parse</b> <span class="opt">?<b class="option">-recordcommand</b>   <i class="arg">recordcmd</i>?</span> <span class="opt">?<b class="option">-preamblecommand</b> <i class="arg">preamblecmd</i>?</span> <span class="opt">?<b class="option">-stringcommand</b>   <i class="arg">stringcmd</i>?</span> <span class="opt">?<b class="option">-commentcommand</b>  <i class="arg">commentcmd</i>?</span> <span class="opt">?<b class="option">-progresscommand</b> <i class="arg">progresscmd</i>?</span> (<i class="arg">text</i> | <b class="option">-channel</b> <i class="arg">chan</i>)</a></dt>
<dd><p>This is the most low-level form for the parser. The returned result
will be a handle for the parser. During processing it will invoke the
invoke the specified callback commands for each type of data found in
the bibliography.</p>
<p>The processing will be incremental and happen in the background if,
and only if a Tcl channel <i class="arg">chan</i> is specified. For a <i class="arg">text</i>
the processing will happen immediately and all callbacks will be
invoked before the command itself returns.</p>
<p>The callbacks, i.e. <i class="arg">*cmd</i>, are all command prefixes and will be
invoked with additional arguments appended to them. The meaning of the
arguments depends on the callback and is explained below. The first
argument will however always be the handle of the parser invoking the
callback.</p>
<dl class="definitions">




<dt><b class="cmd">recordcmd</b> <i class="arg">token</i> <i class="arg">type</i> <i class="arg">key</i> <i class="arg">recorddict</i></dt>
<dd><p>This callback is invoked whenever the parser detects a bibliography
record in the input. Its arguments are the record type, the
bibliography key for the record, and a dictionary containing the keys
and values describing the record. Any string macros known to the
parser have already been expanded.</p></dd>
<dt><b class="cmd">preamblecmd</b> <i class="arg">token</i> <i class="arg">preambletext</i></dt>







|














>
>
>
>







174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<dt><b class="cmd">cmd</b> <i class="arg">token</i> <i class="arg">parseresult</i></dt>
<dd><p>The parse result will have the structure explained above, for the
simpler forms of the parser.</p></dd>
</dl>
<p><em>Note</em> that the parser will <em>not</em> close the channel after it
has exhausted it. This is still the responsibility of the user of the
parser.</p></dd>
<dt><a name="4"><b class="cmd">::bibtex::parse</b> <span class="opt">?<b class="option">-recordcommand</b>   <i class="arg">recordcmd</i>?</span> <span class="opt">?<b class="option">-preamblecommand</b> <i class="arg">preamblecmd</i>?</span> <span class="opt">?<b class="option">-stringcommand</b>   <i class="arg">stringcmd</i>?</span> <span class="opt">?<b class="option">-commentcommand</b>  <i class="arg">commentcmd</i>?</span> <span class="opt">?<b class="option">-progresscommand</b> <i class="arg">progresscmd</i>?</span> <span class="opt">?<b class="option">-casesensitivestrings</b> <i class="arg">bool</i>?</span> (<i class="arg">text</i> | <b class="option">-channel</b> <i class="arg">chan</i>)</a></dt>
<dd><p>This is the most low-level form for the parser. The returned result
will be a handle for the parser. During processing it will invoke the
invoke the specified callback commands for each type of data found in
the bibliography.</p>
<p>The processing will be incremental and happen in the background if,
and only if a Tcl channel <i class="arg">chan</i> is specified. For a <i class="arg">text</i>
the processing will happen immediately and all callbacks will be
invoked before the command itself returns.</p>
<p>The callbacks, i.e. <i class="arg">*cmd</i>, are all command prefixes and will be
invoked with additional arguments appended to them. The meaning of the
arguments depends on the callback and is explained below. The first
argument will however always be the handle of the parser invoking the
callback.</p>
<dl class="definitions">
<dt><b class="option">-casesensitivestrings</b></dt>
<dd><p>This option takes a boolean value. When set string macro processing
becomes case-sensitive. The default is case-insensitive string macro
processing.</p></dd>
<dt><b class="cmd">recordcmd</b> <i class="arg">token</i> <i class="arg">type</i> <i class="arg">key</i> <i class="arg">recorddict</i></dt>
<dd><p>This callback is invoked whenever the parser detects a bibliography
record in the input. Its arguments are the record type, the
bibliography key for the record, and a dictionary containing the keys
and values describing the record. Any string macros known to the
parser have already been expanded.</p></dd>
<dt><b class="cmd">preamblecmd</b> <i class="arg">token</i> <i class="arg">preambletext</i></dt>
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
bugs and other problems.
Please report such in the category <em>bibtex</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key416">bibliography</a>, <a href="../../../../index.html#key417">bibtex</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key190">text processing</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 for documentation, Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
bugs and other problems.
Please report such in the category <em>bibtex</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key418">bibliography</a>, <a href="../../../../index.html#key419">bibtex</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key190">text processing</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 for documentation, Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/blowfish/blowfish.html.

252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>3des, <a href="../des/des.html">des</a>, <a href="../rc4/rc4.html">rc4</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key293">block cipher</a>, <a href="../../../../index.html#key792">blowfish</a>, <a href="../../../../index.html#key791">cryptography</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003, Pat Thoyts &lt;[email protected]&gt;</p>
</div>







|







252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>3des, <a href="../des/des.html">des</a>, <a href="../rc4/rc4.html">rc4</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key295">block cipher</a>, <a href="../../../../index.html#key796">blowfish</a>, <a href="../../../../index.html#key795">cryptography</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003, Pat Thoyts &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/cache/async.html.

146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
easy to use caches as a facade for any data provider.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The package exports a class, <b class="class">cache::async</b>, as specified
below.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::cache::async</b> <i class="arg">objectName</i> <i class="arg">commandprefix</i> <span class="opt">?<i class="arg">options</i>...?</span></a></dt>
<dd><p>The command creates a new <i class="term"><a href="../../../../index.html#key379">cache</a></i> object with an associated
global Tcl command whose name is <i class="arg">objectName</i>.  This command may
be used to invoke various operations on the object.</p>
<p>The <i class="arg">commandprefix</i> is the action to perform when an user asks for
data in the cache and the cache doesn't yet know about the key. When
run the commandprefix is given three additional arguments, the string
<b class="const">get</b>, the key requested, and the cache object itself, in the
form of its object command, in this order. The execution of the action







|







146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
easy to use caches as a facade for any data provider.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The package exports a class, <b class="class">cache::async</b>, as specified
below.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::cache::async</b> <i class="arg">objectName</i> <i class="arg">commandprefix</i> <span class="opt">?<i class="arg">options</i>...?</span></a></dt>
<dd><p>The command creates a new <i class="term"><a href="../../../../index.html#key381">cache</a></i> object with an associated
global Tcl command whose name is <i class="arg">objectName</i>.  This command may
be used to invoke various operations on the object.</p>
<p>The <i class="arg">commandprefix</i> is the action to perform when an user asks for
data in the cache and the cache doesn't yet know about the key. When
run the commandprefix is given three additional arguments, the string
<b class="const">get</b>, the key requested, and the cache object itself, in the
form of its object command, in this order. The execution of the action
229
230
231
232
233
234
235
236
237
238
239
240
241
bugs and other problems.
Please report such in the category <em>cache</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key637">asynchronous</a>, <a href="../../../../index.html#key379">cache</a>, <a href="../../../../index.html#key534">callback</a>, <a href="../../../../index.html#key638">synchronous</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|





229
230
231
232
233
234
235
236
237
238
239
240
241
bugs and other problems.
Please report such in the category <em>cache</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key641">asynchronous</a>, <a href="../../../../index.html#key381">cache</a>, <a href="../../../../index.html#key537">callback</a>, <a href="../../../../index.html#key642">synchronous</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/cmdline/cmdline.html.

280
281
282
283
284
285
286
287
288
289
290
291
292
bugs and other problems.
Please report such in the category <em>cmdline</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key260">argument processing</a>, <a href="../../../../index.html#key259">argv</a>, <a href="../../../../index.html#key258">argv0</a>, <a href="../../../../index.html#key261">cmdline processing</a>, <a href="../../../../index.html#key257">command line processing</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
</div></body></html>







|





280
281
282
283
284
285
286
287
288
289
290
291
292
bugs and other problems.
Please report such in the category <em>cmdline</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key262">argument processing</a>, <a href="../../../../index.html#key261">argv</a>, <a href="../../../../index.html#key260">argv0</a>, <a href="../../../../index.html#key263">cmdline processing</a>, <a href="../../../../index.html#key259">command line processing</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/comm/comm.html.

179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">comm</b> command provides an inter-interpreter remote
execution facility much like Tk's <b class="cmd">send(n)</b>, except that it uses
sockets rather than the X server for the communication path.  As a
result, <b class="package">comm</b> works with multiple interpreters, works on
Windows and Macintosh systems, and provides control over the remote
execution path.</p>
<p>These commands work just like <b class="cmd"><a href="../../../../index.html#key349">send</a></b> and <b class="cmd">winfo interps</b> :</p>
<pre class="example">
    ::comm::comm send ?-async? id cmd ?arg arg ...?
    ::comm::comm interps
</pre>
<p>This is all that is really needed to know in order to use
<b class="package">comm</b></p>
<div id="subsection1" class="subsection"><h3><a name="subsection1">Commands</a></h3>







|







179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">comm</b> command provides an inter-interpreter remote
execution facility much like Tk's <b class="cmd">send(n)</b>, except that it uses
sockets rather than the X server for the communication path.  As a
result, <b class="package">comm</b> works with multiple interpreters, works on
Windows and Macintosh systems, and provides control over the remote
execution path.</p>
<p>These commands work just like <b class="cmd"><a href="../../../../index.html#key351">send</a></b> and <b class="cmd">winfo interps</b> :</p>
<pre class="example">
    ::comm::comm send ?-async? id cmd ?arg arg ...?
    ::comm::comm interps
</pre>
<p>This is all that is really needed to know in order to use
<b class="package">comm</b></p>
<div id="subsection1" class="subsection"><h3><a name="subsection1">Commands</a></h3>
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
given <i class="arg">id</i>, this forces a connection to a remote <em>id</em> without
sending a command.  After this, the remote <em>id</em> will appear in
<b class="cmd">::comm::comm interps</b>.</p></dd>
</dl>
</div>
<div id="subsection2" class="subsection"><h3><a name="subsection2">Eval Semantics</a></h3>
<p>The evaluation semantics of <b class="cmd">::comm::comm send</b> are intended to
match Tk's <b class="cmd"><a href="../../../../index.html#key349">send</a></b> <em>exactly</em>. This means that <b class="package">comm</b>
evaluates arguments on the remote side.</p>
<p>If you find that <b class="cmd">::comm::comm send</b> doesn't work for a
particular command, try the same thing with Tk's send and see if the
result is different.  If there is a problem, please report it.  For
instance, there was had one report that this command produced an
error.  Note that the equivalent <b class="cmd"><a href="../../../../index.html#key349">send</a></b> command also produces the
same error.</p>
<pre class="example">
    % ::comm::comm send id llength {a b c}
    wrong # args: should be &quot;llength list&quot;
    % send name llength {a b c}
    wrong # args: should be &quot;llength list&quot;
</pre>
<p>The <b class="cmd">eval</b> hook (described below) can be used to change from
<b class="cmd"><a href="../../../../index.html#key349">send</a></b>'s double eval semantics to single eval semantics.</p>
</div>
<div id="subsection3" class="subsection"><h3><a name="subsection3">Multiple Channels</a></h3>
<p>More than one <b class="cmd">comm</b> channel (or <em>listener</em>) can be created
in each Tcl interpreter.  This allows flexibility to create full and
restricted channels.  For instance, <i class="term"><a href="../../../../index.html#key673">hook</a></i> scripts are specific
to the channel they are defined against.</p>
<dl class="definitions">
<dt><a name="5"><b class="cmd">::comm::comm new</b> <i class="arg">chan</i> <span class="opt">?<i class="arg">name value ...</i>?</span></a></dt>
<dd><p>This creates a new channel and Tcl command with the given channel
name.  This new command controls the new channel and takes all the
same arguments as <b class="cmd">::comm::comm</b>.  Any remaining arguments are
passed to the <b class="cmd">config</b> method.  The fully qualified channel







|





|








|




|







230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
given <i class="arg">id</i>, this forces a connection to a remote <em>id</em> without
sending a command.  After this, the remote <em>id</em> will appear in
<b class="cmd">::comm::comm interps</b>.</p></dd>
</dl>
</div>
<div id="subsection2" class="subsection"><h3><a name="subsection2">Eval Semantics</a></h3>
<p>The evaluation semantics of <b class="cmd">::comm::comm send</b> are intended to
match Tk's <b class="cmd"><a href="../../../../index.html#key351">send</a></b> <em>exactly</em>. This means that <b class="package">comm</b>
evaluates arguments on the remote side.</p>
<p>If you find that <b class="cmd">::comm::comm send</b> doesn't work for a
particular command, try the same thing with Tk's send and see if the
result is different.  If there is a problem, please report it.  For
instance, there was had one report that this command produced an
error.  Note that the equivalent <b class="cmd"><a href="../../../../index.html#key351">send</a></b> command also produces the
same error.</p>
<pre class="example">
    % ::comm::comm send id llength {a b c}
    wrong # args: should be &quot;llength list&quot;
    % send name llength {a b c}
    wrong # args: should be &quot;llength list&quot;
</pre>
<p>The <b class="cmd">eval</b> hook (described below) can be used to change from
<b class="cmd"><a href="../../../../index.html#key351">send</a></b>'s double eval semantics to single eval semantics.</p>
</div>
<div id="subsection3" class="subsection"><h3><a name="subsection3">Multiple Channels</a></h3>
<p>More than one <b class="cmd">comm</b> channel (or <em>listener</em>) can be created
in each Tcl interpreter.  This allows flexibility to create full and
restricted channels.  For instance, <i class="term"><a href="../../../../index.html#key677">hook</a></i> scripts are specific
to the channel they are defined against.</p>
<dl class="definitions">
<dt><a name="5"><b class="cmd">::comm::comm new</b> <i class="arg">chan</i> <span class="opt">?<i class="arg">name value ...</i>?</span></a></dt>
<dd><p>This creates a new channel and Tcl command with the given channel
name.  This new command controls the new channel and takes all the
same arguments as <b class="cmd">::comm::comm</b>.  Any remaining arguments are
passed to the <b class="cmd">config</b> method.  The fully qualified channel
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
This can be used to cleanup or restart an ancillary process, for
instance.  See the <i class="term">lost</i> callback below.</p>
</div>
<div id="subsection9" class="subsection"><h3><a name="subsection9">Callbacks</a></h3>
<p>This is a mechanism for setting hooks for particular events:</p>
<dl class="definitions">
<dt><a name="13"><b class="cmd">::comm::comm hook</b> <i class="arg">event</i> <span class="opt">?<b class="const">+</b>?</span> <span class="opt">?<i class="arg">script</i>?</span></a></dt>
<dd><p>This uses a syntax similar to Tk's <b class="cmd"><a href="../../../../index.html#key706">bind</a></b> command.  Prefixing
<i class="arg">script</i> with a <b class="const">+</b> causes the new script to be appended.
Without this, a new <i class="arg">script</i> replaces any existing script.  When
invoked without a script, no change is made.  In all cases, the new
hook script is returned by the command.</p>
<p>When an <i class="arg">event</i> occurs, the <i class="arg">script</i> associated with it is
evaluated with the listed variables in scope and available.  The
return code (<em>not</em> the return value) of the script is commonly







|







411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
This can be used to cleanup or restart an ancillary process, for
instance.  See the <i class="term">lost</i> callback below.</p>
</div>
<div id="subsection9" class="subsection"><h3><a name="subsection9">Callbacks</a></h3>
<p>This is a mechanism for setting hooks for particular events:</p>
<dl class="definitions">
<dt><a name="13"><b class="cmd">::comm::comm hook</b> <i class="arg">event</i> <span class="opt">?<b class="const">+</b>?</span> <span class="opt">?<i class="arg">script</i>?</span></a></dt>
<dd><p>This uses a syntax similar to Tk's <b class="cmd"><a href="../../../../index.html#key710">bind</a></b> command.  Prefixing
<i class="arg">script</i> with a <b class="const">+</b> causes the new script to be appended.
Without this, a new <i class="arg">script</i> replaces any existing script.  When
invoked without a script, no change is made.  In all cases, the new
hook script is returned by the command.</p>
<p>When an <i class="arg">event</i> occurs, the <i class="arg">script</i> associated with it is
evaluated with the listed variables in scope and available.  The
return code (<em>not</em> the return value) of the script is commonly
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
<dl class="definitions">
<dt><a name="14"><b class="cmd">::comm::comm remoteid</b></a></dt>
<dd><p>Returns the <i class="arg">id</i> of the sender of the last remote command
executed on this channel.  If used by a proc being invoked remotely,
it must be called before any events are processed.  Otherwise, another
command may get invoked and change the value.</p></dd>
<dt><a name="15"><b class="cmd">::comm::comm_send</b></a></dt>
<dd><p>Invoking this procedure will substitute the Tk <b class="cmd"><a href="../../../../index.html#key349">send</a></b> and
<b class="cmd">winfo interps</b> commands with these equivalents that use
<b class="cmd">::comm::comm</b>.</p>
<pre class="example">
    proc send {args} {
        eval ::comm::comm send $args
    }
    rename winfo tk_winfo







|







610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
<dl class="definitions">
<dt><a name="14"><b class="cmd">::comm::comm remoteid</b></a></dt>
<dd><p>Returns the <i class="arg">id</i> of the sender of the last remote command
executed on this channel.  If used by a proc being invoked remotely,
it must be called before any events are processed.  Otherwise, another
command may get invoked and change the value.</p></dd>
<dt><a name="15"><b class="cmd">::comm::comm_send</b></a></dt>
<dd><p>Invoking this procedure will substitute the Tk <b class="cmd"><a href="../../../../index.html#key351">send</a></b> and
<b class="cmd">winfo interps</b> commands with these equivalents that use
<b class="cmd">::comm::comm</b>.</p>
<pre class="example">
    proc send {args} {
        eval ::comm::comm send $args
    }
    rename winfo tk_winfo
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
</div>
<div id="subsection11" class="subsection"><h3><a name="subsection11">Security</a></h3>
<p>Starting with version 4.6 of the package an option <b class="option">-socketcmd</b>
is supported, allowing the user of a comm channel to specify which
command to use when opening a socket. Anything which is API-compatible
with the builtin <b class="cmd">::socket</b> (the default) can be used.</p>
<p>The envisioned main use is the specification of the <b class="cmd">tls::socket</b>
command, see package <b class="package"><a href="../../../../index.html#key327">tls</a></b>, to secure the communication.</p>
<pre class="example">
	# Load and initialize tls
	package require tls
	tls::init  -cafile /path/to/ca/cert -keyfile ...
	# Create secured comm channel
	::comm::comm new SECURE -socketcmd tls::socket -listen 1
	...
</pre>
<p>The sections <span class="sectref"><a href="#subsection6">Execution Environment</a></span> and <span class="sectref"><a href="#subsection9">Callbacks</a></span>
are also relevant to the security of the system, providing means to
restrict the execution to a specific environment, perform additional
authentication, and the like.</p>
</div>
<div id="subsection12" class="subsection"><h3><a name="subsection12">Blocking Semantics</a></h3>
<p>There is one outstanding difference between <b class="package">comm</b> and
<b class="cmd"><a href="../../../../index.html#key349">send</a></b>.  When blocking in a synchronous remote command, <b class="cmd"><a href="../../../../index.html#key349">send</a></b>
uses an internal C hook (Tk_RestrictEvents) to the event loop to look
ahead for send-related events and only process those without
processing any other events.  In contrast, <b class="package">comm</b> uses the
<b class="cmd"><a href="../../../../index.html#key413">vwait</a></b> command as a semaphore to indicate the return message has
arrived.  The difference is that a synchronous <b class="cmd"><a href="../../../../index.html#key349">send</a></b> will block
the application and prevent all events (including window related ones)
from being processed, while a synchronous <b class="cmd">::comm::comm send</b>
will block the application but still allow other events to get
processed.  In particular, <b class="cmd">after idle</b> handlers will fire
immediately when comm blocks.</p>
<p>What can be done about this?  First, note that this behavior will come
from any code using <b class="cmd"><a href="../../../../index.html#key413">vwait</a></b> to block and wait for an event to
occur.  At the cost of multiple channel support, <b class="package">comm</b> could
be changed to do blocking I/O on the socket, giving send-like blocking
semantics.  However, multiple channel support is a very useful feature
of comm that it is deemed too important to lose.  The remaining
approaches involve a new loadable module written in C (which is
somewhat against the philosophy of <b class="cmd">comm</b>) One way would be to
create a modified version of the <b class="cmd"><a href="../../../../index.html#key413">vwait</a></b> command that allow the
event flags passed to Tcl_DoOneEvent to be specified.  For <b class="cmd">comm</b>,
just the TCL_FILE_EVENTS would be processed.  Another way would be to
implement a mechanism like Tk_RestrictEvents, but apply it to the Tcl
event loop (since <b class="package">comm</b> doesn't require Tk).  One of these
approaches will be available in a future <b class="package">comm</b> release as an
optional component.</p>
</div>
<div id="subsection13" class="subsection"><h3><a name="subsection13">Asynchronous Result Generation</a></h3>
<p>By default the result returned by a remotely invoked command is the
result sent back to the invoker. This means that the result is
generated synchronously, and the server handling the call is blocked
for the duration of the command.</p>
<p>While this is tolerable as long as only short-running commands are
invoked on the server long-running commands, like database queries
make this a problem. One command can prevent the processing requests
of all other clients for an arbitrary period of time.</p>
<p>Before version 4.5 of comm the only solution was to rewrite the server
command to use the Tcl builtin command <b class="cmd"><a href="../../../../index.html#key413">vwait</a></b>, or one of its
relatives like <b class="cmd">tkwait</b>, to open a new event loop which processes
requests while the long-running operation is executed. This however
has its own perils, as this makes it possible to both overflow the Tcl
stack with a large number of event loop, and to have a newer requests
block the return of older ones, as the eventloop have to be unwound in
the order of their creation.</p>
<p>The proper solution is to have the invoked command indicate to







|















|



|
|






|






|

















|







634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
</div>
<div id="subsection11" class="subsection"><h3><a name="subsection11">Security</a></h3>
<p>Starting with version 4.6 of the package an option <b class="option">-socketcmd</b>
is supported, allowing the user of a comm channel to specify which
command to use when opening a socket. Anything which is API-compatible
with the builtin <b class="cmd">::socket</b> (the default) can be used.</p>
<p>The envisioned main use is the specification of the <b class="cmd">tls::socket</b>
command, see package <b class="package"><a href="../../../../index.html#key329">tls</a></b>, to secure the communication.</p>
<pre class="example">
	# Load and initialize tls
	package require tls
	tls::init  -cafile /path/to/ca/cert -keyfile ...
	# Create secured comm channel
	::comm::comm new SECURE -socketcmd tls::socket -listen 1
	...
</pre>
<p>The sections <span class="sectref"><a href="#subsection6">Execution Environment</a></span> and <span class="sectref"><a href="#subsection9">Callbacks</a></span>
are also relevant to the security of the system, providing means to
restrict the execution to a specific environment, perform additional
authentication, and the like.</p>
</div>
<div id="subsection12" class="subsection"><h3><a name="subsection12">Blocking Semantics</a></h3>
<p>There is one outstanding difference between <b class="package">comm</b> and
<b class="cmd"><a href="../../../../index.html#key351">send</a></b>.  When blocking in a synchronous remote command, <b class="cmd"><a href="../../../../index.html#key351">send</a></b>
uses an internal C hook (Tk_RestrictEvents) to the event loop to look
ahead for send-related events and only process those without
processing any other events.  In contrast, <b class="package">comm</b> uses the
<b class="cmd"><a href="../../../../index.html#key415">vwait</a></b> command as a semaphore to indicate the return message has
arrived.  The difference is that a synchronous <b class="cmd"><a href="../../../../index.html#key351">send</a></b> will block
the application and prevent all events (including window related ones)
from being processed, while a synchronous <b class="cmd">::comm::comm send</b>
will block the application but still allow other events to get
processed.  In particular, <b class="cmd">after idle</b> handlers will fire
immediately when comm blocks.</p>
<p>What can be done about this?  First, note that this behavior will come
from any code using <b class="cmd"><a href="../../../../index.html#key415">vwait</a></b> to block and wait for an event to
occur.  At the cost of multiple channel support, <b class="package">comm</b> could
be changed to do blocking I/O on the socket, giving send-like blocking
semantics.  However, multiple channel support is a very useful feature
of comm that it is deemed too important to lose.  The remaining
approaches involve a new loadable module written in C (which is
somewhat against the philosophy of <b class="cmd">comm</b>) One way would be to
create a modified version of the <b class="cmd"><a href="../../../../index.html#key415">vwait</a></b> command that allow the
event flags passed to Tcl_DoOneEvent to be specified.  For <b class="cmd">comm</b>,
just the TCL_FILE_EVENTS would be processed.  Another way would be to
implement a mechanism like Tk_RestrictEvents, but apply it to the Tcl
event loop (since <b class="package">comm</b> doesn't require Tk).  One of these
approaches will be available in a future <b class="package">comm</b> release as an
optional component.</p>
</div>
<div id="subsection13" class="subsection"><h3><a name="subsection13">Asynchronous Result Generation</a></h3>
<p>By default the result returned by a remotely invoked command is the
result sent back to the invoker. This means that the result is
generated synchronously, and the server handling the call is blocked
for the duration of the command.</p>
<p>While this is tolerable as long as only short-running commands are
invoked on the server long-running commands, like database queries
make this a problem. One command can prevent the processing requests
of all other clients for an arbitrary period of time.</p>
<p>Before version 4.5 of comm the only solution was to rewrite the server
command to use the Tcl builtin command <b class="cmd"><a href="../../../../index.html#key415">vwait</a></b>, or one of its
relatives like <b class="cmd">tkwait</b>, to open a new event loop which processes
requests while the long-running operation is executed. This however
has its own perils, as this makes it possible to both overflow the Tcl
stack with a large number of event loop, and to have a newer requests
block the return of older ones, as the eventloop have to be unwound in
the order of their creation.</p>
<p>The proper solution is to have the invoked command indicate to
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
crashing the receiver when it runs out of memory. With the change the
receiver is always able to process the first word when it becomes
well-formed, regardless of the structure of the remainder of the
buffer.</p></dd>
<dt>4.6</dt>
<dd><p>Added the option <b class="option">-socketcmd</b> enabling users to override how a
socket is opened. The envisioned main use is the specification of the
<b class="cmd">tls::socket</b> command, see package <b class="package"><a href="../../../../index.html#key327">tls</a></b>, to secure the
communication.</p></dd>
<dt>4.5.7</dt>
<dd><p>Changed handling of ports already in use to provide a proper error
message.</p></dd>
<dt>4.5.6</dt>
<dd><p>Bugfix in the replacement for <b class="cmd"><a href="../../../../index.html#key413">vwait</a></b>, made robust against of
variable names containing spaces.</p></dd>
<dt>4.5.5</dt>
<dd><p>Bugfix in the handling of hooks, typo in variable name.</p></dd>
<dt>4.5.4</dt>
<dd><p>Bugfix in the handling of the result received by the <b class="method">send</b>
method. Replaced an <em>after idle unset result</em> with an immediate
<b class="cmd">unset</b>, with the information saved to a local variable.</p>
<p>The <b class="cmd">after idle</b> can spill into a forked child process if there
is no event loop between its setup and the fork. This may bork the
child if the next event loop is the <b class="cmd"><a href="../../../../index.html#key413">vwait</a></b> of <b class="package">comm</b>'s
<b class="method">send</b> a few lines above the <b class="cmd">after idle</b>, and the child
used the same serial number for its next request. In that case the
parent's <b class="cmd">after idle unset</b> will delete the very array element
the child is waiting for, unlocking the <b class="cmd"><a href="../../../../index.html#key413">vwait</a></b>, causing it to
access a now missing array element, instead of the expected result.</p></dd>
<dt>4.5.3</dt>
<dd><p>Bugfixes in the wrappers for the builtin <b class="cmd"><a href="../../../../index.html#key412">update</a></b> and <b class="cmd"><a href="../../../../index.html#key413">vwait</a></b>
commands.</p></dd>
<dt>4.5.2</dt>
<dd><p>Bugfix in the wrapper for the builtin <b class="cmd"><a href="../../../../index.html#key412">update</a></b> command.</p></dd>
<dt>4.5.1</dt>
<dd><p>Bugfixes in the handling of -interp for regular scripts. The handling
of the buffer was wrong for scripts which are a single statement as
list. Fixed missing argument to new command <b class="cmd">commSendReply</b>,
introduced by version 4.5. Affected debugging.</p></dd>
<dt>4.5</dt>
<dd><p>New server-side feature. The command invoked on the server can now







|





|









|



|


|


|







791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
crashing the receiver when it runs out of memory. With the change the
receiver is always able to process the first word when it becomes
well-formed, regardless of the structure of the remainder of the
buffer.</p></dd>
<dt>4.6</dt>
<dd><p>Added the option <b class="option">-socketcmd</b> enabling users to override how a
socket is opened. The envisioned main use is the specification of the
<b class="cmd">tls::socket</b> command, see package <b class="package"><a href="../../../../index.html#key329">tls</a></b>, to secure the
communication.</p></dd>
<dt>4.5.7</dt>
<dd><p>Changed handling of ports already in use to provide a proper error
message.</p></dd>
<dt>4.5.6</dt>
<dd><p>Bugfix in the replacement for <b class="cmd"><a href="../../../../index.html#key415">vwait</a></b>, made robust against of
variable names containing spaces.</p></dd>
<dt>4.5.5</dt>
<dd><p>Bugfix in the handling of hooks, typo in variable name.</p></dd>
<dt>4.5.4</dt>
<dd><p>Bugfix in the handling of the result received by the <b class="method">send</b>
method. Replaced an <em>after idle unset result</em> with an immediate
<b class="cmd">unset</b>, with the information saved to a local variable.</p>
<p>The <b class="cmd">after idle</b> can spill into a forked child process if there
is no event loop between its setup and the fork. This may bork the
child if the next event loop is the <b class="cmd"><a href="../../../../index.html#key415">vwait</a></b> of <b class="package">comm</b>'s
<b class="method">send</b> a few lines above the <b class="cmd">after idle</b>, and the child
used the same serial number for its next request. In that case the
parent's <b class="cmd">after idle unset</b> will delete the very array element
the child is waiting for, unlocking the <b class="cmd"><a href="../../../../index.html#key415">vwait</a></b>, causing it to
access a now missing array element, instead of the expected result.</p></dd>
<dt>4.5.3</dt>
<dd><p>Bugfixes in the wrappers for the builtin <b class="cmd"><a href="../../../../index.html#key414">update</a></b> and <b class="cmd"><a href="../../../../index.html#key415">vwait</a></b>
commands.</p></dd>
<dt>4.5.2</dt>
<dd><p>Bugfix in the wrapper for the builtin <b class="cmd"><a href="../../../../index.html#key414">update</a></b> command.</p></dd>
<dt>4.5.1</dt>
<dd><p>Bugfixes in the handling of -interp for regular scripts. The handling
of the buffer was wrong for scripts which are a single statement as
list. Fixed missing argument to new command <b class="cmd">commSendReply</b>,
introduced by version 4.5. Affected debugging.</p></dd>
<dt>4.5</dt>
<dd><p>New server-side feature. The command invoked on the server can now
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
<dt>3.7</dt>
<dd><p>Moved into tcllib and placed in a proper namespace.</p></dd>
<dt>3.6</dt>
<dd><p>A bug in the looking up of the remoteid for a executed command could
be triggered when the connection was closed while several asynchronous
sends were queued to be executed.</p></dd>
<dt>3.5</dt>
<dd><p>Internal change to how reply messages from a <b class="cmd"><a href="../../../../index.html#key349">send</a></b> are handled.
Reply messages are now decoded into the <i class="arg">value</i> to pass to
<b class="cmd">return</b>; a new return statement is then cons'd up to with this
value.  Previously, the return code was passed in from the remote as a
command to evaluate.  Since the wire protocol has not changed, this is
still the case.  Instead, the reply handling code decodes the
<b class="const">reply</b> message.</p></dd>
<dt>3.4</dt>
<dd><p>Added more source commentary, as well as documenting config variables
in this man page.  Fixed bug were loss of connection would give error
about a variable named <b class="variable">pending</b> rather than the message about
the lost connection.  <b class="cmd">comm ids</b> is now an alias for
<b class="cmd">comm interps</b> (previously, it an alias for <b class="cmd">comm chans</b>).
Since the method invocation change of 3.0, break and other exceptional
conditions were not being returned correctly from <b class="cmd">comm send</b>.
This has been fixed by removing the extra level of indirection into
the internal procedure <b class="cmd">commSend</b>.  Also added propagation of
the <i class="arg">errorCode</i> variable.  This means that these commands return
exactly as they would with <b class="cmd"><a href="../../../../index.html#key349">send</a></b>:</p>
<pre class="example">
    comm send id break
    catch {comm send id break}
    comm send id expr 1 / 0
</pre>
<p>Added a new hook for reply messages.  Reworked method invocation to
avoid the use of comm:* procedures; this also cut the invocation time







|

















|







858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
<dt>3.7</dt>
<dd><p>Moved into tcllib and placed in a proper namespace.</p></dd>
<dt>3.6</dt>
<dd><p>A bug in the looking up of the remoteid for a executed command could
be triggered when the connection was closed while several asynchronous
sends were queued to be executed.</p></dd>
<dt>3.5</dt>
<dd><p>Internal change to how reply messages from a <b class="cmd"><a href="../../../../index.html#key351">send</a></b> are handled.
Reply messages are now decoded into the <i class="arg">value</i> to pass to
<b class="cmd">return</b>; a new return statement is then cons'd up to with this
value.  Previously, the return code was passed in from the remote as a
command to evaluate.  Since the wire protocol has not changed, this is
still the case.  Instead, the reply handling code decodes the
<b class="const">reply</b> message.</p></dd>
<dt>3.4</dt>
<dd><p>Added more source commentary, as well as documenting config variables
in this man page.  Fixed bug were loss of connection would give error
about a variable named <b class="variable">pending</b> rather than the message about
the lost connection.  <b class="cmd">comm ids</b> is now an alias for
<b class="cmd">comm interps</b> (previously, it an alias for <b class="cmd">comm chans</b>).
Since the method invocation change of 3.0, break and other exceptional
conditions were not being returned correctly from <b class="cmd">comm send</b>.
This has been fixed by removing the extra level of indirection into
the internal procedure <b class="cmd">commSend</b>.  Also added propagation of
the <i class="arg">errorCode</i> variable.  This means that these commands return
exactly as they would with <b class="cmd"><a href="../../../../index.html#key351">send</a></b>:</p>
<pre class="example">
    comm send id break
    catch {comm send id break}
    comm send id expr 1 / 0
</pre>
<p>Added a new hook for reply messages.  Reworked method invocation to
avoid the use of comm:* procedures; this also cut the invocation time
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
<dt>2.0</dt>
<dd><p><b class="package">comm</b> has been rewritten from scratch (but is fully compatible
with Comm 1.0, without the requirement to use obTcl).</p></dd>
</dl>
</div>
</div>
<div id="section2" class="section"><h2><a name="section2">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>







|


|







|
|







929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
<dt>2.0</dt>
<dd><p><b class="package">comm</b> has been rewritten from scratch (but is fully compatible
with Comm 1.0, without the requirement to use obTcl).</p></dd>
</dl>
</div>
</div>
<div id="section2" class="section"><h2><a name="section2">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>send(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key40">comm</a>, <a href="../../../../index.html#key351">communication</a>, <a href="../../../../index.html#key356">ipc</a>, <a href="../../../../index.html#key357">message</a>, <a href="../../../../index.html#key354">remote communication</a>, <a href="../../../../index.html#key353">remote execution</a>, <a href="../../../../index.html#key350">rpc</a>, <a href="../../../../index.html#key352">secure</a>, <a href="../../../../index.html#key349">send</a>, <a href="../../../../index.html#key348">socket</a>, <a href="../../../../index.html#key355">ssl</a>, <a href="../../../../index.html#key327">tls</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 1995-1998 The Open Group. All Rights Reserved.<br>
Copyright &copy; 2003-2004 ActiveState Corporation.<br>
Copyright &copy; 2006-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|










1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>send(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key40">comm</a>, <a href="../../../../index.html#key353">communication</a>, <a href="../../../../index.html#key358">ipc</a>, <a href="../../../../index.html#key359">message</a>, <a href="../../../../index.html#key356">remote communication</a>, <a href="../../../../index.html#key355">remote execution</a>, <a href="../../../../index.html#key352">rpc</a>, <a href="../../../../index.html#key354">secure</a>, <a href="../../../../index.html#key351">send</a>, <a href="../../../../index.html#key350">socket</a>, <a href="../../../../index.html#key357">ssl</a>, <a href="../../../../index.html#key329">tls</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 1995-1998 The Open Group. All Rights Reserved.<br>
Copyright &copy; 2003-2004 ActiveState Corporation.<br>
Copyright &copy; 2006-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/comm/comm_wire.html.

158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
binary data, including the NULL character, can be sent over the wire
as is, without the need for armoring it.</p>
</div>
<div id="subsection2" class="subsection"><h3><a name="subsection2">Basic Message Layer</a></h3>
<p>On top of the <span class="sectref"><a href="#subsection1">Basic Layer</a></span> we have a
<i class="term">message oriented</i> exchange of data.
The totality of all characters written to the channel is a Tcl list,
with each element a separate <i class="term"><a href="../../../../index.html#key357">message</a></i>, each itself a list. The
messages in the overall list are separated by EOL. Note that EOL
characters can occur within the list as well. They can be
distinguished from the message-separating EOL by the fact that the
data from the beginning up to their location is not a valid Tcl list.</p>
<p>EOL is signaled through the linefeed character, i.e <b class="const">LF</b>, or,
hex <b class="const">0x0a</b>. This is following the unix convention for
line-endings.</p>







|







158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
binary data, including the NULL character, can be sent over the wire
as is, without the need for armoring it.</p>
</div>
<div id="subsection2" class="subsection"><h3><a name="subsection2">Basic Message Layer</a></h3>
<p>On top of the <span class="sectref"><a href="#subsection1">Basic Layer</a></span> we have a
<i class="term">message oriented</i> exchange of data.
The totality of all characters written to the channel is a Tcl list,
with each element a separate <i class="term"><a href="../../../../index.html#key359">message</a></i>, each itself a list. The
messages in the overall list are separated by EOL. Note that EOL
characters can occur within the list as well. They can be
distinguished from the message-separating EOL by the fact that the
data from the beginning up to their location is not a valid Tcl list.</p>
<p>EOL is signaled through the linefeed character, i.e <b class="const">LF</b>, or,
hex <b class="const">0x0a</b>. This is following the unix convention for
line-endings.</p>
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
    (a')    send {array get tcl_platform}
    (b')    send array get tcl_platform
    (c')    send array {get tcl_platform}
    respectively
</pre>
<p>Note that (a), generated by (a'), is the usual form, if only single
commands are sent by the client.
For example constructed using <b class="cmd"><a href="../../../../index.html#key298">list</a></b>, if the command contains
variable arguments. Like</p>
<pre class="example">
    send [list array get $the_variable]
</pre>
<p>These three instructions all invoke the script on the server
side. Their difference is in the treatment of result values, and thus
determines if a reply is expected.</p>







|







223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
    (a')    send {array get tcl_platform}
    (b')    send array get tcl_platform
    (c')    send array {get tcl_platform}
    respectively
</pre>
<p>Note that (a), generated by (a'), is the usual form, if only single
commands are sent by the client.
For example constructed using <b class="cmd"><a href="../../../../index.html#key300">list</a></b>, if the command contains
variable arguments. Like</p>
<pre class="example">
    send [list array get $the_variable]
</pre>
<p>These three instructions all invoke the script on the server
side. Their difference is in the treatment of result values, and thus
determines if a reply is expected.</p>
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="comm.html">comm</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key40">comm</a>, <a href="../../../../index.html#key351">communication</a>, <a href="../../../../index.html#key356">ipc</a>, <a href="../../../../index.html#key357">message</a>, <a href="../../../../index.html#key354">remote communication</a>, <a href="../../../../index.html#key353">remote execution</a>, <a href="../../../../index.html#key350">rpc</a>, <a href="../../../../index.html#key348">socket</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Docs. Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="comm.html">comm</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key40">comm</a>, <a href="../../../../index.html#key353">communication</a>, <a href="../../../../index.html#key358">ipc</a>, <a href="../../../../index.html#key359">message</a>, <a href="../../../../index.html#key356">remote communication</a>, <a href="../../../../index.html#key355">remote execution</a>, <a href="../../../../index.html#key352">rpc</a>, <a href="../../../../index.html#key350">socket</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Docs. Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/control/control.html.

160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
If evaluation reveals that <i class="arg">expr</i> is not a valid boolean
expression (according to [<b class="cmd">string is boolean -strict</b>]),
an error is raised.  If <i class="arg">expr</i> evaluates to a true boolean value
(as recognized by <b class="cmd">if</b>), then <b class="cmd"><a href="../../../../index.html#key144">assert</a></b> returns an empty
string.  Otherwise, the remaining arguments to <b class="cmd"><a href="../../../../index.html#key144">assert</a></b> are used
to construct a message string.  If there are no arguments, the message
string is &quot;assertion failed: $expr&quot;.  If there are arguments, they are
joined by <b class="cmd"><a href="../../../../index.html#key553">join</a></b> to form the message string.  The message string
is then appended as an argument to a callback command, and the
completed callback command is evaluated in the global namespace.</p>
<p>The <b class="cmd"><a href="../../../../index.html#key144">assert</a></b> command can be customized by the <b class="cmd">control</b>
command in two ways:</p>
<p>[<b class="cmd">control::control assert enabled</b> <span class="opt">?<i class="arg">boolean</i>?</span>]
queries or sets whether <b class="cmd">control::assert</b> is enabled.  When called
without a <i class="arg">boolean</i> argument, a boolean value is returned







|







160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
If evaluation reveals that <i class="arg">expr</i> is not a valid boolean
expression (according to [<b class="cmd">string is boolean -strict</b>]),
an error is raised.  If <i class="arg">expr</i> evaluates to a true boolean value
(as recognized by <b class="cmd">if</b>), then <b class="cmd"><a href="../../../../index.html#key144">assert</a></b> returns an empty
string.  Otherwise, the remaining arguments to <b class="cmd"><a href="../../../../index.html#key144">assert</a></b> are used
to construct a message string.  If there are no arguments, the message
string is &quot;assertion failed: $expr&quot;.  If there are arguments, they are
joined by <b class="cmd"><a href="../../../../index.html#key556">join</a></b> to form the message string.  The message string
is then appended as an argument to a callback command, and the
completed callback command is evaluated in the global namespace.</p>
<p>The <b class="cmd"><a href="../../../../index.html#key144">assert</a></b> command can be customized by the <b class="cmd">control</b>
command in two ways:</p>
<p>[<b class="cmd">control::control assert enabled</b> <span class="opt">?<i class="arg">boolean</i>?</span>]
queries or sets whether <b class="cmd">control::assert</b> is enabled.  When called
without a <i class="arg">boolean</i> argument, a boolean value is returned
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
bugs and other problems.
Please report such in the category <em>control</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>break, continue, expr, if, <a href="../../../../index.html#key553">join</a>, namespace, return, <a href="../../../../index.html#key276">string</a>, while</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key144">assert</a>, <a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key145">do</a>, <a href="../../../../index.html#key141">flow</a>, <a href="../../../../index.html#key143">no-op</a>, <a href="../../../../index.html#key142">structure</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
</div></body></html>







|








244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
bugs and other problems.
Please report such in the category <em>control</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>break, continue, expr, if, <a href="../../../../index.html#key556">join</a>, namespace, return, <a href="../../../../index.html#key278">string</a>, while</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key144">assert</a>, <a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key145">do</a>, <a href="../../../../index.html#key141">flow</a>, <a href="../../../../index.html#key143">no-op</a>, <a href="../../../../index.html#key142">structure</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/coroutine/coro_auto.html.

137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
directly visible functionality.
Built on top of the package <b class="package"><a href="tcllib_coroutine.html">coroutine</a></b>, it intercepts various
builtin commands of the Tcl core to make any code using them
coroutine-oblivious, i.e. able to run inside and outside of a
coroutine without changes.</p>
<p>The commands so affected by this package are</p>
<dl class="definitions">
<dt><b class="cmd"><a href="../../../../index.html#key409">after</a></b></dt>
<dd></dd>
<dt><b class="cmd"><a href="../../../../index.html#key410">exit</a></b></dt>
<dd></dd>
<dt><b class="cmd"><a href="../../../../index.html#key411">gets</a></b></dt>
<dd></dd>
<dt><b class="cmd"><a href="../../../../index.html#key408">global</a></b></dt>
<dd></dd>
<dt><b class="cmd"><a href="../../../../index.html#key406">read</a></b></dt>
<dd></dd>
<dt><b class="cmd"><a href="../../../../index.html#key412">update</a></b></dt>
<dd></dd>
<dt><b class="cmd"><a href="../../../../index.html#key413">vwait</a></b></dt>
<dd></dd>
</dl>
</div>
<div id="section2" class="section"><h2><a name="section2">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>coroutine</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key409">after</a>, <a href="../../../../index.html#key63">channel</a>, <a href="../../../../index.html#key217">coroutine</a>, <a href="../../../../index.html#key407">events</a>, <a href="../../../../index.html#key410">exit</a>, <a href="../../../../index.html#key411">gets</a>, <a href="../../../../index.html#key408">global</a>, <a href="../../../../index.html#key414">green threads</a>, <a href="../../../../index.html#key406">read</a>, <a href="../../../../index.html#key405">threads</a>, <a href="../../../../index.html#key412">update</a>, <a href="../../../../index.html#key413">vwait</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Coroutine</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2010-2014 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|

|

|

|

|

|

|












|







137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
directly visible functionality.
Built on top of the package <b class="package"><a href="tcllib_coroutine.html">coroutine</a></b>, it intercepts various
builtin commands of the Tcl core to make any code using them
coroutine-oblivious, i.e. able to run inside and outside of a
coroutine without changes.</p>
<p>The commands so affected by this package are</p>
<dl class="definitions">
<dt><b class="cmd"><a href="../../../../index.html#key411">after</a></b></dt>
<dd></dd>
<dt><b class="cmd"><a href="../../../../index.html#key412">exit</a></b></dt>
<dd></dd>
<dt><b class="cmd"><a href="../../../../index.html#key413">gets</a></b></dt>
<dd></dd>
<dt><b class="cmd"><a href="../../../../index.html#key410">global</a></b></dt>
<dd></dd>
<dt><b class="cmd"><a href="../../../../index.html#key408">read</a></b></dt>
<dd></dd>
<dt><b class="cmd"><a href="../../../../index.html#key414">update</a></b></dt>
<dd></dd>
<dt><b class="cmd"><a href="../../../../index.html#key415">vwait</a></b></dt>
<dd></dd>
</dl>
</div>
<div id="section2" class="section"><h2><a name="section2">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>coroutine</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key411">after</a>, <a href="../../../../index.html#key63">channel</a>, <a href="../../../../index.html#key217">coroutine</a>, <a href="../../../../index.html#key409">events</a>, <a href="../../../../index.html#key412">exit</a>, <a href="../../../../index.html#key413">gets</a>, <a href="../../../../index.html#key410">global</a>, <a href="../../../../index.html#key416">green threads</a>, <a href="../../../../index.html#key408">read</a>, <a href="../../../../index.html#key407">threads</a>, <a href="../../../../index.html#key414">update</a>, <a href="../../../../index.html#key415">vwait</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Coroutine</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2010-2014 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/coroutine/tcllib_coroutine.html.

207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
bugs and other problems.
Please report such in the category <em>coroutine</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key409">after</a>, <a href="../../../../index.html#key63">channel</a>, <a href="../../../../index.html#key217">coroutine</a>, <a href="../../../../index.html#key407">events</a>, <a href="../../../../index.html#key410">exit</a>, <a href="../../../../index.html#key411">gets</a>, <a href="../../../../index.html#key408">global</a>, <a href="../../../../index.html#key414">green threads</a>, <a href="../../../../index.html#key406">read</a>, <a href="../../../../index.html#key405">threads</a>, <a href="../../../../index.html#key412">update</a>, <a href="../../../../index.html#key413">vwait</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Coroutine</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2010-2015 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
bugs and other problems.
Please report such in the category <em>coroutine</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key411">after</a>, <a href="../../../../index.html#key63">channel</a>, <a href="../../../../index.html#key217">coroutine</a>, <a href="../../../../index.html#key409">events</a>, <a href="../../../../index.html#key412">exit</a>, <a href="../../../../index.html#key413">gets</a>, <a href="../../../../index.html#key410">global</a>, <a href="../../../../index.html#key416">green threads</a>, <a href="../../../../index.html#key408">read</a>, <a href="../../../../index.html#key407">threads</a>, <a href="../../../../index.html#key414">update</a>, <a href="../../../../index.html#key415">vwait</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Coroutine</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2010-2015 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/counter/counter.html.

288
289
290
291
292
293
294
295
296
297
298
299
300
bugs and other problems.
Please report such in the category <em>counter</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key709">counting</a>, <a href="../../../../index.html#key708">histogram</a>, <a href="../../../../index.html#key193">statistics</a>, <a href="../../../../index.html#key707">tallying</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
</div></body></html>







|





288
289
290
291
292
293
294
295
296
297
298
299
300
bugs and other problems.
Please report such in the category <em>counter</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key713">counting</a>, <a href="../../../../index.html#key712">histogram</a>, <a href="../../../../index.html#key193">statistics</a>, <a href="../../../../index.html#key711">tallying</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/crc/crc16.html.

237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="cksum.html">cksum(n)</a>, <a href="crc32.html">crc32(n)</a>, <a href="sum.html">sum(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key150">checksum</a>, <a href="../../../../index.html#key149">cksum</a>, <a href="../../../../index.html#key146">crc</a>, <a href="../../../../index.html#key800">crc16</a>, <a href="../../../../index.html#key147">crc32</a>, <a href="../../../../index.html#key148">cyclic redundancy check</a>, <a href="../../../../index.html#key124">data integrity</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002, Pat Thoyts</p>
</div>







|







237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="cksum.html">cksum(n)</a>, <a href="crc32.html">crc32(n)</a>, <a href="sum.html">sum(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key150">checksum</a>, <a href="../../../../index.html#key149">cksum</a>, <a href="../../../../index.html#key146">crc</a>, <a href="../../../../index.html#key804">crc16</a>, <a href="../../../../index.html#key147">crc32</a>, <a href="../../../../index.html#key148">cyclic redundancy check</a>, <a href="../../../../index.html#key124">data integrity</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002, Pat Thoyts</p>
</div>

Changes to embedded/www/tcllib/files/modules/crc/sum.html.

202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="cksum.html">cksum(n)</a>, <a href="crc32.html">crc32(n)</a>, sum(1)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key150">checksum</a>, <a href="../../../../index.html#key149">cksum</a>, <a href="../../../../index.html#key146">crc</a>, <a href="../../../../index.html#key147">crc32</a>, <a href="../../../../index.html#key148">cyclic redundancy check</a>, <a href="../../../../index.html#key124">data integrity</a>, <a href="../../../../index.html#key122">security</a>, <a href="../../../../index.html#key579">sum</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002, Pat Thoyts &lt;[email protected]&gt;</p>
</div>







|







202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="cksum.html">cksum(n)</a>, <a href="crc32.html">crc32(n)</a>, sum(1)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key150">checksum</a>, <a href="../../../../index.html#key149">cksum</a>, <a href="../../../../index.html#key146">crc</a>, <a href="../../../../index.html#key147">crc32</a>, <a href="../../../../index.html#key148">cyclic redundancy check</a>, <a href="../../../../index.html#key124">data integrity</a>, <a href="../../../../index.html#key122">security</a>, <a href="../../../../index.html#key582">sum</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002, Pat Thoyts &lt;[email protected]&gt;</p>
</div>

Added embedded/www/tcllib/files/modules/cron/cron.html.

































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208

<html><head>
<title>cron - cron</title>
<style type="text/css"><!--
    HTML {
	background: 	#FFFFFF;
	color: 		black;
    }
    BODY {
	background: 	#FFFFFF;
	color:	 	black;
    }
    DIV.doctools {
	margin-left:	10%;
	margin-right:	10%;
    }
    DIV.doctools H1,DIV.doctools H2 {
	margin-left:	-5%;
    }
    H1, H2, H3, H4 {
	margin-top: 	1em;
	font-family:	sans-serif;
	font-size:	large;
	color:		#005A9C;
	background: 	transparent;
	text-align:		left;
    }
    H1.title {
	text-align: center;
    }
    UL,OL {
	margin-right: 0em;
	margin-top: 3pt;
	margin-bottom: 3pt;
    }
    UL LI {
	list-style: disc;
    }
    OL LI {
	list-style: decimal;
    }
    DT {
	padding-top: 	1ex;
    }
    UL.toc,UL.toc UL, UL.toc UL UL {
	font:		normal 12pt/14pt sans-serif;
	list-style:	none;
    }
    LI.section, LI.subsection {
	list-style: 	none;
	margin-left: 	0em;
	text-indent:	0em;
	padding: 	0em;
    }
    PRE {
	display: 	block;
	font-family:	monospace;
	white-space:	pre;
	margin:		0%;
	padding-top:	0.5ex;
	padding-bottom:	0.5ex;
	padding-left:	1ex;
	padding-right:	1ex;
	width:		100%;
    }
    PRE.example {
	color: 		black;
	background: 	#f5dcb3;
	border:		1px solid black;
    }
    UL.requirements LI, UL.syntax LI {
	list-style: 	none;
	margin-left: 	0em;
	text-indent:	0em;
	padding:	0em;
    }
    DIV.synopsis {
	color: 		black;
	background: 	#80ffff;
	border:		1px solid black;
	font-family:	serif;
	margin-top: 	1em;
	margin-bottom: 	1em;
    }
    UL.syntax {
	margin-top: 	1em;
	border-top:	1px solid black;
    }
    UL.requirements {
	margin-bottom: 	1em;
	border-bottom:	1px solid black;
    }
--></style>
</head>
<! -- Generated from file 'cron.man' by tcllib/doctools with format 'html'
   -->
<! -- Copyright &copy; 2015 Sean Woods &lt;[email protected]&gt;
   -->
<! -- CVS: $Id$ cron.n
   -->
<body><div class="doctools">
<hr> [
   <a href="../../../../../../../../home">Tcllib Home</a>
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">cron(n) 0.1 tcllib &quot;cron&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>cron - Tool for automating the period callback of commands</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>
<li class="section"><a href="#section1">Description</a></li>
<li class="section"><a href="#section2">Commands</a></li>
<li class="section"><a href="#section3">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#category">Category</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">cron <span class="opt">?0.1?</span></b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::cron::at</b> <i class="arg">?processname?</i> <i class="arg">timecode</i> <i class="arg">command</i></a></li>
<li><a href="#2"><b class="cmd">::cron::cancel</b> <i class="arg">processname</i></a></li>
<li><a href="#3"><b class="cmd">::cron::every</b> <i class="arg">processname</i> <i class="arg">frequency</i> <i class="arg">command</i></a></li>
<li><a href="#4"><b class="cmd">::cron::in</b> <i class="arg">?processname?</i> <i class="arg">timecode</i> <i class="arg">command</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">cron</b> package provides a Pure-tcl set of tools to allow
programs to schedule tasks to occur at regular intervals. Rather than
force each task to issue it's own call to the event loop, the cron
system mimics the cron utility in Unix: on task periodically checks to
see if something is to be done, and issues all commands for a given
time step at once.
The cron package is intended to work in time scales greater than 1 second.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Commands</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::cron::at</b> <i class="arg">?processname?</i> <i class="arg">timecode</i> <i class="arg">command</i></a></dt>
<dd><p>This command registers a <i class="arg">command</i> to be called at the time specified by <i class="arg">timecode</i>.
If <i class="arg">timecode</i> is expressed as an integer, the timecode is assumed to be in unixtime. All
other inputs will be interpreted by <b class="cmd">clock scan</b> and converted to unix time.
This task can be modified by subsequent calls to
this package's commands by referencing <i class="arg">processname</i>. If <i class="arg">processname</i> exists,
it will be replaced.
If <i class="arg">processname</i> is not given, one is generated and returned by the command.</p>
<pre class="example">
::cron::at start_coffee {Tomorrow at 9:00am}  {remote::exec::coffeepot power on}
::cron::at shutdown_coffee {Tomorrow at 12:00pm}  {remote::exec::coffeepot power off}
</pre>
</dd>
<dt><a name="2"><b class="cmd">::cron::cancel</b> <i class="arg">processname</i></a></dt>
<dd><p>This command unregisters the process <i class="arg">processname</i> and cancels any pending commands.
Note: processname can be a process created by either <b class="cmd">::cron::at</b> or <b class="cmd">::cron::every</b>.</p>
<pre class="example">
::cron::cancel check_mail
</pre>
</dd>
<dt><a name="3"><b class="cmd">::cron::every</b> <i class="arg">processname</i> <i class="arg">frequency</i> <i class="arg">command</i></a></dt>
<dd><p>This command registers a <i class="arg">command</i> to be called at the interval of <i class="arg">frequency</i>.
<i class="arg">frequency</i> is given in seconds. This task can be modified by subsequent calls to
this package's commands by referencing <i class="arg">processname</i>. If <i class="arg">processname</i> exists,
it will be replaced.</p>
<pre class="example">
::cron::every check_mail 900  ::imap_client::check_mail
::cron::every backup_db  3600 {::backup_procedure ::mydb}
</pre>
</dd>
<dt><a name="4"><b class="cmd">::cron::in</b> <i class="arg">?processname?</i> <i class="arg">timecode</i> <i class="arg">command</i></a></dt>
<dd><p>This command registers a <i class="arg">command</i> to be called after a delay of time specified by <i class="arg">timecode</i>.
<i class="arg">timecode</i> is expressed as an seconds.
This task can be modified by subsequent calls to
this package's commands by referencing <i class="arg">processname</i>. If <i class="arg">processname</i> exists,
it will be replaced.
If <i class="arg">processname</i> is not given, one is generated and returned by the command.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>odie</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key618">cron</a>, <a href="../../../../index.html#key253">odie</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>System</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2015 Sean Woods &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/debug/debug.html.

158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">debug.<b class="variable">tag</b></b> <i class="arg">message</i> <span class="opt">?<i class="arg">level</i>?</span></a></dt>
<dd><p>For each known tag the package creates a command with this signature
the user can then use to provide the debug narrative of the tag.
The narrative <i class="arg">message</i> is provided as a Tcl script whose value is
<b class="cmd"><a href="../../../../index.html#key269">subst</a></b>ed in the caller's scope if and only if the current level of
interest for the <i class="arg">tag</i> matches or exceeds the call's <i class="arg">level</i>
of detail.  This is useful, as one can place arbitrarily complex
narrative in code without unnecessarily evaluating it.</p>
<p>See methods <b class="method">level</b> and <b class="method">setting</b> for querying
and manipulating the current level of detail for tags.</p>
<p>The actually printed text consists of not only the
<i class="arg">message</i>, but also global and tag-specific prefix and suffix,
should they exist, with each line in the message having the specified
headers and trailers.</p>
<p>All these parts are <b class="cmd"><a href="../../../../index.html#key269">subst</a></b>ableTcl scripts, which are
substituted once per message before assembly.</p></dd>
<dt><a name="2"><b class="cmd">debug</b> <b class="method">2array</b></a></dt>
<dd><p>This method returns a dictionary mapping the names of all debug tags
currently known to the package to their state and log level. The
latter are encoded in a single numeric value, where a negative number
indicates an inactive tag at the level given by the absolute value, and
a positive number is an active tag at that level.</p>
<p>See also method <b class="method">settings</b> below.</p></dd>
<dt><a name="3"><b class="cmd">debug</b> <b class="method">define</b> <i class="arg">tag</i></a></dt>
<dd><p>This method registers the named <i class="arg">tag</i> with the package.  If the
tag was not known before it is placed in an inactive state. The state
of an already known tag is left untouched.</p>
<p>The result of the method is the empty string.</p></dd>
<dt><a name="4"><b class="cmd">debug</b> <b class="method">header</b> <i class="arg">text</i></a></dt>
<dd><p>This method defines a global <b class="cmd"><a href="../../../../index.html#key269">subst</a></b>able Tcl script which provides
a text printed before each line of output.</p>
<p>Note how this is tag-independent.</p>
<p>Further note that the header substitution happens only once per
actual printed message, i.e. all lines of the same message will have
the same actual heading text.</p>
<p>The result of the method is the specified text.</p></dd>
<dt><a name="5"><b class="cmd">debug</b> <b class="method">level</b> <i class="arg">tag</i> <span class="opt">?<i class="arg">level</i>?</span> <span class="opt">?<i class="arg">fd</i>?</span></a></dt>







|









|














|







158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">debug.<b class="variable">tag</b></b> <i class="arg">message</i> <span class="opt">?<i class="arg">level</i>?</span></a></dt>
<dd><p>For each known tag the package creates a command with this signature
the user can then use to provide the debug narrative of the tag.
The narrative <i class="arg">message</i> is provided as a Tcl script whose value is
<b class="cmd"><a href="../../../../index.html#key271">subst</a></b>ed in the caller's scope if and only if the current level of
interest for the <i class="arg">tag</i> matches or exceeds the call's <i class="arg">level</i>
of detail.  This is useful, as one can place arbitrarily complex
narrative in code without unnecessarily evaluating it.</p>
<p>See methods <b class="method">level</b> and <b class="method">setting</b> for querying
and manipulating the current level of detail for tags.</p>
<p>The actually printed text consists of not only the
<i class="arg">message</i>, but also global and tag-specific prefix and suffix,
should they exist, with each line in the message having the specified
headers and trailers.</p>
<p>All these parts are <b class="cmd"><a href="../../../../index.html#key271">subst</a></b>ableTcl scripts, which are
substituted once per message before assembly.</p></dd>
<dt><a name="2"><b class="cmd">debug</b> <b class="method">2array</b></a></dt>
<dd><p>This method returns a dictionary mapping the names of all debug tags
currently known to the package to their state and log level. The
latter are encoded in a single numeric value, where a negative number
indicates an inactive tag at the level given by the absolute value, and
a positive number is an active tag at that level.</p>
<p>See also method <b class="method">settings</b> below.</p></dd>
<dt><a name="3"><b class="cmd">debug</b> <b class="method">define</b> <i class="arg">tag</i></a></dt>
<dd><p>This method registers the named <i class="arg">tag</i> with the package.  If the
tag was not known before it is placed in an inactive state. The state
of an already known tag is left untouched.</p>
<p>The result of the method is the empty string.</p></dd>
<dt><a name="4"><b class="cmd">debug</b> <b class="method">header</b> <i class="arg">text</i></a></dt>
<dd><p>This method defines a global <b class="cmd"><a href="../../../../index.html#key271">subst</a></b>able Tcl script which provides
a text printed before each line of output.</p>
<p>Note how this is tag-independent.</p>
<p>Further note that the header substitution happens only once per
actual printed message, i.e. all lines of the same message will have
the same actual heading text.</p>
<p>The result of the method is the specified text.</p></dd>
<dt><a name="5"><b class="cmd">debug</b> <b class="method">level</b> <i class="arg">tag</i> <span class="opt">?<i class="arg">level</i>?</span> <span class="opt">?<i class="arg">fd</i>?</span></a></dt>
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
<dd><p>This is a convenience method to insert a linefeed character (ASCII 0x0a)
into a debug message.</p></dd>
<dt><a name="13"><b class="cmd">debug</b> <b class="method">tab</b></a></dt>
<dd><p>This is a convenience method to insert a TAB character (ASCII 0x09)
into a debug message.</p></dd>
<dt><a name="14"><b class="cmd">debug</b> <b class="method">prefix</b> <i class="arg">tag</i> <span class="opt">?<i class="arg">text</i>?</span></a></dt>
<dd><p>This method is similar to the method <b class="method">header</b> above, in that it
defines <b class="cmd"><a href="../../../../index.html#key269">subst</a></b>able Tcl script which provides more text for debug
messages.</p>
<p>In contrast to <b class="method">header</b> the generated text is added to the
user's message before it is split into lines, making it a per-message
extension.</p>
<p>Furthermore the script is tag-dependent.</p>
<p>In exception to that, a script for tag <b class="const">::</b> is applied
to all messages.</p>







|







230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
<dd><p>This is a convenience method to insert a linefeed character (ASCII 0x0a)
into a debug message.</p></dd>
<dt><a name="13"><b class="cmd">debug</b> <b class="method">tab</b></a></dt>
<dd><p>This is a convenience method to insert a TAB character (ASCII 0x09)
into a debug message.</p></dd>
<dt><a name="14"><b class="cmd">debug</b> <b class="method">prefix</b> <i class="arg">tag</i> <span class="opt">?<i class="arg">text</i>?</span></a></dt>
<dd><p>This method is similar to the method <b class="method">header</b> above, in that it
defines <b class="cmd"><a href="../../../../index.html#key271">subst</a></b>able Tcl script which provides more text for debug
messages.</p>
<p>In contrast to <b class="method">header</b> the generated text is added to the
user's message before it is split into lines, making it a per-message
extension.</p>
<p>Furthermore the script is tag-dependent.</p>
<p>In exception to that, a script for tag <b class="const">::</b> is applied
to all messages.</p>
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
activating it.</p>
<p>If the last argument is not followed by a level it is not
treated as tag name, but as the channel all the named tags should
print their messages to.</p>
<p>The result of the method is the empty string.</p></dd>
<dt><a name="16"><b class="cmd">debug</b> <b class="method">suffix</b> <i class="arg">tag</i> <span class="opt">?<i class="arg">text</i>?</span></a></dt>
<dd><p>This method is similar to the method <b class="method">trailer</b> below, in that
it defines <b class="cmd"><a href="../../../../index.html#key269">subst</a></b>able Tcl script which provides more text for
debug messages.</p>
<p>In contrast to <b class="method">trailer</b> the generated text is added to
the user's message before it is split into lines, making it a
per-message extension.</p>
<p>Furthermore the script is tag-dependent.</p>
<p>In exception to that, a script for tag <b class="const">::</b> is applied
to all messages.</p>
<p>If both global and tag-dependent suffix exist, both are
applied, with the global suffix coming after the tag-dependent suffix.</p>
<p>Note that the suffix substitution happens only once per actual
printed message.</p>
<p>The result of the method is the empty string.</p>
<p>If the <i class="arg">tag</i> was not known at the time of the call it is
registered, and set inactive.</p></dd>
<dt><a name="17"><b class="cmd">debug</b> <b class="method">trailer</b> <i class="arg">text</i></a></dt>
<dd><p>This method defines a global <b class="cmd"><a href="../../../../index.html#key269">subst</a></b>able Tcl script which provides
a text printed after each line of output (before the EOL however).</p>
<p>Note how this is tag-independent.</p>
<p>Further note that the trailer substitution happens only once
per actual printed message, i.e. all lines of the same message will
have the same actual trailing text.</p>
<p>The result of the method is the specified text.</p></dd>
</dl>







|















|







259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
activating it.</p>
<p>If the last argument is not followed by a level it is not
treated as tag name, but as the channel all the named tags should
print their messages to.</p>
<p>The result of the method is the empty string.</p></dd>
<dt><a name="16"><b class="cmd">debug</b> <b class="method">suffix</b> <i class="arg">tag</i> <span class="opt">?<i class="arg">text</i>?</span></a></dt>
<dd><p>This method is similar to the method <b class="method">trailer</b> below, in that
it defines <b class="cmd"><a href="../../../../index.html#key271">subst</a></b>able Tcl script which provides more text for
debug messages.</p>
<p>In contrast to <b class="method">trailer</b> the generated text is added to
the user's message before it is split into lines, making it a
per-message extension.</p>
<p>Furthermore the script is tag-dependent.</p>
<p>In exception to that, a script for tag <b class="const">::</b> is applied
to all messages.</p>
<p>If both global and tag-dependent suffix exist, both are
applied, with the global suffix coming after the tag-dependent suffix.</p>
<p>Note that the suffix substitution happens only once per actual
printed message.</p>
<p>The result of the method is the empty string.</p>
<p>If the <i class="arg">tag</i> was not known at the time of the call it is
registered, and set inactive.</p></dd>
<dt><a name="17"><b class="cmd">debug</b> <b class="method">trailer</b> <i class="arg">text</i></a></dt>
<dd><p>This method defines a global <b class="cmd"><a href="../../../../index.html#key271">subst</a></b>able Tcl script which provides
a text printed after each line of output (before the EOL however).</p>
<p>Note how this is tag-independent.</p>
<p>Further note that the trailer substitution happens only once
per actual printed message, i.e. all lines of the same message will
have the same actual trailing text.</p>
<p>The result of the method is the specified text.</p></dd>
</dl>

Changes to embedded/www/tcllib/files/modules/debug/debug_heartbeat.html.

157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
bugs and other problems.
Please report such in the category <em>debug</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key76">debug</a>, <a href="../../../../index.html#key702">heartbeat</a>, <a href="../../../../index.html#key73">log</a>, <a href="../../../../index.html#key72">narrative</a>, <a href="../../../../index.html#key74">trace</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>debugging, tracing, and logging</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 200?, Colin McCormack, Wub Server Utilities<br>
Copyright &copy; 2012, Andreas Kupries &lt;[email protected]&gt;</p>







|







157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
bugs and other problems.
Please report such in the category <em>debug</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key76">debug</a>, <a href="../../../../index.html#key706">heartbeat</a>, <a href="../../../../index.html#key73">log</a>, <a href="../../../../index.html#key72">narrative</a>, <a href="../../../../index.html#key74">trace</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>debugging, tracing, and logging</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 200?, Colin McCormack, Wub Server Utilities<br>
Copyright &copy; 2012, Andreas Kupries &lt;[email protected]&gt;</p>

Changes to embedded/www/tcllib/files/modules/des/des.html.

159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
the TclDES web pages. The tcllib specific code is a wrapper to the
TclDES API that presents same API for the DES cipher as for other
ciphers in the library.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::DES::des</b> <span class="opt">?<i class="arg">-mode [ecb|cbc|cfb|ofb]</i>?</span> <span class="opt">?<i class="arg">-dir [encrypt|decrypt]</i>?</span> <i class="arg">-key keydata</i> <span class="opt">?<i class="arg">-iv vector</i>?</span> <span class="opt">?<i class="arg">-hex</i>?</span> <span class="opt">?<i class="arg">-weak</i>?</span> <span class="opt">?<i class="arg">-out channel</i>?</span> <span class="opt">?<i class="arg">-chunksize size</i>?</span> [ <i class="arg">-in channel</i> | <i class="arg">data</i> ]</a></dt>
<dd><p>Perform the <b class="package"><a href="../../../../index.html#key292">DES</a></b> algorithm on either the data provided
by the argument or on the data read from the <i class="arg">-in</i> channel. If
an <i class="arg">-out</i> channel is given then the result will be written to
this channel.</p>
<p>The <i class="arg">-key</i> option must be given. This parameter takes a binary
string of 8 bytes in length and is used to generate the key schedule.
In DES only 56 bits of key data are used. The highest bit from each
byte is discarded.</p>







|







159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
the TclDES web pages. The tcllib specific code is a wrapper to the
TclDES API that presents same API for the DES cipher as for other
ciphers in the library.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::DES::des</b> <span class="opt">?<i class="arg">-mode [ecb|cbc|cfb|ofb]</i>?</span> <span class="opt">?<i class="arg">-dir [encrypt|decrypt]</i>?</span> <i class="arg">-key keydata</i> <span class="opt">?<i class="arg">-iv vector</i>?</span> <span class="opt">?<i class="arg">-hex</i>?</span> <span class="opt">?<i class="arg">-weak</i>?</span> <span class="opt">?<i class="arg">-out channel</i>?</span> <span class="opt">?<i class="arg">-chunksize size</i>?</span> [ <i class="arg">-in channel</i> | <i class="arg">data</i> ]</a></dt>
<dd><p>Perform the <b class="package"><a href="../../../../index.html#key294">DES</a></b> algorithm on either the data provided
by the argument or on the data read from the <i class="arg">-in</i> channel. If
an <i class="arg">-out</i> channel is given then the result will be written to
this channel.</p>
<p>The <i class="arg">-key</i> option must be given. This parameter takes a binary
string of 8 bytes in length and is used to generate the key schedule.
In DES only 56 bits of key data are used. The highest bit from each
byte is discarded.</p>
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../aes/aes.html">aes(n)</a>, <a href="../blowfish/blowfish.html">blowfish(n)</a>, <a href="../md5/md5.html">md5(n)</a>, <a href="../rc4/rc4.html">rc4(n)</a>, <a href="../sha1/sha1.html">sha1(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key294">3DES</a>, <a href="../../../../index.html#key292">DES</a>, <a href="../../../../index.html#key293">block cipher</a>, <a href="../../../../index.html#key124">data integrity</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005, Pat Thoyts &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../aes/aes.html">aes(n)</a>, <a href="../blowfish/blowfish.html">blowfish(n)</a>, <a href="../md5/md5.html">md5(n)</a>, <a href="../rc4/rc4.html">rc4(n)</a>, <a href="../sha1/sha1.html">sha1(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key296">3DES</a>, <a href="../../../../index.html#key294">DES</a>, <a href="../../../../index.html#key295">block cipher</a>, <a href="../../../../index.html#key124">data integrity</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005, Pat Thoyts &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/des/tcldes.html.

144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="des.html">des(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key294">3DES</a>, <a href="../../../../index.html#key292">DES</a>, <a href="../../../../index.html#key293">block cipher</a>, <a href="../../../../index.html#key124">data integrity</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005, Pat Thoyts &lt;[email protected]&gt;</p>
</div>







|







144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="des.html">des(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key296">3DES</a>, <a href="../../../../index.html#key294">DES</a>, <a href="../../../../index.html#key295">block cipher</a>, <a href="../../../../index.html#key124">data integrity</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005, Pat Thoyts &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/des/tcldesjr.html.

144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="des.html">des(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key294">3DES</a>, <a href="../../../../index.html#key292">DES</a>, <a href="../../../../index.html#key293">block cipher</a>, <a href="../../../../index.html#key124">data integrity</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005, Pat Thoyts &lt;[email protected]&gt;</p>
</div>







|







144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="des.html">des(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key296">3DES</a>, <a href="../../../../index.html#key294">DES</a>, <a href="../../../../index.html#key295">block cipher</a>, <a href="../../../../index.html#key124">data integrity</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005, Pat Thoyts &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/dns/tcllib_dns.html.

171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
correctly handles binary data (&gt; 1.0.4).
This is available at <a href="http://tcludp.sourceforge.net/">http://tcludp.sourceforge.net/</a>.
If the <b class="package">udp</b> package is present then UDP will be used by default.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::dns::resolve</b> <i class="arg">query</i> <span class="opt">?<i class="arg">options</i>?</span></a></dt>
<dd><p>Resolve a domain name using the <i class="term"><a href="../../../../index.html#key593">DNS</a></i> protocol. <i class="arg">query</i> is
the domain name to be lookup up. This should be either a fully
qualified domain name or a DNS URI.</p>
<dl class="definitions">
<dt><b class="cmd">-nameserver</b> <i class="arg">hostname</i> or <b class="cmd">-server</b> <i class="arg">hostname</i></dt>
<dd><p>Specify an alternative name server for this request.</p></dd>
<dt><b class="cmd">-protocol</b> <i class="arg">tcp|udp</i></dt>
<dd><p>Specify the network protocol to use for this request. Can be one of







|







171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
correctly handles binary data (&gt; 1.0.4).
This is available at <a href="http://tcludp.sourceforge.net/">http://tcludp.sourceforge.net/</a>.
If the <b class="package">udp</b> package is present then UDP will be used by default.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::dns::resolve</b> <i class="arg">query</i> <span class="opt">?<i class="arg">options</i>?</span></a></dt>
<dd><p>Resolve a domain name using the <i class="term"><a href="../../../../index.html#key596">DNS</a></i> protocol. <i class="arg">query</i> is
the domain name to be lookup up. This should be either a fully
qualified domain name or a DNS URI.</p>
<dl class="definitions">
<dt><b class="cmd">-nameserver</b> <i class="arg">hostname</i> or <b class="cmd">-server</b> <i class="arg">hostname</i></dt>
<dd><p>Specify an alternative name server for this request.</p></dd>
<dt><b class="cmd">-protocol</b> <i class="arg">tcp|udp</i></dt>
<dd><p>Specify the network protocol to use for this request. Can be one of
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>resolver(5)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key593">DNS</a>, <a href="../../../../index.html#key596">domain name service</a>, <a href="../../../../index.html#key595">resolver</a>, <a href="../../../../index.html#key597">rfc 1034</a>, <a href="../../../../index.html#key592">rfc 1035</a>, <a href="../../../../index.html#key594">rfc 1886</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002, Pat Thoyts</p>
</div>
</div></body></html>







|








321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>resolver(5)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key596">DNS</a>, <a href="../../../../index.html#key599">domain name service</a>, <a href="../../../../index.html#key598">resolver</a>, <a href="../../../../index.html#key600">rfc 1034</a>, <a href="../../../../index.html#key595">rfc 1035</a>, <a href="../../../../index.html#key597">rfc 1886</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002, Pat Thoyts</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/dns/tcllib_ip.html.

465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>inet(3), ip(7), ipv6(7)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key449">internet address</a>, <a href="../../../../index.html#key446">ip</a>, <a href="../../../../index.html#key448">ipv4</a>, <a href="../../../../index.html#key445">ipv6</a>, <a href="../../../../index.html#key447">rfc 3513</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004, Pat Thoyts<br>
Copyright &copy; 2005 Aamer Akhter &lt;[email protected]&gt;</p>







|







465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>inet(3), ip(7), ipv6(7)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key451">internet address</a>, <a href="../../../../index.html#key448">ip</a>, <a href="../../../../index.html#key450">ipv4</a>, <a href="../../../../index.html#key447">ipv6</a>, <a href="../../../../index.html#key449">rfc 3513</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004, Pat Thoyts<br>
Copyright &copy; 2005 Aamer Akhter &lt;[email protected]&gt;</p>

Changes to embedded/www/tcllib/files/modules/docstrip/docstrip.html.

448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
    trimmed away before the line is processed. Defaults to true.</p></dd>
</dl>
<p>It should be remarked that the <i class="arg">terminals</i> are often called
  &quot;options&quot; in the context of the <b class="syscmd">docstrip</b> program, since
  these specify which optional code fragments should be included.</p></dd>
<dt><a name="2"><b class="cmd">docstrip::sourcefrom</b> <i class="arg">filename</i> <i class="arg">terminals</i> <span class="opt">?<i class="arg">option</i> <i class="arg">value</i> ...?</span></a></dt>
<dd><p>The <b class="cmd">sourcefrom</b> command is a docstripping emulation of
  <b class="cmd"><a href="../../../../index.html#key431">source</a></b>. It opens the file <i class="arg">filename</i>, reads it, closes it,
  docstrips the contents as specified by the <i class="arg">terminals</i>, and
  evaluates the result in the local context of the caller, during
  which time the <b class="cmd"><a href="../../../../index.html#key83">info</a></b> <b class="method">script</b> value will be the
  <i class="arg">filename</i>. The options are passed on to <b class="cmd">fconfigure</b> to
  configure the file before its contents are read. The
  <b class="option">-metaprefix</b> is set to '#', all other <b class="cmd">extract</b>
  options have their default values.</p></dd>







|







448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
    trimmed away before the line is processed. Defaults to true.</p></dd>
</dl>
<p>It should be remarked that the <i class="arg">terminals</i> are often called
  &quot;options&quot; in the context of the <b class="syscmd">docstrip</b> program, since
  these specify which optional code fragments should be included.</p></dd>
<dt><a name="2"><b class="cmd">docstrip::sourcefrom</b> <i class="arg">filename</i> <i class="arg">terminals</i> <span class="opt">?<i class="arg">option</i> <i class="arg">value</i> ...?</span></a></dt>
<dd><p>The <b class="cmd">sourcefrom</b> command is a docstripping emulation of
  <b class="cmd"><a href="../../../../index.html#key433">source</a></b>. It opens the file <i class="arg">filename</i>, reads it, closes it,
  docstrips the contents as specified by the <i class="arg">terminals</i>, and
  evaluates the result in the local context of the caller, during
  which time the <b class="cmd"><a href="../../../../index.html#key83">info</a></b> <b class="method">script</b> value will be the
  <i class="arg">filename</i>. The options are passed on to <b class="cmd">fconfigure</b> to
  configure the file before its contents are read. The
  <b class="option">-metaprefix</b> is set to '#', all other <b class="cmd">extract</b>
  options have their default values.</p></dd>
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
files containing Tcl code. More information on this matter can be
found in the references above.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docstrip_util.html">docstrip_util</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key434">.dtx</a>, <a href="../../../../index.html#key433">LaTeX</a>, <a href="../../../../index.html#key430">docstrip</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key432">literate programming</a>, <a href="../../../../index.html#key431">source</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003–2010 Lars Hellstr&ouml;m &lt;Lars dot Hellstrom at residenset dot net&gt;</p>
</div>
</div></body></html>







|








512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
files containing Tcl code. More information on this matter can be
found in the references above.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docstrip_util.html">docstrip_util</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key436">.dtx</a>, <a href="../../../../index.html#key435">LaTeX</a>, <a href="../../../../index.html#key432">docstrip</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key434">literate programming</a>, <a href="../../../../index.html#key433">source</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003–2010 Lars Hellstr&ouml;m &lt;Lars dot Hellstrom at residenset dot net&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/docstrip/docstrip_util.html.

148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">docstrip::util</b> package is meant for collecting various
utility procedures that are mainly useful at installation or
development time. It is separate from the base package to avoid
overhead when the latter is used to <b class="cmd"><a href="../../../../index.html#key431">source</a></b> code.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Package indexing commands</a></h2>
<p>Like raw &quot;<b class="file">.tcl</b>&quot; files, code lines in docstrip source files can
be searched for package declarations and corresponding indices
constructed. A complication is however that one cannot tell from the
code blocks themselves which will fit together to make a working
package; normally that information would be found in an accompanying
&quot;<b class="file">.ins</b>&quot; file, but parsing one of those is not an easy task.
Therefore <b class="package">docstrip::util</b> introduces an alternative encoding
of such information, in the form of a declarative Tcl script: the
<i class="term"><a href="../../../../index.html#key658">catalogue</a></i> (of the contents in a source file).</p>
<p>The special commands which are available inside a catalogue are:</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">pkgProvide</b> <i class="arg">name</i> <i class="arg">version</i> <i class="arg">terminals</i></a></dt>
<dd><p>Declares that the code for a package with name <i class="arg">name</i> and
  version <i class="arg">version</i> is made up from those modules in the source
  file which are selected by the <i class="arg">terminals</i> list of guard
  expression terminals. This code should preferably not contain a







|










|







148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">docstrip::util</b> package is meant for collecting various
utility procedures that are mainly useful at installation or
development time. It is separate from the base package to avoid
overhead when the latter is used to <b class="cmd"><a href="../../../../index.html#key433">source</a></b> code.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Package indexing commands</a></h2>
<p>Like raw &quot;<b class="file">.tcl</b>&quot; files, code lines in docstrip source files can
be searched for package declarations and corresponding indices
constructed. A complication is however that one cannot tell from the
code blocks themselves which will fit together to make a working
package; normally that information would be found in an accompanying
&quot;<b class="file">.ins</b>&quot; file, but parsing one of those is not an easy task.
Therefore <b class="package">docstrip::util</b> introduces an alternative encoding
of such information, in the form of a declarative Tcl script: the
<i class="term"><a href="../../../../index.html#key662">catalogue</a></i> (of the contents in a source file).</p>
<p>The special commands which are available inside a catalogue are:</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">pkgProvide</b> <i class="arg">name</i> <i class="arg">version</i> <i class="arg">terminals</i></a></dt>
<dd><p>Declares that the code for a package with name <i class="arg">name</i> and
  version <i class="arg">version</i> is made up from those modules in the source
  file which are selected by the <i class="arg">terminals</i> list of guard
  expression terminals. This code should preferably not contain a
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
    to false, in which case there is no particular return value.</p></dd>
<dt><b class="option">-reportcmd</b> <i class="arg">commandPrefix</i></dt>
<dd><p>Every item in the report is handed as an extra argument to the
    command prefix. Since <b class="cmd">index_from_catalogue</b> would typically
    be used at a rather high level in installation scripts and the
    like, the <i class="arg">commandPrefix</i> defaults to
    &quot;<b class="cmd">puts</b> <b class="const">stdout</b>&quot;.
    Use <b class="cmd"><a href="../../../../index.html#key298">list</a></b> to effectively disable this feature. The return
    values from the prefix are ignored.</p></dd>
</dl>
<p>The <b class="cmd">package ifneeded</b> scripts that are generated contain
  one <b class="cmd">package require docstrip</b> command and one
  <b class="cmd">docstrip::sourcefrom</b> command. If the catalogue entry was
  of the <b class="cmd">pkgProvide</b> kind then the <b class="cmd">package ifneeded</b>
  script also contains the <b class="cmd">package provide</b> command.</p>







|







303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
    to false, in which case there is no particular return value.</p></dd>
<dt><b class="option">-reportcmd</b> <i class="arg">commandPrefix</i></dt>
<dd><p>Every item in the report is handed as an extra argument to the
    command prefix. Since <b class="cmd">index_from_catalogue</b> would typically
    be used at a rather high level in installation scripts and the
    like, the <i class="arg">commandPrefix</i> defaults to
    &quot;<b class="cmd">puts</b> <b class="const">stdout</b>&quot;.
    Use <b class="cmd"><a href="../../../../index.html#key300">list</a></b> to effectively disable this feature. The return
    values from the prefix are ignored.</p></dd>
</dl>
<p>The <b class="cmd">package ifneeded</b> scripts that are generated contain
  one <b class="cmd">package require docstrip</b> command and one
  <b class="cmd">docstrip::sourcefrom</b> command. If the catalogue entry was
  of the <b class="cmd">pkgProvide</b> kind then the <b class="cmd">package ifneeded</b>
  script also contains the <b class="cmd">package provide</b> command.</p>
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
    with a <i class="arg">metaprefix</i> of '##'.</p></dd>
<dt><b class="option">-report</b> <i class="arg">boolean</i></dt>
<dd><p>If the <i class="arg">boolean</i> is true (which is the default) then the return
    value will be a textual, probably multiline, report on what was
    done. If it is false then there is no particular return value.</p></dd>
<dt><b class="option">-reportcmd</b> <i class="arg">commandPrefix</i></dt>
<dd><p>Every item in the report is handed as an extra argument to this
    command prefix. Defaults to <b class="cmd"><a href="../../../../index.html#key298">list</a></b>, which effectively disables
    this feature. The return values from the prefix are ignored. Use
    for example &quot;<b class="cmd">puts</b> <b class="const">stdout</b>&quot; to get report items
    written immediately to the terminal.</p></dd>
</dl>
<p>An existing file of the same name as one to be created will be
  overwritten.</p></dd>
<dt><a name="6"><b class="cmd">docstrip::util::classical_preamble</b> <i class="arg">metaprefix</i> <i class="arg">message</i> <i class="arg">target</i> <span class="opt">?<i class="arg">source</i> <i class="arg">terminals</i> ...?</span></a></dt>







|







372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
    with a <i class="arg">metaprefix</i> of '##'.</p></dd>
<dt><b class="option">-report</b> <i class="arg">boolean</i></dt>
<dd><p>If the <i class="arg">boolean</i> is true (which is the default) then the return
    value will be a textual, probably multiline, report on what was
    done. If it is false then there is no particular return value.</p></dd>
<dt><b class="option">-reportcmd</b> <i class="arg">commandPrefix</i></dt>
<dd><p>Every item in the report is handed as an extra argument to this
    command prefix. Defaults to <b class="cmd"><a href="../../../../index.html#key300">list</a></b>, which effectively disables
    this feature. The return values from the prefix are ignored. Use
    for example &quot;<b class="cmd">puts</b> <b class="const">stdout</b>&quot; to get report items
    written immediately to the terminal.</p></dd>
</dl>
<p>An existing file of the same name as one to be created will be
  overwritten.</p></dd>
<dt><a name="6"><b class="cmd">docstrip::util::classical_preamble</b> <i class="arg">metaprefix</i> <i class="arg">message</i> <i class="arg">target</i> <span class="opt">?<i class="arg">source</i> <i class="arg">terminals</i> ...?</span></a></dt>
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
  name of a package <b class="cmd">provide</b>d by <i class="arg">text</i> when that is
  evaluated as a Tcl script, and the following odd index element is
  the corresponding version. It is used to do package indexing of
  extracted pieces of code, in the manner of <b class="cmd">pkg_mkIndex</b>.</p>
<p>One difference to <b class="cmd">pkg_mkIndex</b> is that the <i class="arg">text</i> gets
  evaluated in a safe interpreter. <b class="cmd">package require</b> commands
  are silently ignored, as are unknown commands (which includes
  <b class="cmd"><a href="../../../../index.html#key431">source</a></b> and <b class="cmd">load</b>). Other errors cause
  processing of the <i class="arg">text</i> to stop, in which case only those
  package declarations that had been encountered before the error
  will be included in the return value.</p>
<p>The <i class="arg">setup-script</i> argument can be used to customise the
  evaluation environment, if the code in <i class="arg">text</i> has some very
  special needs. The <i class="arg">setup-script</i> is evaluated in the local
  context of the <b class="cmd">packages_provided</b> procedure just before the







|







429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
  name of a package <b class="cmd">provide</b>d by <i class="arg">text</i> when that is
  evaluated as a Tcl script, and the following odd index element is
  the corresponding version. It is used to do package indexing of
  extracted pieces of code, in the manner of <b class="cmd">pkg_mkIndex</b>.</p>
<p>One difference to <b class="cmd">pkg_mkIndex</b> is that the <i class="arg">text</i> gets
  evaluated in a safe interpreter. <b class="cmd">package require</b> commands
  are silently ignored, as are unknown commands (which includes
  <b class="cmd"><a href="../../../../index.html#key433">source</a></b> and <b class="cmd">load</b>). Other errors cause
  processing of the <i class="arg">text</i> to stop, in which case only those
  package declarations that had been encountered before the error
  will be included in the return value.</p>
<p>The <i class="arg">setup-script</i> argument can be used to customise the
  evaluation environment, if the code in <i class="arg">text</i> has some very
  special needs. The <i class="arg">setup-script</i> is evaluated in the local
  context of the <b class="cmd">packages_provided</b> procedure just before the
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
    with the elements in no particular order.</p></dd>
<dt><b class="method">rotten</b></dt>
<dd><p>List the malformed guard lines (this does not include lines where
    only the expression is malformed, though). The format of the return
    value is a dictionary which maps line numbers to their contents.</p></dd>
</dl></dd>
<dt><a name="11"><b class="cmd">docstrip::util::patch</b> <i class="arg">source-var</i> <i class="arg">terminals</i> <i class="arg">fromtext</i> <i class="arg">diff</i> <span class="opt">?<i class="arg">option</i> <i class="arg">value</i> ...?</span></a></dt>
<dd><p>This command tries to apply a <b class="syscmd"><a href="../../../../index.html#key557">diff</a></b> file (for example a
  contributed patch) that was computed for a generated file to the
  <b class="syscmd"><a href="docstrip.html">docstrip</a></b> source. This can be useful if someone has
  edited a generated file, thus mistaking it for being the source.
  This command makes no presumptions which are specific for the case
  that the generated file is a Tcl script.</p>
<p><b class="cmd"><a href="../../../../index.html#key655">patch</a></b> requires that the source file to patch is kept as a
  list of lines in a variable, and the name of that variable in the
  calling context is what goes into the <i class="arg">source-var</i> argument.
  The <i class="arg">terminals</i> is the list of terminals used to extract the
  file that has been patched. The <i class="arg">diff</i> is the actual diff to
  apply (in a format as explained below) and the <i class="arg">fromtext</i> is
  the contents of the file which served as &quot;from&quot; when the diff was
  computed. Options can be used to further control the process.</p>







|





|







571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
    with the elements in no particular order.</p></dd>
<dt><b class="method">rotten</b></dt>
<dd><p>List the malformed guard lines (this does not include lines where
    only the expression is malformed, though). The format of the return
    value is a dictionary which maps line numbers to their contents.</p></dd>
</dl></dd>
<dt><a name="11"><b class="cmd">docstrip::util::patch</b> <i class="arg">source-var</i> <i class="arg">terminals</i> <i class="arg">fromtext</i> <i class="arg">diff</i> <span class="opt">?<i class="arg">option</i> <i class="arg">value</i> ...?</span></a></dt>
<dd><p>This command tries to apply a <b class="syscmd"><a href="../../../../index.html#key560">diff</a></b> file (for example a
  contributed patch) that was computed for a generated file to the
  <b class="syscmd"><a href="docstrip.html">docstrip</a></b> source. This can be useful if someone has
  edited a generated file, thus mistaking it for being the source.
  This command makes no presumptions which are specific for the case
  that the generated file is a Tcl script.</p>
<p><b class="cmd"><a href="../../../../index.html#key659">patch</a></b> requires that the source file to patch is kept as a
  list of lines in a variable, and the name of that variable in the
  calling context is what goes into the <i class="arg">source-var</i> argument.
  The <i class="arg">terminals</i> is the list of terminals used to extract the
  file that has been patched. The <i class="arg">diff</i> is the actual diff to
  apply (in a format as explained below) and the <i class="arg">fromtext</i> is
  the contents of the file which served as &quot;from&quot; when the diff was
  computed. Options can be used to further control the process.</p>
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
<dd><p>The <b class="option">-trimlines</b> value to use when extracting. Defaults to
    true.</p></dd>
</dl>
<p>The return value is in the form of a unified diff, containing only
  those hunks which were not applied or were only partially applied;
  a comment in the header of each hunk specifies which case is at
  hand. It is normally necessary to manually review both the return
  value from <b class="cmd"><a href="../../../../index.html#key655">patch</a></b> and the patched text itself, as this command
  cannot adjust comment lines to match new content.</p>
<p>An example use would look like</p>
<pre class="example">
set sourceL [split [docstrip::util::thefile from.dtx] \n]
set terminals {foo bar baz}
set fromtext [docstrip::util::thefile from.tcl]
set difftext [exec diff --unified from.tcl to.tcl]







|







634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
<dd><p>The <b class="option">-trimlines</b> value to use when extracting. Defaults to
    true.</p></dd>
</dl>
<p>The return value is in the form of a unified diff, containing only
  those hunks which were not applied or were only partially applied;
  a comment in the header of each hunk specifies which case is at
  hand. It is normally necessary to manually review both the return
  value from <b class="cmd"><a href="../../../../index.html#key659">patch</a></b> and the patched text itself, as this command
  cannot adjust comment lines to match new content.</p>
<p>An example use would look like</p>
<pre class="example">
set sourceL [split [docstrip::util::thefile from.dtx] \n]
set terminals {foo bar baz}
set fromtext [docstrip::util::thefile from.tcl]
set difftext [exec diff --unified from.tcl to.tcl]
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
<dt><a name="12"><b class="cmd">docstrip::util::thefile</b> <i class="arg">filename</i> <span class="opt">?<i class="arg">option</i> <i class="arg">value</i> ...?</span></a></dt>
<dd><p>The <b class="cmd">thefile</b> command opens the file <i class="arg">filename</i>, reads it to
  end, closes it, and returns the contents (dropping a final newline
  if there is one). The option-value pairs are
  passed on to <b class="cmd">fconfigure</b> to configure the open file channel
  before anything is read from it.</p></dd>
<dt><a name="13"><b class="cmd">docstrip::util::import_unidiff</b> <i class="arg">diff-text</i> <span class="opt">?<i class="arg">warning-var</i>?</span></a></dt>
<dd><p>This command parses a unified (<b class="syscmd"><a href="../../../../index.html#key557">diff</a></b> flags <b class="option">-U</b> and
  <b class="option">--unified</b>) format diff into the list-of-hunks format
  expected by <b class="cmd">docstrip::util::patch</b>. The <i class="arg">diff-text</i>
  argument is the text to parse and the <i class="arg">warning-var</i> is, if
  specified, the name in the calling context of a variable to which
  any warnings about parsing problems will be <b class="cmd">append</b>ed.</p>
<p>The return value is a list of <i class="term">hunks</i>. Each hunk is a list of
  five elements &quot;<i class="arg">start1</i> <i class="arg">end1</i> <i class="arg">start2</i> <i class="arg">end2</i>







|







657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
<dt><a name="12"><b class="cmd">docstrip::util::thefile</b> <i class="arg">filename</i> <span class="opt">?<i class="arg">option</i> <i class="arg">value</i> ...?</span></a></dt>
<dd><p>The <b class="cmd">thefile</b> command opens the file <i class="arg">filename</i>, reads it to
  end, closes it, and returns the contents (dropping a final newline
  if there is one). The option-value pairs are
  passed on to <b class="cmd">fconfigure</b> to configure the open file channel
  before anything is read from it.</p></dd>
<dt><a name="13"><b class="cmd">docstrip::util::import_unidiff</b> <i class="arg">diff-text</i> <span class="opt">?<i class="arg">warning-var</i>?</span></a></dt>
<dd><p>This command parses a unified (<b class="syscmd"><a href="../../../../index.html#key560">diff</a></b> flags <b class="option">-U</b> and
  <b class="option">--unified</b>) format diff into the list-of-hunks format
  expected by <b class="cmd">docstrip::util::patch</b>. The <i class="arg">diff-text</i>
  argument is the text to parse and the <i class="arg">warning-var</i> is, if
  specified, the name in the calling context of a variable to which
  any warnings about parsing problems will be <b class="cmd">append</b>ed.</p>
<p>The return value is a list of <i class="term">hunks</i>. Each hunk is a list of
  five elements &quot;<i class="arg">start1</i> <i class="arg">end1</i> <i class="arg">start2</i> <i class="arg">end2</i>
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
  in both.</p></dd>
</dl>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docstrip.html">docstrip</a>, <a href="../doctools/doctools.html">doctools</a>, doctools_fmt</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key659">.ddt</a>, <a href="../../../../index.html#key656">Tcl module</a>, <a href="../../../../index.html#key658">catalogue</a>, <a href="../../../../index.html#key557">diff</a>, <a href="../../../../index.html#key430">docstrip</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key432">literate programming</a>, <a href="../../../../index.html#key660">module</a>, <a href="../../../../index.html#key657">package indexing</a>, <a href="../../../../index.html#key655">patch</a>, <a href="../../../../index.html#key431">source</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003–2010 Lars Hellstr&ouml;m &lt;Lars dot Hellstrom at residenset dot net&gt;</p>
</div>
</div></body></html>







|








680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
  in both.</p></dd>
</dl>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docstrip.html">docstrip</a>, <a href="../doctools/doctools.html">doctools</a>, doctools_fmt</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key663">.ddt</a>, <a href="../../../../index.html#key660">Tcl module</a>, <a href="../../../../index.html#key662">catalogue</a>, <a href="../../../../index.html#key560">diff</a>, <a href="../../../../index.html#key432">docstrip</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key434">literate programming</a>, <a href="../../../../index.html#key664">module</a>, <a href="../../../../index.html#key661">package indexing</a>, <a href="../../../../index.html#key659">patch</a>, <a href="../../../../index.html#key433">source</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003–2010 Lars Hellstr&ouml;m &lt;Lars dot Hellstrom at residenset dot net&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools/changelog.html.

137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<li><a href="#3"><b class="cmd">::doctools::changelog::toDoctools</b> <i class="arg">title</i> <i class="arg">module</i> <i class="arg">version</i> <i class="arg">entries</i></a></li>
<li><a href="#4"><b class="cmd">::doctools::changelog::merge</b> <i class="arg">entries</i>...</a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides Tcl commands for the processing and reformatting
of text in the &quot;<b class="file">ChangeLog</b>&quot; format generated by <b class="syscmd"><a href="../../../../index.html#key444">emacs</a></b>.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::changelog::scan</b> <i class="arg">text</i></a></dt>
<dd><p>The command takes the <i class="arg">text</i> and parses it under the assumption
that it contains a ChangeLog as generated by <b class="syscmd"><a href="../../../../index.html#key444">emacs</a></b>. It
returns a data structure describing the contents of this ChangeLog.</p>
<p>This data structure is a list where each element describes one entry
in the ChangeLog. Each element/entry is then a list of three elements
describing the date of the entry, its author, and the comments made,
in this order. The last item in each element/entry, the comments, is a
list of sections. Each section is described by a list containing two
elements, a list of file names, and a string containing the true







|





|







137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<li><a href="#3"><b class="cmd">::doctools::changelog::toDoctools</b> <i class="arg">title</i> <i class="arg">module</i> <i class="arg">version</i> <i class="arg">entries</i></a></li>
<li><a href="#4"><b class="cmd">::doctools::changelog::merge</b> <i class="arg">entries</i>...</a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides Tcl commands for the processing and reformatting
of text in the &quot;<b class="file">ChangeLog</b>&quot; format generated by <b class="syscmd"><a href="../../../../index.html#key446">emacs</a></b>.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::changelog::scan</b> <i class="arg">text</i></a></dt>
<dd><p>The command takes the <i class="arg">text</i> and parses it under the assumption
that it contains a ChangeLog as generated by <b class="syscmd"><a href="../../../../index.html#key446">emacs</a></b>. It
returns a data structure describing the contents of this ChangeLog.</p>
<p>This data structure is a list where each element describes one entry
in the ChangeLog. Each element/entry is then a list of three elements
describing the date of the entry, its author, and the comments made,
in this order. The last item in each element/entry, the comments, is a
list of sections. Each section is described by a list containing two
elements, a list of file names, and a string containing the true
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key443">changelog</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key444">emacs</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003-2013 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key445">changelog</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key446">emacs</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003-2013 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools/cvs.html.

136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<li><a href="#1"><b class="cmd">::doctools::cvs::scanLog</b> <i class="arg">text</i> <i class="arg">evar</i> <i class="arg">cvar</i> <i class="arg">fvar</i></a></li>
<li><a href="#2"><b class="cmd">::doctools::cvs::toChangeLog</b> <i class="arg">evar</i> <i class="arg">cvar</i> <i class="arg">fvar</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides Tcl commands for the processing and reformatting
text in the format generated by the <b class="syscmd"><a href="../../../../index.html#key767">cvs log</a></b> command.</p>
<p>The commands <b class="cmd">::doctools::cvs::scanLog</b>
and <b class="cmd">::doctools::cvs::toChangeLog</b> are derived from code found on
the <a href="http://wiki.tcl.tk">Tcl'ers Wiki</a>. See the references at the
end of the page.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::cvs::scanLog</b> <i class="arg">text</i> <i class="arg">evar</i> <i class="arg">cvar</i> <i class="arg">fvar</i></a></dt>
<dd><p>The command takes the <i class="arg">text</i> and parses it under the assumption
that it contains a CVS log as generated by <b class="syscmd"><a href="../../../../index.html#key767">cvs log</a></b>. The
resulting information is stored in the variables whose names were
specified via <i class="arg">evar</i>, <i class="arg">cvar</i>, and <i class="arg">fvar</i>.</p>
<p>Already existing information in the referenced variables is preserved,
allowing the caller to merge data from multiple logs into one
database.</p>
<dl class="arguments">
<dt>varname <i class="arg">evar</i> (in)</dt>







|









|







136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<li><a href="#1"><b class="cmd">::doctools::cvs::scanLog</b> <i class="arg">text</i> <i class="arg">evar</i> <i class="arg">cvar</i> <i class="arg">fvar</i></a></li>
<li><a href="#2"><b class="cmd">::doctools::cvs::toChangeLog</b> <i class="arg">evar</i> <i class="arg">cvar</i> <i class="arg">fvar</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides Tcl commands for the processing and reformatting
text in the format generated by the <b class="syscmd"><a href="../../../../index.html#key771">cvs log</a></b> command.</p>
<p>The commands <b class="cmd">::doctools::cvs::scanLog</b>
and <b class="cmd">::doctools::cvs::toChangeLog</b> are derived from code found on
the <a href="http://wiki.tcl.tk">Tcl'ers Wiki</a>. See the references at the
end of the page.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::cvs::scanLog</b> <i class="arg">text</i> <i class="arg">evar</i> <i class="arg">cvar</i> <i class="arg">fvar</i></a></dt>
<dd><p>The command takes the <i class="arg">text</i> and parses it under the assumption
that it contains a CVS log as generated by <b class="syscmd"><a href="../../../../index.html#key771">cvs log</a></b>. The
resulting information is stored in the variables whose names were
specified via <i class="arg">evar</i>, <i class="arg">cvar</i>, and <i class="arg">fvar</i>.</p>
<p>Already existing information in the referenced variables is preserved,
allowing the caller to merge data from multiple logs into one
database.</p>
<dl class="arguments">
<dt>varname <i class="arg">evar</i> (in)</dt>
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
</dl></dd>
<dt><a name="2"><b class="cmd">::doctools::cvs::toChangeLog</b> <i class="arg">evar</i> <i class="arg">cvar</i> <i class="arg">fvar</i></a></dt>
<dd><p>]
The three arguments for this command are the same as the last three
arguments of the command <b class="cmd">::doctools::cvs::scanLog</b>. This command
however expects them to be filled with information about one or more
logs. It takes this information and converts it into a text in the
format of a ChangeLog as accepted and generated by <b class="syscmd"><a href="../../../../index.html#key444">emacs</a></b>. The
constructed text is returned as the result of the command.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>[uri, http://wiki.tcl.tk/log2changelog</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key443">changelog</a>, <a href="../../../../index.html#key766">cvs</a>, <a href="../../../../index.html#key767">cvs log</a>, <a href="../../../../index.html#key444">emacs</a>, <a href="../../../../index.html#key73">log</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003-2008 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|















|








180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
</dl></dd>
<dt><a name="2"><b class="cmd">::doctools::cvs::toChangeLog</b> <i class="arg">evar</i> <i class="arg">cvar</i> <i class="arg">fvar</i></a></dt>
<dd><p>]
The three arguments for this command are the same as the last three
arguments of the command <b class="cmd">::doctools::cvs::scanLog</b>. This command
however expects them to be filled with information about one or more
logs. It takes this information and converts it into a text in the
format of a ChangeLog as accepted and generated by <b class="syscmd"><a href="../../../../index.html#key446">emacs</a></b>. The
constructed text is returned as the result of the command.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>[uri, http://wiki.tcl.tk/log2changelog</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key445">changelog</a>, <a href="../../../../index.html#key770">cvs</a>, <a href="../../../../index.html#key771">cvs log</a>, <a href="../../../../index.html#key446">emacs</a>, <a href="../../../../index.html#key73">log</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003-2008 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools/docidx.html.

158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
<li><a href="#15"><i class="arg">objectName</i> <b class="method">warnings</b></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class for the creation of objects able to
process and convert text written in the <i class="term"><a href="../../../../index.html#key178">docidx</a></i> markup language
into any output format X for which a <i class="term"><a href="../../../../index.html#key651">formatting engine</a></i> is
available.</p>
<p>A reader interested in the markup language itself should start with
the <i class="term"><a href="docidx_lang_intro.html">docidx language introduction</a></i> and proceed from there to
the formal specifications, i.e. the <i class="term"><a href="docidx_lang_syntax.html">docidx language syntax</a></i>
and the <i class="term"><a href="docidx_lang_cmdref.html">docidx language command reference</a></i>.</p>
<p>If on the other hand the reader wishes to write her own formatting
engine for some format, i.e. is a <i class="term">plugin writer</i> then reading







|







158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
<li><a href="#15"><i class="arg">objectName</i> <b class="method">warnings</b></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class for the creation of objects able to
process and convert text written in the <i class="term"><a href="../../../../index.html#key178">docidx</a></i> markup language
into any output format X for which a <i class="term"><a href="../../../../index.html#key655">formatting engine</a></i> is
available.</p>
<p>A reader interested in the markup language itself should start with
the <i class="term"><a href="docidx_lang_intro.html">docidx language introduction</a></i> and proceed from there to
the formal specifications, i.e. the <i class="term"><a href="docidx_lang_syntax.html">docidx language syntax</a></i>
and the <i class="term"><a href="docidx_lang_cmdref.html">docidx language command reference</a></i>.</p>
<p>If on the other hand the reader wishes to write her own formatting
engine for some format, i.e. is a <i class="term">plugin writer</i> then reading

Changes to embedded/www/tcllib/files/modules/doctools/docidx_intro.html.

165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<li><p>At last, but not least, <i class="term">plugin writers</i> have to understand the
interaction between the <b class="package"><a href="../doctools2idx/idx_container.html">doctools::idx</a></b> package and its
plugins, as described in the <i class="term"><a href="docidx_plugin_apiref.html">docidx plugin API reference</a></i>.</p></li>
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">RELATED FORMATS</a></h2>
<p>docidx does not stand alone, it has two companion formats. These are
called <i class="term"><a href="../../../../index.html#key254">doctoc</a></i> and <i class="term"><a href="../../../../index.html#key179">doctools</a></i>, and they are for the markup
of <i class="term">tables of contents</i>, and general documentation,
respectively.
They are described in their own sets of documents, starting at the
<i class="term"><a href="doctoc_intro.html">doctoc introduction</a></i> and the <i class="term"><a href="doctools_intro.html">doctools introduction</a></i>,
respectively.</p>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>







|







165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<li><p>At last, but not least, <i class="term">plugin writers</i> have to understand the
interaction between the <b class="package"><a href="../doctools2idx/idx_container.html">doctools::idx</a></b> package and its
plugins, as described in the <i class="term"><a href="docidx_plugin_apiref.html">docidx plugin API reference</a></i>.</p></li>
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">RELATED FORMATS</a></h2>
<p>docidx does not stand alone, it has two companion formats. These are
called <i class="term"><a href="../../../../index.html#key256">doctoc</a></i> and <i class="term"><a href="../../../../index.html#key179">doctools</a></i>, and they are for the markup
of <i class="term">tables of contents</i>, and general documentation,
respectively.
They are described in their own sets of documents, starting at the
<i class="term"><a href="doctoc_intro.html">doctoc introduction</a></i> and the <i class="term"><a href="doctools_intro.html">doctools introduction</a></i>,
respectively.</p>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>

Changes to embedded/www/tcllib/files/modules/doctools/docidx_lang_cmdref.html.

215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docidx_intro.html">docidx_intro</a>, <a href="docidx_lang_faq.html">docidx_lang_faq</a>, <a href="docidx_lang_intro.html">docidx_lang_intro</a>, <a href="docidx_lang_syntax.html">docidx_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key363">docidx commands</a>, <a href="../../../../index.html#key366">docidx language</a>, <a href="../../../../index.html#key247">docidx markup</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docidx_intro.html">docidx_intro</a>, <a href="docidx_lang_faq.html">docidx_lang_faq</a>, <a href="docidx_lang_intro.html">docidx_lang_intro</a>, <a href="docidx_lang_syntax.html">docidx_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key365">docidx commands</a>, <a href="../../../../index.html#key368">docidx language</a>, <a href="../../../../index.html#key247">docidx markup</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools/docidx_lang_faq.html.

172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docidx_lang_cmdref.html">docidx_lang_cmdref</a>, <a href="docidx_lang_intro.html">docidx_lang_intro</a>, <a href="docidx_lang_syntax.html">docidx_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key363">docidx commands</a>, <a href="../../../../index.html#key366">docidx language</a>, <a href="../../../../index.html#key247">docidx markup</a>, <a href="../../../../index.html#key364">docidx syntax</a>, <a href="../../../../index.html#key365">examples</a>, <a href="../../../../index.html#key362">faq</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docidx_lang_cmdref.html">docidx_lang_cmdref</a>, <a href="docidx_lang_intro.html">docidx_lang_intro</a>, <a href="docidx_lang_syntax.html">docidx_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key365">docidx commands</a>, <a href="../../../../index.html#key368">docidx language</a>, <a href="../../../../index.html#key247">docidx markup</a>, <a href="../../../../index.html#key366">docidx syntax</a>, <a href="../../../../index.html#key367">examples</a>, <a href="../../../../index.html#key364">faq</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools/docidx_lang_intro.html.

176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
[index_end]
</pre>
<p>In the above example the command <b class="cmd">key</b> is used to declare the
keyword phrases we wish to be part of the index.</p>
<p>However a truly useful index does not only list the keyword phrases,
but will also contain references to documents associated with the
keywords. Here is a made-up index for all the manpages in the module
<i class="term"><a href="../../../../index.html#key581">base64</a></i>:</p>
<pre class="example">
[index_begin tcllib/base64 {De- &amp; Encoding}]
[key base64]
[<b class="cmd">manpage base64</b>]
[key encoding]
[<b class="cmd">manpage base64</b>]
[<b class="cmd">manpage uuencode</b>]







|







176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
[index_end]
</pre>
<p>In the above example the command <b class="cmd">key</b> is used to declare the
keyword phrases we wish to be part of the index.</p>
<p>However a truly useful index does not only list the keyword phrases,
but will also contain references to documents associated with the
keywords. Here is a made-up index for all the manpages in the module
<i class="term"><a href="../../../../index.html#key584">base64</a></i>:</p>
<pre class="example">
[index_begin tcllib/base64 {De- &amp; Encoding}]
[key base64]
[<b class="cmd">manpage base64</b>]
[key encoding]
[<b class="cmd">manpage base64</b>]
[<b class="cmd">manpage uuencode</b>]
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docidx_intro.html">docidx_intro</a>, <a href="docidx_lang_cmdref.html">docidx_lang_cmdref</a>, <a href="docidx_lang_syntax.html">docidx_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key363">docidx commands</a>, <a href="../../../../index.html#key366">docidx language</a>, <a href="../../../../index.html#key247">docidx markup</a>, <a href="../../../../index.html#key364">docidx syntax</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docidx_intro.html">docidx_intro</a>, <a href="docidx_lang_cmdref.html">docidx_lang_cmdref</a>, <a href="docidx_lang_syntax.html">docidx_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key365">docidx commands</a>, <a href="../../../../index.html#key368">docidx language</a>, <a href="../../../../index.html#key247">docidx markup</a>, <a href="../../../../index.html#key366">docidx syntax</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools/docidx_lang_syntax.html.

202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docidx_intro.html">docidx_intro</a>, <a href="docidx_lang_cmdref.html">docidx_lang_cmdref</a>, <a href="docidx_lang_faq.html">docidx_lang_faq</a>, <a href="docidx_lang_intro.html">docidx_lang_intro</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key363">docidx commands</a>, <a href="../../../../index.html#key366">docidx language</a>, <a href="../../../../index.html#key247">docidx markup</a>, <a href="../../../../index.html#key364">docidx syntax</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docidx_intro.html">docidx_intro</a>, <a href="docidx_lang_cmdref.html">docidx_lang_cmdref</a>, <a href="docidx_lang_faq.html">docidx_lang_faq</a>, <a href="docidx_lang_intro.html">docidx_lang_intro</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key365">docidx commands</a>, <a href="../../../../index.html#key368">docidx language</a>, <a href="../../../../index.html#key247">docidx markup</a>, <a href="../../../../index.html#key366">docidx syntax</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools/docidx_plugin_apiref.html.

157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<li><a href="#20"><b class="cmd">idx_varset</b> <i class="arg">varname</i> <i class="arg">text</i></a></li>
<li><a href="#21"><b class="cmd">fmt_plain_text</b> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This document is intended for <i class="term">plugin writers</i>, i.e. developers
wishing to write an index <i class="term"><a href="../../../../index.html#key651">formatting engine</a></i> for some output
format X.</p>
<p>It specifies the interaction between the <b class="package"><a href="../doctools2idx/idx_container.html">doctools::idx</a></b>
package and its plugins, i.e. the interface any index formatting
engine has to comply with.</p>
<p>This document deals with version 1 of the interface.</p>
<p>A reader who is on the other hand more interested in the markup
language itself should start with the







|







157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<li><a href="#20"><b class="cmd">idx_varset</b> <i class="arg">varname</i> <i class="arg">text</i></a></li>
<li><a href="#21"><b class="cmd">fmt_plain_text</b> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This document is intended for <i class="term">plugin writers</i>, i.e. developers
wishing to write an index <i class="term"><a href="../../../../index.html#key655">formatting engine</a></i> for some output
format X.</p>
<p>It specifies the interaction between the <b class="package"><a href="../doctools2idx/idx_container.html">doctools::idx</a></b>
package and its plugins, i.e. the interface any index formatting
engine has to comply with.</p>
<p>This document deals with version 1 of the interface.</p>
<p>A reader who is on the other hand more interested in the markup
language itself should start with the
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docidx_intro.html">docidx_intro</a>, <a href="docidx_lang_cmdref.html">docidx_lang_cmdref</a>, <a href="docidx_lang_faq.html">docidx_lang_faq</a>, <a href="docidx_lang_intro.html">docidx_lang_intro</a>, <a href="docidx_lang_syntax.html">docidx_lang_syntax</a>, <a href="../doctools2idx/idx_container.html">doctools::idx</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key651">formatting engine</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key771">index formatter</a>, <a href="../../../../index.html#key770">keywords</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="docidx_intro.html">docidx_intro</a>, <a href="docidx_lang_cmdref.html">docidx_lang_cmdref</a>, <a href="docidx_lang_faq.html">docidx_lang_faq</a>, <a href="docidx_lang_intro.html">docidx_lang_intro</a>, <a href="docidx_lang_syntax.html">docidx_lang_syntax</a>, <a href="../doctools2idx/idx_container.html">doctools::idx</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key655">formatting engine</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key775">index formatter</a>, <a href="../../../../index.html#key774">keywords</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools/doctoc.html.

157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
<li><a href="#14"><i class="arg">objectName</i> <b class="method">setparam</b> <i class="arg">name</i> <i class="arg">value</i></a></li>
<li><a href="#15"><i class="arg">objectName</i> <b class="method">warnings</b></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class for the creation of objects able to
process and convert text written in the <i class="term"><a href="../../../../index.html#key254">doctoc</a></i> markup language
into any output format X for which a <i class="term"><a href="../../../../index.html#key651">formatting engine</a></i> is
available.</p>
<p>A reader interested in the markup language itself should start with
the <i class="term"><a href="doctoc_lang_intro.html">doctoc language introduction</a></i> and proceed from there to
the formal specifications, i.e. the <i class="term"><a href="doctoc_lang_syntax.html">doctoc language syntax</a></i>
and the <i class="term"><a href="doctoc_lang_cmdref.html">doctoc language command reference</a></i>.</p>
<p>If on the other hand the reader wishes to write her own formatting
engine for some format, i.e. is a <i class="term">plugin writer</i> then reading







|
|







157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
<li><a href="#14"><i class="arg">objectName</i> <b class="method">setparam</b> <i class="arg">name</i> <i class="arg">value</i></a></li>
<li><a href="#15"><i class="arg">objectName</i> <b class="method">warnings</b></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class for the creation of objects able to
process and convert text written in the <i class="term"><a href="../../../../index.html#key256">doctoc</a></i> markup language
into any output format X for which a <i class="term"><a href="../../../../index.html#key655">formatting engine</a></i> is
available.</p>
<p>A reader interested in the markup language itself should start with
the <i class="term"><a href="doctoc_lang_intro.html">doctoc language introduction</a></i> and proceed from there to
the formal specifications, i.e. the <i class="term"><a href="doctoc_lang_syntax.html">doctoc language syntax</a></i>
and the <i class="term"><a href="doctoc_lang_cmdref.html">doctoc language command reference</a></i>.</p>
<p>If on the other hand the reader wishes to write her own formatting
engine for some format, i.e. is a <i class="term">plugin writer</i> then reading
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
<span class="sectref"><a href="#subsection4">OBJECT CONFIGURATION</a></span>.</p></dd>
<dt><a name="9"><i class="arg">objectName</i> <b class="method">destroy</b></a></dt>
<dd><p>This method destroys the object it is invoked for.</p></dd>
<dt><a name="10"><i class="arg">objectName</i> <b class="method">format</b> <i class="arg">text</i></a></dt>
<dd><p>This method runs the <i class="arg">text</i> through the configured formatting
engine and returns the generated string as its result. An error will
be thrown if no <b class="option">-format</b> was configured for the object.</p>
<p>The method assumes that the <i class="arg">text</i> is in <i class="term"><a href="../../../../index.html#key254">doctoc</a></i> format as
specified in the companion document <i class="term">doctoc_fmt</i>. Errors will be
thrown otherwise.</p></dd>
<dt><a name="11"><i class="arg">objectName</i> <b class="method">map</b> <i class="arg">symbolic</i> <i class="arg">actual</i></a></dt>
<dd><p>This methods add one entry to the per-object mapping from
<i class="arg">symbolic</i> filenames to the <i class="arg">actual</i> uris.
The object just stores this mapping and makes it available to the
configured formatting engine through the command <b class="cmd">dt_fmap</b>.







|







241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
<span class="sectref"><a href="#subsection4">OBJECT CONFIGURATION</a></span>.</p></dd>
<dt><a name="9"><i class="arg">objectName</i> <b class="method">destroy</b></a></dt>
<dd><p>This method destroys the object it is invoked for.</p></dd>
<dt><a name="10"><i class="arg">objectName</i> <b class="method">format</b> <i class="arg">text</i></a></dt>
<dd><p>This method runs the <i class="arg">text</i> through the configured formatting
engine and returns the generated string as its result. An error will
be thrown if no <b class="option">-format</b> was configured for the object.</p>
<p>The method assumes that the <i class="arg">text</i> is in <i class="term"><a href="../../../../index.html#key256">doctoc</a></i> format as
specified in the companion document <i class="term">doctoc_fmt</i>. Errors will be
thrown otherwise.</p></dd>
<dt><a name="11"><i class="arg">objectName</i> <b class="method">map</b> <i class="arg">symbolic</i> <i class="arg">actual</i></a></dt>
<dd><p>This methods add one entry to the per-object mapping from
<i class="arg">symbolic</i> filenames to the <i class="arg">actual</i> uris.
The object just stores this mapping and makes it available to the
configured formatting engine through the command <b class="cmd">dt_fmap</b>.
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctoc_intro.html">doctoc_intro</a>, <a href="doctoc_lang_cmdref.html">doctoc_lang_cmdref</a>, <a href="doctoc_lang_intro.html">doctoc_lang_intro</a>, <a href="doctoc_lang_syntax.html">doctoc_lang_syntax</a>, <a href="doctoc_plugin_apiref.html">doctoc_plugin_apiref</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key19">TMML</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key254">doctoc</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key186">latex</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a>, <a href="../../../../index.html#key183">wiki</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003-2014 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctoc_intro.html">doctoc_intro</a>, <a href="doctoc_lang_cmdref.html">doctoc_lang_cmdref</a>, <a href="doctoc_lang_intro.html">doctoc_lang_intro</a>, <a href="doctoc_lang_syntax.html">doctoc_lang_syntax</a>, <a href="doctoc_plugin_apiref.html">doctoc_plugin_apiref</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key19">TMML</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key256">doctoc</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key186">latex</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a>, <a href="../../../../index.html#key183">wiki</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003-2014 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools/doctoc_intro.html.

121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<li class="section"><a href="#see-also">See Also</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#category">Category</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p><i class="term"><a href="../../../../index.html#key254">doctoc</a></i> (short for <em>documentation tables of contents</em>)
stands for a set of related, yet different, entities which are working
together for the easy creation and transformation of tables of
contents for documentation. These are</p>
<ol class="enumerated">
<li><p>A tcl based language for the semantic markup of a table of
contents. Markup is represented by Tcl commands.</p></li>
<li><p>A package providing the ability to read and transform texts written in







|







121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<li class="section"><a href="#see-also">See Also</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#category">Category</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p><i class="term"><a href="../../../../index.html#key256">doctoc</a></i> (short for <em>documentation tables of contents</em>)
stands for a set of related, yet different, entities which are working
together for the easy creation and transformation of tables of
contents for documentation. These are</p>
<ol class="enumerated">
<li><p>A tcl based language for the semantic markup of a table of
contents. Markup is represented by Tcl commands.</p></li>
<li><p>A package providing the ability to read and transform texts written in
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
time to refresh her memory.</p>
<p>While a document is written the <b class="syscmd">dtp</b> application can be used
to validate it, and after completion it also performs the conversion
into the chosen system of visual markup, be it *roff, HTML, plain
text, wiki, etc. The simpler <b class="syscmd"><a href="../dtplite/pkg_dtplite.html">dtplite</a></b> application makes
internal use of doctoc when handling directories of documentation,
automatically generating a proper table of contents for them.</p></li>
<li><p>A <i class="term">processor</i> of documentation written in the <i class="term"><a href="../../../../index.html#key254">doctoc</a></i>
markup language has to know which tools are available for use.</p>
<p>The main tool is the aforementioned <b class="syscmd">dtp</b> application provided
by Tcllib. The simpler <b class="syscmd"><a href="../dtplite/pkg_dtplite.html">dtplite</a></b> does not expose doctoc to the
user.
At the bottom level, common to both applications, however sits the
package <b class="package">doctoools::toc</b>, providing the basic facilities to
read and process files containing text in the doctoc format.</p></li>







|







150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
time to refresh her memory.</p>
<p>While a document is written the <b class="syscmd">dtp</b> application can be used
to validate it, and after completion it also performs the conversion
into the chosen system of visual markup, be it *roff, HTML, plain
text, wiki, etc. The simpler <b class="syscmd"><a href="../dtplite/pkg_dtplite.html">dtplite</a></b> application makes
internal use of doctoc when handling directories of documentation,
automatically generating a proper table of contents for them.</p></li>
<li><p>A <i class="term">processor</i> of documentation written in the <i class="term"><a href="../../../../index.html#key256">doctoc</a></i>
markup language has to know which tools are available for use.</p>
<p>The main tool is the aforementioned <b class="syscmd">dtp</b> application provided
by Tcllib. The simpler <b class="syscmd"><a href="../dtplite/pkg_dtplite.html">dtplite</a></b> does not expose doctoc to the
user.
At the bottom level, common to both applications, however sits the
package <b class="package">doctoools::toc</b>, providing the basic facilities to
read and process files containing text in the doctoc format.</p></li>

Changes to embedded/www/tcllib/files/modules/doctools/doctoc_lang_cmdref.html.

220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctoc_intro.html">doctoc_intro</a>, <a href="doctoc_lang_faq.html">doctoc_lang_faq</a>, <a href="doctoc_lang_intro.html">doctoc_lang_intro</a>, <a href="doctoc_lang_syntax.html">doctoc_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key507">doctoc commands</a>, <a href="../../../../index.html#key506">doctoc language</a>, <a href="../../../../index.html#key382">doctoc markup</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctoc_intro.html">doctoc_intro</a>, <a href="doctoc_lang_faq.html">doctoc_lang_faq</a>, <a href="doctoc_lang_intro.html">doctoc_lang_intro</a>, <a href="doctoc_lang_syntax.html">doctoc_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key509">doctoc commands</a>, <a href="../../../../index.html#key508">doctoc language</a>, <a href="../../../../index.html#key384">doctoc markup</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools/doctoc_lang_faq.html.

172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctoc_lang_cmdref.html">doctoc_lang_cmdref</a>, <a href="doctoc_lang_intro.html">doctoc_lang_intro</a>, <a href="doctoc_lang_syntax.html">doctoc_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key507">doctoc commands</a>, <a href="../../../../index.html#key506">doctoc language</a>, <a href="../../../../index.html#key382">doctoc markup</a>, <a href="../../../../index.html#key540">doctoc syntax</a>, <a href="../../../../index.html#key365">examples</a>, <a href="../../../../index.html#key362">faq</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctoc_lang_cmdref.html">doctoc_lang_cmdref</a>, <a href="doctoc_lang_intro.html">doctoc_lang_intro</a>, <a href="doctoc_lang_syntax.html">doctoc_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key509">doctoc commands</a>, <a href="../../../../index.html#key508">doctoc language</a>, <a href="../../../../index.html#key384">doctoc markup</a>, <a href="../../../../index.html#key543">doctoc syntax</a>, <a href="../../../../index.html#key367">examples</a>, <a href="../../../../index.html#key364">faq</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools/doctoc_lang_intro.html.

347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctoc_intro.html">doctoc_intro</a>, <a href="doctoc_lang_cmdref.html">doctoc_lang_cmdref</a>, <a href="doctoc_lang_syntax.html">doctoc_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key507">doctoc commands</a>, <a href="../../../../index.html#key506">doctoc language</a>, <a href="../../../../index.html#key382">doctoc markup</a>, <a href="../../../../index.html#key540">doctoc syntax</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctoc_intro.html">doctoc_intro</a>, <a href="doctoc_lang_cmdref.html">doctoc_lang_cmdref</a>, <a href="doctoc_lang_syntax.html">doctoc_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key509">doctoc commands</a>, <a href="../../../../index.html#key508">doctoc language</a>, <a href="../../../../index.html#key384">doctoc markup</a>, <a href="../../../../index.html#key543">doctoc syntax</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools/doctoc_lang_syntax.html.

191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctoc_intro.html">doctoc_intro</a>, <a href="doctoc_lang_cmdref.html">doctoc_lang_cmdref</a>, <a href="doctoc_lang_faq.html">doctoc_lang_faq</a>, <a href="doctoc_lang_intro.html">doctoc_lang_intro</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key507">doctoc commands</a>, <a href="../../../../index.html#key506">doctoc language</a>, <a href="../../../../index.html#key382">doctoc markup</a>, <a href="../../../../index.html#key540">doctoc syntax</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctoc_intro.html">doctoc_intro</a>, <a href="doctoc_lang_cmdref.html">doctoc_lang_cmdref</a>, <a href="doctoc_lang_faq.html">doctoc_lang_faq</a>, <a href="doctoc_lang_intro.html">doctoc_lang_intro</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key509">doctoc commands</a>, <a href="../../../../index.html#key508">doctoc language</a>, <a href="../../../../index.html#key384">doctoc markup</a>, <a href="../../../../index.html#key543">doctoc syntax</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools/doctoc_plugin_apiref.html.

157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<li><a href="#20"><b class="cmd">toc_varset</b> <i class="arg">varname</i> <i class="arg">text</i></a></li>
<li><a href="#21"><b class="cmd">fmt_plain_text</b> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This document is intended for <i class="term">plugin writers</i>, i.e. developers
wishing to write a toc <i class="term"><a href="../../../../index.html#key651">formatting engine</a></i> for some output
format X.</p>
<p>It specifies the interaction between the <b class="package"><a href="doctoc.html">doctools::toc</a></b>
package and its plugins, i.e. the interface any toc formatting engine
has to comply with.</p>
<p>This document deals with version 1 of the interface.</p>
<p>A reader who is on the other hand more interested in the markup
language itself should start with the







|







157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<li><a href="#20"><b class="cmd">toc_varset</b> <i class="arg">varname</i> <i class="arg">text</i></a></li>
<li><a href="#21"><b class="cmd">fmt_plain_text</b> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This document is intended for <i class="term">plugin writers</i>, i.e. developers
wishing to write a toc <i class="term"><a href="../../../../index.html#key655">formatting engine</a></i> for some output
format X.</p>
<p>It specifies the interaction between the <b class="package"><a href="doctoc.html">doctools::toc</a></b>
package and its plugins, i.e. the interface any toc formatting engine
has to comply with.</p>
<p>This document deals with version 1 of the interface.</p>
<p>A reader who is on the other hand more interested in the markup
language itself should start with the
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctoc_intro.html">doctoc_intro</a>, <a href="doctoc_lang_cmdref.html">doctoc_lang_cmdref</a>, <a href="doctoc_lang_faq.html">doctoc_lang_faq</a>, <a href="doctoc_lang_intro.html">doctoc_lang_intro</a>, <a href="doctoc_lang_syntax.html">doctoc_lang_syntax</a>, <a href="doctoc.html">doctools::toc</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key651">formatting engine</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key136">semantic markup</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a>, <a href="../../../../index.html#key712">toc formatter</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctoc_intro.html">doctoc_intro</a>, <a href="doctoc_lang_cmdref.html">doctoc_lang_cmdref</a>, <a href="doctoc_lang_faq.html">doctoc_lang_faq</a>, <a href="doctoc_lang_intro.html">doctoc_lang_intro</a>, <a href="doctoc_lang_syntax.html">doctoc_lang_syntax</a>, <a href="doctoc.html">doctools::toc</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key655">formatting engine</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key136">semantic markup</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a>, <a href="../../../../index.html#key716">toc formatter</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools/doctools.html.

159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class for the creation of objects able to
process and convert text written in the <i class="term"><a href="../../../../index.html#key179">doctools</a></i> markup
language into any output format X for which a
<i class="term"><a href="../../../../index.html#key651">formatting engine</a></i> is available.</p>
<p>A reader interested in the markup language itself should start with
the <i class="term"><a href="doctools_lang_intro.html">doctools language introduction</a></i> and proceed from there to
the formal specifications, i.e. the <i class="term"><a href="doctools_lang_syntax.html">doctools language syntax</a></i>
and the <i class="term"><a href="doctools_lang_cmdref.html">doctools language command reference</a></i>.</p>
<p>If on the other hand the reader wishes to write her own formatting
engine for some format, i.e. is a <i class="term">plugin writer</i> then reading
and understanding the <i class="term"><a href="doctools_plugin_apiref.html">doctools plugin API reference</a></i> is an







|







159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class for the creation of objects able to
process and convert text written in the <i class="term"><a href="../../../../index.html#key179">doctools</a></i> markup
language into any output format X for which a
<i class="term"><a href="../../../../index.html#key655">formatting engine</a></i> is available.</p>
<p>A reader interested in the markup language itself should start with
the <i class="term"><a href="doctools_lang_intro.html">doctools language introduction</a></i> and proceed from there to
the formal specifications, i.e. the <i class="term"><a href="doctools_lang_syntax.html">doctools language syntax</a></i>
and the <i class="term"><a href="doctools_lang_cmdref.html">doctools language command reference</a></i>.</p>
<p>If on the other hand the reader wishes to write her own formatting
engine for some format, i.e. is a <i class="term">plugin writer</i> then reading
and understanding the <i class="term"><a href="doctools_plugin_apiref.html">doctools plugin API reference</a></i> is an
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
base path for resolution of relative include paths. If this option is
not set (empty string) the value of <b class="option">-file</b> is used instead.</p>
<p>Note that <b class="option">-file</b> and <b class="option">-ibase</b>, while similar looking,
are actually very different. The value of <b class="option">-file</b> is used by
some engines for the generation of proper relative references between
output documents (HTML). As such this is a <i class="term">destination</i>
path. The <b class="option">-ibase</b> on the other hand is used to resolve
relative include paths, and as such deals with <i class="term"><a href="../../../../index.html#key431">source</a></i> paths.</p>
<p>The default value of this option is the empty string.</p></dd>
<dt><b class="option">-module</b> <i class="arg">text</i></dt>
<dd><p>The argument of this option is stored in the object and made available
to the configured formatting engine through the command <b class="cmd">dt_module</b>.
This command is described in more detail in the companion document
<i class="term">doctools_api</i> which specifies the API between the object and
formatting engines.</p>







|







300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
base path for resolution of relative include paths. If this option is
not set (empty string) the value of <b class="option">-file</b> is used instead.</p>
<p>Note that <b class="option">-file</b> and <b class="option">-ibase</b>, while similar looking,
are actually very different. The value of <b class="option">-file</b> is used by
some engines for the generation of proper relative references between
output documents (HTML). As such this is a <i class="term">destination</i>
path. The <b class="option">-ibase</b> on the other hand is used to resolve
relative include paths, and as such deals with <i class="term"><a href="../../../../index.html#key433">source</a></i> paths.</p>
<p>The default value of this option is the empty string.</p></dd>
<dt><b class="option">-module</b> <i class="arg">text</i></dt>
<dd><p>The argument of this option is stored in the object and made available
to the configured formatting engine through the command <b class="cmd">dt_module</b>.
This command is described in more detail in the companion document
<i class="term">doctools_api</i> which specifies the API between the object and
formatting engines.</p>
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
<b class="const">kw,</b><i class="arg">word</i>, and <i class="arg">word</i>, in this order. If this fails if
it will convert <i class="arg">word</i> to all lowercase and try again.</p></dd>
<dt><b class="cmd">see_also</b> <i class="arg">word</i>...</dt>
<dd><p>The command will look for the patterns <b class="const">sa,</b><i class="arg">word</i>, and
<i class="arg">word</i>, in this order, for each <i class="arg">word</i> given to the
command. If this fails if it will convert <i class="arg">word</i> to all lowercase
and try again.</p></dd>
<dt><b class="cmd"><a href="../../../../index.html#key770">keywords</a></b> <i class="arg">word</i>...</dt>
<dd><p>The command will look for the patterns <b class="const">kw,</b><i class="arg">word</i>, and
<i class="arg">word</i>, in this order, for each <i class="arg">word</i> given to the
command. If this fails if it will convert <i class="arg">word</i> to all lowercase
and try again.</p></dd>
</dl></dd>
</dl></dd>
<dt>latex</dt>







|







448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
<b class="const">kw,</b><i class="arg">word</i>, and <i class="arg">word</i>, in this order. If this fails if
it will convert <i class="arg">word</i> to all lowercase and try again.</p></dd>
<dt><b class="cmd">see_also</b> <i class="arg">word</i>...</dt>
<dd><p>The command will look for the patterns <b class="const">sa,</b><i class="arg">word</i>, and
<i class="arg">word</i>, in this order, for each <i class="arg">word</i> given to the
command. If this fails if it will convert <i class="arg">word</i> to all lowercase
and try again.</p></dd>
<dt><b class="cmd"><a href="../../../../index.html#key774">keywords</a></b> <i class="arg">word</i>...</dt>
<dd><p>The command will look for the patterns <b class="const">kw,</b><i class="arg">word</i>, and
<i class="arg">word</i>, in this order, for each <i class="arg">word</i> given to the
command. If this fails if it will convert <i class="arg">word</i> to all lowercase
and try again.</p></dd>
</dl></dd>
</dl></dd>
<dt>latex</dt>

Changes to embedded/www/tcllib/files/modules/doctools/doctools_intro.html.

163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
<li><p>At last, but not least, <i class="term">plugin writers</i> have to understand the
interaction between the <b class="package"><a href="doctools.html">doctools</a></b> package and its plugins, as
described in the <i class="term"><a href="doctools_plugin_apiref.html">doctools plugin API reference</a></i>.</p></li>
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">RELATED FORMATS</a></h2>
<p>doctools does not stand alone, it has two companion formats. These are
called <i class="term"><a href="../../../../index.html#key178">docidx</a></i> and <i class="term"><a href="../../../../index.html#key254">doctoc</a></i>, and they are for the markup of
<i class="term">keyword indices</i>, and <i class="term">tables of contents</i>,
respectively.
They are described in their own sets of documents, starting at the
<i class="term"><a href="docidx_intro.html">docidx introduction</a></i> and the <i class="term"><a href="doctoc_intro.html">doctoc introduction</a></i>,
respectively.</p>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>







|







163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
<li><p>At last, but not least, <i class="term">plugin writers</i> have to understand the
interaction between the <b class="package"><a href="doctools.html">doctools</a></b> package and its plugins, as
described in the <i class="term"><a href="doctools_plugin_apiref.html">doctools plugin API reference</a></i>.</p></li>
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">RELATED FORMATS</a></h2>
<p>doctools does not stand alone, it has two companion formats. These are
called <i class="term"><a href="../../../../index.html#key178">docidx</a></i> and <i class="term"><a href="../../../../index.html#key256">doctoc</a></i>, and they are for the markup of
<i class="term">keyword indices</i>, and <i class="term">tables of contents</i>,
respectively.
They are described in their own sets of documents, starting at the
<i class="term"><a href="docidx_intro.html">docidx introduction</a></i> and the <i class="term"><a href="doctoc_intro.html">doctoc introduction</a></i>,
respectively.</p>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>

Changes to embedded/www/tcllib/files/modules/doctools/doctools_lang_cmdref.html.

147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<li><a href="#17"><b class="cmd">example_begin</b></a></li>
<li><a href="#18"><b class="cmd">example_end</b></a></li>
<li><a href="#19"><b class="cmd"><a href="../../../../index.html#key31">file</a></b> <i class="arg">text</i></a></li>
<li><a href="#20"><b class="cmd">fun</b> <i class="arg">text</i></a></li>
<li><a href="#21"><b class="cmd"><a href="../../../../index.html#key121">image</a></b> <i class="arg">name</i> <span class="opt">?<i class="arg">label</i>?</span></a></li>
<li><a href="#22"><b class="cmd">include</b> <i class="arg">filename</i></a></li>
<li><a href="#23"><b class="cmd">item</b></a></li>
<li><a href="#24"><b class="cmd"><a href="../../../../index.html#key770">keywords</a></b> <i class="arg">args</i></a></li>
<li><a href="#25"><b class="cmd">lb</b></a></li>
<li><a href="#26"><b class="cmd">list_begin</b> <i class="arg">what</i></a></li>
<li><a href="#27"><b class="cmd">list_end</b></a></li>
<li><a href="#28"><b class="cmd">lst_item</b> <i class="arg">text</i></a></li>
<li><a href="#29"><b class="cmd">manpage_begin</b> <i class="arg">command</i> <i class="arg">section</i> <i class="arg">version</i></a></li>
<li><a href="#30"><b class="cmd">manpage_end</b></a></li>
<li><a href="#31"><b class="cmd"><a href="../../../../index.html#key367">method</a></b> <i class="arg">text</i></a></li>
<li><a href="#32"><b class="cmd">moddesc</b> <i class="arg">text</i></a></li>
<li><a href="#33"><b class="cmd">namespace</b> <i class="arg">text</i></a></li>
<li><a href="#34"><b class="cmd">nl</b></a></li>
<li><a href="#35"><b class="cmd">opt</b> <i class="arg">text</i></a></li>
<li><a href="#36"><b class="cmd">opt_def</b> <i class="arg">name</i> <span class="opt">?<i class="arg">arg</i>?</span></a></li>
<li><a href="#37"><b class="cmd">option</b> <i class="arg">text</i></a></li>
<li><a href="#38"><b class="cmd"><a href="../../../../index.html#key48">package</a></b> <i class="arg">text</i></a></li>







|






|







147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<li><a href="#17"><b class="cmd">example_begin</b></a></li>
<li><a href="#18"><b class="cmd">example_end</b></a></li>
<li><a href="#19"><b class="cmd"><a href="../../../../index.html#key31">file</a></b> <i class="arg">text</i></a></li>
<li><a href="#20"><b class="cmd">fun</b> <i class="arg">text</i></a></li>
<li><a href="#21"><b class="cmd"><a href="../../../../index.html#key121">image</a></b> <i class="arg">name</i> <span class="opt">?<i class="arg">label</i>?</span></a></li>
<li><a href="#22"><b class="cmd">include</b> <i class="arg">filename</i></a></li>
<li><a href="#23"><b class="cmd">item</b></a></li>
<li><a href="#24"><b class="cmd"><a href="../../../../index.html#key774">keywords</a></b> <i class="arg">args</i></a></li>
<li><a href="#25"><b class="cmd">lb</b></a></li>
<li><a href="#26"><b class="cmd">list_begin</b> <i class="arg">what</i></a></li>
<li><a href="#27"><b class="cmd">list_end</b></a></li>
<li><a href="#28"><b class="cmd">lst_item</b> <i class="arg">text</i></a></li>
<li><a href="#29"><b class="cmd">manpage_begin</b> <i class="arg">command</i> <i class="arg">section</i> <i class="arg">version</i></a></li>
<li><a href="#30"><b class="cmd">manpage_end</b></a></li>
<li><a href="#31"><b class="cmd"><a href="../../../../index.html#key369">method</a></b> <i class="arg">text</i></a></li>
<li><a href="#32"><b class="cmd">moddesc</b> <i class="arg">text</i></a></li>
<li><a href="#33"><b class="cmd">namespace</b> <i class="arg">text</i></a></li>
<li><a href="#34"><b class="cmd">nl</b></a></li>
<li><a href="#35"><b class="cmd">opt</b> <i class="arg">text</i></a></li>
<li><a href="#36"><b class="cmd">opt_def</b> <i class="arg">name</i> <span class="opt">?<i class="arg">arg</i>?</span></a></li>
<li><a href="#37"><b class="cmd">option</b> <i class="arg">text</i></a></li>
<li><a href="#38"><b class="cmd"><a href="../../../../index.html#key48">package</a></b> <i class="arg">text</i></a></li>
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
<dd><p>Text structure. List element. Definition list. Automatically closes
the previous list element. Defines the term as a command and its
arguments.
The first argument is the name of the command described by the
following free-form text, and all arguments coming after that are
descriptions of the command's arguments.
It is expected that the arguments are marked up with <b class="cmd">arg</b>,
<b class="cmd"><a href="../../../../index.html#key367">method</a></b>, <b class="cmd">option</b> etc., as is appropriate, and that the
command itself is marked up with <b class="cmd">cmd</b>.
It is expected that the formatted term is not only printed in place,
but also in the table of contents of the document, or synopsis,
depending on the output format.</p></dd>
<dt><a name="5"><b class="cmd">category</b> <i class="arg">text</i></a></dt>
<dd><p>Document information. Anywhere. This command registers its plain text
arguments as the category this document belongs to. If this command is







|







217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
<dd><p>Text structure. List element. Definition list. Automatically closes
the previous list element. Defines the term as a command and its
arguments.
The first argument is the name of the command described by the
following free-form text, and all arguments coming after that are
descriptions of the command's arguments.
It is expected that the arguments are marked up with <b class="cmd">arg</b>,
<b class="cmd"><a href="../../../../index.html#key369">method</a></b>, <b class="cmd">option</b> etc., as is appropriate, and that the
command itself is marked up with <b class="cmd">cmd</b>.
It is expected that the formatted term is not only printed in place,
but also in the table of contents of the document, or synopsis,
depending on the output format.</p></dd>
<dt><a name="5"><b class="cmd">category</b> <i class="arg">text</i></a></dt>
<dd><p>Document information. Anywhere. This command registers its plain text
arguments as the category this document belongs to. If this command is
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
<dd><p>Templating. The contents of the named file are interpreted as text
written in the doctools markup and processed in the place of the
include command. The markup in the file has to be self-contained. It
is not possible for a markup command to cross the file boundaries.</p></dd>
<dt><a name="23"><b class="cmd">item</b></a></dt>
<dd><p>Text structure. List element. Itemized list. Automatically closes the
previous list element.</p></dd>
<dt><a name="24"><b class="cmd"><a href="../../../../index.html#key770">keywords</a></b> <i class="arg">args</i></a></dt>
<dd><p>Document information. Anywhere. This command registers all its plain text
arguments as keywords applying to this document. Each argument is a single
keyword. If this command is used multiple times all the arguments accumulate.</p></dd>
<dt><a name="25"><b class="cmd">lb</b></a></dt>
<dd><p>Text. The command is replaced with a left bracket. Use in free-form text.
Required to avoid interpretation of a left bracket as the start of a markup
command.</p></dd>







|







306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
<dd><p>Templating. The contents of the named file are interpreted as text
written in the doctools markup and processed in the place of the
include command. The markup in the file has to be self-contained. It
is not possible for a markup command to cross the file boundaries.</p></dd>
<dt><a name="23"><b class="cmd">item</b></a></dt>
<dd><p>Text structure. List element. Itemized list. Automatically closes the
previous list element.</p></dd>
<dt><a name="24"><b class="cmd"><a href="../../../../index.html#key774">keywords</a></b> <i class="arg">args</i></a></dt>
<dd><p>Document information. Anywhere. This command registers all its plain text
arguments as keywords applying to this document. Each argument is a single
keyword. If this command is used multiple times all the arguments accumulate.</p></dd>
<dt><a name="25"><b class="cmd">lb</b></a></dt>
<dd><p>Text. The command is replaced with a left bracket. Use in free-form text.
Required to avoid interpretation of a left bracket as the start of a markup
command.</p></dd>
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
the name of the <i class="arg">command</i> described by the manpage, the
<i class="arg">section</i> of the manpages this manpage resides in, and the
<i class="arg">version</i> of the module containing the command. All arguments have
to be plain text, without markup.</p></dd>
<dt><a name="30"><b class="cmd">manpage_end</b></a></dt>
<dd><p>Document structure. Command to end a manpage/document. Anything in the document
coming after this command is in error.</p></dd>
<dt><a name="31"><b class="cmd"><a href="../../../../index.html#key367">method</a></b> <i class="arg">text</i></a></dt>
<dd><p>Text markup. The argument text is marked up as the name of an
<i class="term"><a href="../../../../index.html#key241">object</a></i> <i class="term"><a href="../../../../index.html#key367">method</a></i>, i.e. subcommand of a Tcl command. The
text may have other markup already applied to it. Main uses are the
highlighting of method names in free-form text, and for the command
parameters of the markup commands <b class="cmd">call</b> and <b class="cmd">usage</b>.</p></dd>
<dt><a name="32"><b class="cmd">moddesc</b> <i class="arg">text</i></a></dt>
<dd><p>Document information. Header. Registers the plain text argument as a short
description of the module the manpage resides in.</p></dd>
<dt><a name="33"><b class="cmd">namespace</b> <i class="arg">text</i></a></dt>







|

|







381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
the name of the <i class="arg">command</i> described by the manpage, the
<i class="arg">section</i> of the manpages this manpage resides in, and the
<i class="arg">version</i> of the module containing the command. All arguments have
to be plain text, without markup.</p></dd>
<dt><a name="30"><b class="cmd">manpage_end</b></a></dt>
<dd><p>Document structure. Command to end a manpage/document. Anything in the document
coming after this command is in error.</p></dd>
<dt><a name="31"><b class="cmd"><a href="../../../../index.html#key369">method</a></b> <i class="arg">text</i></a></dt>
<dd><p>Text markup. The argument text is marked up as the name of an
<i class="term"><a href="../../../../index.html#key241">object</a></i> <i class="term"><a href="../../../../index.html#key369">method</a></i>, i.e. subcommand of a Tcl command. The
text may have other markup already applied to it. Main uses are the
highlighting of method names in free-form text, and for the command
parameters of the markup commands <b class="cmd">call</b> and <b class="cmd">usage</b>.</p></dd>
<dt><a name="32"><b class="cmd">moddesc</b> <i class="arg">text</i></a></dt>
<dd><p>Document information. Header. Registers the plain text argument as a short
description of the module the manpage resides in.</p></dd>
<dt><a name="33"><b class="cmd">namespace</b> <i class="arg">text</i></a></dt>
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
and its class (<i class="arg">dbclass</i>), i.e. its type. It is expected that the
name is marked up using <b class="cmd">option</b>.</p></dd>
<dt><a name="52"><b class="cmd"><a href="../../../../index.html#key117">type</a></b> <i class="arg">text</i></a></dt>
<dd><p>Text markup. The argument is marked up as the name of a
<i class="term">data type</i>. The text may have other markup already applied to
it. Main use is the highlighting of data types in free-form text.</p></dd>
<dt><a name="53"><b class="cmd"><a href="../uri/uri.html">uri</a></b> <i class="arg">text</i> <span class="opt">?<i class="arg">text</i>?</span></a></dt>
<dd><p>Text markup. The argument is marked up as an <i class="term"><a href="../../../../index.html#key522">uri</a></i> (i.e. a
<i class="term">uniform resource identifier</i>. The text may have other markup
already applied to it. Main use is the highlighting of uris in
free-form text. The second argument, should it be present, will be
interpreted the human-readable description of the uri. In other words,
as its label. Without an explicit label the uri will be its own label.</p></dd>
<dt><a name="54"><b class="cmd">usage</b> <i class="arg">args</i></a></dt>
<dd><p>Text markup. See <b class="cmd">call</b> for the full description, this command is







|







478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
and its class (<i class="arg">dbclass</i>), i.e. its type. It is expected that the
name is marked up using <b class="cmd">option</b>.</p></dd>
<dt><a name="52"><b class="cmd"><a href="../../../../index.html#key117">type</a></b> <i class="arg">text</i></a></dt>
<dd><p>Text markup. The argument is marked up as the name of a
<i class="term">data type</i>. The text may have other markup already applied to
it. Main use is the highlighting of data types in free-form text.</p></dd>
<dt><a name="53"><b class="cmd"><a href="../uri/uri.html">uri</a></b> <i class="arg">text</i> <span class="opt">?<i class="arg">text</i>?</span></a></dt>
<dd><p>Text markup. The argument is marked up as an <i class="term"><a href="../../../../index.html#key525">uri</a></i> (i.e. a
<i class="term">uniform resource identifier</i>. The text may have other markup
already applied to it. Main use is the highlighting of uris in
free-form text. The second argument, should it be present, will be
interpreted the human-readable description of the uri. In other words,
as its label. Without an explicit label the uri will be its own label.</p></dd>
<dt><a name="54"><b class="cmd">usage</b> <i class="arg">args</i></a></dt>
<dd><p>Text markup. See <b class="cmd">call</b> for the full description, this command is

Changes to embedded/www/tcllib/files/modules/doctools/doctools_lang_faq.html.

172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctools_lang_cmdref.html">doctools_lang_cmdref</a>, <a href="doctools_lang_intro.html">doctools_lang_intro</a>, <a href="doctools_lang_syntax.html">doctools_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key137">doctools commands</a>, <a href="../../../../index.html#key140">doctools language</a>, <a href="../../../../index.html#key139">doctools markup</a>, <a href="../../../../index.html#key138">doctools syntax</a>, <a href="../../../../index.html#key365">examples</a>, <a href="../../../../index.html#key362">faq</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctools_lang_cmdref.html">doctools_lang_cmdref</a>, <a href="doctools_lang_intro.html">doctools_lang_intro</a>, <a href="doctools_lang_syntax.html">doctools_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key137">doctools commands</a>, <a href="../../../../index.html#key140">doctools language</a>, <a href="../../../../index.html#key139">doctools markup</a>, <a href="../../../../index.html#key138">doctools syntax</a>, <a href="../../../../index.html#key367">examples</a>, <a href="../../../../index.html#key364">faq</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools/doctools_lang_intro.html.

391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
<dd><p>Its argument is a constant.</p></dd>
<dt><b class="cmd">emph</b></dt>
<dd><p>General, non-semantic emphasis.</p></dd>
<dt><b class="cmd"><a href="../../../../index.html#key31">file</a></b></dt>
<dd><p>Its argument is a filename / path.</p></dd>
<dt><b class="cmd">fun</b></dt>
<dd><p>Its argument is a function name.</p></dd>
<dt><b class="cmd"><a href="../../../../index.html#key367">method</a></b></dt>
<dd><p>Its argument is a method name</p></dd>
<dt><b class="cmd">namespace</b></dt>
<dd><p>Its argument is namespace name.</p></dd>
<dt><b class="cmd">opt</b></dt>
<dd><p>Its argument is some optional syntax element.</p></dd>
<dt><b class="cmd">option</b></dt>
<dd><p>Its argument is a command line switch / widget option.</p></dd>







|







391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
<dd><p>Its argument is a constant.</p></dd>
<dt><b class="cmd">emph</b></dt>
<dd><p>General, non-semantic emphasis.</p></dd>
<dt><b class="cmd"><a href="../../../../index.html#key31">file</a></b></dt>
<dd><p>Its argument is a filename / path.</p></dd>
<dt><b class="cmd">fun</b></dt>
<dd><p>Its argument is a function name.</p></dd>
<dt><b class="cmd"><a href="../../../../index.html#key369">method</a></b></dt>
<dd><p>Its argument is a method name</p></dd>
<dt><b class="cmd">namespace</b></dt>
<dd><p>Its argument is namespace name.</p></dd>
<dt><b class="cmd">opt</b></dt>
<dd><p>Its argument is some optional syntax element.</p></dd>
<dt><b class="cmd">option</b></dt>
<dd><p>Its argument is a command line switch / widget option.</p></dd>
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
  impossible to directly use [<b class="cmd">lb</b>] and [<b class="cmd">rb</b>] within the text.
  ...
</pre>
</div>
<div id="subsection7" class="subsection"><h3><a name="subsection7">Cross-references</a></h3>
<p>The last two commands we have to discuss are for the declaration of
cross-references between documents, explicit and implicit. They are
<b class="cmd"><a href="../../../../index.html#key770">keywords</a></b> and <b class="cmd">see_also</b>. Both take an arbitrary number of
arguments, all of which have to be plain unmarked text. I.e. it is not
allowed to use markup on them. Both commands can be used multiple
times in a document. If that is done all arguments of all occurrences
of one of them are put together into a single set.</p>
<dl class="definitions">
<dt><b class="cmd"><a href="../../../../index.html#key770">keywords</a></b></dt>
<dd><p>The arguments of this command are interpreted as keywords describing
the document. A processor can use this information to create an index
indirectly linking the containing document to all documents with the
same keywords.</p></dd>
<dt><b class="cmd">see_also</b></dt>
<dd><p>The arguments of this command are interpreted as references to other
documents. A processor can format them as direct links to these







|





|







459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
  impossible to directly use [<b class="cmd">lb</b>] and [<b class="cmd">rb</b>] within the text.
  ...
</pre>
</div>
<div id="subsection7" class="subsection"><h3><a name="subsection7">Cross-references</a></h3>
<p>The last two commands we have to discuss are for the declaration of
cross-references between documents, explicit and implicit. They are
<b class="cmd"><a href="../../../../index.html#key774">keywords</a></b> and <b class="cmd">see_also</b>. Both take an arbitrary number of
arguments, all of which have to be plain unmarked text. I.e. it is not
allowed to use markup on them. Both commands can be used multiple
times in a document. If that is done all arguments of all occurrences
of one of them are put together into a single set.</p>
<dl class="definitions">
<dt><b class="cmd"><a href="../../../../index.html#key774">keywords</a></b></dt>
<dd><p>The arguments of this command are interpreted as keywords describing
the document. A processor can use this information to create an index
indirectly linking the containing document to all documents with the
same keywords.</p></dd>
<dt><b class="cmd">see_also</b></dt>
<dd><p>The arguments of this command are interpreted as references to other
documents. A processor can format them as direct links to these

Changes to embedded/www/tcllib/files/modules/doctools/doctools_plugin_apiref.html.

167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<li><a href="#30"><b class="cmd">fmt_varset</b> <i class="arg">varname</i> <i class="arg">text</i></a></li>
<li><a href="#31"><b class="cmd">fmt_plain_text</b> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This document is intended for <i class="term">plugin writers</i>, i.e. developers
wishing to write a doctools <i class="term"><a href="../../../../index.html#key651">formatting engine</a></i> for some output
format X.</p>
<p>It specifies the interaction between the <b class="package"><a href="doctools.html">doctools</a></b> package
and its plugins, i.e. the interface any doctools formatting engine has
to comply with.</p>
<p>This document deals with version 1 of the interface.</p>
<p>A reader who is on the other hand more interested in the markup
language itself should start with the







|







167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<li><a href="#30"><b class="cmd">fmt_varset</b> <i class="arg">varname</i> <i class="arg">text</i></a></li>
<li><a href="#31"><b class="cmd">fmt_plain_text</b> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This document is intended for <i class="term">plugin writers</i>, i.e. developers
wishing to write a doctools <i class="term"><a href="../../../../index.html#key655">formatting engine</a></i> for some output
format X.</p>
<p>It specifies the interaction between the <b class="package"><a href="doctools.html">doctools</a></b> package
and its plugins, i.e. the interface any doctools formatting engine has
to comply with.</p>
<p>This document deals with version 1 of the interface.</p>
<p>A reader who is on the other hand more interested in the markup
language itself should start with the
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctools.html">doctools</a>, <a href="doctools_intro.html">doctools_intro</a>, <a href="doctools_lang_cmdref.html">doctools_lang_cmdref</a>, <a href="doctools_lang_faq.html">doctools_lang_faq</a>, <a href="doctools_lang_intro.html">doctools_lang_intro</a>, <a href="doctools_lang_syntax.html">doctools_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key652">document</a>, <a href="../../../../index.html#key650">formatter</a>, <a href="../../../../index.html#key651">formatting engine</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2010 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="doctools.html">doctools</a>, <a href="doctools_intro.html">doctools_intro</a>, <a href="doctools_lang_cmdref.html">doctools_lang_cmdref</a>, <a href="doctools_lang_faq.html">doctools_lang_faq</a>, <a href="doctools_lang_intro.html">doctools_lang_intro</a>, <a href="doctools_lang_syntax.html">doctools_lang_syntax</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key656">document</a>, <a href="../../../../index.html#key654">formatter</a>, <a href="../../../../index.html#key655">formatting engine</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key136">semantic markup</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2010 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2base/html_cssdefaults.html.

135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a single command providing access to the text of
the default CSS style to use for HTML markup generated by the various
HTML export plugins.</p>
<p>This is an internal package of doctools, for use by <i class="term"><a href="../../../../index.html#key256">export</a></i> plugins,
i.e. the packages converting doctools related documented into other
formats, most notably <i class="term"><a href="../../../../index.html#key18">HTML</a></i>.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::html::cssdefaults::contents</b></a></dt>
<dd><p>This command returns the text of the default CSS style to use for HTML
markup generated by the various HTML export plugins.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key401">CSS</a>, <a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key400">style</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|



















|








135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a single command providing access to the text of
the default CSS style to use for HTML markup generated by the various
HTML export plugins.</p>
<p>This is an internal package of doctools, for use by <i class="term"><a href="../../../../index.html#key258">export</a></i> plugins,
i.e. the packages converting doctools related documented into other
formats, most notably <i class="term"><a href="../../../../index.html#key18">HTML</a></i>.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::html::cssdefaults::contents</b></a></dt>
<dd><p>This command returns the text of the default CSS style to use for HTML
markup generated by the various HTML export plugins.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key403">CSS</a>, <a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key402">style</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2base/nroff_manmacros.html.

135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a single command providing access to the
definition of the nroff <em>man</em> macro set to use for NROFF markup
generated by the various NROFF export plugins.</p>
<p>This is an internal package of doctools, for use by <i class="term"><a href="../../../../index.html#key256">export</a></i> plugins,
i.e. the packages converting doctools related documented into other
formats, most notably <i class="term"><a href="../../../../index.html#key21">nroff</a></i>.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::nroff::man_macros::contents</b></a></dt>
<dd><p>This command returns the text of the default CSS style to use for NROFF
generated by the various NROFF export plugins.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key521">macros</a>, <a href="../../../../index.html#key520">man_macros</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key250">plugin</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|



















|








135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a single command providing access to the
definition of the nroff <em>man</em> macro set to use for NROFF markup
generated by the various NROFF export plugins.</p>
<p>This is an internal package of doctools, for use by <i class="term"><a href="../../../../index.html#key258">export</a></i> plugins,
i.e. the packages converting doctools related documented into other
formats, most notably <i class="term"><a href="../../../../index.html#key21">nroff</a></i>.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::nroff::man_macros::contents</b></a></dt>
<dd><p>This command returns the text of the default CSS style to use for NROFF
generated by the various NROFF export plugins.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key524">macros</a>, <a href="../../../../index.html#key523">man_macros</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key250">plugin</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2base/tcl_parse.html.

147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides commands for parsing text with embedded Tcl
commands as accepted by the Tcl builtin command
<b class="cmd">subst -novariables</b>. The result of the parsing is an abstract
syntax tree.</p>
<p>This is an internal package of doctools, for use by the higher level
parsers processing the <i class="term"><a href="../../../../index.html#key178">docidx</a></i>, <i class="term"><a href="../../../../index.html#key254">doctoc</a></i>, and <i class="term"><a href="../../../../index.html#key179">doctools</a></i>
markup languages.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::tcl::parse</b> <b class="method">text</b> <i class="arg">tree</i> <i class="arg">text</i> <span class="opt">?<i class="arg">root</i>?</span></a></dt>
<dd><p>The command takes the <i class="arg">text</i> and parses it under the assumption
that it contains a string acceptable to the Tcl builtin command







|







147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides commands for parsing text with embedded Tcl
commands as accepted by the Tcl builtin command
<b class="cmd">subst -novariables</b>. The result of the parsing is an abstract
syntax tree.</p>
<p>This is an internal package of doctools, for use by the higher level
parsers processing the <i class="term"><a href="../../../../index.html#key178">docidx</a></i>, <i class="term"><a href="../../../../index.html#key256">doctoc</a></i>, and <i class="term"><a href="../../../../index.html#key179">doctools</a></i>
markup languages.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::tcl::parse</b> <b class="method">text</b> <i class="arg">tree</i> <i class="arg">text</i> <span class="opt">?<i class="arg">root</i>?</span></a></dt>
<dd><p>The command takes the <i class="arg">text</i> and parses it under the assumption
that it contains a string acceptable to the Tcl builtin command
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key270">Tcl syntax</a>, <a href="../../../../index.html#key271">command</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key269">subst</a>, <a href="../../../../index.html#key268">word</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key272">Tcl syntax</a>, <a href="../../../../index.html#key273">command</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key271">subst</a>, <a href="../../../../index.html#key270">word</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2base/tcllib_msgcat.html.

171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key254">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key256">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools2idx/export_docidx.html.

130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::export::docidx <span class="opt">?0.1?</span></b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index export plugin for
the generation of docidx markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_export.html">doctools::idx::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_export.html">doctools::idx::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a keyword index, as
specified in section <span class="sectref"><a href="#section5">Keyword index serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates docidx markup encoding the index.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|


















|







130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::export::docidx <span class="opt">?0.1?</span></b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index export plugin for
the generation of docidx markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_export.html">doctools::idx::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_export.html">doctools::idx::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a keyword index, as
specified in section <span class="sectref"><a href="#section5">Keyword index serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates docidx markup encoding the index.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_container.html.

185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
This is the only format directly known to this class. Conversions from
and to any other format are handled by export and import manager
objects. These may be attached to a container, but do not have to be,
it is merely a convenience.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Concepts</a></h2>
<ol class="enumerated">
<li><p>A <i class="term"><a href="../../../../index.html#key184">keyword index</a></i> consists of a (possibly empty) set of <i class="term"><a href="../../../../index.html#key770">keywords</a></i>.</p></li>
<li><p>Each keyword in the set is identified by its name.</p></li>
<li><p>Each keyword has a (possibly empty) set of <i class="term">references</i>.</p></li>
<li><p>A reference can be associated with more than one keyword.</p></li>
<li><p>A reference not associated with at least one keyword is not possible
however.</p></li>
<li><p>Each reference is identified by its target, specified as either an url
or symbolic filename, depending on the type of reference (<b class="const">url</b>,







|







185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
This is the only format directly known to this class. Conversions from
and to any other format are handled by export and import manager
objects. These may be attached to a container, but do not have to be,
it is merely a convenience.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Concepts</a></h2>
<ol class="enumerated">
<li><p>A <i class="term"><a href="../../../../index.html#key184">keyword index</a></i> consists of a (possibly empty) set of <i class="term"><a href="../../../../index.html#key774">keywords</a></i>.</p></li>
<li><p>Each keyword in the set is identified by its name.</p></li>
<li><p>Each keyword has a (possibly empty) set of <i class="term">references</i>.</p></li>
<li><p>A reference can be associated with more than one keyword.</p></li>
<li><p>A reference not associated with at least one keyword is not possible
however.</p></li>
<li><p>Each reference is identified by its target, specified as either an url
or symbolic filename, depending on the type of reference (<b class="const">url</b>,

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_export.html.

149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<li><a href="#3"><i class="arg">objectName</i> <b class="method">destroy</b></a></li>
<li><a href="#4"><i class="arg">objectName</i> <b class="method">export serial</b> <i class="arg">serial</i> <span class="opt">?<i class="arg">format</i>?</span></a></li>
<li><a href="#5"><i class="arg">objectName</i> <b class="method">export object</b> <i class="arg">object</i> <span class="opt">?<i class="arg">format</i>?</span></a></li>
<li><a href="#6"><i class="arg">objectName</i> <b class="method">config names</b></a></li>
<li><a href="#7"><i class="arg">objectName</i> <b class="method">config get</b></a></li>
<li><a href="#8"><i class="arg">objectName</i> <b class="method">config set</b> <i class="arg">name</i> <span class="opt">?<i class="arg">value</i>?</span></a></li>
<li><a href="#9"><i class="arg">objectName</i> <b class="method">config unset</b> <i class="arg">pattern</i>...</a></li>
<li><a href="#10"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class to manage the plugins for the export of
keyword indices to other formats, i.e. their conversion to, for
example <i class="term"><a href="../../../../index.html#key178">docidx</a></i>, <i class="term"><a href="../../../../index.html#key18">HTML</a></i>, etc.</p>







|







149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<li><a href="#3"><i class="arg">objectName</i> <b class="method">destroy</b></a></li>
<li><a href="#4"><i class="arg">objectName</i> <b class="method">export serial</b> <i class="arg">serial</i> <span class="opt">?<i class="arg">format</i>?</span></a></li>
<li><a href="#5"><i class="arg">objectName</i> <b class="method">export object</b> <i class="arg">object</i> <span class="opt">?<i class="arg">format</i>?</span></a></li>
<li><a href="#6"><i class="arg">objectName</i> <b class="method">config names</b></a></li>
<li><a href="#7"><i class="arg">objectName</i> <b class="method">config get</b></a></li>
<li><a href="#8"><i class="arg">objectName</i> <b class="method">config set</b> <i class="arg">name</i> <span class="opt">?<i class="arg">value</i>?</span></a></li>
<li><a href="#9"><i class="arg">objectName</i> <b class="method">config unset</b> <i class="arg">pattern</i>...</a></li>
<li><a href="#10"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class to manage the plugins for the export of
keyword indices to other formats, i.e. their conversion to, for
example <i class="term"><a href="../../../../index.html#key178">docidx</a></i>, <i class="term"><a href="../../../../index.html#key18">HTML</a></i>, etc.</p>
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
<i class="term">plugin writer</i>s reading and understanding the section
containing the <span class="sectref"><a href="#section4">Export plugin API v2 reference</a></span> is an
absolute necessity, as it specifies the interaction between this
package and its plugins in detail.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Concepts</a></h2>
<ol class="enumerated">
<li><p>A <i class="term"><a href="../../../../index.html#key184">keyword index</a></i> consists of a (possibly empty) set of <i class="term"><a href="../../../../index.html#key770">keywords</a></i>.</p></li>
<li><p>Each keyword in the set is identified by its name.</p></li>
<li><p>Each keyword has a (possibly empty) set of <i class="term">references</i>.</p></li>
<li><p>A reference can be associated with more than one keyword.</p></li>
<li><p>A reference not associated with at least one keyword is not possible
however.</p></li>
<li><p>Each reference is identified by its target, specified as either an url
or symbolic filename, depending on the type of reference (<b class="const">url</b>,







|







210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
<i class="term">plugin writer</i>s reading and understanding the section
containing the <span class="sectref"><a href="#section4">Export plugin API v2 reference</a></span> is an
absolute necessity, as it specifies the interaction between this
package and its plugins in detail.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Concepts</a></h2>
<ol class="enumerated">
<li><p>A <i class="term"><a href="../../../../index.html#key184">keyword index</a></i> consists of a (possibly empty) set of <i class="term"><a href="../../../../index.html#key774">keywords</a></i>.</p></li>
<li><p>Each keyword in the set is identified by its name.</p></li>
<li><p>Each keyword has a (possibly empty) set of <i class="term">references</i>.</p></li>
<li><p>A reference can be associated with more than one keyword.</p></li>
<li><p>A reference not associated with at least one keyword is not possible
however.</p></li>
<li><p>Each reference is identified by its target, specified as either an url
or symbolic filename, depending on the type of reference (<b class="const">url</b>,
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
       format.</p></li>
<li><p>The plugin can expect that the package
       <b class="package">doctools::idx::export::plugin</b> is present, as
       indicator that it was invoked from a genuine plugin manager.</p></li>
<li><p>A plugin has to provide one command, with the signature shown
       below.</p>
<dl class="definitions">
<dt><a name="10"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>Whenever an export manager of <b class="package"><a href="idx_container.html">doctools::idx</a></b> has to generate
output for an index it will invoke this command.</p>
<dl class="arguments">
<dt>string <i class="arg">serial</i></dt>
<dd><p>This argument will contain the <i class="term">canonical</i> serialization of the
index for which to generate the output.
The specification of what a <i class="term">canonical</i> serialization is can be







|







330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
       format.</p></li>
<li><p>The plugin can expect that the package
       <b class="package">doctools::idx::export::plugin</b> is present, as
       indicator that it was invoked from a genuine plugin manager.</p></li>
<li><p>A plugin has to provide one command, with the signature shown
       below.</p>
<dl class="definitions">
<dt><a name="10"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>Whenever an export manager of <b class="package"><a href="idx_container.html">doctools::idx</a></b> has to generate
output for an index it will invoke this command.</p>
<dl class="arguments">
<dt>string <i class="arg">serial</i></dt>
<dd><p>This argument will contain the <i class="term">canonical</i> serialization of the
index for which to generate the output.
The specification of what a <i class="term">canonical</i> serialization is can be
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
          the possibility that a symbolic name is without entry in
          this mapping.</p></dd>
</dl></dd>
</dl></dd>
</dl>
</li>
<li><p>A single usage cycle of a plugin consists of the invokations of
       the command <b class="cmd"><a href="../../../../index.html#key256">export</a></b>. This call has to leave the plugin in
       a state where another usage cycle can be run without problems.</p></li>
</ol>
</div>
<div id="section5" class="section"><h2><a name="section5">Keyword index serialization format</a></h2>
<p>Here we specify the format used by the doctools v2 packages to
serialize keyword indices as immutable values for transport,
comparison, etc.</p>







|







369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
          the possibility that a symbolic name is without entry in
          this mapping.</p></dd>
</dl></dd>
</dl></dd>
</dl>
</li>
<li><p>A single usage cycle of a plugin consists of the invokations of
       the command <b class="cmd"><a href="../../../../index.html#key258">export</a></b>. This call has to leave the plugin in
       a state where another usage cycle can be run without problems.</p></li>
</ol>
</div>
<div id="section5" class="section"><h2><a name="section5">Keyword index serialization format</a></h2>
<p>Here we specify the format used by the doctools v2 packages to
serialize keyword indices as immutable values for transport,
comparison, etc.</p>
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key248">generation</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key204">json</a>, <a href="../../../../index.html#key184">keyword index</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key249">reference</a>, <a href="../../../../index.html#key243">tcler's wiki</a>, <a href="../../../../index.html#key246">text</a>, <a href="../../../../index.html#key244">url</a>, <a href="../../../../index.html#key183">wiki</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key248">generation</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key204">json</a>, <a href="../../../../index.html#key184">keyword index</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key249">reference</a>, <a href="../../../../index.html#key243">tcler's wiki</a>, <a href="../../../../index.html#key246">text</a>, <a href="../../../../index.html#key244">url</a>, <a href="../../../../index.html#key183">wiki</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_export_html.html.

132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::export::html <span class="opt">?0.2?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
<li>package require <b class="pkgname">doctools::html</b></li>
<li>package require <b class="pkgname">doctools::html::cssdefaults</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index export plugin for
the generation of HTML markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_export.html">doctools::idx::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_export.html">doctools::idx::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a keyword index, as
specified in section <span class="sectref"><a href="#section4">Keyword index serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates HTML markup encoding the index.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|


















|







132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::export::html <span class="opt">?0.2?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
<li>package require <b class="pkgname">doctools::html</b></li>
<li>package require <b class="pkgname">doctools::html::cssdefaults</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index export plugin for
the generation of HTML markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_export.html">doctools::idx::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_export.html">doctools::idx::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a keyword index, as
specified in section <span class="sectref"><a href="#section4">Keyword index serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates HTML markup encoding the index.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_export_json.html.

131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::export::json <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">textutil::adjust</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index export plugin for
the generation of JSON markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_export.html">doctools::idx::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_export.html">doctools::idx::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a keyword index, as
specified in section <span class="sectref"><a href="#section5">Keyword index serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates JSON markup encoding the index.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|


















|







131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::export::json <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">textutil::adjust</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index export plugin for
the generation of JSON markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_export.html">doctools::idx::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_export.html">doctools::idx::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a keyword index, as
specified in section <span class="sectref"><a href="#section5">Keyword index serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates JSON markup encoding the index.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key255">JSON</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key257">JSON</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_export_nroff.html.

131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::export::nroff <span class="opt">?0.3?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
<li>package require <b class="pkgname">doctools::nroff::man_macros</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index export plugin for
the generation of nroff markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_export.html">doctools::idx::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_export.html">doctools::idx::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a keyword index, as
specified in section <span class="sectref"><a href="#section4">Keyword index serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates nroff markup encoding the index.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|


















|







131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::export::nroff <span class="opt">?0.3?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
<li>package require <b class="pkgname">doctools::nroff::man_macros</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index export plugin for
the generation of nroff markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_export.html">doctools::idx::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_export.html">doctools::idx::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a keyword index, as
specified in section <span class="sectref"><a href="#section4">Keyword index serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates nroff markup encoding the index.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_export_text.html.

130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::export::text <span class="opt">?0.2?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index export plugin for
the generation of plain text markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_export.html">doctools::idx::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_export.html">doctools::idx::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a keyword index, as
specified in section <span class="sectref"><a href="#section4">Keyword index serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates plain text markup encoding the index.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|


















|







130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::export::text <span class="opt">?0.2?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index export plugin for
the generation of plain text markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_export.html">doctools::idx::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_export.html">doctools::idx::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a keyword index, as
specified in section <span class="sectref"><a href="#section4">Keyword index serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates plain text markup encoding the index.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key539">plain text</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key542">plain text</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_export_wiki.html.

131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::export::wiki <span class="opt">?0.2?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index export plugin for
the generation of wiki markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_export.html">doctools::idx::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_export.html">doctools::idx::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a keyword index, as
specified in section <span class="sectref"><a href="#section5">Keyword index serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates wiki markup encoding the index.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|


















|







131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::export::wiki <span class="opt">?0.2?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index export plugin for
the generation of wiki markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_export.html">doctools::idx::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_export.html">doctools::idx::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a keyword index, as
specified in section <span class="sectref"><a href="#section5">Keyword index serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates wiki markup encoding the index.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key183">wiki</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key183">wiki</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_import.html.

156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<li><a href="#10"><i class="arg">objectName</i> <b class="method">config set</b> <i class="arg">name</i> <span class="opt">?<i class="arg">value</i>?</span></a></li>
<li><a href="#11"><i class="arg">objectName</i> <b class="method">config unset</b> <i class="arg">pattern</i>...</a></li>
<li><a href="#12"><i class="arg">objectName</i> <b class="method">includes</b></a></li>
<li><a href="#13"><i class="arg">objectName</i> <b class="method">include add</b> <i class="arg">path</i></a></li>
<li><a href="#14"><i class="arg">objectName</i> <b class="method">include remove</b> <i class="arg">path</i></a></li>
<li><a href="#15"><i class="arg">objectName</i> <b class="method">include clear</b></a></li>
<li><a href="#16"><b class="cmd">IncludeFile</b> <i class="arg">currentfile</i> <i class="arg">path</i></a></li>
<li><a href="#17"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">text</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class to manage the plugins for the import of
keyword indices from other formats, i.e. their conversion from, for
example <i class="term"><a href="../../../../index.html#key178">docidx</a></i>, <i class="term"><a href="../../../../index.html#key204">json</a></i>, etc.</p>







|







156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<li><a href="#10"><i class="arg">objectName</i> <b class="method">config set</b> <i class="arg">name</i> <span class="opt">?<i class="arg">value</i>?</span></a></li>
<li><a href="#11"><i class="arg">objectName</i> <b class="method">config unset</b> <i class="arg">pattern</i>...</a></li>
<li><a href="#12"><i class="arg">objectName</i> <b class="method">includes</b></a></li>
<li><a href="#13"><i class="arg">objectName</i> <b class="method">include add</b> <i class="arg">path</i></a></li>
<li><a href="#14"><i class="arg">objectName</i> <b class="method">include remove</b> <i class="arg">path</i></a></li>
<li><a href="#15"><i class="arg">objectName</i> <b class="method">include clear</b></a></li>
<li><a href="#16"><b class="cmd">IncludeFile</b> <i class="arg">currentfile</i> <i class="arg">path</i></a></li>
<li><a href="#17"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">text</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class to manage the plugins for the import of
keyword indices from other formats, i.e. their conversion from, for
example <i class="term"><a href="../../../../index.html#key178">docidx</a></i>, <i class="term"><a href="../../../../index.html#key204">json</a></i>, etc.</p>
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
<i class="term">plugin writer</i>s reading and understanding the section
containing the <span class="sectref"><a href="#section4">Import plugin API v2 reference</a></span> is an
absolute necessity, as it specifies the interaction between this
package and its plugins in detail.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Concepts</a></h2>
<ol class="enumerated">
<li><p>A <i class="term"><a href="../../../../index.html#key184">keyword index</a></i> consists of a (possibly empty) set of <i class="term"><a href="../../../../index.html#key770">keywords</a></i>.</p></li>
<li><p>Each keyword in the set is identified by its name.</p></li>
<li><p>Each keyword has a (possibly empty) set of <i class="term">references</i>.</p></li>
<li><p>A reference can be associated with more than one keyword.</p></li>
<li><p>A reference not associated with at least one keyword is not possible
however.</p></li>
<li><p>Each reference is identified by its target, specified as either an url
or symbolic filename, depending on the type of reference (<b class="const">url</b>,







|







209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
<i class="term">plugin writer</i>s reading and understanding the section
containing the <span class="sectref"><a href="#section4">Import plugin API v2 reference</a></span> is an
absolute necessity, as it specifies the interaction between this
package and its plugins in detail.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Concepts</a></h2>
<ol class="enumerated">
<li><p>A <i class="term"><a href="../../../../index.html#key184">keyword index</a></i> consists of a (possibly empty) set of <i class="term"><a href="../../../../index.html#key774">keywords</a></i>.</p></li>
<li><p>Each keyword in the set is identified by its name.</p></li>
<li><p>Each keyword has a (possibly empty) set of <i class="term">references</i>.</p></li>
<li><p>A reference can be associated with more than one keyword.</p></li>
<li><p>A reference not associated with at least one keyword is not possible
however.</p></li>
<li><p>Each reference is identified by its target, specified as either an url
or symbolic filename, depending on the type of reference (<b class="const">url</b>,
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
       for a <b class="const">notread</b> error in more detail.</p></li>
</ol></dd>
</dl>
</li>
<li><p>A plugin has to provide one command, with the signature shown
       below.</p>
<dl class="definitions">
<dt><a name="17"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">text</i> <i class="arg">configuration</i></a></dt>
<dd><p>Whenever an import manager of <b class="package"><a href="idx_container.html">doctools::idx</a></b> has to parse
input for an index it will invoke this command.</p>
<dl class="arguments">
<dt>string <i class="arg">text</i></dt>
<dd><p>This argument will contain the text encoding the index per the format
the plugin is for.</p></dd>
<dt>dictionary <i class="arg">configuration</i></dt>







|







402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
       for a <b class="const">notread</b> error in more detail.</p></li>
</ol></dd>
</dl>
</li>
<li><p>A plugin has to provide one command, with the signature shown
       below.</p>
<dl class="definitions">
<dt><a name="17"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">text</i> <i class="arg">configuration</i></a></dt>
<dd><p>Whenever an import manager of <b class="package"><a href="idx_container.html">doctools::idx</a></b> has to parse
input for an index it will invoke this command.</p>
<dl class="arguments">
<dt>string <i class="arg">text</i></dt>
<dd><p>This argument will contain the text encoding the index per the format
the plugin is for.</p></dd>
<dt>dictionary <i class="arg">configuration</i></dt>
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
<dd><p>This variable is expected to contain the name of the
             format whose plugin is invoked.</p></dd>
</dl></dd>
</dl></dd>
</dl>
</li>
<li><p>A single usage cycle of a plugin consists of the invokations of
       the command <b class="cmd"><a href="../../../../index.html#key287">import</a></b>. This call has to leave the plugin in
       a state where another usage cycle can be run without problems.</p></li>
</ol>
</div>
<div id="section5" class="section"><h2><a name="section5">Keyword index serialization format</a></h2>
<p>Here we specify the format used by the doctools v2 packages to
serialize keyword indices as immutable values for transport,
comparison, etc.</p>







|







428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
<dd><p>This variable is expected to contain the name of the
             format whose plugin is invoked.</p></dd>
</dl></dd>
</dl></dd>
</dl>
</li>
<li><p>A single usage cycle of a plugin consists of the invokations of
       the command <b class="cmd"><a href="../../../../index.html#key289">import</a></b>. This call has to leave the plugin in
       a state where another usage cycle can be run without problems.</p></li>
</ol>
</div>
<div id="section5" class="section"><h2><a name="section5">Keyword index serialization format</a></h2>
<p>Here we specify the format used by the doctools v2 packages to
serialize keyword indices as immutable values for transport,
comparison, etc.</p>
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key287">import</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key204">json</a>, <a href="../../../../index.html#key184">keyword index</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key249">reference</a>, <a href="../../../../index.html#key244">url</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key289">import</a>, <a href="../../../../index.html#key182">index</a>, <a href="../../../../index.html#key204">json</a>, <a href="../../../../index.html#key184">keyword index</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key249">reference</a>, <a href="../../../../index.html#key244">url</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_import_json.html.

131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::import::json <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">doctools::idx::structure</b></li>
<li>package require <b class="pkgname">json</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index import plugin for
the parsing of JSON markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_import.html">doctools::idx::import</a></b>, the import manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_import.html">doctools::idx::import</a></b> and the import manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx import plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the <i class="arg">string</i> and parses it as JSON
markup encoding a keyword index, in the context of the specified
<i class="arg">configuration</i> (a dictionary). The result of the command is the
canonical serialization of that keyword index, in the form specified
in section <span class="sectref"><a href="#section4">Keyword index serialization format</a></span>.</p></dd>
</dl>
</div>







|


















|







131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::idx::import::json <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">doctools::idx::structure</b></li>
<li>package require <b class="pkgname">json</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index import plugin for
the parsing of JSON markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_import.html">doctools::idx::import</a></b>, the import manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_import.html">doctools::idx::import</a></b> and the import manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx import plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the <i class="arg">string</i> and parses it as JSON
markup encoding a keyword index, in the context of the specified
<i class="arg">configuration</i> (a dictionary). The result of the command is the
canonical serialization of that keyword index, in the form specified
in section <span class="sectref"><a href="#section4">Keyword index serialization format</a></span>.</p></dd>
</dl>
</div>
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key255">JSON</a>, <a href="../../../../index.html#key288">deserialization</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key287">import</a>, <a href="../../../../index.html#key182">index</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key257">JSON</a>, <a href="../../../../index.html#key290">deserialization</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key289">import</a>, <a href="../../../../index.html#key182">index</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_introduction.html.

192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<li><p><b class="package"><a href="idx_export.html">doctools::idx::export</a></b></p></li>
</ul>
</li>
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">Related formats</a></h2>
<p>The docidx format does not stand alone, it has two companion formats.
These are called <i class="term"><a href="../../../../index.html#key254">doctoc</a></i> and <i class="term"><a href="../../../../index.html#key179">doctools</a></i>, and they are
intended for the markup of <i class="term">tables of contents</i>, and of general
documentation, respectively.
They are described in their own sets of documents, starting at
the <i class="term">DocTools - Tables Of Contents</i> and
the <i class="term">DocTools - General</i>, respectively.</p>
</div>
<div id="section3" class="section"><h2><a name="section3">Package Overview</a></h2>







|







192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<li><p><b class="package"><a href="idx_export.html">doctools::idx::export</a></b></p></li>
</ul>
</li>
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">Related formats</a></h2>
<p>The docidx format does not stand alone, it has two companion formats.
These are called <i class="term"><a href="../../../../index.html#key256">doctoc</a></i> and <i class="term"><a href="../../../../index.html#key179">doctools</a></i>, and they are
intended for the markup of <i class="term">tables of contents</i>, and of general
documentation, respectively.
They are described in their own sets of documents, starting at
the <i class="term">DocTools - Tables Of Contents</i> and
the <i class="term">DocTools - General</i>, respectively.</p>
</div>
<div id="section3" class="section"><h2><a name="section3">Package Overview</a></h2>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_msgcat_c.html.

159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key286">C</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key288">C</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_msgcat_de.html.

159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key632">DE</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key636">DE</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_msgcat_en.html.

159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key543">EN</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key546">EN</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_parse.html.

335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key253">lexer</a>, <a href="../../../../index.html#key9">parser</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key255">lexer</a>, <a href="../../../../index.html#key9">parser</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools2idx/idx_structure.html.

276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key288">deserialization</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key290">deserialization</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools2idx/import_docidx.html.

141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<li>package require <b class="pkgname">struct::list</b></li>
<li>package require <b class="pkgname">struct::set</b></li>
<li>package require <b class="pkgname">struct::stack</b></li>
<li>package require <b class="pkgname">struct::tree</b></li>
<li>package require <b class="pkgname">treeql</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index import plugin for
the parsing of docidx markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_import.html">doctools::idx::import</a></b>, the import manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_import.html">doctools::idx::import</a></b> and the import manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx import plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the <i class="arg">string</i> and parses it as docidx
markup encoding a keyword index, in the context of the specified
<i class="arg">configuration</i> (a dictionary). The result of the command is the
canonical serialization of that keyword index, in the form specified
in section <span class="sectref"><a href="#section4">Keyword index serialization format</a></span>.</p></dd>
</dl>
</div>







|


















|







141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<li>package require <b class="pkgname">struct::list</b></li>
<li>package require <b class="pkgname">struct::set</b></li>
<li>package require <b class="pkgname">struct::stack</b></li>
<li>package require <b class="pkgname">struct::tree</b></li>
<li>package require <b class="pkgname">treeql</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools keyword index import plugin for
the parsing of docidx markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling keyword indices, especially <b class="package"><a href="idx_import.html">doctools::idx::import</a></b>, the import manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="idx_import.html">doctools::idx::import</a></b> and the import manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
docidx import plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the <i class="arg">string</i> and parses it as docidx
markup encoding a keyword index, in the context of the specified
<i class="arg">configuration</i> (a dictionary). The result of the command is the
canonical serialization of that keyword index, in the form specified
in section <span class="sectref"><a href="#section4">Keyword index serialization format</a></span>.</p></dd>
</dl>
</div>
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key288">deserialization</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key287">import</a>, <a href="../../../../index.html#key182">index</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key290">deserialization</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key289">import</a>, <a href="../../../../index.html#key182">index</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2toc/export_doctoc.html.

130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::export::doctoc <span class="opt">?0.1?</span></b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents export plugin
for the generation of doctoc markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_export.html">doctools::toc::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_export.html">doctools::toc::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a table of contents,
as specified in section <span class="sectref"><a href="#section5">ToC serialization format</a></span>, and
contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary, and
generates doctoc markup encoding the table.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|


















|







130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::export::doctoc <span class="opt">?0.1?</span></b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents export plugin
for the generation of doctoc markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_export.html">doctools::toc::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_export.html">doctools::toc::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a table of contents,
as specified in section <span class="sectref"><a href="#section5">ToC serialization format</a></span>, and
contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary, and
generates doctoc markup encoding the table.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key254">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key256">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2toc/import_doctoc.html.

141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<li>package require <b class="pkgname">struct::list</b></li>
<li>package require <b class="pkgname">struct::set</b></li>
<li>package require <b class="pkgname">struct::stack</b></li>
<li>package require <b class="pkgname">struct::tree</b></li>
<li>package require <b class="pkgname">treeql</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents import plugin
for the parsing of doctoc markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_import.html">doctools::toc::import</a></b>, the import manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_import.html">doctools::toc::import</a></b> and the import manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc import plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the <i class="arg">string</i> and parses it as doctoc
markup encoding a table of contents, in the context of the specified
<i class="arg">configuration</i> (a dictionary). The result of the command is the
canonical serialization of that table of contents, in the form
specified in section <span class="sectref"><a href="#section4">ToC serialization format</a></span>.</p></dd>
</dl>
</div>







|


















|







141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<li>package require <b class="pkgname">struct::list</b></li>
<li>package require <b class="pkgname">struct::set</b></li>
<li>package require <b class="pkgname">struct::stack</b></li>
<li>package require <b class="pkgname">struct::tree</b></li>
<li>package require <b class="pkgname">treeql</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents import plugin
for the parsing of doctoc markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_import.html">doctools::toc::import</a></b>, the import manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_import.html">doctools::toc::import</a></b> and the import manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc import plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the <i class="arg">string</i> and parses it as doctoc
markup encoding a table of contents, in the context of the specified
<i class="arg">configuration</i> (a dictionary). The result of the command is the
canonical serialization of that table of contents, in the form
specified in section <span class="sectref"><a href="#section4">ToC serialization format</a></span>.</p></dd>
</dl>
</div>
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key288">deserialization</a>, <a href="../../../../index.html#key254">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key287">import</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key290">deserialization</a>, <a href="../../../../index.html#key256">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key289">import</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_container.html.

498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key19">TMML</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key382">doctoc markup</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key248">generation</a>, <a href="../../../../index.html#key204">json</a>, <a href="../../../../index.html#key186">latex</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key249">reference</a>, <a href="../../../../index.html#key106">table</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key243">tcler's wiki</a>, <a href="../../../../index.html#key246">text</a>, <a href="../../../../index.html#key183">wiki</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key19">TMML</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key384">doctoc markup</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key248">generation</a>, <a href="../../../../index.html#key204">json</a>, <a href="../../../../index.html#key186">latex</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key249">reference</a>, <a href="../../../../index.html#key106">table</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key243">tcler's wiki</a>, <a href="../../../../index.html#key246">text</a>, <a href="../../../../index.html#key183">wiki</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_export.html.

149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<li><a href="#3"><i class="arg">objectName</i> <b class="method">destroy</b></a></li>
<li><a href="#4"><i class="arg">objectName</i> <b class="method">export serial</b> <i class="arg">serial</i> <span class="opt">?<i class="arg">format</i>?</span></a></li>
<li><a href="#5"><i class="arg">objectName</i> <b class="method">export object</b> <i class="arg">object</i> <span class="opt">?<i class="arg">format</i>?</span></a></li>
<li><a href="#6"><i class="arg">objectName</i> <b class="method">config names</b></a></li>
<li><a href="#7"><i class="arg">objectName</i> <b class="method">config get</b></a></li>
<li><a href="#8"><i class="arg">objectName</i> <b class="method">config set</b> <i class="arg">name</i> <span class="opt">?<i class="arg">value</i>?</span></a></li>
<li><a href="#9"><i class="arg">objectName</i> <b class="method">config unset</b> <i class="arg">pattern</i>...</a></li>
<li><a href="#10"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class to manage the plugins for the export of
tables of contents to other formats, i.e. their conversion to, for
example <i class="term"><a href="../../../../index.html#key254">doctoc</a></i>, <i class="term"><a href="../../../../index.html#key18">HTML</a></i>, etc.</p>
<p>This is one of the three public pillars the management of tables of
contents resides on. The other two pillars are</p>
<ol class="enumerated">
<li><p><i class="term">Importing tables of contents</i>, and</p></li>
<li><p><i class="term"><a href="toc_container.html">Holding tables of contents</a></i></p></li>
</ol>
<p>For information about the <span class="sectref"><a href="#section2">Concepts</a></span> of tables of contents,







|






|







149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<li><a href="#3"><i class="arg">objectName</i> <b class="method">destroy</b></a></li>
<li><a href="#4"><i class="arg">objectName</i> <b class="method">export serial</b> <i class="arg">serial</i> <span class="opt">?<i class="arg">format</i>?</span></a></li>
<li><a href="#5"><i class="arg">objectName</i> <b class="method">export object</b> <i class="arg">object</i> <span class="opt">?<i class="arg">format</i>?</span></a></li>
<li><a href="#6"><i class="arg">objectName</i> <b class="method">config names</b></a></li>
<li><a href="#7"><i class="arg">objectName</i> <b class="method">config get</b></a></li>
<li><a href="#8"><i class="arg">objectName</i> <b class="method">config set</b> <i class="arg">name</i> <span class="opt">?<i class="arg">value</i>?</span></a></li>
<li><a href="#9"><i class="arg">objectName</i> <b class="method">config unset</b> <i class="arg">pattern</i>...</a></li>
<li><a href="#10"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class to manage the plugins for the export of
tables of contents to other formats, i.e. their conversion to, for
example <i class="term"><a href="../../../../index.html#key256">doctoc</a></i>, <i class="term"><a href="../../../../index.html#key18">HTML</a></i>, etc.</p>
<p>This is one of the three public pillars the management of tables of
contents resides on. The other two pillars are</p>
<ol class="enumerated">
<li><p><i class="term">Importing tables of contents</i>, and</p></li>
<li><p><i class="term"><a href="toc_container.html">Holding tables of contents</a></i></p></li>
</ol>
<p>For information about the <span class="sectref"><a href="#section2">Concepts</a></span> of tables of contents,
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
       format.</p></li>
<li><p>The plugin can expect that the package
       <b class="package">doctools::toc::export::plugin</b> is present, as
       indicator that it was invoked from a genuine plugin manager.</p></li>
<li><p>A plugin has to provide one command, with the signature shown
       below.</p>
<dl class="definitions">
<dt><a name="10"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>Whenever an export manager of <b class="package"><a href="../doctools/doctoc.html">doctools::toc</a></b> has to generate
output for a table of contents it will invoke this command.</p>
<dl class="arguments">
<dt>string <i class="arg">serial</i></dt>
<dd><p>This argument will contain the <i class="term">canonical</i> serialization of the
table of contents for which to generate the output.
The specification of what a <i class="term">canonical</i> serialization is can be







|







323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
       format.</p></li>
<li><p>The plugin can expect that the package
       <b class="package">doctools::toc::export::plugin</b> is present, as
       indicator that it was invoked from a genuine plugin manager.</p></li>
<li><p>A plugin has to provide one command, with the signature shown
       below.</p>
<dl class="definitions">
<dt><a name="10"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>Whenever an export manager of <b class="package"><a href="../doctools/doctoc.html">doctools::toc</a></b> has to generate
output for a table of contents it will invoke this command.</p>
<dl class="arguments">
<dt>string <i class="arg">serial</i></dt>
<dd><p>This argument will contain the <i class="term">canonical</i> serialization of the
table of contents for which to generate the output.
The specification of what a <i class="term">canonical</i> serialization is can be
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
          urls). A plugin has to be able to handle the possibility
          that a document id is without entry in this mapping.</p></dd>
</dl></dd>
</dl></dd>
</dl>
</li>
<li><p>A single usage cycle of a plugin consists of the invokations of
       the command <b class="cmd"><a href="../../../../index.html#key256">export</a></b>. This call has to leave the plugin in
       a state where another usage cycle can be run without problems.</p></li>
</ol>
</div>
<div id="section5" class="section"><h2><a name="section5">ToC serialization format</a></h2>
<p>Here we specify the format used by the doctools v2 packages to
serialize tables of contents as immutable values for transport,
comparison, etc.</p>







|







361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
          urls). A plugin has to be able to handle the possibility
          that a document id is without entry in this mapping.</p></dd>
</dl></dd>
</dl></dd>
</dl>
</li>
<li><p>A single usage cycle of a plugin consists of the invokations of
       the command <b class="cmd"><a href="../../../../index.html#key258">export</a></b>. This call has to leave the plugin in
       a state where another usage cycle can be run without problems.</p></li>
</ol>
</div>
<div id="section5" class="section"><h2><a name="section5">ToC serialization format</a></h2>
<p>Here we specify the format used by the doctools v2 packages to
serialize tables of contents as immutable values for transport,
comparison, etc.</p>
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key254">doctoc</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key248">generation</a>, <a href="../../../../index.html#key204">json</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key249">reference</a>, <a href="../../../../index.html#key106">table</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key243">tcler's wiki</a>, <a href="../../../../index.html#key246">text</a>, <a href="../../../../index.html#key244">url</a>, <a href="../../../../index.html#key183">wiki</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key256">doctoc</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key248">generation</a>, <a href="../../../../index.html#key204">json</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key249">reference</a>, <a href="../../../../index.html#key106">table</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key243">tcler's wiki</a>, <a href="../../../../index.html#key246">text</a>, <a href="../../../../index.html#key244">url</a>, <a href="../../../../index.html#key183">wiki</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_export_html.html.

132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::export::html <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
<li>package require <b class="pkgname">doctools::html</b></li>
<li>package require <b class="pkgname">doctools::html::cssdefaults</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents export plugin
for the generation of HTML markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_export.html">doctools::toc::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_export.html">doctools::toc::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a table of contents,
as specified in section <span class="sectref"><a href="#section4">ToC serialization format</a></span>, and
contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary, and
generates HTML markup encoding the table.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|


















|







132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::export::html <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
<li>package require <b class="pkgname">doctools::html</b></li>
<li>package require <b class="pkgname">doctools::html::cssdefaults</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents export plugin
for the generation of HTML markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_export.html">doctools::toc::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_export.html">doctools::toc::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a table of contents,
as specified in section <span class="sectref"><a href="#section4">ToC serialization format</a></span>, and
contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary, and
generates HTML markup encoding the table.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_export_json.html.

131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::export::json <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">textutil::adjust</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents export plugin
for the generation of JSON markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_export.html">doctools::toc::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_export.html">doctools::toc::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a table of contents,
as specified in section <span class="sectref"><a href="#section5">ToC serialization format</a></span>, and
contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary, and
generates JSON markup encoding the table.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|


















|







131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::export::json <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">textutil::adjust</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents export plugin
for the generation of JSON markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_export.html">doctools::toc::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_export.html">doctools::toc::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a table of contents,
as specified in section <span class="sectref"><a href="#section5">ToC serialization format</a></span>, and
contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary, and
generates JSON markup encoding the table.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key255">JSON</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key257">JSON</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_export_nroff.html.

131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::export::nroff <span class="opt">?0.2?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
<li>package require <b class="pkgname">doctools::nroff::man_macros</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents export plugin
for the generation of nroff markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_export.html">doctools::toc::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_export.html">doctools::toc::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a table of contents,
as specified in section <span class="sectref"><a href="#section4">ToC serialization format</a></span>, and
contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary, and
generates nroff markup encoding the table.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|


















|







131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::export::nroff <span class="opt">?0.2?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
<li>package require <b class="pkgname">doctools::nroff::man_macros</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents export plugin
for the generation of nroff markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_export.html">doctools::toc::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_export.html">doctools::toc::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a table of contents,
as specified in section <span class="sectref"><a href="#section4">ToC serialization format</a></span>, and
contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary, and
generates nroff markup encoding the table.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key21">nroff</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_export_text.html.

130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::export::text <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents export plugin
for the generation of plain text markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_export.html">doctools::toc::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_export.html">doctools::toc::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a table of contents,
as specified in section <span class="sectref"><a href="#section4">ToC serialization format</a></span>, and
contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary, and
generates plain text markup encoding the table.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|


















|







130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::export::text <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents export plugin
for the generation of plain text markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_export.html">doctools::toc::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_export.html">doctools::toc::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a table of contents,
as specified in section <span class="sectref"><a href="#section4">ToC serialization format</a></span>, and
contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary, and
generates plain text markup encoding the table.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key539">plain text</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key542">plain text</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_export_wiki.html.

131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::export::wiki <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents export plugin
for the generation of wiki markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_export.html">doctools::toc::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_export.html">doctools::toc::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a table of contents,
as specified in section <span class="sectref"><a href="#section5">ToC serialization format</a></span>, and
contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary, and
generates wiki markup encoding the table.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|


















|







131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::export::wiki <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">doctools::text</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents export plugin
for the generation of wiki markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_export.html">doctools::toc::export</a></b>, the export manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_export.html">doctools::toc::export</a></b> and the export manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc export plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a table of contents,
as specified in section <span class="sectref"><a href="#section5">ToC serialization format</a></span>, and
contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary, and
generates wiki markup encoding the table.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a>, <a href="../../../../index.html#key183">wiki</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a>, <a href="../../../../index.html#key183">wiki</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_import.html.

156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
<li><a href="#10"><i class="arg">objectName</i> <b class="method">config set</b> <i class="arg">name</i> <span class="opt">?<i class="arg">value</i>?</span></a></li>
<li><a href="#11"><i class="arg">objectName</i> <b class="method">config unset</b> <i class="arg">pattern</i>...</a></li>
<li><a href="#12"><i class="arg">objectName</i> <b class="method">includes</b></a></li>
<li><a href="#13"><i class="arg">objectName</i> <b class="method">include add</b> <i class="arg">path</i></a></li>
<li><a href="#14"><i class="arg">objectName</i> <b class="method">include remove</b> <i class="arg">path</i></a></li>
<li><a href="#15"><i class="arg">objectName</i> <b class="method">include clear</b></a></li>
<li><a href="#16"><b class="cmd">IncludeFile</b> <i class="arg">currentfile</i> <i class="arg">path</i></a></li>
<li><a href="#17"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">text</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class to manage the plugins for the import of
tables of contents from other formats, i.e. their conversion from, for
example <i class="term"><a href="../../../../index.html#key254">doctoc</a></i>, <i class="term"><a href="../../../../index.html#key204">json</a></i>, etc.</p>
<p>This is one of the three public pillars the management of tables of
contents resides on. The other two pillars are</p>
<ol class="enumerated">
<li><p><i class="term"><a href="toc_export.html">Exporting tables of contents</a></i>, and</p></li>
<li><p><i class="term"><a href="toc_container.html">Holding tables of contents</a></i></p></li>
</ol>
<p>For information about the <span class="sectref"><a href="#section2">Concepts</a></span> of tables of contents,







|






|







156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
<li><a href="#10"><i class="arg">objectName</i> <b class="method">config set</b> <i class="arg">name</i> <span class="opt">?<i class="arg">value</i>?</span></a></li>
<li><a href="#11"><i class="arg">objectName</i> <b class="method">config unset</b> <i class="arg">pattern</i>...</a></li>
<li><a href="#12"><i class="arg">objectName</i> <b class="method">includes</b></a></li>
<li><a href="#13"><i class="arg">objectName</i> <b class="method">include add</b> <i class="arg">path</i></a></li>
<li><a href="#14"><i class="arg">objectName</i> <b class="method">include remove</b> <i class="arg">path</i></a></li>
<li><a href="#15"><i class="arg">objectName</i> <b class="method">include clear</b></a></li>
<li><a href="#16"><b class="cmd">IncludeFile</b> <i class="arg">currentfile</i> <i class="arg">path</i></a></li>
<li><a href="#17"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">text</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class to manage the plugins for the import of
tables of contents from other formats, i.e. their conversion from, for
example <i class="term"><a href="../../../../index.html#key256">doctoc</a></i>, <i class="term"><a href="../../../../index.html#key204">json</a></i>, etc.</p>
<p>This is one of the three public pillars the management of tables of
contents resides on. The other two pillars are</p>
<ol class="enumerated">
<li><p><i class="term"><a href="toc_export.html">Exporting tables of contents</a></i>, and</p></li>
<li><p><i class="term"><a href="toc_container.html">Holding tables of contents</a></i></p></li>
</ol>
<p>For information about the <span class="sectref"><a href="#section2">Concepts</a></span> of tables of contents,
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
       indicator that it was invoked from a genuine plugin manager.</p></li>
<li><p>The plugin can expect that a command named <b class="cmd">IncludeFile</b> is
       present, with the signature</p>
<dl class="definitions">
<dt><a name="16"><b class="cmd">IncludeFile</b> <i class="arg">currentfile</i> <i class="arg">path</i></a></dt>
<dd><p>This command has to be invoked by the plugin when it has to process an
included file, if the format has the concept of such. An example of
such a format would be <i class="term"><a href="../../../../index.html#key254">doctoc</a></i>.</p>
<p>The plugin has to supply the following arguments</p>
<dl class="arguments">
<dt>string <i class="arg">currentfile</i></dt>
<dd><p>The path of the file it is currently processing. This may be the empty
string if no such is known.</p></dd>
<dt>string <i class="arg">path</i></dt>
<dd><p>The path of the include file as specified in the include directive







|







357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
       indicator that it was invoked from a genuine plugin manager.</p></li>
<li><p>The plugin can expect that a command named <b class="cmd">IncludeFile</b> is
       present, with the signature</p>
<dl class="definitions">
<dt><a name="16"><b class="cmd">IncludeFile</b> <i class="arg">currentfile</i> <i class="arg">path</i></a></dt>
<dd><p>This command has to be invoked by the plugin when it has to process an
included file, if the format has the concept of such. An example of
such a format would be <i class="term"><a href="../../../../index.html#key256">doctoc</a></i>.</p>
<p>The plugin has to supply the following arguments</p>
<dl class="arguments">
<dt>string <i class="arg">currentfile</i></dt>
<dd><p>The path of the file it is currently processing. This may be the empty
string if no such is known.</p></dd>
<dt>string <i class="arg">path</i></dt>
<dd><p>The path of the include file as specified in the include directive
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
       for a <b class="const">notread</b> error in more detail.</p></li>
</ol></dd>
</dl>
</li>
<li><p>A plugin has to provide one command, with the signature shown
       below.</p>
<dl class="definitions">
<dt><a name="17"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">text</i> <i class="arg">configuration</i></a></dt>
<dd><p>Whenever an import manager of <b class="package"><a href="../doctools/doctoc.html">doctools::toc</a></b> has to parse
input for a table of contents it will invoke this command.</p>
<dl class="arguments">
<dt>string <i class="arg">text</i></dt>
<dd><p>This argument will contain the text encoding the table of contents per
the format the plugin is for.</p></dd>
<dt>dictionary <i class="arg">configuration</i></dt>







|







396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
       for a <b class="const">notread</b> error in more detail.</p></li>
</ol></dd>
</dl>
</li>
<li><p>A plugin has to provide one command, with the signature shown
       below.</p>
<dl class="definitions">
<dt><a name="17"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">text</i> <i class="arg">configuration</i></a></dt>
<dd><p>Whenever an import manager of <b class="package"><a href="../doctools/doctoc.html">doctools::toc</a></b> has to parse
input for a table of contents it will invoke this command.</p>
<dl class="arguments">
<dt>string <i class="arg">text</i></dt>
<dd><p>This argument will contain the text encoding the table of contents per
the format the plugin is for.</p></dd>
<dt>dictionary <i class="arg">configuration</i></dt>
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
<dd><p>This variable is expected to contain the name of the
             format whose plugin is invoked.</p></dd>
</dl></dd>
</dl></dd>
</dl>
</li>
<li><p>A single usage cycle of a plugin consists of the invokations of
       the command <b class="cmd"><a href="../../../../index.html#key287">import</a></b>. This call has to leave the plugin in
       a state where another usage cycle can be run without problems.</p></li>
</ol>
</div>
<div id="section5" class="section"><h2><a name="section5">ToC serialization format</a></h2>
<p>Here we specify the format used by the doctools v2 packages to
serialize tables of contents as immutable values for transport,
comparison, etc.</p>







|







422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
<dd><p>This variable is expected to contain the name of the
             format whose plugin is invoked.</p></dd>
</dl></dd>
</dl></dd>
</dl>
</li>
<li><p>A single usage cycle of a plugin consists of the invokations of
       the command <b class="cmd"><a href="../../../../index.html#key289">import</a></b>. This call has to leave the plugin in
       a state where another usage cycle can be run without problems.</p></li>
</ol>
</div>
<div id="section5" class="section"><h2><a name="section5">ToC serialization format</a></h2>
<p>Here we specify the format used by the doctools v2 packages to
serialize tables of contents as immutable values for transport,
comparison, etc.</p>
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key254">doctoc</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key287">import</a>, <a href="../../../../index.html#key204">json</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key249">reference</a>, <a href="../../../../index.html#key106">table</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key244">url</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key256">doctoc</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key289">import</a>, <a href="../../../../index.html#key204">json</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key249">reference</a>, <a href="../../../../index.html#key106">table</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key244">url</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_import_json.html.

131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::import::json <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">doctools::toc::structure</b></li>
<li>package require <b class="pkgname">json</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents import plugin
for the parsing of JSON markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_import.html">doctools::toc::import</a></b>, the import manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_import.html">doctools::toc::import</a></b> and the import manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc import plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the <i class="arg">string</i> and parses it as JSON
markup encoding a table of contents, in the context of the specified
<i class="arg">configuration</i> (a dictionary). The result of the command is the
canonical serialization of that table of contents, in the form
specified in section <span class="sectref"><a href="#section4">ToC serialization format</a></span>.</p></dd>
</dl>
</div>







|


















|







131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">doctools::toc::import::json <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">doctools::toc::structure</b></li>
<li>package require <b class="pkgname">json</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package implements the doctools table of contents import plugin
for the parsing of JSON markup.</p>
<p>This is an internal package of doctools, for use by the higher level
management packages handling tables of contents, especially <b class="package"><a href="toc_import.html">doctools::toc::import</a></b>, the import manager.</p>
<p>Using it from a regular interpreter is possible, however only with
contortions, and is not recommended.
The proper way to use this functionality is through the package
<b class="package"><a href="toc_import.html">doctools::toc::import</a></b> and the import manager objects it
provides.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
doctoc import plugin API version 2.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">string</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the <i class="arg">string</i> and parses it as JSON
markup encoding a table of contents, in the context of the specified
<i class="arg">configuration</i> (a dictionary). The result of the command is the
canonical serialization of that table of contents, in the form
specified in section <span class="sectref"><a href="#section4">ToC serialization format</a></span>.</p></dd>
</dl>
</div>
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key255">JSON</a>, <a href="../../../../index.html#key288">deserialization</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key287">import</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key257">JSON</a>, <a href="../../../../index.html#key290">deserialization</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key289">import</a>, <a href="../../../../index.html#key157">table of contents</a>, <a href="../../../../index.html#key156">toc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text formatter plugin</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_introduction.html.

122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<li class="section"><a href="#see-also">See Also</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#category">Category</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p><i class="term"><a href="../../../../index.html#key254">doctoc</a></i> (short for <em>documentation tables of contents</em>)
stands for a set of related, yet different, entities which are working
together for the easy creation and transformation of tables and
contents for documentation.</p>
<p>These are</p>
<ol class="enumerated">
<li><p>A tcl based language for the semantic markup of a table of contents.
Markup is represented by Tcl commands.







|







122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<li class="section"><a href="#see-also">See Also</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#category">Category</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p><i class="term"><a href="../../../../index.html#key256">doctoc</a></i> (short for <em>documentation tables of contents</em>)
stands for a set of related, yet different, entities which are working
together for the easy creation and transformation of tables and
contents for documentation.</p>
<p>These are</p>
<ol class="enumerated">
<li><p>A tcl based language for the semantic markup of a table of contents.
Markup is represented by Tcl commands.
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
time to refresh her memory.</p>
<p>While a document is written the <b class="syscmd">dtp</b> application can be used
to validate it, and after completion it also performs the conversion
into the chosen system of visual markup, be it *roff, HTML, plain
text, wiki, etc. The simpler <b class="syscmd"><a href="../dtplite/pkg_dtplite.html">dtplite</a></b> application makes
internal use of doctoc when handling directories of documentation,
automatically generating a proper table of contents for them.</p></li>
<li><p>A <i class="term">processor</i> of documentation written in the <i class="term"><a href="../../../../index.html#key254">doctoc</a></i>
markup language has to know which tools are available for use.</p>
<p>The main tool is the aforementioned <b class="syscmd">dtp</b> application provided
by Tcllib. The simpler <b class="syscmd"><a href="../dtplite/pkg_dtplite.html">dtplite</a></b> does not expose doctoc to the
user. At the bottom level, common to both applications, however we
find the three packages providing the basic facilities to handle
tables of contents, i.e. import from textual formats, programmatic
manipulation in memory, and export to textual formats. These are</p>







|







159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
time to refresh her memory.</p>
<p>While a document is written the <b class="syscmd">dtp</b> application can be used
to validate it, and after completion it also performs the conversion
into the chosen system of visual markup, be it *roff, HTML, plain
text, wiki, etc. The simpler <b class="syscmd"><a href="../dtplite/pkg_dtplite.html">dtplite</a></b> application makes
internal use of doctoc when handling directories of documentation,
automatically generating a proper table of contents for them.</p></li>
<li><p>A <i class="term">processor</i> of documentation written in the <i class="term"><a href="../../../../index.html#key256">doctoc</a></i>
markup language has to know which tools are available for use.</p>
<p>The main tool is the aforementioned <b class="syscmd">dtp</b> application provided
by Tcllib. The simpler <b class="syscmd"><a href="../dtplite/pkg_dtplite.html">dtplite</a></b> does not expose doctoc to the
user. At the bottom level, common to both applications, however we
find the three packages providing the basic facilities to handle
tables of contents, i.e. import from textual formats, programmatic
manipulation in memory, and export to textual formats. These are</p>
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../doctools/doctoc_intro.html">doctoc_intro</a>, <a href="../doctools/doctools.html">doctools</a>, doctools2doc_introduction, <a href="../doctools2idx/idx_introduction.html">doctools2idx_introduction</a>, <a href="../doctools/doctools_lang_cmdref.html">doctools_lang_cmdref</a>, <a href="../doctools/doctools_lang_faq.html">doctools_lang_faq</a>, <a href="../doctools/doctools_lang_intro.html">doctools_lang_intro</a>, <a href="../doctools/doctools_lang_syntax.html">doctools_lang_syntax</a>, <a href="../doctools/doctools_plugin_apiref.html">doctools_plugin_apiref</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key514">contents</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key136">semantic markup</a>, <a href="../../../../index.html#key157">table of contents</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../doctools/doctoc_intro.html">doctoc_intro</a>, <a href="../doctools/doctools.html">doctools</a>, doctools2doc_introduction, <a href="../doctools2idx/idx_introduction.html">doctools2idx_introduction</a>, <a href="../doctools/doctools_lang_cmdref.html">doctools_lang_cmdref</a>, <a href="../doctools/doctools_lang_faq.html">doctools_lang_faq</a>, <a href="../doctools/doctools_lang_intro.html">doctools_lang_intro</a>, <a href="../doctools/doctools_lang_syntax.html">doctools_lang_syntax</a>, <a href="../doctools/doctools_plugin_apiref.html">doctools_plugin_apiref</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key516">contents</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key136">semantic markup</a>, <a href="../../../../index.html#key157">table of contents</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_msgcat_c.html.

159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key286">C</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key254">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key288">C</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key256">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_msgcat_de.html.

159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key632">DE</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key254">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key636">DE</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key256">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_msgcat_en.html.

159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key543">EN</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key254">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key546">EN</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key256">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_msgcat_fr.html.

159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key170">FR</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key254">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key170">FR</a>, <a href="../../../../index.html#key176">catalog package</a>, <a href="../../../../index.html#key256">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key171">i18n</a>, <a href="../../../../index.html#key175">internationalization</a>, <a href="../../../../index.html#key177">l10n</a>, <a href="../../../../index.html#key174">localization</a>, <a href="../../../../index.html#key172">message catalog</a>, <a href="../../../../index.html#key173">message package</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_parse.html.

153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<li><a href="#9"><b class="cmd">::doctools::toc::parse</b> <b class="method">var unset</b> <i class="arg">name</i></a></li>
<li><a href="#10"><b class="cmd">::doctools::toc::parse</b> <b class="method">var clear</b> <span class="opt">?<i class="arg">pattern</i>?</span></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides commands to parse text written in the
<i class="term"><a href="../../../../index.html#key254">doctoc</a></i> markup language and convert it into the canonical
serialization of the table of contents encoded in the text.
See the section <span class="sectref"><a href="#section5">ToC serialization format</a></span> for specification
of their format.</p>
<p>This is an internal package of doctools, for use by the higher level
packages handling <i class="term"><a href="../../../../index.html#key254">doctoc</a></i> documents.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::toc::parse</b> <b class="method">text</b> <i class="arg">text</i></a></dt>
<dd><p>The command takes the string contained in <i class="arg">text</i> and parses it
under the assumption that it contains a document written using the
<i class="term"><a href="../../../../index.html#key254">doctoc</a></i> markup language. An error is thrown if this assumption
is found to be false. The format of these errors is described in
section <span class="sectref"><a href="#section3">Parse errors</a></span>.</p>
<p>When successful the command returns the canonical serialization of the
table of contents which was encoded in the text.
See the section <span class="sectref"><a href="#section5">ToC serialization format</a></span> for specification
of that format.</p></dd>
<dt><a name="2"><b class="cmd">::doctools::toc::parse</b> <b class="method">file</b> <i class="arg">path</i></a></dt>







|




|






|







153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<li><a href="#9"><b class="cmd">::doctools::toc::parse</b> <b class="method">var unset</b> <i class="arg">name</i></a></li>
<li><a href="#10"><b class="cmd">::doctools::toc::parse</b> <b class="method">var clear</b> <span class="opt">?<i class="arg">pattern</i>?</span></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides commands to parse text written in the
<i class="term"><a href="../../../../index.html#key256">doctoc</a></i> markup language and convert it into the canonical
serialization of the table of contents encoded in the text.
See the section <span class="sectref"><a href="#section5">ToC serialization format</a></span> for specification
of their format.</p>
<p>This is an internal package of doctools, for use by the higher level
packages handling <i class="term"><a href="../../../../index.html#key256">doctoc</a></i> documents.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::toc::parse</b> <b class="method">text</b> <i class="arg">text</i></a></dt>
<dd><p>The command takes the string contained in <i class="arg">text</i> and parses it
under the assumption that it contains a document written using the
<i class="term"><a href="../../../../index.html#key256">doctoc</a></i> markup language. An error is thrown if this assumption
is found to be false. The format of these errors is described in
section <span class="sectref"><a href="#section3">Parse errors</a></span>.</p>
<p>When successful the command returns the canonical serialization of the
table of contents which was encoded in the text.
See the section <span class="sectref"><a href="#section5">ToC serialization format</a></span> for specification
of that format.</p></dd>
<dt><a name="2"><b class="cmd">::doctools::toc::parse</b> <b class="method">file</b> <i class="arg">path</i></a></dt>
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
during processing. The method returns the empty string as its result.</p>
<p>The pattern matching is done with <b class="cmd">string match</b>, and the
default pattern used when none is specified, is <b class="const">*</b>.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Parse errors</a></h2>
<p>The format of the parse error messages thrown when encountering
violations of the <i class="term"><a href="../../../../index.html#key254">doctoc</a></i> markup syntax is human readable and
not intended for processing by machines. As such it is not documented.</p>
<p><em>However</em>, the errorCode attached to the message is
machine-readable and has the following format:</p>
<ol class="enumerated">
<li><p>The error code will be a list, each element describing a single error
found in the input. The list has at least one element, possibly more.</p></li>
<li><p>Each error element will be a list containing six strings describing an







|







213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
during processing. The method returns the empty string as its result.</p>
<p>The pattern matching is done with <b class="cmd">string match</b>, and the
default pattern used when none is specified, is <b class="const">*</b>.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Parse errors</a></h2>
<p>The format of the parse error messages thrown when encountering
violations of the <i class="term"><a href="../../../../index.html#key256">doctoc</a></i> markup syntax is human readable and
not intended for processing by machines. As such it is not documented.</p>
<p><em>However</em>, the errorCode attached to the message is
machine-readable and has the following format:</p>
<ol class="enumerated">
<li><p>The error code will be a list, each element describing a single error
found in the input. The list has at least one element, possibly more.</p></li>
<li><p>Each error element will be a list containing six strings describing an
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key254">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key253">lexer</a>, <a href="../../../../index.html#key9">parser</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key256">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key255">lexer</a>, <a href="../../../../index.html#key9">parser</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/doctools2toc/toc_structure.html.

144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides commands to work with the serializations of
tables of contents as managed by the doctools system v2, and specified
in section <span class="sectref"><a href="#section3">ToC serialization format</a></span>.</p>
<p>This is an internal package of doctools, for use by the higher level
packages handling tables of contents and their conversion into and out
of various other formats, like documents written using <i class="term"><a href="../../../../index.html#key254">doctoc</a></i>
markup.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::toc::structure</b> <b class="method">verify</b> <i class="arg">serial</i> <span class="opt">?<i class="arg">canonvar</i>?</span></a></dt>
<dd><p>This command verifies that the content of <i class="arg">serial</i> is a valid
<i class="term">regular</i> serialization of a table of contents and will throw an







|







144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides commands to work with the serializations of
tables of contents as managed by the doctools system v2, and specified
in section <span class="sectref"><a href="#section3">ToC serialization format</a></span>.</p>
<p>This is an internal package of doctools, for use by the higher level
packages handling tables of contents and their conversion into and out
of various other formats, like documents written using <i class="term"><a href="../../../../index.html#key256">doctoc</a></i>
markup.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::doctools::toc::structure</b> <b class="method">verify</b> <i class="arg">serial</i> <span class="opt">?<i class="arg">canonvar</i>?</span></a></dt>
<dd><p>This command verifies that the content of <i class="arg">serial</i> is a valid
<i class="term">regular</i> serialization of a table of contents and will throw an
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key288">deserialization</a>, <a href="../../../../index.html#key254">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
bugs and other problems.
Please report such in the category <em>doctools</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key290">deserialization</a>, <a href="../../../../index.html#key256">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key109">serialization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/dtplite/pkg_dtplite.html.

424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../doctools/docidx_intro.html">docidx introduction</a>, <a href="../doctools/doctoc_intro.html">doctoc introduction</a>, <a href="../doctools/doctools_intro.html">doctools introduction</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key19">TMML</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key254">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key21">nroff</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004-2013 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../doctools/docidx_intro.html">docidx introduction</a>, <a href="../doctools/doctoc_intro.html">doctoc introduction</a>, <a href="../doctools/doctools_intro.html">doctools introduction</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key18">HTML</a>, <a href="../../../../index.html#key19">TMML</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key178">docidx</a>, <a href="../../../../index.html#key256">doctoc</a>, <a href="../../../../index.html#key179">doctools</a>, <a href="../../../../index.html#key17">manpage</a>, <a href="../../../../index.html#key16">markup</a>, <a href="../../../../index.html#key21">nroff</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004-2013 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/fileutil/fileutil.html.

202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<dd><p><b class="cmd">file executable</b></p></dd>
<dt><em>f</em>ile</dt>
<dd><p><b class="cmd">file isfile</b></p></dd>
<dt><em>d</em>ir</dt>
<dd><p><b class="cmd">file isdirectory</b></p></dd>
</dl></dd>
<dt><a name="4"><b class="cmd">::fileutil::cat</b> (<span class="opt">?<i class="arg">options</i>?</span> <i class="arg">file</i>)...</a></dt>
<dd><p>A tcl implementation of the UNIX <b class="syscmd"><a href="../../../../index.html#key310">cat</a></b> command.  Returns the
contents of the specified file(s). The arguments are files to read,
with interspersed options configuring the process. If there are
problems reading any of the files, an error will occur, and no data
will be returned.</p>
<p>The options accepted are <b class="option">-encoding</b>, <b class="option">-translation</b>,
<b class="option">-eofchar</b>, and <b class="option">--</b>. With the exception of the last all
options take a single value as argument, as specified by the tcl







|







202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<dd><p><b class="cmd">file executable</b></p></dd>
<dt><em>f</em>ile</dt>
<dd><p><b class="cmd">file isfile</b></p></dd>
<dt><em>d</em>ir</dt>
<dd><p><b class="cmd">file isdirectory</b></p></dd>
</dl></dd>
<dt><a name="4"><b class="cmd">::fileutil::cat</b> (<span class="opt">?<i class="arg">options</i>?</span> <i class="arg">file</i>)...</a></dt>
<dd><p>A tcl implementation of the UNIX <b class="syscmd"><a href="../../../../index.html#key312">cat</a></b> command.  Returns the
contents of the specified file(s). The arguments are files to read,
with interspersed options configuring the process. If there are
problems reading any of the files, an error will occur, and no data
will be returned.</p>
<p>The options accepted are <b class="option">-encoding</b>, <b class="option">-translation</b>,
<b class="option">-eofchar</b>, and <b class="option">--</b>. With the exception of the last all
options take a single value as argument, as specified by the tcl
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
jpeg, graphic png, graphic tiff, graphic bitmap, html, xml (with doctype
if available), message pgp, binary pdf, text ps, text eps, binary
gravity_wave_data_frame, compressed bzip, compressed gzip, compressed
zip, compressed tar, audio wave, audio mpeg, and link. It further
detects doctools, doctoc, and docidx documentation files, and
tklib diagrams.</p></dd>
<dt><a name="12"><b class="cmd">::fileutil::find</b> <span class="opt">?<i class="arg">basedir</i> <span class="opt">?<i class="arg">filtercmd</i>?</span>?</span></a></dt>
<dd><p>An implementation of the unix command <b class="syscmd"><a href="../../../../index.html#key619">find</a></b>. Adapted from the
Tcler's Wiki. Takes at most two arguments, the path to the directory
to start searching from and a command to use to evaluate interest in
each file. The path defaults to &quot;<b class="file">.</b>&quot;, i.e. the current
directory. The command defaults to the empty string, which means that
all files are of interest. The command takes care <em>not</em> to
lose itself in infinite loops upon encountering circular link
structures. The result of the command is a list containing the paths







|







283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
jpeg, graphic png, graphic tiff, graphic bitmap, html, xml (with doctype
if available), message pgp, binary pdf, text ps, text eps, binary
gravity_wave_data_frame, compressed bzip, compressed gzip, compressed
zip, compressed tar, audio wave, audio mpeg, and link. It further
detects doctools, doctoc, and docidx documentation files, and
tklib diagrams.</p></dd>
<dt><a name="12"><b class="cmd">::fileutil::find</b> <span class="opt">?<i class="arg">basedir</i> <span class="opt">?<i class="arg">filtercmd</i>?</span>?</span></a></dt>
<dd><p>An implementation of the unix command <b class="syscmd"><a href="../../../../index.html#key623">find</a></b>. Adapted from the
Tcler's Wiki. Takes at most two arguments, the path to the directory
to start searching from and a command to use to evaluate interest in
each file. The path defaults to &quot;<b class="file">.</b>&quot;, i.e. the current
directory. The command defaults to the empty string, which means that
all files are of interest. The command takes care <em>not</em> to
lose itself in infinite loops upon encountering circular link
structures. The result of the command is a list containing the paths
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
<dd><p>The command reads the file <i class="arg">filename</i> and executes the script
<i class="arg">cmd</i> for every line in the file. During the execution of the
script the variable <i class="arg">var</i> is set to the contents of the current
line. The return value of this command is the result of the last
invocation of the script <i class="arg">cmd</i> or the empty string if the file was
empty.</p></dd>
<dt><a name="15"><b class="cmd">::fileutil::grep</b> <i class="arg">pattern</i> <span class="opt">?<i class="arg">files</i>?</span></a></dt>
<dd><p>Implementation of <b class="syscmd"><a href="../../../../index.html#key312">grep</a></b>. Adapted from the Tcler's Wiki. The
first argument defines the <i class="arg">pattern</i> to search for. This is
followed by a list of <i class="arg">files</i> to search through. The list is
optional and <b class="const">stdin</b> will be used if it is missing. The result
of the procedures is a list containing the matches. Each match is a
single element of the list and contains filename, number and contents
of the matching line, separated by a colons.</p></dd>
<dt><a name="16"><b class="cmd">::fileutil::install</b> <span class="opt">?<b class="option">-m</b> <i class="arg">mode</i>?</span> <i class="arg">source</i> <i class="arg">destination</i></a></dt>







|







328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
<dd><p>The command reads the file <i class="arg">filename</i> and executes the script
<i class="arg">cmd</i> for every line in the file. During the execution of the
script the variable <i class="arg">var</i> is set to the contents of the current
line. The return value of this command is the result of the last
invocation of the script <i class="arg">cmd</i> or the empty string if the file was
empty.</p></dd>
<dt><a name="15"><b class="cmd">::fileutil::grep</b> <i class="arg">pattern</i> <span class="opt">?<i class="arg">files</i>?</span></a></dt>
<dd><p>Implementation of <b class="syscmd"><a href="../../../../index.html#key314">grep</a></b>. Adapted from the Tcler's Wiki. The
first argument defines the <i class="arg">pattern</i> to search for. This is
followed by a list of <i class="arg">files</i> to search through. The list is
optional and <b class="const">stdin</b> will be used if it is missing. The result
of the procedures is a list containing the matches. Each match is a
single element of the list and contains filename, number and contents
of the matching line, separated by a colons.</p></dd>
<dt><a name="16"><b class="cmd">::fileutil::install</b> <span class="opt">?<b class="option">-m</b> <i class="arg">mode</i>?</span> <i class="arg">source</i> <i class="arg">destination</i></a></dt>
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
<p>An absolute path outside of <i class="arg">jail</i> is stripped of its root element
and then put into the <i class="arg">jail</i> by prefixing it with it. The same
happens if <i class="arg">path</i> is relative, except that nothing is stripped of
it. Before adding the <i class="arg">jail</i> prefix the <i class="arg">path</i> is lexically
normalized to prevent the caller from using <b class="const">..</b> segments in
<i class="arg">path</i> to escape the jail.</p></dd>
<dt><a name="21"><b class="cmd">::fileutil::touch</b> <span class="opt">?<b class="option">-a</b>?</span> <span class="opt">?<b class="option">-c</b>?</span> <span class="opt">?<b class="option">-m</b>?</span> <span class="opt">?<b class="option">-r</b> <i class="arg">ref_file</i>?</span> <span class="opt">?<b class="option">-t</b> <i class="arg">time</i>?</span> <i class="arg">filename</i> <span class="opt">?<i class="arg">...</i>?</span></a></dt>
<dd><p>Implementation of <b class="syscmd"><a href="../../../../index.html#key313">touch</a></b>. Alter the atime and mtime of the
specified files. If <b class="option">-c</b>, do not create files if they do not
already exist. If <b class="option">-r</b>, use the atime and mtime from
<i class="arg">ref_file</i>. If <b class="option">-t</b>, use the integer clock value
<i class="arg">time</i>. It is illegal to specify both <b class="option">-r</b> and
<b class="option">-t</b>. If <b class="option">-a</b>, only change the atime. If <b class="option">-m</b>,
only change the mtime.</p>
<p><em>This command is not available for Tcl versions less than 8.3.</em></p></dd>







|







379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
<p>An absolute path outside of <i class="arg">jail</i> is stripped of its root element
and then put into the <i class="arg">jail</i> by prefixing it with it. The same
happens if <i class="arg">path</i> is relative, except that nothing is stripped of
it. Before adding the <i class="arg">jail</i> prefix the <i class="arg">path</i> is lexically
normalized to prevent the caller from using <b class="const">..</b> segments in
<i class="arg">path</i> to escape the jail.</p></dd>
<dt><a name="21"><b class="cmd">::fileutil::touch</b> <span class="opt">?<b class="option">-a</b>?</span> <span class="opt">?<b class="option">-c</b>?</span> <span class="opt">?<b class="option">-m</b>?</span> <span class="opt">?<b class="option">-r</b> <i class="arg">ref_file</i>?</span> <span class="opt">?<b class="option">-t</b> <i class="arg">time</i>?</span> <i class="arg">filename</i> <span class="opt">?<i class="arg">...</i>?</span></a></dt>
<dd><p>Implementation of <b class="syscmd"><a href="../../../../index.html#key315">touch</a></b>. Alter the atime and mtime of the
specified files. If <b class="option">-c</b>, do not create files if they do not
already exist. If <b class="option">-r</b>, use the atime and mtime from
<i class="arg">ref_file</i>. If <b class="option">-t</b>, use the integer clock value
<i class="arg">time</i>. It is illegal to specify both <b class="option">-r</b> and
<b class="option">-t</b>. If <b class="option">-a</b>, only change the atime. If <b class="option">-m</b>,
only change the mtime.</p>
<p><em>This command is not available for Tcl versions less than 8.3.</em></p></dd>
461
462
463
464
465
466
467
468
469
470
471
472
473
bugs and other problems.
Please report such in the category <em>fileutil</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key310">cat</a>, <a href="../../../../index.html#key115">file utilities</a>, <a href="../../../../index.html#key312">grep</a>, <a href="../../../../index.html#key311">temp file</a>, <a href="../../../../index.html#key309">test</a>, <a href="../../../../index.html#key313">touch</a>, <a href="../../../../index.html#key117">type</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
</div></body></html>







|





461
462
463
464
465
466
467
468
469
470
471
472
473
bugs and other problems.
Please report such in the category <em>fileutil</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key312">cat</a>, <a href="../../../../index.html#key115">file utilities</a>, <a href="../../../../index.html#key314">grep</a>, <a href="../../../../index.html#key313">temp file</a>, <a href="../../../../index.html#key311">test</a>, <a href="../../../../index.html#key315">touch</a>, <a href="../../../../index.html#key117">type</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/fileutil/traverse.html.

102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">fileutil_traverse(n) 0.4.5 tcllib &quot;file utilities&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>fileutil_traverse - Iterative directory traversal</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>
<li class="section"><a href="#section1">Description</a></li>
<li class="section"><a href="#section2">OPTIONS</a></li>
<li class="section"><a href="#section3">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#category">Category</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.3</b></li>
<li>package require <b class="pkgname">fileutil::traverse <span class="opt">?0.4.3?</span></b></li>
<li>package require <b class="pkgname">fileutil</b></li>
<li>package require <b class="pkgname">control</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::fileutil::traverse</b> <span class="opt">?<i class="arg">objectName</i>?</span> <i class="arg">path</i> <span class="opt">?<i class="arg">option</i> <i class="arg">value</i>...?</span></a></li>
<li><a href="#2"><b class="cmd">$traverser</b> <b class="method">command</b> <span class="opt">?<i class="arg">arg arg ...</i>?</span></a></li>
<li><a href="#3"><b class="cmd">$traverser</b> <b class="method">files</b></a></li>







|


















|







102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">fileutil_traverse(n) 0.5 tcllib &quot;file utilities&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>fileutil_traverse - Iterative directory traversal</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>
<li class="section"><a href="#section1">Description</a></li>
<li class="section"><a href="#section2">OPTIONS</a></li>
<li class="section"><a href="#section3">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#category">Category</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.3</b></li>
<li>package require <b class="pkgname">fileutil::traverse <span class="opt">?0.5?</span></b></li>
<li>package require <b class="pkgname">fileutil</b></li>
<li>package require <b class="pkgname">control</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::fileutil::traverse</b> <span class="opt">?<i class="arg">objectName</i>?</span> <i class="arg">path</i> <span class="opt">?<i class="arg">option</i> <i class="arg">value</i>...?</span></a></li>
<li><a href="#2"><b class="cmd">$traverser</b> <b class="method">command</b> <span class="opt">?<i class="arg">arg arg ...</i>?</span></a></li>
<li><a href="#3"><b class="cmd">$traverser</b> <b class="method">files</b></a></li>
227
228
229
230
231
232
233
234
235
236
237
238
239
bugs and other problems.
Please report such in the category <em>fileutil</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key715">directory traversal</a>, <a href="../../../../index.html#key714">traversal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
</div></body></html>







|





227
228
229
230
231
232
233
234
235
236
237
238
239
bugs and other problems.
Please report such in the category <em>fileutil</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key719">directory traversal</a>, <a href="../../../../index.html#key718">traversal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/ftp/ftp.html.

421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">BUGS</a></h2>
<p>The correct execution of many commands depends upon the proper
behavior by the remote server, network and router configuration.</p>
<p>An update command placed in the procedure <b class="cmd">::ftp::DisplayMsg</b> may
run into persistent errors or infinite loops. The solution to this
problem is to use <b class="cmd">update idletasks</b> instead of <b class="cmd"><a href="../../../../index.html#key412">update</a></b>.</p>
</div>
<div id="section4" class="section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>ftp</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../ftpd/ftpd.html">ftpd</a>, <a href="../mime/mime.html">mime</a>, <a href="../pop3/pop3.html">pop3</a>, <a href="../mime/smtp.html">smtp</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key290">ftp</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key291">net</a>, <a href="../../../../index.html#key289">rfc 959</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>







|













|





421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">BUGS</a></h2>
<p>The correct execution of many commands depends upon the proper
behavior by the remote server, network and router configuration.</p>
<p>An update command placed in the procedure <b class="cmd">::ftp::DisplayMsg</b> may
run into persistent errors or infinite loops. The solution to this
problem is to use <b class="cmd">update idletasks</b> instead of <b class="cmd"><a href="../../../../index.html#key414">update</a></b>.</p>
</div>
<div id="section4" class="section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>ftp</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../ftpd/ftpd.html">ftpd</a>, <a href="../mime/mime.html">mime</a>, <a href="../pop3/pop3.html">pop3</a>, <a href="../mime/smtp.html">smtp</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key292">ftp</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key293">net</a>, <a href="../../../../index.html#key291">rfc 959</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/ftp/ftp_geturl.html.

131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<ul class="syntax">
<li><a href="#1"><b class="cmd">::ftp::geturl</b> <i class="arg">url</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a command which wraps around the client side of
the <i class="term"><a href="../../../../index.html#key290">ftp</a></i> protocol provided by package <b class="package"><a href="ftp.html">ftp</a></b> to allow the
retrieval of urls using the <i class="term"><a href="../../../../index.html#key290">ftp</a></i> schema.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::ftp::geturl</b> <i class="arg">url</i></a></dt>
<dd><p>This command can be used by the generic command <b class="cmd">::uri::geturl</b>
(See package <b class="package"><a href="../uri/uri.html">uri</a></b>) to retrieve the contents of ftp
urls. Internally it uses the commands of the package <b class="package"><a href="ftp.html">ftp</a></b> to
fulfill the request.</p>
<p>The contents of a <i class="term"><a href="../../../../index.html#key290">ftp</a></i> url are defined as follows:</p>
<dl class="definitions">
<dt><i class="term"><a href="../../../../index.html#key31">file</a></i></dt>
<dd><p>The contents of the specified file itself.</p></dd>
<dt><i class="term">directory</i></dt>
<dd><p>A listing of the contents of the directory in key value notation where
the file name is the key and its attributes the associated value.</p></dd>
<dt><i class="term">link</i></dt>







|
|








|







131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<ul class="syntax">
<li><a href="#1"><b class="cmd">::ftp::geturl</b> <i class="arg">url</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a command which wraps around the client side of
the <i class="term"><a href="../../../../index.html#key292">ftp</a></i> protocol provided by package <b class="package"><a href="ftp.html">ftp</a></b> to allow the
retrieval of urls using the <i class="term"><a href="../../../../index.html#key292">ftp</a></i> schema.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::ftp::geturl</b> <i class="arg">url</i></a></dt>
<dd><p>This command can be used by the generic command <b class="cmd">::uri::geturl</b>
(See package <b class="package"><a href="../uri/uri.html">uri</a></b>) to retrieve the contents of ftp
urls. Internally it uses the commands of the package <b class="package"><a href="ftp.html">ftp</a></b> to
fulfill the request.</p>
<p>The contents of a <i class="term"><a href="../../../../index.html#key292">ftp</a></i> url are defined as follows:</p>
<dl class="definitions">
<dt><i class="term"><a href="../../../../index.html#key31">file</a></i></dt>
<dd><p>The contents of the specified file itself.</p></dd>
<dt><i class="term">directory</i></dt>
<dd><p>A listing of the contents of the directory in key value notation where
the file name is the key and its attributes the associated value.</p></dd>
<dt><i class="term">link</i></dt>
165
166
167
168
169
170
171
172
173
174
175
176
177
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../ftpd/ftpd.html">ftpd</a>, <a href="../mime/mime.html">mime</a>, <a href="../pop3/pop3.html">pop3</a>, <a href="../mime/smtp.html">smtp</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key290">ftp</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key291">net</a>, <a href="../../../../index.html#key289">rfc 959</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>







|





165
166
167
168
169
170
171
172
173
174
175
176
177
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../ftpd/ftpd.html">ftpd</a>, <a href="../mime/mime.html">mime</a>, <a href="../pop3/pop3.html">pop3</a>, <a href="../mime/smtp.html">smtp</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key292">ftp</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key293">net</a>, <a href="../../../../index.html#key291">rfc 959</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/ftpd/ftpd.html.

333
334
335
336
337
338
339
340
341
342
343
344
345
bugs and other problems.
Please report such in the category <em>ftpd</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key290">ftp</a>, <a href="../../../../index.html#key601">ftpd</a>, <a href="../../../../index.html#key600">ftpserver</a>, <a href="../../../../index.html#key289">rfc 959</a>, <a href="../../../../index.html#key599">services</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>







|





333
334
335
336
337
338
339
340
341
342
343
344
345
bugs and other problems.
Please report such in the category <em>ftpd</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key292">ftp</a>, <a href="../../../../index.html#key604">ftpd</a>, <a href="../../../../index.html#key603">ftpserver</a>, <a href="../../../../index.html#key291">rfc 959</a>, <a href="../../../../index.html#key602">services</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/generator/generator.html.

185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
implement custom control structures, as many such structures can be recast as
generators, leading to both a simpler implementation and a more standardised
interface. The generator mechanism is built on top of the Tcl 8.6 coroutine
mechanism.</p>
<p>The package exports a single ensemble command, <b class="cmd">generator</b>. All
functionality is provided as subcommands of this command. The core subcommands
of the package are <b class="method">define</b>, <b class="method">yield</b>, and <b class="method">foreach</b>. The
<b class="method">define</b> command works like Tcl's <b class="cmd"><a href="../../../../index.html#key586">proc</a></b> command, but creates a
generator procedure; that is, a procedure that returns a generator when called.
The generator itself is a command that can be called multiple times: each time
it returns the next value in the generated series. When the
series has been exhausted, the generator command returns an empty list and then
destroys itself. Rather than manually call a generator, however, the package
also provides a flexible <b class="method">foreach</b> command that loops through the values of
one or more generators. This loop construct mimicks the functionality of the







|







185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
implement custom control structures, as many such structures can be recast as
generators, leading to both a simpler implementation and a more standardised
interface. The generator mechanism is built on top of the Tcl 8.6 coroutine
mechanism.</p>
<p>The package exports a single ensemble command, <b class="cmd">generator</b>. All
functionality is provided as subcommands of this command. The core subcommands
of the package are <b class="method">define</b>, <b class="method">yield</b>, and <b class="method">foreach</b>. The
<b class="method">define</b> command works like Tcl's <b class="cmd"><a href="../../../../index.html#key589">proc</a></b> command, but creates a
generator procedure; that is, a procedure that returns a generator when called.
The generator itself is a command that can be called multiple times: each time
it returns the next value in the generated series. When the
series has been exhausted, the generator command returns an empty list and then
destroys itself. Rather than manually call a generator, however, the package
also provides a flexible <b class="method">foreach</b> command that loops through the values of
one or more generators. This loop construct mimicks the functionality of the
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
    }
</pre>
</div>
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">generator</b> <b class="method">define</b> <i class="arg">name</i> <i class="arg">params</i> <i class="arg">body</i></a></dt>
<dd><p>Creates a new generator procedure. The arguments to the command are identical to
those for <b class="cmd"><a href="../../../../index.html#key586">proc</a></b>: a <i class="arg">name</i>, a list of parameters, and a body. The
parameter list format is identical to a procedure. In particular, default values
and the <span class="opt">?args?</span> syntax can be used as usual. Each time the resulting
generator procedure is called it creates a new generator command (coroutine)
that will yield a list of values on each call. Each result from a generator is
guaranteed to be a non-empty list of values. When a generator is exhausted it
returns an empty list and then destroys itself to free up resources. It is an
error to attempt to call an exhausted generator as the command no longer exists.</p></dd>







|







228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
    }
</pre>
</div>
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">generator</b> <b class="method">define</b> <i class="arg">name</i> <i class="arg">params</i> <i class="arg">body</i></a></dt>
<dd><p>Creates a new generator procedure. The arguments to the command are identical to
those for <b class="cmd"><a href="../../../../index.html#key589">proc</a></b>: a <i class="arg">name</i>, a list of parameters, and a body. The
parameter list format is identical to a procedure. In particular, default values
and the <span class="opt">?args?</span> syntax can be used as usual. Each time the resulting
generator procedure is called it creates a new generator command (coroutine)
that will yield a list of values on each call. Each result from a generator is
guaranteed to be a non-empty list of values. When a generator is exhausted it
returns an empty list and then destroys itself to free up resources. It is an
error to attempt to call an exhausted generator as the command no longer exists.</p></dd>

Changes to embedded/www/tcllib/files/modules/gpx/gpx.html.

259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
bugs and other problems.
Please report such in the category <em>gpx</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key403">gps</a>, <a href="../../../../index.html#key662">gpx</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>File formats</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2010, Keith Vetter &lt;[email protected]&gt;</p>
</div>







|







259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
bugs and other problems.
Please report such in the category <em>gpx</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key405">gps</a>, <a href="../../../../index.html#key666">gpx</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>File formats</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2010, Keith Vetter &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/grammar_aycock/aycock.html.

233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
</pre>
<p>The example, when run, prints <b class="const">40</b>.</p>
</div>
<div id="section6" class="section"><h2><a name="section6">KEYWORDS</a></h2>
<p>Aycock, Earley, Horspool, parser, compiler</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key814">ambiguous</a>, <a href="../../../../index.html#key817">aycock</a>, <a href="../../../../index.html#key816">earley</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key815">horspool</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 by Kevin B. Kenny &lt;[email protected]&gt;<br>
Redistribution permitted under the terms of the Open Publication License &lt;http://www.opencontent.org/openpub/&gt;</p>







|







233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
</pre>
<p>The example, when run, prints <b class="const">40</b>.</p>
</div>
<div id="section6" class="section"><h2><a name="section6">KEYWORDS</a></h2>
<p>Aycock, Earley, Horspool, parser, compiler</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key818">ambiguous</a>, <a href="../../../../index.html#key821">aycock</a>, <a href="../../../../index.html#key820">earley</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key819">horspool</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 by Kevin B. Kenny &lt;[email protected]&gt;<br>
Redistribution permitted under the terms of the Open Publication License &lt;http://www.opencontent.org/openpub/&gt;</p>

Changes to embedded/www/tcllib/files/modules/grammar_fa/dacceptor.html.

196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
bugs and other problems.
Please report such in the category <em>grammar_fa</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key322">acceptance</a>, <a href="../../../../index.html#key319">acceptor</a>, <a href="../../../../index.html#key316">automaton</a>, <a href="../../../../index.html#key321">finite automaton</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key320">regular expression</a>, <a href="../../../../index.html#key318">regular grammar</a>, <a href="../../../../index.html#key317">regular languages</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
bugs and other problems.
Please report such in the category <em>grammar_fa</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key324">acceptance</a>, <a href="../../../../index.html#key321">acceptor</a>, <a href="../../../../index.html#key318">automaton</a>, <a href="../../../../index.html#key323">finite automaton</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key322">regular expression</a>, <a href="../../../../index.html#key320">regular grammar</a>, <a href="../../../../index.html#key319">regular languages</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/grammar_fa/dexec.html.

252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
bugs and other problems.
Please report such in the category <em>grammar_fa</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key316">automaton</a>, <a href="../../../../index.html#key425">execution</a>, <a href="../../../../index.html#key321">finite automaton</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key320">regular expression</a>, <a href="../../../../index.html#key318">regular grammar</a>, <a href="../../../../index.html#key317">regular languages</a>, <a href="../../../../index.html#key426">running</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Andreas Kupries &lt;[email protected]&gt;<br>
Copyright &copy; 2007 Bogdan &lt;[email protected]&gt;</p>







|







252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
bugs and other problems.
Please report such in the category <em>grammar_fa</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key318">automaton</a>, <a href="../../../../index.html#key427">execution</a>, <a href="../../../../index.html#key323">finite automaton</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key322">regular expression</a>, <a href="../../../../index.html#key320">regular grammar</a>, <a href="../../../../index.html#key319">regular languages</a>, <a href="../../../../index.html#key428">running</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Andreas Kupries &lt;[email protected]&gt;<br>
Copyright &copy; 2007 Bogdan &lt;[email protected]&gt;</p>

Changes to embedded/www/tcllib/files/modules/grammar_fa/fa.html.

578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
<p>FA's are used to process streams of symbols over Sy.</p>
<p>A specific FA is said to <i class="term">accept</i> a finite stream sy_1 sy_2
... sy_n if there is a path in the graph of the FA beginning at a
state in St and ending at a state in Fi whose edges have the labels
sy_1, sy_2, etc. to sy_n.
The set of all strings accepted by the FA is the <i class="term">language</i> of
the FA. One important equivalence is that the set of languages which
can be accepted by an FA is the set of <i class="term"><a href="../../../../index.html#key317">regular languages</a></i>.</p>
<p>Another important concept is that of deterministic FAs. A FA is said
to be <i class="term">deterministic</i> if for each string of input symbols there
is exactly one path in the graph of the FA beginning at the start
state and whose edges are labeled with the symbols in the string.
While it might seem that non-deterministic FAs to have more power of
recognition, this is not so. For each non-deterministic FA we can
construct a deterministic FA which accepts the same language (--&gt;
Thompson's subset construction).</p>
<p>While one of the premier applications of FAs is in <i class="term"><a href="../../../../index.html#key26">parsing</a></i>,
especially in the <i class="term"><a href="../../../../index.html#key253">lexer</a></i> stage (where symbols == characters),
this is not the only possibility by far.</p>
<p>Quite a lot of processes can be modeled as a FA, albeit with a
possibly large set of states. For these the notion of accepting states
is often less or not relevant at all. What is needed instead is the
ability to act to state changes in the FA, i.e. to generate some
output in response to the input.
This transforms a FA into a <i class="term">finite transducer</i>, which has an







|









|







578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
<p>FA's are used to process streams of symbols over Sy.</p>
<p>A specific FA is said to <i class="term">accept</i> a finite stream sy_1 sy_2
... sy_n if there is a path in the graph of the FA beginning at a
state in St and ending at a state in Fi whose edges have the labels
sy_1, sy_2, etc. to sy_n.
The set of all strings accepted by the FA is the <i class="term">language</i> of
the FA. One important equivalence is that the set of languages which
can be accepted by an FA is the set of <i class="term"><a href="../../../../index.html#key319">regular languages</a></i>.</p>
<p>Another important concept is that of deterministic FAs. A FA is said
to be <i class="term">deterministic</i> if for each string of input symbols there
is exactly one path in the graph of the FA beginning at the start
state and whose edges are labeled with the symbols in the string.
While it might seem that non-deterministic FAs to have more power of
recognition, this is not so. For each non-deterministic FA we can
construct a deterministic FA which accepts the same language (--&gt;
Thompson's subset construction).</p>
<p>While one of the premier applications of FAs is in <i class="term"><a href="../../../../index.html#key26">parsing</a></i>,
especially in the <i class="term"><a href="../../../../index.html#key255">lexer</a></i> stage (where symbols == characters),
this is not the only possibility by far.</p>
<p>Quite a lot of processes can be modeled as a FA, albeit with a
possibly large set of states. For these the notion of accepting states
is often less or not relevant at all. What is needed instead is the
ability to act to state changes in the FA, i.e. to generate some
output in response to the input.
This transforms a FA into a <i class="term">finite transducer</i>, which has an
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
bugs and other problems.
Please report such in the category <em>grammar_fa</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key316">automaton</a>, <a href="../../../../index.html#key321">finite automaton</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key320">regular expression</a>, <a href="../../../../index.html#key318">regular grammar</a>, <a href="../../../../index.html#key317">regular languages</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
bugs and other problems.
Please report such in the category <em>grammar_fa</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key318">automaton</a>, <a href="../../../../index.html#key323">finite automaton</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key322">regular expression</a>, <a href="../../../../index.html#key320">regular grammar</a>, <a href="../../../../index.html#key319">regular languages</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/grammar_fa/faop.html.

452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
bugs and other problems.
Please report such in the category <em>grammar_fa</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key316">automaton</a>, <a href="../../../../index.html#key321">finite automaton</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key320">regular expression</a>, <a href="../../../../index.html#key318">regular grammar</a>, <a href="../../../../index.html#key317">regular languages</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004-2008 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
bugs and other problems.
Please report such in the category <em>grammar_fa</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key318">automaton</a>, <a href="../../../../index.html#key323">finite automaton</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key322">regular expression</a>, <a href="../../../../index.html#key320">regular grammar</a>, <a href="../../../../index.html#key319">regular languages</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004-2008 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/grammar_me/gasm.html.

433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
bugs and other problems.
Please report such in the category <em>grammar_me</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key314">assembler</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key301">graph</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key296">tree</a>, <a href="../../../../index.html#key24">virtual machine</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
bugs and other problems.
Please report such in the category <em>grammar_me</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key316">assembler</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key303">graph</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key298">tree</a>, <a href="../../../../index.html#key24">virtual machine</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/grammar_me/me_ast.html.

123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#category">Category</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This document specifies various representations for the
<i class="term"><a href="../../../../index.html#key738">abstract syntax tree</a></i>s (short <i class="term"><a href="../../../../index.html#key806">AST</a></i>) generated by
instances of ME virtual machines, independent of variant.
Please go and read the document <b class="syscmd"><a href="me_intro.html">grammar::me_intro</a></b> first if
you do not know what a ME virtual machine is.</p>
<p>ASTs and all the representations we specify distinguish between two
types of nodes, namely:</p>
<dl class="definitions">
<dt>Terminal</dt>







|







123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#category">Category</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This document specifies various representations for the
<i class="term"><a href="../../../../index.html#key742">abstract syntax tree</a></i>s (short <i class="term"><a href="../../../../index.html#key810">AST</a></i>) generated by
instances of ME virtual machines, independent of variant.
Please go and read the document <b class="syscmd"><a href="me_intro.html">grammar::me_intro</a></b> first if
you do not know what a ME virtual machine is.</p>
<p>ASTs and all the representations we specify distinguish between two
types of nodes, namely:</p>
<dl class="definitions">
<dt>Terminal</dt>
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
bugs and other problems.
Please report such in the category <em>grammar_me</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key806">AST</a>, <a href="../../../../index.html#key738">abstract syntax tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
bugs and other problems.
Please report such in the category <em>grammar_me</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key810">AST</a>, <a href="../../../../index.html#key742">abstract syntax tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/grammar_me/me_cpucore.html.

312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
</ul>
<p>If no limit <i class="arg">n</i> was set only the last two conditions are checked
for.</p></dd>
</dl>
<div id="subsection1" class="subsection"><h3><a name="subsection1">MATCH PROGRAM REPRESENTATION</a></h3>
<p>A match program is represented by nested Tcl list. The first element,
<i class="term">asm</i>, is a list of integer numbers, the instructions to execute,
and their arguments. The second element, <i class="term"><a href="../../../../index.html#key300">pool</a></i>, is a list of
strings, referenced by the instructions, for error messages, token
names, etc. The third element, <i class="term">tokmap</i>, provides ordering
information for the tokens, mapping their names to their numerical
rank. This element can be empty, forcing lexicographic comparison when
matching ranges.</p>
<p>All ME instructions are encoded as integer numbers, with the mapping
given below. A number of the instructions, those which handle error
messages, have been given an additional argument to supply that
message explicitly instead of having it constructed from token names,
etc. This allows the machine state to store only the message ids
instead of the full strings.</p>
<p>Jump destination arguments are absolute indices into the <i class="term">asm</i>
element, refering to the instruction to jump to. Any string arguments
are absolute indices into the <i class="term"><a href="../../../../index.html#key300">pool</a></i> element. Tokens, characters,
messages, and token (actually character) classes to match are coded as
references into the <i class="term"><a href="../../../../index.html#key300">pool</a></i> as well.</p>
<ol class="enumerated">
<li><p>&quot;<b class="cmd">ict_advance</b> <i class="arg">message</i>&quot;</p></li>
<li><p>&quot;<b class="cmd">ict_match_token</b> <i class="arg">tok</i> <i class="arg">message</i>&quot;</p></li>
<li><p>&quot;<b class="cmd">ict_match_tokrange</b> <i class="arg">tokbegin</i> <i class="arg">tokend</i> <i class="arg">message</i>&quot;</p></li>
<li><p>&quot;<b class="cmd">ict_match_tokclass</b> <i class="arg">code</i> <i class="arg">message</i>&quot;</p></li>
<li><p>&quot;<b class="cmd">inc_restore</b> <i class="arg">branchlabel</i> <i class="arg">nt</i>&quot;</p></li>
<li><p>&quot;<b class="cmd">inc_save</b> <i class="arg">nt</i>&quot;</p></li>







|













|

|







312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
</ul>
<p>If no limit <i class="arg">n</i> was set only the last two conditions are checked
for.</p></dd>
</dl>
<div id="subsection1" class="subsection"><h3><a name="subsection1">MATCH PROGRAM REPRESENTATION</a></h3>
<p>A match program is represented by nested Tcl list. The first element,
<i class="term">asm</i>, is a list of integer numbers, the instructions to execute,
and their arguments. The second element, <i class="term"><a href="../../../../index.html#key302">pool</a></i>, is a list of
strings, referenced by the instructions, for error messages, token
names, etc. The third element, <i class="term">tokmap</i>, provides ordering
information for the tokens, mapping their names to their numerical
rank. This element can be empty, forcing lexicographic comparison when
matching ranges.</p>
<p>All ME instructions are encoded as integer numbers, with the mapping
given below. A number of the instructions, those which handle error
messages, have been given an additional argument to supply that
message explicitly instead of having it constructed from token names,
etc. This allows the machine state to store only the message ids
instead of the full strings.</p>
<p>Jump destination arguments are absolute indices into the <i class="term">asm</i>
element, refering to the instruction to jump to. Any string arguments
are absolute indices into the <i class="term"><a href="../../../../index.html#key302">pool</a></i> element. Tokens, characters,
messages, and token (actually character) classes to match are coded as
references into the <i class="term"><a href="../../../../index.html#key302">pool</a></i> as well.</p>
<ol class="enumerated">
<li><p>&quot;<b class="cmd">ict_advance</b> <i class="arg">message</i>&quot;</p></li>
<li><p>&quot;<b class="cmd">ict_match_token</b> <i class="arg">tok</i> <i class="arg">message</i>&quot;</p></li>
<li><p>&quot;<b class="cmd">ict_match_tokrange</b> <i class="arg">tokbegin</i> <i class="arg">tokend</i> <i class="arg">message</i>&quot;</p></li>
<li><p>&quot;<b class="cmd">ict_match_tokclass</b> <i class="arg">code</i> <i class="arg">message</i>&quot;</p></li>
<li><p>&quot;<b class="cmd">inc_restore</b> <i class="arg">branchlabel</i> <i class="arg">nt</i>&quot;</p></li>
<li><p>&quot;<b class="cmd">inc_save</b> <i class="arg">nt</i>&quot;</p></li>
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
<ol class="enumerated">
<li><p><i class="term">code</i>: Match instructions, see <span class="sectref"><a href="#subsection1">MATCH PROGRAM REPRESENTATION</a></span>.</p></li>
<li><p><i class="term">pc</i>:   Program counter, <i class="term">int</i>.</p></li>
<li><p><i class="term">halt</i>: Halt flag, <i class="term">boolean</i>.</p></li>
<li><p><i class="term">eof</i>:  Eof flag, <i class="term">boolean</i></p></li>
<li><p><i class="term">tc</i>:   Terminal cache, and input queue. Structure see below.</p></li>
<li><p><i class="term">cl</i>:   Current location, <i class="term">int</i>.</p></li>
<li><p><i class="term">ct</i>:   Current token, <i class="term"><a href="../../../../index.html#key276">string</a></i>.</p></li>
<li><p><i class="term">ok</i>:   Match status, <i class="term">boolean</i>.</p></li>
<li><p><i class="term">sv</i>:   Semantic value, <i class="term"><a href="../../../../index.html#key298">list</a></i>.</p></li>
<li><p><i class="term">er</i>:   Error status, <i class="term"><a href="../../../../index.html#key298">list</a></i>.</p></li>
<li><p><i class="term">ls</i>:   Location stack, <i class="term"><a href="../../../../index.html#key298">list</a></i>.</p></li>
<li><p><i class="term">as</i>:   AST stack, <i class="term"><a href="../../../../index.html#key298">list</a></i>.</p></li>
<li><p><i class="term">ms</i>:   AST marker stack, <i class="term"><a href="../../../../index.html#key298">list</a></i>.</p></li>
<li><p><i class="term">es</i>:   Error stack, <i class="term"><a href="../../../../index.html#key298">list</a></i>.</p></li>
<li><p><i class="term">rs</i>:   Return stack, <i class="term"><a href="../../../../index.html#key298">list</a></i>.</p></li>
<li><p><i class="term">nc</i>:   Nonterminal cache, <i class="term">dictionary</i>.</p></li>
</ol>
<p><i class="term">tc</i>, the input queue of tokens waiting for processing and the
terminal cache containing the tokens already processing are one
unified data structure simply holding all tokens and their
information, with the current location separating that which has been
processed from that which is waiting.
Each element of the queue/cache is a list containing the token, its
lexeme information, line number, and column index, in this order.</p>
<p>All stacks have their top element aat the end, i.e. pushing an item is
equivalent to appending to the list representing the stack, and
popping it removes the last element.</p>
<p><i class="term">er</i>, the error status is either empty or a list of two elements,
a location in the input, and a list of messages, encoded as references
into the <i class="term"><a href="../../../../index.html#key300">pool</a></i> element of the <i class="term">code</i>.</p>
<p><i class="term">nc</i>, the nonterminal cache is keyed by nonterminal name and
location, each value a four-element list containing current location,
match status, semantic value, and error status, in this order.</p>
</div>
<div id="section4" class="section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.







|

|
|
|
|
|
|
|














|







373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
<ol class="enumerated">
<li><p><i class="term">code</i>: Match instructions, see <span class="sectref"><a href="#subsection1">MATCH PROGRAM REPRESENTATION</a></span>.</p></li>
<li><p><i class="term">pc</i>:   Program counter, <i class="term">int</i>.</p></li>
<li><p><i class="term">halt</i>: Halt flag, <i class="term">boolean</i>.</p></li>
<li><p><i class="term">eof</i>:  Eof flag, <i class="term">boolean</i></p></li>
<li><p><i class="term">tc</i>:   Terminal cache, and input queue. Structure see below.</p></li>
<li><p><i class="term">cl</i>:   Current location, <i class="term">int</i>.</p></li>
<li><p><i class="term">ct</i>:   Current token, <i class="term"><a href="../../../../index.html#key278">string</a></i>.</p></li>
<li><p><i class="term">ok</i>:   Match status, <i class="term">boolean</i>.</p></li>
<li><p><i class="term">sv</i>:   Semantic value, <i class="term"><a href="../../../../index.html#key300">list</a></i>.</p></li>
<li><p><i class="term">er</i>:   Error status, <i class="term"><a href="../../../../index.html#key300">list</a></i>.</p></li>
<li><p><i class="term">ls</i>:   Location stack, <i class="term"><a href="../../../../index.html#key300">list</a></i>.</p></li>
<li><p><i class="term">as</i>:   AST stack, <i class="term"><a href="../../../../index.html#key300">list</a></i>.</p></li>
<li><p><i class="term">ms</i>:   AST marker stack, <i class="term"><a href="../../../../index.html#key300">list</a></i>.</p></li>
<li><p><i class="term">es</i>:   Error stack, <i class="term"><a href="../../../../index.html#key300">list</a></i>.</p></li>
<li><p><i class="term">rs</i>:   Return stack, <i class="term"><a href="../../../../index.html#key300">list</a></i>.</p></li>
<li><p><i class="term">nc</i>:   Nonterminal cache, <i class="term">dictionary</i>.</p></li>
</ol>
<p><i class="term">tc</i>, the input queue of tokens waiting for processing and the
terminal cache containing the tokens already processing are one
unified data structure simply holding all tokens and their
information, with the current location separating that which has been
processed from that which is waiting.
Each element of the queue/cache is a list containing the token, its
lexeme information, line number, and column index, in this order.</p>
<p>All stacks have their top element aat the end, i.e. pushing an item is
equivalent to appending to the list representing the stack, and
popping it removes the last element.</p>
<p><i class="term">er</i>, the error status is either empty or a list of two elements,
a location in the input, and a list of messages, encoded as references
into the <i class="term"><a href="../../../../index.html#key302">pool</a></i> element of the <i class="term">code</i>.</p>
<p><i class="term">nc</i>, the nonterminal cache is keyed by nonterminal name and
location, each value a four-element list containing current location,
match status, semantic value, and error status, in this order.</p>
</div>
<div id="section4" class="section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.

Changes to embedded/www/tcllib/files/modules/grammar_me/me_intro.html.

130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<p>The packages themselves all provide variants of one
<i class="term"><a href="../../../../index.html#key24">virtual machine</a></i>, called a <i class="term">match engine</i> (short
<i class="term">ME</i>), which has all the facilities needed for the matching and
parsing of a stream, and which are either controlled directly, or are
customized with a match program. The virtual machine is basically a
pushdown automaton, with additional elements for backtracking and/or
handling of semantic data and construction of abstract syntax trees
(<i class="term"><a href="../../../../index.html#key806">AST</a></i>).</p>
<p>Because of the high degree of similarity in the actual implementations
of the aforementioned virtual machine and the data structures they
receive and generate these common parts are specified in a separate
document which will be referenced by the documentation for packages
actually implementing it.</p>
<p>The relevant documents are:</p>
<dl class="definitions">







|







130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<p>The packages themselves all provide variants of one
<i class="term"><a href="../../../../index.html#key24">virtual machine</a></i>, called a <i class="term">match engine</i> (short
<i class="term">ME</i>), which has all the facilities needed for the matching and
parsing of a stream, and which are either controlled directly, or are
customized with a match program. The virtual machine is basically a
pushdown automaton, with additional elements for backtracking and/or
handling of semantic data and construction of abstract syntax trees
(<i class="term"><a href="../../../../index.html#key810">AST</a></i>).</p>
<p>Because of the high degree of similarity in the actual implementations
of the aforementioned virtual machine and the data structures they
receive and generate these common parts are specified in a separate
document which will be referenced by the documentation for packages
actually implementing it.</p>
<p>The relevant documents are:</p>
<dl class="definitions">

Changes to embedded/www/tcllib/files/modules/grammar_me/me_util.html.

187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
bugs and other problems.
Please report such in the category <em>grammar_me</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key738">abstract syntax tree</a>, <a href="../../../../index.html#key737">syntax tree</a>, <a href="../../../../index.html#key296">tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
bugs and other problems.
Please report such in the category <em>grammar_me</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key742">abstract syntax tree</a>, <a href="../../../../index.html#key741">syntax tree</a>, <a href="../../../../index.html#key298">tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Grammars and finite automata</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/grammar_me/me_vm.html.

136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Please go and read the document <b class="syscmd"><a href="me_intro.html">grammar::me_intro</a></b> first for
an overview of the various documents and their relations.</p>
<p>This document specifies a virtual machine for the controlled matching
and parsing of token streams, creating an
<i class="term"><a href="../../../../index.html#key738">abstract syntax tree</a></i> (short <i class="term"><a href="../../../../index.html#key806">AST</a></i>) reflecting the
structure of the input. Special machine features are the caching and
reuse of partial results, caching of the encountered input, and the
ability to backtrack in both input and AST creation.</p>
<p>These features make the specified virtual machine especially useful to
packrat parsers based on parsing expression grammars. It is however
not restricted to this type of parser. Normal LL and LR parsers can be
implemented with it as well.</p>







|







136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Please go and read the document <b class="syscmd"><a href="me_intro.html">grammar::me_intro</a></b> first for
an overview of the various documents and their relations.</p>
<p>This document specifies a virtual machine for the controlled matching
and parsing of token streams, creating an
<i class="term"><a href="../../../../index.html#key742">abstract syntax tree</a></i> (short <i class="term"><a href="../../../../index.html#key810">AST</a></i>) reflecting the
structure of the input. Special machine features are the caching and
reuse of partial results, caching of the encountered input, and the
ability to backtrack in both input and AST creation.</p>
<p>These features make the specified virtual machine especially useful to
packrat parsers based on parsing expression grammars. It is however
not restricted to this type of parser. Normal LL and LR parsers can be
implemented with it as well.</p>

Changes to embedded/www/tcllib/files/modules/grammar_peg/peg.html.

520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
</div>
<div id="section2" class="section"><h2><a name="section2">PARSING EXPRESSION GRAMMARS</a></h2>
<p>For the mathematically inclined, a PEG is a 4-tuple (VN,VT,R,eS) where</p>
<ul class="itemized">
<li><p>VN is a set of <i class="term">nonterminal symbols</i>,</p></li>
<li><p>VT is a set of <i class="term">terminal symbols</i>,</p></li>
<li><p>R is a finite set of rules, where each rule is a pair (A,e), A in VN,
and <i class="term"><a href="../../../../index.html#key798">e</a></i> a <i class="term"><a href="../../../../index.html#key8">parsing expression</a></i>.</p></li>
<li><p>eS is a parsing expression, the <i class="term">start expression</i>.</p></li>
</ul>
<p>Further constraints are</p>
<ul class="itemized">
<li><p>The intersection of VN and VT is empty.</p></li>
<li><p>For all A in VT exists exactly one pair (A,e) in R. In other words, R
is a function from nonterminal symbols to parsing expressions.</p></li>
</ul>
<p>Parsing expression are inductively defined via</p>
<ul class="itemized">
<li><p>The empty string (epsilon) is a parsing expression.</p></li>
<li><p>A terminal symbol <i class="term">a</i> is a parsing expression.</p></li>
<li><p>A nonterminal symbol <i class="term">A</i> is a parsing expression.</p></li>
<li><p><i class="term">e1</i><i class="term">e2</i> is a parsing expression for parsing expressions
<i class="term">e1</i> and <i class="term">2</i>. This is called <i class="term">sequence</i>.</p></li>
<li><p><i class="term">e1</i>/<i class="term">e2</i> is a parsing expression for parsing expressions
<i class="term">e1</i> and <i class="term">2</i>. This is called <i class="term">ordered choice</i>.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key798">e</a></i>* is a parsing expression for parsing expression
<i class="term"><a href="../../../../index.html#key798">e</a></i>. This is called <i class="term">zero-or-more repetitions</i>, also known
as <i class="term">kleene closure</i>.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key798">e</a></i>+ is a parsing expression for parsing expression
<i class="term"><a href="../../../../index.html#key798">e</a></i>. This is called <i class="term">one-or-more repetitions</i>, also known
as <i class="term">positive kleene closure</i>.</p></li>
<li><p>!<i class="term"><a href="../../../../index.html#key798">e</a></i> is a parsing expression for parsing expression
<i class="term">e1</i>. This is called a <i class="term">not lookahead predicate</i>.</p></li>
<li><p>&amp;<i class="term"><a href="../../../../index.html#key798">e</a></i> is a parsing expression for parsing expression
<i class="term">e1</i>. This is called an <i class="term">and lookahead predicate</i>.</p></li>
</ul>
<p>PEGs are used to define a grammatical structure for streams of symbols
over VT. They are a modern phrasing of older formalisms invented by
Alexander Birham. These formalisms were called TS (TMG recognition
scheme), and gTS (generalized TS). Later they were renamed to TPDL
(Top-Down Parsing Languages) and gTPDL (generalized TPDL).</p>







|

















|
|

|
|

|

|







520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
</div>
<div id="section2" class="section"><h2><a name="section2">PARSING EXPRESSION GRAMMARS</a></h2>
<p>For the mathematically inclined, a PEG is a 4-tuple (VN,VT,R,eS) where</p>
<ul class="itemized">
<li><p>VN is a set of <i class="term">nonterminal symbols</i>,</p></li>
<li><p>VT is a set of <i class="term">terminal symbols</i>,</p></li>
<li><p>R is a finite set of rules, where each rule is a pair (A,e), A in VN,
and <i class="term"><a href="../../../../index.html#key802">e</a></i> a <i class="term"><a href="../../../../index.html#key8">parsing expression</a></i>.</p></li>
<li><p>eS is a parsing expression, the <i class="term">start expression</i>.</p></li>
</ul>
<p>Further constraints are</p>
<ul class="itemized">
<li><p>The intersection of VN and VT is empty.</p></li>
<li><p>For all A in VT exists exactly one pair (A,e) in R. In other words, R
is a function from nonterminal symbols to parsing expressions.</p></li>
</ul>
<p>Parsing expression are inductively defined via</p>
<ul class="itemized">
<li><p>The empty string (epsilon) is a parsing expression.</p></li>
<li><p>A terminal symbol <i class="term">a</i> is a parsing expression.</p></li>
<li><p>A nonterminal symbol <i class="term">A</i> is a parsing expression.</p></li>
<li><p><i class="term">e1</i><i class="term">e2</i> is a parsing expression for parsing expressions
<i class="term">e1</i> and <i class="term">2</i>. This is called <i class="term">sequence</i>.</p></li>
<li><p><i class="term">e1</i>/<i class="term">e2</i> is a parsing expression for parsing expressions
<i class="term">e1</i> and <i class="term">2</i>. This is called <i class="term">ordered choice</i>.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key802">e</a></i>* is a parsing expression for parsing expression
<i class="term"><a href="../../../../index.html#key802">e</a></i>. This is called <i class="term">zero-or-more repetitions</i>, also known
as <i class="term">kleene closure</i>.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key802">e</a></i>+ is a parsing expression for parsing expression
<i class="term"><a href="../../../../index.html#key802">e</a></i>. This is called <i class="term">one-or-more repetitions</i>, also known
as <i class="term">positive kleene closure</i>.</p></li>
<li><p>!<i class="term"><a href="../../../../index.html#key802">e</a></i> is a parsing expression for parsing expression
<i class="term">e1</i>. This is called a <i class="term">not lookahead predicate</i>.</p></li>
<li><p>&amp;<i class="term"><a href="../../../../index.html#key802">e</a></i> is a parsing expression for parsing expression
<i class="term">e1</i>. This is called an <i class="term">and lookahead predicate</i>.</p></li>
</ul>
<p>PEGs are used to define a grammatical structure for streams of symbols
over VT. They are a modern phrasing of older formalisms invented by
Alexander Birham. These formalisms were called TS (TMG recognition
scheme), and gTS (generalized TS). Later they were renamed to TPDL
(Top-Down Parsing Languages) and gTPDL (generalized TPDL).</p>

Changes to embedded/www/tcllib/files/modules/hook/hook.html.

177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
coupling of this kind. This package defines a new command, <b class="cmd">hook</b>,
which implements just such a mechanism.</p>
</div>
<div id="subsection2" class="subsection"><h3><a name="subsection2">Bindings</a></h3>
<p>The <b class="cmd">hook</b> command manages a collection of hook bindings. A hook
binding has four elements:</p>
<ol class="enumerated">
<li><p>A <i class="term"><a href="../../../../index.html#key671">subject</a></i>: the name of the entity that will be calling the
hook.</p></li>
<li><p>The <i class="term"><a href="../../../../index.html#key673">hook</a></i> itself. A hook usually reflects some occurrence in the
life of the <i class="term"><a href="../../../../index.html#key671">subject</a></i> that other entities might care to know
about. A <i class="term"><a href="../../../../index.html#key673">hook</a></i> has a name, and may also have arguments. Hook
names are arbitrary strings. Each <i class="term"><a href="../../../../index.html#key671">subject</a></i> must document the
names and arguments of the hooks it can call.</p></li>
<li><p>The name of the <i class="term"><a href="../../../../index.html#key643">observer</a></i> that wishes to receive the <i class="term"><a href="../../../../index.html#key673">hook</a></i>
from the <i class="term"><a href="../../../../index.html#key671">subject</a></i>.</p></li>
<li><p>A command prefix to which the <i class="term"><a href="../../../../index.html#key673">hook</a></i> arguments will be appended
when the binding is executed.</p></li>
</ol>
</div>
<div id="subsection3" class="subsection"><h3><a name="subsection3">Subjects and observers</a></h3>
<p>For convenience, this document collectively refers to subjects and
observers as <i class="term">objects</i>, while placing no requirements on how
these <i class="term">objects</i> are actually implemented. An object can be a
<b class="package"><a href="../../../../index.html#key761">TclOO</a></b> or <b class="package"><a href="../../../../index.html#key789">Snit</a></b> or <b class="package">XOTcl</b> object, a Tcl
command, a namespace, a module, a pseudo-object managed by some other
object (as tags are managed by the Tk text widget) or simply a
well-known name.</p>
<p>Subject and observer names are arbitrary strings; however, as
<b class="cmd">hook</b> might be used at the package level, it's necessary to have
conventions that avoid name collisions between packages written by
different people.</p>







|

|
|
|
|

|
|
|







|







177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
coupling of this kind. This package defines a new command, <b class="cmd">hook</b>,
which implements just such a mechanism.</p>
</div>
<div id="subsection2" class="subsection"><h3><a name="subsection2">Bindings</a></h3>
<p>The <b class="cmd">hook</b> command manages a collection of hook bindings. A hook
binding has four elements:</p>
<ol class="enumerated">
<li><p>A <i class="term"><a href="../../../../index.html#key675">subject</a></i>: the name of the entity that will be calling the
hook.</p></li>
<li><p>The <i class="term"><a href="../../../../index.html#key677">hook</a></i> itself. A hook usually reflects some occurrence in the
life of the <i class="term"><a href="../../../../index.html#key675">subject</a></i> that other entities might care to know
about. A <i class="term"><a href="../../../../index.html#key677">hook</a></i> has a name, and may also have arguments. Hook
names are arbitrary strings. Each <i class="term"><a href="../../../../index.html#key675">subject</a></i> must document the
names and arguments of the hooks it can call.</p></li>
<li><p>The name of the <i class="term"><a href="../../../../index.html#key647">observer</a></i> that wishes to receive the <i class="term"><a href="../../../../index.html#key677">hook</a></i>
from the <i class="term"><a href="../../../../index.html#key675">subject</a></i>.</p></li>
<li><p>A command prefix to which the <i class="term"><a href="../../../../index.html#key677">hook</a></i> arguments will be appended
when the binding is executed.</p></li>
</ol>
</div>
<div id="subsection3" class="subsection"><h3><a name="subsection3">Subjects and observers</a></h3>
<p>For convenience, this document collectively refers to subjects and
observers as <i class="term">objects</i>, while placing no requirements on how
these <i class="term">objects</i> are actually implemented. An object can be a
<b class="package"><a href="../../../../index.html#key765">TclOO</a></b> or <b class="package"><a href="../../../../index.html#key793">Snit</a></b> or <b class="package">XOTcl</b> object, a Tcl
command, a namespace, a module, a pseudo-object managed by some other
object (as tags are managed by the Tk text widget) or simply a
well-known name.</p>
<p>Subject and observer names are arbitrary strings; however, as
<b class="cmd">hook</b> might be used at the package level, it's necessary to have
conventions that avoid name collisions between packages written by
different people.</p>
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
</ol>
<p>If the <b class="option">-errorcommand</b> configuration option has a non-empty
value, its value will be invoked for all errors and other exceptional
returns in observer bindings. See <b class="cmd">hook configure</b>, below, for
more information on configuration options.</p></dd>
<dt><a name="3"><b class="cmd">hook</b> <b class="method">forget</b> <i class="arg">object</i></a></dt>
<dd><p>This command deletes any existing bindings in which the named
<i class="arg">object</i> appears as either the <i class="term"><a href="../../../../index.html#key671">subject</a></i> or the
<i class="term"><a href="../../../../index.html#key643">observer</a></i>.
Bindings deleted by this method will never be called again. In
particular,</p>
<ol class="enumerated">
<li><p>If an observer is forgotten during a call to <b class="cmd">hook call</b>, any
uncalled binding it might have had to the relevant subject and hook
will <em>not</em> be called subsequently.</p></li>
<li><p>If a subject <b class="variable">$s</b> is forgotten during a call to</p>







|
|







320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
</ol>
<p>If the <b class="option">-errorcommand</b> configuration option has a non-empty
value, its value will be invoked for all errors and other exceptional
returns in observer bindings. See <b class="cmd">hook configure</b>, below, for
more information on configuration options.</p></dd>
<dt><a name="3"><b class="cmd">hook</b> <b class="method">forget</b> <i class="arg">object</i></a></dt>
<dd><p>This command deletes any existing bindings in which the named
<i class="arg">object</i> appears as either the <i class="term"><a href="../../../../index.html#key675">subject</a></i> or the
<i class="term"><a href="../../../../index.html#key647">observer</a></i>.
Bindings deleted by this method will never be called again. In
particular,</p>
<ol class="enumerated">
<li><p>If an observer is forgotten during a call to <b class="cmd">hook call</b>, any
uncalled binding it might have had to the relevant subject and hook
will <em>not</em> be called subsequently.</p></li>
<li><p>If a subject <b class="variable">$s</b> is forgotten during a call to</p>
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
<p>Given this information, the <b class="option">-errorcommand</b> can choose to log
the error, call <b class="cmd">interp bgerror</b>, delete the errant binding
(thus preventing the error from arising a second time) and so forth.</p></dd>
<dt><b class="option">-tracecommand</b> <i class="arg">cmdPrefix</i></dt>
<dd><p>The option's value should be a command prefix taking four
arguments:</p>
<ol class="enumerated">
<li><p>a <i class="term"><a href="../../../../index.html#key671">subject</a></i>,</p></li>
<li><p>a <i class="term"><a href="../../../../index.html#key673">hook</a></i>,</p></li>
<li><p>a list of the hook's argument values, and</p></li>
<li><p>a list of <i class="term">objects</i> the hook was called for.</p></li>
</ol>
<p>The command will be called for each hook that is called. This allows
the application to trace hook execution for debugging purposes.</p></dd>
</dl></dd>
</dl>







|
|







357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
<p>Given this information, the <b class="option">-errorcommand</b> can choose to log
the error, call <b class="cmd">interp bgerror</b>, delete the errant binding
(thus preventing the error from arising a second time) and so forth.</p></dd>
<dt><b class="option">-tracecommand</b> <i class="arg">cmdPrefix</i></dt>
<dd><p>The option's value should be a command prefix taking four
arguments:</p>
<ol class="enumerated">
<li><p>a <i class="term"><a href="../../../../index.html#key675">subject</a></i>,</p></li>
<li><p>a <i class="term"><a href="../../../../index.html#key677">hook</a></i>,</p></li>
<li><p>a list of the hook's argument values, and</p></li>
<li><p>a list of <i class="term">objects</i> the hook was called for.</p></li>
</ol>
<p>The command will be called for each hook that is called. This allows
the application to trace hook execution for debugging purposes.</p></dd>
</dl></dd>
</dl>
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
&lt;Update&gt; hook.</p>
<pre class="example">
     hook bind ::model &lt;Update&gt; .view [list .view ModelUpdate]
</pre>
<p>When the <b class="cmd">::model</b> calls the hook, the <b class="widget">.view</b>s
ModelUpdate subcommand will be called.</p>
<p>Later the <b class="widget">.view</b> megawidget is destroyed. In its destructor,
it tells the <i class="term"><a href="../../../../index.html#key673">hook</a></i> that it no longer exists:</p>
<pre class="example">
     hook forget .view
</pre>
<p>All bindings involving <b class="widget">.view</b> are deleted.</p>
</div>
<div id="section5" class="section"><h2><a name="section5">Credits</a></h2>
<p>Hook has been designed and implemented by William H. Duquette.</p>
</div>
<div id="section6" class="section"><h2><a name="section6">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>hook</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../uev/uevent.html">uevent(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key534">callback</a>, <a href="../../../../index.html#key536">event</a>, <a href="../../../../index.html#key673">hook</a>, <a href="../../../../index.html#key643">observer</a>, <a href="../../../../index.html#key672">producer</a>, <a href="../../../../index.html#key674">publisher</a>, <a href="../../../../index.html#key671">subject</a>, <a href="../../../../index.html#key670">subscriber</a>, <a href="../../../../index.html#key675">uevent</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2010, by William H. Duquette</p>
</div>
</div></body></html>







|




















|








382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
&lt;Update&gt; hook.</p>
<pre class="example">
     hook bind ::model &lt;Update&gt; .view [list .view ModelUpdate]
</pre>
<p>When the <b class="cmd">::model</b> calls the hook, the <b class="widget">.view</b>s
ModelUpdate subcommand will be called.</p>
<p>Later the <b class="widget">.view</b> megawidget is destroyed. In its destructor,
it tells the <i class="term"><a href="../../../../index.html#key677">hook</a></i> that it no longer exists:</p>
<pre class="example">
     hook forget .view
</pre>
<p>All bindings involving <b class="widget">.view</b> are deleted.</p>
</div>
<div id="section5" class="section"><h2><a name="section5">Credits</a></h2>
<p>Hook has been designed and implemented by William H. Duquette.</p>
</div>
<div id="section6" class="section"><h2><a name="section6">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>hook</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../uev/uevent.html">uevent(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key537">callback</a>, <a href="../../../../index.html#key539">event</a>, <a href="../../../../index.html#key677">hook</a>, <a href="../../../../index.html#key647">observer</a>, <a href="../../../../index.html#key676">producer</a>, <a href="../../../../index.html#key678">publisher</a>, <a href="../../../../index.html#key675">subject</a>, <a href="../../../../index.html#key674">subscriber</a>, <a href="../../../../index.html#key679">uevent</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2010, by William H. Duquette</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/html/html.html.

211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
<dt><a name="3"><b class="cmd">::html::cell</b> <i class="arg">param value</i> <span class="opt">?<i class="arg">tag</i>?</span></a></dt>
<dd><p>Generate a <i class="term">td</i> (or <i class="term">th</i>) tag, a value, and a closing
<i class="term">td</i> (or <i class="term">th</i>) tag. The
tag parameters come from <i class="arg">param</i> or TD.* attributes defined with
<b class="cmd">::html::init</b>.  This uses <b class="cmd">::html::font</b> to insert a standard
<i class="term">font</i> tag into the table cell. The <i class="arg">tag</i> argument defaults to &quot;td&quot;.</p></dd>
<dt><a name="4"><b class="cmd">::html::checkbox</b> <i class="arg">name value</i></a></dt>
<dd><p>Generate a <i class="term"><a href="../../../../index.html#key614">checkbox</a></i> form element with the specified name and value.
This uses <b class="cmd">::html::checkValue</b>.</p></dd>
<dt><a name="5"><b class="cmd">::html::checkSet</b> <i class="arg">key sep list</i></a></dt>
<dd><p>Generate a set of <i class="term"><a href="../../../../index.html#key614">checkbox</a></i> form elements and associated labels.  The
<i class="arg">list</i> should contain an alternating list of labels and values.
This uses <b class="cmd">::html::checkbox</b>. All the <i class="term"><a href="../../../../index.html#key614">checkbox</a></i> buttons share the
same <i class="arg">key</i> for their name. The <i class="arg">sep</i> is text used to separate
the elements.</p></dd>
<dt><a name="6"><b class="cmd">::html::checkValue</b> <i class="arg">name</i> <span class="opt">?<i class="arg">value</i>?</span></a></dt>
<dd><p>Generate the &quot;name=<i class="arg">name</i> value=<i class="arg">value</i>&quot; for a <i class="term"><a href="../../../../index.html#key614">checkbox</a></i> form
element.  If the CGI variable <i class="arg">name</i> has the value <i class="arg">value</i>,
then SELECTED is added to the return value. <i class="arg">value</i> defaults to
&quot;1&quot;.</p></dd>
<dt><a name="7"><b class="cmd">::html::closeTag</b></a></dt>
<dd><p>Pop a tag off the stack created by <b class="cmd">::html::openTag</b> and generate
the corresponding close tag (e.g., &lt;/body&gt;).</p></dd>
<dt><a name="8"><b class="cmd">::html::default</b> <i class="arg">key</i> <span class="opt">?<i class="arg">param</i>?</span></a></dt>







|


|

|



|







211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
<dt><a name="3"><b class="cmd">::html::cell</b> <i class="arg">param value</i> <span class="opt">?<i class="arg">tag</i>?</span></a></dt>
<dd><p>Generate a <i class="term">td</i> (or <i class="term">th</i>) tag, a value, and a closing
<i class="term">td</i> (or <i class="term">th</i>) tag. The
tag parameters come from <i class="arg">param</i> or TD.* attributes defined with
<b class="cmd">::html::init</b>.  This uses <b class="cmd">::html::font</b> to insert a standard
<i class="term">font</i> tag into the table cell. The <i class="arg">tag</i> argument defaults to &quot;td&quot;.</p></dd>
<dt><a name="4"><b class="cmd">::html::checkbox</b> <i class="arg">name value</i></a></dt>
<dd><p>Generate a <i class="term"><a href="../../../../index.html#key617">checkbox</a></i> form element with the specified name and value.
This uses <b class="cmd">::html::checkValue</b>.</p></dd>
<dt><a name="5"><b class="cmd">::html::checkSet</b> <i class="arg">key sep list</i></a></dt>
<dd><p>Generate a set of <i class="term"><a href="../../../../index.html#key617">checkbox</a></i> form elements and associated labels.  The
<i class="arg">list</i> should contain an alternating list of labels and values.
This uses <b class="cmd">::html::checkbox</b>. All the <i class="term"><a href="../../../../index.html#key617">checkbox</a></i> buttons share the
same <i class="arg">key</i> for their name. The <i class="arg">sep</i> is text used to separate
the elements.</p></dd>
<dt><a name="6"><b class="cmd">::html::checkValue</b> <i class="arg">name</i> <span class="opt">?<i class="arg">value</i>?</span></a></dt>
<dd><p>Generate the &quot;name=<i class="arg">name</i> value=<i class="arg">value</i>&quot; for a <i class="term"><a href="../../../../index.html#key617">checkbox</a></i> form
element.  If the CGI variable <i class="arg">name</i> has the value <i class="arg">value</i>,
then SELECTED is added to the return value. <i class="arg">value</i> defaults to
&quot;1&quot;.</p></dd>
<dt><a name="7"><b class="cmd">::html::closeTag</b></a></dt>
<dd><p>Pop a tag off the stack created by <b class="cmd">::html::openTag</b> and generate
the corresponding close tag (e.g., &lt;/body&gt;).</p></dd>
<dt><a name="8"><b class="cmd">::html::default</b> <i class="arg">key</i> <span class="opt">?<i class="arg">param</i>?</span></a></dt>
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
If previous calls have been made to
<b class="cmd">::html::author</b>,
<b class="cmd">::html::keywords</b>,
<b class="cmd">::html::description</b>,
or
<b class="cmd">::html::meta</b>
then additional tags are inserted into the <i class="term">head</i> section.
This leaves an open <i class="term"><a href="../../../../index.html#key611">html</a></i> tag pushed on the stack with
<b class="cmd">::html::openTag</b>.</p></dd>
<dt><a name="28"><b class="cmd">::html::headTag</b> <i class="arg">string</i></a></dt>
<dd><p>Save a tag for inclusion in the <i class="term">head</i> section generated by
<b class="cmd">::html::head</b>.  The <i class="arg">string</i> is everything in the tag except
the enclosing angle brackets, &lt; &gt;.</p></dd>
<dt><a name="29"><b class="cmd">::html::html_entities</b> <i class="arg">string</i></a></dt>
<dd><p>This command replaces all special characters in the <i class="arg">string</i> with







|







311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
If previous calls have been made to
<b class="cmd">::html::author</b>,
<b class="cmd">::html::keywords</b>,
<b class="cmd">::html::description</b>,
or
<b class="cmd">::html::meta</b>
then additional tags are inserted into the <i class="term">head</i> section.
This leaves an open <i class="term"><a href="../../../../index.html#key614">html</a></i> tag pushed on the stack with
<b class="cmd">::html::openTag</b>.</p></dd>
<dt><a name="28"><b class="cmd">::html::headTag</b> <i class="arg">string</i></a></dt>
<dd><p>Save a tag for inclusion in the <i class="term">head</i> section generated by
<b class="cmd">::html::head</b>.  The <i class="arg">string</i> is everything in the tag except
the enclosing angle brackets, &lt; &gt;.</p></dd>
<dt><a name="29"><b class="cmd">::html::html_entities</b> <i class="arg">string</i></a></dt>
<dd><p>This command replaces all special characters in the <i class="arg">string</i> with
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
<dt><a name="43"><b class="cmd">::html::paramRow</b> <i class="arg">list</i> <span class="opt">?<i class="arg">rparam</i>?</span> <span class="opt">?<i class="arg">cparam</i>?</span></a></dt>
<dd><p>Generate a table row, including <i class="term">tr</i> and <i class="term">td</i> tags. Each value in
<i class="arg">list</i> is placed into its own table cell. This uses
<b class="cmd">::html::cell</b>. The value of <i class="arg">rparam</i> is used as parameter for
the <i class="term">tr</i> tag. The value of <i class="arg">cparam</i> is passed to <b class="cmd">::html::cell</b>
as parameter for the <i class="term">td</i> tags.</p></dd>
<dt><a name="44"><b class="cmd">::html::passwordInput</b> <span class="opt">?<i class="arg">name</i>?</span></a></dt>
<dd><p>Generate an <i class="term">input</i> tag of type <i class="term"><a href="../../../../index.html#key685">password</a></i>. The <i class="arg">name</i> defaults to
&quot;password&quot;.</p></dd>
<dt><a name="45"><b class="cmd">::html::passwordInputRow</b> <i class="arg">label</i> <span class="opt">?<i class="arg">name</i>?</span></a></dt>
<dd><p>Format a table row containing a label and an <i class="term">input</i> tag of type
<i class="term"><a href="../../../../index.html#key685">password</a></i>. The <i class="arg">name</i> defaults to &quot;password&quot;.</p></dd>
<dt><a name="46"><b class="cmd">::html::quoteFormValue</b> <i class="arg">value</i></a></dt>
<dd><p>Quote special characters in <i class="arg">value</i> by replacing them with HTML
entities for quotes, ampersand, and angle brackets.</p></dd>
<dt><a name="47"><b class="cmd">::html::radioSet</b> <i class="arg">key sep list</i></a></dt>
<dd><p>Generate a set of <i class="term">input</i> tags of type <i class="term">radio</i> and an associated text
label.  All the radio buttons share the same <i class="arg">key</i> for their name.
The <i class="arg">sep</i> is text used to separate the elements.  The <i class="arg">list</i>







|



|







394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
<dt><a name="43"><b class="cmd">::html::paramRow</b> <i class="arg">list</i> <span class="opt">?<i class="arg">rparam</i>?</span> <span class="opt">?<i class="arg">cparam</i>?</span></a></dt>
<dd><p>Generate a table row, including <i class="term">tr</i> and <i class="term">td</i> tags. Each value in
<i class="arg">list</i> is placed into its own table cell. This uses
<b class="cmd">::html::cell</b>. The value of <i class="arg">rparam</i> is used as parameter for
the <i class="term">tr</i> tag. The value of <i class="arg">cparam</i> is passed to <b class="cmd">::html::cell</b>
as parameter for the <i class="term">td</i> tags.</p></dd>
<dt><a name="44"><b class="cmd">::html::passwordInput</b> <span class="opt">?<i class="arg">name</i>?</span></a></dt>
<dd><p>Generate an <i class="term">input</i> tag of type <i class="term"><a href="../../../../index.html#key689">password</a></i>. The <i class="arg">name</i> defaults to
&quot;password&quot;.</p></dd>
<dt><a name="45"><b class="cmd">::html::passwordInputRow</b> <i class="arg">label</i> <span class="opt">?<i class="arg">name</i>?</span></a></dt>
<dd><p>Format a table row containing a label and an <i class="term">input</i> tag of type
<i class="term"><a href="../../../../index.html#key689">password</a></i>. The <i class="arg">name</i> defaults to &quot;password&quot;.</p></dd>
<dt><a name="46"><b class="cmd">::html::quoteFormValue</b> <i class="arg">value</i></a></dt>
<dd><p>Quote special characters in <i class="arg">value</i> by replacing them with HTML
entities for quotes, ampersand, and angle brackets.</p></dd>
<dt><a name="47"><b class="cmd">::html::radioSet</b> <i class="arg">key sep list</i></a></dt>
<dd><p>Generate a set of <i class="term">input</i> tags of type <i class="term">radio</i> and an associated text
label.  All the radio buttons share the same <i class="arg">key</i> for their name.
The <i class="arg">sep</i> is text used to separate the elements.  The <i class="arg">list</i>
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
and <i class="arg">param</i> are used to generate the <i class="term">select</i> tag. The <i class="arg">choices</i>
list is a Tcl-style name, value list.</p></dd>
<dt><a name="52"><b class="cmd">::html::selectPlain</b> <i class="arg">name param choices</i> <span class="opt">?<i class="arg">current</i>?</span></a></dt>
<dd><p>Like <b class="cmd">::html::select</b> except that <i class="arg">choices</i> is a Tcl list of
values used for the <i class="term">option</i> tags.  The label and the value for each
<i class="term">option</i> are the same.</p></dd>
<dt><a name="53"><b class="cmd">::html::set</b> <i class="arg">var val</i></a></dt>
<dd><p>This procedure is similar to the built-in Tcl <b class="cmd"><a href="../../../../index.html#key297">set</a></b> command.  The
main difference is that it returns &quot;&quot; so it can be called from an HTML
template file without appending unwanted results.  The other
difference is that it must take two arguments.</p></dd>
<dt><a name="54"><b class="cmd">::html::submit</b> <i class="arg">label</i> <span class="opt">?<i class="arg">name</i>?</span></a></dt>
<dd><p>Generate an <i class="term">input</i> tag of type <i class="term">submit</i>. <i class="arg">name</i> defaults to &quot;submit&quot;.</p></dd>
<dt><a name="55"><b class="cmd">::html::tableFromArray</b> <i class="arg">arrname</i> <span class="opt">?<i class="arg">param</i>?</span> <span class="opt">?<i class="arg">pat</i>?</span></a></dt>
<dd><p>Generate a two-column <i class="term"><a href="../../../../index.html#key106">table</a></i> and nested rows to display a Tcl array. The







|







430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
and <i class="arg">param</i> are used to generate the <i class="term">select</i> tag. The <i class="arg">choices</i>
list is a Tcl-style name, value list.</p></dd>
<dt><a name="52"><b class="cmd">::html::selectPlain</b> <i class="arg">name param choices</i> <span class="opt">?<i class="arg">current</i>?</span></a></dt>
<dd><p>Like <b class="cmd">::html::select</b> except that <i class="arg">choices</i> is a Tcl list of
values used for the <i class="term">option</i> tags.  The label and the value for each
<i class="term">option</i> are the same.</p></dd>
<dt><a name="53"><b class="cmd">::html::set</b> <i class="arg">var val</i></a></dt>
<dd><p>This procedure is similar to the built-in Tcl <b class="cmd"><a href="../../../../index.html#key299">set</a></b> command.  The
main difference is that it returns &quot;&quot; so it can be called from an HTML
template file without appending unwanted results.  The other
difference is that it must take two arguments.</p></dd>
<dt><a name="54"><b class="cmd">::html::submit</b> <i class="arg">label</i> <span class="opt">?<i class="arg">name</i>?</span></a></dt>
<dd><p>Generate an <i class="term">input</i> tag of type <i class="term">submit</i>. <i class="arg">name</i> defaults to &quot;submit&quot;.</p></dd>
<dt><a name="55"><b class="cmd">::html::tableFromArray</b> <i class="arg">arrname</i> <span class="opt">?<i class="arg">param</i>?</span> <span class="opt">?<i class="arg">pat</i>?</span></a></dt>
<dd><p>Generate a two-column <i class="term"><a href="../../../../index.html#key106">table</a></i> and nested rows to display a Tcl array. The
501
502
503
504
505
506
507
508
509
510
511
512
513
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../htmlparse/htmlparse.html">htmlparse</a>, <a href="../ncgi/ncgi.html">ncgi</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key614">checkbox</a>, <a href="../../../../index.html#key612">checkbutton</a>, <a href="../../../../index.html#key610">form</a>, <a href="../../../../index.html#key611">html</a>, <a href="../../../../index.html#key613">radiobutton</a>, <a href="../../../../index.html#key106">table</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>CGI programming</p>
</div>
</div></body></html>







|





501
502
503
504
505
506
507
508
509
510
511
512
513
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../htmlparse/htmlparse.html">htmlparse</a>, <a href="../ncgi/ncgi.html">ncgi</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key617">checkbox</a>, <a href="../../../../index.html#key615">checkbutton</a>, <a href="../../../../index.html#key613">form</a>, <a href="../../../../index.html#key614">html</a>, <a href="../../../../index.html#key616">radiobutton</a>, <a href="../../../../index.html#key106">table</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>CGI programming</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/htmlparse/htmlparse.html.

309
310
311
312
313
314
315
316
317
318
319
320
321
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../struct/struct_tree.html">struct::tree</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key611">html</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key50">queue</a>, <a href="../../../../index.html#key296">tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>







|





309
310
311
312
313
314
315
316
317
318
319
320
321
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../struct/struct_tree.html">struct::tree</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key614">html</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key50">queue</a>, <a href="../../../../index.html#key298">tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/http/autoproxy.html.

162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
URL and sometimes the URL may contain authentication parameters or
these may be requested from the user or provided via http_proxy_user
and http_proxy_pass. This package attempts to deal with all these
schemes. It will do it's best to get the required parameters from the
environment or registry and if it fails can be reconfigured.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>







|


|







|
|







162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
URL and sometimes the URL may contain authentication parameters or
these may be requested from the user or provided via http_proxy_user
and http_proxy_pass. This package attempts to deal with all these
schemes. It will do it's best to get the required parameters from the
environment or registry and if it fails can be reconfigured.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
options will return a list of all option names and values.
See <span class="sectref"><a href="#section4">OPTIONS</a></span>.</p></dd>
<dt><a name="4"><b class="cmd">::autoproxy::tls_connect</b> <i class="arg">args</i></a></dt>
<dd><p>Connect to a secure socket through a proxy. HTTP proxy servers permit
the use of the CONNECT HTTP command to open a link through the proxy
to the target machine. This function hides the details. For use with
the http package see <b class="cmd">tls_socket</b>.</p>
<p>The <i class="arg">args</i> list may contain any of the <b class="package"><a href="../../../../index.html#key327">tls</a></b> package options but
must end with the host and port as the last two items.</p></dd>
<dt><a name="5"><b class="cmd">::autoproxy::tunnel_connect</b> <i class="arg">args</i></a></dt>
<dd><p>Connect to a target host throught a proxy. This uses the same CONNECT
HTTP command as the <b class="cmd">tls_connect</b> but does not promote the link
security once the connection is established.</p>
<p>The <i class="arg">args</i> list may contain any of the <b class="package"><a href="../../../../index.html#key327">tls</a></b> package options but
must end with the host and port as the last two items.</p>
<p>Note that many proxy servers will permit CONNECT calls to a limited
set of ports - typically only port 443 (the secure HTTP port).</p></dd>
<dt><a name="6"><b class="cmd">::autoproxy::tls_socket</b> <i class="arg">args</i></a></dt>
<dd><p>This function is to be used to register a proxy-aware secure socket
handler for the https protocol. It may only be used with the Tcl http
package and should be registered using the http::register command (see







|





|







201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
options will return a list of all option names and values.
See <span class="sectref"><a href="#section4">OPTIONS</a></span>.</p></dd>
<dt><a name="4"><b class="cmd">::autoproxy::tls_connect</b> <i class="arg">args</i></a></dt>
<dd><p>Connect to a secure socket through a proxy. HTTP proxy servers permit
the use of the CONNECT HTTP command to open a link through the proxy
to the target machine. This function hides the details. For use with
the http package see <b class="cmd">tls_socket</b>.</p>
<p>The <i class="arg">args</i> list may contain any of the <b class="package"><a href="../../../../index.html#key329">tls</a></b> package options but
must end with the host and port as the last two items.</p></dd>
<dt><a name="5"><b class="cmd">::autoproxy::tunnel_connect</b> <i class="arg">args</i></a></dt>
<dd><p>Connect to a target host throught a proxy. This uses the same CONNECT
HTTP command as the <b class="cmd">tls_connect</b> but does not promote the link
security once the connection is established.</p>
<p>The <i class="arg">args</i> list may contain any of the <b class="package"><a href="../../../../index.html#key329">tls</a></b> package options but
must end with the host and port as the last two items.</p>
<p>Note that many proxy servers will permit CONNECT calls to a limited
set of ports - typically only port 443 (the secure HTTP port).</p></dd>
<dt><a name="6"><b class="cmd">::autoproxy::tls_socket</b> <i class="arg">args</i></a></dt>
<dd><p>This function is to be used to register a proxy-aware secure socket
handler for the https protocol. It may only be used with the Tcl http
package and should be registered using the http::register command (see
314
315
316
317
318
319
320
321
322
323
324
325
326
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>http(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key389">authentication</a>, <a href="../../../../index.html#key441">http</a>, <a href="../../../../index.html#key821">proxy</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>







|





314
315
316
317
318
319
320
321
322
323
324
325
326
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>http(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key391">authentication</a>, <a href="../../../../index.html#key443">http</a>, <a href="../../../../index.html#key825">proxy</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/ident/ident.html.

167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
bugs and other problems.
Please report such in the category <em>ident</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key428">ident</a>, <a href="../../../../index.html#key429">identification</a>, <a href="../../../../index.html#key427">rfc 1413</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Reinhard Max &lt;[email protected]&gt;</p>
</div>







|







167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
bugs and other problems.
Please report such in the category <em>ident</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key430">ident</a>, <a href="../../../../index.html#key431">identification</a>, <a href="../../../../index.html#key429">rfc 1413</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Reinhard Max &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/imap4/imap4.html.

435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
    puts &quot;Capabilities: [::imap4::isableto $imap]&quot;
    puts &quot;Is able to imap4rev1? [::imap4::isableto $imap imap4rev1]&quot;
    # Cleanup
    ::imap4::cleanup $imap
</pre>
</div>
<div id="section4" class="section"><h2><a name="section4">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>







|


|







|
|







435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
    puts &quot;Capabilities: [::imap4::isableto $imap]&quot;
    puts &quot;Is able to imap4rev1? [::imap4::isableto $imap imap4rev1]&quot;
    # Cleanup
    ::imap4::cleanup $imap
</pre>
</div>
<div id="section4" class="section"><h2><a name="section4">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
471
472
473
474
475
476
477
478
479
480
481
482
483
Please report such in the category <em>imap4</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.
Only a small part of rfc3501 implemented.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../ftp/ftp.html">ftp</a>, <a href="../../../../index.html#key441">http</a>, <a href="../../../../index.html#key796">imap</a>, <a href="../mime/mime.html">mime</a>, <a href="../pop3/pop3.html">pop3</a>, <a href="../../../../index.html#key327">tls</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key331">email</a>, <a href="../../../../index.html#key796">imap</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key326">mail</a>, <a href="../../../../index.html#key291">net</a>, <a href="../../../../index.html#key795">rfc3501</a>, <a href="../../../../index.html#key355">ssl</a>, <a href="../../../../index.html#key327">tls</a></p>
</div>
</div></body></html>







|


|


471
472
473
474
475
476
477
478
479
480
481
482
483
Please report such in the category <em>imap4</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.
Only a small part of rfc3501 implemented.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../ftp/ftp.html">ftp</a>, <a href="../../../../index.html#key443">http</a>, <a href="../../../../index.html#key800">imap</a>, <a href="../mime/mime.html">mime</a>, <a href="../pop3/pop3.html">pop3</a>, <a href="../../../../index.html#key329">tls</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key333">email</a>, <a href="../../../../index.html#key800">imap</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key328">mail</a>, <a href="../../../../index.html#key293">net</a>, <a href="../../../../index.html#key799">rfc3501</a>, <a href="../../../../index.html#key357">ssl</a>, <a href="../../../../index.html#key329">tls</a></p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/interp/deleg_method.html.

162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
bugs and other problems.
Please report such in the category <em>interp</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key40">comm</a>, <a href="../../../../index.html#key39">delegation</a>, <a href="../../../../index.html#key38">interpreter</a>, <a href="../../../../index.html#key367">method</a>, <a href="../../../../index.html#key368">snit</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
bugs and other problems.
Please report such in the category <em>interp</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key40">comm</a>, <a href="../../../../index.html#key39">delegation</a>, <a href="../../../../index.html#key38">interpreter</a>, <a href="../../../../index.html#key369">method</a>, <a href="../../../../index.html#key370">snit</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/interp/tcllib_interp.html.

176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
bugs and other problems.
Please report such in the category <em>interp</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key768">alias</a>, <a href="../../../../index.html#key769">empty interpreter</a>, <a href="../../../../index.html#key38">interpreter</a>, <a href="../../../../index.html#key367">method</a>, <a href="../../../../index.html#key368">snit</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
bugs and other problems.
Please report such in the category <em>interp</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key772">alias</a>, <a href="../../../../index.html#key773">empty interpreter</a>, <a href="../../../../index.html#key38">interpreter</a>, <a href="../../../../index.html#key369">method</a>, <a href="../../../../index.html#key370">snit</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/irc/irc.html.

313
314
315
316
317
318
319
320
321
322
323
324
325
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>rfc 1459</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key686">chat</a>, <a href="../../../../index.html#key736">irc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>







|





313
314
315
316
317
318
319
320
321
322
323
324
325
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>rfc 1459</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key690">chat</a>, <a href="../../../../index.html#key740">irc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/irc/picoirc.html.

238
239
240
241
242
243
244
245
246
247
248
249
250
could be used to redirect all input and output if desired.</p></dd>
</dl>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>rfc 1459</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key686">chat</a>, <a href="../../../../index.html#key736">irc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>







|





238
239
240
241
242
243
244
245
246
247
248
249
250
could be used to redirect all input and output if desired.</p></dd>
</dl>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>rfc 1459</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key690">chat</a>, <a href="../../../../index.html#key740">irc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/javascript/javascript.html.

204
205
206
207
208
209
210
211
212
213
214
215
216
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../html/html.html">html</a>, <a href="../ncgi/ncgi.html">ncgi</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key614">checkbox</a>, <a href="../../../../index.html#key611">html</a>, <a href="../../../../index.html#key205">javascript</a>, <a href="../../../../index.html#key731">selectionbox</a>, <a href="../../../../index.html#key730">submitbutton</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>CGI programming</p>
</div>
</div></body></html>







|





204
205
206
207
208
209
210
211
212
213
214
215
216
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../html/html.html">html</a>, <a href="../ncgi/ncgi.html">ncgi</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key617">checkbox</a>, <a href="../../../../index.html#key614">html</a>, <a href="../../../../index.html#key205">javascript</a>, <a href="../../../../index.html#key735">selectionbox</a>, <a href="../../../../index.html#key734">submitbutton</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>CGI programming</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/lambda/lambda.html.

136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<li><a href="#1"><b class="cmd">::lambda</b> <i class="arg">arguments</i> <i class="arg">body</i> <span class="opt">?<i class="arg">arg</i>...?</span></a></li>
<li><a href="#2"><b class="cmd">::lambda@</b> <i class="arg">namespace</i> <i class="arg">arguments</i> <i class="arg">body</i> <span class="opt">?<i class="arg">arg</i>...?</span></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides two convenience commands to make the writing of
anonymous procedures, i.e. lambdas more <b class="cmd"><a href="../../../../index.html#key586">proc</a></b>-like. Instead of,
for example, to write</p>
<pre class="example">
     set f {::apply {{x} {
        ....
     }}}
</pre>
<p>with its deep nesting of braces, or</p>







|







136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<li><a href="#1"><b class="cmd">::lambda</b> <i class="arg">arguments</i> <i class="arg">body</i> <span class="opt">?<i class="arg">arg</i>...?</span></a></li>
<li><a href="#2"><b class="cmd">::lambda@</b> <i class="arg">namespace</i> <i class="arg">arguments</i> <i class="arg">body</i> <span class="opt">?<i class="arg">arg</i>...?</span></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides two convenience commands to make the writing of
anonymous procedures, i.e. lambdas more <b class="cmd"><a href="../../../../index.html#key589">proc</a></b>-like. Instead of,
for example, to write</p>
<pre class="example">
     set f {::apply {{x} {
        ....
     }}}
</pre>
<p>with its deep nesting of braces, or</p>
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>apply(n), proc(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key590">anonymous procedure</a>, <a href="../../../../index.html#key534">callback</a>, <a href="../../../../index.html#key589">command prefix</a>, <a href="../../../../index.html#key591">currying</a>, <a href="../../../../index.html#key588">lambda</a>, <a href="../../../../index.html#key587">partial application</a>, <a href="../../../../index.html#key586">proc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Utility</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries, BSD licensed</p>
</div>
</div></body></html>







|








197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>apply(n), proc(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key593">anonymous procedure</a>, <a href="../../../../index.html#key537">callback</a>, <a href="../../../../index.html#key592">command prefix</a>, <a href="../../../../index.html#key594">currying</a>, <a href="../../../../index.html#key591">lambda</a>, <a href="../../../../index.html#key590">partial application</a>, <a href="../../../../index.html#key589">proc</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Utility</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries, BSD licensed</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/ldap/ldap.html.

146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<li><a href="#11"><b class="cmd">::ldap::searchEnd</b> <i class="arg">handle</i></a></li>
<li><a href="#12"><b class="cmd">::ldap::modify</b> <i class="arg">handle</i> <i class="arg">dn</i> <i class="arg">attrValToReplace</i> <span class="opt">?<i class="arg">attrToDelete</i>?</span> <span class="opt">?<i class="arg">attrValToAdd</i>?</span></a></li>
<li><a href="#13"><b class="cmd">::ldap::modifyMulti</b> <i class="arg">handle</i> <i class="arg">dn</i> <i class="arg">attrValToReplace</i> <span class="opt">?<i class="arg">attrValToDelete</i>?</span> <span class="opt">?<i class="arg">attrValToAdd</i>?</span></a></li>
<li><a href="#14"><b class="cmd">::ldap::add</b> <i class="arg">handle</i> <i class="arg">dn</i> <i class="arg">attrValueTuples</i></a></li>
<li><a href="#15"><b class="cmd">::ldap::addMulti</b> <i class="arg">handle</i> <i class="arg">dn</i> <i class="arg">attrValueTuples</i></a></li>
<li><a href="#16"><b class="cmd">::ldap::delete</b> <i class="arg">handle</i> <i class="arg">dn</i></a></li>
<li><a href="#17"><b class="cmd">::ldap::modifyDN</b> <i class="arg">handle</i> <i class="arg">dn</i> <i class="arg">newrdn</i> <span class="opt">?<i class="arg">deleteOld</i>?</span> <span class="opt">?<i class="arg">newSuperior</i>?</span></a></li>
<li><a href="#18"><b class="cmd">::ldap::info</b> <b class="cmd"><a href="../../../../index.html#key446">ip</a></b> <i class="arg">handle</i></a></li>
<li><a href="#19"><b class="cmd">::ldap::info</b> <b class="cmd">bound</b> <i class="arg">handle</i></a></li>
<li><a href="#20"><b class="cmd">::ldap::info</b> <b class="cmd">bounduser</b> <i class="arg">handle</i></a></li>
<li><a href="#21"><b class="cmd">::ldap::info</b> <b class="cmd">connections</b></a></li>
<li><a href="#22"><b class="cmd">::ldap::info</b> <b class="cmd"><a href="../../../../index.html#key327">tls</a></b> <i class="arg">handle</i></a></li>
<li><a href="#23"><b class="cmd">::ldap::info</b> <b class="cmd">saslmechanisms</b> <i class="arg">handle</i></a></li>
<li><a href="#24"><b class="cmd">::ldap::info</b> <b class="cmd"><a href="../control/control.html">control</a></b> <i class="arg">handle</i></a></li>
<li><a href="#25"><b class="cmd">::ldap::info</b> <b class="cmd">extensions</b> <i class="arg">extensions</i></a></li>
<li><a href="#26"><b class="cmd">::ldap::info</b> <b class="cmd">whoami</b> <i class="arg">handle</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">ldap</b> package provides a Tcl-only client library
for the LDAPv3 protocol as specified in
RFC 4511 (<a href="http://www.rfc-editor.org/rfc/rfc4511.txt">http://www.rfc-editor.org/rfc/rfc4511.txt</a>).
It works by opening the standard (or secure) LDAP socket on the
server, and then providing a Tcl API to access the LDAP protocol
commands.  All server errors are returned as Tcl errors (thrown) which
must be caught with the Tcl <b class="cmd">catch</b> command.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section3" class="section"><h2><a name="section3">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::ldap::connect</b> <i class="arg">host</i> <span class="opt">?<i class="arg">port</i>?</span></a></dt>
<dd><p>Opens a LDAPv3 connection to the specified <i class="arg">host</i>, at the given
<i class="arg">port</i>, and returns a token for the connection. This token is the
<i class="arg">handle</i> argument for all other commands. If no <i class="arg">port</i> is
specified it will default to <b class="const">389</b>.</p>
<p>The command blocks until the connection has been established, or
establishment definitely failed.</p></dd>
<dt><a name="2"><b class="cmd">::ldap::secure_connect</b> <i class="arg">host</i> <span class="opt">?<i class="arg">port</i>?</span></a></dt>
<dd><p>Like <b class="cmd">::ldap::connect</b>, except that the created connection is
secured by SSL. The port defaults to <b class="const">636</b>.  This command
depends on the availability of the package <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, which is a
SSL binding for Tcl. If <b class="package"><a href="../../../../index.html#key327">TLS</a></b> is not available, then this
command will fail.</p>
<p>The command blocks until the connection has been established, or
establishment definitely failed.</p></dd>
<dt><a name="3"><b class="cmd">::ldap::disconnect</b> <i class="arg">handle</i></a></dt>
<dd><p>Closes the ldap connection refered to by the token
<i class="arg">handle</i>. Returns the empty string as its result.</p></dd>
<dt><a name="4"><b class="cmd">::ldap::starttls</b> <i class="arg">handle</i> <span class="opt">?<i class="arg">cafile</i>?</span> <span class="opt">?<i class="arg">certfile</i>?</span> <span class="opt">?<i class="arg">keyfile</i>?</span></a></dt>







|



|

















|


|







|
|




















|
|







146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<li><a href="#11"><b class="cmd">::ldap::searchEnd</b> <i class="arg">handle</i></a></li>
<li><a href="#12"><b class="cmd">::ldap::modify</b> <i class="arg">handle</i> <i class="arg">dn</i> <i class="arg">attrValToReplace</i> <span class="opt">?<i class="arg">attrToDelete</i>?</span> <span class="opt">?<i class="arg">attrValToAdd</i>?</span></a></li>
<li><a href="#13"><b class="cmd">::ldap::modifyMulti</b> <i class="arg">handle</i> <i class="arg">dn</i> <i class="arg">attrValToReplace</i> <span class="opt">?<i class="arg">attrValToDelete</i>?</span> <span class="opt">?<i class="arg">attrValToAdd</i>?</span></a></li>
<li><a href="#14"><b class="cmd">::ldap::add</b> <i class="arg">handle</i> <i class="arg">dn</i> <i class="arg">attrValueTuples</i></a></li>
<li><a href="#15"><b class="cmd">::ldap::addMulti</b> <i class="arg">handle</i> <i class="arg">dn</i> <i class="arg">attrValueTuples</i></a></li>
<li><a href="#16"><b class="cmd">::ldap::delete</b> <i class="arg">handle</i> <i class="arg">dn</i></a></li>
<li><a href="#17"><b class="cmd">::ldap::modifyDN</b> <i class="arg">handle</i> <i class="arg">dn</i> <i class="arg">newrdn</i> <span class="opt">?<i class="arg">deleteOld</i>?</span> <span class="opt">?<i class="arg">newSuperior</i>?</span></a></li>
<li><a href="#18"><b class="cmd">::ldap::info</b> <b class="cmd"><a href="../../../../index.html#key448">ip</a></b> <i class="arg">handle</i></a></li>
<li><a href="#19"><b class="cmd">::ldap::info</b> <b class="cmd">bound</b> <i class="arg">handle</i></a></li>
<li><a href="#20"><b class="cmd">::ldap::info</b> <b class="cmd">bounduser</b> <i class="arg">handle</i></a></li>
<li><a href="#21"><b class="cmd">::ldap::info</b> <b class="cmd">connections</b></a></li>
<li><a href="#22"><b class="cmd">::ldap::info</b> <b class="cmd"><a href="../../../../index.html#key329">tls</a></b> <i class="arg">handle</i></a></li>
<li><a href="#23"><b class="cmd">::ldap::info</b> <b class="cmd">saslmechanisms</b> <i class="arg">handle</i></a></li>
<li><a href="#24"><b class="cmd">::ldap::info</b> <b class="cmd"><a href="../control/control.html">control</a></b> <i class="arg">handle</i></a></li>
<li><a href="#25"><b class="cmd">::ldap::info</b> <b class="cmd">extensions</b> <i class="arg">extensions</i></a></li>
<li><a href="#26"><b class="cmd">::ldap::info</b> <b class="cmd">whoami</b> <i class="arg">handle</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">ldap</b> package provides a Tcl-only client library
for the LDAPv3 protocol as specified in
RFC 4511 (<a href="http://www.rfc-editor.org/rfc/rfc4511.txt">http://www.rfc-editor.org/rfc/rfc4511.txt</a>).
It works by opening the standard (or secure) LDAP socket on the
server, and then providing a Tcl API to access the LDAP protocol
commands.  All server errors are returned as Tcl errors (thrown) which
must be caught with the Tcl <b class="cmd">catch</b> command.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section3" class="section"><h2><a name="section3">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::ldap::connect</b> <i class="arg">host</i> <span class="opt">?<i class="arg">port</i>?</span></a></dt>
<dd><p>Opens a LDAPv3 connection to the specified <i class="arg">host</i>, at the given
<i class="arg">port</i>, and returns a token for the connection. This token is the
<i class="arg">handle</i> argument for all other commands. If no <i class="arg">port</i> is
specified it will default to <b class="const">389</b>.</p>
<p>The command blocks until the connection has been established, or
establishment definitely failed.</p></dd>
<dt><a name="2"><b class="cmd">::ldap::secure_connect</b> <i class="arg">host</i> <span class="opt">?<i class="arg">port</i>?</span></a></dt>
<dd><p>Like <b class="cmd">::ldap::connect</b>, except that the created connection is
secured by SSL. The port defaults to <b class="const">636</b>.  This command
depends on the availability of the package <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, which is a
SSL binding for Tcl. If <b class="package"><a href="../../../../index.html#key329">TLS</a></b> is not available, then this
command will fail.</p>
<p>The command blocks until the connection has been established, or
establishment definitely failed.</p></dd>
<dt><a name="3"><b class="cmd">::ldap::disconnect</b> <i class="arg">handle</i></a></dt>
<dd><p>Closes the ldap connection refered to by the token
<i class="arg">handle</i>. Returns the empty string as its result.</p></dd>
<dt><a name="4"><b class="cmd">::ldap::starttls</b> <i class="arg">handle</i> <span class="opt">?<i class="arg">cafile</i>?</span> <span class="opt">?<i class="arg">certfile</i>?</span> <span class="opt">?<i class="arg">keyfile</i>?</span></a></dt>
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
operation will create a copy of <i class="arg">dn</i> in the new location.
The optional argument <i class="arg">newSuperior</i> defaults an empty string,
meaning that the object must not be relocated in another branch of
the tree. If this argument is given, the argument <i class="arg">deleteOld</i>
must be specified also.
The command blocks until the operation has completed. Its result
is the empty string.</p></dd>
<dt><a name="18"><b class="cmd">::ldap::info</b> <b class="cmd"><a href="../../../../index.html#key446">ip</a></b> <i class="arg">handle</i></a></dt>
<dd><p>This command returns the IP address of the remote LDAP server the handle is connected to.</p></dd>
<dt><a name="19"><b class="cmd">::ldap::info</b> <b class="cmd">bound</b> <i class="arg">handle</i></a></dt>
<dd><p>This command returns 1 if a handle has successfully completed a <b class="cmd">::ldap::bind</b>.
If no bind was done or it failed, a 0 is returned.</p></dd>
<dt><a name="20"><b class="cmd">::ldap::info</b> <b class="cmd">bounduser</b> <i class="arg">handle</i></a></dt>
<dd><p>This command returns the username used in the bind operation if a handle has successfully completed a <b class="cmd">::ldap::bind</b>.
If no bound was done or it failed, an empty string is returned.</p></dd>
<dt><a name="21"><b class="cmd">::ldap::info</b> <b class="cmd">connections</b></a></dt>
<dd><p>This command returns all currently existing ldap connection handles.</p></dd>
<dt><a name="22"><b class="cmd">::ldap::info</b> <b class="cmd"><a href="../../../../index.html#key327">tls</a></b> <i class="arg">handle</i></a></dt>
<dd><p>This command returns 1 if the ldap connection <i class="arg">handle</i> used TLS/SSL for
connection via <b class="cmd">ldap::secure_connect</b> or completed <b class="cmd">ldap::starttls</b>, 0 otherwise.</p></dd>
<dt><a name="23"><b class="cmd">::ldap::info</b> <b class="cmd">saslmechanisms</b> <i class="arg">handle</i></a></dt>
<dd><p>Return the supported SASL mechanisms advertised by the server. Only valid in a
bound state (anonymous or other).</p></dd>
<dt><a name="24"><b class="cmd">::ldap::info</b> <b class="cmd"><a href="../control/control.html">control</a></b> <i class="arg">handle</i></a></dt>
<dd><p>Return the supported controls advertised by the server as a list of OIDs. Only valid in a bound state.







|









|







402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
operation will create a copy of <i class="arg">dn</i> in the new location.
The optional argument <i class="arg">newSuperior</i> defaults an empty string,
meaning that the object must not be relocated in another branch of
the tree. If this argument is given, the argument <i class="arg">deleteOld</i>
must be specified also.
The command blocks until the operation has completed. Its result
is the empty string.</p></dd>
<dt><a name="18"><b class="cmd">::ldap::info</b> <b class="cmd"><a href="../../../../index.html#key448">ip</a></b> <i class="arg">handle</i></a></dt>
<dd><p>This command returns the IP address of the remote LDAP server the handle is connected to.</p></dd>
<dt><a name="19"><b class="cmd">::ldap::info</b> <b class="cmd">bound</b> <i class="arg">handle</i></a></dt>
<dd><p>This command returns 1 if a handle has successfully completed a <b class="cmd">::ldap::bind</b>.
If no bind was done or it failed, a 0 is returned.</p></dd>
<dt><a name="20"><b class="cmd">::ldap::info</b> <b class="cmd">bounduser</b> <i class="arg">handle</i></a></dt>
<dd><p>This command returns the username used in the bind operation if a handle has successfully completed a <b class="cmd">::ldap::bind</b>.
If no bound was done or it failed, an empty string is returned.</p></dd>
<dt><a name="21"><b class="cmd">::ldap::info</b> <b class="cmd">connections</b></a></dt>
<dd><p>This command returns all currently existing ldap connection handles.</p></dd>
<dt><a name="22"><b class="cmd">::ldap::info</b> <b class="cmd"><a href="../../../../index.html#key329">tls</a></b> <i class="arg">handle</i></a></dt>
<dd><p>This command returns 1 if the ldap connection <i class="arg">handle</i> used TLS/SSL for
connection via <b class="cmd">ldap::secure_connect</b> or completed <b class="cmd">ldap::starttls</b>, 0 otherwise.</p></dd>
<dt><a name="23"><b class="cmd">::ldap::info</b> <b class="cmd">saslmechanisms</b> <i class="arg">handle</i></a></dt>
<dd><p>Return the supported SASL mechanisms advertised by the server. Only valid in a
bound state (anonymous or other).</p></dd>
<dt><a name="24"><b class="cmd">::ldap::info</b> <b class="cmd"><a href="../control/control.html">control</a></b> <i class="arg">handle</i></a></dt>
<dd><p>Return the supported controls advertised by the server as a list of OIDs. Only valid in a bound state.

Changes to embedded/www/tcllib/files/modules/ldap/ldapx.html.

739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
bugs and other problems.
Please report such in the category <em>ldap</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key135">directory access</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key130">ldap</a>, <a href="../../../../index.html#key128">ldap client</a>, <a href="../../../../index.html#key498">ldif</a>, <a href="../../../../index.html#key133">protocol</a>, <a href="../../../../index.html#key129">rfc 2251</a>, <a href="../../../../index.html#key497">rfc 2849</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Pierre David &lt;[email protected]&gt;</p>
</div>







|







739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
bugs and other problems.
Please report such in the category <em>ldap</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key135">directory access</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key130">ldap</a>, <a href="../../../../index.html#key128">ldap client</a>, <a href="../../../../index.html#key500">ldif</a>, <a href="../../../../index.html#key133">protocol</a>, <a href="../../../../index.html#key129">rfc 2251</a>, <a href="../../../../index.html#key499">rfc 2849</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Pierre David &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/log/log.html.

337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
bugs and other problems.
Please report such in the category <em>log</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key73">log</a>, <a href="../../../../index.html#key91">log level</a>, <a href="../../../../index.html#key357">message</a>, <a href="../../../../index.html#key790">message level</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2001-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
bugs and other problems.
Please report such in the category <em>log</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key73">log</a>, <a href="../../../../index.html#key91">log level</a>, <a href="../../../../index.html#key359">message</a>, <a href="../../../../index.html#key794">message level</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2001-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/log/loggerAppender.html.

165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
bugs and other problems.
Please report such in the category <em>logger</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key404">appender</a>, <a href="../../../../index.html#key89">logger</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Aamer Akhter &lt;[email protected]&gt;</p>
</div>







|







165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
bugs and other problems.
Please report such in the category <em>logger</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key406">appender</a>, <a href="../../../../index.html#key89">logger</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Aamer Akhter &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/log/loggerUtils.html.

234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
bugs and other problems.
Please report such in the category <em>logger</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key404">appender</a>, <a href="../../../../index.html#key89">logger</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Aamer Akhter &lt;[email protected]&gt;</p>
</div>







|







234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
bugs and other problems.
Please report such in the category <em>logger</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key406">appender</a>, <a href="../../../../index.html#key89">logger</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Aamer Akhter &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/map/map_geocode_nominatim.html.

141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<li><a href="#3"><b class="cmd">$cmdprefix</b> <i class="arg">errorstring</i></a></li>
<li><a href="#4"><i class="arg">requestor</i> <b class="method">search</b> <i class="arg">query</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class for accessing geocoding services which implement
the <i class="term"><a href="../../../../index.html#key577">Nominatim</a></i> interface (see <span class="sectref"><a href="#section3">References</a></span>)</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::map::geocode::nominatim</b> <i class="arg">requestor</i> <span class="opt">?<b class="option">-baseurl</b> <i class="arg">url</i>?</span> <span class="opt">?<b class="option">-callback</b> <i class="arg">callback</i>?</span> <span class="opt">?<b class="option">-error</b> <i class="arg">error callback</i>?</span></a></dt>
<dd><p>Creates a geocoding request object <i class="arg">requestor</i>, which will send its requests to
the <i class="term"><a href="../../../../index.html#key577">Nominatim</a></i> server.</p>
<p>The result of the command is <i class="arg">name</i>.</p></dd>
</dl>
<div id="subsection1" class="subsection"><h3><a name="subsection1">Options</a></h3>
<dl class="options">
<dt><b class="option">-baseurl</b> <i class="arg">url</i></dt>
<dd><p>The base URL of the <i class="term"><a href="../../../../index.html#key577">Nominatim</a></i> service. Default value is <i class="term">OpenStreetMap's</i> service at
<a href="http://nominatim.openstreetmap.org/search">http://nominatim.openstreetmap.org/search</a> A possible free alternative is at
<a href="http://open.mapquestapi.com//nominatim/v1/search">http://open.mapquestapi.com//nominatim/v1/search</a></p></dd>
<dt><b class="option">-callback</b> <i class="arg">cmdprefix</i></dt>
<dd><p>A command prefix to be invoked when search result become available.
The default setting, active when nothing was specified on object creation, is to print
the <i class="arg">result</i> (see below) to <i class="term"><a href="../../../../index.html#key820">stdout</a></i>. The result of the command prefix is
ignored. Errors thrown by the command prefix are caught and cause the invokation of
the error callback (see option <b class="option">-error</b> below), with the error message as argument.</p>
<p>The signature of the command prefix is:</p>
<dl class="definitions">
<dt><a name="2"><b class="cmd">$cmdprefix</b> <i class="arg">result</i></a></dt>
<dd><p>The <i class="arg">result</i> is a list of dictionaries, containing one item per hit.
Each dictionary will have the following entries:</p>







|





|





|





|







141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<li><a href="#3"><b class="cmd">$cmdprefix</b> <i class="arg">errorstring</i></a></li>
<li><a href="#4"><i class="arg">requestor</i> <b class="method">search</b> <i class="arg">query</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a class for accessing geocoding services which implement
the <i class="term"><a href="../../../../index.html#key580">Nominatim</a></i> interface (see <span class="sectref"><a href="#section3">References</a></span>)</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::map::geocode::nominatim</b> <i class="arg">requestor</i> <span class="opt">?<b class="option">-baseurl</b> <i class="arg">url</i>?</span> <span class="opt">?<b class="option">-callback</b> <i class="arg">callback</i>?</span> <span class="opt">?<b class="option">-error</b> <i class="arg">error callback</i>?</span></a></dt>
<dd><p>Creates a geocoding request object <i class="arg">requestor</i>, which will send its requests to
the <i class="term"><a href="../../../../index.html#key580">Nominatim</a></i> server.</p>
<p>The result of the command is <i class="arg">name</i>.</p></dd>
</dl>
<div id="subsection1" class="subsection"><h3><a name="subsection1">Options</a></h3>
<dl class="options">
<dt><b class="option">-baseurl</b> <i class="arg">url</i></dt>
<dd><p>The base URL of the <i class="term"><a href="../../../../index.html#key580">Nominatim</a></i> service. Default value is <i class="term">OpenStreetMap's</i> service at
<a href="http://nominatim.openstreetmap.org/search">http://nominatim.openstreetmap.org/search</a> A possible free alternative is at
<a href="http://open.mapquestapi.com//nominatim/v1/search">http://open.mapquestapi.com//nominatim/v1/search</a></p></dd>
<dt><b class="option">-callback</b> <i class="arg">cmdprefix</i></dt>
<dd><p>A command prefix to be invoked when search result become available.
The default setting, active when nothing was specified on object creation, is to print
the <i class="arg">result</i> (see below) to <i class="term"><a href="../../../../index.html#key824">stdout</a></i>. The result of the command prefix is
ignored. Errors thrown by the command prefix are caught and cause the invokation of
the error callback (see option <b class="option">-error</b> below), with the error message as argument.</p>
<p>The signature of the command prefix is:</p>
<dl class="definitions">
<dt><a name="2"><b class="cmd">$cmdprefix</b> <i class="arg">result</i></a></dt>
<dd><p>The <i class="arg">result</i> is a list of dictionaries, containing one item per hit.
Each dictionary will have the following entries:</p>
218
219
220
221
222
223
224
225
226
227
<div id="section3" class="section"><h2><a name="section3">References</a></h2>
<ol class="enumerated">
<li><p><a href="http://wiki.openstreetmap.org/wiki/Nominatim">http://wiki.openstreetmap.org/wiki/Nominatim</a></p></li>
<li><p><a href="http://open.mapquestapi.com/nominatim/">http://open.mapquestapi.com/nominatim/</a></p></li>
</ol>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key578">geocoding</a>, <a href="../../../../index.html#key441">http</a>, <a href="../../../../index.html#key198">location</a>, <a href="../../../../index.html#key199">map</a>, <a href="../../../../index.html#key577">nominatim</a>, <a href="../../../../index.html#key65">server</a>, <a href="../../../../index.html#key244">url</a></p>
</div>
</div></body></html>







|


218
219
220
221
222
223
224
225
226
227
<div id="section3" class="section"><h2><a name="section3">References</a></h2>
<ol class="enumerated">
<li><p><a href="http://wiki.openstreetmap.org/wiki/Nominatim">http://wiki.openstreetmap.org/wiki/Nominatim</a></p></li>
<li><p><a href="http://open.mapquestapi.com/nominatim/">http://open.mapquestapi.com/nominatim/</a></p></li>
</ol>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key581">geocoding</a>, <a href="../../../../index.html#key443">http</a>, <a href="../../../../index.html#key198">location</a>, <a href="../../../../index.html#key199">map</a>, <a href="../../../../index.html#key580">nominatim</a>, <a href="../../../../index.html#key65">server</a>, <a href="../../../../index.html#key244">url</a></p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/map/map_slippy_cache.html.

193
194
195
196
197
198
199
200
201
202
</div>
<div id="section3" class="section"><h2><a name="section3">References</a></h2>
<ol class="enumerated">
<li><p><a href="http://wiki.openstreetmap.org/wiki/Main_Page">http://wiki.openstreetmap.org/wiki/Main_Page</a></p></li>
</ol>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key379">cache</a>, <a href="../../../../index.html#key380">filesystem</a>, <a href="../../../../index.html#key198">location</a>, <a href="../../../../index.html#key199">map</a>, <a href="../../../../index.html#key197">slippy</a>, <a href="../../../../index.html#key381">tile</a>, <a href="../../../../index.html#key196">zoom</a></p>
</div>
</div></body></html>







|


193
194
195
196
197
198
199
200
201
202
</div>
<div id="section3" class="section"><h2><a name="section3">References</a></h2>
<ol class="enumerated">
<li><p><a href="http://wiki.openstreetmap.org/wiki/Main_Page">http://wiki.openstreetmap.org/wiki/Main_Page</a></p></li>
</ol>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key381">cache</a>, <a href="../../../../index.html#key382">filesystem</a>, <a href="../../../../index.html#key198">location</a>, <a href="../../../../index.html#key199">map</a>, <a href="../../../../index.html#key197">slippy</a>, <a href="../../../../index.html#key383">tile</a>, <a href="../../../../index.html#key196">zoom</a></p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/map/map_slippy_fetcher.html.

182
183
184
185
186
187
188
189
190
191
</div>
<div id="section3" class="section"><h2><a name="section3">References</a></h2>
<ol class="enumerated">
<li><p><a href="http://wiki.openstreetmap.org/wiki/Main_Page">http://wiki.openstreetmap.org/wiki/Main_Page</a></p></li>
</ol>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key441">http</a>, <a href="../../../../index.html#key198">location</a>, <a href="../../../../index.html#key199">map</a>, <a href="../../../../index.html#key65">server</a>, <a href="../../../../index.html#key197">slippy</a>, <a href="../../../../index.html#key381">tile</a>, <a href="../../../../index.html#key244">url</a>, <a href="../../../../index.html#key196">zoom</a></p>
</div>
</div></body></html>







|


182
183
184
185
186
187
188
189
190
191
</div>
<div id="section3" class="section"><h2><a name="section3">References</a></h2>
<ol class="enumerated">
<li><p><a href="http://wiki.openstreetmap.org/wiki/Main_Page">http://wiki.openstreetmap.org/wiki/Main_Page</a></p></li>
</ol>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key443">http</a>, <a href="../../../../index.html#key198">location</a>, <a href="../../../../index.html#key199">map</a>, <a href="../../../../index.html#key65">server</a>, <a href="../../../../index.html#key197">slippy</a>, <a href="../../../../index.html#key383">tile</a>, <a href="../../../../index.html#key244">url</a>, <a href="../../../../index.html#key196">zoom</a></p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/mapproj/mapproj.html.

444
445
446
447
448
449
450
451
452
453
454
455
456
map on which all great circles (the shortest distance between
two points on the Earth's surface) are rendered as straight lines.
While this projection is useful for navigational planning, it
has extreme distortions of shape and area, and can display
only a limited area of the Earth (substantially less than a hemisphere).</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key195">geodesy</a>, <a href="../../../../index.html#key199">map</a>, <a href="../../../../index.html#key636">projection</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Kevin B. Kenny &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|





444
445
446
447
448
449
450
451
452
453
454
455
456
map on which all great circles (the shortest distance between
two points on the Earth's surface) are rendered as straight lines.
While this projection is useful for navigational planning, it
has extreme distortions of shape and area, and can display
only a limited area of the Earth (substantially less than a hemisphere).</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key195">geodesy</a>, <a href="../../../../index.html#key199">map</a>, <a href="../../../../index.html#key640">projection</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Kevin B. Kenny &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/math/bigfloat.html.

150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<li><a href="#10"><b class="cmd">mul</b> <i class="arg">x</i> <i class="arg">y</i></a></li>
<li><a href="#11"><b class="cmd">div</b> <i class="arg">x</i> <i class="arg">y</i></a></li>
<li><a href="#12"><b class="cmd">mod</b> <i class="arg">x</i> <i class="arg">y</i></a></li>
<li><a href="#13"><b class="cmd">abs</b> <i class="arg">x</i></a></li>
<li><a href="#14"><b class="cmd">opp</b> <i class="arg">x</i></a></li>
<li><a href="#15"><b class="cmd">pow</b> <i class="arg">x</i> <i class="arg">n</i></a></li>
<li><a href="#16"><b class="cmd">iszero</b> <i class="arg">x</i></a></li>
<li><a href="#17"><b class="cmd"><a href="../../../../index.html#key554">equal</a></b> <i class="arg">x</i> <i class="arg">y</i></a></li>
<li><a href="#18"><b class="cmd">compare</b> <i class="arg">x</i> <i class="arg">y</i></a></li>
<li><a href="#19"><b class="cmd">sqrt</b> <i class="arg">x</i></a></li>
<li><a href="#20"><b class="cmd"><a href="../log/log.html">log</a></b> <i class="arg">x</i></a></li>
<li><a href="#21"><b class="cmd">exp</b> <i class="arg">x</i></a></li>
<li><a href="#22"><b class="cmd">cos</b> <i class="arg">x</i></a></li>
<li><a href="#23"><b class="cmd">sin</b> <i class="arg">x</i></a></li>
<li><a href="#24"><b class="cmd">tan</b> <i class="arg">x</i></a></li>
<li><a href="#25"><b class="cmd">cotan</b> <i class="arg">x</i></a></li>
<li><a href="#26"><b class="cmd">acos</b> <i class="arg">x</i></a></li>
<li><a href="#27"><b class="cmd">asin</b> <i class="arg">x</i></a></li>
<li><a href="#28"><b class="cmd">atan</b> <i class="arg">x</i></a></li>
<li><a href="#29"><b class="cmd">cosh</b> <i class="arg">x</i></a></li>
<li><a href="#30"><b class="cmd">sinh</b> <i class="arg">x</i></a></li>
<li><a href="#31"><b class="cmd">tanh</b> <i class="arg">x</i></a></li>
<li><a href="#32"><b class="cmd"><a href="../../../../index.html#key797">pi</a></b> <i class="arg">n</i></a></li>
<li><a href="#33"><b class="cmd">rad2deg</b> <i class="arg">radians</i></a></li>
<li><a href="#34"><b class="cmd">deg2rad</b> <i class="arg">degrees</i></a></li>
<li><a href="#35"><b class="cmd">round</b> <i class="arg">x</i></a></li>
<li><a href="#36"><b class="cmd">ceil</b> <i class="arg">x</i></a></li>
<li><a href="#37"><b class="cmd">floor</b> <i class="arg">x</i></a></li>
</ul>
</div>







|














|







150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<li><a href="#10"><b class="cmd">mul</b> <i class="arg">x</i> <i class="arg">y</i></a></li>
<li><a href="#11"><b class="cmd">div</b> <i class="arg">x</i> <i class="arg">y</i></a></li>
<li><a href="#12"><b class="cmd">mod</b> <i class="arg">x</i> <i class="arg">y</i></a></li>
<li><a href="#13"><b class="cmd">abs</b> <i class="arg">x</i></a></li>
<li><a href="#14"><b class="cmd">opp</b> <i class="arg">x</i></a></li>
<li><a href="#15"><b class="cmd">pow</b> <i class="arg">x</i> <i class="arg">n</i></a></li>
<li><a href="#16"><b class="cmd">iszero</b> <i class="arg">x</i></a></li>
<li><a href="#17"><b class="cmd"><a href="../../../../index.html#key557">equal</a></b> <i class="arg">x</i> <i class="arg">y</i></a></li>
<li><a href="#18"><b class="cmd">compare</b> <i class="arg">x</i> <i class="arg">y</i></a></li>
<li><a href="#19"><b class="cmd">sqrt</b> <i class="arg">x</i></a></li>
<li><a href="#20"><b class="cmd"><a href="../log/log.html">log</a></b> <i class="arg">x</i></a></li>
<li><a href="#21"><b class="cmd">exp</b> <i class="arg">x</i></a></li>
<li><a href="#22"><b class="cmd">cos</b> <i class="arg">x</i></a></li>
<li><a href="#23"><b class="cmd">sin</b> <i class="arg">x</i></a></li>
<li><a href="#24"><b class="cmd">tan</b> <i class="arg">x</i></a></li>
<li><a href="#25"><b class="cmd">cotan</b> <i class="arg">x</i></a></li>
<li><a href="#26"><b class="cmd">acos</b> <i class="arg">x</i></a></li>
<li><a href="#27"><b class="cmd">asin</b> <i class="arg">x</i></a></li>
<li><a href="#28"><b class="cmd">atan</b> <i class="arg">x</i></a></li>
<li><a href="#29"><b class="cmd">cosh</b> <i class="arg">x</i></a></li>
<li><a href="#30"><b class="cmd">sinh</b> <i class="arg">x</i></a></li>
<li><a href="#31"><b class="cmd">tanh</b> <i class="arg">x</i></a></li>
<li><a href="#32"><b class="cmd"><a href="../../../../index.html#key801">pi</a></b> <i class="arg">n</i></a></li>
<li><a href="#33"><b class="cmd">rad2deg</b> <i class="arg">radians</i></a></li>
<li><a href="#34"><b class="cmd">deg2rad</b> <i class="arg">degrees</i></a></li>
<li><a href="#35"><b class="cmd">round</b> <i class="arg">x</i></a></li>
<li><a href="#36"><b class="cmd">ceil</b> <i class="arg">x</i></a></li>
<li><a href="#37"><b class="cmd">floor</b> <i class="arg">x</i></a></li>
</ul>
</div>
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
tostr  $a ; # 0.e-2
iszero $a ; # false
set a [fromstr 0.001] ; # uncertainty interval : 0.000, 0.002
tostr  $a ; # 0.e-2
iszero $a ; # true
</pre>
</dd>
<dt><a name="17"><b class="cmd"><a href="../../../../index.html#key554">equal</a></b> <i class="arg">x</i> <i class="arg">y</i></a></dt>
<dd><p>Returns 1 if <em>x</em> and <em>y</em> are equal, 0 elsewhere.</p></dd>
<dt><a name="18"><b class="cmd">compare</b> <i class="arg">x</i> <i class="arg">y</i></a></dt>
<dd><p>Returns 0 if both BigFloat arguments are equal,
1 if <em>x</em> is greater than <em>y</em>,
and -1 if <em>x</em> is lower than <em>y</em>.
You would not be able to compare an integer to a BigFloat :
the operands should be both BigFloats, or both integers.</p></dd>







|







333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
tostr  $a ; # 0.e-2
iszero $a ; # false
set a [fromstr 0.001] ; # uncertainty interval : 0.000, 0.002
tostr  $a ; # 0.e-2
iszero $a ; # true
</pre>
</dd>
<dt><a name="17"><b class="cmd"><a href="../../../../index.html#key557">equal</a></b> <i class="arg">x</i> <i class="arg">y</i></a></dt>
<dd><p>Returns 1 if <em>x</em> and <em>y</em> are equal, 0 elsewhere.</p></dd>
<dt><a name="18"><b class="cmd">compare</b> <i class="arg">x</i> <i class="arg">y</i></a></dt>
<dd><p>Returns 0 if both BigFloat arguments are equal,
1 if <em>x</em> is greater than <em>y</em>,
and -1 if <em>x</em> is lower than <em>y</em>.
You would not be able to compare an integer to a BigFloat :
the operands should be both BigFloats, or both integers.</p></dd>
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
<dt><a name="30"><b class="cmd">sinh</b> <i class="arg">x</i></a></dt>
<dd></dd>
<dt><a name="31"><b class="cmd">tanh</b> <i class="arg">x</i></a></dt>
<dd><p>The above functions return, respectively, the following :
square root, logarithm, exponential, cosine, sine,
tangent, cotangent, arc cosine, arc sine, arc tangent, hyperbolic
cosine, hyperbolic sine, hyperbolic tangent, of a BigFloat named <em>x</em>.</p></dd>
<dt><a name="32"><b class="cmd"><a href="../../../../index.html#key797">pi</a></b> <i class="arg">n</i></a></dt>
<dd><p>Returns a BigFloat representing the Pi constant with <em>n</em> digits after the dot.
<em>n</em> is a positive integer.</p></dd>
<dt><a name="33"><b class="cmd">rad2deg</b> <i class="arg">radians</i></a></dt>
<dd></dd>
<dt><a name="34"><b class="cmd">deg2rad</b> <i class="arg">degrees</i></a></dt>
<dd><p><i class="arg">radians</i> - angle expressed in radians (BigFloat)</p>
<p><i class="arg">degrees</i> - angle expressed in degrees (BigFloat)</p>







|







374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
<dt><a name="30"><b class="cmd">sinh</b> <i class="arg">x</i></a></dt>
<dd></dd>
<dt><a name="31"><b class="cmd">tanh</b> <i class="arg">x</i></a></dt>
<dd><p>The above functions return, respectively, the following :
square root, logarithm, exponential, cosine, sine,
tangent, cotangent, arc cosine, arc sine, arc tangent, hyperbolic
cosine, hyperbolic sine, hyperbolic tangent, of a BigFloat named <em>x</em>.</p></dd>
<dt><a name="32"><b class="cmd"><a href="../../../../index.html#key801">pi</a></b> <i class="arg">n</i></a></dt>
<dd><p>Returns a BigFloat representing the Pi constant with <em>n</em> digits after the dot.
<em>n</em> is a positive integer.</p></dd>
<dt><a name="33"><b class="cmd">rad2deg</b> <i class="arg">radians</i></a></dt>
<dd></dd>
<dt><a name="34"><b class="cmd">deg2rad</b> <i class="arg">degrees</i></a></dt>
<dd><p><i class="arg">radians</i> - angle expressed in radians (BigFloat)</p>
<p><i class="arg">degrees</i> - angle expressed in degrees (BigFloat)</p>
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
bugs and other problems.
Please report such in the category <em>math :: bignum :: float</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key743">computations</a>, <a href="../../../../index.html#key388">floating-point</a>, <a href="../../../../index.html#key742">interval</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key285">multiprecision</a>, <a href="../../../../index.html#key284">tcl</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004-2008, by Stephane Arnold &lt;stephanearnold at yahoo dot fr&gt;</p>
</div>
</div></body></html>







|








563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
bugs and other problems.
Please report such in the category <em>math :: bignum :: float</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key747">computations</a>, <a href="../../../../index.html#key390">floating-point</a>, <a href="../../../../index.html#key746">interval</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key287">multiprecision</a>, <a href="../../../../index.html#key286">tcl</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004-2008, by Stephane Arnold &lt;stephanearnold at yahoo dot fr&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/math/bignum.html.

336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
bugs and other problems.
Please report such in the category <em>math :: bignum</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key283">bignums</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key285">multiprecision</a>, <a href="../../../../index.html#key284">tcl</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Salvatore Sanfilippo &lt;antirez at invece dot org&gt;<br>
Copyright &copy; 2004 Arjen Markus &lt;arjenmarkus at users dot sourceforge dot net&gt;</p>







|







336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
bugs and other problems.
Please report such in the category <em>math :: bignum</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key285">bignums</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key287">multiprecision</a>, <a href="../../../../index.html#key286">tcl</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Salvatore Sanfilippo &lt;antirez at invece dot org&gt;<br>
Copyright &copy; 2004 Arjen Markus &lt;arjenmarkus at users dot sourceforge dot net&gt;</p>

Changes to embedded/www/tcllib/files/modules/math/calculus.html.


1
2
3
4
5
6
7

<html><head>
<title>math::calculus - Tcl Math Library</title>
<style type="text/css"><!--
    HTML {
	background: 	#FFFFFF;
	color: 		black;
    }
>







1
2
3
4
5
6
7
8

<html><head>
<title>math::calculus - Tcl Math Library</title>
<style type="text/css"><!--
    HTML {
	background: 	#FFFFFF;
	color: 		black;
    }
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">math::calculus(n) 0.8 tcllib &quot;Tcl Math Library&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>math::calculus - Integration and ordinary differential equations</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>







|







104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">math::calculus(n) 0.8.1 tcllib &quot;Tcl Math Library&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>math::calculus - Integration and ordinary differential equations</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">math::calculus 0.8</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::math::calculus::integral</b> <i class="arg">begin</i> <i class="arg">end</i> <i class="arg">nosteps</i> <i class="arg">func</i></a></li>
<li><a href="#2"><b class="cmd">::math::calculus::integralExpr</b> <i class="arg">begin</i> <i class="arg">end</i> <i class="arg">nosteps</i> <i class="arg">expression</i></a></li>
<li><a href="#3"><b class="cmd">::math::calculus::integral2D</b> <i class="arg">xinterval</i> <i class="arg">yinterval</i> <i class="arg">func</i></a></li>
<li><a href="#4"><b class="cmd">::math::calculus::integral2D_accurate</b> <i class="arg">xinterval</i> <i class="arg">yinterval</i> <i class="arg">func</i></a></li>
<li><a href="#5"><b class="cmd">::math::calculus::integral3D</b> <i class="arg">xinterval</i> <i class="arg">yinterval</i> <i class="arg">zinterval</i> <i class="arg">func</i></a></li>







|







126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">math::calculus 0.8.1</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::math::calculus::integral</b> <i class="arg">begin</i> <i class="arg">end</i> <i class="arg">nosteps</i> <i class="arg">func</i></a></li>
<li><a href="#2"><b class="cmd">::math::calculus::integralExpr</b> <i class="arg">begin</i> <i class="arg">end</i> <i class="arg">nosteps</i> <i class="arg">expression</i></a></li>
<li><a href="#3"><b class="cmd">::math::calculus::integral2D</b> <i class="arg">xinterval</i> <i class="arg">yinterval</i> <i class="arg">func</i></a></li>
<li><a href="#4"><b class="cmd">::math::calculus::integral2D_accurate</b> <i class="arg">xinterval</i> <i class="arg">yinterval</i> <i class="arg">func</i></a></li>
<li><a href="#5"><b class="cmd">::math::calculus::integral3D</b> <i class="arg">xinterval</i> <i class="arg">yinterval</i> <i class="arg">zinterval</i> <i class="arg">func</i></a></li>
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>romberg</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key775">calculus</a>, <a href="../../../../index.html#key776">differential equations</a>, <a href="../../../../index.html#key774">integration</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key777">roots</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002,2003,2004 Arjen Markus</p>
</div>
</div></body></html>







|








492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>romberg</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key779">calculus</a>, <a href="../../../../index.html#key780">differential equations</a>, <a href="../../../../index.html#key778">integration</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key781">roots</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002,2003,2004 Arjen Markus</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/math/constants.html.

200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
bugs and other problems.
Please report such in the category <em>math :: constants</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key604">constants</a>, <a href="../../../../index.html#key799">degrees</a>, <a href="../../../../index.html#key798">e</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key797">pi</a>, <a href="../../../../index.html#key605">radians</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;</p>
</div>







|







200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
bugs and other problems.
Please report such in the category <em>math :: constants</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key607">constants</a>, <a href="../../../../index.html#key803">degrees</a>, <a href="../../../../index.html#key802">e</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key801">pi</a>, <a href="../../../../index.html#key608">radians</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/math/decimal.html.

314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
bugs and other problems.
Please report such in the category <em>decimal</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key755">decimal</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key284">tcl</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Mark Alston &lt;mark at beernut dot com&gt;</p>
</div>







|







314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
bugs and other problems.
Please report such in the category <em>decimal</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key759">decimal</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key286">tcl</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Mark Alston &lt;mark at beernut dot com&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/math/fourier.html.

237
238
239
240
241
242
243
244
245
246
247
248
249
bugs and other problems.
Please report such in the category <em>math :: fourier</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key794">FFT</a>, <a href="../../../../index.html#key793">Fourier transform</a>, <a href="../../../../index.html#key788">complex numbers</a>, <a href="../../../../index.html#key622">mathematics</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
</div></body></html>







|





237
238
239
240
241
242
243
244
245
246
247
248
249
bugs and other problems.
Please report such in the category <em>math :: fourier</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key798">FFT</a>, <a href="../../../../index.html#key797">Fourier transform</a>, <a href="../../../../index.html#key792">complex numbers</a>, <a href="../../../../index.html#key626">mathematics</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/math/fuzzy.html.

238
239
240
241
242
243
244
245
246
247
248
249
250
bugs and other problems.
Please report such in the category <em>math :: fuzzy</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key388">floating-point</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key387">rounding</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
</div></body></html>







|





238
239
240
241
242
243
244
245
246
247
248
249
250
bugs and other problems.
Please report such in the category <em>math :: fuzzy</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key390">floating-point</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key389">rounding</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/math/interpolate.html.

355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
bugs and other problems.
Please report such in the category <em>math :: interpolate</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key825">interpolation</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key826">spatial interpolation</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;<br>
Copyright &copy; 2004 Kevn B. Kenny &lt;[email protected]&gt;</p>







|







355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
bugs and other problems.
Please report such in the category <em>math :: interpolate</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key829">interpolation</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key830">spatial interpolation</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;<br>
Copyright &copy; 2004 Kevn B. Kenny &lt;[email protected]&gt;</p>

Changes to embedded/www/tcllib/files/modules/math/math_geometry.html.

486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
bugs and other problems.
Please report such in the category <em>math :: geometry</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key576">angle</a>, <a href="../../../../index.html#key474">distance</a>, <a href="../../../../index.html#key574">line</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key573">plane geometry</a>, <a href="../../../../index.html#key575">point</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2001 by Ideogramic ApS and other parties<br>
Copyright &copy; 2004 by Arjen Markus<br>







|







486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
bugs and other problems.
Please report such in the category <em>math :: geometry</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key579">angle</a>, <a href="../../../../index.html#key476">distance</a>, <a href="../../../../index.html#key577">line</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key576">plane geometry</a>, <a href="../../../../index.html#key578">point</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2001 by Ideogramic ApS and other parties<br>
Copyright &copy; 2004 by Arjen Markus<br>

Changes to embedded/www/tcllib/files/modules/math/numtheory.html.

172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
bugs and other problems.
Please report such in the category <em>math :: numtheory</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key758">number theory</a>, <a href="../../../../index.html#key759">prime</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2010 Lars Hellstr&ouml;m &lt;Lars dot Hellstrom at residenset dot net&gt;</p>
</div>







|







172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
bugs and other problems.
Please report such in the category <em>math :: numtheory</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key762">number theory</a>, <a href="../../../../index.html#key763">prime</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2010 Lars Hellstr&ouml;m &lt;Lars dot Hellstrom at residenset dot net&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/math/optimize.html.

379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
bugs and other problems.
Please report such in the category <em>math :: optimize</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key308">linear program</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key306">maximum</a>, <a href="../../../../index.html#key305">minimum</a>, <a href="../../../../index.html#key307">optimization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;<br>
Copyright &copy; 2004,2005 Kevn B. Kenny &lt;[email protected]&gt;</p>







|







379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
bugs and other problems.
Please report such in the category <em>math :: optimize</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key310">linear program</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key308">maximum</a>, <a href="../../../../index.html#key307">minimum</a>, <a href="../../../../index.html#key309">optimization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;<br>
Copyright &copy; 2004,2005 Kevn B. Kenny &lt;[email protected]&gt;</p>

Changes to embedded/www/tcllib/files/modules/math/polynomials.html.

288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
bugs and other problems.
Please report such in the category <em>math :: polynomials</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key805">polynomial functions</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;</p>
</div>







|







288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
bugs and other problems.
Please report such in the category <em>math :: polynomials</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key809">polynomial functions</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/math/qcomplex.html.

325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
bugs and other problems.
Please report such in the category <em>math :: complexnumbers</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key788">complex numbers</a>, <a href="../../../../index.html#key71">math</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;</p>
</div>







|







325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
bugs and other problems.
Please report such in the category <em>math :: complexnumbers</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key792">complex numbers</a>, <a href="../../../../index.html#key71">math</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/math/rational_funcs.html.

266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
bugs and other problems.
Please report such in the category <em>math :: rationalfunctions</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key649">rational functions</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Arjen Markus &lt;[email protected]&gt;</p>
</div>







|







266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
bugs and other problems.
Please report such in the category <em>math :: rationalfunctions</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key653">rational functions</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Arjen Markus &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/math/roman.html.

172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
bugs and other problems.
Please report such in the category <em>math :: roman</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key347">integer</a>, <a href="../../../../index.html#key346">roman numeral</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Kenneth Green &lt;[email protected]&gt;</p>
</div>







|







172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
bugs and other problems.
Please report such in the category <em>math :: roman</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key349">integer</a>, <a href="../../../../index.html#key348">roman numeral</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005 Kenneth Green &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/math/special.html.

501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
bugs and other problems.
Please report such in the category <em>math :: special</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key678">Bessel functions</a>, <a href="../../../../index.html#key676">error function</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key677">special functions</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;</p>
</div>







|







501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
bugs and other problems.
Please report such in the category <em>math :: special</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key682">Bessel functions</a>, <a href="../../../../index.html#key680">error function</a>, <a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key681">special functions</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/math/statistics.html.


1
2
3
4
5
6
7

<html><head>
<title>math::statistics - Tcl Math Library</title>
<style type="text/css"><!--
    HTML {
	background: 	#FFFFFF;
	color: 		black;
    }
>







1
2
3
4
5
6
7
8

<html><head>
<title>math::statistics - Tcl Math Library</title>
<style type="text/css"><!--
    HTML {
	background: 	#FFFFFF;
	color: 		black;
    }
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">math::statistics(n) 0.9 tcllib &quot;Tcl Math Library&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>math::statistics - Basic statistical functions and procedures</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>







|







102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">math::statistics(n) 0.9.3 tcllib &quot;Tcl Math Library&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>math::statistics - Basic statistical functions and procedures</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146

147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
<li class="section"><a href="#category">Category</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">math::statistics 0.9</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::math::statistics::mean</b> <i class="arg">data</i></a></li>
<li><a href="#2"><b class="cmd">::math::statistics::min</b> <i class="arg">data</i></a></li>
<li><a href="#3"><b class="cmd">::math::statistics::max</b> <i class="arg">data</i></a></li>
<li><a href="#4"><b class="cmd">::math::statistics::number</b> <i class="arg">data</i></a></li>
<li><a href="#5"><b class="cmd">::math::statistics::stdev</b> <i class="arg">data</i></a></li>
<li><a href="#6"><b class="cmd">::math::statistics::var</b> <i class="arg">data</i></a></li>
<li><a href="#7"><b class="cmd">::math::statistics::pstdev</b> <i class="arg">data</i></a></li>
<li><a href="#8"><b class="cmd">::math::statistics::pvar</b> <i class="arg">data</i></a></li>
<li><a href="#9"><b class="cmd">::math::statistics::median</b> <i class="arg">data</i></a></li>
<li><a href="#10"><b class="cmd">::math::statistics::basic-stats</b> <i class="arg">data</i></a></li>
<li><a href="#11"><b class="cmd">::math::statistics::histogram</b> <i class="arg">limits</i> <i class="arg">values</i> <span class="opt">?weights?</span></a></li>

<li><a href="#12"><b class="cmd">::math::statistics::corr</b> <i class="arg">data1</i> <i class="arg">data2</i></a></li>
<li><a href="#13"><b class="cmd">::math::statistics::interval-mean-stdev</b> <i class="arg">data</i> <i class="arg">confidence</i></a></li>
<li><a href="#14"><b class="cmd">::math::statistics::t-test-mean</b> <i class="arg">data</i> <i class="arg">est_mean</i> <i class="arg">est_stdev</i> <i class="arg">confidence</i></a></li>
<li><a href="#15"><b class="cmd">::math::statistics::test-normal</b> <i class="arg">data</i> <i class="arg">confidence</i></a></li>
<li><a href="#16"><b class="cmd">::math::statistics::lillieforsFit</b> <i class="arg">data</i></a></li>
<li><a href="#17"><b class="cmd">::math::statistics::quantiles</b> <i class="arg">data</i> <i class="arg">confidence</i></a></li>
<li><a href="#18"><b class="cmd">::math::statistics::quantiles</b> <i class="arg">limits</i> <i class="arg">counts</i> <i class="arg">confidence</i></a></li>
<li><a href="#19"><b class="cmd">::math::statistics::autocorr</b> <i class="arg">data</i></a></li>
<li><a href="#20"><b class="cmd">::math::statistics::crosscorr</b> <i class="arg">data1</i> <i class="arg">data2</i></a></li>
<li><a href="#21"><b class="cmd">::math::statistics::mean-histogram-limits</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">number</i></a></li>
<li><a href="#22"><b class="cmd">::math::statistics::minmax-histogram-limits</b> <i class="arg">min</i> <i class="arg">max</i> <i class="arg">number</i></a></li>
<li><a href="#23"><b class="cmd">::math::statistics::linear-model</b> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">intercept</i></a></li>
<li><a href="#24"><b class="cmd">::math::statistics::linear-residuals</b> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">intercept</i></a></li>
<li><a href="#25"><b class="cmd">::math::statistics::test-2x2</b> <i class="arg">n11</i> <i class="arg">n21</i> <i class="arg">n12</i> <i class="arg">n22</i></a></li>
<li><a href="#26"><b class="cmd">::math::statistics::print-2x2</b> <i class="arg">n11</i> <i class="arg">n21</i> <i class="arg">n12</i> <i class="arg">n22</i></a></li>
<li><a href="#27"><b class="cmd">::math::statistics::control-xbar</b> <i class="arg">data</i> <span class="opt">?nsamples?</span></a></li>
<li><a href="#28"><b class="cmd">::math::statistics::control-Rchart</b> <i class="arg">data</i> <span class="opt">?nsamples?</span></a></li>
<li><a href="#29"><b class="cmd">::math::statistics::test-xbar</b> <i class="arg">control</i> <i class="arg">data</i></a></li>
<li><a href="#30"><b class="cmd">::math::statistics::test-Rchart</b> <i class="arg">control</i> <i class="arg">data</i></a></li>
<li><a href="#31"><b class="cmd">::math::statistics::test-Kruskal-Wallis</b> <i class="arg">confidence</i> <i class="arg">args</i></a></li>
<li><a href="#32"><b class="cmd">::math::statistics::analyse-Kruskal-Wallis</b> <i class="arg">args</i></a></li>
<li><a href="#33"><b class="cmd">::math::statistics::group-rank</b> <i class="arg">args</i></a></li>
<li><a href="#34"><b class="cmd">::math::statistics::test-Wilcoxon</b> <i class="arg">sample_a</i> <i class="arg">sample_b</i></a></li>
<li><a href="#35"><b class="cmd">::math::statistics::spearman-rank</b> <i class="arg">sample_a</i> <i class="arg">sample_b</i></a></li>
<li><a href="#36"><b class="cmd">::math::statistics::spearman-rank-extended</b> <i class="arg">sample_a</i> <i class="arg">sample_b</i></a></li>
<li><a href="#37"><b class="cmd">::math::statistics::kernel-density</b> <i class="arg">data</i> opt <i class="arg">-option value</i> ...</a></li>
<li><a href="#38"><b class="cmd">::math::statistics::tstat</b> <i class="arg">dof</i> <span class="opt">?alpha?</span></a></li>
<li><a href="#39"><b class="cmd">::math::statistics::mv-wls</b> <i class="arg">wt1</i> <i class="arg">weights_and_values</i></a></li>
<li><a href="#40"><b class="cmd">::math::statistics::mv-ols</b> <i class="arg">values</i></a></li>
<li><a href="#41"><b class="cmd">::math::statistics::pdf-normal</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">value</i></a></li>
<li><a href="#42"><b class="cmd">::math::statistics::pdf-exponential</b> <i class="arg">mean</i> <i class="arg">value</i></a></li>
<li><a href="#43"><b class="cmd">::math::statistics::pdf-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">value</i></a></li>
<li><a href="#44"><b class="cmd">::math::statistics::pdf-gamma</b> <i class="arg">alpha</i> <i class="arg">beta</i> <i class="arg">value</i></a></li>
<li><a href="#45"><b class="cmd">::math::statistics::pdf-poisson</b> <i class="arg">mu</i> <i class="arg">k</i></a></li>
<li><a href="#46"><b class="cmd">::math::statistics::pdf-chisquare</b> <i class="arg">df</i> <i class="arg">value</i></a></li>
<li><a href="#47"><b class="cmd">::math::statistics::pdf-student-t</b> <i class="arg">df</i> <i class="arg">value</i></a></li>
<li><a href="#48"><b class="cmd">::math::statistics::pdf-beta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">value</i></a></li>
<li><a href="#49"><b class="cmd">::math::statistics::cdf-normal</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">value</i></a></li>
<li><a href="#50"><b class="cmd">::math::statistics::cdf-exponential</b> <i class="arg">mean</i> <i class="arg">value</i></a></li>
<li><a href="#51"><b class="cmd">::math::statistics::cdf-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">value</i></a></li>
<li><a href="#52"><b class="cmd">::math::statistics::cdf-students-t</b> <i class="arg">degrees</i> <i class="arg">value</i></a></li>
<li><a href="#53"><b class="cmd">::math::statistics::cdf-gamma</b> <i class="arg">alpha</i> <i class="arg">beta</i> <i class="arg">value</i></a></li>
<li><a href="#54"><b class="cmd">::math::statistics::cdf-poisson</b> <i class="arg">mu</i> <i class="arg">k</i></a></li>
<li><a href="#55"><b class="cmd">::math::statistics::cdf-beta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">value</i></a></li>
<li><a href="#56"><b class="cmd">::math::statistics::random-normal</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">number</i></a></li>
<li><a href="#57"><b class="cmd">::math::statistics::random-exponential</b> <i class="arg">mean</i> <i class="arg">number</i></a></li>
<li><a href="#58"><b class="cmd">::math::statistics::random-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">number</i></a></li>
<li><a href="#59"><b class="cmd">::math::statistics::random-gamma</b> <i class="arg">alpha</i> <i class="arg">beta</i> <i class="arg">number</i></a></li>
<li><a href="#60"><b class="cmd">::math::statistics::random-poisson</b> <i class="arg">mu</i> <i class="arg">number</i></a></li>
<li><a href="#61"><b class="cmd">::math::statistics::random-chisquare</b> <i class="arg">df</i> <i class="arg">number</i></a></li>
<li><a href="#62"><b class="cmd">::math::statistics::random-student-t</b> <i class="arg">df</i> <i class="arg">number</i></a></li>
<li><a href="#63"><b class="cmd">::math::statistics::random-beta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">number</i></a></li>
<li><a href="#64"><b class="cmd">::math::statistics::histogram-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">limits</i> <i class="arg">number</i></a></li>
<li><a href="#65"><b class="cmd">::math::statistics::incompleteGamma</b> <i class="arg">x</i> <i class="arg">p</i> <span class="opt">?tol?</span></a></li>
<li><a href="#66"><b class="cmd">::math::statistics::incompleteBeta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">x</i> <span class="opt">?tol?</span></a></li>
<li><a href="#67"><b class="cmd">::math::statistics::filter</b> <i class="arg">varname</i> <i class="arg">data</i> <i class="arg">expression</i></a></li>
<li><a href="#68"><b class="cmd">::math::statistics::map</b> <i class="arg">varname</i> <i class="arg">data</i> <i class="arg">expression</i></a></li>
<li><a href="#69"><b class="cmd">::math::statistics::samplescount</b> <i class="arg">varname</i> <i class="arg">list</i> <i class="arg">expression</i></a></li>
<li><a href="#70"><b class="cmd">::math::statistics::subdivide</b></a></li>
<li><a href="#71"><b class="cmd">::math::statistics::plot-scale</b> <i class="arg">canvas</i> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">ymin</i> <i class="arg">ymax</i></a></li>
<li><a href="#72"><b class="cmd">::math::statistics::plot-xydata</b> <i class="arg">canvas</i> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">tag</i></a></li>
<li><a href="#73"><b class="cmd">::math::statistics::plot-xyline</b> <i class="arg">canvas</i> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">tag</i></a></li>
<li><a href="#74"><b class="cmd">::math::statistics::plot-tdata</b> <i class="arg">canvas</i> <i class="arg">tdata</i> <i class="arg">tag</i></a></li>
<li><a href="#75"><b class="cmd">::math::statistics::plot-tline</b> <i class="arg">canvas</i> <i class="arg">tdata</i> <i class="arg">tag</i></a></li>
<li><a href="#76"><b class="cmd">::math::statistics::plot-histogram</b> <i class="arg">canvas</i> <i class="arg">counts</i> <i class="arg">limits</i> <i class="arg">tag</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">math::statistics</b> package contains functions and procedures for
basic statistical data analysis, such as:</p>
<ul class="itemized">







|













>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
<li class="section"><a href="#category">Category</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">math::statistics 0.9.3</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::math::statistics::mean</b> <i class="arg">data</i></a></li>
<li><a href="#2"><b class="cmd">::math::statistics::min</b> <i class="arg">data</i></a></li>
<li><a href="#3"><b class="cmd">::math::statistics::max</b> <i class="arg">data</i></a></li>
<li><a href="#4"><b class="cmd">::math::statistics::number</b> <i class="arg">data</i></a></li>
<li><a href="#5"><b class="cmd">::math::statistics::stdev</b> <i class="arg">data</i></a></li>
<li><a href="#6"><b class="cmd">::math::statistics::var</b> <i class="arg">data</i></a></li>
<li><a href="#7"><b class="cmd">::math::statistics::pstdev</b> <i class="arg">data</i></a></li>
<li><a href="#8"><b class="cmd">::math::statistics::pvar</b> <i class="arg">data</i></a></li>
<li><a href="#9"><b class="cmd">::math::statistics::median</b> <i class="arg">data</i></a></li>
<li><a href="#10"><b class="cmd">::math::statistics::basic-stats</b> <i class="arg">data</i></a></li>
<li><a href="#11"><b class="cmd">::math::statistics::histogram</b> <i class="arg">limits</i> <i class="arg">values</i> <span class="opt">?weights?</span></a></li>
<li><a href="#12"><b class="cmd">::math::statistics::histogram-alt</b> <i class="arg">limits</i> <i class="arg">values</i> <span class="opt">?weights?</span></a></li>
<li><a href="#13"><b class="cmd">::math::statistics::corr</b> <i class="arg">data1</i> <i class="arg">data2</i></a></li>
<li><a href="#14"><b class="cmd">::math::statistics::interval-mean-stdev</b> <i class="arg">data</i> <i class="arg">confidence</i></a></li>
<li><a href="#15"><b class="cmd">::math::statistics::t-test-mean</b> <i class="arg">data</i> <i class="arg">est_mean</i> <i class="arg">est_stdev</i> <i class="arg">alpha</i></a></li>
<li><a href="#16"><b class="cmd">::math::statistics::test-normal</b> <i class="arg">data</i> <i class="arg">significance</i></a></li>
<li><a href="#17"><b class="cmd">::math::statistics::lillieforsFit</b> <i class="arg">data</i></a></li>
<li><a href="#18"><b class="cmd">::math::statistics::quantiles</b> <i class="arg">data</i> <i class="arg">confidence</i></a></li>
<li><a href="#19"><b class="cmd">::math::statistics::quantiles</b> <i class="arg">limits</i> <i class="arg">counts</i> <i class="arg">confidence</i></a></li>
<li><a href="#20"><b class="cmd">::math::statistics::autocorr</b> <i class="arg">data</i></a></li>
<li><a href="#21"><b class="cmd">::math::statistics::crosscorr</b> <i class="arg">data1</i> <i class="arg">data2</i></a></li>
<li><a href="#22"><b class="cmd">::math::statistics::mean-histogram-limits</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">number</i></a></li>
<li><a href="#23"><b class="cmd">::math::statistics::minmax-histogram-limits</b> <i class="arg">min</i> <i class="arg">max</i> <i class="arg">number</i></a></li>
<li><a href="#24"><b class="cmd">::math::statistics::linear-model</b> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">intercept</i></a></li>
<li><a href="#25"><b class="cmd">::math::statistics::linear-residuals</b> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">intercept</i></a></li>
<li><a href="#26"><b class="cmd">::math::statistics::test-2x2</b> <i class="arg">n11</i> <i class="arg">n21</i> <i class="arg">n12</i> <i class="arg">n22</i></a></li>
<li><a href="#27"><b class="cmd">::math::statistics::print-2x2</b> <i class="arg">n11</i> <i class="arg">n21</i> <i class="arg">n12</i> <i class="arg">n22</i></a></li>
<li><a href="#28"><b class="cmd">::math::statistics::control-xbar</b> <i class="arg">data</i> <span class="opt">?nsamples?</span></a></li>
<li><a href="#29"><b class="cmd">::math::statistics::control-Rchart</b> <i class="arg">data</i> <span class="opt">?nsamples?</span></a></li>
<li><a href="#30"><b class="cmd">::math::statistics::test-xbar</b> <i class="arg">control</i> <i class="arg">data</i></a></li>
<li><a href="#31"><b class="cmd">::math::statistics::test-Rchart</b> <i class="arg">control</i> <i class="arg">data</i></a></li>
<li><a href="#32"><b class="cmd">::math::statistics::test-Kruskal-Wallis</b> <i class="arg">confidence</i> <i class="arg">args</i></a></li>
<li><a href="#33"><b class="cmd">::math::statistics::analyse-Kruskal-Wallis</b> <i class="arg">args</i></a></li>
<li><a href="#34"><b class="cmd">::math::statistics::group-rank</b> <i class="arg">args</i></a></li>
<li><a href="#35"><b class="cmd">::math::statistics::test-Wilcoxon</b> <i class="arg">sample_a</i> <i class="arg">sample_b</i></a></li>
<li><a href="#36"><b class="cmd">::math::statistics::spearman-rank</b> <i class="arg">sample_a</i> <i class="arg">sample_b</i></a></li>
<li><a href="#37"><b class="cmd">::math::statistics::spearman-rank-extended</b> <i class="arg">sample_a</i> <i class="arg">sample_b</i></a></li>
<li><a href="#38"><b class="cmd">::math::statistics::kernel-density</b> <i class="arg">data</i> opt <i class="arg">-option value</i> ...</a></li>
<li><a href="#39"><b class="cmd">::math::statistics::tstat</b> <i class="arg">dof</i> <span class="opt">?alpha?</span></a></li>
<li><a href="#40"><b class="cmd">::math::statistics::mv-wls</b> <i class="arg">wt1</i> <i class="arg">weights_and_values</i></a></li>
<li><a href="#41"><b class="cmd">::math::statistics::mv-ols</b> <i class="arg">values</i></a></li>
<li><a href="#42"><b class="cmd">::math::statistics::pdf-normal</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">value</i></a></li>
<li><a href="#43"><b class="cmd">::math::statistics::pdf-exponential</b> <i class="arg">mean</i> <i class="arg">value</i></a></li>
<li><a href="#44"><b class="cmd">::math::statistics::pdf-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">value</i></a></li>
<li><a href="#45"><b class="cmd">::math::statistics::pdf-gamma</b> <i class="arg">alpha</i> <i class="arg">beta</i> <i class="arg">value</i></a></li>
<li><a href="#46"><b class="cmd">::math::statistics::pdf-poisson</b> <i class="arg">mu</i> <i class="arg">k</i></a></li>
<li><a href="#47"><b class="cmd">::math::statistics::pdf-chisquare</b> <i class="arg">df</i> <i class="arg">value</i></a></li>
<li><a href="#48"><b class="cmd">::math::statistics::pdf-student-t</b> <i class="arg">df</i> <i class="arg">value</i></a></li>
<li><a href="#49"><b class="cmd">::math::statistics::pdf-beta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">value</i></a></li>
<li><a href="#50"><b class="cmd">::math::statistics::cdf-normal</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">value</i></a></li>
<li><a href="#51"><b class="cmd">::math::statistics::cdf-exponential</b> <i class="arg">mean</i> <i class="arg">value</i></a></li>
<li><a href="#52"><b class="cmd">::math::statistics::cdf-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">value</i></a></li>
<li><a href="#53"><b class="cmd">::math::statistics::cdf-students-t</b> <i class="arg">degrees</i> <i class="arg">value</i></a></li>
<li><a href="#54"><b class="cmd">::math::statistics::cdf-gamma</b> <i class="arg">alpha</i> <i class="arg">beta</i> <i class="arg">value</i></a></li>
<li><a href="#55"><b class="cmd">::math::statistics::cdf-poisson</b> <i class="arg">mu</i> <i class="arg">k</i></a></li>
<li><a href="#56"><b class="cmd">::math::statistics::cdf-beta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">value</i></a></li>
<li><a href="#57"><b class="cmd">::math::statistics::random-normal</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">number</i></a></li>
<li><a href="#58"><b class="cmd">::math::statistics::random-exponential</b> <i class="arg">mean</i> <i class="arg">number</i></a></li>
<li><a href="#59"><b class="cmd">::math::statistics::random-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">number</i></a></li>
<li><a href="#60"><b class="cmd">::math::statistics::random-gamma</b> <i class="arg">alpha</i> <i class="arg">beta</i> <i class="arg">number</i></a></li>
<li><a href="#61"><b class="cmd">::math::statistics::random-poisson</b> <i class="arg">mu</i> <i class="arg">number</i></a></li>
<li><a href="#62"><b class="cmd">::math::statistics::random-chisquare</b> <i class="arg">df</i> <i class="arg">number</i></a></li>
<li><a href="#63"><b class="cmd">::math::statistics::random-student-t</b> <i class="arg">df</i> <i class="arg">number</i></a></li>
<li><a href="#64"><b class="cmd">::math::statistics::random-beta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">number</i></a></li>
<li><a href="#65"><b class="cmd">::math::statistics::histogram-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">limits</i> <i class="arg">number</i></a></li>
<li><a href="#66"><b class="cmd">::math::statistics::incompleteGamma</b> <i class="arg">x</i> <i class="arg">p</i> <span class="opt">?tol?</span></a></li>
<li><a href="#67"><b class="cmd">::math::statistics::incompleteBeta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">x</i> <span class="opt">?tol?</span></a></li>
<li><a href="#68"><b class="cmd">::math::statistics::filter</b> <i class="arg">varname</i> <i class="arg">data</i> <i class="arg">expression</i></a></li>
<li><a href="#69"><b class="cmd">::math::statistics::map</b> <i class="arg">varname</i> <i class="arg">data</i> <i class="arg">expression</i></a></li>
<li><a href="#70"><b class="cmd">::math::statistics::samplescount</b> <i class="arg">varname</i> <i class="arg">list</i> <i class="arg">expression</i></a></li>
<li><a href="#71"><b class="cmd">::math::statistics::subdivide</b></a></li>
<li><a href="#72"><b class="cmd">::math::statistics::plot-scale</b> <i class="arg">canvas</i> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">ymin</i> <i class="arg">ymax</i></a></li>
<li><a href="#73"><b class="cmd">::math::statistics::plot-xydata</b> <i class="arg">canvas</i> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">tag</i></a></li>
<li><a href="#74"><b class="cmd">::math::statistics::plot-xyline</b> <i class="arg">canvas</i> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">tag</i></a></li>
<li><a href="#75"><b class="cmd">::math::statistics::plot-tdata</b> <i class="arg">canvas</i> <i class="arg">tdata</i> <i class="arg">tag</i></a></li>
<li><a href="#76"><b class="cmd">::math::statistics::plot-tline</b> <i class="arg">canvas</i> <i class="arg">tdata</i> <i class="arg">tag</i></a></li>
<li><a href="#77"><b class="cmd">::math::statistics::plot-histogram</b> <i class="arg">canvas</i> <i class="arg">counts</i> <i class="arg">limits</i> <i class="arg">tag</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">math::statistics</b> package contains functions and procedures for
basic statistical data analysis, such as:</p>
<ul class="itemized">
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
<dt><a name="1"><b class="cmd">::math::statistics::mean</b> <i class="arg">data</i></a></dt>
<dd><p>Determine the <i class="term">mean</i> value of the given list of data.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of data</p></dd>
</dl></dd>
<dt><a name="2"><b class="cmd">::math::statistics::min</b> <i class="arg">data</i></a></dt>
<dd><p>Determine the <i class="term"><a href="../../../../index.html#key305">minimum</a></i> value of the given list of data.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of data</p></dd>
</dl></dd>
<dt><a name="3"><b class="cmd">::math::statistics::max</b> <i class="arg">data</i></a></dt>
<dd><p>Determine the <i class="term"><a href="../../../../index.html#key306">maximum</a></i> value of the given list of data.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of data</p></dd>
</dl></dd>
<dt><a name="4"><b class="cmd">::math::statistics::number</b> <i class="arg">data</i></a></dt>
<dd><p>Determine the <i class="term">number</i> of non-missing data in the given list</p>
<dl class="arguments">







|





|







245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
<dt><a name="1"><b class="cmd">::math::statistics::mean</b> <i class="arg">data</i></a></dt>
<dd><p>Determine the <i class="term">mean</i> value of the given list of data.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of data</p></dd>
</dl></dd>
<dt><a name="2"><b class="cmd">::math::statistics::min</b> <i class="arg">data</i></a></dt>
<dd><p>Determine the <i class="term"><a href="../../../../index.html#key307">minimum</a></i> value of the given list of data.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of data</p></dd>
</dl></dd>
<dt><a name="3"><b class="cmd">::math::statistics::max</b> <i class="arg">data</i></a></dt>
<dd><p>Determine the <i class="term"><a href="../../../../index.html#key308">maximum</a></i> value of the given list of data.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of data</p></dd>
</dl></dd>
<dt><a name="4"><b class="cmd">::math::statistics::number</b> <i class="arg">data</i></a></dt>
<dd><p>Determine the <i class="term">number</i> of non-missing data in the given list</p>
<dl class="arguments">
322
323
324
325
326
327
328












329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372

373


374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
<dd><p>- List of upper limits (in ascending order) for the
intervals of the histogram.</p></dd>
<dt>list <i class="arg">values</i></dt>
<dd><p>- List of data</p></dd>
<dt>list <i class="arg">weights</i></dt>
<dd><p>- List of weights, one weight per value</p></dd>
</dl></dd>












<dt><a name="12"><b class="cmd">::math::statistics::corr</b> <i class="arg">data1</i> <i class="arg">data2</i></a></dt>
<dd><p>Determine the correlation coefficient between two sets of data.</p>
<dl class="arguments">
<dt>list <i class="arg">data1</i></dt>
<dd><p>- First list of data</p></dd>
<dt>list <i class="arg">data2</i></dt>
<dd><p>- Second list of data</p></dd>
</dl></dd>
<dt><a name="13"><b class="cmd">::math::statistics::interval-mean-stdev</b> <i class="arg">data</i> <i class="arg">confidence</i></a></dt>
<dd><p>Return the interval containing the mean value and one
containing the standard deviation with a certain
level of confidence (assuming a normal distribution)</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of raw data values (small sample)</p></dd>
<dt>float <i class="arg">confidence</i></dt>
<dd><p>- Confidence level (0.95 or 0.99 for instance)</p></dd>
</dl></dd>
<dt><a name="14"><b class="cmd">::math::statistics::t-test-mean</b> <i class="arg">data</i> <i class="arg">est_mean</i> <i class="arg">est_stdev</i> <i class="arg">confidence</i></a></dt>
<dd><p>Test whether the mean value of a sample is in accordance with the
estimated normal distribution with a certain level of confidence.
Returns 1 if the test succeeds or 0 if the mean is unlikely to fit
the given distribution.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of raw data values (small sample)</p></dd>
<dt>float <i class="arg">est_mean</i></dt>
<dd><p>- Estimated mean of the distribution</p></dd>
<dt>float <i class="arg">est_stdev</i></dt>
<dd><p>- Estimated stdev of the distribution</p></dd>
<dt>float <i class="arg">confidence</i></dt>
<dd><p>- Confidence level (0.95 or 0.99 for instance)</p></dd>
</dl></dd>
<dt><a name="15"><b class="cmd">::math::statistics::test-normal</b> <i class="arg">data</i> <i class="arg">confidence</i></a></dt>
<dd><p>Test whether the given data follow a normal distribution
with a certain level of confidence.
Returns 1 if the data are normally distributed within the level of
confidence, returns 0 if not. The underlying test is the Lilliefors
test.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of raw data values</p></dd>
<dt>float <i class="arg">confidence</i></dt>
<dd><p>- Confidence level (one of 0.80, 0.90, 0.95 or 0.99)</p></dd>

</dl></dd>


<dt><a name="16"><b class="cmd">::math::statistics::lillieforsFit</b> <i class="arg">data</i></a></dt>
<dd><p>Returns the goodness of fit to a normal distribution according to
Lilliefors. The higher the number, the more likely the data are indeed
normally distributed. The test requires at least <em>five</em> data
points.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of raw data values</p></dd>
</dl></dd>
<dt><a name="17"><b class="cmd">::math::statistics::quantiles</b> <i class="arg">data</i> <i class="arg">confidence</i></a></dt>
<dd><p>Return the quantiles for a given set of data</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of raw data values</p></dd>
<dt>float <i class="arg">confidence</i></dt>
<dd><p>- Confidence level (0.95 or 0.99 for instance) or a list of confidence levels.</p></dd>
</dl></dd>
<dt><a name="18"><b class="cmd">::math::statistics::quantiles</b> <i class="arg">limits</i> <i class="arg">counts</i> <i class="arg">confidence</i></a></dt>
<dd><p>Return the quantiles based on histogram information (alternative to the
call with two arguments)</p>
<dl class="arguments">
<dt>list <i class="arg">limits</i></dt>
<dd><p>- List of upper limits from histogram</p></dd>
<dt>list <i class="arg">counts</i></dt>
<dd><p>- List of counts for for each interval in histogram</p></dd>
<dt>float <i class="arg">confidence</i></dt>
<dd><p>-  Confidence level (0.95 or 0.99 for instance) or a list of confidence levels.</p></dd>
</dl></dd>
<dt><a name="19"><b class="cmd">::math::statistics::autocorr</b> <i class="arg">data</i></a></dt>
<dd><p>Return the autocorrelation function as a list of values (assuming
equidistance between samples, about 1/2 of the number of raw data)</p>
<p>The correlation is determined in such a way that the first value is
always 1 and all others are equal to or smaller than 1. The number of
values involved will diminish as the &quot;time&quot; (the index in the list of
returned values) increases</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- Raw data for which the autocorrelation must be determined</p></dd>
</dl></dd>
<dt><a name="20"><b class="cmd">::math::statistics::crosscorr</b> <i class="arg">data1</i> <i class="arg">data2</i></a></dt>
<dd><p>Return the cross-correlation function as a list of values (assuming
equidistance between samples, about 1/2 of the number of raw data)</p>
<p>The correlation is determined in such a way that the values can never
exceed 1 in magnitude. The number of values involved will diminish
as the &quot;time&quot; (the index in the list of returned values) increases.</p>
<dl class="arguments">
<dt>list <i class="arg">data1</i></dt>
<dd><p>- First list of data</p></dd>
<dt>list <i class="arg">data2</i></dt>
<dd><p>- Second list of data</p></dd>
</dl></dd>
<dt><a name="21"><b class="cmd">::math::statistics::mean-histogram-limits</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">number</i></a></dt>
<dd><p>Determine reasonable limits based on mean and standard deviation
for a histogram
Convenience function - the result is suitable for the histogram function.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean of the data</p></dd>
<dt>float <i class="arg">stdev</i></dt>
<dd><p>- Standard deviation</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of limits to generate (defaults to 8)</p></dd>
</dl></dd>
<dt><a name="22"><b class="cmd">::math::statistics::minmax-histogram-limits</b> <i class="arg">min</i> <i class="arg">max</i> <i class="arg">number</i></a></dt>
<dd><p>Determine reasonable limits based on a minimum and maximum for a histogram</p>
<p>Convenience function - the result is suitable for the histogram function.</p>
<dl class="arguments">
<dt>float <i class="arg">min</i></dt>
<dd><p>- Expected minimum</p></dd>
<dt>float <i class="arg">max</i></dt>
<dd><p>- Expected maximum</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of limits to generate (defaults to 8)</p></dd>
</dl></dd>
<dt><a name="23"><b class="cmd">::math::statistics::linear-model</b> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">intercept</i></a></dt>
<dd><p>Determine the coefficients for a linear regression between
two series of data (the model: Y = A + B*X). Returns a list of
parameters describing the fit</p>
<dl class="arguments">
<dt>list <i class="arg">xdata</i></dt>
<dd><p>- List of independent data</p></dd>
<dt>list <i class="arg">ydata</i></dt>







>
>
>
>
>
>
>
>
>
>
>
>
|







|









|

|









|
|

|

|

|
|



|
|
>
|
>
>
|








|







|










|










|











|











|










|







324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
<dd><p>- List of upper limits (in ascending order) for the
intervals of the histogram.</p></dd>
<dt>list <i class="arg">values</i></dt>
<dd><p>- List of data</p></dd>
<dt>list <i class="arg">weights</i></dt>
<dd><p>- List of weights, one weight per value</p></dd>
</dl></dd>
<dt><a name="12"><b class="cmd">::math::statistics::histogram-alt</b> <i class="arg">limits</i> <i class="arg">values</i> <span class="opt">?weights?</span></a></dt>
<dd><p>Alternative implementation of the histogram procedure: the open end of the intervals
is at the lower bound instead of the upper bound.</p>
<dl class="arguments">
<dt>list <i class="arg">limits</i></dt>
<dd><p>- List of upper limits (in ascending order) for the
intervals of the histogram.</p></dd>
<dt>list <i class="arg">values</i></dt>
<dd><p>- List of data</p></dd>
<dt>list <i class="arg">weights</i></dt>
<dd><p>- List of weights, one weight per value</p></dd>
</dl></dd>
<dt><a name="13"><b class="cmd">::math::statistics::corr</b> <i class="arg">data1</i> <i class="arg">data2</i></a></dt>
<dd><p>Determine the correlation coefficient between two sets of data.</p>
<dl class="arguments">
<dt>list <i class="arg">data1</i></dt>
<dd><p>- First list of data</p></dd>
<dt>list <i class="arg">data2</i></dt>
<dd><p>- Second list of data</p></dd>
</dl></dd>
<dt><a name="14"><b class="cmd">::math::statistics::interval-mean-stdev</b> <i class="arg">data</i> <i class="arg">confidence</i></a></dt>
<dd><p>Return the interval containing the mean value and one
containing the standard deviation with a certain
level of confidence (assuming a normal distribution)</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of raw data values (small sample)</p></dd>
<dt>float <i class="arg">confidence</i></dt>
<dd><p>- Confidence level (0.95 or 0.99 for instance)</p></dd>
</dl></dd>
<dt><a name="15"><b class="cmd">::math::statistics::t-test-mean</b> <i class="arg">data</i> <i class="arg">est_mean</i> <i class="arg">est_stdev</i> <i class="arg">alpha</i></a></dt>
<dd><p>Test whether the mean value of a sample is in accordance with the
estimated normal distribution with a certain probability.
Returns 1 if the test succeeds or 0 if the mean is unlikely to fit
the given distribution.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of raw data values (small sample)</p></dd>
<dt>float <i class="arg">est_mean</i></dt>
<dd><p>- Estimated mean of the distribution</p></dd>
<dt>float <i class="arg">est_stdev</i></dt>
<dd><p>- Estimated stdev of the distribution</p></dd>
<dt>float <i class="arg">alpha</i></dt>
<dd><p>- Probability level (0.95 or 0.99 for instance)</p></dd>
</dl></dd>
<dt><a name="16"><b class="cmd">::math::statistics::test-normal</b> <i class="arg">data</i> <i class="arg">significance</i></a></dt>
<dd><p>Test whether the given data follow a normal distribution
with a certain level of significance.
Returns 1 if the data are normally distributed within the level of
significance, returns 0 if not. The underlying test is the Lilliefors
test. Smaller values of the significance mean a stricter testing.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of raw data values</p></dd>
<dt>float <i class="arg">significance</i></dt>
<dd><p>- Significance level (one of 0.01, 0.05, 0.10, 0.15 or 0.20). For compatibility
reasons the values &quot;1-significance&quot;, 0.80, 0.85, 0.90, 0.95 or 0.99 are also accepted.</p></dd>
</dl>
<p>Compatibility issue: the original implementation and documentation used the term &quot;confidence&quot; and used a value
1-significance (see ticket 2812473fff). This has been corrected as of version 0.9.3.</p></dd>
<dt><a name="17"><b class="cmd">::math::statistics::lillieforsFit</b> <i class="arg">data</i></a></dt>
<dd><p>Returns the goodness of fit to a normal distribution according to
Lilliefors. The higher the number, the more likely the data are indeed
normally distributed. The test requires at least <em>five</em> data
points.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of raw data values</p></dd>
</dl></dd>
<dt><a name="18"><b class="cmd">::math::statistics::quantiles</b> <i class="arg">data</i> <i class="arg">confidence</i></a></dt>
<dd><p>Return the quantiles for a given set of data</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of raw data values</p></dd>
<dt>float <i class="arg">confidence</i></dt>
<dd><p>- Confidence level (0.95 or 0.99 for instance) or a list of confidence levels.</p></dd>
</dl></dd>
<dt><a name="19"><b class="cmd">::math::statistics::quantiles</b> <i class="arg">limits</i> <i class="arg">counts</i> <i class="arg">confidence</i></a></dt>
<dd><p>Return the quantiles based on histogram information (alternative to the
call with two arguments)</p>
<dl class="arguments">
<dt>list <i class="arg">limits</i></dt>
<dd><p>- List of upper limits from histogram</p></dd>
<dt>list <i class="arg">counts</i></dt>
<dd><p>- List of counts for for each interval in histogram</p></dd>
<dt>float <i class="arg">confidence</i></dt>
<dd><p>-  Confidence level (0.95 or 0.99 for instance) or a list of confidence levels.</p></dd>
</dl></dd>
<dt><a name="20"><b class="cmd">::math::statistics::autocorr</b> <i class="arg">data</i></a></dt>
<dd><p>Return the autocorrelation function as a list of values (assuming
equidistance between samples, about 1/2 of the number of raw data)</p>
<p>The correlation is determined in such a way that the first value is
always 1 and all others are equal to or smaller than 1. The number of
values involved will diminish as the &quot;time&quot; (the index in the list of
returned values) increases</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- Raw data for which the autocorrelation must be determined</p></dd>
</dl></dd>
<dt><a name="21"><b class="cmd">::math::statistics::crosscorr</b> <i class="arg">data1</i> <i class="arg">data2</i></a></dt>
<dd><p>Return the cross-correlation function as a list of values (assuming
equidistance between samples, about 1/2 of the number of raw data)</p>
<p>The correlation is determined in such a way that the values can never
exceed 1 in magnitude. The number of values involved will diminish
as the &quot;time&quot; (the index in the list of returned values) increases.</p>
<dl class="arguments">
<dt>list <i class="arg">data1</i></dt>
<dd><p>- First list of data</p></dd>
<dt>list <i class="arg">data2</i></dt>
<dd><p>- Second list of data</p></dd>
</dl></dd>
<dt><a name="22"><b class="cmd">::math::statistics::mean-histogram-limits</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">number</i></a></dt>
<dd><p>Determine reasonable limits based on mean and standard deviation
for a histogram
Convenience function - the result is suitable for the histogram function.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean of the data</p></dd>
<dt>float <i class="arg">stdev</i></dt>
<dd><p>- Standard deviation</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of limits to generate (defaults to 8)</p></dd>
</dl></dd>
<dt><a name="23"><b class="cmd">::math::statistics::minmax-histogram-limits</b> <i class="arg">min</i> <i class="arg">max</i> <i class="arg">number</i></a></dt>
<dd><p>Determine reasonable limits based on a minimum and maximum for a histogram</p>
<p>Convenience function - the result is suitable for the histogram function.</p>
<dl class="arguments">
<dt>float <i class="arg">min</i></dt>
<dd><p>- Expected minimum</p></dd>
<dt>float <i class="arg">max</i></dt>
<dd><p>- Expected maximum</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of limits to generate (defaults to 8)</p></dd>
</dl></dd>
<dt><a name="24"><b class="cmd">::math::statistics::linear-model</b> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">intercept</i></a></dt>
<dd><p>Determine the coefficients for a linear regression between
two series of data (the model: Y = A + B*X). Returns a list of
parameters describing the fit</p>
<dl class="arguments">
<dt>list <i class="arg">xdata</i></dt>
<dd><p>- List of independent data</p></dd>
<dt>list <i class="arg">ydata</i></dt>
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
<li><p>Number of degrees of freedom df</p></li>
<li><p>Standard error of the intercept A</p></li>
<li><p>Significance level of A</p></li>
<li><p>Standard error of the slope B</p></li>
<li><p>Significance level of B</p></li>
</ul></dd>
</dl></dd>
<dt><a name="24"><b class="cmd">::math::statistics::linear-residuals</b> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">intercept</i></a></dt>
<dd><p>Determine the difference between actual data and predicted from
the linear model.</p>
<p>Returns a list of the differences between the actual data and the
predicted values.</p>
<dl class="arguments">
<dt>list <i class="arg">xdata</i></dt>
<dd><p>- List of independent data</p></dd>
<dt>list <i class="arg">ydata</i></dt>
<dd><p>- List of dependent data to be fitted</p></dd>
<dt>boolean <i class="arg">intercept</i></dt>
<dd><p>- (Optional) compute the intercept (1, default) or fit
to a line through the origin (0)</p></dd>
</dl></dd>
<dt><a name="25"><b class="cmd">::math::statistics::test-2x2</b> <i class="arg">n11</i> <i class="arg">n21</i> <i class="arg">n12</i> <i class="arg">n22</i></a></dt>
<dd><p>Determine if two set of samples, each from a binomial distribution,
differ significantly or not (implying a different parameter).</p>
<p>Returns the &quot;chi-square&quot; value, which can be used to the determine the
significance.</p>
<dl class="arguments">
<dt>int <i class="arg">n11</i></dt>
<dd><p>- Number of outcomes with the first value from the first sample.</p></dd>
<dt>int <i class="arg">n21</i></dt>
<dd><p>- Number of outcomes with the first value from the second sample.</p></dd>
<dt>int <i class="arg">n12</i></dt>
<dd><p>- Number of outcomes with the second value from the first sample.</p></dd>
<dt>int <i class="arg">n22</i></dt>
<dd><p>- Number of outcomes with the second value from the second sample.</p></dd>
</dl></dd>
<dt><a name="26"><b class="cmd">::math::statistics::print-2x2</b> <i class="arg">n11</i> <i class="arg">n21</i> <i class="arg">n12</i> <i class="arg">n22</i></a></dt>
<dd><p>Determine if two set of samples, each from a binomial distribution,
differ significantly or not (implying a different parameter).</p>
<p>Returns a short report, useful in an interactive session.</p>
<dl class="arguments">
<dt>int <i class="arg">n11</i></dt>
<dd><p>- Number of outcomes with the first value from the first sample.</p></dd>
<dt>int <i class="arg">n21</i></dt>
<dd><p>- Number of outcomes with the first value from the second sample.</p></dd>
<dt>int <i class="arg">n12</i></dt>
<dd><p>- Number of outcomes with the second value from the first sample.</p></dd>
<dt>int <i class="arg">n22</i></dt>
<dd><p>- Number of outcomes with the second value from the second sample.</p></dd>
</dl></dd>
<dt><a name="27"><b class="cmd">::math::statistics::control-xbar</b> <i class="arg">data</i> <span class="opt">?nsamples?</span></a></dt>
<dd><p>Determine the control limits for an xbar chart. The number of data
in each subsample defaults to 4. At least 20 subsamples are required.</p>
<p>Returns the mean, the lower limit, the upper limit and the number of
data per subsample.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of observed data</p></dd>
<dt>int <i class="arg">nsamples</i></dt>
<dd><p>- Number of data per subsample</p></dd>
</dl></dd>
<dt><a name="28"><b class="cmd">::math::statistics::control-Rchart</b> <i class="arg">data</i> <span class="opt">?nsamples?</span></a></dt>
<dd><p>Determine the control limits for an R chart. The number of data
in each subsample (nsamples) defaults to 4. At least 20 subsamples are required.</p>
<p>Returns the mean range, the lower limit, the upper limit and the number
of data per subsample.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of observed data</p></dd>
<dt>int <i class="arg">nsamples</i></dt>
<dd><p>- Number of data per subsample</p></dd>
</dl></dd>
<dt><a name="29"><b class="cmd">::math::statistics::test-xbar</b> <i class="arg">control</i> <i class="arg">data</i></a></dt>
<dd><p>Determine if the data exceed the control limits for the xbar chart.</p>
<p>Returns a list of subsamples (their indices) that indeed violate the
limits.</p>
<dl class="arguments">
<dt>list <i class="arg">control</i></dt>
<dd><p>- Control limits as returned by the &quot;control-xbar&quot; procedure</p></dd>
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of observed data</p></dd>
</dl></dd>
<dt><a name="30"><b class="cmd">::math::statistics::test-Rchart</b> <i class="arg">control</i> <i class="arg">data</i></a></dt>
<dd><p>Determine if the data exceed the control limits for the R chart.</p>
<p>Returns a list of subsamples (their indices) that indeed violate the
limits.</p>
<dl class="arguments">
<dt>list <i class="arg">control</i></dt>
<dd><p>- Control limits as returned by the &quot;control-Rchart&quot; procedure</p></dd>
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of observed data</p></dd>
</dl></dd>
<dt><a name="31"><b class="cmd">::math::statistics::test-Kruskal-Wallis</b> <i class="arg">confidence</i> <i class="arg">args</i></a></dt>
<dd><p>Check if the population medians of two or more groups are equal with a
given confidence level, using the Kruskal-Wallis test.</p>
<dl class="arguments">
<dt>float <i class="arg">confidence</i></dt>
<dd><p>- Confidence level to be used (0-1)</p></dd>
<dt>list <i class="arg">args</i></dt>
<dd><p>- Two or more lists of data</p></dd>
</dl></dd>
<dt><a name="32"><b class="cmd">::math::statistics::analyse-Kruskal-Wallis</b> <i class="arg">args</i></a></dt>
<dd><p>Compute the statistical parameters for the Kruskal-Wallis test.
Returns the Kruskal-Wallis statistic and the probability that that
value would occur assuming the medians of the populations are
equal.</p>
<dl class="arguments">
<dt>list <i class="arg">args</i></dt>
<dd><p>- Two or more lists of data</p></dd>
</dl></dd>
<dt><a name="33"><b class="cmd">::math::statistics::group-rank</b> <i class="arg">args</i></a></dt>
<dd><p>Rank the groups of data with respect to the complete set.
Returns a list consisting of the group ID, the value and the rank
(possibly a rational number, in case of ties) for each data item.</p>
<dl class="arguments">
<dt>list <i class="arg">args</i></dt>
<dd><p>- Two or more lists of data</p></dd>
</dl></dd>
<dt><a name="34"><b class="cmd">::math::statistics::test-Wilcoxon</b> <i class="arg">sample_a</i> <i class="arg">sample_b</i></a></dt>
<dd><p>Compute the Wilcoxon test statistic to determine if two samples have the
same median or not. (The statistic can be regarded as standard normal, if the
sample sizes are both larger than 10. Returns the value of this statistic.</p>
<dl class="arguments">
<dt>list <i class="arg">sample_a</i></dt>
<dd><p>- List of data comprising the first sample</p></dd>
<dt>list <i class="arg">sample_b</i></dt>
<dd><p>- List of data comprising the second sample</p></dd>
</dl></dd>
<dt><a name="35"><b class="cmd">::math::statistics::spearman-rank</b> <i class="arg">sample_a</i> <i class="arg">sample_b</i></a></dt>
<dd><p>Return the Spearman rank correlation as an alternative to the ordinary (Pearson's) correlation
coefficient. The two samples should have the same number of data.</p>
<dl class="arguments">
<dt>list <i class="arg">sample_a</i></dt>
<dd><p>- First list of data</p></dd>
<dt>list <i class="arg">sample_b</i></dt>
<dd><p>- Second list of data</p></dd>
</dl></dd>
<dt><a name="36"><b class="cmd">::math::statistics::spearman-rank-extended</b> <i class="arg">sample_a</i> <i class="arg">sample_b</i></a></dt>
<dd><p>Return the Spearman rank correlation as an alternative to the ordinary (Pearson's) correlation
coefficient as well as additional data. The two samples should have the same number of data.
The procedure returns the correlation coefficient, the number of data pairs used and the
z-score, an approximately standard normal statistic, indicating the significance of the correlation.</p>
<dl class="arguments">
<dt>list <i class="arg">sample_a</i></dt>
<dd><p>- First list of data</p></dd>
<dt>list <i class="arg">sample_b</i></dt>
<dd><p>- Second list of data</p></dd>
</dl></dd>
<dt><a name="37"><b class="cmd">::math::statistics::kernel-density</b> <i class="arg">data</i> opt <i class="arg">-option value</i> ...</a></dt>
<dd><p>]
Return the density function based on kernel density estimation. The procedure is controlled by
a small set of options, each of which is given a reasonable default.</p>
<p>The return value consists of three lists: the centres of the bins, the associated probability
density and a list of computational parameters (begin and end of the interval, mean and standard
deviation and the used bandwidth). The computational parameters can be used for further analysis.</p>
<dl class="arguments">







|













|














|













|










|










|









|









|








|








|







|









|








|










|







483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
<li><p>Number of degrees of freedom df</p></li>
<li><p>Standard error of the intercept A</p></li>
<li><p>Significance level of A</p></li>
<li><p>Standard error of the slope B</p></li>
<li><p>Significance level of B</p></li>
</ul></dd>
</dl></dd>
<dt><a name="25"><b class="cmd">::math::statistics::linear-residuals</b> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">intercept</i></a></dt>
<dd><p>Determine the difference between actual data and predicted from
the linear model.</p>
<p>Returns a list of the differences between the actual data and the
predicted values.</p>
<dl class="arguments">
<dt>list <i class="arg">xdata</i></dt>
<dd><p>- List of independent data</p></dd>
<dt>list <i class="arg">ydata</i></dt>
<dd><p>- List of dependent data to be fitted</p></dd>
<dt>boolean <i class="arg">intercept</i></dt>
<dd><p>- (Optional) compute the intercept (1, default) or fit
to a line through the origin (0)</p></dd>
</dl></dd>
<dt><a name="26"><b class="cmd">::math::statistics::test-2x2</b> <i class="arg">n11</i> <i class="arg">n21</i> <i class="arg">n12</i> <i class="arg">n22</i></a></dt>
<dd><p>Determine if two set of samples, each from a binomial distribution,
differ significantly or not (implying a different parameter).</p>
<p>Returns the &quot;chi-square&quot; value, which can be used to the determine the
significance.</p>
<dl class="arguments">
<dt>int <i class="arg">n11</i></dt>
<dd><p>- Number of outcomes with the first value from the first sample.</p></dd>
<dt>int <i class="arg">n21</i></dt>
<dd><p>- Number of outcomes with the first value from the second sample.</p></dd>
<dt>int <i class="arg">n12</i></dt>
<dd><p>- Number of outcomes with the second value from the first sample.</p></dd>
<dt>int <i class="arg">n22</i></dt>
<dd><p>- Number of outcomes with the second value from the second sample.</p></dd>
</dl></dd>
<dt><a name="27"><b class="cmd">::math::statistics::print-2x2</b> <i class="arg">n11</i> <i class="arg">n21</i> <i class="arg">n12</i> <i class="arg">n22</i></a></dt>
<dd><p>Determine if two set of samples, each from a binomial distribution,
differ significantly or not (implying a different parameter).</p>
<p>Returns a short report, useful in an interactive session.</p>
<dl class="arguments">
<dt>int <i class="arg">n11</i></dt>
<dd><p>- Number of outcomes with the first value from the first sample.</p></dd>
<dt>int <i class="arg">n21</i></dt>
<dd><p>- Number of outcomes with the first value from the second sample.</p></dd>
<dt>int <i class="arg">n12</i></dt>
<dd><p>- Number of outcomes with the second value from the first sample.</p></dd>
<dt>int <i class="arg">n22</i></dt>
<dd><p>- Number of outcomes with the second value from the second sample.</p></dd>
</dl></dd>
<dt><a name="28"><b class="cmd">::math::statistics::control-xbar</b> <i class="arg">data</i> <span class="opt">?nsamples?</span></a></dt>
<dd><p>Determine the control limits for an xbar chart. The number of data
in each subsample defaults to 4. At least 20 subsamples are required.</p>
<p>Returns the mean, the lower limit, the upper limit and the number of
data per subsample.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of observed data</p></dd>
<dt>int <i class="arg">nsamples</i></dt>
<dd><p>- Number of data per subsample</p></dd>
</dl></dd>
<dt><a name="29"><b class="cmd">::math::statistics::control-Rchart</b> <i class="arg">data</i> <span class="opt">?nsamples?</span></a></dt>
<dd><p>Determine the control limits for an R chart. The number of data
in each subsample (nsamples) defaults to 4. At least 20 subsamples are required.</p>
<p>Returns the mean range, the lower limit, the upper limit and the number
of data per subsample.</p>
<dl class="arguments">
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of observed data</p></dd>
<dt>int <i class="arg">nsamples</i></dt>
<dd><p>- Number of data per subsample</p></dd>
</dl></dd>
<dt><a name="30"><b class="cmd">::math::statistics::test-xbar</b> <i class="arg">control</i> <i class="arg">data</i></a></dt>
<dd><p>Determine if the data exceed the control limits for the xbar chart.</p>
<p>Returns a list of subsamples (their indices) that indeed violate the
limits.</p>
<dl class="arguments">
<dt>list <i class="arg">control</i></dt>
<dd><p>- Control limits as returned by the &quot;control-xbar&quot; procedure</p></dd>
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of observed data</p></dd>
</dl></dd>
<dt><a name="31"><b class="cmd">::math::statistics::test-Rchart</b> <i class="arg">control</i> <i class="arg">data</i></a></dt>
<dd><p>Determine if the data exceed the control limits for the R chart.</p>
<p>Returns a list of subsamples (their indices) that indeed violate the
limits.</p>
<dl class="arguments">
<dt>list <i class="arg">control</i></dt>
<dd><p>- Control limits as returned by the &quot;control-Rchart&quot; procedure</p></dd>
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of observed data</p></dd>
</dl></dd>
<dt><a name="32"><b class="cmd">::math::statistics::test-Kruskal-Wallis</b> <i class="arg">confidence</i> <i class="arg">args</i></a></dt>
<dd><p>Check if the population medians of two or more groups are equal with a
given confidence level, using the Kruskal-Wallis test.</p>
<dl class="arguments">
<dt>float <i class="arg">confidence</i></dt>
<dd><p>- Confidence level to be used (0-1)</p></dd>
<dt>list <i class="arg">args</i></dt>
<dd><p>- Two or more lists of data</p></dd>
</dl></dd>
<dt><a name="33"><b class="cmd">::math::statistics::analyse-Kruskal-Wallis</b> <i class="arg">args</i></a></dt>
<dd><p>Compute the statistical parameters for the Kruskal-Wallis test.
Returns the Kruskal-Wallis statistic and the probability that that
value would occur assuming the medians of the populations are
equal.</p>
<dl class="arguments">
<dt>list <i class="arg">args</i></dt>
<dd><p>- Two or more lists of data</p></dd>
</dl></dd>
<dt><a name="34"><b class="cmd">::math::statistics::group-rank</b> <i class="arg">args</i></a></dt>
<dd><p>Rank the groups of data with respect to the complete set.
Returns a list consisting of the group ID, the value and the rank
(possibly a rational number, in case of ties) for each data item.</p>
<dl class="arguments">
<dt>list <i class="arg">args</i></dt>
<dd><p>- Two or more lists of data</p></dd>
</dl></dd>
<dt><a name="35"><b class="cmd">::math::statistics::test-Wilcoxon</b> <i class="arg">sample_a</i> <i class="arg">sample_b</i></a></dt>
<dd><p>Compute the Wilcoxon test statistic to determine if two samples have the
same median or not. (The statistic can be regarded as standard normal, if the
sample sizes are both larger than 10. Returns the value of this statistic.</p>
<dl class="arguments">
<dt>list <i class="arg">sample_a</i></dt>
<dd><p>- List of data comprising the first sample</p></dd>
<dt>list <i class="arg">sample_b</i></dt>
<dd><p>- List of data comprising the second sample</p></dd>
</dl></dd>
<dt><a name="36"><b class="cmd">::math::statistics::spearman-rank</b> <i class="arg">sample_a</i> <i class="arg">sample_b</i></a></dt>
<dd><p>Return the Spearman rank correlation as an alternative to the ordinary (Pearson's) correlation
coefficient. The two samples should have the same number of data.</p>
<dl class="arguments">
<dt>list <i class="arg">sample_a</i></dt>
<dd><p>- First list of data</p></dd>
<dt>list <i class="arg">sample_b</i></dt>
<dd><p>- Second list of data</p></dd>
</dl></dd>
<dt><a name="37"><b class="cmd">::math::statistics::spearman-rank-extended</b> <i class="arg">sample_a</i> <i class="arg">sample_b</i></a></dt>
<dd><p>Return the Spearman rank correlation as an alternative to the ordinary (Pearson's) correlation
coefficient as well as additional data. The two samples should have the same number of data.
The procedure returns the correlation coefficient, the number of data pairs used and the
z-score, an approximately standard normal statistic, indicating the significance of the correlation.</p>
<dl class="arguments">
<dt>list <i class="arg">sample_a</i></dt>
<dd><p>- First list of data</p></dd>
<dt>list <i class="arg">sample_b</i></dt>
<dd><p>- Second list of data</p></dd>
</dl></dd>
<dt><a name="38"><b class="cmd">::math::statistics::kernel-density</b> <i class="arg">data</i> opt <i class="arg">-option value</i> ...</a></dt>
<dd><p>]
Return the density function based on kernel density estimation. The procedure is controlled by
a small set of options, each of which is given a reasonable default.</p>
<p>The return value consists of three lists: the centres of the bins, the associated probability
density and a list of computational parameters (begin and end of the interval, mean and standard
deviation and the used bandwidth). The computational parameters can be used for further analysis.</p>
<dl class="arguments">
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
<p>In addition to these two, it provides a procedure (tstat)
for calculating the value of the t-statistic for the specified number of
degrees of freedom that is required to demonstrate a given level of
significance.</p>
<p>Note: These procedures depend on the math::linearalgebra package.</p>
<p><em>Description of the procedures</em></p>
<dl class="definitions">
<dt><a name="38"><b class="cmd">::math::statistics::tstat</b> <i class="arg">dof</i> <span class="opt">?alpha?</span></a></dt>
<dd><p>Returns the value of the t-distribution t* satisfying</p>
<pre class="example">
    P(t*)  =  1 - alpha/2
    P(-t*) =  alpha/2
</pre>
<p>for the number of degrees of freedom dof.</p>
<p>Given a sample of normally-distributed data x, with an







|







665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
<p>In addition to these two, it provides a procedure (tstat)
for calculating the value of the t-statistic for the specified number of
degrees of freedom that is required to demonstrate a given level of
significance.</p>
<p>Note: These procedures depend on the math::linearalgebra package.</p>
<p><em>Description of the procedures</em></p>
<dl class="definitions">
<dt><a name="39"><b class="cmd">::math::statistics::tstat</b> <i class="arg">dof</i> <span class="opt">?alpha?</span></a></dt>
<dd><p>Returns the value of the t-distribution t* satisfying</p>
<pre class="example">
    P(t*)  =  1 - alpha/2
    P(-t*) =  alpha/2
</pre>
<p>for the number of degrees of freedom dof.</p>
<p>Given a sample of normally-distributed data x, with an
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
the given confidence level.</p>
<dl class="arguments">
<dt>int <i class="arg">dof</i></dt>
<dd><p>Number of degrees of freedom</p></dd>
<dt>float <i class="arg">alpha</i></dt>
<dd><p>Confidence level of the t-distribution. Defaults to 0.05.</p></dd>
</dl></dd>
<dt><a name="39"><b class="cmd">::math::statistics::mv-wls</b> <i class="arg">wt1</i> <i class="arg">weights_and_values</i></a></dt>
<dd><p>Carries out a weighted least squares linear regression for
the data points provided, with weights assigned to each point.</p>
<p>The linear model is of the form</p>
<pre class="example">
    y = b0 + b1 * x1 + b2 * x2 ... + bN * xN + error
</pre>
<p>and each point satisfies</p>







|







689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
the given confidence level.</p>
<dl class="arguments">
<dt>int <i class="arg">dof</i></dt>
<dd><p>Number of degrees of freedom</p></dd>
<dt>float <i class="arg">alpha</i></dt>
<dd><p>Confidence level of the t-distribution. Defaults to 0.05.</p></dd>
</dl></dd>
<dt><a name="40"><b class="cmd">::math::statistics::mv-wls</b> <i class="arg">wt1</i> <i class="arg">weights_and_values</i></a></dt>
<dd><p>Carries out a weighted least squares linear regression for
the data points provided, with weights assigned to each point.</p>
<p>The linear model is of the form</p>
<pre class="example">
    y = b0 + b1 * x1 + b2 * x2 ... + bN * xN + error
</pre>
<p>and each point satisfies</p>
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
<dt>list <i class="arg">weights_and_values</i></dt>
<dd><p>A list consisting of: the weight for the first observation, the data
for the first observation (as a sublist), the weight for the second
observation (as a sublist) and so on. The sublists of data are organised
as lists of the value of the dependent variable y and the independent
variables x1, x2 to xN.</p></dd>
</dl></dd>
<dt><a name="40"><b class="cmd">::math::statistics::mv-ols</b> <i class="arg">values</i></a></dt>
<dd><p>Carries out an ordinary least squares linear regression for
the data points provided.</p>
<p>This procedure simply calls ::mvlinreg::wls with the weights
set to 1.0, and returns the same information.</p></dd>
</dl>
<p><em>Example of the use:</em></p>
<pre class="example">







|







719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
<dt>list <i class="arg">weights_and_values</i></dt>
<dd><p>A list consisting of: the weight for the first observation, the data
for the first observation (as a sublist), the weight for the second
observation (as a sublist) and so on. The sublists of data are organised
as lists of the value of the dependent variable y and the independent
variables x1, x2 to xN.</p></dd>
</dl></dd>
<dt><a name="41"><b class="cmd">::math::statistics::mv-ols</b> <i class="arg">values</i></a></dt>
<dd><p>Carries out an ordinary least squares linear regression for
the data points provided.</p>
<p>This procedure simply calls ::mvlinreg::wls with the weights
set to 1.0, and returns the same information.</p></dd>
</dl>
<p><em>Example of the use:</em></p>
<pre class="example">
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
<li><p>The cumulative density (cdf-*)</p></li>
<li><p>Quantiles for the given distribution (quantiles-*)</p></li>
<li><p>Histograms for the given distribution (histogram-*)</p></li>
<li><p>List of random values with the given distribution (random-*)</p></li>
</ul>
<p>The following procedures have been implemented:</p>
<dl class="definitions">
<dt><a name="41"><b class="cmd">::math::statistics::pdf-normal</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for a normal distribution with
given mean and standard deviation.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean value of the distribution</p></dd>
<dt>float <i class="arg">stdev</i></dt>
<dd><p>- Standard deviation of the distribution</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="42"><b class="cmd">::math::statistics::pdf-exponential</b> <i class="arg">mean</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for an exponential
distribution with given mean.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean value of the distribution</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="43"><b class="cmd">::math::statistics::pdf-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for a uniform
distribution with given extremes.</p>
<dl class="arguments">
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Minimum value of the distribution</p></dd>
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Maximum value of the distribution</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="44"><b class="cmd">::math::statistics::pdf-gamma</b> <i class="arg">alpha</i> <i class="arg">beta</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for a Gamma
distribution with given shape and rate parameters</p>
<dl class="arguments">
<dt>float <i class="arg">alpha</i></dt>
<dd><p>- Shape parameter</p></dd>
<dt>float <i class="arg">beta</i></dt>
<dd><p>- Rate parameter</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="45"><b class="cmd">::math::statistics::pdf-poisson</b> <i class="arg">mu</i> <i class="arg">k</i></a></dt>
<dd><p>Return the probability of a given number of occurrences in the same
interval (k) for a Poisson distribution with given mean (mu)</p>
<dl class="arguments">
<dt>float <i class="arg">mu</i></dt>
<dd><p>- Mean number of occurrences</p></dd>
<dt>int <i class="arg">k</i></dt>
<dd><p>- Number of occurences</p></dd>
</dl></dd>
<dt><a name="46"><b class="cmd">::math::statistics::pdf-chisquare</b> <i class="arg">df</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for a chi square
distribution with given degrees of freedom</p>
<dl class="arguments">
<dt>float <i class="arg">df</i></dt>
<dd><p>- Degrees of freedom</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="47"><b class="cmd">::math::statistics::pdf-student-t</b> <i class="arg">df</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for a Student's t
distribution with given degrees of freedom</p>
<dl class="arguments">
<dt>float <i class="arg">df</i></dt>
<dd><p>- Degrees of freedom</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="48"><b class="cmd">::math::statistics::pdf-beta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for a Beta
distribution with given shape parameters</p>
<dl class="arguments">
<dt>float <i class="arg">a</i></dt>
<dd><p>- First shape parameter</p></dd>
<dt>float <i class="arg">b</i></dt>
<dd><p>- First shape parameter</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="49"><b class="cmd">::math::statistics::cdf-normal</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">value</i></a></dt>
<dd><p>Return the cumulative probability of a given value for a normal
distribution with given mean and standard deviation, that is the
probability for values up to the given one.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean value of the distribution</p></dd>
<dt>float <i class="arg">stdev</i></dt>
<dd><p>- Standard deviation of the distribution</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="50"><b class="cmd">::math::statistics::cdf-exponential</b> <i class="arg">mean</i> <i class="arg">value</i></a></dt>
<dd><p>Return the cumulative probability of a given value for an exponential
distribution with given mean.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean value of the distribution</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="51"><b class="cmd">::math::statistics::cdf-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">value</i></a></dt>
<dd><p>Return the cumulative probability of a given value for a uniform
distribution with given extremes.</p>
<dl class="arguments">
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Minimum value of the distribution</p></dd>
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Maximum value of the distribution</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="52"><b class="cmd">::math::statistics::cdf-students-t</b> <i class="arg">degrees</i> <i class="arg">value</i></a></dt>
<dd><p>Return the cumulative probability of a given value for a Student's t
distribution with given number of degrees.</p>
<dl class="arguments">
<dt>int <i class="arg">degrees</i></dt>
<dd><p>- Number of degrees of freedom</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="53"><b class="cmd">::math::statistics::cdf-gamma</b> <i class="arg">alpha</i> <i class="arg">beta</i> <i class="arg">value</i></a></dt>
<dd><p>Return the cumulative probability of a given value for a Gamma
distribution with given shape and rate parameters</p>
<dl class="arguments">
<dt>float <i class="arg">alpha</i></dt>
<dd><p>- Shape parameter</p></dd>
<dt>float <i class="arg">beta</i></dt>
<dd><p>- Rate parameter</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the cumulative probability is required</p></dd>
</dl></dd>
<dt><a name="54"><b class="cmd">::math::statistics::cdf-poisson</b> <i class="arg">mu</i> <i class="arg">k</i></a></dt>
<dd><p>Return the cumulative probability of a given number of occurrences in
the same interval (k) for a Poisson distribution with given mean (mu)</p>
<dl class="arguments">
<dt>float <i class="arg">mu</i></dt>
<dd><p>- Mean number of occurrences</p></dd>
<dt>int <i class="arg">k</i></dt>
<dd><p>- Number of occurences</p></dd>
</dl></dd>
<dt><a name="55"><b class="cmd">::math::statistics::cdf-beta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">value</i></a></dt>
<dd><p>Return the cumulative probability of a given value for a Beta
distribution with given shape parameters</p>
<dl class="arguments">
<dt>float <i class="arg">a</i></dt>
<dd><p>- First shape parameter</p></dd>
<dt>float <i class="arg">b</i></dt>
<dd><p>- First shape parameter</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="56"><b class="cmd">::math::statistics::random-normal</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying a normal
distribution with given mean and standard deviation.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean value of the distribution</p></dd>
<dt>float <i class="arg">stdev</i></dt>
<dd><p>- Standard deviation of the distribution</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="57"><b class="cmd">::math::statistics::random-exponential</b> <i class="arg">mean</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying an exponential
distribution with given mean.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean value of the distribution</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="58"><b class="cmd">::math::statistics::random-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying a uniform
distribution with given extremes.</p>
<dl class="arguments">
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Minimum value of the distribution</p></dd>
<dt>float <i class="arg">xmax</i></dt>
<dd><p>- Maximum value of the distribution</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="59"><b class="cmd">::math::statistics::random-gamma</b> <i class="arg">alpha</i> <i class="arg">beta</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying
a Gamma distribution with given shape and rate parameters</p>
<dl class="arguments">
<dt>float <i class="arg">alpha</i></dt>
<dd><p>- Shape parameter</p></dd>
<dt>float <i class="arg">beta</i></dt>
<dd><p>- Rate parameter</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="60"><b class="cmd">::math::statistics::random-poisson</b> <i class="arg">mu</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying
a Poisson distribution with given mean</p>
<dl class="arguments">
<dt>float <i class="arg">mu</i></dt>
<dd><p>- Mean of the distribution</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="61"><b class="cmd">::math::statistics::random-chisquare</b> <i class="arg">df</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying
a chi square distribution with given degrees of freedom</p>
<dl class="arguments">
<dt>float <i class="arg">df</i></dt>
<dd><p>- Degrees of freedom</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="62"><b class="cmd">::math::statistics::random-student-t</b> <i class="arg">df</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying
a Student's t distribution with given degrees of freedom</p>
<dl class="arguments">
<dt>float <i class="arg">df</i></dt>
<dd><p>- Degrees of freedom</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="63"><b class="cmd">::math::statistics::random-beta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying
a Beta distribution with given shape parameters</p>
<dl class="arguments">
<dt>float <i class="arg">a</i></dt>
<dd><p>- First shape parameter</p></dd>
<dt>float <i class="arg">b</i></dt>
<dd><p>- Second shape parameter</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="64"><b class="cmd">::math::statistics::histogram-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">limits</i> <i class="arg">number</i></a></dt>
<dd><p>Return the expected histogram for a uniform distribution.</p>
<dl class="arguments">
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Minimum value of the distribution</p></dd>
<dt>float <i class="arg">xmax</i></dt>
<dd><p>- Maximum value of the distribution</p></dd>
<dt>list <i class="arg">limits</i></dt>
<dd><p>- Upper limits for the buckets in the histogram</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Total number of &quot;observations&quot; in the histogram</p></dd>
</dl></dd>
<dt><a name="65"><b class="cmd">::math::statistics::incompleteGamma</b> <i class="arg">x</i> <i class="arg">p</i> <span class="opt">?tol?</span></a></dt>
<dd><p>Evaluate the incomplete Gamma integral</p>
<pre class="example">
                    1       / x               p-1
      P(p,x) =  --------   |   dt exp(-t) * t
                Gamma(p)  / 0
</pre>
<dl class="arguments">
<dt>float <i class="arg">x</i></dt>
<dd><p>- Value of x (limit of the integral)</p></dd>
<dt>float <i class="arg">p</i></dt>
<dd><p>- Value of p in the integrand</p></dd>
<dt>float <i class="arg">tol</i></dt>
<dd><p>- Required tolerance (default: 1.0e-9)</p></dd>
</dl></dd>
<dt><a name="66"><b class="cmd">::math::statistics::incompleteBeta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">x</i> <span class="opt">?tol?</span></a></dt>
<dd><p>Evaluate the incomplete Beta integral</p>
<dl class="arguments">
<dt>float <i class="arg">a</i></dt>
<dd><p>- First shape parameter</p></dd>
<dt>float <i class="arg">b</i></dt>
<dd><p>- Second shape parameter</p></dd>
<dt>float <i class="arg">x</i></dt>
<dd><p>- Value of x (limit of the integral)</p></dd>
<dt>float <i class="arg">tol</i></dt>
<dd><p>- Required tolerance (default: 1.0e-9)</p></dd>
</dl></dd>
</dl>
<p>TO DO: more function descriptions to be added</p>
</div>
<div id="section5" class="section"><h2><a name="section5">DATA MANIPULATION</a></h2>
<p>The data manipulation procedures act on lists or lists of lists:</p>
<dl class="definitions">
<dt><a name="67"><b class="cmd">::math::statistics::filter</b> <i class="arg">varname</i> <i class="arg">data</i> <i class="arg">expression</i></a></dt>
<dd><p>Return a list consisting of the data for which the logical
expression is true (this command works analogously to the command <b class="cmd"><a href="../../../../index.html#key216">foreach</a></b>).</p>
<dl class="arguments">
<dt>string <i class="arg">varname</i></dt>
<dd><p>- Name of the variable used in the expression</p></dd>
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of data</p></dd>
<dt>string <i class="arg">expression</i></dt>
<dd><p>- Logical expression using the variable name</p></dd>
</dl></dd>
<dt><a name="68"><b class="cmd">::math::statistics::map</b> <i class="arg">varname</i> <i class="arg">data</i> <i class="arg">expression</i></a></dt>
<dd><p>Return a list consisting of the data that are transformed via the
expression.</p>
<dl class="arguments">
<dt>string <i class="arg">varname</i></dt>
<dd><p>- Name of the variable used in the expression</p></dd>
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of data</p></dd>
<dt>string <i class="arg">expression</i></dt>
<dd><p>- Expression to be used to transform (map) the data</p></dd>
</dl></dd>
<dt><a name="69"><b class="cmd">::math::statistics::samplescount</b> <i class="arg">varname</i> <i class="arg">list</i> <i class="arg">expression</i></a></dt>
<dd><p>Return a list consisting of the <i class="term">counts</i> of all data in the
sublists of the &quot;list&quot; argument for which the expression is true.</p>
<dl class="arguments">
<dt>string <i class="arg">varname</i></dt>
<dd><p>- Name of the variable used in the expression</p></dd>
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of sublists, each containing the data</p></dd>
<dt>string <i class="arg">expression</i></dt>
<dd><p>- Logical expression to test the data (defaults to
&quot;true&quot;).</p></dd>
</dl></dd>
<dt><a name="70"><b class="cmd">::math::statistics::subdivide</b></a></dt>
<dd><p>Routine <em>PM</em> - not implemented yet</p></dd>
</dl>
</div>
<div id="section6" class="section"><h2><a name="section6">PLOT PROCEDURES</a></h2>
<p>The following simple plotting procedures are available:</p>
<dl class="definitions">
<dt><a name="71"><b class="cmd">::math::statistics::plot-scale</b> <i class="arg">canvas</i> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">ymin</i> <i class="arg">ymax</i></a></dt>
<dd><p>Set the scale for a plot in the given canvas. All plot routines expect
this function to be called first. There is no automatic scaling
provided.</p>
<dl class="arguments">
<dt>widget <i class="arg">canvas</i></dt>
<dd><p>- Canvas widget to use</p></dd>
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Minimum x value</p></dd>
<dt>float <i class="arg">xmax</i></dt>
<dd><p>- Maximum x value</p></dd>
<dt>float <i class="arg">ymin</i></dt>
<dd><p>- Minimum y value</p></dd>
<dt>float <i class="arg">ymax</i></dt>
<dd><p>- Maximum y value</p></dd>
</dl></dd>
<dt><a name="72"><b class="cmd">::math::statistics::plot-xydata</b> <i class="arg">canvas</i> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">tag</i></a></dt>
<dd><p>Create a simple XY plot in the given canvas - the data are
shown as a collection of dots. The tag can be used to manipulate the
appearance.</p>
<dl class="arguments">
<dt>widget <i class="arg">canvas</i></dt>
<dd><p>- Canvas widget to use</p></dd>
<dt>float <i class="arg">xdata</i></dt>
<dd><p>- Series of independent data</p></dd>
<dt>float <i class="arg">ydata</i></dt>
<dd><p>- Series of dependent data</p></dd>
<dt>string <i class="arg">tag</i></dt>
<dd><p>- Tag to give to the plotted data (defaults to xyplot)</p></dd>
</dl></dd>
<dt><a name="73"><b class="cmd">::math::statistics::plot-xyline</b> <i class="arg">canvas</i> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">tag</i></a></dt>
<dd><p>Create a simple XY plot in the given canvas - the data are
shown as a line through the data points. The tag can be used to
manipulate the appearance.</p>
<dl class="arguments">
<dt>widget <i class="arg">canvas</i></dt>
<dd><p>- Canvas widget to use</p></dd>
<dt>list <i class="arg">xdata</i></dt>
<dd><p>- Series of independent data</p></dd>
<dt>list <i class="arg">ydata</i></dt>
<dd><p>- Series of dependent data</p></dd>
<dt>string <i class="arg">tag</i></dt>
<dd><p>- Tag to give to the plotted data (defaults to xyplot)</p></dd>
</dl></dd>
<dt><a name="74"><b class="cmd">::math::statistics::plot-tdata</b> <i class="arg">canvas</i> <i class="arg">tdata</i> <i class="arg">tag</i></a></dt>
<dd><p>Create a simple XY plot in the given canvas - the data are
shown as a collection of dots. The horizontal coordinate is equal to the
index. The tag can be used to manipulate the appearance.
This type of presentation is suitable for autocorrelation functions for
instance or for inspecting the time-dependent behaviour.</p>
<dl class="arguments">
<dt>widget <i class="arg">canvas</i></dt>
<dd><p>- Canvas widget to use</p></dd>
<dt>list <i class="arg">tdata</i></dt>
<dd><p>- Series of dependent data</p></dd>
<dt>string <i class="arg">tag</i></dt>
<dd><p>- Tag to give to the plotted data (defaults to xyplot)</p></dd>
</dl></dd>
<dt><a name="75"><b class="cmd">::math::statistics::plot-tline</b> <i class="arg">canvas</i> <i class="arg">tdata</i> <i class="arg">tag</i></a></dt>
<dd><p>Create a simple XY plot in the given canvas - the data are
shown as a line. See plot-tdata for an explanation.</p>
<dl class="arguments">
<dt>widget <i class="arg">canvas</i></dt>
<dd><p>- Canvas widget to use</p></dd>
<dt>list <i class="arg">tdata</i></dt>
<dd><p>- Series of dependent data</p></dd>
<dt>string <i class="arg">tag</i></dt>
<dd><p>- Tag to give to the plotted data (defaults to xyplot)</p></dd>
</dl></dd>
<dt><a name="76"><b class="cmd">::math::statistics::plot-histogram</b> <i class="arg">canvas</i> <i class="arg">counts</i> <i class="arg">limits</i> <i class="arg">tag</i></a></dt>
<dd><p>Create a simple histogram in the given canvas</p>
<dl class="arguments">
<dt>widget <i class="arg">canvas</i></dt>
<dd><p>- Canvas widget to use</p></dd>
<dt>list <i class="arg">counts</i></dt>
<dd><p>- Series of bucket counts</p></dd>
<dt>list <i class="arg">limits</i></dt>







|










|








|










|










|








|








|








|










|











|








|










|








|










|








|






|



|










|








|










|










|








|








|








|










|











|














|

















|










|










|











|






|















|













|













|













|










|







778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
<li><p>The cumulative density (cdf-*)</p></li>
<li><p>Quantiles for the given distribution (quantiles-*)</p></li>
<li><p>Histograms for the given distribution (histogram-*)</p></li>
<li><p>List of random values with the given distribution (random-*)</p></li>
</ul>
<p>The following procedures have been implemented:</p>
<dl class="definitions">
<dt><a name="42"><b class="cmd">::math::statistics::pdf-normal</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for a normal distribution with
given mean and standard deviation.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean value of the distribution</p></dd>
<dt>float <i class="arg">stdev</i></dt>
<dd><p>- Standard deviation of the distribution</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="43"><b class="cmd">::math::statistics::pdf-exponential</b> <i class="arg">mean</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for an exponential
distribution with given mean.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean value of the distribution</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="44"><b class="cmd">::math::statistics::pdf-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for a uniform
distribution with given extremes.</p>
<dl class="arguments">
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Minimum value of the distribution</p></dd>
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Maximum value of the distribution</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="45"><b class="cmd">::math::statistics::pdf-gamma</b> <i class="arg">alpha</i> <i class="arg">beta</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for a Gamma
distribution with given shape and rate parameters</p>
<dl class="arguments">
<dt>float <i class="arg">alpha</i></dt>
<dd><p>- Shape parameter</p></dd>
<dt>float <i class="arg">beta</i></dt>
<dd><p>- Rate parameter</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="46"><b class="cmd">::math::statistics::pdf-poisson</b> <i class="arg">mu</i> <i class="arg">k</i></a></dt>
<dd><p>Return the probability of a given number of occurrences in the same
interval (k) for a Poisson distribution with given mean (mu)</p>
<dl class="arguments">
<dt>float <i class="arg">mu</i></dt>
<dd><p>- Mean number of occurrences</p></dd>
<dt>int <i class="arg">k</i></dt>
<dd><p>- Number of occurences</p></dd>
</dl></dd>
<dt><a name="47"><b class="cmd">::math::statistics::pdf-chisquare</b> <i class="arg">df</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for a chi square
distribution with given degrees of freedom</p>
<dl class="arguments">
<dt>float <i class="arg">df</i></dt>
<dd><p>- Degrees of freedom</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="48"><b class="cmd">::math::statistics::pdf-student-t</b> <i class="arg">df</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for a Student's t
distribution with given degrees of freedom</p>
<dl class="arguments">
<dt>float <i class="arg">df</i></dt>
<dd><p>- Degrees of freedom</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="49"><b class="cmd">::math::statistics::pdf-beta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">value</i></a></dt>
<dd><p>Return the probability of a given value for a Beta
distribution with given shape parameters</p>
<dl class="arguments">
<dt>float <i class="arg">a</i></dt>
<dd><p>- First shape parameter</p></dd>
<dt>float <i class="arg">b</i></dt>
<dd><p>- First shape parameter</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="50"><b class="cmd">::math::statistics::cdf-normal</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">value</i></a></dt>
<dd><p>Return the cumulative probability of a given value for a normal
distribution with given mean and standard deviation, that is the
probability for values up to the given one.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean value of the distribution</p></dd>
<dt>float <i class="arg">stdev</i></dt>
<dd><p>- Standard deviation of the distribution</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="51"><b class="cmd">::math::statistics::cdf-exponential</b> <i class="arg">mean</i> <i class="arg">value</i></a></dt>
<dd><p>Return the cumulative probability of a given value for an exponential
distribution with given mean.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean value of the distribution</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="52"><b class="cmd">::math::statistics::cdf-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">value</i></a></dt>
<dd><p>Return the cumulative probability of a given value for a uniform
distribution with given extremes.</p>
<dl class="arguments">
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Minimum value of the distribution</p></dd>
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Maximum value of the distribution</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="53"><b class="cmd">::math::statistics::cdf-students-t</b> <i class="arg">degrees</i> <i class="arg">value</i></a></dt>
<dd><p>Return the cumulative probability of a given value for a Student's t
distribution with given number of degrees.</p>
<dl class="arguments">
<dt>int <i class="arg">degrees</i></dt>
<dd><p>- Number of degrees of freedom</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="54"><b class="cmd">::math::statistics::cdf-gamma</b> <i class="arg">alpha</i> <i class="arg">beta</i> <i class="arg">value</i></a></dt>
<dd><p>Return the cumulative probability of a given value for a Gamma
distribution with given shape and rate parameters</p>
<dl class="arguments">
<dt>float <i class="arg">alpha</i></dt>
<dd><p>- Shape parameter</p></dd>
<dt>float <i class="arg">beta</i></dt>
<dd><p>- Rate parameter</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the cumulative probability is required</p></dd>
</dl></dd>
<dt><a name="55"><b class="cmd">::math::statistics::cdf-poisson</b> <i class="arg">mu</i> <i class="arg">k</i></a></dt>
<dd><p>Return the cumulative probability of a given number of occurrences in
the same interval (k) for a Poisson distribution with given mean (mu)</p>
<dl class="arguments">
<dt>float <i class="arg">mu</i></dt>
<dd><p>- Mean number of occurrences</p></dd>
<dt>int <i class="arg">k</i></dt>
<dd><p>- Number of occurences</p></dd>
</dl></dd>
<dt><a name="56"><b class="cmd">::math::statistics::cdf-beta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">value</i></a></dt>
<dd><p>Return the cumulative probability of a given value for a Beta
distribution with given shape parameters</p>
<dl class="arguments">
<dt>float <i class="arg">a</i></dt>
<dd><p>- First shape parameter</p></dd>
<dt>float <i class="arg">b</i></dt>
<dd><p>- Second shape parameter</p></dd>
<dt>float <i class="arg">value</i></dt>
<dd><p>- Value for which the probability is required</p></dd>
</dl></dd>
<dt><a name="57"><b class="cmd">::math::statistics::random-normal</b> <i class="arg">mean</i> <i class="arg">stdev</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying a normal
distribution with given mean and standard deviation.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean value of the distribution</p></dd>
<dt>float <i class="arg">stdev</i></dt>
<dd><p>- Standard deviation of the distribution</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="58"><b class="cmd">::math::statistics::random-exponential</b> <i class="arg">mean</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying an exponential
distribution with given mean.</p>
<dl class="arguments">
<dt>float <i class="arg">mean</i></dt>
<dd><p>- Mean value of the distribution</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="59"><b class="cmd">::math::statistics::random-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying a uniform
distribution with given extremes.</p>
<dl class="arguments">
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Minimum value of the distribution</p></dd>
<dt>float <i class="arg">xmax</i></dt>
<dd><p>- Maximum value of the distribution</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="60"><b class="cmd">::math::statistics::random-gamma</b> <i class="arg">alpha</i> <i class="arg">beta</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying
a Gamma distribution with given shape and rate parameters</p>
<dl class="arguments">
<dt>float <i class="arg">alpha</i></dt>
<dd><p>- Shape parameter</p></dd>
<dt>float <i class="arg">beta</i></dt>
<dd><p>- Rate parameter</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="61"><b class="cmd">::math::statistics::random-poisson</b> <i class="arg">mu</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying
a Poisson distribution with given mean</p>
<dl class="arguments">
<dt>float <i class="arg">mu</i></dt>
<dd><p>- Mean of the distribution</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="62"><b class="cmd">::math::statistics::random-chisquare</b> <i class="arg">df</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying
a chi square distribution with given degrees of freedom</p>
<dl class="arguments">
<dt>float <i class="arg">df</i></dt>
<dd><p>- Degrees of freedom</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="63"><b class="cmd">::math::statistics::random-student-t</b> <i class="arg">df</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying
a Student's t distribution with given degrees of freedom</p>
<dl class="arguments">
<dt>float <i class="arg">df</i></dt>
<dd><p>- Degrees of freedom</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="64"><b class="cmd">::math::statistics::random-beta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">number</i></a></dt>
<dd><p>Return a list of &quot;number&quot; random values satisfying
a Beta distribution with given shape parameters</p>
<dl class="arguments">
<dt>float <i class="arg">a</i></dt>
<dd><p>- First shape parameter</p></dd>
<dt>float <i class="arg">b</i></dt>
<dd><p>- Second shape parameter</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Number of values to be returned</p></dd>
</dl></dd>
<dt><a name="65"><b class="cmd">::math::statistics::histogram-uniform</b> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">limits</i> <i class="arg">number</i></a></dt>
<dd><p>Return the expected histogram for a uniform distribution.</p>
<dl class="arguments">
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Minimum value of the distribution</p></dd>
<dt>float <i class="arg">xmax</i></dt>
<dd><p>- Maximum value of the distribution</p></dd>
<dt>list <i class="arg">limits</i></dt>
<dd><p>- Upper limits for the buckets in the histogram</p></dd>
<dt>int <i class="arg">number</i></dt>
<dd><p>- Total number of &quot;observations&quot; in the histogram</p></dd>
</dl></dd>
<dt><a name="66"><b class="cmd">::math::statistics::incompleteGamma</b> <i class="arg">x</i> <i class="arg">p</i> <span class="opt">?tol?</span></a></dt>
<dd><p>Evaluate the incomplete Gamma integral</p>
<pre class="example">
                    1       / x               p-1
      P(p,x) =  --------   |   dt exp(-t) * t
                Gamma(p)  / 0
</pre>
<dl class="arguments">
<dt>float <i class="arg">x</i></dt>
<dd><p>- Value of x (limit of the integral)</p></dd>
<dt>float <i class="arg">p</i></dt>
<dd><p>- Value of p in the integrand</p></dd>
<dt>float <i class="arg">tol</i></dt>
<dd><p>- Required tolerance (default: 1.0e-9)</p></dd>
</dl></dd>
<dt><a name="67"><b class="cmd">::math::statistics::incompleteBeta</b> <i class="arg">a</i> <i class="arg">b</i> <i class="arg">x</i> <span class="opt">?tol?</span></a></dt>
<dd><p>Evaluate the incomplete Beta integral</p>
<dl class="arguments">
<dt>float <i class="arg">a</i></dt>
<dd><p>- First shape parameter</p></dd>
<dt>float <i class="arg">b</i></dt>
<dd><p>- Second shape parameter</p></dd>
<dt>float <i class="arg">x</i></dt>
<dd><p>- Value of x (limit of the integral)</p></dd>
<dt>float <i class="arg">tol</i></dt>
<dd><p>- Required tolerance (default: 1.0e-9)</p></dd>
</dl></dd>
</dl>
<p>TO DO: more function descriptions to be added</p>
</div>
<div id="section5" class="section"><h2><a name="section5">DATA MANIPULATION</a></h2>
<p>The data manipulation procedures act on lists or lists of lists:</p>
<dl class="definitions">
<dt><a name="68"><b class="cmd">::math::statistics::filter</b> <i class="arg">varname</i> <i class="arg">data</i> <i class="arg">expression</i></a></dt>
<dd><p>Return a list consisting of the data for which the logical
expression is true (this command works analogously to the command <b class="cmd"><a href="../../../../index.html#key216">foreach</a></b>).</p>
<dl class="arguments">
<dt>string <i class="arg">varname</i></dt>
<dd><p>- Name of the variable used in the expression</p></dd>
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of data</p></dd>
<dt>string <i class="arg">expression</i></dt>
<dd><p>- Logical expression using the variable name</p></dd>
</dl></dd>
<dt><a name="69"><b class="cmd">::math::statistics::map</b> <i class="arg">varname</i> <i class="arg">data</i> <i class="arg">expression</i></a></dt>
<dd><p>Return a list consisting of the data that are transformed via the
expression.</p>
<dl class="arguments">
<dt>string <i class="arg">varname</i></dt>
<dd><p>- Name of the variable used in the expression</p></dd>
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of data</p></dd>
<dt>string <i class="arg">expression</i></dt>
<dd><p>- Expression to be used to transform (map) the data</p></dd>
</dl></dd>
<dt><a name="70"><b class="cmd">::math::statistics::samplescount</b> <i class="arg">varname</i> <i class="arg">list</i> <i class="arg">expression</i></a></dt>
<dd><p>Return a list consisting of the <i class="term">counts</i> of all data in the
sublists of the &quot;list&quot; argument for which the expression is true.</p>
<dl class="arguments">
<dt>string <i class="arg">varname</i></dt>
<dd><p>- Name of the variable used in the expression</p></dd>
<dt>list <i class="arg">data</i></dt>
<dd><p>- List of sublists, each containing the data</p></dd>
<dt>string <i class="arg">expression</i></dt>
<dd><p>- Logical expression to test the data (defaults to
&quot;true&quot;).</p></dd>
</dl></dd>
<dt><a name="71"><b class="cmd">::math::statistics::subdivide</b></a></dt>
<dd><p>Routine <em>PM</em> - not implemented yet</p></dd>
</dl>
</div>
<div id="section6" class="section"><h2><a name="section6">PLOT PROCEDURES</a></h2>
<p>The following simple plotting procedures are available:</p>
<dl class="definitions">
<dt><a name="72"><b class="cmd">::math::statistics::plot-scale</b> <i class="arg">canvas</i> <i class="arg">xmin</i> <i class="arg">xmax</i> <i class="arg">ymin</i> <i class="arg">ymax</i></a></dt>
<dd><p>Set the scale for a plot in the given canvas. All plot routines expect
this function to be called first. There is no automatic scaling
provided.</p>
<dl class="arguments">
<dt>widget <i class="arg">canvas</i></dt>
<dd><p>- Canvas widget to use</p></dd>
<dt>float <i class="arg">xmin</i></dt>
<dd><p>- Minimum x value</p></dd>
<dt>float <i class="arg">xmax</i></dt>
<dd><p>- Maximum x value</p></dd>
<dt>float <i class="arg">ymin</i></dt>
<dd><p>- Minimum y value</p></dd>
<dt>float <i class="arg">ymax</i></dt>
<dd><p>- Maximum y value</p></dd>
</dl></dd>
<dt><a name="73"><b class="cmd">::math::statistics::plot-xydata</b> <i class="arg">canvas</i> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">tag</i></a></dt>
<dd><p>Create a simple XY plot in the given canvas - the data are
shown as a collection of dots. The tag can be used to manipulate the
appearance.</p>
<dl class="arguments">
<dt>widget <i class="arg">canvas</i></dt>
<dd><p>- Canvas widget to use</p></dd>
<dt>float <i class="arg">xdata</i></dt>
<dd><p>- Series of independent data</p></dd>
<dt>float <i class="arg">ydata</i></dt>
<dd><p>- Series of dependent data</p></dd>
<dt>string <i class="arg">tag</i></dt>
<dd><p>- Tag to give to the plotted data (defaults to xyplot)</p></dd>
</dl></dd>
<dt><a name="74"><b class="cmd">::math::statistics::plot-xyline</b> <i class="arg">canvas</i> <i class="arg">xdata</i> <i class="arg">ydata</i> <i class="arg">tag</i></a></dt>
<dd><p>Create a simple XY plot in the given canvas - the data are
shown as a line through the data points. The tag can be used to
manipulate the appearance.</p>
<dl class="arguments">
<dt>widget <i class="arg">canvas</i></dt>
<dd><p>- Canvas widget to use</p></dd>
<dt>list <i class="arg">xdata</i></dt>
<dd><p>- Series of independent data</p></dd>
<dt>list <i class="arg">ydata</i></dt>
<dd><p>- Series of dependent data</p></dd>
<dt>string <i class="arg">tag</i></dt>
<dd><p>- Tag to give to the plotted data (defaults to xyplot)</p></dd>
</dl></dd>
<dt><a name="75"><b class="cmd">::math::statistics::plot-tdata</b> <i class="arg">canvas</i> <i class="arg">tdata</i> <i class="arg">tag</i></a></dt>
<dd><p>Create a simple XY plot in the given canvas - the data are
shown as a collection of dots. The horizontal coordinate is equal to the
index. The tag can be used to manipulate the appearance.
This type of presentation is suitable for autocorrelation functions for
instance or for inspecting the time-dependent behaviour.</p>
<dl class="arguments">
<dt>widget <i class="arg">canvas</i></dt>
<dd><p>- Canvas widget to use</p></dd>
<dt>list <i class="arg">tdata</i></dt>
<dd><p>- Series of dependent data</p></dd>
<dt>string <i class="arg">tag</i></dt>
<dd><p>- Tag to give to the plotted data (defaults to xyplot)</p></dd>
</dl></dd>
<dt><a name="76"><b class="cmd">::math::statistics::plot-tline</b> <i class="arg">canvas</i> <i class="arg">tdata</i> <i class="arg">tag</i></a></dt>
<dd><p>Create a simple XY plot in the given canvas - the data are
shown as a line. See plot-tdata for an explanation.</p>
<dl class="arguments">
<dt>widget <i class="arg">canvas</i></dt>
<dd><p>- Canvas widget to use</p></dd>
<dt>list <i class="arg">tdata</i></dt>
<dd><p>- Series of dependent data</p></dd>
<dt>string <i class="arg">tag</i></dt>
<dd><p>- Tag to give to the plotted data (defaults to xyplot)</p></dd>
</dl></dd>
<dt><a name="77"><b class="cmd">::math::statistics::plot-histogram</b> <i class="arg">canvas</i> <i class="arg">counts</i> <i class="arg">limits</i> <i class="arg">tag</i></a></dt>
<dd><p>Create a simple histogram in the given canvas</p>
<dl class="arguments">
<dt>widget <i class="arg">canvas</i></dt>
<dd><p>- Canvas widget to use</p></dd>
<dt>list <i class="arg">counts</i></dt>
<dd><p>- Series of bucket counts</p></dd>
<dt>list <i class="arg">limits</i></dt>
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
bugs and other problems.
Please report such in the category <em>math :: statistics</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key623">data analysis</a>, <a href="../../../../index.html#key622">mathematics</a>, <a href="../../../../index.html#key193">statistics</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
</div></body></html>







|





1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
bugs and other problems.
Please report such in the category <em>math :: statistics</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key627">data analysis</a>, <a href="../../../../index.html#key626">mathematics</a>, <a href="../../../../index.html#key193">statistics</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/md4/md4.html.

253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../md5/md5.html">md5</a>, <a href="../sha1/sha1.html">sha1</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key375">md4</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key374">rfc 1320</a>, <a href="../../../../index.html#key376">rfc 1321</a>, <a href="../../../../index.html#key212">rfc 2104</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003, Pat Thoyts &lt;[email protected]&gt;</p>
</div>







|







253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../md5/md5.html">md5</a>, <a href="../sha1/sha1.html">sha1</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key377">md4</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key376">rfc 1320</a>, <a href="../../../../index.html#key378">rfc 1321</a>, <a href="../../../../index.html#key212">rfc 2104</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003, Pat Thoyts &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/md5/md5.html.

258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../md4/md4.html">md4</a>, <a href="../sha1/sha1.html">sha1</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key654">md5</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key374">rfc 1320</a>, <a href="../../../../index.html#key376">rfc 1321</a>, <a href="../../../../index.html#key212">rfc 2104</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003, Pat Thoyts &lt;[email protected]&gt;</p>
</div>







|







258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../md4/md4.html">md4</a>, <a href="../sha1/sha1.html">sha1</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key658">md5</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key376">rfc 1320</a>, <a href="../../../../index.html#key378">rfc 1321</a>, <a href="../../../../index.html#key212">rfc 2104</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003, Pat Thoyts &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/md5crypt/md5crypt.html.

196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../md5/md5.html">md5</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key654">md5</a>, <a href="../../../../index.html#key753">md5crypt</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003, Pat Thoyts &lt;[email protected]&gt;</p>
</div>







|







196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../md5/md5.html">md5</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key658">md5</a>, <a href="../../../../index.html#key757">md5crypt</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003, Pat Thoyts &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/mime/mime.html.

355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
bugs and other problems.
Please report such in the category <em>mime</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../ftp/ftp.html">ftp</a>, <a href="../../../../index.html#key441">http</a>, <a href="../pop3/pop3.html">pop3</a>, <a href="smtp.html">smtp</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key331">email</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key326">mail</a>, <a href="../../../../index.html#key228">mime</a>, <a href="../../../../index.html#key291">net</a>, <a href="../../../../index.html#key803">rfc 2045</a>, <a href="../../../../index.html#key804">rfc 2046</a>, <a href="../../../../index.html#key802">rfc 2049</a>, <a href="../../../../index.html#key328">rfc 821</a>, <a href="../../../../index.html#key329">rfc 822</a>, <a href="../../../../index.html#key333">smtp</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 1999-2000 Marshall T. Rose</p>
</div>







|


|







355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
bugs and other problems.
Please report such in the category <em>mime</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../ftp/ftp.html">ftp</a>, <a href="../../../../index.html#key443">http</a>, <a href="../pop3/pop3.html">pop3</a>, <a href="smtp.html">smtp</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key333">email</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key328">mail</a>, <a href="../../../../index.html#key228">mime</a>, <a href="../../../../index.html#key293">net</a>, <a href="../../../../index.html#key807">rfc 2045</a>, <a href="../../../../index.html#key808">rfc 2046</a>, <a href="../../../../index.html#key806">rfc 2049</a>, <a href="../../../../index.html#key330">rfc 821</a>, <a href="../../../../index.html#key331">rfc 822</a>, <a href="../../../../index.html#key335">smtp</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 1999-2000 Marshall T. Rose</p>
</div>

Changes to embedded/www/tcllib/files/modules/mime/smtp.html.

239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
    mime::finalize $token
}
send_simple_message [email protected] localhost \\
    &quot;This is the subject.&quot; &quot;This is the message.&quot;
</pre>
</div>
<div id="section4" class="section"><h2><a name="section4">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>







|


|







|
|







239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
    mime::finalize $token
}
send_simple_message [email protected] localhost \\
    &quot;This is the subject.&quot; &quot;This is the message.&quot;
</pre>
</div>
<div id="section4" class="section"><h2><a name="section4">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
bugs and other problems.
Please report such in the category <em>smtp</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../ftp/ftp.html">ftp</a>, <a href="../../../../index.html#key441">http</a>, <a href="mime.html">mime</a>, <a href="../pop3/pop3.html">pop3</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key331">email</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key326">mail</a>, <a href="../../../../index.html#key228">mime</a>, <a href="../../../../index.html#key291">net</a>, <a href="../../../../index.html#key332">rfc 2554</a>, <a href="../../../../index.html#key325">rfc 2821</a>, <a href="../../../../index.html#key330">rfc 3207</a>, <a href="../../../../index.html#key328">rfc 821</a>, <a href="../../../../index.html#key329">rfc 822</a>, <a href="../../../../index.html#key333">smtp</a>, <a href="../../../../index.html#key327">tls</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 1999-2000 Marshall T. Rose and others</p>
</div>
</div></body></html>







|


|








283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
bugs and other problems.
Please report such in the category <em>smtp</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../ftp/ftp.html">ftp</a>, <a href="../../../../index.html#key443">http</a>, <a href="mime.html">mime</a>, <a href="../pop3/pop3.html">pop3</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key333">email</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key328">mail</a>, <a href="../../../../index.html#key228">mime</a>, <a href="../../../../index.html#key293">net</a>, <a href="../../../../index.html#key334">rfc 2554</a>, <a href="../../../../index.html#key327">rfc 2821</a>, <a href="../../../../index.html#key332">rfc 3207</a>, <a href="../../../../index.html#key330">rfc 821</a>, <a href="../../../../index.html#key331">rfc 822</a>, <a href="../../../../index.html#key335">smtp</a>, <a href="../../../../index.html#key329">tls</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 1999-2000 Marshall T. Rose and others</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/multiplexer/multiplexer.html.

223
224
225
226
227
228
229
230
231
232
233
234
235
bugs and other problems.
Please report such in the category <em>multiplexer</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key686">chat</a>, <a href="../../../../index.html#key687">multiplexer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
</div></body></html>







|





223
224
225
226
227
228
229
230
231
232
233
234
235
bugs and other problems.
Please report such in the category <em>multiplexer</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key690">chat</a>, <a href="../../../../index.html#key691">multiplexer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/ncgi/ncgi.html.

366
367
368
369
370
371
372
373
374
375
376
377
378
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../html/html.html">html</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key669">CGI</a>, <a href="../../../../index.html#key668">cookie</a>, <a href="../../../../index.html#key610">form</a>, <a href="../../../../index.html#key611">html</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>CGI programming</p>
</div>
</div></body></html>







|





366
367
368
369
370
371
372
373
374
375
376
377
378
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../html/html.html">html</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key673">CGI</a>, <a href="../../../../index.html#key672">cookie</a>, <a href="../../../../index.html#key613">form</a>, <a href="../../../../index.html#key614">html</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>CGI programming</p>
</div>
</div></body></html>

Added embedded/www/tcllib/files/modules/nettool/nettool.html.































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255

<html><head>
<title>nettool - nettool</title>
<style type="text/css"><!--
    HTML {
	background: 	#FFFFFF;
	color: 		black;
    }
    BODY {
	background: 	#FFFFFF;
	color:	 	black;
    }
    DIV.doctools {
	margin-left:	10%;
	margin-right:	10%;
    }
    DIV.doctools H1,DIV.doctools H2 {
	margin-left:	-5%;
    }
    H1, H2, H3, H4 {
	margin-top: 	1em;
	font-family:	sans-serif;
	font-size:	large;
	color:		#005A9C;
	background: 	transparent;
	text-align:		left;
    }
    H1.title {
	text-align: center;
    }
    UL,OL {
	margin-right: 0em;
	margin-top: 3pt;
	margin-bottom: 3pt;
    }
    UL LI {
	list-style: disc;
    }
    OL LI {
	list-style: decimal;
    }
    DT {
	padding-top: 	1ex;
    }
    UL.toc,UL.toc UL, UL.toc UL UL {
	font:		normal 12pt/14pt sans-serif;
	list-style:	none;
    }
    LI.section, LI.subsection {
	list-style: 	none;
	margin-left: 	0em;
	text-indent:	0em;
	padding: 	0em;
    }
    PRE {
	display: 	block;
	font-family:	monospace;
	white-space:	pre;
	margin:		0%;
	padding-top:	0.5ex;
	padding-bottom:	0.5ex;
	padding-left:	1ex;
	padding-right:	1ex;
	width:		100%;
    }
    PRE.example {
	color: 		black;
	background: 	#f5dcb3;
	border:		1px solid black;
    }
    UL.requirements LI, UL.syntax LI {
	list-style: 	none;
	margin-left: 	0em;
	text-indent:	0em;
	padding:	0em;
    }
    DIV.synopsis {
	color: 		black;
	background: 	#80ffff;
	border:		1px solid black;
	font-family:	serif;
	margin-top: 	1em;
	margin-bottom: 	1em;
    }
    UL.syntax {
	margin-top: 	1em;
	border-top:	1px solid black;
    }
    UL.requirements {
	margin-bottom: 	1em;
	border-bottom:	1px solid black;
    }
--></style>
</head>
<! -- Generated from file 'nettool.man' by tcllib/doctools with format 'html'
   -->
<! -- Copyright &copy; 2015 Sean Woods &lt;[email protected]&gt;
   -->
<! -- CVS: $Id$ nettool.n
   -->
<body><div class="doctools">
<hr> [
   <a href="../../../../../../../../home">Tcllib Home</a>
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">nettool(n) 0.1 tcllib &quot;nettool&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>nettool - Tools for networked applications</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>
<li class="section"><a href="#section1">Description</a></li>
<li class="section"><a href="#section2">Commands</a></li>
<li class="section"><a href="#section3">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#category">Category</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">nettool <span class="opt">?0.1?</span></b></li>
<li>package require <b class="pkgname">twapi 3.1</b></li>
<li>package require <b class="pkgname">ip 0.1</b></li>
<li>package require <b class="pkgname">platform 0.1</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::cat</b> <i class="arg">filename</i></a></li>
<li><a href="#2"><b class="cmd">::nettool::allocate_port</b> <i class="arg">startingport</i></a></li>
<li><a href="#3"><b class="cmd">::nettool::arp_table</b></a></li>
<li><a href="#4"><b class="cmd">::nettool::broadcast_list</b></a></li>
<li><a href="#5"><b class="cmd">::nettool::claim_port</b> <i class="arg">port</i> <span class="opt">?<i class="arg">protocol</i>?</span></a></li>
<li><a href="#6"><b class="cmd">::nettool::cpuinfo</b> <i class="arg">args</i></a></li>
<li><a href="#7"><b class="cmd">::nettool::find_port</b> <i class="arg">startingport</i></a></li>
<li><a href="#8"><b class="cmd">::nettool::hwid_list</b></a></li>
<li><a href="#9"><b class="cmd">::nettool::ip_list</b></a></li>
<li><a href="#10"><b class="cmd">::nettool::mac_list</b></a></li>
<li><a href="#11"><b class="cmd">::nettool::network_list</b></a></li>
<li><a href="#12"><b class="cmd">::nettool::port_busy</b> <i class="arg">port</i></a></li>
<li><a href="#13"><b class="cmd">::nettool::release_port</b> <i class="arg">port</i> <span class="opt">?<i class="arg">protocol</i>?</span></a></li>
<li><a href="#14"><b class="cmd">::nettool::status</b></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">nettool</b> package consists of a Pure-tcl set of tools
to perform common network functions that would normally require
different packages or calls to exec, in a standard Tcl interface.
At present nettool has reference implementations for the following operating
systems: Windows, MacOSX, and Linux (debian).</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Commands</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::cat</b> <i class="arg">filename</i></a></dt>
<dd><p>Dump the contents of a file as a result.</p></dd>
<dt><a name="2"><b class="cmd">::nettool::allocate_port</b> <i class="arg">startingport</i></a></dt>
<dd><p>Attempt to allocate <i class="arg">startingport</i>, or, if busy, advance the port
number sequentially until a free port is found, and claim that port.
This command uses a built-in database of known ports to avoid returning a
port which is in common use. (For example: http (80))</p></dd>
<dt><a name="3"><b class="cmd">::nettool::arp_table</b></a></dt>
<dd><p>Dump the contents of this computer's Address Resolution Protocol (ARP) table.
The result will be a Tcl formatted list: <i class="arg">macid</i> <i class="arg">ipaddrlist</i> ...</p></dd>
<dt><a name="4"><b class="cmd">::nettool::broadcast_list</b></a></dt>
<dd><p>Returns a list of broadcast addresses (suitable for UDP multicast)
that this computer is associated with.</p></dd>
<dt><a name="5"><b class="cmd">::nettool::claim_port</b> <i class="arg">port</i> <span class="opt">?<i class="arg">protocol</i>?</span></a></dt>
<dd><p>Mark <i class="arg">port</i> as busy, optionally as either <b class="const">tcp</b> (default) or <b class="const">udp</b>.</p></dd>
<dt><a name="6"><b class="cmd">::nettool::cpuinfo</b> <i class="arg">args</i></a></dt>
<dd><p>If no arguments are given, return a key/value list describing the
CPU of the present machine. Included in the matrix is info on the number
of cores/processors that are available for parallel tasking, installed physical
RAM, and processor family.</p>
<p>The exact contents are platform specific.</p>
<p>For Linux, information is drawn from /proc/cpuinfo and /proc/meminfo.</p>
<p>For MacOSX, information is drawn from sysctl</p>
<p>For Windows, information is draw from TWAPI.</p>
<p>If arguments are given, the result with be a key/value list limited to the
fields requested.</p>
<p>Canonical fields for all platforms:</p>
<dl class="definitions">
<dt>cpus</dt>
<dd><p>Count of CPUs/cores/execution units</p></dd>
<dt>speed</dt>
<dd><p>Clock speed of processor(s) in Mhz</p></dd>
<dt>memory</dt>
<dd><p>Installed RAM (in MB)</p></dd>
<dt>vendor</dt>
<dd><p>Manufacturer</p></dd>
</dl></dd>
<dt><a name="7"><b class="cmd">::nettool::find_port</b> <i class="arg">startingport</i></a></dt>
<dd><p>Return <i class="arg">startingport</i> if it is available, or the next free port after
<i class="arg">startingport</i>. Note: Unlike <b class="cmd">::nettool::allocate_port</b>, this
command does not claim the port.</p>
<p>This command uses a built-in database of known ports to avoid returning a
port which is in common use. (For example: http (80))</p></dd>
<dt><a name="8"><b class="cmd">::nettool::hwid_list</b></a></dt>
<dd><p>Return a list of hardware specific identifiers from this computer. The source
and content will vary by platform.</p>
<p>For MacOSX, the motherboard serial number and macids for all network devices is returned.</p>
<p>For Windows, the volume serial number of C and macids for all network devices is returned.</p>
<p>For Linux, macids for all network devices is returned.</p></dd>
<dt><a name="9"><b class="cmd">::nettool::ip_list</b></a></dt>
<dd><p>Return a list of IP addresses associated with this computer.</p></dd>
<dt><a name="10"><b class="cmd">::nettool::mac_list</b></a></dt>
<dd><p>Return a list of MACIDs for the network cards attached to this machine. The MACID of the
primary network card is returned first.</p></dd>
<dt><a name="11"><b class="cmd">::nettool::network_list</b></a></dt>
<dd><p>Return a list of networks associated with this computer. Networks are formated with
<b class="cmd">ip::nativeToPrefix</b>.</p></dd>
<dt><a name="12"><b class="cmd">::nettool::port_busy</b> <i class="arg">port</i></a></dt>
<dd><p>Return true if <i class="arg">port</i> is claimed, false otherwise.</p></dd>
<dt><a name="13"><b class="cmd">::nettool::release_port</b> <i class="arg">port</i> <span class="opt">?<i class="arg">protocol</i>?</span></a></dt>
<dd><p>Mark <i class="arg">port</i> as not busy, optionally as either <b class="const">tcp</b> (default) or <b class="const">udp</b>.</p></dd>
<dt><a name="14"><b class="cmd">::nettool::status</b></a></dt>
<dd><p>Return a key/value list describing the status of the computer. The output
is designed to be comparable to the output of <b class="cmd">top</b> for all platforms.</p>
<p>Common fields include:</p>
<dl class="definitions">
<dt>load</dt>
<dd><p>Processes per processing unit</p></dd>
<dt>memory_total</dt>
<dd><p>Total physical RAM (MB)</p></dd>
<dt>memory_free</dt>
<dd><p>Total physical RAM unused (MB)</p></dd>
</dl></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>odie</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key521">nettool</a>, <a href="../../../../index.html#key253">odie</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>System</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2015 Sean Woods &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/nmea/nmea.html.

146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a standard interface for writing software which recieves
NMEA standard input data. It allows for reading data from COM ports, files,
or programmatic input. It also supports the checksumming and logging of incoming data.
After parsing, input is dispatched to user defined handler commands for processing.
To define a handler, see the <b class="cmd"><a href="../../../../index.html#key536">event</a></b> command. There are no GPS specific functions
in this package. NMEA data consists of a sentence type, followed by a list of data.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::nmea::input</b> <i class="arg">sentence</i></a></dt>
<dd><p>Processes and dispatches the supplied sentence. If <i class="arg">sentence</i> contains no commas it is treated as a Tcl list, otherwise it must be standard comma delimited NMEA data, with an optional checksum and leading <b class="const">$</b>.</p>
<pre class="example">







|







146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides a standard interface for writing software which recieves
NMEA standard input data. It allows for reading data from COM ports, files,
or programmatic input. It also supports the checksumming and logging of incoming data.
After parsing, input is dispatched to user defined handler commands for processing.
To define a handler, see the <b class="cmd"><a href="../../../../index.html#key539">event</a></b> command. There are no GPS specific functions
in this package. NMEA data consists of a sentence type, followed by a list of data.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::nmea::input</b> <i class="arg">sentence</i></a></dt>
<dd><p>Processes and dispatches the supplied sentence. If <i class="arg">sentence</i> contains no commas it is treated as a Tcl list, otherwise it must be standard comma delimited NMEA data, with an optional checksum and leading <b class="const">$</b>.</p>
<pre class="example">
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
bugs and other problems.
Please report such in the category <em>nmea</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key403">gps</a>, <a href="../../../../index.html#key402">nmea</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006-2009, Aaron Faupell &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
bugs and other problems.
Please report such in the category <em>nmea</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key405">gps</a>, <a href="../../../../index.html#key404">nmea</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006-2009, Aaron Faupell &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/nns/nns_auto.html.

212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="nns_client.html">nameserv(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key510">automatic</a>, <a href="../../../../index.html#key30">client</a>, <a href="../../../../index.html#key29">name service</a>, <a href="../../../../index.html#key509">reconnect</a>, <a href="../../../../index.html#key508">restore</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2008 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="nns_client.html">nameserv(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key512">automatic</a>, <a href="../../../../index.html#key30">client</a>, <a href="../../../../index.html#key29">name service</a>, <a href="../../../../index.html#key511">reconnect</a>, <a href="../../../../index.html#key510">restore</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2008 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/nns/nns_client.html.

189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
that the name service will run this command implicitly when it loses
the connection to this client.</p></dd>
<dt><a name="3"><b class="cmd">::nameserv::search</b> <span class="opt">?<b class="option">-async</b>|<b class="option">-continuous</b>?</span> <span class="opt">?<i class="arg">pattern</i>?</span></a></dt>
<dd><p>This command searches the name service for all registered names
matching the specified glob-<i class="arg">pattern</i>. If not specified the
pattern defaults to <b class="const">*</b>, matching everything. The result of the
command is a dictionary mapping the matching names to the data
associated with them at <i class="term"><a href="../../../../index.html#key706">bind</a></i>-time.</p>
<p>If either option <b class="option">-async</b> or <b class="option">-continuous</b> were
specified the result of this command changes and becomes the Tcl
command of an object holding the actual result.
These two options are supported if and only if the service the client
is connected to supports the protocol feature
<i class="term">Search/Continuous</i>.</p>
<p>For <b class="option">-async</b> the result object is asynchronously filled with







|







189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
that the name service will run this command implicitly when it loses
the connection to this client.</p></dd>
<dt><a name="3"><b class="cmd">::nameserv::search</b> <span class="opt">?<b class="option">-async</b>|<b class="option">-continuous</b>?</span> <span class="opt">?<i class="arg">pattern</i>?</span></a></dt>
<dd><p>This command searches the name service for all registered names
matching the specified glob-<i class="arg">pattern</i>. If not specified the
pattern defaults to <b class="const">*</b>, matching everything. The result of the
command is a dictionary mapping the matching names to the data
associated with them at <i class="term"><a href="../../../../index.html#key710">bind</a></i>-time.</p>
<p>If either option <b class="option">-async</b> or <b class="option">-continuous</b> were
specified the result of this command changes and becomes the Tcl
command of an object holding the actual result.
These two options are supported if and only if the service the client
is connected to supports the protocol feature
<i class="term">Search/Continuous</i>.</p>
<p>For <b class="option">-async</b> the result object is asynchronously filled with
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
section <span class="sectref"><a href="#section5">OPTIONS</a></span>.</p>
<p>This form can be used only as long as the client has not contacted the
name service yet. After contact has been made reconfiguration is not
possible anymore. This means that this form of the command is for the
initalization of the client before it use.
The command forcing a contact with the name service are</p>
<dl class="commands">
<dt><b class="cmd"><a href="../../../../index.html#key706">bind</a></b></dt>
<dd></dd>
<dt><b class="cmd">release</b></dt>
<dd></dd>
<dt><b class="cmd">search</b></dt>
<dd></dd>
<dt><b class="cmd">server_protocol</b></dt>
<dd></dd>
<dt><b class="cmd">server_features</b></dt>
<dd></dd>
</dl></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">CONNECTION HANDLING</a></h2>
<p>The client automatically connects to the service when one of the
commands below is run for the first time, or whenever one of the
commands is run after the connection was lost, when it was lost.</p>
<dl class="commands">
<dt><b class="cmd"><a href="../../../../index.html#key706">bind</a></b></dt>
<dd></dd>
<dt><b class="cmd">release</b></dt>
<dd></dd>
<dt><b class="cmd">search</b></dt>
<dd></dd>
<dt><b class="cmd">server_protocol</b></dt>
<dd></dd>







|

















|







243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
section <span class="sectref"><a href="#section5">OPTIONS</a></span>.</p>
<p>This form can be used only as long as the client has not contacted the
name service yet. After contact has been made reconfiguration is not
possible anymore. This means that this form of the command is for the
initalization of the client before it use.
The command forcing a contact with the name service are</p>
<dl class="commands">
<dt><b class="cmd"><a href="../../../../index.html#key710">bind</a></b></dt>
<dd></dd>
<dt><b class="cmd">release</b></dt>
<dd></dd>
<dt><b class="cmd">search</b></dt>
<dd></dd>
<dt><b class="cmd">server_protocol</b></dt>
<dd></dd>
<dt><b class="cmd">server_features</b></dt>
<dd></dd>
</dl></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">CONNECTION HANDLING</a></h2>
<p>The client automatically connects to the service when one of the
commands below is run for the first time, or whenever one of the
commands is run after the connection was lost, when it was lost.</p>
<dl class="commands">
<dt><b class="cmd"><a href="../../../../index.html#key710">bind</a></b></dt>
<dd></dd>
<dt><b class="cmd">release</b></dt>
<dd></dd>
<dt><b class="cmd">search</b></dt>
<dd></dd>
<dt><b class="cmd">server_protocol</b></dt>
<dd></dd>
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
<dd><p>Destroys the object and cancels any continuous monitoring of the
service the object may have had active.</p></dd>
<dt><a name="12"><b class="cmd">$result</b> <b class="method">filled</b></a></dt>
<dd><p>The result is a boolean value indicating whether the search result has
already arrived (<b class="const">True</b>), or not (<b class="const">False</b>).</p></dd>
<dt><a name="13"><b class="cmd">$result</b> <b class="method">get</b> <i class="arg">name</i></a></dt>
<dd><p>Returns the data associated with the given <i class="arg">name</i> at
<i class="term"><a href="../../../../index.html#key706">bind</a></i>-time.</p></dd>
<dt><a name="14"><b class="cmd">$result</b> <b class="method">names</b></a></dt>
<dd><p>Returns a list containing all names known to the object at the time of
the invokation.</p></dd>
<dt><a name="15"><b class="cmd">$result</b> <b class="method">size</b></a></dt>
<dd><p>Returns an integer value specifying the size of the result at the time
of the invokation.</p></dd>
<dt><a name="16"><b class="cmd">$result</b> <b class="method">getall</b> <span class="opt">?<i class="arg">pattern</i>?</span></a></dt>
<dd><p>Returns a dictionary containing the search result at the time of the
invokation, mapping the matching names to the data associated with
them at <i class="term"><a href="../../../../index.html#key706">bind</a></i>-time.</p></dd>
</dl></dd>
</dl>
</div>
<div id="section7" class="section"><h2><a name="section7">HISTORY</a></h2>
<dl class="definitions">
<dt>0.3.1</dt>
<dd><p>Fixed SF Bug 1954771.</p></dd>







|









|







347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
<dd><p>Destroys the object and cancels any continuous monitoring of the
service the object may have had active.</p></dd>
<dt><a name="12"><b class="cmd">$result</b> <b class="method">filled</b></a></dt>
<dd><p>The result is a boolean value indicating whether the search result has
already arrived (<b class="const">True</b>), or not (<b class="const">False</b>).</p></dd>
<dt><a name="13"><b class="cmd">$result</b> <b class="method">get</b> <i class="arg">name</i></a></dt>
<dd><p>Returns the data associated with the given <i class="arg">name</i> at
<i class="term"><a href="../../../../index.html#key710">bind</a></i>-time.</p></dd>
<dt><a name="14"><b class="cmd">$result</b> <b class="method">names</b></a></dt>
<dd><p>Returns a list containing all names known to the object at the time of
the invokation.</p></dd>
<dt><a name="15"><b class="cmd">$result</b> <b class="method">size</b></a></dt>
<dd><p>Returns an integer value specifying the size of the result at the time
of the invokation.</p></dd>
<dt><a name="16"><b class="cmd">$result</b> <b class="method">getall</b> <span class="opt">?<i class="arg">pattern</i>?</span></a></dt>
<dd><p>Returns a dictionary containing the search result at the time of the
invokation, mapping the matching names to the data associated with
them at <i class="term"><a href="../../../../index.html#key710">bind</a></i>-time.</p></dd>
</dl></dd>
</dl>
</div>
<div id="section7" class="section"><h2><a name="section7">HISTORY</a></h2>
<dl class="definitions">
<dt>0.3.1</dt>
<dd><p>Fixed SF Bug 1954771.</p></dd>

Changes to embedded/www/tcllib/files/modules/nns/nns_intro.html.

128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p><i class="term"><a href="../../apps/nns.html">nns</a></i> (short for <em>nano nameservice</em>) is a facility built
for the package <b class="package"><a href="../comm/comm.html">comm</a></b>, adding a simple name service to it.
It is also built on top of <b class="package"><a href="../comm/comm.html">comm</a></b>, using it for the exchange
of messages between the client and server parts.</p>
<p>This name service facility has nothing to do with the Internet's
<i class="term">Domain Name System</i>, otherwise known as <i class="term"><a href="../../../../index.html#key593">DNS</a></i>. If the
reader is looking for a package dealing with that please see either of
the packages <b class="package"><a href="../dns/tcllib_dns.html">dns</a></b> and <b class="package">resolv</b>, both found in Tcllib
too.</p>
<p>Tcllib provides 2 applications and 4 packages which are working
together and provide access to the facility at different levels.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Applications</a></h2>







|







128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p><i class="term"><a href="../../apps/nns.html">nns</a></i> (short for <em>nano nameservice</em>) is a facility built
for the package <b class="package"><a href="../comm/comm.html">comm</a></b>, adding a simple name service to it.
It is also built on top of <b class="package"><a href="../comm/comm.html">comm</a></b>, using it for the exchange
of messages between the client and server parts.</p>
<p>This name service facility has nothing to do with the Internet's
<i class="term">Domain Name System</i>, otherwise known as <i class="term"><a href="../../../../index.html#key596">DNS</a></i>. If the
reader is looking for a package dealing with that please see either of
the packages <b class="package"><a href="../dns/tcllib_dns.html">dns</a></b> and <b class="package">resolv</b>, both found in Tcllib
too.</p>
<p>Tcllib provides 2 applications and 4 packages which are working
together and provide access to the facility at different levels.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Applications</a></h2>

Changes to embedded/www/tcllib/files/modules/nntp/nntp.html.

393
394
395
396
397
398
399
400
401
402
403
404
405
bugs and other problems.
Please report such in the category <em>nntp</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key526">news</a>, <a href="../../../../index.html#key645">nntp</a>, <a href="../../../../index.html#key648">nntpclient</a>, <a href="../../../../index.html#key646">rfc 1036</a>, <a href="../../../../index.html#key647">rfc 977</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>







|





393
394
395
396
397
398
399
400
401
402
403
404
405
bugs and other problems.
Please report such in the category <em>nntp</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key529">news</a>, <a href="../../../../index.html#key649">nntp</a>, <a href="../../../../index.html#key652">nntpclient</a>, <a href="../../../../index.html#key650">rfc 1036</a>, <a href="../../../../index.html#key651">rfc 977</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/oauth/oauth.html.

142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">oauth</b> package provides a simple Tcl-only library
for communication with <a href="http://oauth.net">oauth</a> APIs.
This current version of the package supports the Oauth 1.0 Protocol,
as specified in <a href="http://tools.ietf.org/rfc/rfc5849.txt">RFC 5849</a>.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>







|


|







|
|







142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">oauth</b> package provides a simple Tcl-only library
for communication with <a href="http://oauth.net">oauth</a> APIs.
This current version of the package supports the Oauth 1.0 Protocol,
as specified in <a href="http://tools.ietf.org/rfc/rfc5849.txt">RFC 5849</a>.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
bugs and other problems.
Please report such in the category <em>oauth</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key827">RFC 2718</a>, <a href="../../../../index.html#key828">RFC 5849</a>, <a href="../../../../index.html#key829">oauth</a>, <a href="../../../../index.html#key830">twitter</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2014 Javi P. &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
bugs and other problems.
Please report such in the category <em>oauth</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key831">RFC 2718</a>, <a href="../../../../index.html#key832">RFC 5849</a>, <a href="../../../../index.html#key833">oauth</a>, <a href="../../../../index.html#key834">twitter</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2014 Javi P. &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/ooutil/ooutil.html.

267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../snit/snit.html">snit(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key761">TclOO</a>, <a href="../../../../index.html#key534">callback</a>, <a href="../../../../index.html#key762">class methods</a>, <a href="../../../../index.html#key765">class variables</a>, <a href="../../../../index.html#key589">command prefix</a>, <a href="../../../../index.html#key591">currying</a>, <a href="../../../../index.html#key760">method reference</a>, <a href="../../../../index.html#key764">my method</a>, <a href="../../../../index.html#key763">singleton</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Utility</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011-2014 Andreas Kupries, BSD licensed</p>
</div>







|







267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../snit/snit.html">snit(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key765">TclOO</a>, <a href="../../../../index.html#key537">callback</a>, <a href="../../../../index.html#key766">class methods</a>, <a href="../../../../index.html#key769">class variables</a>, <a href="../../../../index.html#key592">command prefix</a>, <a href="../../../../index.html#key594">currying</a>, <a href="../../../../index.html#key764">method reference</a>, <a href="../../../../index.html#key768">my method</a>, <a href="../../../../index.html#key767">singleton</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Utility</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011-2014 Andreas Kupries, BSD licensed</p>
</div>

Changes to embedded/www/tcllib/files/modules/otp/otp.html.

199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../sasl/sasl.html">SASL</a>, <a href="../md4/md4.html">md4</a>, <a href="../md5/md5.html">md5</a>, <a href="../ripemd/ripemd160.html">ripemd160</a>, <a href="../sha1/sha1.html">sha1</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key685">password</a>, <a href="../../../../index.html#key684">rfc 2289</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006, Pat Thoyts &lt;[email protected]&gt;</p>
</div>







|







199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../sasl/sasl.html">SASL</a>, <a href="../md4/md4.html">md4</a>, <a href="../md5/md5.html">md5</a>, <a href="../ripemd/ripemd160.html">ripemd160</a>, <a href="../sha1/sha1.html">sha1</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key689">password</a>, <a href="../../../../index.html#key688">rfc 2289</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006, Pat Thoyts &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/page/page_util_flow.html.

194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
bugs and other problems.
Please report such in the category <em>page</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key397">dataflow</a>, <a href="../../../../index.html#key192">graph walking</a>, <a href="../../../../index.html#key189">page</a>, <a href="../../../../index.html#key187">parser generator</a>, <a href="../../../../index.html#key190">text processing</a>, <a href="../../../../index.html#key188">tree walking</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Page Parser Generator</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
bugs and other problems.
Please report such in the category <em>page</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key399">dataflow</a>, <a href="../../../../index.html#key192">graph walking</a>, <a href="../../../../index.html#key189">page</a>, <a href="../../../../index.html#key187">parser generator</a>, <a href="../../../../index.html#key190">text processing</a>, <a href="../../../../index.html#key188">tree walking</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Page Parser Generator</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/page/page_util_peg.html.

207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
bugs and other problems.
Please report such in the category <em>page</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key189">page</a>, <a href="../../../../index.html#key187">parser generator</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key190">text processing</a>, <a href="../../../../index.html#key275">transformation</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Page Parser Generator</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
bugs and other problems.
Please report such in the category <em>page</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key189">page</a>, <a href="../../../../index.html#key187">parser generator</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key190">text processing</a>, <a href="../../../../index.html#key277">transformation</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Page Parser Generator</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/page/page_util_quote.html.

176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
bugs and other problems.
Please report such in the category <em>page</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key189">page</a>, <a href="../../../../index.html#key187">parser generator</a>, <a href="../../../../index.html#key598">quoting</a>, <a href="../../../../index.html#key190">text processing</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Page Parser Generator</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
bugs and other problems.
Please report such in the category <em>page</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key189">page</a>, <a href="../../../../index.html#key187">parser generator</a>, <a href="../../../../index.html#key601">quoting</a>, <a href="../../../../index.html#key190">text processing</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Page Parser Generator</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/png/png.html.

241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
bugs and other problems.
Please report such in the category <em>png</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key155">comment</a>, <a href="../../../../index.html#key121">image</a>, <a href="../../../../index.html#key697">png</a>, <a href="../../../../index.html#key696">timestamp</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>File formats</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004, Code: Aaron Faupell &lt;[email protected]&gt;<br>
Copyright &copy; 2004, Doc:  Andreas Kupries &lt;[email protected]&gt;</p>







|







241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
bugs and other problems.
Please report such in the category <em>png</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key155">comment</a>, <a href="../../../../index.html#key121">image</a>, <a href="../../../../index.html#key701">png</a>, <a href="../../../../index.html#key700">timestamp</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>File formats</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004, Code: Aaron Faupell &lt;[email protected]&gt;<br>
Copyright &copy; 2004, Doc:  Andreas Kupries &lt;[email protected]&gt;</p>

Changes to embedded/www/tcllib/files/modules/pop3/pop3.html.

150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
It works by opening the standard POP3 socket on the server,
transmitting the username and password, then providing a Tcl API to
access the POP3 protocol commands.  All server errors are returned as
Tcl errors (thrown) which must be caught with the Tcl <b class="cmd">catch</b>
command.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>







|


|







|
|







150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
It works by opening the standard POP3 socket on the server,
transmitting the username and password, then providing a Tcl API to
access the POP3 protocol commands.  All server errors are returned as
Tcl errors (thrown) which must be caught with the Tcl <b class="cmd">catch</b>
command.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
<dd><p>The retrieval mode determines how exactly messages are read from the
server.
The allowed values are <b class="const">retr</b>, <b class="const">list</b> and <b class="const">slow</b>.
The default is <b class="const">retr</b>. See <b class="cmd">::pop3::retrieve</b> for more
information.</p></dd>
<dt><b class="option">-socketcmd</b> cmdprefix</dt>
<dd><p>This option allows the user to overide the use of the builtin
<b class="cmd"><a href="../../../../index.html#key348">socket</a></b> command with any API-compatible command. The envisioned
main use is the securing of the new connection via SSL, through the
specification of the command <b class="cmd">tls::socket</b>. This command is
specially recognized as well, changing the default port of the
connection to <b class="const">995</b>.</p></dd>
<dt><b class="option">-stls</b> boolean</dt>
<dd><p>Setting this option tells the package to secure the connection using
SSL or TLS. It performs STARTTLS as described in IETF RFC 2595, it







|







193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
<dd><p>The retrieval mode determines how exactly messages are read from the
server.
The allowed values are <b class="const">retr</b>, <b class="const">list</b> and <b class="const">slow</b>.
The default is <b class="const">retr</b>. See <b class="cmd">::pop3::retrieve</b> for more
information.</p></dd>
<dt><b class="option">-socketcmd</b> cmdprefix</dt>
<dd><p>This option allows the user to overide the use of the builtin
<b class="cmd"><a href="../../../../index.html#key350">socket</a></b> command with any API-compatible command. The envisioned
main use is the securing of the new connection via SSL, through the
specification of the command <b class="cmd">tls::socket</b>. This command is
specially recognized as well, changing the default port of the
connection to <b class="const">995</b>.</p></dd>
<dt><b class="option">-stls</b> boolean</dt>
<dd><p>Setting this option tells the package to secure the connection using
SSL or TLS. It performs STARTTLS as described in IETF RFC 2595, it
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
<dt><a name="11"><b class="cmd">::pop3::close</b> <i class="arg">chan</i></a></dt>
<dd><p>Gracefully close the connect after sending a POP3 QUIT command down
the socket.</p></dd>
</dl>
</div>
<div id="section4" class="section"><h2><a name="section4">Secure mail transfer</a></h2>
<p>A pop3 connection can be secured with SSL/TLS by requiring the package
<b class="package"><a href="../../../../index.html#key327">TLS</a></b> and then using either the option <b class="option">-socketcmd</b> or
the option <b class="option">-stls</b> of the command <b class="cmd">pop3::open</b>.
The first method, option <b class="option">-socketcmd</b>, will force the use
of the <b class="cmd">tls::socket</b> command when opening the connection. This is
suitable for POP3 servers which expect SSL connections only. These will
generally be listening on port 995.</p>
<pre class="example">
	package require tls







|







300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
<dt><a name="11"><b class="cmd">::pop3::close</b> <i class="arg">chan</i></a></dt>
<dd><p>Gracefully close the connect after sending a POP3 QUIT command down
the socket.</p></dd>
</dl>
</div>
<div id="section4" class="section"><h2><a name="section4">Secure mail transfer</a></h2>
<p>A pop3 connection can be secured with SSL/TLS by requiring the package
<b class="package"><a href="../../../../index.html#key329">TLS</a></b> and then using either the option <b class="option">-socketcmd</b> or
the option <b class="option">-stls</b> of the command <b class="cmd">pop3::open</b>.
The first method, option <b class="option">-socketcmd</b>, will force the use
of the <b class="cmd">tls::socket</b> command when opening the connection. This is
suitable for POP3 servers which expect SSL connections only. These will
generally be listening on port 995.</p>
<pre class="example">
	package require tls
337
338
339
340
341
342
343
344
345
346
347
348
349
bugs and other problems.
Please report such in the category <em>pop3</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key331">email</a>, <a href="../../../../index.html#key326">mail</a>, <a href="../../../../index.html#key440">pop</a>, <a href="../../../../index.html#key439">pop3</a>, <a href="../../../../index.html#key438">rfc 1939</a>, <a href="../../../../index.html#key352">secure</a>, <a href="../../../../index.html#key355">ssl</a>, <a href="../../../../index.html#key327">tls</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>







|





337
338
339
340
341
342
343
344
345
346
347
348
349
bugs and other problems.
Please report such in the category <em>pop3</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key333">email</a>, <a href="../../../../index.html#key328">mail</a>, <a href="../../../../index.html#key442">pop</a>, <a href="../../../../index.html#key441">pop3</a>, <a href="../../../../index.html#key440">rfc 1939</a>, <a href="../../../../index.html#key354">secure</a>, <a href="../../../../index.html#key357">ssl</a>, <a href="../../../../index.html#key329">tls</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/pop3d/pop3d.html.

245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
mailbox contents is required. If no such command is specified the
server will claim that all mailboxes are empty. The interface which
has to be provided by the command prefix is described in section
<span class="sectref"><a href="#section4">Mailboxes</a></span>.</p></dd>
<dt><b class="option">-socket</b> <i class="arg">command</i></dt>
<dd><p>Defines a <i class="arg">command</i> prefix to call for opening the listening socket.
This can be used to make the pop3 server listen on a SSL socket
as provided by the <b class="package"><a href="../../../../index.html#key327">tls</a></b> package, see the command <b class="cmd">tls::socket</b>.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Authentication</a></h2>
<p>Here we describe the interface which has to be provided by the
authentication callback so that pop3 servers following the interface
of this module are able to use it.</p>
<dl class="definitions">







|







245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
mailbox contents is required. If no such command is specified the
server will claim that all mailboxes are empty. The interface which
has to be provided by the command prefix is described in section
<span class="sectref"><a href="#section4">Mailboxes</a></span>.</p></dd>
<dt><b class="option">-socket</b> <i class="arg">command</i></dt>
<dd><p>Defines a <i class="arg">command</i> prefix to call for opening the listening socket.
This can be used to make the pop3 server listen on a SSL socket
as provided by the <b class="package"><a href="../../../../index.html#key329">tls</a></b> package, see the command <b class="cmd">tls::socket</b>.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Authentication</a></h2>
<p>Here we describe the interface which has to be provided by the
authentication callback so that pop3 servers following the interface
of this module are able to use it.</p>
<dl class="definitions">
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
pop3 connection.</p></dd>
</dl>
</div>
<div id="section5" class="section"><h2><a name="section5">Secure mail transfer</a></h2>
<p>The option <b class="option">-socket</b> (see <span class="sectref"><a href="#section2">Options</a></span>) enables users of
the package to override how the server opens its listening socket.
The envisioned main use is the specification of the <b class="cmd">tls::socket</b>
command, see package <b class="package"><a href="../../../../index.html#key327">tls</a></b>, to secure the communication.</p>
<pre class="example">
	package require tls
	tls::init \\
		...
	pop3d::new S -socket tls::socket
	...
</pre>







|







304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
pop3 connection.</p></dd>
</dl>
</div>
<div id="section5" class="section"><h2><a name="section5">Secure mail transfer</a></h2>
<p>The option <b class="option">-socket</b> (see <span class="sectref"><a href="#section2">Options</a></span>) enables users of
the package to override how the server opens its listening socket.
The envisioned main use is the specification of the <b class="cmd">tls::socket</b>
command, see package <b class="package"><a href="../../../../index.html#key329">tls</a></b>, to secure the communication.</p>
<pre class="example">
	package require tls
	tls::init \\
		...
	pop3d::new S -socket tls::socket
	...
</pre>
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
bugs and other problems.
Please report such in the category <em>pop3d</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key665">network</a>, <a href="../../../../index.html#key439">pop3</a>, <a href="../../../../index.html#key133">protocol</a>, <a href="../../../../index.html#key438">rfc 1939</a>, <a href="../../../../index.html#key352">secure</a>, <a href="../../../../index.html#key355">ssl</a>, <a href="../../../../index.html#key327">tls</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002-2009 Andreas Kupries &lt;[email protected]&gt;<br>
Copyright &copy; 2005 Reinhard Max  &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|









328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
bugs and other problems.
Please report such in the category <em>pop3d</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key669">network</a>, <a href="../../../../index.html#key441">pop3</a>, <a href="../../../../index.html#key133">protocol</a>, <a href="../../../../index.html#key440">rfc 1939</a>, <a href="../../../../index.html#key354">secure</a>, <a href="../../../../index.html#key357">ssl</a>, <a href="../../../../index.html#key329">tls</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002-2009 Andreas Kupries &lt;[email protected]&gt;<br>
Copyright &copy; 2005 Reinhard Max  &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/pop3d/pop3d_dbox.html.

248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
bugs and other problems.
Please report such in the category <em>pop3d</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key665">network</a>, <a href="../../../../index.html#key439">pop3</a>, <a href="../../../../index.html#key133">protocol</a>, <a href="../../../../index.html#key329">rfc 822</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
bugs and other problems.
Please report such in the category <em>pop3d</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key669">network</a>, <a href="../../../../index.html#key441">pop3</a>, <a href="../../../../index.html#key133">protocol</a>, <a href="../../../../index.html#key331">rfc 822</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/pop3d/pop3d_udb.html.

189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<dt><a name="10"><i class="arg">dbName</i> <b class="method">save</b> <span class="opt">?<i class="arg">file</i>?</span></a></dt>
<dd><p>Saves the contents of the database into the given <i class="arg">file</i>. If the
file is not specified the system will use the path last used in a call
to <i class="arg">dbName</i> <b class="method">read</b>. The generated file can be read by the
<b class="method">read</b> method.</p></dd>
<dt><a name="11"><i class="arg">dbName</i> <b class="method">read</b> <i class="arg">file</i></a></dt>
<dd><p>Reads the specified <i class="arg">file</i> and adds the contained user definitions
to the database. As the file is actually <b class="cmd"><a href="../../../../index.html#key431">source</a></b>'d a safe
interpreter is employed to safeguard against malicious code. This
interpreter knows the <b class="cmd">add</b> command for adding users and their
associated data to this database. This command has the same argument
signature as the method <b class="method">add</b>. The path of the <i class="arg">file</i> is
remembered internally so that it can be used in the next call of
<i class="arg">dbName</i> <b class="method">save</b> without an argument.</p></dd>
</dl>
</div>
<div id="section2" class="section"><h2><a name="section2">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>pop3d</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key665">network</a>, <a href="../../../../index.html#key439">pop3</a>, <a href="../../../../index.html#key133">protocol</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|

















|








189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<dt><a name="10"><i class="arg">dbName</i> <b class="method">save</b> <span class="opt">?<i class="arg">file</i>?</span></a></dt>
<dd><p>Saves the contents of the database into the given <i class="arg">file</i>. If the
file is not specified the system will use the path last used in a call
to <i class="arg">dbName</i> <b class="method">read</b>. The generated file can be read by the
<b class="method">read</b> method.</p></dd>
<dt><a name="11"><i class="arg">dbName</i> <b class="method">read</b> <i class="arg">file</i></a></dt>
<dd><p>Reads the specified <i class="arg">file</i> and adds the contained user definitions
to the database. As the file is actually <b class="cmd"><a href="../../../../index.html#key433">source</a></b>'d a safe
interpreter is employed to safeguard against malicious code. This
interpreter knows the <b class="cmd">add</b> command for adding users and their
associated data to this database. This command has the same argument
signature as the method <b class="method">add</b>. The path of the <i class="arg">file</i> is
remembered internally so that it can be used in the next call of
<i class="arg">dbName</i> <b class="method">save</b> without an argument.</p></dd>
</dl>
</div>
<div id="section2" class="section"><h2><a name="section2">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>pop3d</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key669">network</a>, <a href="../../../../index.html#key441">pop3</a>, <a href="../../../../index.html#key133">protocol</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Added embedded/www/tcllib/files/modules/processman/processman.html.















































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199

<html><head>
<title>processman - processman</title>
<style type="text/css"><!--
    HTML {
	background: 	#FFFFFF;
	color: 		black;
    }
    BODY {
	background: 	#FFFFFF;
	color:	 	black;
    }
    DIV.doctools {
	margin-left:	10%;
	margin-right:	10%;
    }
    DIV.doctools H1,DIV.doctools H2 {
	margin-left:	-5%;
    }
    H1, H2, H3, H4 {
	margin-top: 	1em;
	font-family:	sans-serif;
	font-size:	large;
	color:		#005A9C;
	background: 	transparent;
	text-align:		left;
    }
    H1.title {
	text-align: center;
    }
    UL,OL {
	margin-right: 0em;
	margin-top: 3pt;
	margin-bottom: 3pt;
    }
    UL LI {
	list-style: disc;
    }
    OL LI {
	list-style: decimal;
    }
    DT {
	padding-top: 	1ex;
    }
    UL.toc,UL.toc UL, UL.toc UL UL {
	font:		normal 12pt/14pt sans-serif;
	list-style:	none;
    }
    LI.section, LI.subsection {
	list-style: 	none;
	margin-left: 	0em;
	text-indent:	0em;
	padding: 	0em;
    }
    PRE {
	display: 	block;
	font-family:	monospace;
	white-space:	pre;
	margin:		0%;
	padding-top:	0.5ex;
	padding-bottom:	0.5ex;
	padding-left:	1ex;
	padding-right:	1ex;
	width:		100%;
    }
    PRE.example {
	color: 		black;
	background: 	#f5dcb3;
	border:		1px solid black;
    }
    UL.requirements LI, UL.syntax LI {
	list-style: 	none;
	margin-left: 	0em;
	text-indent:	0em;
	padding:	0em;
    }
    DIV.synopsis {
	color: 		black;
	background: 	#80ffff;
	border:		1px solid black;
	font-family:	serif;
	margin-top: 	1em;
	margin-bottom: 	1em;
    }
    UL.syntax {
	margin-top: 	1em;
	border-top:	1px solid black;
    }
    UL.requirements {
	margin-bottom: 	1em;
	border-bottom:	1px solid black;
    }
--></style>
</head>
<! -- Generated from file 'processman.man' by tcllib/doctools with format 'html'
   -->
<! -- Copyright &copy; 2015 Sean Woods &lt;[email protected]&gt;
   -->
<! -- CVS: $Id$ processman.n
   -->
<body><div class="doctools">
<hr> [
   <a href="../../../../../../../../home">Tcllib Home</a>
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">processman(n) 0.1 tcllib &quot;processman&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>processman - Tool for automating the period callback of commands</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>
<li class="section"><a href="#section1">Description</a></li>
<li class="section"><a href="#section2">Commands</a></li>
<li class="section"><a href="#section3">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#category">Category</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">twapi 3.1</b></li>
<li>package require <b class="pkgname">cron 1.1</b></li>
<li>package require <b class="pkgname">processman <span class="opt">?0.1?</span></b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::processman::find_exe</b> <i class="arg">name</i></a></li>
<li><a href="#2"><b class="cmd">::processman::kill</b> <i class="arg">id</i></a></li>
<li><a href="#3"><b class="cmd">::processman::kill_all</b></a></li>
<li><a href="#4"><b class="cmd">::processman::killexe</b> <i class="arg">name</i></a></li>
<li><a href="#5"><b class="cmd">::processman::onexit</b> <i class="arg">id</i> <i class="arg">cmd</i></a></li>
<li><a href="#6"><b class="cmd">::processman::priority</b> <i class="arg">id</i> <i class="arg">level</i></a></li>
<li><a href="#7"><b class="cmd">::processman::process_list</b></a></li>
<li><a href="#8"><b class="cmd">::processman::process_list</b> <i class="arg">id</i></a></li>
<li><a href="#9"><b class="cmd">::processman::spawn</b> <i class="arg">id</i> <i class="arg">cmd</i> <i class="arg">args</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">processman</b> package provides a Pure-tcl set of utilities
to manage child processes in a platform-generic nature.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Commands</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::processman::find_exe</b> <i class="arg">name</i></a></dt>
<dd><p>Locate an executable by the name of <i class="arg">name</i> in the system path. On windows,
also add the .exe extention if not given.</p></dd>
<dt><a name="2"><b class="cmd">::processman::kill</b> <i class="arg">id</i></a></dt>
<dd><p>Kill a child process <i class="arg">id</i>.</p></dd>
<dt><a name="3"><b class="cmd">::processman::kill_all</b></a></dt>
<dd><p>Kill all processes spawned by this program</p></dd>
<dt><a name="4"><b class="cmd">::processman::killexe</b> <i class="arg">name</i></a></dt>
<dd><p>Kill a process identified by the executable. On Unix, this triggers a killall.
On windows, <b class="cmd">twapi::get_process_ids</b> is used to map a name one or more IDs,
which are then killed.</p></dd>
<dt><a name="5"><b class="cmd">::processman::onexit</b> <i class="arg">id</i> <i class="arg">cmd</i></a></dt>
<dd><p>Arrange to execute the script <i class="arg">cmd</i> when this programe detects that
process <i class="arg">id</i> as terminated.</p></dd>
<dt><a name="6"><b class="cmd">::processman::priority</b> <i class="arg">id</i> <i class="arg">level</i></a></dt>
<dd><p>Mark process <i class="arg">id</i> with the priorty <i class="arg">level</i>. Valid levels: low, high, default.</p>
<p>On Unix, the process is tagged using the <b class="cmd">nice</b> command.</p>
<p>On Windows, the process is modifed via the <b class="cmd">twapi::set_priority_class</b></p></dd>
<dt><a name="7"><b class="cmd">::processman::process_list</b></a></dt>
<dd><p>Return a list of processes that have been triggered by this program, as
well as a boolean flag to indicate if the process is still running.</p></dd>
<dt><a name="8"><b class="cmd">::processman::process_list</b> <i class="arg">id</i></a></dt>
<dd><p>Return true if process <i class="arg">id</i> is still running, false otherwise.</p></dd>
<dt><a name="9"><b class="cmd">::processman::spawn</b> <i class="arg">id</i> <i class="arg">cmd</i> <i class="arg">args</i></a></dt>
<dd><p>Start a child process, identified by <i class="arg">id</i>. <i class="arg">cmd</i> is the name
of the command to execute. <i class="arg">args</i> are arguments to pass to that command.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>odie</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key253">odie</a>, <a href="../../../../index.html#key254">processman</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>System</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2015 Sean Woods &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/profiler/profiler.html.

138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">profiler</b> package provides a simple Tcl source code
profiler.  It is a function-level profiler; that is, it collects only
function-level information, not the more detailed line-level
information.  It operates by redefining the Tcl <b class="cmd"><a href="../../../../index.html#key586">proc</a></b> command.
Profiling is initiated via the <b class="cmd">::profiler::init</b> command.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::profiler::init</b></a></dt>
<dd><p>Initiate profiling.  All procedures created after this command is
called will be profiled.  To profile an entire application, this







|







138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">profiler</b> package provides a simple Tcl source code
profiler.  It is a function-level profiler; that is, it collects only
function-level information, not the more detailed line-level
information.  It operates by redefining the Tcl <b class="cmd"><a href="../../../../index.html#key589">proc</a></b> command.
Profiling is initiated via the <b class="cmd">::profiler::init</b> command.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::profiler::init</b></a></dt>
<dd><p>Initiate profiling.  All procedures created after this command is
called will be profiled.  To profile an entire application, this
213
214
215
216
217
218
219
220
221
222
223
224
225
bugs and other problems.
Please report such in the category <em>profiler</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key100">performance</a>, <a href="../../../../index.html#key642">profile</a>, <a href="../../../../index.html#key641">speed</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
</div></body></html>







|





213
214
215
216
217
218
219
220
221
222
223
224
225
bugs and other problems.
Please report such in the category <em>profiler</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key100">performance</a>, <a href="../../../../index.html#key646">profile</a>, <a href="../../../../index.html#key645">speed</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/pt/pt_from_api.html.

263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
generate the serialization.
The specification of what a <i class="term">canonical</i> serialization is can be
found in the section <span class="sectref"><a href="#section5">PEG serialization format</a></span>.</p></dd>
</dl></dd>
</dl>
</li>
<li><p>A single usage cycle of a plugin consists of an invokation of
	the command <b class="cmd"><a href="../../../../index.html#key287">import</a></b>. This call has to leave the plugin in
	a state where another usage cycle can be run without problems.</p></li>
</ol>
</div>
<div id="section4" class="section"><h2><a name="section4">Usage</a></h2>
<p>To use a converter do</p>
<pre class="example">
    # Get the converter (single command here, not class)







|







263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
generate the serialization.
The specification of what a <i class="term">canonical</i> serialization is can be
found in the section <span class="sectref"><a href="#section5">PEG serialization format</a></span>.</p></dd>
</dl></dd>
</dl>
</li>
<li><p>A single usage cycle of a plugin consists of an invokation of
	the command <b class="cmd"><a href="../../../../index.html#key289">import</a></b>. This call has to leave the plugin in
	a state where another usage cycle can be run without problems.</p></li>
</ol>
</div>
<div id="section4" class="section"><h2><a name="section4">Usage</a></h2>
<p>To use a converter do</p>
<pre class="example">
    # Get the converter (single command here, not class)

Changes to embedded/www/tcllib/files/modules/pt/pt_param.html.

147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Are you lost ?
Do you have trouble understanding this document ?
In that case please read the overview provided by the
<i class="term"><a href="pt_introduction.html">Introduction to Parser Tools</a></i>. This document is the
entrypoint to the whole system the current package is a part of.</p>
<p>Welcome to the PackRat Machine (short: <i class="term"><a href="../../../../index.html#key513">PARAM</a></i>), a virtual
machine geared towards the support of recursive descent parsers,
especially packrat parsers. Towards this end it has features like the
caching and reuse of partial results, the caching of the encountered
input, and the ability to backtrack in both input and AST creation.</p>
<p>This document specifies the machine in terms of its architectural
state and instruction set.</p>
</div>







|







147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Are you lost ?
Do you have trouble understanding this document ?
In that case please read the overview provided by the
<i class="term"><a href="pt_introduction.html">Introduction to Parser Tools</a></i>. This document is the
entrypoint to the whole system the current package is a part of.</p>
<p>Welcome to the PackRat Machine (short: <i class="term"><a href="../../../../index.html#key515">PARAM</a></i>), a virtual
machine geared towards the support of recursive descent parsers,
especially packrat parsers. Towards this end it has features like the
caching and reuse of partial results, the caching of the encountered
input, and the ability to backtrack in both input and AST creation.</p>
<p>This document specifies the machine in terms of its architectural
state and instruction set.</p>
</div>

Changes to embedded/www/tcllib/files/modules/pt/pt_parse_peg.html.

174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
<p>Note here that the Parser Tools are based on Tcl 8.5+. In other words,
the channel argument is not restricted to files, sockets, etc. We have
the full power of <i class="term">reflected channels</i> available.</p>
<p>It should also be noted that the parser pulls the characters from the
input stream as it needs them. If a parser created by this package has
to be operated in a push aka event-driven manner it will be necessary
to go to Tcl 8.6+ and use the <b class="package"><a href="../coroutine/coro_auto.html">coroutine::auto</a></b> to wrap it
into a coroutine where <b class="cmd"><a href="../../../../index.html#key406">read</a></b> is properly changed for
push-operation.</p>
<p>Upon successful completion the command returns an abstract syntax tree
as its result.
This AST is in the form specified in section
<b class="sectref">AST serialization format</b>.
As a plain nested Tcl-list it can then be processed with any Tcl
commands the user likes, doing transformations, semantic checks, etc.







|







174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
<p>Note here that the Parser Tools are based on Tcl 8.5+. In other words,
the channel argument is not restricted to files, sockets, etc. We have
the full power of <i class="term">reflected channels</i> available.</p>
<p>It should also be noted that the parser pulls the characters from the
input stream as it needs them. If a parser created by this package has
to be operated in a push aka event-driven manner it will be necessary
to go to Tcl 8.6+ and use the <b class="package"><a href="../coroutine/coro_auto.html">coroutine::auto</a></b> to wrap it
into a coroutine where <b class="cmd"><a href="../../../../index.html#key408">read</a></b> is properly changed for
push-operation.</p>
<p>Upon successful completion the command returns an abstract syntax tree
as its result.
This AST is in the form specified in section
<b class="sectref">AST serialization format</b>.
As a plain nested Tcl-list it can then be processed with any Tcl
commands the user likes, doing transformations, semantic checks, etc.

Changes to embedded/www/tcllib/files/modules/pt/pt_parser_api.html.

192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<p>Note here that the Parser Tools are based on Tcl 8.5+. In other words,
the channel argument is not restricted to files, sockets, etc. We have
the full power of <i class="term">reflected channels</i> available.</p>
<p>It should also be noted that the parser pulls the characters from the
input stream as it needs them. If a parser created by this package has
to be operated in a push aka event-driven manner it will be necessary
to go to Tcl 8.6+ and use the <b class="package"><a href="../coroutine/coro_auto.html">coroutine::auto</a></b> to wrap it
into a coroutine where <b class="cmd"><a href="../../../../index.html#key406">read</a></b> is properly changed for
push-operation.</p>
<p>Upon successful completion the command returns an abstract syntax tree
as its result.
This AST is in the form specified in section
<span class="sectref"><a href="#section5">AST serialization format</a></span>.
As a plain nested Tcl-list it can then be processed with any Tcl
commands the user likes, doing transformations, semantic checks, etc.







|







192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<p>Note here that the Parser Tools are based on Tcl 8.5+. In other words,
the channel argument is not restricted to files, sockets, etc. We have
the full power of <i class="term">reflected channels</i> available.</p>
<p>It should also be noted that the parser pulls the characters from the
input stream as it needs them. If a parser created by this package has
to be operated in a push aka event-driven manner it will be necessary
to go to Tcl 8.6+ and use the <b class="package"><a href="../coroutine/coro_auto.html">coroutine::auto</a></b> to wrap it
into a coroutine where <b class="cmd"><a href="../../../../index.html#key408">read</a></b> is properly changed for
push-operation.</p>
<p>Upon successful completion the command returns an abstract syntax tree
as its result.
This AST is in the form specified in section
<span class="sectref"><a href="#section5">AST serialization format</a></span>.
As a plain nested Tcl-list it can then be processed with any Tcl
commands the user likes, doing transformations, semantic checks, etc.

Changes to embedded/www/tcllib/files/modules/pt/pt_peg_export_container.html.

144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">pt::peg::export::container <span class="opt">?1?</span></b></li>
<li>package require <b class="pkgname">pt::peg::to::container</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Are you lost ?
Do you have trouble understanding this document ?
In that case please read the overview provided by the







|







144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">pt::peg::export::container <span class="opt">?1?</span></b></li>
<li>package require <b class="pkgname">pt::peg::to::container</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Are you lost ?
Do you have trouble understanding this document ?
In that case please read the overview provided by the
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
Plugin API found in the <i class="term"><a href="pt_to_api.html">Parser Tools Export API</a></i>
specification.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a parsing expression
grammar, as specified in section <span class="sectref"><a href="#section5">PEG serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates CONTAINER markup encoding the grammar.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|







179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
Plugin API found in the <i class="term"><a href="pt_to_api.html">Parser Tools Export API</a></i>
specification.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a parsing expression
grammar, as specified in section <span class="sectref"><a href="#section5">PEG serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates CONTAINER markup encoding the grammar.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key345">CONTAINER</a>, <a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key347">CONTAINER</a>, <a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/pt/pt_peg_export_json.html.

144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">pt::peg::export::json <span class="opt">?1?</span></b></li>
<li>package require <b class="pkgname">pt::peg::to::json</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Are you lost ?
Do you have trouble understanding this document ?
In that case please read the overview provided by the







|







144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">pt::peg::export::json <span class="opt">?1?</span></b></li>
<li>package require <b class="pkgname">pt::peg::to::json</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Are you lost ?
Do you have trouble understanding this document ?
In that case please read the overview provided by the
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
Plugin API found in the <i class="term"><a href="pt_to_api.html">Parser Tools Export API</a></i>
specification.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a parsing expression
grammar, as specified in section <span class="sectref"><a href="#section5">PEG serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates JSON markup encoding the grammar.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|







179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
Plugin API found in the <i class="term"><a href="pt_to_api.html">Parser Tools Export API</a></i>
specification.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a parsing expression
grammar, as specified in section <span class="sectref"><a href="#section5">PEG serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates JSON markup encoding the grammar.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key255">JSON</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key257">JSON</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/pt/pt_peg_export_peg.html.

144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">pt::peg::export::peg <span class="opt">?1?</span></b></li>
<li>package require <b class="pkgname">pt::peg::to::peg</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Are you lost ?
Do you have trouble understanding this document ?
In that case please read the overview provided by the







|







144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">pt::peg::export::peg <span class="opt">?1?</span></b></li>
<li>package require <b class="pkgname">pt::peg::to::peg</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Are you lost ?
Do you have trouble understanding this document ?
In that case please read the overview provided by the
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
Plugin API found in the <i class="term"><a href="pt_to_api.html">Parser Tools Export API</a></i>
specification.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key256">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a parsing expression
grammar, as specified in section <span class="sectref"><a href="#section5">PEG serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates PEG markup encoding the grammar.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>







|







179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
Plugin API found in the <i class="term"><a href="pt_to_api.html">Parser Tools Export API</a></i>
specification.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key258">export</a></b> <i class="arg">serial</i> <i class="arg">configuration</i></a></dt>
<dd><p>This command takes the canonical serialization of a parsing expression
grammar, as specified in section <span class="sectref"><a href="#section5">PEG serialization format</a></span>,
and contained in <i class="arg">serial</i>, the <i class="arg">configuration</i>, a dictionary,
and generates PEG markup encoding the grammar.
The created string is then returned as the result of the command.</p></dd>
</dl>
</div>
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key256">export</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key258">export</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/pt/pt_peg_from_json.html.

558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key255">JSON</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key110">format conversion</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key257">JSON</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key110">format conversion</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/pt/pt_peg_import_json.html.

143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">pt::peg::import::json <span class="opt">?1?</span></b></li>
<li>package require <b class="pkgname">pt::peg::to::json</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Are you lost ?
Do you have trouble understanding this document ?
In that case please read the overview provided by the







|







143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">pt::peg::import::json <span class="opt">?1?</span></b></li>
<li>package require <b class="pkgname">pt::peg::to::json</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Are you lost ?
Do you have trouble understanding this document ?
In that case please read the overview provided by the
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
Plugin API found in the <i class="term"><a href="pt_from_api.html">Parser Tools Import API</a></i>
specification.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">text</i></a></dt>
<dd><p>This command takes the JSON markup encoding a parsing
expression grammar and contained in <i class="arg">text</i>, and generates the
canonical serialization of said grammar, as specified in section
<span class="sectref"><a href="#section4">PEG serialization format</a></span>.
The created value is then returned as the result of the command.</p></dd>
</dl>
</div>







|







178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
Plugin API found in the <i class="term"><a href="pt_from_api.html">Parser Tools Import API</a></i>
specification.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">text</i></a></dt>
<dd><p>This command takes the JSON markup encoding a parsing
expression grammar and contained in <i class="arg">text</i>, and generates the
canonical serialization of said grammar, as specified in section
<span class="sectref"><a href="#section4">PEG serialization format</a></span>.
The created value is then returned as the result of the command.</p></dd>
</dl>
</div>
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key255">JSON</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key287">import</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key257">JSON</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key289">import</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/pt/pt_peg_import_peg.html.

143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">pt::peg::import::peg <span class="opt">?1?</span></b></li>
<li>package require <b class="pkgname">pt::peg::to::peg</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Are you lost ?
Do you have trouble understanding this document ?
In that case please read the overview provided by the







|







143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.5</b></li>
<li>package require <b class="pkgname">pt::peg::import::peg <span class="opt">?1?</span></b></li>
<li>package require <b class="pkgname">pt::peg::to::peg</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Are you lost ?
Do you have trouble understanding this document ?
In that case please read the overview provided by the
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
Plugin API found in the <i class="term"><a href="pt_from_api.html">Parser Tools Import API</a></i>
specification.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key287">import</a></b> <i class="arg">text</i></a></dt>
<dd><p>This command takes the PEG markup encoding a parsing
expression grammar and contained in <i class="arg">text</i>, and generates the
canonical serialization of said grammar, as specified in section
<span class="sectref"><a href="#section4">PEG serialization format</a></span>.
The created value is then returned as the result of the command.</p></dd>
</dl>
</div>







|







178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
</ol>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<p>The API provided by this package satisfies the specification of the
Plugin API found in the <i class="term"><a href="pt_from_api.html">Parser Tools Import API</a></i>
specification.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd"><a href="../../../../index.html#key289">import</a></b> <i class="arg">text</i></a></dt>
<dd><p>This command takes the PEG markup encoding a parsing
expression grammar and contained in <i class="arg">text</i>, and generates the
canonical serialization of said grammar, as specified in section
<span class="sectref"><a href="#section4">PEG serialization format</a></span>.
The created value is then returned as the result of the command.</p></dd>
</dl>
</div>
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key287">import</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key289">import</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key250">plugin</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/pt/pt_peg_interp.html.

208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<p>Note here that the Parser Tools are based on Tcl 8.5+. In other words,
the channel argument is not restricted to files, sockets, etc. We have
the full power of <i class="term">reflected channels</i> available.</p>
<p>It should also be noted that the parser pulls the characters from the
input stream as it needs them. If a parser created by this package has
to be operated in a push aka event-driven manner it will be necessary
to go to Tcl 8.6+ and use the <b class="package"><a href="../coroutine/coro_auto.html">coroutine::auto</a></b> to wrap it
into a coroutine where <b class="cmd"><a href="../../../../index.html#key406">read</a></b> is properly changed for
push-operation.</p>
<p>Upon successful completion the command returns an abstract syntax tree
as its result.
This AST is in the form specified in section
<span class="sectref"><a href="#section2">AST serialization format</a></span>.
As a plain nested Tcl-list it can then be processed with any Tcl
commands the user likes, doing transformations, semantic checks, etc.







|







208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<p>Note here that the Parser Tools are based on Tcl 8.5+. In other words,
the channel argument is not restricted to files, sockets, etc. We have
the full power of <i class="term">reflected channels</i> available.</p>
<p>It should also be noted that the parser pulls the characters from the
input stream as it needs them. If a parser created by this package has
to be operated in a push aka event-driven manner it will be necessary
to go to Tcl 8.6+ and use the <b class="package"><a href="../coroutine/coro_auto.html">coroutine::auto</a></b> to wrap it
into a coroutine where <b class="cmd"><a href="../../../../index.html#key408">read</a></b> is properly changed for
push-operation.</p>
<p>Upon successful completion the command returns an abstract syntax tree
as its result.
This AST is in the form specified in section
<span class="sectref"><a href="#section2">AST serialization format</a></span>.
As a plain nested Tcl-list it can then be processed with any Tcl
commands the user likes, doing transformations, semantic checks, etc.

Changes to embedded/www/tcllib/files/modules/pt/pt_peg_introduction.html.

193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
<div id="section2" class="section"><h2><a name="section2">Formal definition</a></h2>
<p>For the mathematically inclined, a Parsing Expression Grammar is a
4-tuple (VN,VT,R,eS) where</p>
<ul class="itemized">
<li><p>VN is a set of <i class="term">nonterminal symbols</i>,</p></li>
<li><p>VT is a set of <i class="term">terminal symbols</i>,</p></li>
<li><p>R is a finite set of rules, where each rule is a pair (A,e), A in VN,
and <i class="term"><a href="../../../../index.html#key798">e</a></i> a <i class="term"><a href="../../../../index.html#key8">parsing expression</a></i>.</p></li>
<li><p>eS is a parsing expression, the <i class="term">start expression</i>.</p></li>
</ul>
<p>Further constraints are</p>
<ul class="itemized">
<li><p>The intersection of VN and VT is empty.</p></li>
<li><p>For all A in VT exists exactly one pair (A,e) in R. In other words, R
is a function from nonterminal symbols to parsing expressions.</p></li>
</ul>
<p>Parsing expressions are inductively defined via</p>
<ul class="itemized">
<li><p>The empty string (epsilon) is a parsing expression.</p></li>
<li><p>A terminal symbol <i class="term">a</i> is a parsing expression.</p></li>
<li><p>A nonterminal symbol <i class="term">A</i> is a parsing expression.</p></li>
<li><p><i class="term">e1</i><i class="term">e2</i> is a parsing expression for parsing expressions
<i class="term">e1</i> and <i class="term">2</i>. This is called <i class="term">sequence</i>.</p></li>
<li><p><i class="term">e1</i>/<i class="term">e2</i> is a parsing expression for parsing expressions
<i class="term">e1</i> and <i class="term">2</i>. This is called <i class="term">ordered choice</i>.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key798">e</a></i>* is a parsing expression for parsing expression
<i class="term"><a href="../../../../index.html#key798">e</a></i>. This is called <i class="term">zero-or-more repetitions</i>, also known
as <i class="term">kleene closure</i>.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key798">e</a></i>+ is a parsing expression for parsing expression
<i class="term"><a href="../../../../index.html#key798">e</a></i>. This is called <i class="term">one-or-more repetitions</i>, also known
as <i class="term">positive kleene closure</i>.</p></li>
<li><p>!<i class="term"><a href="../../../../index.html#key798">e</a></i> is a parsing expression for parsing expression
<i class="term">e1</i>. This is called a <i class="term">not lookahead predicate</i>.</p></li>
<li><p>&amp;<i class="term"><a href="../../../../index.html#key798">e</a></i> is a parsing expression for parsing expression
<i class="term">e1</i>. This is called an <i class="term">and lookahead predicate</i>.</p></li>
</ul>
<p>PEGs are used to define a grammatical structure for streams of symbols
over VT. They are a modern phrasing of older formalisms invented by
Alexander Birham. These formalisms were called TS (TMG recognition
scheme), and gTS (generalized TS). Later they were renamed to TPDL
(Top-Down Parsing Languages) and gTPDL (generalized TPDL).</p>







|

















|
|

|
|

|

|







193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
<div id="section2" class="section"><h2><a name="section2">Formal definition</a></h2>
<p>For the mathematically inclined, a Parsing Expression Grammar is a
4-tuple (VN,VT,R,eS) where</p>
<ul class="itemized">
<li><p>VN is a set of <i class="term">nonterminal symbols</i>,</p></li>
<li><p>VT is a set of <i class="term">terminal symbols</i>,</p></li>
<li><p>R is a finite set of rules, where each rule is a pair (A,e), A in VN,
and <i class="term"><a href="../../../../index.html#key802">e</a></i> a <i class="term"><a href="../../../../index.html#key8">parsing expression</a></i>.</p></li>
<li><p>eS is a parsing expression, the <i class="term">start expression</i>.</p></li>
</ul>
<p>Further constraints are</p>
<ul class="itemized">
<li><p>The intersection of VN and VT is empty.</p></li>
<li><p>For all A in VT exists exactly one pair (A,e) in R. In other words, R
is a function from nonterminal symbols to parsing expressions.</p></li>
</ul>
<p>Parsing expressions are inductively defined via</p>
<ul class="itemized">
<li><p>The empty string (epsilon) is a parsing expression.</p></li>
<li><p>A terminal symbol <i class="term">a</i> is a parsing expression.</p></li>
<li><p>A nonterminal symbol <i class="term">A</i> is a parsing expression.</p></li>
<li><p><i class="term">e1</i><i class="term">e2</i> is a parsing expression for parsing expressions
<i class="term">e1</i> and <i class="term">2</i>. This is called <i class="term">sequence</i>.</p></li>
<li><p><i class="term">e1</i>/<i class="term">e2</i> is a parsing expression for parsing expressions
<i class="term">e1</i> and <i class="term">2</i>. This is called <i class="term">ordered choice</i>.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key802">e</a></i>* is a parsing expression for parsing expression
<i class="term"><a href="../../../../index.html#key802">e</a></i>. This is called <i class="term">zero-or-more repetitions</i>, also known
as <i class="term">kleene closure</i>.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key802">e</a></i>+ is a parsing expression for parsing expression
<i class="term"><a href="../../../../index.html#key802">e</a></i>. This is called <i class="term">one-or-more repetitions</i>, also known
as <i class="term">positive kleene closure</i>.</p></li>
<li><p>!<i class="term"><a href="../../../../index.html#key802">e</a></i> is a parsing expression for parsing expression
<i class="term">e1</i>. This is called a <i class="term">not lookahead predicate</i>.</p></li>
<li><p>&amp;<i class="term"><a href="../../../../index.html#key802">e</a></i> is a parsing expression for parsing expression
<i class="term">e1</i>. This is called an <i class="term">and lookahead predicate</i>.</p></li>
</ul>
<p>PEGs are used to define a grammatical structure for streams of symbols
over VT. They are a modern phrasing of older formalisms invented by
Alexander Birham. These formalisms were called TS (TMG recognition
scheme), and gTS (generalized TS). Later they were renamed to TPDL
(Top-Down Parsing Languages) and gTPDL (generalized TPDL).</p>

Changes to embedded/www/tcllib/files/modules/pt/pt_peg_to_container.html.

551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key345">CONTAINER</a>, <a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key110">format conversion</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key347">CONTAINER</a>, <a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key110">format conversion</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/pt/pt_peg_to_cparam.html.

584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key801">CPARAM</a>, <a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key110">format conversion</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key805">CPARAM</a>, <a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key110">format conversion</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/pt/pt_peg_to_json.html.

608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key255">JSON</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key110">format conversion</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key257">JSON</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key110">format conversion</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/pt/pt_peg_to_param.html.

1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key513">PARAM</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key110">format conversion</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
bugs and other problems.
Please report such in the category <em>pt</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key3">EBNF</a>, <a href="../../../../index.html#key15">LL(k)</a>, <a href="../../../../index.html#key515">PARAM</a>, <a href="../../../../index.html#key6">PEG</a>, <a href="../../../../index.html#key7">TDPL</a>, <a href="../../../../index.html#key4">context-free languages</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key0">expression</a>, <a href="../../../../index.html#key110">format conversion</a>, <a href="../../../../index.html#key11">grammar</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key9">parser</a>, <a href="../../../../index.html#key8">parsing expression</a>, <a href="../../../../index.html#key14">parsing expression grammar</a>, <a href="../../../../index.html#key1">push down automaton</a>, <a href="../../../../index.html#key10">recursive descent</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key2">state</a>, <a href="../../../../index.html#key13">top-down parsing languages</a>, <a href="../../../../index.html#key12">transducer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Parsing and Grammars</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/pt/pt_rdengine.html.

294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
<p>Note here that the Parser Tools are based on Tcl 8.5+. In other words,
the channel argument is not restricted to files, sockets, etc. We have
the full power of <i class="term">reflected channels</i> available.</p>
<p>It should also be noted that the parser pulls the characters from the
input stream as it needs them. If a parser created by this package has
to be operated in a push aka event-driven manner it will be necessary
to go to Tcl 8.6+ and use the <b class="package"><a href="../coroutine/coro_auto.html">coroutine::auto</a></b> to wrap it
into a coroutine where <b class="cmd"><a href="../../../../index.html#key406">read</a></b> is properly changed for
push-operation.</p></dd>
<dt><a name="4"><i class="arg">objectName</i> <b class="method">complete</b></a></dt>
<dd><p>This method completes parsing, either returning the AST made from the
elements of ARS, or throwing an error containing the current ER.</p></dd>
<dt><a name="5"><i class="arg">objectName</i> <b class="method">chan</b></a></dt>
<dd><p>This method returns the handle of the channel which is IN.</p></dd>
<dt><a name="6"><i class="arg">objectName</i> <b class="method">line</b></a></dt>







|







294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
<p>Note here that the Parser Tools are based on Tcl 8.5+. In other words,
the channel argument is not restricted to files, sockets, etc. We have
the full power of <i class="term">reflected channels</i> available.</p>
<p>It should also be noted that the parser pulls the characters from the
input stream as it needs them. If a parser created by this package has
to be operated in a push aka event-driven manner it will be necessary
to go to Tcl 8.6+ and use the <b class="package"><a href="../coroutine/coro_auto.html">coroutine::auto</a></b> to wrap it
into a coroutine where <b class="cmd"><a href="../../../../index.html#key408">read</a></b> is properly changed for
push-operation.</p></dd>
<dt><a name="4"><i class="arg">objectName</i> <b class="method">complete</b></a></dt>
<dd><p>This method completes parsing, either returning the AST made from the
elements of ARS, or throwing an error containing the current ER.</p></dd>
<dt><a name="5"><i class="arg">objectName</i> <b class="method">chan</b></a></dt>
<dd><p>This method returns the handle of the channel which is IN.</p></dd>
<dt><a name="6"><i class="arg">objectName</i> <b class="method">line</b></a></dt>

Changes to embedded/www/tcllib/files/modules/pt/pt_to_api.html.

254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
options any converter has to accept, and thus any plugin as well.
Any other options accepted by a specific plugin will be described in
its manpage.</p></dd>
</dl></dd>
</dl>
</li>
<li><p>A single usage cycle of a plugin consists of an invokation of
	the command <b class="cmd"><a href="../../../../index.html#key256">export</a></b>. This call has to leave the plugin in
	a state where another usage cycle can be run without problems.</p></li>
</ol>
</div>
<div id="section4" class="section"><h2><a name="section4">Options</a></h2>
<p>Each export converter and plugin for an export converter has to accept
the options below in their <b class="method">configure</b> method. Converters are
allowed to ignore the contents of these options when performing a







|







254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
options any converter has to accept, and thus any plugin as well.
Any other options accepted by a specific plugin will be described in
its manpage.</p></dd>
</dl></dd>
</dl>
</li>
<li><p>A single usage cycle of a plugin consists of an invokation of
	the command <b class="cmd"><a href="../../../../index.html#key258">export</a></b>. This call has to leave the plugin in
	a state where another usage cycle can be run without problems.</p></li>
</ol>
</div>
<div id="section4" class="section"><h2><a name="section4">Options</a></h2>
<p>Each export converter and plugin for an export converter has to accept
the options below in their <b class="method">configure</b> method. Converters are
allowed to ignore the contents of these options when performing a

Changes to embedded/www/tcllib/files/modules/rcs/rcs.html.

141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<li><a href="#5"><b class="cmd">::rcs::decodeRcsPatch</b> <i class="arg">text</i></a></li>
<li><a href="#6"><b class="cmd">::rcs::encodeRcsPatch</b> <i class="arg">pcmds</i></a></li>
<li><a href="#7"><b class="cmd">::rcs::applyRcsPatch</b> <i class="arg">text</i> <i class="arg">pcmds</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <i class="term">Revision Control System</i>, short <i class="term"><a href="../../../../index.html#key626">RCS</a></i>, is a set of
applications and related data formats which allow a system to persist
the history of changes to a text. It, and its relative SCCS are the
basis for many other such systems, like <i class="term"><a href="../../../../index.html#key627">CVS</a></i>, etc.</p>
<p>This package <em>does not</em> implement RCS.</p>
<p>It only provides a number of low level commands which should be useful
in the implementation of any revision management system, namely:</p>
<ol class="enumerated">
<li><p>The conversion of texts into and out of a data structures which allow
the easy modification of such text by <i class="term">patches</i>, i.e. sequences
of instructions for the transformation of one text into an other.</p></li>







|


|







141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<li><a href="#5"><b class="cmd">::rcs::decodeRcsPatch</b> <i class="arg">text</i></a></li>
<li><a href="#6"><b class="cmd">::rcs::encodeRcsPatch</b> <i class="arg">pcmds</i></a></li>
<li><a href="#7"><b class="cmd">::rcs::applyRcsPatch</b> <i class="arg">text</i> <i class="arg">pcmds</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <i class="term">Revision Control System</i>, short <i class="term"><a href="../../../../index.html#key630">RCS</a></i>, is a set of
applications and related data formats which allow a system to persist
the history of changes to a text. It, and its relative SCCS are the
basis for many other such systems, like <i class="term"><a href="../../../../index.html#key631">CVS</a></i>, etc.</p>
<p>This package <em>does not</em> implement RCS.</p>
<p>It only provides a number of low level commands which should be useful
in the implementation of any revision management system, namely:</p>
<ol class="enumerated">
<li><p>The conversion of texts into and out of a data structures which allow
the easy modification of such text by <i class="term">patches</i>, i.e. sequences
of instructions for the transformation of one text into an other.</p></li>
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
stores the resulting text in the file with path <i class="arg">filename</i>. The
file is created if it did not exist, and must be writable. The result
of the command is the empty string.</p></dd>
<dt><a name="5"><b class="cmd">::rcs::decodeRcsPatch</b> <i class="arg">text</i></a></dt>
<dd><p>Converts the <i class="arg">text</i> argument into a patch command list (PCL) as
specified in the section <span class="sectref"><a href="#section5">RCS PATCH COMMAND LIST</a></span> and
returns this list as its result.
It is assumed that the input text is in <i class="term"><a href="../../../../index.html#key628">diff -n format</a></i>, also
known as <i class="term"><a href="../../../../index.html#key625">RCS patch</a></i> format, as specified in the section
<span class="sectref"><a href="#section4">RCS PATCH FORMAT</a></span>.
Please note that the command ignores no-ops in the input, in other
words the resulting PCL contains only instructions doing something.</p></dd>
<dt><a name="6"><b class="cmd">::rcs::encodeRcsPatch</b> <i class="arg">pcmds</i></a></dt>
<dd><p>This command provides the complementary operation to
<b class="cmd">::rcs::decodeRcsPatch</b>. It convert a patch comand list (PCL) list
as specified in the section <span class="sectref"><a href="#section5">RCS PATCH COMMAND LIST</a></span> back







|
|







185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
stores the resulting text in the file with path <i class="arg">filename</i>. The
file is created if it did not exist, and must be writable. The result
of the command is the empty string.</p></dd>
<dt><a name="5"><b class="cmd">::rcs::decodeRcsPatch</b> <i class="arg">text</i></a></dt>
<dd><p>Converts the <i class="arg">text</i> argument into a patch command list (PCL) as
specified in the section <span class="sectref"><a href="#section5">RCS PATCH COMMAND LIST</a></span> and
returns this list as its result.
It is assumed that the input text is in <i class="term"><a href="../../../../index.html#key632">diff -n format</a></i>, also
known as <i class="term"><a href="../../../../index.html#key629">RCS patch</a></i> format, as specified in the section
<span class="sectref"><a href="#section4">RCS PATCH FORMAT</a></span>.
Please note that the command ignores no-ops in the input, in other
words the resulting PCL contains only instructions doing something.</p></dd>
<dt><a name="6"><b class="cmd">::rcs::encodeRcsPatch</b> <i class="arg">pcmds</i></a></dt>
<dd><p>This command provides the complementary operation to
<b class="cmd">::rcs::decodeRcsPatch</b>. It convert a patch comand list (PCL) list
as specified in the section <span class="sectref"><a href="#section5">RCS PATCH COMMAND LIST</a></span> back
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
canonical representation of their input text. The commands taking a
dictionary and returning text will generally accept all
representations, canonical or not.</p>
<p>The result of applying a patch to a text dictionary will in general
cause the dictionary to become non-canonical.</p>
</div>
<div id="section4" class="section"><h2><a name="section4">RCS PATCH FORMAT</a></h2>
<p>A <i class="term"><a href="../../../../index.html#key655">patch</a></i> is in general a series of instructions how to transform
an input text T into a different text T', and also encoded in text
form as well.</p>
<p>The text format for patches understood by this package is a very
simple one, known under the names <i class="term"><a href="../../../../index.html#key625">RCS patch</a></i> or
<i class="term"><a href="../../../../index.html#key628">diff -n format</a></i>.</p>
<p>Patches in this format contain only two different commands, for the
deletion of old text, and addition of new text. The replacement of
some text by a different text is handled as combination of a deletion
following by an addition.</p>
<p>The format is line oriented, with each line containing either a
command or text data associated with the preceding command.
The first line of a <i class="term"><a href="../../../../index.html#key625">RCS patch</a></i> is always a command line.</p>
<p>The commands are:</p>
<dl class="definitions">
<dt>&quot;&quot;</dt>
<dd><p>The empty line is a command which does nothing.</p></dd>
<dt>&quot;a<b class="variable">start</b> <b class="variable">n</b>&quot;</dt>
<dd><p>A line starting with the character <b class="const">a</b> is a command for the
addition of text to the output. It is followed by <b class="variable">n</b> lines of







|



|
|






|







243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
canonical representation of their input text. The commands taking a
dictionary and returning text will generally accept all
representations, canonical or not.</p>
<p>The result of applying a patch to a text dictionary will in general
cause the dictionary to become non-canonical.</p>
</div>
<div id="section4" class="section"><h2><a name="section4">RCS PATCH FORMAT</a></h2>
<p>A <i class="term"><a href="../../../../index.html#key659">patch</a></i> is in general a series of instructions how to transform
an input text T into a different text T', and also encoded in text
form as well.</p>
<p>The text format for patches understood by this package is a very
simple one, known under the names <i class="term"><a href="../../../../index.html#key629">RCS patch</a></i> or
<i class="term"><a href="../../../../index.html#key632">diff -n format</a></i>.</p>
<p>Patches in this format contain only two different commands, for the
deletion of old text, and addition of new text. The replacement of
some text by a different text is handled as combination of a deletion
following by an addition.</p>
<p>The format is line oriented, with each line containing either a
command or text data associated with the preceding command.
The first line of a <i class="term"><a href="../../../../index.html#key629">RCS patch</a></i> is always a command line.</p>
<p>The commands are:</p>
<dl class="definitions">
<dt>&quot;&quot;</dt>
<dd><p>The empty line is a command which does nothing.</p></dd>
<dt>&quot;a<b class="variable">start</b> <b class="variable">n</b>&quot;</dt>
<dd><p>A line starting with the character <b class="const">a</b> is a command for the
addition of text to the output. It is followed by <b class="variable">n</b> lines of
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
bugs and other problems.
Please report such in the category <em>rcs</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../../../../index.html#key323">struct</a>, <a href="../textutil/textutil.html">textutil</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key627">CVS</a>, <a href="../../../../index.html#key626">RCS</a>, <a href="../../../../index.html#key625">RCS patch</a>, <a href="../../../../index.html#key624">SCCS</a>, <a href="../../../../index.html#key628">diff -n format</a>, <a href="../../../../index.html#key629">patching</a>, <a href="../../../../index.html#key631">text conversion</a>, <a href="../../../../index.html#key630">text differences</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005, Andreas Kupries &lt;[email protected]&gt;<br>
Copyright &copy; 2005, Colin McCormack &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|


|









332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
bugs and other problems.
Please report such in the category <em>rcs</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../../../../index.html#key325">struct</a>, <a href="../textutil/textutil.html">textutil</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key631">CVS</a>, <a href="../../../../index.html#key630">RCS</a>, <a href="../../../../index.html#key629">RCS patch</a>, <a href="../../../../index.html#key628">SCCS</a>, <a href="../../../../index.html#key632">diff -n format</a>, <a href="../../../../index.html#key633">patching</a>, <a href="../../../../index.html#key635">text conversion</a>, <a href="../../../../index.html#key634">text differences</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005, Andreas Kupries &lt;[email protected]&gt;<br>
Copyright &copy; 2005, Colin McCormack &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/report/report.html.

152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
<li><a href="#14"><i class="arg">reportName</i> <b class="method">bcaption</b> <i class="arg">size</i></a></li>
<li><a href="#15"><i class="arg">reportName</i> <b class="cmd">size</b> <i class="arg">column</i> <span class="opt">?<i class="arg">number</i>|<b class="const">dyn</b>?</span></a></li>
<li><a href="#16"><i class="arg">reportName</i> <b class="cmd">sizes</b> <span class="opt">?<i class="arg">size-list</i>?</span></a></li>
<li><a href="#17"><i class="arg">reportName</i> <b class="cmd">pad</b> <i class="arg">column</i> <span class="opt">?<b class="const">left</b>|<b class="const">right</b>|<b class="const">both</b> <span class="opt">?<i class="arg">padstring</i>?</span>?</span></a></li>
<li><a href="#18"><i class="arg">reportName</i> <b class="cmd">justify</b> <i class="arg">column</i> <span class="opt">?<b class="const">left</b>|<b class="const">right</b>|<b class="const">center</b>?</span></a></li>
<li><a href="#19"><i class="arg">reportName</i> <b class="cmd">printmatrix</b> <i class="arg">matrix</i></a></li>
<li><a href="#20"><i class="arg">reportName</i> <b class="cmd">printmatrix2channel</b> <i class="arg">matrix chan</i></a></li>
<li><a href="#21"><i class="arg">reportName</i> <b class="cmd"><a href="../../../../index.html#key502">columns</a></b></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides report objects which can be used by the
formatting methods of matrix objects to generate tabular reports of
the matrix in various forms. The report objects defined here break
each report down into three <span class="sectref"><a href="#section2">REGIONS</a></span> and ten classes of
<i class="term"><a href="../../../../index.html#key505">lines</a></i> (various separator- and data-lines). See the following
section for more detailed explanations.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::report::report</b> <i class="arg">reportName</i> <i class="arg">columns</i> <span class="opt">?<b class="const">style</b> <i class="arg">style arg...</i>?</span></a></dt>
<dd><p>Creates a new report object for a report having <i class="arg">columns</i> columns
with an associated global Tcl command whose name is
<i class="arg">reportName</i>. This command may be used to invoke various
configuration operations on the report. It has the following general







|








|







152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
<li><a href="#14"><i class="arg">reportName</i> <b class="method">bcaption</b> <i class="arg">size</i></a></li>
<li><a href="#15"><i class="arg">reportName</i> <b class="cmd">size</b> <i class="arg">column</i> <span class="opt">?<i class="arg">number</i>|<b class="const">dyn</b>?</span></a></li>
<li><a href="#16"><i class="arg">reportName</i> <b class="cmd">sizes</b> <span class="opt">?<i class="arg">size-list</i>?</span></a></li>
<li><a href="#17"><i class="arg">reportName</i> <b class="cmd">pad</b> <i class="arg">column</i> <span class="opt">?<b class="const">left</b>|<b class="const">right</b>|<b class="const">both</b> <span class="opt">?<i class="arg">padstring</i>?</span>?</span></a></li>
<li><a href="#18"><i class="arg">reportName</i> <b class="cmd">justify</b> <i class="arg">column</i> <span class="opt">?<b class="const">left</b>|<b class="const">right</b>|<b class="const">center</b>?</span></a></li>
<li><a href="#19"><i class="arg">reportName</i> <b class="cmd">printmatrix</b> <i class="arg">matrix</i></a></li>
<li><a href="#20"><i class="arg">reportName</i> <b class="cmd">printmatrix2channel</b> <i class="arg">matrix chan</i></a></li>
<li><a href="#21"><i class="arg">reportName</i> <b class="cmd"><a href="../../../../index.html#key504">columns</a></b></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides report objects which can be used by the
formatting methods of matrix objects to generate tabular reports of
the matrix in various forms. The report objects defined here break
each report down into three <span class="sectref"><a href="#section2">REGIONS</a></span> and ten classes of
<i class="term"><a href="../../../../index.html#key507">lines</a></i> (various separator- and data-lines). See the following
section for more detailed explanations.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::report::report</b> <i class="arg">reportName</i> <i class="arg">columns</i> <span class="opt">?<b class="const">style</b> <i class="arg">style arg...</i>?</span></a></dt>
<dd><p>Creates a new report object for a report having <i class="arg">columns</i> columns
with an associated global Tcl command whose name is
<i class="arg">reportName</i>. This command may be used to invoke various
configuration operations on the report. It has the following general
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
data region is allowed to be empty.</p></dd>
<dt><a name="20"><i class="arg">reportName</i> <b class="cmd">printmatrix2channel</b> <i class="arg">matrix chan</i></a></dt>
<dd><p>Formats the <i class="arg">matrix</i> according to the configuration of the report
and writes the result into the channel <i class="arg">chan</i>. The matrix has to
have the same number of columns as the report. The matrix also has to
have enough rows so that the top and bottom caption regions do not
overlap. The data region is allowed to be empty.</p></dd>
<dt><a name="21"><i class="arg">reportName</i> <b class="cmd"><a href="../../../../index.html#key502">columns</a></b></a></dt>
<dd><p>Returns the number of columns in the report.</p></dd>
</dl>
<p>The methods <b class="method">size</b>, <b class="method">pad</b> and <b class="method">justify</b> all take
a column index as their first argument. This index is allowed to use
all the forms of an index as accepted by the <b class="cmd">lindex</b> command. The
allowed range for indices is
	&quot;0,...,[<b class="variable">reportName</b> columns]-1&quot;.</p>







|







400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
data region is allowed to be empty.</p></dd>
<dt><a name="20"><i class="arg">reportName</i> <b class="cmd">printmatrix2channel</b> <i class="arg">matrix chan</i></a></dt>
<dd><p>Formats the <i class="arg">matrix</i> according to the configuration of the report
and writes the result into the channel <i class="arg">chan</i>. The matrix has to
have the same number of columns as the report. The matrix also has to
have enough rows so that the top and bottom caption regions do not
overlap. The data region is allowed to be empty.</p></dd>
<dt><a name="21"><i class="arg">reportName</i> <b class="cmd"><a href="../../../../index.html#key504">columns</a></b></a></dt>
<dd><p>Returns the number of columns in the report.</p></dd>
</dl>
<p>The methods <b class="method">size</b>, <b class="method">pad</b> and <b class="method">justify</b> all take
a column index as their first argument. This index is allowed to use
all the forms of an index as accepted by the <b class="cmd">lindex</b> command. The
allowed range for indices is
	&quot;0,...,[<b class="variable">reportName</b> columns]-1&quot;.</p>

Changes to embedded/www/tcllib/files/modules/rest/rest.html.

320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
google calendar
facebook
del.icio.us
read the file or source it and use <b class="cmd">describe</b> for more information. also see the
developers documentation on the respective sites.</p>
</div>
<div id="section3" class="section"><h2><a name="section3">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>







|


|







|
|







320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
google calendar
facebook
del.icio.us
read the file or source it and use <b class="cmd">describe</b> for more information. also see the
developers documentation on the respective sites.</p>
</div>
<div id="section3" class="section"><h2><a name="section3">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>

Changes to embedded/www/tcllib/files/modules/ripemd/ripemd128.html.

266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../md4/md4.html">md4</a>, <a href="../md5/md5.html">md5</a>, <a href="ripemd160.html">ripemd160</a>, <a href="../sha1/sha1.html">sha1</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key373">RIPEMD</a>, <a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key375">md4</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key374">rfc 1320</a>, <a href="../../../../index.html#key376">rfc 1321</a>, <a href="../../../../index.html#key212">rfc 2104</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004, Pat Thoyts &lt;[email protected]&gt;</p>
</div>







|







266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../md4/md4.html">md4</a>, <a href="../md5/md5.html">md5</a>, <a href="ripemd160.html">ripemd160</a>, <a href="../sha1/sha1.html">sha1</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key375">RIPEMD</a>, <a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key377">md4</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key376">rfc 1320</a>, <a href="../../../../index.html#key378">rfc 1321</a>, <a href="../../../../index.html#key212">rfc 2104</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004, Pat Thoyts &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/ripemd/ripemd160.html.

255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../md4/md4.html">md4</a>, <a href="../md5/md5.html">md5</a>, <a href="ripemd128.html">ripemd128</a>, <a href="../sha1/sha1.html">sha1</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key373">RIPEMD</a>, <a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key375">md4</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key374">rfc 1320</a>, <a href="../../../../index.html#key376">rfc 1321</a>, <a href="../../../../index.html#key212">rfc 2104</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004, Pat Thoyts &lt;[email protected]&gt;</p>
</div>







|







255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../md4/md4.html">md4</a>, <a href="../md5/md5.html">md5</a>, <a href="ripemd128.html">ripemd128</a>, <a href="../sha1/sha1.html">sha1</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key375">RIPEMD</a>, <a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key377">md4</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key376">rfc 1320</a>, <a href="../../../../index.html#key378">rfc 1321</a>, <a href="../../../../index.html#key212">rfc 2104</a>, <a href="../../../../index.html#key122">security</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004, Pat Thoyts &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/sasl/gtoken.html.

136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides the XGoogleToken authentication mechanism for
the Simple Authentication and Security Layer (SASL).</p>
<p>Please read the documentation for package <b class="package">sasl</b>
for details.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section3" class="section"><h2><a name="section3">AUTHORS</a></h2>
<p>Pat Thoyts</p>
</div>
<div id="section4" class="section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>sasl</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key391">SASL</a>, <a href="../../../../index.html#key390">XGoogleToken</a>, <a href="../../../../index.html#key389">authentication</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006, Pat Thoyts &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|


|







|
|




















|








136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides the XGoogleToken authentication mechanism for
the Simple Authentication and Security Layer (SASL).</p>
<p>Please read the documentation for package <b class="package">sasl</b>
for details.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section3" class="section"><h2><a name="section3">AUTHORS</a></h2>
<p>Pat Thoyts</p>
</div>
<div id="section4" class="section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>sasl</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key393">SASL</a>, <a href="../../../../index.html#key392">XGoogleToken</a>, <a href="../../../../index.html#key391">authentication</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006, Pat Thoyts &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/sasl/ntlm.html.

154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
bugs and other problems.
Please report such in the category <em>sasl</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key703">NTLM</a>, <a href="../../../../index.html#key391">SASL</a>, <a href="../../../../index.html#key389">authentication</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005-2006, Pat Thoyts &lt;[email protected]&gt;</p>
</div>







|







154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
bugs and other problems.
Please report such in the category <em>sasl</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key707">NTLM</a>, <a href="../../../../index.html#key393">SASL</a>, <a href="../../../../index.html#key391">authentication</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005-2006, Pat Thoyts &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/sasl/sasl.html.

388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
bugs and other problems.
Please report such in the category <em>sasl</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key391">SASL</a>, <a href="../../../../index.html#key389">authentication</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005-2006, Pat Thoyts &lt;[email protected]&gt;</p>
</div>







|







388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
bugs and other problems.
Please report such in the category <em>sasl</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key393">SASL</a>, <a href="../../../../index.html#key391">authentication</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005-2006, Pat Thoyts &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/sasl/scram.html.

154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
bugs and other problems.
Please report such in the category <em>sasl</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key391">SASL</a>, <a href="../../../../index.html#key754">SCRAM</a>, <a href="../../../../index.html#key389">authentication</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2013 Sergei Golovan &lt;[email protected]&gt;</p>
</div>







|







154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
bugs and other problems.
Please report such in the category <em>sasl</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key393">SASL</a>, <a href="../../../../index.html#key758">SCRAM</a>, <a href="../../../../index.html#key391">authentication</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2013 Sergei Golovan &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/sha1/sha1.html.

165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
giving <i class="arg">-bin</i>.</p>
<p>The data to be hashed can be specified either as a string argument to
the <b class="cmd">sha1</b> command, or as a filename or a pre-opened channel. If the
<i class="arg">-filename</i> argument is given then the file is opened, the data read
and hashed and the file is closed. If the <i class="arg">-channel</i> argument is
given then data is read from the channel until the end of file. The
channel is not closed. <em>NOTE</em> use of the channel or filename
options results in the internal use of <b class="cmd"><a href="../../../../index.html#key413">vwait</a></b>. To avoid nested
event loops in Tk or tclhttpd applications you should use the
incremental programming API (see below).</p>
<p>Only one of <i class="arg">-file</i>, <i class="arg">-channel</i> or <i class="arg">string</i> should be given.</p>
<p>If the <i class="arg">string</i> to hash can be mistaken for an option
(leading dash &quot;-&quot;), use the option <b class="option">--</b> before it to terminate
option processing and force interpretation as a string.</p></dd>
<dt><a name="2"><b class="cmd">::sha1::hmac</b> <i class="arg">key</i> <i class="arg">string</i></a></dt>







|







165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
giving <i class="arg">-bin</i>.</p>
<p>The data to be hashed can be specified either as a string argument to
the <b class="cmd">sha1</b> command, or as a filename or a pre-opened channel. If the
<i class="arg">-filename</i> argument is given then the file is opened, the data read
and hashed and the file is closed. If the <i class="arg">-channel</i> argument is
given then data is read from the channel until the end of file. The
channel is not closed. <em>NOTE</em> use of the channel or filename
options results in the internal use of <b class="cmd"><a href="../../../../index.html#key415">vwait</a></b>. To avoid nested
event loops in Tk or tclhttpd applications you should use the
incremental programming API (see below).</p>
<p>Only one of <i class="arg">-file</i>, <i class="arg">-channel</i> or <i class="arg">string</i> should be given.</p>
<p>If the <i class="arg">string</i> to hash can be mistaken for an option
(leading dash &quot;-&quot;), use the option <b class="option">--</b> before it to terminate
option processing and force interpretation as a string.</p></dd>
<dt><a name="2"><b class="cmd">::sha1::hmac</b> <i class="arg">key</i> <i class="arg">string</i></a></dt>
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../md4/md4.html">md4</a>, <a href="../md5/md5.html">md5</a>, <a href="../ripemd/ripemd128.html">ripemd128</a>, <a href="../ripemd/ripemd160.html">ripemd160</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key211">FIPS 180-1</a>, <a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key212">rfc 2104</a>, <a href="../../../../index.html#key122">security</a>, <a href="../../../../index.html#key436">sha1</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005, Pat Thoyts &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../md4/md4.html">md4</a>, <a href="../md5/md5.html">md5</a>, <a href="../ripemd/ripemd128.html">ripemd128</a>, <a href="../ripemd/ripemd160.html">ripemd160</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key211">FIPS 180-1</a>, <a href="../../../../index.html#key214">hashing</a>, <a href="../../../../index.html#key213">message-digest</a>, <a href="../../../../index.html#key212">rfc 2104</a>, <a href="../../../../index.html#key122">security</a>, <a href="../../../../index.html#key438">sha1</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2005, Pat Thoyts &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/sha1/sha256.html.

167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
data by giving <i class="arg">-bin</i>.</p>
<p>The data to be hashed can be specified either as a string argument to
the <b class="cmd">sha256</b> command, or as a filename or a pre-opened channel. If the
<i class="arg">-filename</i> argument is given then the file is opened, the data read
and hashed and the file is closed. If the <i class="arg">-channel</i> argument is
given then data is read from the channel until the end of file. The
channel is not closed. <em>NOTE</em> use of the channel or filename
options results in the internal use of <b class="cmd"><a href="../../../../index.html#key413">vwait</a></b>. To avoid nested
event loops in Tk or tclhttpd applications you should use the
incremental programming API (see below).</p>
<p>Only one of <i class="arg">-file</i>, <i class="arg">-channel</i> or <i class="arg">string</i> should be given.</p>
<p>If the <i class="arg">string</i> to hash can be mistaken for an option
(leading dash &quot;-&quot;), use the option <b class="option">--</b> before it to terminate
option processing and force interpretation as a string.</p></dd>
<dt><a name="2"><b class="cmd">::sha2::sha224</b> <span class="opt">?<b class="option">-hex|-bin</b>?</span> [ <b class="option">-channel channel</b> | <b class="option">-file filename</b> | <span class="opt">?<b class="option">--</b>?</span> <i class="arg">string</i> ]</a></dt>







|







167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
data by giving <i class="arg">-bin</i>.</p>
<p>The data to be hashed can be specified either as a string argument to
the <b class="cmd">sha256</b> command, or as a filename or a pre-opened channel. If the
<i class="arg">-filename</i> argument is given then the file is opened, the data read
and hashed and the file is closed. If the <i class="arg">-channel</i> argument is
given then data is read from the channel until the end of file. The
channel is not closed. <em>NOTE</em> use of the channel or filename
options results in the internal use of <b class="cmd"><a href="../../../../index.html#key415">vwait</a></b>. To avoid nested
event loops in Tk or tclhttpd applications you should use the
incremental programming API (see below).</p>
<p>Only one of <i class="arg">-file</i>, <i class="arg">-channel</i> or <i class="arg">string</i> should be given.</p>
<p>If the <i class="arg">string</i> to hash can be mistaken for an option
(leading dash &quot;-&quot;), use the option <b class="option">--</b> before it to terminate
option processing and force interpretation as a string.</p></dd>
<dt><a name="2"><b class="cmd">::sha2::sha224</b> <span class="opt">?<b class="option">-hex|-bin</b>?</span> [ <b class="option">-channel channel</b> | <b class="option">-file filename</b> | <span class="opt">?<b class="option">--</b>?</span> <i class="arg">string</i> ]</a></dt>

Changes to embedded/www/tcllib/files/modules/simulation/annealing.html.

312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
solution you may want to try different values of the trials parameter
for instance. Also ensure that the function to be minimized depends on
all or most parameters - see the source code for a counter example and
run that.</p></li>
</ul>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key307">optimization</a>, <a href="../../../../index.html#key315">simulated annealing</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 Arjen Markus &lt;[email protected]&gt;</p>
</div>







|







312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
solution you may want to try different values of the trials parameter
for instance. Also ensure that the function to be minimized depends on
all or most parameters - see the source code for a counter example and
run that.</p></li>
</ul>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key309">optimization</a>, <a href="../../../../index.html#key317">simulated annealing</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 Arjen Markus &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/simulation/montecarlo.html.

283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
<p>The procedure <i class="term">singleExperiment</i> works by constructing a
temporary procedure that does the actual work. It loops for the given
number of trials.</p>
<p>As it constructs a temporary procedure, local variables defined at the
start continue to exist in the loop.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key740">montecarlo simulation</a>, <a href="../../../../index.html#key739">stochastic modelling</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 Arjen Markus &lt;[email protected]&gt;</p>
</div>







|







283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
<p>The procedure <i class="term">singleExperiment</i> works by constructing a
temporary procedure that does the actual work. It loops for the given
number of trials.</p>
<p>As it constructs a temporary procedure, local variables defined at the
start continue to exist in the loop.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key744">montecarlo simulation</a>, <a href="../../../../index.html#key743">stochastic modelling</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 Arjen Markus &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/simulation/simulation_random.html.

291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
<dd><p>Width of the block (y-direction)</p></dd>
<dt>float <i class="arg">depth</i></dt>
<dd><p>Depth of the block (z-direction)</p></dd>
</dl></dd>
</dl>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key635">random numbers</a>, <a href="../../../../index.html#key634">simulation</a>, <a href="../../../../index.html#key633">statistical distribution</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;</p>
</div>







|







291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
<dd><p>Width of the block (y-direction)</p></dd>
<dt>float <i class="arg">depth</i></dt>
<dd><p>Depth of the block (z-direction)</p></dd>
</dl></dd>
</dl>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key71">math</a>, <a href="../../../../index.html#key639">random numbers</a>, <a href="../../../../index.html#key638">simulation</a>, <a href="../../../../index.html#key637">statistical distribution</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Mathematics</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Arjen Markus &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/smtpd/smtpd.html.

166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<p>In short, this code should probably not be used as a permanently
running Mail Transfer Agent on an Internet connected server, even
though we are careful not to evaluate remote user input. There are
many other well tested and security audited programs that can be used
as mail servers for internet connected hosts.</p>
</div>
<div id="section3" class="section"><h2><a name="section3">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>







|


|







|
|







166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<p>In short, this code should probably not be used as a permanently
running Mail Transfer Agent on an Internet connected server, even
though we are careful not to evaluate remote user input. There are
many other well tested and security audited programs that can be used
as mail servers for internet connected hosts.</p>
</div>
<div id="section3" class="section"><h2><a name="section3">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
package a little more complicated to read. If there is a good reason
for running multiple SMTP services then it will only be necessary to
fix the <b class="variable">options</b> array and the <b class="variable">::smtpd::stopped</b> variable
usage.</p>
<p>As the server code uses <b class="cmd">fileevent</b>(n) handlers to process the
input on sockets you will need to run the event loop. This means
either you should be running from within <b class="syscmd">wish</b>(1) or you
should <b class="cmd"><a href="../../../../index.html#key413">vwait</a></b>(n) on the <b class="variable">::smtpd::stopped</b> variable which is
set when the server is stopped.</p></dd>
<dt><a name="2"><b class="cmd">::smtpd::stop</b></a></dt>
<dd><p>Halt the server and release the listening socket. If the server has
not been started then this command does nothing.
The <b class="variable">::smtpd::stopped</b> variable is set for use with
<b class="cmd"><a href="../../../../index.html#key413">vwait</a></b>(n).</p>
<p>It should be noted that stopping the server does not disconnect any
currently active sessions as these are operating over an independent
channel. Only explicitly tracking and closing these sessions, or
exiting the server process will close down all the running
sessions. This is similar to the usual unix daemon practice where the
server performs a <b class="syscmd">fork</b>(2) and the client session continues on
the child process.</p></dd>







|





|







208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
package a little more complicated to read. If there is a good reason
for running multiple SMTP services then it will only be necessary to
fix the <b class="variable">options</b> array and the <b class="variable">::smtpd::stopped</b> variable
usage.</p>
<p>As the server code uses <b class="cmd">fileevent</b>(n) handlers to process the
input on sockets you will need to run the event loop. This means
either you should be running from within <b class="syscmd">wish</b>(1) or you
should <b class="cmd"><a href="../../../../index.html#key415">vwait</a></b>(n) on the <b class="variable">::smtpd::stopped</b> variable which is
set when the server is stopped.</p></dd>
<dt><a name="2"><b class="cmd">::smtpd::stop</b></a></dt>
<dd><p>Halt the server and release the listening socket. If the server has
not been started then this command does nothing.
The <b class="variable">::smtpd::stopped</b> variable is set for use with
<b class="cmd"><a href="../../../../index.html#key415">vwait</a></b>(n).</p>
<p>It should be noted that stopping the server does not disconnect any
currently active sessions as these are operating over an independent
channel. Only explicitly tracking and closing these sessions, or
exiting the server process will close down all the running
sessions. This is similar to the usual unix daemon practice where the
server performs a <b class="syscmd">fork</b>(2) and the client session continues on
the child process.</p></dd>
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
recipient has yet been defined.</p></dd>
</dl>
</div>
<div id="section6" class="section"><h2><a name="section6">VARIABLES</a></h2>
<dl class="definitions">
<dt><b class="variable">::smtpd::stopped</b></dt>
<dd><p>This variable is set to <b class="const">true</b> during the <b class="cmd">::smtpd::stop</b>
command to permit the use of the <b class="cmd"><a href="../../../../index.html#key413">vwait</a></b>(n) command.</p></dd>
</dl>
</div>
<div id="section7" class="section"><h2><a name="section7">AUTHOR</a></h2>
<p>Written by Pat Thoyts <a href="mailto:[email protected]">mailto:[email protected]</a>.</p>
</div>
<div id="section8" class="section"><h2><a name="section8">LICENSE</a></h2>
<p>This software is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file
&quot;<b class="file">license.terms</b>&quot; for more details.</p>
</div>
<div id="section9" class="section"><h2><a name="section9">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>smtpd</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key325">rfc 2821</a>, <a href="../../../../index.html#key328">rfc 821</a>, <a href="../../../../index.html#key599">services</a>, <a href="../../../../index.html#key333">smtp</a>, <a href="../../../../index.html#key664">smtpd</a>, <a href="../../../../index.html#key348">socket</a>, <a href="../../../../index.html#key413">vwait</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; Pat Thoyts &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|




















|








332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
recipient has yet been defined.</p></dd>
</dl>
</div>
<div id="section6" class="section"><h2><a name="section6">VARIABLES</a></h2>
<dl class="definitions">
<dt><b class="variable">::smtpd::stopped</b></dt>
<dd><p>This variable is set to <b class="const">true</b> during the <b class="cmd">::smtpd::stop</b>
command to permit the use of the <b class="cmd"><a href="../../../../index.html#key415">vwait</a></b>(n) command.</p></dd>
</dl>
</div>
<div id="section7" class="section"><h2><a name="section7">AUTHOR</a></h2>
<p>Written by Pat Thoyts <a href="mailto:[email protected]">mailto:[email protected]</a>.</p>
</div>
<div id="section8" class="section"><h2><a name="section8">LICENSE</a></h2>
<p>This software is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file
&quot;<b class="file">license.terms</b>&quot; for more details.</p>
</div>
<div id="section9" class="section"><h2><a name="section9">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>smtpd</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key327">rfc 2821</a>, <a href="../../../../index.html#key330">rfc 821</a>, <a href="../../../../index.html#key602">services</a>, <a href="../../../../index.html#key335">smtp</a>, <a href="../../../../index.html#key668">smtpd</a>, <a href="../../../../index.html#key350">socket</a>, <a href="../../../../index.html#key415">vwait</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; Pat Thoyts &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/snit/snit.html.

152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">snit::type</b> <i class="arg">name</i> <i class="arg">definition</i></a></li>
<li><a href="#2"><b class="cmd">typevariable</b> <i class="arg">name</i> <span class="opt">?<b class="const">-array</b>?</span> <span class="opt">?<i class="arg">value</i>?</span></a></li>
<li><a href="#3"><b class="cmd">typemethod</b> <i class="arg">name</i> <i class="arg">arglist</i> <i class="arg">body</i></a></li>
<li><a href="#4"><b class="cmd">typeconstructor</b> <i class="arg">body</i></a></li>
<li><a href="#5"><b class="cmd">variable</b> <i class="arg">name</i> <span class="opt">?<b class="const">-array</b>?</span> <span class="opt">?<i class="arg">value</i>?</span></a></li>
<li><a href="#6"><b class="cmd"><a href="../../../../index.html#key367">method</a></b> <i class="arg">name</i> <i class="arg">arglist</i> <i class="arg">body</i></a></li>
<li><a href="#7"><b class="cmd">option</b> <i class="arg">namespec</i> <span class="opt">?<i class="arg">defaultValue</i>?</span></a></li>
<li><a href="#8"><b class="cmd">option</b> <i class="arg">namespec</i> <span class="opt">?<i class="arg">options...</i>?</span></a></li>
<li><a href="#9"><b class="cmd">constructor</b> <i class="arg">arglist</i> <i class="arg">body</i></a></li>
<li><a href="#10"><b class="cmd">destructor</b> <i class="arg">body</i></a></li>
<li><a href="#11"><b class="cmd"><a href="../../../../index.html#key586">proc</a></b> <i class="arg">name</i> <i class="arg">args</i> <i class="arg">body</i></a></li>
<li><a href="#12"><b class="cmd">delegate</b> <b class="const">method</b> <i class="arg">name</i> <b class="const">to</b> <i class="arg">comp</i> <span class="opt">?<b class="const">as</b> <i class="arg">target</i>?</span></a></li>
<li><a href="#13"><b class="cmd">delegate</b> <b class="const">method</b> <i class="arg">name</i> <span class="opt">?<b class="const">to</b> <i class="arg">comp</i>?</span> <b class="const">using</b> <i class="arg">pattern</i></a></li>
<li><a href="#14"><b class="cmd">delegate</b> <b class="const">method</b> <b class="const">*</b> <span class="opt">?<b class="const">to</b> <i class="arg">comp</i>?</span> <span class="opt">?<b class="const">using</b> <i class="arg">pattern</i>?</span> <span class="opt">?<b class="const">except</b> <i class="arg">exceptions</i>?</span></a></li>
<li><a href="#15"><b class="cmd">delegate</b> <b class="const">option</b> <i class="arg">namespec</i> <b class="const">to</b> <i class="arg">comp</i></a></li>
<li><a href="#16"><b class="cmd">delegate</b> <b class="const">option</b> <i class="arg">namespec</i> <b class="const">to</b> <i class="arg">comp</i> <b class="const">as</b> <i class="arg">target</i></a></li>
<li><a href="#17"><b class="cmd">delegate</b> <b class="const">option</b> <b class="const">*</b> <b class="const">to</b> <i class="arg">comp</i></a></li>
<li><a href="#18"><b class="cmd">delegate</b> <b class="const">option</b> <b class="const">*</b> <b class="const">to</b> <i class="arg">comp</i> <b class="const">except</b> <i class="arg">exceptions</i></a></li>







|




|







152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">snit::type</b> <i class="arg">name</i> <i class="arg">definition</i></a></li>
<li><a href="#2"><b class="cmd">typevariable</b> <i class="arg">name</i> <span class="opt">?<b class="const">-array</b>?</span> <span class="opt">?<i class="arg">value</i>?</span></a></li>
<li><a href="#3"><b class="cmd">typemethod</b> <i class="arg">name</i> <i class="arg">arglist</i> <i class="arg">body</i></a></li>
<li><a href="#4"><b class="cmd">typeconstructor</b> <i class="arg">body</i></a></li>
<li><a href="#5"><b class="cmd">variable</b> <i class="arg">name</i> <span class="opt">?<b class="const">-array</b>?</span> <span class="opt">?<i class="arg">value</i>?</span></a></li>
<li><a href="#6"><b class="cmd"><a href="../../../../index.html#key369">method</a></b> <i class="arg">name</i> <i class="arg">arglist</i> <i class="arg">body</i></a></li>
<li><a href="#7"><b class="cmd">option</b> <i class="arg">namespec</i> <span class="opt">?<i class="arg">defaultValue</i>?</span></a></li>
<li><a href="#8"><b class="cmd">option</b> <i class="arg">namespec</i> <span class="opt">?<i class="arg">options...</i>?</span></a></li>
<li><a href="#9"><b class="cmd">constructor</b> <i class="arg">arglist</i> <i class="arg">body</i></a></li>
<li><a href="#10"><b class="cmd">destructor</b> <i class="arg">body</i></a></li>
<li><a href="#11"><b class="cmd"><a href="../../../../index.html#key589">proc</a></b> <i class="arg">name</i> <i class="arg">args</i> <i class="arg">body</i></a></li>
<li><a href="#12"><b class="cmd">delegate</b> <b class="const">method</b> <i class="arg">name</i> <b class="const">to</b> <i class="arg">comp</i> <span class="opt">?<b class="const">as</b> <i class="arg">target</i>?</span></a></li>
<li><a href="#13"><b class="cmd">delegate</b> <b class="const">method</b> <i class="arg">name</i> <span class="opt">?<b class="const">to</b> <i class="arg">comp</i>?</span> <b class="const">using</b> <i class="arg">pattern</i></a></li>
<li><a href="#14"><b class="cmd">delegate</b> <b class="const">method</b> <b class="const">*</b> <span class="opt">?<b class="const">to</b> <i class="arg">comp</i>?</span> <span class="opt">?<b class="const">using</b> <i class="arg">pattern</i>?</span> <span class="opt">?<b class="const">except</b> <i class="arg">exceptions</i>?</span></a></li>
<li><a href="#15"><b class="cmd">delegate</b> <b class="const">option</b> <i class="arg">namespec</i> <b class="const">to</b> <i class="arg">comp</i></a></li>
<li><a href="#16"><b class="cmd">delegate</b> <b class="const">option</b> <i class="arg">namespec</i> <b class="const">to</b> <i class="arg">comp</i> <b class="const">as</b> <i class="arg">target</i></a></li>
<li><a href="#17"><b class="cmd">delegate</b> <b class="const">option</b> <b class="const">*</b> <b class="const">to</b> <i class="arg">comp</i></a></li>
<li><a href="#18"><b class="cmd">delegate</b> <b class="const">option</b> <b class="const">*</b> <b class="const">to</b> <i class="arg">comp</i> <b class="const">except</b> <i class="arg">exceptions</i></a></li>
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
<pre class="example">    typemethod {a b} {arg} { puts &quot;Got $arg&quot; }
</pre>
<p>This statement implicitly defines a type method called <b class="const">a</b> which
has a subcommand <b class="const">b</b>.  <b class="const">b</b> is called like this:</p>
<pre class="example">    $type a b &quot;Hello, world!&quot;
</pre>
<p><b class="const">a</b> may have any number of subcommands.  This makes it possible
to define a hierarchical command structure; see <b class="cmd"><a href="../../../../index.html#key367">method</a></b>, below,
for more examples.</p>
<p>Type methods can call commands from the namespace in which the type is
defined without importing them, e.g., if the type name is
<b class="cmd">::parentns::typename</b>, then the type's type methods can call
<b class="cmd">::parentns::someproc</b> just as <b class="cmd">someproc</b>.
<em>Snit 1.x Incompatibility:</em> This does not work in Snit 1.x, as
it depends on <b class="cmd">namespace path</b>, a new command in Tcl 8.5.</p>







|







304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
<pre class="example">    typemethod {a b} {arg} { puts &quot;Got $arg&quot; }
</pre>
<p>This statement implicitly defines a type method called <b class="const">a</b> which
has a subcommand <b class="const">b</b>.  <b class="const">b</b> is called like this:</p>
<pre class="example">    $type a b &quot;Hello, world!&quot;
</pre>
<p><b class="const">a</b> may have any number of subcommands.  This makes it possible
to define a hierarchical command structure; see <b class="cmd"><a href="../../../../index.html#key369">method</a></b>, below,
for more examples.</p>
<p>Type methods can call commands from the namespace in which the type is
defined without importing them, e.g., if the type name is
<b class="cmd">::parentns::typename</b>, then the type's type methods can call
<b class="cmd">::parentns::someproc</b> just as <b class="cmd">someproc</b>.
<em>Snit 1.x Incompatibility:</em> This does not work in Snit 1.x, as
it depends on <b class="cmd">namespace path</b>, a new command in Tcl 8.5.</p>
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
it depends on <b class="cmd">namespace path</b>, a new command in Tcl 8.5.</p></dd>
<dt><a name="5"><b class="cmd">variable</b> <i class="arg">name</i> <span class="opt">?<b class="const">-array</b>?</span> <span class="opt">?<i class="arg">value</i>?</span></a></dt>
<dd><p>Defines an instance variable, a private variable associated with each
instance of this type, and optionally its initial value.
If the <b class="const">-array</b> option is included, then
<i class="arg">value</i> should be a dictionary; it will be
assigned to the variable using <b class="cmd">array set</b>.</p></dd>
<dt><a name="6"><b class="cmd"><a href="../../../../index.html#key367">method</a></b> <i class="arg">name</i> <i class="arg">arglist</i> <i class="arg">body</i></a></dt>
<dd><p>Defines an instance method, a subcommand of each instance of this
type, with the specified name, argument list and body.
The <i class="arg">arglist</i> is a normal Tcl argument list and may contain
default arguments and the <b class="variable">args</b> argument.</p>
<p>The method is implicitly passed the following arguments as well:
<b class="variable">type</b>, which contains the fully-qualified type name; <b class="variable">self</b>,
which contains the current instance command name; <b class="variable">selfns</b>, which







|







340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
it depends on <b class="cmd">namespace path</b>, a new command in Tcl 8.5.</p></dd>
<dt><a name="5"><b class="cmd">variable</b> <i class="arg">name</i> <span class="opt">?<b class="const">-array</b>?</span> <span class="opt">?<i class="arg">value</i>?</span></a></dt>
<dd><p>Defines an instance variable, a private variable associated with each
instance of this type, and optionally its initial value.
If the <b class="const">-array</b> option is included, then
<i class="arg">value</i> should be a dictionary; it will be
assigned to the variable using <b class="cmd">array set</b>.</p></dd>
<dt><a name="6"><b class="cmd"><a href="../../../../index.html#key369">method</a></b> <i class="arg">name</i> <i class="arg">arglist</i> <i class="arg">body</i></a></dt>
<dd><p>Defines an instance method, a subcommand of each instance of this
type, with the specified name, argument list and body.
The <i class="arg">arglist</i> is a normal Tcl argument list and may contain
default arguments and the <b class="variable">args</b> argument.</p>
<p>The method is implicitly passed the following arguments as well:
<b class="variable">type</b>, which contains the fully-qualified type name; <b class="variable">self</b>,
which contains the current instance command name; <b class="variable">selfns</b>, which
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
As with methods, the destructor can call commands from the namespace
in which the type is
defined without importing them, e.g., if the type name is
<b class="cmd">::parentns::typename</b>, then the destructor can call
<b class="cmd">::parentns::someproc</b> just as <b class="cmd">someproc</b>.
<em>Snit 1.x Incompatibility:</em> This does not work in Snit 1.x, as
it depends on <b class="cmd">namespace path</b>, a new command in Tcl 8.5.</p></dd>
<dt><a name="11"><b class="cmd"><a href="../../../../index.html#key586">proc</a></b> <i class="arg">name</i> <i class="arg">args</i> <i class="arg">body</i></a></dt>
<dd><p>Defines a new Tcl procedure in the type's namespace.</p>
<p>The defined proc differs from a normal Tcl proc in that all type
variables are automatically visible.  The proc can access
instance variables as well, provided that it is passed
<b class="variable">selfns</b> (with precisely that name) as one of its arguments.</p>
<p>Although they are not implicitly defined for procs, the argument names
<b class="const">type</b>, <b class="const">self</b>, and <b class="const">win</b> should be avoided.</p>







|







553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
As with methods, the destructor can call commands from the namespace
in which the type is
defined without importing them, e.g., if the type name is
<b class="cmd">::parentns::typename</b>, then the destructor can call
<b class="cmd">::parentns::someproc</b> just as <b class="cmd">someproc</b>.
<em>Snit 1.x Incompatibility:</em> This does not work in Snit 1.x, as
it depends on <b class="cmd">namespace path</b>, a new command in Tcl 8.5.</p></dd>
<dt><a name="11"><b class="cmd"><a href="../../../../index.html#key589">proc</a></b> <i class="arg">name</i> <i class="arg">args</i> <i class="arg">body</i></a></dt>
<dd><p>Defines a new Tcl procedure in the type's namespace.</p>
<p>The defined proc differs from a normal Tcl proc in that all type
variables are automatically visible.  The proc can access
instance variables as well, provided that it is passed
<b class="variable">selfns</b> (with precisely that name) as one of its arguments.</p>
<p>Although they are not implicitly defined for procs, the argument names
<b class="const">type</b>, <b class="const">self</b>, and <b class="const">win</b> should be avoided.</p>
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
page.</p>
<p>A macro is simply a Tcl proc that is defined in the slave interpreter
used to compile type and widget definitions.  Thus, macros have
access to all of the type and widget definition statements.  See
<span class="sectref"><a href="#subsection10">Macros and Meta-programming</a></span> for more details.</p>
<p>The macro <i class="arg">name</i> cannot be the same as any standard Tcl command,
or any Snit type or widget definition statement, e.g., you can't
redefine the <b class="cmd"><a href="../../../../index.html#key367">method</a></b> or <b class="cmd">delegate</b> statements, or the
standard <b class="cmd"><a href="../../../../index.html#key297">set</a></b>, <b class="cmd"><a href="../../../../index.html#key298">list</a></b>, or <b class="cmd"><a href="../../../../index.html#key276">string</a></b> commands.</p></dd>
<dt><a name="36"><b class="cmd">snit::compile</b> <i class="arg">which</i> <i class="arg">type</i> <i class="arg">body</i></a></dt>
<dd><p>Snit defines a type, widget, or widgetadaptor by &quot;compiling&quot; the
definition into a Tcl script; this script is then evaluated in the
Tcl interpreter, which actually defines the new type.</p>
<p>This command exposes the &quot;compiler&quot;.  Given a definition <i class="arg">body</i>
for the named <i class="arg">type</i>, where <i class="arg">which</i> is <b class="const">type</b>,
<b class="const">widget</b>, or <b class="const">widgetadaptor</b>, <b class="cmd">snit::compile</b> returns a list







|
|







956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
page.</p>
<p>A macro is simply a Tcl proc that is defined in the slave interpreter
used to compile type and widget definitions.  Thus, macros have
access to all of the type and widget definition statements.  See
<span class="sectref"><a href="#subsection10">Macros and Meta-programming</a></span> for more details.</p>
<p>The macro <i class="arg">name</i> cannot be the same as any standard Tcl command,
or any Snit type or widget definition statement, e.g., you can't
redefine the <b class="cmd"><a href="../../../../index.html#key369">method</a></b> or <b class="cmd">delegate</b> statements, or the
standard <b class="cmd"><a href="../../../../index.html#key299">set</a></b>, <b class="cmd"><a href="../../../../index.html#key300">list</a></b>, or <b class="cmd"><a href="../../../../index.html#key278">string</a></b> commands.</p></dd>
<dt><a name="36"><b class="cmd">snit::compile</b> <i class="arg">which</i> <i class="arg">type</i> <i class="arg">body</i></a></dt>
<dd><p>Snit defines a type, widget, or widgetadaptor by &quot;compiling&quot; the
definition into a Tcl script; this script is then evaluated in the
Tcl interpreter, which actually defines the new type.</p>
<p>This command exposes the &quot;compiler&quot;.  Given a definition <i class="arg">body</i>
for the named <i class="arg">type</i>, where <i class="arg">which</i> is <b class="const">type</b>,
<b class="const">widget</b>, or <b class="const">widgetadaptor</b>, <b class="cmd">snit::compile</b> returns a list
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
a result, it has access to all the commands used to define types and
widgets.</p>
<p>Given this new macro, you can define a property in one line of code:</p>
<pre class="example">    snit::type dog {
        property mood happy
    }
</pre>
<p>Within a macro, the commands <b class="cmd">variable</b> and <b class="cmd"><a href="../../../../index.html#key586">proc</a></b> refer to
the Snit type-definition commands, not the standard Tcl commands.  To
get the standard Tcl commands, use <b class="cmd">_variable</b> and <b class="cmd">_proc</b>.</p>
<p>Because a single slave interpreter is used for compiling all Snit
types and widgets in the application, there's the possibility of macro
name collisions.  If you're writing a reuseable package using Snit,
and you use some <b class="cmd">snit::macro</b>s, define them in your package
namespace:</p>







|







1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
a result, it has access to all the commands used to define types and
widgets.</p>
<p>Given this new macro, you can define a property in one line of code:</p>
<pre class="example">    snit::type dog {
        property mood happy
    }
</pre>
<p>Within a macro, the commands <b class="cmd">variable</b> and <b class="cmd"><a href="../../../../index.html#key589">proc</a></b> refer to
the Snit type-definition commands, not the standard Tcl commands.  To
get the standard Tcl commands, use <b class="cmd">_variable</b> and <b class="cmd">_proc</b>.</p>
<p>Because a single slave interpreter is used for compiling all Snit
types and widgets in the application, there's the possibility of macro
name collisions.  If you're writing a reuseable package using Snit,
and you use some <b class="cmd">snit::macro</b>s, define them in your package
namespace:</p>
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
Defining subtypes of Snit's validation types is described above,
under <span class="sectref"><a href="#subsection11">Validation Types</a></span>.</p>
<p>The next simplest way to create a new validation type is as a
validation type command.  A validation type is simply an
object that has a <b class="method">validate</b> method; the <b class="method">validate</b>
method must take one argument, a value, return the value if it is
valid, and throw an error with <b class="cmd">-errorcode</b> INVALID if the
value is invalid.  This can be done with a simple <b class="cmd"><a href="../../../../index.html#key586">proc</a></b>.  For
example, the <b class="cmd">snit::boolean</b> validate type could have been
implemented like this:</p>
<pre class="example">    proc ::snit::boolean {&quot;validate&quot; value} {
        if {![string is boolean -strict $value]} {
            return -code error -errorcode INVALID  &quot;invalid boolean \&quot;$value\&quot;, should be one of: 1, 0, ...&quot;
        }
        return $value







|







1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
Defining subtypes of Snit's validation types is described above,
under <span class="sectref"><a href="#subsection11">Validation Types</a></span>.</p>
<p>The next simplest way to create a new validation type is as a
validation type command.  A validation type is simply an
object that has a <b class="method">validate</b> method; the <b class="method">validate</b>
method must take one argument, a value, return the value if it is
valid, and throw an error with <b class="cmd">-errorcode</b> INVALID if the
value is invalid.  This can be done with a simple <b class="cmd"><a href="../../../../index.html#key589">proc</a></b>.  For
example, the <b class="cmd">snit::boolean</b> validate type could have been
implemented like this:</p>
<pre class="example">    proc ::snit::boolean {&quot;validate&quot; value} {
        if {![string is boolean -strict $value]} {
            return -code error -errorcode INVALID  &quot;invalid boolean \&quot;$value\&quot;, should be one of: 1, 0, ...&quot;
        }
        return $value
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
bugs and other problems.
Please report such in the category <em>snit</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key239">BWidget</a>, <a href="../../../../index.html#key235">C++</a>, <a href="../../../../index.html#key242">Incr Tcl</a>, <a href="../../../../index.html#key789">Snit</a>, <a href="../../../../index.html#key240">adaptors</a>, <a href="../../../../index.html#key238">class</a>, <a href="../../../../index.html#key237">mega widget</a>, <a href="../../../../index.html#key241">object</a>, <a href="../../../../index.html#key234">object oriented</a>, <a href="../../../../index.html#key117">type</a>, <a href="../../../../index.html#key233">widget</a>, <a href="../../../../index.html#key236">widget adaptors</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003-2009, by William H. Duquette</p>
</div>
</div></body></html>







|








2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
bugs and other problems.
Please report such in the category <em>snit</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key239">BWidget</a>, <a href="../../../../index.html#key235">C++</a>, <a href="../../../../index.html#key242">Incr Tcl</a>, <a href="../../../../index.html#key793">Snit</a>, <a href="../../../../index.html#key240">adaptors</a>, <a href="../../../../index.html#key238">class</a>, <a href="../../../../index.html#key237">mega widget</a>, <a href="../../../../index.html#key241">object</a>, <a href="../../../../index.html#key234">object oriented</a>, <a href="../../../../index.html#key117">type</a>, <a href="../../../../index.html#key233">widget</a>, <a href="../../../../index.html#key236">widget adaptors</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003-2009, by William H. Duquette</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/snit/snitfaq.html.

859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
<p>An instance method is a procedure associated with a specific object
and called as a subcommand of the object's command.  It is given free
access to all of the object's type variables, instance variables, and
so forth.</p>
</div>
<div id="subsection25" class="subsection"><h3><a name="subsection25">How do I define an instance method?</a></h3>
<p>Instance methods are defined in the type definition using
the <b class="cmd"><a href="../../../../index.html#key367">method</a></b> statement.  Consider the following code that might be
used to add dogs to a computer simulation:</p>
<pre class="example">% snit::type dog {
    method bark {} {
        return &quot;$self barks.&quot;
    }
    method chase {thing} {
        return &quot;$self chases $thing.&quot;
    }
}
::dog
%
</pre>
<p>A dog can bark, and it can chase things.</p>
<p>The <b class="cmd"><a href="../../../../index.html#key367">method</a></b> statement looks just like a normal Tcl <b class="cmd"><a href="../../../../index.html#key586">proc</a></b>,
except that it appears in a <b class="cmd">snit::type</b> definition.  Notice that
every instance method gets an implicit argument called <b class="variable">self</b>;
this argument contains the object's name.  (There's more on
implicit method arguments below.)</p>
</div>
<div id="subsection26" class="subsection"><h3><a name="subsection26">How does a client call an instance method?</a></h3>
<p>The method name becomes a subcommand of the object.  For example,







|













|







859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
<p>An instance method is a procedure associated with a specific object
and called as a subcommand of the object's command.  It is given free
access to all of the object's type variables, instance variables, and
so forth.</p>
</div>
<div id="subsection25" class="subsection"><h3><a name="subsection25">How do I define an instance method?</a></h3>
<p>Instance methods are defined in the type definition using
the <b class="cmd"><a href="../../../../index.html#key369">method</a></b> statement.  Consider the following code that might be
used to add dogs to a computer simulation:</p>
<pre class="example">% snit::type dog {
    method bark {} {
        return &quot;$self barks.&quot;
    }
    method chase {thing} {
        return &quot;$self chases $thing.&quot;
    }
}
::dog
%
</pre>
<p>A dog can bark, and it can chase things.</p>
<p>The <b class="cmd"><a href="../../../../index.html#key369">method</a></b> statement looks just like a normal Tcl <b class="cmd"><a href="../../../../index.html#key589">proc</a></b>,
except that it appears in a <b class="cmd">snit::type</b> definition.  Notice that
every instance method gets an implicit argument called <b class="variable">self</b>;
this argument contains the object's name.  (There's more on
implicit method arguments below.)</p>
</div>
<div id="subsection26" class="subsection"><h3><a name="subsection26">How does a client call an instance method?</a></h3>
<p>The method name becomes a subcommand of the object.  For example,
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
::fido
% fido chase cat
::fido chases cat. ::fido barks.
%
</pre>
</div>
<div id="subsection33" class="subsection"><h3><a name="subsection33">Are there any limitations on instance method arguments?</a></h3>
<p>Method argument lists are defined just like normal Tcl <b class="cmd"><a href="../../../../index.html#key586">proc</a></b> argument
lists; in particular, they can include arguments with default values
 and the <b class="variable">args</b> argument.</p>
<p>However, every method also has a number of implicit arguments
provided by Snit in addition to those explicitly defined.  The names
of these implicit arguments may not used to name explicit arguments.</p>
</div>
<div id="subsection34" class="subsection"><h3><a name="subsection34">What implicit arguments are passed to each instance method?</a></h3>







|







982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
::fido
% fido chase cat
::fido chases cat. ::fido barks.
%
</pre>
</div>
<div id="subsection33" class="subsection"><h3><a name="subsection33">Are there any limitations on instance method arguments?</a></h3>
<p>Method argument lists are defined just like normal Tcl <b class="cmd"><a href="../../../../index.html#key589">proc</a></b> argument
lists; in particular, they can include arguments with default values
 and the <b class="variable">args</b> argument.</p>
<p>However, every method also has a number of implicit arguments
provided by Snit in addition to those explicitly defined.  The names
of these implicit arguments may not used to name explicit arguments.</p>
</div>
<div id="subsection34" class="subsection"><h3><a name="subsection34">What implicit arguments are passed to each instance method?</a></h3>
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
more information.</p>
</div>
<div id="subsection39" class="subsection"><h3><a name="subsection39">How do I pass an instance method as a callback?</a></h3>
<p>It depends on the context.</p>
<p>Suppose in my application I have a <b class="cmd">dog</b> object named <b class="cmd">fido</b>,
and I want <b class="cmd">fido</b> to bark when a Tk button called <b class="cmd">.bark</b> is
pressed.  In this case, I create the callback command in the usual
way, using <b class="cmd"><a href="../../../../index.html#key298">list</a></b>:</p>
<pre class="example">    button .bark -text &quot;Bark!&quot; -command [list fido bark]
</pre>
<p>In typical Tcl style, we use a callback to hook two independent
components together.  But suppose that the <b class="cmd">dog</b> object has
a graphical interface and owns the button itself?  In this case,
the <b class="cmd">dog</b> must pass one of its own instance methods to the
button it owns.  The obvious thing to do is this:</p>







|







1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
more information.</p>
</div>
<div id="subsection39" class="subsection"><h3><a name="subsection39">How do I pass an instance method as a callback?</a></h3>
<p>It depends on the context.</p>
<p>Suppose in my application I have a <b class="cmd">dog</b> object named <b class="cmd">fido</b>,
and I want <b class="cmd">fido</b> to bark when a Tk button called <b class="cmd">.bark</b> is
pressed.  In this case, I create the callback command in the usual
way, using <b class="cmd"><a href="../../../../index.html#key300">list</a></b>:</p>
<pre class="example">    button .bark -text &quot;Bark!&quot; -command [list fido bark]
</pre>
<p>In typical Tcl style, we use a callback to hook two independent
components together.  But suppose that the <b class="cmd">dog</b> object has
a graphical interface and owns the button itself?  In this case,
the <b class="cmd">dog</b> must pass one of its own instance methods to the
button it owns.  The obvious thing to do is this:</p>
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
        #...
    }
}
::dog
%
</pre>
<p>The command <b class="cmd">mymethod</b> takes any number of arguments, and can be
used like <b class="cmd"><a href="../../../../index.html#key298">list</a></b> to build up a callback command; the only
difference is that <b class="cmd">mymethod</b> returns a
form of the command that won't change even if the instance's name
changes.</p>
<p>On the other hand, you might prefer to allow a widgetadaptor to
override a method such that your renamed widget will call the
widgetadaptor's method instead of its own.  In this case,
using <b class="cmd">[list $self bark]</b> will do what you want...but







|







1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
        #...
    }
}
::dog
%
</pre>
<p>The command <b class="cmd">mymethod</b> takes any number of arguments, and can be
used like <b class="cmd"><a href="../../../../index.html#key300">list</a></b> to build up a callback command; the only
difference is that <b class="cmd">mymethod</b> returns a
form of the command that won't change even if the instance's name
changes.</p>
<p>On the other hand, you might prefer to allow a widgetadaptor to
override a method such that your renamed widget will call the
widgetadaptor's method instead of its own.  In this case,
using <b class="cmd">[list $self bark]</b> will do what you want...but
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
    }
}
</pre>
<p>Suppose the <b class="cmd">dog</b> type maintains a list of the names of the dogs
that have pedigrees.  The <b class="cmd">pedigreedDogs</b> type method returns this
list.</p>
<p>The <b class="cmd">typemethod</b> statement looks just like a normal Tcl
<b class="cmd"><a href="../../../../index.html#key586">proc</a></b>, except that it appears in a <b class="cmd">snit::type</b> definition.
Notice that every type method gets an implicit argument called
<b class="variable">type</b>, which contains the fully-qualified type name.</p>
</div>
<div id="subsection72" class="subsection"><h3><a name="subsection72">How does a client call a type method?</a></h3>
<p>The type method name becomes a subcommand of the type's command.  For
example, assuming that the constructor adds each pedigreed dog to the
list of <b class="variable">pedigreedDogs</b>,</p>







|







1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
    }
}
</pre>
<p>Suppose the <b class="cmd">dog</b> type maintains a list of the names of the dogs
that have pedigrees.  The <b class="cmd">pedigreedDogs</b> type method returns this
list.</p>
<p>The <b class="cmd">typemethod</b> statement looks just like a normal Tcl
<b class="cmd"><a href="../../../../index.html#key589">proc</a></b>, except that it appears in a <b class="cmd">snit::type</b> definition.
Notice that every type method gets an implicit argument called
<b class="variable">type</b>, which contains the fully-qualified type name.</p>
</div>
<div id="subsection72" class="subsection"><h3><a name="subsection72">How does a client call a type method?</a></h3>
<p>The type method name becomes a subcommand of the type's command.  For
example, assuming that the constructor adds each pedigreed dog to the
list of <b class="variable">pedigreedDogs</b>,</p>
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
<p>It's sometimes useful to define private type methods, that is, type
methods intended to be called only by other type or instance methods
of the same object.</p>
<p>Snit doesn't implement any access control on type methods; by
convention, the names of public methods begin with a lower-case
letter, and the names of private methods begin with an upper-case
letter.</p>
<p>Alternatively, a Snit <b class="cmd"><a href="../../../../index.html#key586">proc</a></b> can be used as a private type method; see
<span class="sectref"><a href="#section10">PROCS</a></span>.</p>
</div>
<div id="subsection75" class="subsection"><h3><a name="subsection75">Are there any limitations on type method arguments?</a></h3>
<p>Method argument lists are defined just like normal Tcl proc argument
lists; in particular, they can include arguments with default values
and the <b class="variable">args</b> argument.</p>
<p>However, every type method is called with an implicit argument called







|







1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
<p>It's sometimes useful to define private type methods, that is, type
methods intended to be called only by other type or instance methods
of the same object.</p>
<p>Snit doesn't implement any access control on type methods; by
convention, the names of public methods begin with a lower-case
letter, and the names of private methods begin with an upper-case
letter.</p>
<p>Alternatively, a Snit <b class="cmd"><a href="../../../../index.html#key589">proc</a></b> can be used as a private type method; see
<span class="sectref"><a href="#section10">PROCS</a></span>.</p>
</div>
<div id="subsection75" class="subsection"><h3><a name="subsection75">Are there any limitations on type method arguments?</a></h3>
<p>Method argument lists are defined just like normal Tcl proc argument
lists; in particular, they can include arguments with default values
and the <b class="variable">args</b> argument.</p>
<p>However, every type method is called with an implicit argument called
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
<p>Yes, you can define hierarchical type methods in just the same way as
you can define hierarchical instance methods.  See
<span class="sectref"><a href="#section5">INSTANCE METHODS</a></span> for more.</p>
</div>
</div>
<div id="section10" class="section"><h2><a name="section10">PROCS</a></h2>
<div id="subsection79" class="subsection"><h3><a name="subsection79">What is a proc?</a></h3>
<p>A Snit <b class="cmd"><a href="../../../../index.html#key586">proc</a></b> is really just a Tcl proc defined within the type's
namespace.  You can use procs for private code that isn't related to
any particular instance.</p>
</div>
<div id="subsection80" class="subsection"><h3><a name="subsection80">How do I define a proc?</a></h3>
<p>Procs are defined by including a <b class="cmd"><a href="../../../../index.html#key586">proc</a></b> statement in the type
definition:</p>
<pre class="example">snit::type mytype {
    # Pops and returns the first item from the list stored in the
    # listvar, updating the listvar
   proc pop {listvar} { ... }
   # ...
}
</pre>
</div>
<div id="subsection81" class="subsection"><h3><a name="subsection81">Are there any limitations on proc names?</a></h3>
<p>Any name can be used, so long as it does not begin with <b class="const">Snit_</b>;
names beginning with <b class="const">Snit_</b> are reserved for Snit's own use.
However, the wise programmer will avoid <b class="cmd"><a href="../../../../index.html#key586">proc</a></b> names (<b class="cmd"><a href="../../../../index.html#key297">set</a></b>,
<b class="cmd"><a href="../../../../index.html#key298">list</a></b>, <b class="cmd">if</b>, etc.) that would shadow standard Tcl
command names.</p>
<p><b class="cmd"><a href="../../../../index.html#key586">proc</a></b> names, being private, should begin with a capital letter according
to convention; however, as there are typically no public <b class="cmd"><a href="../../../../index.html#key586">proc</a></b>s
in the type's namespace it doesn't matter much either way.</p>
</div>
<div id="subsection82" class="subsection"><h3><a name="subsection82">How does a method call a proc?</a></h3>
<p>Just like it calls any Tcl command.  For example,</p>
<pre class="example">snit::type mytype {
    # Pops and returns the first item from the list stored in the
    # listvar, updating the listvar
    proc pop {listvar} { ... }
    variable requestQueue {}
    # Get one request from the queue and process it.
    method processRequest {} {
        set req [pop requestQueue]
    }
}
</pre>
</div>
<div id="subsection83" class="subsection"><h3><a name="subsection83">How can I pass a proc to another object as a callback?</a></h3>
<p>The <b class="cmd">myproc</b> command returns a callback command for the
<b class="cmd"><a href="../../../../index.html#key586">proc</a></b>, just as <b class="cmd">mymethod</b> does for a method.</p>
</div>
</div>
<div id="section11" class="section"><h2><a name="section11">TYPE CONSTRUCTORS</a></h2>
<div id="subsection84" class="subsection"><h3><a name="subsection84">What is a type constructor?</a></h3>
<p>A type constructor is a body of code that initializes the type as a
whole, rather like a C++ static initializer.  The body of a type
constructor is executed once when the type is defined, and never







|




|












|
|

|
|


















|







1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
<p>Yes, you can define hierarchical type methods in just the same way as
you can define hierarchical instance methods.  See
<span class="sectref"><a href="#section5">INSTANCE METHODS</a></span> for more.</p>
</div>
</div>
<div id="section10" class="section"><h2><a name="section10">PROCS</a></h2>
<div id="subsection79" class="subsection"><h3><a name="subsection79">What is a proc?</a></h3>
<p>A Snit <b class="cmd"><a href="../../../../index.html#key589">proc</a></b> is really just a Tcl proc defined within the type's
namespace.  You can use procs for private code that isn't related to
any particular instance.</p>
</div>
<div id="subsection80" class="subsection"><h3><a name="subsection80">How do I define a proc?</a></h3>
<p>Procs are defined by including a <b class="cmd"><a href="../../../../index.html#key589">proc</a></b> statement in the type
definition:</p>
<pre class="example">snit::type mytype {
    # Pops and returns the first item from the list stored in the
    # listvar, updating the listvar
   proc pop {listvar} { ... }
   # ...
}
</pre>
</div>
<div id="subsection81" class="subsection"><h3><a name="subsection81">Are there any limitations on proc names?</a></h3>
<p>Any name can be used, so long as it does not begin with <b class="const">Snit_</b>;
names beginning with <b class="const">Snit_</b> are reserved for Snit's own use.
However, the wise programmer will avoid <b class="cmd"><a href="../../../../index.html#key589">proc</a></b> names (<b class="cmd"><a href="../../../../index.html#key299">set</a></b>,
<b class="cmd"><a href="../../../../index.html#key300">list</a></b>, <b class="cmd">if</b>, etc.) that would shadow standard Tcl
command names.</p>
<p><b class="cmd"><a href="../../../../index.html#key589">proc</a></b> names, being private, should begin with a capital letter according
to convention; however, as there are typically no public <b class="cmd"><a href="../../../../index.html#key589">proc</a></b>s
in the type's namespace it doesn't matter much either way.</p>
</div>
<div id="subsection82" class="subsection"><h3><a name="subsection82">How does a method call a proc?</a></h3>
<p>Just like it calls any Tcl command.  For example,</p>
<pre class="example">snit::type mytype {
    # Pops and returns the first item from the list stored in the
    # listvar, updating the listvar
    proc pop {listvar} { ... }
    variable requestQueue {}
    # Get one request from the queue and process it.
    method processRequest {} {
        set req [pop requestQueue]
    }
}
</pre>
</div>
<div id="subsection83" class="subsection"><h3><a name="subsection83">How can I pass a proc to another object as a callback?</a></h3>
<p>The <b class="cmd">myproc</b> command returns a callback command for the
<b class="cmd"><a href="../../../../index.html#key589">proc</a></b>, just as <b class="cmd">mymethod</b> does for a method.</p>
</div>
</div>
<div id="section11" class="section"><h2><a name="section11">TYPE CONSTRUCTORS</a></h2>
<div id="subsection84" class="subsection"><h3><a name="subsection84">What is a type constructor?</a></h3>
<p>A type constructor is a body of code that initializes the type as a
whole, rather like a C++ static initializer.  The body of a type
constructor is executed once when the type is defined, and never
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
snit::type dog {
    typecomponent vet
    # ...
}
</pre>
</div>
<div id="subsection111" class="subsection"><h3><a name="subsection111">How do I install a type component?</a></h3>
<p>Just use the <b class="cmd"><a href="../../../../index.html#key297">set</a></b> command to assign the component's object
command to the type component.  Because types
(even <b class="cmd">snit::widget</b> types) are not widgets, and do not have
options anyway, the extra features of the <b class="cmd">install</b> command are
not needed.</p>
<p>You'll usually install type components in the type constructor, as
shown here:</p>
<pre class="example">snit::type veterinarian { ... }







|







2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
snit::type dog {
    typecomponent vet
    # ...
}
</pre>
</div>
<div id="subsection111" class="subsection"><h3><a name="subsection111">How do I install a type component?</a></h3>
<p>Just use the <b class="cmd"><a href="../../../../index.html#key299">set</a></b> command to assign the component's object
command to the type component.  Because types
(even <b class="cmd">snit::widget</b> types) are not widgets, and do not have
options anyway, the extra features of the <b class="cmd">install</b> command are
not needed.</p>
<p>You'll usually install type components in the type constructor, as
shown here:</p>
<pre class="example">snit::type veterinarian { ... }
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
        $self configurelist $args
    }
}
</pre>
<p>This is the hard way to do it, by it demonstrates what delegation is
all about.  See the following answers for the easy way to do it.</p>
<p>Note that the constructor calls the <b class="method">configurelist</b> method
<b class="cmd"><a href="../../../../index.html#key409">after</a></b> it creates its <b class="cmd">tail</b>; otherwise,
if <b class="option">-taillength</b> appeared in the list of <b class="variable">args</b> we'd get an
error.</p>
</div>
<div id="subsection114" class="subsection"><h3><a name="subsection114">How can I delegate a method to a component object?</a></h3>
<p>Delegation occurs frequently enough that Snit makes it easy. Any
method can be delegated to any component or type component
by placing a single <b class="cmd">delegate</b> statement in the type definition.







|







2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
        $self configurelist $args
    }
}
</pre>
<p>This is the hard way to do it, by it demonstrates what delegation is
all about.  See the following answers for the easy way to do it.</p>
<p>Note that the constructor calls the <b class="method">configurelist</b> method
<b class="cmd"><a href="../../../../index.html#key411">after</a></b> it creates its <b class="cmd">tail</b>; otherwise,
if <b class="option">-taillength</b> appeared in the list of <b class="variable">args</b> we'd get an
error.</p>
</div>
<div id="subsection114" class="subsection"><h3><a name="subsection114">How can I delegate a method to a component object?</a></h3>
<p>Delegation occurs frequently enough that Snit makes it easy. Any
method can be delegated to any component or type component
by placing a single <b class="cmd">delegate</b> statement in the type definition.
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
<p>This code has the same effect as the code shown under the previous
question: when a <b class="cmd">dog</b>'s <b class="cmd">wag</b> method is called, the call and
its arguments are passed along automatically to the <b class="cmd">tail</b> object.</p>
<p>Note that when a component is mentioned in a <b class="cmd">delegate</b> statement,
the component's instance variable is defined implicitly.  However,
it's still good practice to declare it explicitly using the
<b class="cmd">component</b> statement.</p>
<p>Note also that you can define a method name using the <b class="cmd"><a href="../../../../index.html#key367">method</a></b>
statement, or you can define it using <b class="cmd">delegate</b>; you can't do
both.</p>
</div>
<div id="subsection115" class="subsection"><h3><a name="subsection115">Can I delegate to a method with a different name?</a></h3>
<p>Suppose you wanted to delegate the <b class="cmd">dog</b>'s <b class="method">wagtail</b> method to
the <b class="cmd">tail</b>'s <b class="method">wag</b> method.  After all you wag the tail, not
the dog.  It's easily done:</p>







|







2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
<p>This code has the same effect as the code shown under the previous
question: when a <b class="cmd">dog</b>'s <b class="cmd">wag</b> method is called, the call and
its arguments are passed along automatically to the <b class="cmd">tail</b> object.</p>
<p>Note that when a component is mentioned in a <b class="cmd">delegate</b> statement,
the component's instance variable is defined implicitly.  However,
it's still good practice to declare it explicitly using the
<b class="cmd">component</b> statement.</p>
<p>Note also that you can define a method name using the <b class="cmd"><a href="../../../../index.html#key369">method</a></b>
statement, or you can define it using <b class="cmd">delegate</b>; you can't do
both.</p>
</div>
<div id="subsection115" class="subsection"><h3><a name="subsection115">Can I delegate to a method with a different name?</a></h3>
<p>Suppose you wanted to delegate the <b class="cmd">dog</b>'s <b class="method">wagtail</b> method to
the <b class="cmd">tail</b>'s <b class="method">wag</b> method.  After all you wag the tail, not
the dog.  It's easily done:</p>
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
The name of an instance of a <b class="cmd">snit::widget</b> must be a valid Tk
widget name, and its parent widget must already exist.</p></li>
<li><p>An instance of a <b class="cmd">snit::type</b> can be destroyed by calling
its <b class="cmd">destroy</b> method.  Instances of a <b class="cmd">snit::widget</b> have no
destroy method; use the Tk <b class="cmd">destroy</b> command instead.</p></li>
<li><p>Every instance of a <b class="cmd">snit::widget</b> has one predefined component
called its <b class="variable">hull</b> component.
The hull is usually a Tk <b class="cmd"><a href="../../../../index.html#key667">frame</a></b> or <b class="cmd">toplevel</b> widget; any other
widgets created as part of the <b class="cmd">snit::widget</b> will usually be
contained within the hull.</p></li>
<li><p><b class="cmd">snit::widget</b>s can have their options receive default values from
<span class="sectref"><a href="#section19">THE TK OPTION DATABASE</a></span>.</p></li>
</ul>
</div>
<div id="subsection128" class="subsection"><h3><a name="subsection128">What is a hull component?</a></h3>
<p>Snit can't create a Tk widget object; only Tk can do that.
Thus, every instance of a <b class="cmd">snit::widget</b> must be wrapped around a
genuine Tk widget; this Tk widget is called the <i class="term">hull component</i>.
Snit effectively piggybacks the behavior you define (methods, options,
and so forth) on top of the hull component so that the whole thing
behaves like a standard Tk widget.</p>
<p>For <b class="cmd">snit::widget</b>s the hull component must be a Tk widget that
defines the <b class="const">-class</b> option.</p>
<p><b class="cmd">snit::widgetadaptor</b>s differ from <b class="cmd">snit::widget</b>s chiefly in
that any kind of widget can be used as the hull component; see
<span class="sectref"><a href="#section18">WIDGET ADAPTORS</a></span>.</p>
</div>
<div id="subsection129" class="subsection"><h3><a name="subsection129">How can I set the hull type for a snit::widget?</a></h3>
<p>A <b class="cmd">snit::widget</b>'s hull component will usually be a Tk <b class="cmd"><a href="../../../../index.html#key667">frame</a></b>
widget; however, it may be any Tk widget that defines the
<b class="const">-class</b> option.  You can
explicitly choose the hull type you prefer by including the <b class="cmd">hulltype</b>
command in the widget definition:</p>
<pre class="example">snit::widget mytoplevel {
    hulltype toplevel
    # ...
}
</pre>
<p>If no <b class="cmd">hulltype</b> command appears, the hull will be a <b class="cmd"><a href="../../../../index.html#key667">frame</a></b>.</p>
<p>By default, Snit recognizes the following hull types: the Tk widgets
<b class="cmd"><a href="../../../../index.html#key667">frame</a></b>, <b class="cmd">labelframe</b>, <b class="cmd">toplevel</b>, and the Tile widgets
<b class="cmd">ttk::frame</b>, <b class="cmd">ttk::labelframe</b>, and <b class="cmd">ttk::toplevel</b>.  To
enable the use of some other kind of widget as the hull type, you can
<b class="cmd">lappend</b> the widget command to the variable <b class="variable">snit::hulltypes</b> (always
provided the widget defines the <b class="const">-class</b> option.  For example,
suppose Tk gets a new widget type called a <b class="cmd">prettyframe</b>:</p>
<pre class="example">lappend snit::hulltypes prettyframe
snit::widget mywidget {







|




















|









|

|







2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
The name of an instance of a <b class="cmd">snit::widget</b> must be a valid Tk
widget name, and its parent widget must already exist.</p></li>
<li><p>An instance of a <b class="cmd">snit::type</b> can be destroyed by calling
its <b class="cmd">destroy</b> method.  Instances of a <b class="cmd">snit::widget</b> have no
destroy method; use the Tk <b class="cmd">destroy</b> command instead.</p></li>
<li><p>Every instance of a <b class="cmd">snit::widget</b> has one predefined component
called its <b class="variable">hull</b> component.
The hull is usually a Tk <b class="cmd"><a href="../../../../index.html#key671">frame</a></b> or <b class="cmd">toplevel</b> widget; any other
widgets created as part of the <b class="cmd">snit::widget</b> will usually be
contained within the hull.</p></li>
<li><p><b class="cmd">snit::widget</b>s can have their options receive default values from
<span class="sectref"><a href="#section19">THE TK OPTION DATABASE</a></span>.</p></li>
</ul>
</div>
<div id="subsection128" class="subsection"><h3><a name="subsection128">What is a hull component?</a></h3>
<p>Snit can't create a Tk widget object; only Tk can do that.
Thus, every instance of a <b class="cmd">snit::widget</b> must be wrapped around a
genuine Tk widget; this Tk widget is called the <i class="term">hull component</i>.
Snit effectively piggybacks the behavior you define (methods, options,
and so forth) on top of the hull component so that the whole thing
behaves like a standard Tk widget.</p>
<p>For <b class="cmd">snit::widget</b>s the hull component must be a Tk widget that
defines the <b class="const">-class</b> option.</p>
<p><b class="cmd">snit::widgetadaptor</b>s differ from <b class="cmd">snit::widget</b>s chiefly in
that any kind of widget can be used as the hull component; see
<span class="sectref"><a href="#section18">WIDGET ADAPTORS</a></span>.</p>
</div>
<div id="subsection129" class="subsection"><h3><a name="subsection129">How can I set the hull type for a snit::widget?</a></h3>
<p>A <b class="cmd">snit::widget</b>'s hull component will usually be a Tk <b class="cmd"><a href="../../../../index.html#key671">frame</a></b>
widget; however, it may be any Tk widget that defines the
<b class="const">-class</b> option.  You can
explicitly choose the hull type you prefer by including the <b class="cmd">hulltype</b>
command in the widget definition:</p>
<pre class="example">snit::widget mytoplevel {
    hulltype toplevel
    # ...
}
</pre>
<p>If no <b class="cmd">hulltype</b> command appears, the hull will be a <b class="cmd"><a href="../../../../index.html#key671">frame</a></b>.</p>
<p>By default, Snit recognizes the following hull types: the Tk widgets
<b class="cmd"><a href="../../../../index.html#key671">frame</a></b>, <b class="cmd">labelframe</b>, <b class="cmd">toplevel</b>, and the Tile widgets
<b class="cmd">ttk::frame</b>, <b class="cmd">ttk::labelframe</b>, and <b class="cmd">ttk::toplevel</b>.  To
enable the use of some other kind of widget as the hull type, you can
<b class="cmd">lappend</b> the widget command to the variable <b class="variable">snit::hulltypes</b> (always
provided the widget defines the <b class="const">-class</b> option.  For example,
suppose Tk gets a new widget type called a <b class="cmd">prettyframe</b>:</p>
<pre class="example">lappend snit::hulltypes prettyframe
snit::widget mywidget {
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
prior to calling <b class="cmd">installhull</b> will fail.</p>
</div>
<div id="subsection133" class="subsection"><h3><a name="subsection133">Can I adapt a widget created elsewhere in the program?</a></h3>
<p>Yes.</p>
<p>At times, it can be convenient to adapt a pre-existing widget instead
of creating your own.
For example, the Bwidget <b class="cmd">PagesManager</b> widget manages a
set of <b class="cmd"><a href="../../../../index.html#key667">frame</a></b> widgets, only one of which is visible at a time.
The application chooses which <b class="cmd"><a href="../../../../index.html#key667">frame</a></b> is visible.  All of the
These <b class="cmd"><a href="../../../../index.html#key667">frame</a></b>s are created by the <b class="cmd">PagesManager</b> itself, using
its <b class="method">add</b> method.  It's convenient to adapt these frames to
do what we'd like them to do.</p>
<p>In a case like this, the Tk widget will already exist when the
<b class="cmd">snit::widgetadaptor</b> is created.  Snit provides an alternate form
of the <b class="cmd">installhull</b> command for this purpose:</p>
<pre class="example">snit::widgetadaptor pageadaptor {
    constructor {args} {







|
|
|







2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
prior to calling <b class="cmd">installhull</b> will fail.</p>
</div>
<div id="subsection133" class="subsection"><h3><a name="subsection133">Can I adapt a widget created elsewhere in the program?</a></h3>
<p>Yes.</p>
<p>At times, it can be convenient to adapt a pre-existing widget instead
of creating your own.
For example, the Bwidget <b class="cmd">PagesManager</b> widget manages a
set of <b class="cmd"><a href="../../../../index.html#key671">frame</a></b> widgets, only one of which is visible at a time.
The application chooses which <b class="cmd"><a href="../../../../index.html#key671">frame</a></b> is visible.  All of the
These <b class="cmd"><a href="../../../../index.html#key671">frame</a></b>s are created by the <b class="cmd">PagesManager</b> itself, using
its <b class="method">add</b> method.  It's convenient to adapt these frames to
do what we'd like them to do.</p>
<p>In a case like this, the Tk widget will already exist when the
<b class="cmd">snit::widgetadaptor</b> is created.  Snit provides an alternate form
of the <b class="cmd">installhull</b> command for this purpose:</p>
<pre class="example">snit::widgetadaptor pageadaptor {
    constructor {args} {
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
same widget class as an ordinary <b class="cmd"><a href="../../../../index.html#key246">text</a></b> widget.  This might or
might not be a good idea, depending on how the rest of the megawidget
is defined, and how its options are delegated.</p>
</div>
<div id="subsection138" class="subsection"><h3><a name="subsection138">What is my snit::widgetadaptor's widget class?</a></h3>
<p>The widget class of a <b class="cmd">snit::widgetadaptor</b> is just the widget
class of its hull widget; Snit has no control over this.</p>
<p>Note that the widget class can be changed only for <b class="cmd"><a href="../../../../index.html#key667">frame</a></b> and
<b class="cmd">toplevel</b> widgets, which is why these are the valid hull types
for <b class="cmd">snit::widget</b>s.</p>
<p>Try to use <b class="cmd">snit::widgetadaptor</b>s only to make small modifications
to another widget's behavior.  Then, it will usually not make sense to
change the widget's widget class anyway.</p>
</div>
<div id="subsection139" class="subsection"><h3><a name="subsection139">What are option resource and class names?</a></h3>







|







2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
same widget class as an ordinary <b class="cmd"><a href="../../../../index.html#key246">text</a></b> widget.  This might or
might not be a good idea, depending on how the rest of the megawidget
is defined, and how its options are delegated.</p>
</div>
<div id="subsection138" class="subsection"><h3><a name="subsection138">What is my snit::widgetadaptor's widget class?</a></h3>
<p>The widget class of a <b class="cmd">snit::widgetadaptor</b> is just the widget
class of its hull widget; Snit has no control over this.</p>
<p>Note that the widget class can be changed only for <b class="cmd"><a href="../../../../index.html#key671">frame</a></b> and
<b class="cmd">toplevel</b> widgets, which is why these are the valid hull types
for <b class="cmd">snit::widget</b>s.</p>
<p>Try to use <b class="cmd">snit::widgetadaptor</b>s only to make small modifications
to another widget's behavior.  Then, it will usually not make sense to
change the widget's widget class anyway.</p>
</div>
<div id="subsection139" class="subsection"><h3><a name="subsection139">What are option resource and class names?</a></h3>
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
syntax.  If it doesn't, don't use <b class="cmd">install</b>.</p>
</div>
</div>
<div id="section20" class="section"><h2><a name="section20">ENSEMBLE COMMANDS</a></h2>
<div id="subsection146" class="subsection"><h3><a name="subsection146">What is an ensemble command?</a></h3>
<p>An ensemble command is a command with subcommands.  Snit objects are
all ensemble commands; however, the term more usually refers to
commands like the standard Tcl commands <b class="cmd"><a href="../../../../index.html#key276">string</a></b>, <b class="cmd"><a href="../../../../index.html#key31">file</a></b>,
and <b class="cmd">clock</b>.  In a sense, these are singleton objects--there's
only one instance of them.</p>
</div>
<div id="subsection147" class="subsection"><h3><a name="subsection147">How can I create an ensemble command using Snit?</a></h3>
<p>There are two ways--as a <b class="cmd">snit::type</b>, or as an instance of
a <b class="cmd">snit::type</b>.</p>
</div>
<div id="subsection148" class="subsection"><h3><a name="subsection148">How can I create an ensemble command using an instance of a snit::type?</a></h3>
<p>Define a type whose <span class="sectref"><a href="#section5">INSTANCE METHODS</a></span> are the subcommands
of your ensemble command.  Then, create an instance of the type with
the desired name.</p>
<p>For example, the following code uses <span class="sectref"><a href="#section16">DELEGATION</a></span> to create
a work-alike for the standard <b class="cmd"><a href="../../../../index.html#key276">string</a></b> command:</p>
<pre class="example">snit::type ::mynamespace::mystringtype {
    delegate method * to stringhandler
    constructor {} {
        set stringhandler string
    }
}
::mynamespace::mystringtype mystring
</pre>
<p>We create the type in a namespace, so that the type command is hidden;
then we create a single instance with the desired name--
<b class="cmd">mystring</b>, in this case.</p>
<p>This method has two drawbacks.  First, it leaves the type command
floating about.  More seriously, your shiny new ensemble
command will have <b class="method">info</b> and <b class="method">destroy</b> subcommands that
you probably have no use for.  But read on.</p>
</div>
<div id="subsection149" class="subsection"><h3><a name="subsection149">How can I create an ensemble command using a snit::type?</a></h3>
<p>Define a type whose <span class="sectref"><a href="#section9">TYPE METHODS</a></span> are the subcommands
of your ensemble command.</p>
<p>For example, the following code uses <span class="sectref"><a href="#section16">DELEGATION</a></span> to create
a work-alike for the standard <b class="cmd"><a href="../../../../index.html#key276">string</a></b> command:</p>
<pre class="example">snit::type mystring {
    delegate typemethod * to stringhandler
    typeconstructor {
        set stringhandler string
    }
}
</pre>







|












|




















|







2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
syntax.  If it doesn't, don't use <b class="cmd">install</b>.</p>
</div>
</div>
<div id="section20" class="section"><h2><a name="section20">ENSEMBLE COMMANDS</a></h2>
<div id="subsection146" class="subsection"><h3><a name="subsection146">What is an ensemble command?</a></h3>
<p>An ensemble command is a command with subcommands.  Snit objects are
all ensemble commands; however, the term more usually refers to
commands like the standard Tcl commands <b class="cmd"><a href="../../../../index.html#key278">string</a></b>, <b class="cmd"><a href="../../../../index.html#key31">file</a></b>,
and <b class="cmd">clock</b>.  In a sense, these are singleton objects--there's
only one instance of them.</p>
</div>
<div id="subsection147" class="subsection"><h3><a name="subsection147">How can I create an ensemble command using Snit?</a></h3>
<p>There are two ways--as a <b class="cmd">snit::type</b>, or as an instance of
a <b class="cmd">snit::type</b>.</p>
</div>
<div id="subsection148" class="subsection"><h3><a name="subsection148">How can I create an ensemble command using an instance of a snit::type?</a></h3>
<p>Define a type whose <span class="sectref"><a href="#section5">INSTANCE METHODS</a></span> are the subcommands
of your ensemble command.  Then, create an instance of the type with
the desired name.</p>
<p>For example, the following code uses <span class="sectref"><a href="#section16">DELEGATION</a></span> to create
a work-alike for the standard <b class="cmd"><a href="../../../../index.html#key278">string</a></b> command:</p>
<pre class="example">snit::type ::mynamespace::mystringtype {
    delegate method * to stringhandler
    constructor {} {
        set stringhandler string
    }
}
::mynamespace::mystringtype mystring
</pre>
<p>We create the type in a namespace, so that the type command is hidden;
then we create a single instance with the desired name--
<b class="cmd">mystring</b>, in this case.</p>
<p>This method has two drawbacks.  First, it leaves the type command
floating about.  More seriously, your shiny new ensemble
command will have <b class="method">info</b> and <b class="method">destroy</b> subcommands that
you probably have no use for.  But read on.</p>
</div>
<div id="subsection149" class="subsection"><h3><a name="subsection149">How can I create an ensemble command using a snit::type?</a></h3>
<p>Define a type whose <span class="sectref"><a href="#section9">TYPE METHODS</a></span> are the subcommands
of your ensemble command.</p>
<p>For example, the following code uses <span class="sectref"><a href="#section16">DELEGATION</a></span> to create
a work-alike for the standard <b class="cmd"><a href="../../../../index.html#key278">string</a></b> command:</p>
<pre class="example">snit::type mystring {
    delegate typemethod * to stringhandler
    typeconstructor {
        set stringhandler string
    }
}
</pre>

Changes to embedded/www/tcllib/files/modules/soundex/soundex.html.

158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
bugs and other problems.
Please report such in the category <em>soundex</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key281">knuth</a>, <a href="../../../../index.html#key280">soundex</a>, <a href="../../../../index.html#key279">text comparison</a>, <a href="../../../../index.html#key282">text likeness</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; ????, Algorithm: Donald E. Knuth<br>
Copyright &copy; 2003, Documentation: Andreas Kupries &lt;[email protected]&gt;<br>







|







158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
bugs and other problems.
Please report such in the category <em>soundex</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key283">knuth</a>, <a href="../../../../index.html#key282">soundex</a>, <a href="../../../../index.html#key281">text comparison</a>, <a href="../../../../index.html#key284">text likeness</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Hashes, checksums, and encryption</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; ????, Algorithm: Donald E. Knuth<br>
Copyright &copy; 2003, Documentation: Andreas Kupries &lt;[email protected]&gt;<br>

Changes to embedded/www/tcllib/files/modules/stooop/stooop.html.

155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<dt><a name="1"><b class="cmd">::stooop::class</b> <i class="arg">name body</i></a></dt>
<dd><p>This command creates a class. The body, similar in contents to a Tcl
namespace (which a class actually also is), contains member procedure
definitions. Member procedures can also be defined outside the class
body, by prefixing their name with <b class="const">class::</b>, as you would
proceed with namespace procedures.</p>
<dl class="definitions">
<dt><b class="cmd"><a href="../../../../index.html#key586">proc</a></b> <i class="arg">class</i> {<b class="const">this</b> <span class="opt">?<i class="arg">arg arg ...</i>?</span>} <span class="opt">?<i class="arg">base</i> {<span class="opt">?<i class="arg">arg arg ...</i>?</span>} ...?</span> <i class="arg">body</i></dt>
<dd><p>This is the constructor procedure for the class. It is invoked
following a <b class="cmd">new</b> invocation on the class. It must have the same
name as the class and a first argument named <b class="const">this</b>. Any number
of base classes specifications, including arguments to be passed to
their constructor, are allowed before the actual body of the
procedure.</p></dd>
<dt><b class="cmd"><a href="../../../../index.html#key586">proc</a></b> ~<i class="arg">class</i> {<b class="const">this</b>} <i class="arg">body</i></dt>
<dd><p>This is the destructor procedure for the class. It is invoked
following a <b class="cmd">delete</b> invocation. Its name must be the
concatenation of a single <b class="const">~</b> character followed by the class
name (as in C++). It must have a single argument named <b class="const">this</b>.</p></dd>
<dt><b class="cmd"><a href="../../../../index.html#key586">proc</a></b> <i class="arg">name</i> {<b class="const">this</b> <span class="opt">?<i class="arg">arg arg ...</i>?</span>} <i class="arg">body</i></dt>
<dd><p>This is a member procedure of the class, as its first argument is
named <b class="const">this</b>. It allows a simple access of member data for the
object referenced by <b class="const">this</b> inside the procedure. For example:</p>
<pre class="example">
   set ($this,data) 0
</pre>
</dd>
<dt><b class="cmd"><a href="../../../../index.html#key586">proc</a></b> <i class="arg">name</i> {<span class="opt">?<i class="arg">arg arg ...</i>?</span>} <i class="arg">body</i></dt>
<dd><p>This is a static (as in C++) member procedure of the class, as its
first argument is not named <b class="const">this</b>. Static (global) class data
can be accessed as in:</p>
<pre class="example">
   set (data) 0
</pre>
</dd>
<dt><b class="cmd"><a href="../../../../index.html#key586">proc</a></b> <i class="arg">class</i> {<b class="const">this copy</b>} <i class="arg">body</i></dt>
<dd><p>This is the optional copy procedure for the class. It must have the
same name as the class and exactly 2 arguments named <b class="const">this</b> and
<b class="const">copy</b>. It is invoked following a <b class="cmd">new</b> invocation on an
existing object of the class.</p></dd>
</dl></dd>
<dt><a name="2"><b class="cmd">::stooop::new</b> <i class="arg">class</i> <span class="opt">?<i class="arg">arg arg ...</i>?</span></a></dt>
<dd><p>This command is used to create an object. The first argument is the







|






|




|







|







|







155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<dt><a name="1"><b class="cmd">::stooop::class</b> <i class="arg">name body</i></a></dt>
<dd><p>This command creates a class. The body, similar in contents to a Tcl
namespace (which a class actually also is), contains member procedure
definitions. Member procedures can also be defined outside the class
body, by prefixing their name with <b class="const">class::</b>, as you would
proceed with namespace procedures.</p>
<dl class="definitions">
<dt><b class="cmd"><a href="../../../../index.html#key589">proc</a></b> <i class="arg">class</i> {<b class="const">this</b> <span class="opt">?<i class="arg">arg arg ...</i>?</span>} <span class="opt">?<i class="arg">base</i> {<span class="opt">?<i class="arg">arg arg ...</i>?</span>} ...?</span> <i class="arg">body</i></dt>
<dd><p>This is the constructor procedure for the class. It is invoked
following a <b class="cmd">new</b> invocation on the class. It must have the same
name as the class and a first argument named <b class="const">this</b>. Any number
of base classes specifications, including arguments to be passed to
their constructor, are allowed before the actual body of the
procedure.</p></dd>
<dt><b class="cmd"><a href="../../../../index.html#key589">proc</a></b> ~<i class="arg">class</i> {<b class="const">this</b>} <i class="arg">body</i></dt>
<dd><p>This is the destructor procedure for the class. It is invoked
following a <b class="cmd">delete</b> invocation. Its name must be the
concatenation of a single <b class="const">~</b> character followed by the class
name (as in C++). It must have a single argument named <b class="const">this</b>.</p></dd>
<dt><b class="cmd"><a href="../../../../index.html#key589">proc</a></b> <i class="arg">name</i> {<b class="const">this</b> <span class="opt">?<i class="arg">arg arg ...</i>?</span>} <i class="arg">body</i></dt>
<dd><p>This is a member procedure of the class, as its first argument is
named <b class="const">this</b>. It allows a simple access of member data for the
object referenced by <b class="const">this</b> inside the procedure. For example:</p>
<pre class="example">
   set ($this,data) 0
</pre>
</dd>
<dt><b class="cmd"><a href="../../../../index.html#key589">proc</a></b> <i class="arg">name</i> {<span class="opt">?<i class="arg">arg arg ...</i>?</span>} <i class="arg">body</i></dt>
<dd><p>This is a static (as in C++) member procedure of the class, as its
first argument is not named <b class="const">this</b>. Static (global) class data
can be accessed as in:</p>
<pre class="example">
   set (data) 0
</pre>
</dd>
<dt><b class="cmd"><a href="../../../../index.html#key589">proc</a></b> <i class="arg">class</i> {<b class="const">this copy</b>} <i class="arg">body</i></dt>
<dd><p>This is the optional copy procedure for the class. It must have the
same name as the class and exactly 2 arguments named <b class="const">this</b> and
<b class="const">copy</b>. It is invoked following a <b class="cmd">new</b> invocation on an
existing object of the class.</p></dd>
</dl></dd>
<dt><a name="2"><b class="cmd">::stooop::new</b> <i class="arg">class</i> <span class="opt">?<i class="arg">arg arg ...</i>?</span></a></dt>
<dd><p>This command is used to create an object. The first argument is the
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
instanciation.</p></dd>
<dt><b class="variable">STOOOPCHECKALL</b></dt>
<dd><p>Setting this variable to any true value will cause stooop to activate
both procedure and data member checking.</p></dd>
<dt><b class="variable">STOOOPCHECKOBJECTS</b></dt>
<dd><p>Setting this variable to any true value will cause stooop to activate
object checking. The following stooop namespace procedures then become
available for debugging: <b class="cmd">printObjects</b>, <b class="cmd"><a href="../../../../index.html#key303">record</a></b> and
<b class="cmd"><a href="../report/report.html">report</a></b>.</p></dd>
<dt><b class="variable">STOOOPTRACEPROCEDURES</b></dt>
<dd><p>Setting this environment variable to either <b class="const">stdout</b>,
<b class="const">stderr</b> or a file name, activates procedure tracing. The
stooop library will then output to the specified channel 1 line of
informational text for each member procedure invocation.</p></dd>
<dt><b class="variable">STOOOPTRACEPROCEDURESFORMAT</b></dt>







|







232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
instanciation.</p></dd>
<dt><b class="variable">STOOOPCHECKALL</b></dt>
<dd><p>Setting this variable to any true value will cause stooop to activate
both procedure and data member checking.</p></dd>
<dt><b class="variable">STOOOPCHECKOBJECTS</b></dt>
<dd><p>Setting this variable to any true value will cause stooop to activate
object checking. The following stooop namespace procedures then become
available for debugging: <b class="cmd">printObjects</b>, <b class="cmd"><a href="../../../../index.html#key305">record</a></b> and
<b class="cmd"><a href="../report/report.html">report</a></b>.</p></dd>
<dt><b class="variable">STOOOPTRACEPROCEDURES</b></dt>
<dd><p>Setting this environment variable to either <b class="const">stdout</b>,
<b class="const">stderr</b> or a file name, activates procedure tracing. The
stooop library will then output to the specified channel 1 line of
informational text for each member procedure invocation.</p></dd>
<dt><b class="variable">STOOOPTRACEPROCEDURESFORMAT</b></dt>

Changes to embedded/www/tcllib/files/modules/string/token.html.

198
199
200
201
202
203
204
205
206
207
208
209
210
bugs and other problems.
Please report such in the category <em>textutil</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key690">lexing</a>, <a href="../../../../index.html#key689">regex</a>, <a href="../../../../index.html#key276">string</a>, <a href="../../../../index.html#key688">tokenization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>







|





198
199
200
201
202
203
204
205
206
207
208
209
210
bugs and other problems.
Please report such in the category <em>textutil</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key694">lexing</a>, <a href="../../../../index.html#key693">regex</a>, <a href="../../../../index.html#key278">string</a>, <a href="../../../../index.html#key692">tokenization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/string/token_shell.html.

222
223
224
225
226
227
228
229
230
231
232
233
234
bugs and other problems.
Please report such in the category <em>textutil</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key735">bash</a>, <a href="../../../../index.html#key690">lexing</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key734">shell</a>, <a href="../../../../index.html#key276">string</a>, <a href="../../../../index.html#key688">tokenization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>







|





222
223
224
225
226
227
228
229
230
231
232
233
234
bugs and other problems.
Please report such in the category <em>textutil</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key739">bash</a>, <a href="../../../../index.html#key694">lexing</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key738">shell</a>, <a href="../../../../index.html#key278">string</a>, <a href="../../../../index.html#key692">tokenization</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/stringprep/stringprep.html.

221
222
223
224
225
226
227
228
229
230
231
232
233
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="unicode.html">unicode(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key639">stringprep</a>, <a href="../../../../index.html#key640">unicode</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2009, Sergei Golovan &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|





221
222
223
224
225
226
227
228
229
230
231
232
233
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="unicode.html">unicode(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key643">stringprep</a>, <a href="../../../../index.html#key644">unicode</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2009, Sergei Golovan &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/stringprep/stringprep_data.html.

142
143
144
145
146
147
148
149
150
151
152
153
154
bugs and other problems.
Please report such in the category <em>stringprep</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key639">stringprep</a>, <a href="../../../../index.html#key640">unicode</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2009, Sergei Golovan &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|





142
143
144
145
146
147
148
149
150
151
152
153
154
bugs and other problems.
Please report such in the category <em>stringprep</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key643">stringprep</a>, <a href="../../../../index.html#key644">unicode</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2009, Sergei Golovan &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/stringprep/unicode.html.

196
197
198
199
200
201
202
203
204
205
206
207
208
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="stringprep.html">stringprep(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key112">normalization</a>, <a href="../../../../index.html#key640">unicode</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007, Sergei Golovan &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|





196
197
198
199
200
201
202
203
204
205
206
207
208
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="stringprep.html">stringprep(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key112">normalization</a>, <a href="../../../../index.html#key644">unicode</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007, Sergei Golovan &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/stringprep/unicode_data.html.

142
143
144
145
146
147
148
149
150
151
152
153
154
bugs and other problems.
Please report such in the category <em>stringprep</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key639">stringprep</a>, <a href="../../../../index.html#key640">unicode</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007, Sergei Golovan &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|





142
143
144
145
146
147
148
149
150
151
152
153
154
bugs and other problems.
Please report such in the category <em>stringprep</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key643">stringprep</a>, <a href="../../../../index.html#key644">unicode</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007, Sergei Golovan &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/struct/disjointset.html.

150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
but close.
Another operation which is often wanted is that of quickly merging two
sets into one, with the result still fast for finding elements. Hence
the alternative term <i class="term">merge-find</i> for this.</p>
<p>Why now is this named a <i class="term">disjoint-set</i> ?
Because another way of describing the whole situation is that we have</p>
<ul class="itemized">
<li><p>a finite <i class="term"><a href="../../../../index.html#key297">set</a></i> S, containing</p></li>
<li><p>a number of <i class="term">elements</i> E, split into</p></li>
<li><p>a set of <i class="term">partitions</i> P. The latter term
       applies, because the intersection of each pair P, P' of
       partitions is empty, with the union of all partitions
       covering the whole set.</p></li>
<li><p>An alternative name for the <i class="term">partitions</i> would be
       <i class="term">equvalence classes</i>, and all elements in the same







|







150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
but close.
Another operation which is often wanted is that of quickly merging two
sets into one, with the result still fast for finding elements. Hence
the alternative term <i class="term">merge-find</i> for this.</p>
<p>Why now is this named a <i class="term">disjoint-set</i> ?
Because another way of describing the whole situation is that we have</p>
<ul class="itemized">
<li><p>a finite <i class="term"><a href="../../../../index.html#key299">set</a></i> S, containing</p></li>
<li><p>a number of <i class="term">elements</i> E, split into</p></li>
<li><p>a set of <i class="term">partitions</i> P. The latter term
       applies, because the intersection of each pair P, P' of
       partitions is empty, with the union of all partitions
       covering the whole set.</p></li>
<li><p>An alternative name for the <i class="term">partitions</i> would be
       <i class="term">equvalence classes</i>, and all elements in the same
236
237
238
239
240
241
242
243
244
245
246
247
248
bugs and other problems.
Please report such in the category <em>struct :: disjointset</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key616">disjoint set</a>, <a href="../../../../index.html#key615">equivalence class</a>, <a href="../../../../index.html#key619">find</a>, <a href="../../../../index.html#key618">merge find</a>, <a href="../../../../index.html#key620">partition</a>, <a href="../../../../index.html#key621">partitioned set</a>, <a href="../../../../index.html#key617">union</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
</div></body></html>







|





236
237
238
239
240
241
242
243
244
245
246
247
248
bugs and other problems.
Please report such in the category <em>struct :: disjointset</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key620">disjoint set</a>, <a href="../../../../index.html#key619">equivalence class</a>, <a href="../../../../index.html#key623">find</a>, <a href="../../../../index.html#key622">merge find</a>, <a href="../../../../index.html#key624">partition</a>, <a href="../../../../index.html#key625">partitioned set</a>, <a href="../../../../index.html#key621">union</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/struct/graph.html.

205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>A directed graph is a structure containing two collections of
elements, called <i class="term">nodes</i> and <i class="term">arcs</i> respectively, together
with a relation (&quot;connectivity&quot;) that places a general structure upon
the nodes and arcs.</p>
<p>Each arc is connected to two nodes, one of which is called the
<i class="term"><a href="../../../../index.html#key431">source</a></i> and the other the <i class="term">target</i>. This imposes a
direction upon the arc, which is said to go from the source to the
target. It is allowed that source and target of an arc are the same
node. Such an arc is called a <i class="term"><a href="../../../../index.html#key452">loop</a></i>.
Whenever a node is either the source or target of an arc both are said
to be <i class="term"><a href="../../../../index.html#key480">adjacent</a></i>. This extends into a relation between nodes,
i.e. if two nodes are connected through at least one arc they are said
to be <i class="term"><a href="../../../../index.html#key480">adjacent</a></i> too.</p>
<p>Each node can be the source and target for any number of arcs. The
former are called the <i class="term">outgoing arcs</i> of the node, the latter
the <i class="term">incoming arcs</i> of the node. The number of arcs in either
set is called the <i class="term">in-degree</i> resp. the <i class="term">out-degree</i> of the
node.</p>
<p>In addition to maintaining the node and arc relationships, this graph
implementation allows any number of named <i class="term">attributes</i> to be
associated with the graph itself, and each node or arc.</p>
<p><em>Note:</em> The major version of the package <b class="package"><a href="../../../../index.html#key323">struct</a></b> has
been changed to version 2.0, due to backward incompatible changes in
the API of this module. Please read the section
<span class="sectref"><a href="#section2">Changes for 2.0</a></span> for a full list of all changes,
incompatible and otherwise.</p>
<p><em>Note:</em> A C-implementation of the command can be had from the
location <a href="http://www.purl.org/NET/schlenker/tcl/cgraph">http://www.purl.org/NET/schlenker/tcl/cgraph</a>. See also
<a href="http://wiki.tcl.tk/cgraph">http://wiki.tcl.tk/cgraph</a>.  This implementation uses a bit less







|


|

|

|








|







205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>A directed graph is a structure containing two collections of
elements, called <i class="term">nodes</i> and <i class="term">arcs</i> respectively, together
with a relation (&quot;connectivity&quot;) that places a general structure upon
the nodes and arcs.</p>
<p>Each arc is connected to two nodes, one of which is called the
<i class="term"><a href="../../../../index.html#key433">source</a></i> and the other the <i class="term">target</i>. This imposes a
direction upon the arc, which is said to go from the source to the
target. It is allowed that source and target of an arc are the same
node. Such an arc is called a <i class="term"><a href="../../../../index.html#key454">loop</a></i>.
Whenever a node is either the source or target of an arc both are said
to be <i class="term"><a href="../../../../index.html#key482">adjacent</a></i>. This extends into a relation between nodes,
i.e. if two nodes are connected through at least one arc they are said
to be <i class="term"><a href="../../../../index.html#key482">adjacent</a></i> too.</p>
<p>Each node can be the source and target for any number of arcs. The
former are called the <i class="term">outgoing arcs</i> of the node, the latter
the <i class="term">incoming arcs</i> of the node. The number of arcs in either
set is called the <i class="term">in-degree</i> resp. the <i class="term">out-degree</i> of the
node.</p>
<p>In addition to maintaining the node and arc relationships, this graph
implementation allows any number of named <i class="term">attributes</i> to be
associated with the graph itself, and each node or arc.</p>
<p><em>Note:</em> The major version of the package <b class="package"><a href="../../../../index.html#key325">struct</a></b> has
been changed to version 2.0, due to backward incompatible changes in
the API of this module. Please read the section
<span class="sectref"><a href="#section2">Changes for 2.0</a></span> for a full list of all changes,
incompatible and otherwise.</p>
<p><em>Note:</em> A C-implementation of the command can be had from the
location <a href="http://www.purl.org/NET/schlenker/tcl/cgraph">http://www.purl.org/NET/schlenker/tcl/cgraph</a>. See also
<a href="http://wiki.tcl.tk/cgraph">http://wiki.tcl.tk/cgraph</a>.  This implementation uses a bit less
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
whether in the same node, or at some other node. This is a global
consistency requirement for the serialization.</p></li>
<li><p>And a dictionary containing the attributes associated with the arc.</p></li>
<li><p>The weight associated with the arc. This value is optional. Its
non-presence means that the arc in question has no weight associated
with it.</p>
<p><em>Note:</em> This information is new, compared to the
serialization of <b class="package"><a href="../../../../index.html#key301">graph</a></b> 2.3 and earlier. By making it an
optional element the new format is maximally compatible with the
old. This means that any graph not using weights will generate a
serialization which is still understood by the older graph package. A
serialization will not be understood any longer by the older packages
if, and only if the graph it was generated from actually has arcs with
weights.</p></li>
</ol>







|







656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
whether in the same node, or at some other node. This is a global
consistency requirement for the serialization.</p></li>
<li><p>And a dictionary containing the attributes associated with the arc.</p></li>
<li><p>The weight associated with the arc. This value is optional. Its
non-presence means that the arc in question has no weight associated
with it.</p>
<p><em>Note:</em> This information is new, compared to the
serialization of <b class="package"><a href="../../../../index.html#key303">graph</a></b> 2.3 and earlier. By making it an
optional element the new format is maximally compatible with the
old. This means that any graph not using weights will generate a
serialization which is still understood by the older graph package. A
serialization will not be understood any longer by the older packages
if, and only if the graph it was generated from actually has arcs with
weights.</p></li>
</ol>
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
bugs and other problems.
Please report such in the category <em>struct :: graph</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key480">adjacent</a>, <a href="../../../../index.html#key468">arc</a>, <a href="../../../../index.html#key609">cgraph</a>, <a href="../../../../index.html#key470">degree</a>, <a href="../../../../index.html#key455">edge</a>, <a href="../../../../index.html#key301">graph</a>, <a href="../../../../index.html#key452">loop</a>, <a href="../../../../index.html#key484">neighbour</a>, <a href="../../../../index.html#key458">node</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key475">subgraph</a>, <a href="../../../../index.html#key459">vertex</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
bugs and other problems.
Please report such in the category <em>struct :: graph</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key482">adjacent</a>, <a href="../../../../index.html#key470">arc</a>, <a href="../../../../index.html#key612">cgraph</a>, <a href="../../../../index.html#key472">degree</a>, <a href="../../../../index.html#key457">edge</a>, <a href="../../../../index.html#key303">graph</a>, <a href="../../../../index.html#key454">loop</a>, <a href="../../../../index.html#key486">neighbour</a>, <a href="../../../../index.html#key460">node</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key477">subgraph</a>, <a href="../../../../index.html#key461">vertex</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/struct/graph1.html.

400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
bugs and other problems.
Please report such in the category <em>struct :: graph</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key609">cgraph</a>, <a href="../../../../index.html#key301">graph</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
bugs and other problems.
Please report such in the category <em>struct :: graph</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key612">cgraph</a>, <a href="../../../../index.html#key303">graph</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/struct/graphops.html.

214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
the name of the node the row/column is for. All other elements are
boolean values, <b class="const">True</b> if there is an arc between the 2 nodes
of the respective row and column, and <b class="const">False</b> otherwise.</p>
<p>Note that the matrix is symmetric. It does not represent the
directionality of arcs, only their presence between nodes. It is also
unable to represent parallel arcs in <i class="arg">g</i>.</p></dd>
<dt><a name="2"><b class="cmd">struct::graph::op::toAdjacencyList</b> <i class="arg">G</i> <span class="opt">?<i class="arg">options</i>...?</span></a></dt>
<dd><p>Procedure creates for input graph <i class="arg">G</i>, it's representation as <i class="term"><a href="../../../../index.html#key463">Adjacency List</a></i>.
It handles both directed and undirected graphs (default is undirected).
It returns dictionary that for each node (key) returns list of nodes adjacent
to it. When considering weighted version, for each adjacent node there is also
weight of the edge included.</p>
<dl class="definitions">
<dt>Arguments:</dt>
<dd><dl class="arguments">
<dt>Graph object <i class="arg">G</i> (input)</dt>
<dd><p>A graph to convert into an <i class="term"><a href="../../../../index.html#key463">Adjacency List</a></i>.</p></dd>
</dl></dd>
<dt>Options:</dt>
<dd><dl class="options">
<dt><b class="option">-directed</b></dt>
<dd><p>By default <i class="arg">G</i> is operated as if it were an <i class="term">Undirected graph</i>.
Using this option tells the command to handle <i class="arg">G</i> as the directed graph it is.</p></dd>
<dt><b class="option">-weights</b></dt>
<dd><p>By default any weight information the graph <i class="arg">G</i> may have is ignored.
Using this option tells the command to put weight information into the result.
In that case it is expected that all arcs have a proper weight, and an error
is thrown if that is not the case.</p></dd>
</dl></dd>
</dl></dd>
<dt><a name="3"><b class="cmd">struct::graph::op::kruskal</b> <i class="arg">g</i></a></dt>
<dd><p>This command takes the graph <i class="arg">g</i> and returns a list containing the
names of the arcs in <i class="arg">g</i> which span up a minimum weight spanning tree
(MST), or, in the case of an un-connected graph, a minimum weight spanning
forest (except for the 1-vertex components). Kruskal's algorithm is used
to compute the tree or forest.
This algorithm has a time complexity of <i class="term">O(E*log E)</i> or <i class="term">O(E* log V)</i>,
where <i class="term">V</i> is the number of vertices and <i class="term"><a href="../../../../index.html#key798">E</a></i> is the number of edges
in graph <i class="arg">g</i>.</p>
<p>The command will throw an error if one or more arcs in <i class="arg">g</i> have no
weight associated with them.</p>
<p>A note regarding the result, the command refrains from explicitly
listing the nodes of the MST as this information is implicitly
provided in the arcs already.</p></dd>
<dt><a name="4"><b class="cmd">struct::graph::op::prim</b> <i class="arg">g</i></a></dt>
<dd><p>This command takes the graph <i class="arg">g</i> and returns a list containing the
names of the arcs in <i class="arg">g</i> which span up a minimum weight spanning tree
(MST), or, in the case of an un-connected graph, a minimum weight spanning
forest (except for the 1-vertex components). Prim's algorithm is used to
compute the tree or forest.
This algorithm has a time complexity between <i class="term">O(E+V*log V)</i> and <i class="term">O(V*V)</i>,
depending on the implementation (Fibonacci heap + Adjacency list versus
Adjacency Matrix).  As usual <i class="term">V</i> is the number of vertices and
<i class="term"><a href="../../../../index.html#key798">E</a></i> the number of edges in graph <i class="arg">g</i>.</p>
<p>The command will throw an error if one or more arcs in <i class="arg">g</i> have no
weight associated with them.</p>
<p>A note regarding the result, the command refrains from explicitly
listing the nodes of the MST as this information is implicitly
provided in the arcs already.</p></dd>
<dt><a name="5"><b class="cmd">struct::graph::op::isBipartite?</b> <i class="arg">g</i> <span class="opt">?<i class="arg">bipartvar</i>?</span></a></dt>
<dd><p>This command takes the graph <i class="arg">g</i> and returns a boolean value







|








|




















|















|







214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
the name of the node the row/column is for. All other elements are
boolean values, <b class="const">True</b> if there is an arc between the 2 nodes
of the respective row and column, and <b class="const">False</b> otherwise.</p>
<p>Note that the matrix is symmetric. It does not represent the
directionality of arcs, only their presence between nodes. It is also
unable to represent parallel arcs in <i class="arg">g</i>.</p></dd>
<dt><a name="2"><b class="cmd">struct::graph::op::toAdjacencyList</b> <i class="arg">G</i> <span class="opt">?<i class="arg">options</i>...?</span></a></dt>
<dd><p>Procedure creates for input graph <i class="arg">G</i>, it's representation as <i class="term"><a href="../../../../index.html#key465">Adjacency List</a></i>.
It handles both directed and undirected graphs (default is undirected).
It returns dictionary that for each node (key) returns list of nodes adjacent
to it. When considering weighted version, for each adjacent node there is also
weight of the edge included.</p>
<dl class="definitions">
<dt>Arguments:</dt>
<dd><dl class="arguments">
<dt>Graph object <i class="arg">G</i> (input)</dt>
<dd><p>A graph to convert into an <i class="term"><a href="../../../../index.html#key465">Adjacency List</a></i>.</p></dd>
</dl></dd>
<dt>Options:</dt>
<dd><dl class="options">
<dt><b class="option">-directed</b></dt>
<dd><p>By default <i class="arg">G</i> is operated as if it were an <i class="term">Undirected graph</i>.
Using this option tells the command to handle <i class="arg">G</i> as the directed graph it is.</p></dd>
<dt><b class="option">-weights</b></dt>
<dd><p>By default any weight information the graph <i class="arg">G</i> may have is ignored.
Using this option tells the command to put weight information into the result.
In that case it is expected that all arcs have a proper weight, and an error
is thrown if that is not the case.</p></dd>
</dl></dd>
</dl></dd>
<dt><a name="3"><b class="cmd">struct::graph::op::kruskal</b> <i class="arg">g</i></a></dt>
<dd><p>This command takes the graph <i class="arg">g</i> and returns a list containing the
names of the arcs in <i class="arg">g</i> which span up a minimum weight spanning tree
(MST), or, in the case of an un-connected graph, a minimum weight spanning
forest (except for the 1-vertex components). Kruskal's algorithm is used
to compute the tree or forest.
This algorithm has a time complexity of <i class="term">O(E*log E)</i> or <i class="term">O(E* log V)</i>,
where <i class="term">V</i> is the number of vertices and <i class="term"><a href="../../../../index.html#key802">E</a></i> is the number of edges
in graph <i class="arg">g</i>.</p>
<p>The command will throw an error if one or more arcs in <i class="arg">g</i> have no
weight associated with them.</p>
<p>A note regarding the result, the command refrains from explicitly
listing the nodes of the MST as this information is implicitly
provided in the arcs already.</p></dd>
<dt><a name="4"><b class="cmd">struct::graph::op::prim</b> <i class="arg">g</i></a></dt>
<dd><p>This command takes the graph <i class="arg">g</i> and returns a list containing the
names of the arcs in <i class="arg">g</i> which span up a minimum weight spanning tree
(MST), or, in the case of an un-connected graph, a minimum weight spanning
forest (except for the 1-vertex components). Prim's algorithm is used to
compute the tree or forest.
This algorithm has a time complexity between <i class="term">O(E+V*log V)</i> and <i class="term">O(V*V)</i>,
depending on the implementation (Fibonacci heap + Adjacency list versus
Adjacency Matrix).  As usual <i class="term">V</i> is the number of vertices and
<i class="term"><a href="../../../../index.html#key802">E</a></i> the number of edges in graph <i class="arg">g</i>.</p>
<p>The command will throw an error if one or more arcs in <i class="arg">g</i> have no
weight associated with them.</p>
<p>A note regarding the result, the command refrains from explicitly
listing the nodes of the MST as this information is implicitly
provided in the arcs already.</p></dd>
<dt><a name="5"><b class="cmd">struct::graph::op::isBipartite?</b> <i class="arg">g</i> <span class="opt">?<i class="arg">bipartvar</i>?</span></a></dt>
<dd><p>This command takes the graph <i class="arg">g</i> and returns a boolean value
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
<i class="arg">g</i>.</p></dd>
<dt><a name="9"><b class="cmd">struct::graph::op::isConnected?</b> <i class="arg">g</i></a></dt>
<dd><p>This is a convenience command determining whether the graph <i class="arg">g</i> is
<i class="term">connected</i> or not.  The result is a boolean value, <b class="const">true</b>
if the graph is connected, and <b class="const">false</b> otherwise.</p></dd>
<dt><a name="10"><b class="cmd">struct::graph::op::isCutVertex?</b> <i class="arg">g</i> <i class="arg">n</i></a></dt>
<dd><p>This command determines whether the node <i class="arg">n</i> in the graph <i class="arg">g</i>
is a <i class="term"><a href="../../../../index.html#key481">cut vertex</a></i> (aka <i class="term"><a href="../../../../index.html#key478">articulation point</a></i>). The result
is a boolean value, <b class="const">true</b> if the node is a cut vertex, and
<b class="const">false</b> otherwise.</p>
<p>The command will throw an error if <i class="arg">n</i> is not a node of the graph
<i class="arg">g</i>.</p></dd>
<dt><a name="11"><b class="cmd">struct::graph::op::isBridge?</b> <i class="arg">g</i> <i class="arg">a</i></a></dt>
<dd><p>This command determines whether the arc <i class="arg">a</i> in the graph <i class="arg">g</i>
is a <i class="term"><a href="../../../../index.html#key462">bridge</a></i> (aka <i class="term"><a href="../../../../index.html#key479">cut edge</a></i>, or <i class="term"><a href="../../../../index.html#key486">isthmus</a></i>). The
result is a boolean value, <b class="const">true</b> if the arc is a bridge, and
<b class="const">false</b> otherwise.</p>
<p>The command will throw an error if <i class="arg">a</i> is not an arc of the graph
<i class="arg">g</i>.</p></dd>
<dt><a name="12"><b class="cmd">struct::graph::op::isEulerian?</b> <i class="arg">g</i> <span class="opt">?<i class="arg">tourvar</i>?</span></a></dt>
<dd><p>This command determines whether the graph <i class="arg">g</i> is <i class="term">eulerian</i>
or not.  The result is a boolean value, <b class="const">true</b> if the graph is







|






|







302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
<i class="arg">g</i>.</p></dd>
<dt><a name="9"><b class="cmd">struct::graph::op::isConnected?</b> <i class="arg">g</i></a></dt>
<dd><p>This is a convenience command determining whether the graph <i class="arg">g</i> is
<i class="term">connected</i> or not.  The result is a boolean value, <b class="const">true</b>
if the graph is connected, and <b class="const">false</b> otherwise.</p></dd>
<dt><a name="10"><b class="cmd">struct::graph::op::isCutVertex?</b> <i class="arg">g</i> <i class="arg">n</i></a></dt>
<dd><p>This command determines whether the node <i class="arg">n</i> in the graph <i class="arg">g</i>
is a <i class="term"><a href="../../../../index.html#key483">cut vertex</a></i> (aka <i class="term"><a href="../../../../index.html#key480">articulation point</a></i>). The result
is a boolean value, <b class="const">true</b> if the node is a cut vertex, and
<b class="const">false</b> otherwise.</p>
<p>The command will throw an error if <i class="arg">n</i> is not a node of the graph
<i class="arg">g</i>.</p></dd>
<dt><a name="11"><b class="cmd">struct::graph::op::isBridge?</b> <i class="arg">g</i> <i class="arg">a</i></a></dt>
<dd><p>This command determines whether the arc <i class="arg">a</i> in the graph <i class="arg">g</i>
is a <i class="term"><a href="../../../../index.html#key464">bridge</a></i> (aka <i class="term"><a href="../../../../index.html#key481">cut edge</a></i>, or <i class="term"><a href="../../../../index.html#key488">isthmus</a></i>). The
result is a boolean value, <b class="const">true</b> if the arc is a bridge, and
<b class="const">false</b> otherwise.</p>
<p>The command will throw an error if <i class="arg">a</i> is not an arc of the graph
<i class="arg">g</i>.</p></dd>
<dt><a name="12"><b class="cmd">struct::graph::op::isEulerian?</b> <i class="arg">g</i> <span class="opt">?<i class="arg">tourvar</i>?</span></a></dt>
<dd><p>This command determines whether the graph <i class="arg">g</i> is <i class="term">eulerian</i>
or not.  The result is a boolean value, <b class="const">true</b> if the graph is
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
<i class="arg">start</i>. Tree format is the default.</p></dd>
</dl></dd>
<dt><a name="15"><b class="cmd">struct::graph::op::distance</b> <i class="arg">g</i> <i class="arg">origin</i> <i class="arg">destination</i> <span class="opt">?<i class="arg">options</i>...?</span></a></dt>
<dd><p>This command determines the (un)directed distance between the two
nodes <i class="arg">origin</i> and <i class="arg">destination</i> in the graph <i class="arg">g</i>. It
accepts the option <b class="option">-arcmode</b> of <b class="cmd">struct::graph::op::dijkstra</b>.</p></dd>
<dt><a name="16"><b class="cmd">struct::graph::op::eccentricity</b> <i class="arg">g</i> <i class="arg">n</i> <span class="opt">?<i class="arg">options</i>...?</span></a></dt>
<dd><p>This command determines the (un)directed <i class="term"><a href="../../../../index.html#key496">eccentricity</a></i> of the
node <i class="arg">n</i> in the graph <i class="arg">g</i>. It accepts the option
<b class="option">-arcmode</b> of <b class="cmd">struct::graph::op::dijkstra</b>.</p>
<p>The (un)directed <i class="term"><a href="../../../../index.html#key496">eccentricity</a></i> of a node is the maximal
(un)directed distance between the node and any other node in the
graph.</p></dd>
<dt><a name="17"><b class="cmd">struct::graph::op::radius</b> <i class="arg">g</i> <span class="opt">?<i class="arg">options</i>...?</span></a></dt>
<dd><p>This command determines the (un)directed <i class="term"><a href="../../../../index.html#key464">radius</a></i> of the graph
<i class="arg">g</i>. It accepts the option <b class="option">-arcmode</b> of <b class="cmd">struct::graph::op::dijkstra</b>.</p>
<p>The (un)directed <i class="term"><a href="../../../../index.html#key464">radius</a></i> of a graph is the minimal (un)directed
<i class="term"><a href="../../../../index.html#key496">eccentricity</a></i> of all nodes in the graph.</p></dd>
<dt><a name="18"><b class="cmd">struct::graph::op::diameter</b> <i class="arg">g</i> <span class="opt">?<i class="arg">options</i>...?</span></a></dt>
<dd><p>This command determines the (un)directed <i class="term"><a href="../../../../index.html#key453">diameter</a></i> of the graph
<i class="arg">g</i>. It accepts the option <b class="option">-arcmode</b> of <b class="cmd">struct::graph::op::dijkstra</b>.</p>
<p>The (un)directed <i class="term"><a href="../../../../index.html#key453">diameter</a></i> of a graph is the maximal (un)directed
<i class="term"><a href="../../../../index.html#key496">eccentricity</a></i> of all nodes in the graph.</p></dd>
<dt><a name="19"><b class="cmd">struct::graph::op::BellmanFord</b> <i class="arg">G</i> <i class="arg">startnode</i></a></dt>
<dd><p>Searching for <span class="sectref"><a href="#subsection1">shortests paths</a></span> between chosen node and all other nodes in graph <i class="arg">G</i>. Based
on relaxation method. In comparison to <b class="cmd">struct::graph::op::dijkstra</b> it doesn't need assumption that all weights
on edges in input graph <i class="arg">G</i> have to be positive.</p>
<p>That generality sets the complexity of algorithm to - <i class="term">O(V*E)</i>, where <i class="term">V</i> is the number of vertices
and <i class="term"><a href="../../../../index.html#key798">E</a></i> is number of edges in graph <i class="arg">G</i>.</p>
<dl class="definitions">
<dt>Arguments:</dt>
<dd><dl class="arguments">
<dt>Graph object <i class="arg">G</i> (input)</dt>
<dd><p>Directed, connected and edge weighted graph <i class="arg">G</i>, without any negative cycles ( presence of cycles with the negative sum
of weight means that there is no shortest path, since the total weight becomes lower each time the cycle is
traversed ). Negative weights on edges are allowed.</p></dd>







|


|



|

|
|

|

|
|





|







353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
<i class="arg">start</i>. Tree format is the default.</p></dd>
</dl></dd>
<dt><a name="15"><b class="cmd">struct::graph::op::distance</b> <i class="arg">g</i> <i class="arg">origin</i> <i class="arg">destination</i> <span class="opt">?<i class="arg">options</i>...?</span></a></dt>
<dd><p>This command determines the (un)directed distance between the two
nodes <i class="arg">origin</i> and <i class="arg">destination</i> in the graph <i class="arg">g</i>. It
accepts the option <b class="option">-arcmode</b> of <b class="cmd">struct::graph::op::dijkstra</b>.</p></dd>
<dt><a name="16"><b class="cmd">struct::graph::op::eccentricity</b> <i class="arg">g</i> <i class="arg">n</i> <span class="opt">?<i class="arg">options</i>...?</span></a></dt>
<dd><p>This command determines the (un)directed <i class="term"><a href="../../../../index.html#key498">eccentricity</a></i> of the
node <i class="arg">n</i> in the graph <i class="arg">g</i>. It accepts the option
<b class="option">-arcmode</b> of <b class="cmd">struct::graph::op::dijkstra</b>.</p>
<p>The (un)directed <i class="term"><a href="../../../../index.html#key498">eccentricity</a></i> of a node is the maximal
(un)directed distance between the node and any other node in the
graph.</p></dd>
<dt><a name="17"><b class="cmd">struct::graph::op::radius</b> <i class="arg">g</i> <span class="opt">?<i class="arg">options</i>...?</span></a></dt>
<dd><p>This command determines the (un)directed <i class="term"><a href="../../../../index.html#key466">radius</a></i> of the graph
<i class="arg">g</i>. It accepts the option <b class="option">-arcmode</b> of <b class="cmd">struct::graph::op::dijkstra</b>.</p>
<p>The (un)directed <i class="term"><a href="../../../../index.html#key466">radius</a></i> of a graph is the minimal (un)directed
<i class="term"><a href="../../../../index.html#key498">eccentricity</a></i> of all nodes in the graph.</p></dd>
<dt><a name="18"><b class="cmd">struct::graph::op::diameter</b> <i class="arg">g</i> <span class="opt">?<i class="arg">options</i>...?</span></a></dt>
<dd><p>This command determines the (un)directed <i class="term"><a href="../../../../index.html#key455">diameter</a></i> of the graph
<i class="arg">g</i>. It accepts the option <b class="option">-arcmode</b> of <b class="cmd">struct::graph::op::dijkstra</b>.</p>
<p>The (un)directed <i class="term"><a href="../../../../index.html#key455">diameter</a></i> of a graph is the maximal (un)directed
<i class="term"><a href="../../../../index.html#key498">eccentricity</a></i> of all nodes in the graph.</p></dd>
<dt><a name="19"><b class="cmd">struct::graph::op::BellmanFord</b> <i class="arg">G</i> <i class="arg">startnode</i></a></dt>
<dd><p>Searching for <span class="sectref"><a href="#subsection1">shortests paths</a></span> between chosen node and all other nodes in graph <i class="arg">G</i>. Based
on relaxation method. In comparison to <b class="cmd">struct::graph::op::dijkstra</b> it doesn't need assumption that all weights
on edges in input graph <i class="arg">G</i> have to be positive.</p>
<p>That generality sets the complexity of algorithm to - <i class="term">O(V*E)</i>, where <i class="term">V</i> is the number of vertices
and <i class="term"><a href="../../../../index.html#key802">E</a></i> is number of edges in graph <i class="arg">G</i>.</p>
<dl class="definitions">
<dt>Arguments:</dt>
<dd><dl class="arguments">
<dt>Graph object <i class="arg">G</i> (input)</dt>
<dd><p>Directed, connected and edge weighted graph <i class="arg">G</i>, without any negative cycles ( presence of cycles with the negative sum
of weight means that there is no shortest path, since the total weight becomes lower each time the cycle is
traversed ). Negative weights on edges are allowed.</p></dd>
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
<dd><p>List of nodes and its weights in graph <i class="arg">G</i>.</p></dd>
</dl></dd>
<dt>Result:</dt>
<dd><p>Set of nodes, which is solution found by algorithm.</p></dd>
</dl>
<p><em>Note:</em><i class="term">WeightedKCenter</i> is a <span class="sectref"><a href="#subsection7">3-approximation algorithm.</a></span></p></dd>
<dt><a name="28"><b class="cmd">struct::graph::op::GreedyMaxIndependentSet</b> <i class="arg">G</i></a></dt>
<dd><p>A <i class="term">maximal independent set</i> is an <i class="term"><a href="../../../../index.html#key466">independent set</a></i> such that adding any other node
to the set forces the set to contain an edge.</p>
<p>Algorithm for input graph <i class="arg">G</i> returns set of nodes (list), which are contained in Max Independent
Set found by algorithm.</p></dd>
<dt><a name="29"><b class="cmd">struct::graph::op::GreedyWeightedMaxIndependentSet</b> <i class="arg">G</i> <i class="arg">nodeWeights</i></a></dt>
<dd><p>Weighted variation of <i class="term">Maximal Independent Set</i>. It takes as an input argument
not only graph <i class="arg">G</i> but also set of weights for all vertices in graph <i class="arg">G</i>.</p>
<p><em>Note:</em>







|







522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
<dd><p>List of nodes and its weights in graph <i class="arg">G</i>.</p></dd>
</dl></dd>
<dt>Result:</dt>
<dd><p>Set of nodes, which is solution found by algorithm.</p></dd>
</dl>
<p><em>Note:</em><i class="term">WeightedKCenter</i> is a <span class="sectref"><a href="#subsection7">3-approximation algorithm.</a></span></p></dd>
<dt><a name="28"><b class="cmd">struct::graph::op::GreedyMaxIndependentSet</b> <i class="arg">G</i></a></dt>
<dd><p>A <i class="term">maximal independent set</i> is an <i class="term"><a href="../../../../index.html#key468">independent set</a></i> such that adding any other node
to the set forces the set to contain an edge.</p>
<p>Algorithm for input graph <i class="arg">G</i> returns set of nodes (list), which are contained in Max Independent
Set found by algorithm.</p></dd>
<dt><a name="29"><b class="cmd">struct::graph::op::GreedyWeightedMaxIndependentSet</b> <i class="arg">G</i> <i class="arg">nodeWeights</i></a></dt>
<dd><p>Weighted variation of <i class="term">Maximal Independent Set</i>. It takes as an input argument
not only graph <i class="arg">G</i> but also set of weights for all vertices in graph <i class="arg">G</i>.</p>
<p><em>Note:</em>
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
are equal to 0 are not returned ( it is like there was no link in the flow network
between nodes connected by such edge).</p></dd>
</dl>
<p>The general idea of algorithm is finding the shortest augumenting paths in graph <i class="arg">G</i>, as long
as they exist, and for each path updating the edge's weights along that path,
with maximum possible throughput. The final (maximum) flow is found
when there is no other augumenting path from source to sink.</p>
<p><em>Note:</em> Algorithm complexity : <i class="term">O(V*E)</i>, where <i class="term">V</i> is the number of nodes and <i class="term"><a href="../../../../index.html#key798">E</a></i> is the number
of edges in graph <i class="term">G</i>.</p></dd>
<dt><a name="32"><b class="cmd">struct::graph::op::BusackerGowen</b> <i class="arg">G</i> <i class="arg">desiredFlow</i> <i class="arg">s</i> <i class="arg">t</i></a></dt>
<dd><p>Algorithm finds solution for a <span class="sectref"><a href="#subsection6">minimum cost flow problem</a></span>. So, the goal is to find a flow,
whose max value can be <i class="arg">desiredFlow</i>, from source node <i class="arg">s</i> to sink node <i class="arg">t</i> in given flow network <i class="arg">G</i>.
That network except throughputs at edges has also defined a non-negative cost on each edge - cost of using that edge when
directing flow with that edge ( it can illustrate e.g. fuel usage, time or any other measure dependent on usages ).</p>
<dl class="definitions">







|







562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
are equal to 0 are not returned ( it is like there was no link in the flow network
between nodes connected by such edge).</p></dd>
</dl>
<p>The general idea of algorithm is finding the shortest augumenting paths in graph <i class="arg">G</i>, as long
as they exist, and for each path updating the edge's weights along that path,
with maximum possible throughput. The final (maximum) flow is found
when there is no other augumenting path from source to sink.</p>
<p><em>Note:</em> Algorithm complexity : <i class="term">O(V*E)</i>, where <i class="term">V</i> is the number of nodes and <i class="term"><a href="../../../../index.html#key802">E</a></i> is the number
of edges in graph <i class="term">G</i>.</p></dd>
<dt><a name="32"><b class="cmd">struct::graph::op::BusackerGowen</b> <i class="arg">G</i> <i class="arg">desiredFlow</i> <i class="arg">s</i> <i class="arg">t</i></a></dt>
<dd><p>Algorithm finds solution for a <span class="sectref"><a href="#subsection6">minimum cost flow problem</a></span>. So, the goal is to find a flow,
whose max value can be <i class="arg">desiredFlow</i>, from source node <i class="arg">s</i> to sink node <i class="arg">t</i> in given flow network <i class="arg">G</i>.
That network except throughputs at edges has also defined a non-negative cost on each edge - cost of using that edge when
directing flow with that edge ( it can illustrate e.g. fuel usage, time or any other measure dependent on usages ).</p>
<dl class="definitions">
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
<dt><b class="option">paths</b></dt>
<dd><p>When selected <i class="arg">outputFormat</i> is <b class="const">paths</b> - procedure returns dictionary containing
for each node <i class="term">v</i>, a list of nodes, which is a path between source node <i class="arg">s</i> and node <i class="term">v</i>.</p></dd>
</dl></dd>
</dl></dd>
<dt><a name="34"><b class="cmd">struct::graph::op::BFS</b> <i class="arg">G</i> <i class="arg">s</i> <span class="opt">?<i class="arg">outputFormat</i>...?</span></a></dt>
<dd><p>Breadth-First Search - algorithm creates the BFS Tree.
Memory and time complexity: <i class="term">O(V + E)</i>, where <i class="term">V</i> is the number of nodes and <i class="term"><a href="../../../../index.html#key798">E</a></i>
is number of edges.</p>
<dl class="definitions">
<dt>Arguments:</dt>
<dd><dl class="arguments">
<dt>Graph Object <i class="arg">G</i> (input)</dt>
<dd><p>Input graph.</p></dd>
<dt>Node <i class="arg">s</i> (input)</dt>







|







611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
<dt><b class="option">paths</b></dt>
<dd><p>When selected <i class="arg">outputFormat</i> is <b class="const">paths</b> - procedure returns dictionary containing
for each node <i class="term">v</i>, a list of nodes, which is a path between source node <i class="arg">s</i> and node <i class="term">v</i>.</p></dd>
</dl></dd>
</dl></dd>
<dt><a name="34"><b class="cmd">struct::graph::op::BFS</b> <i class="arg">G</i> <i class="arg">s</i> <span class="opt">?<i class="arg">outputFormat</i>...?</span></a></dt>
<dd><p>Breadth-First Search - algorithm creates the BFS Tree.
Memory and time complexity: <i class="term">O(V + E)</i>, where <i class="term">V</i> is the number of nodes and <i class="term"><a href="../../../../index.html#key802">E</a></i>
is number of edges.</p>
<dl class="definitions">
<dt>Arguments:</dt>
<dd><dl class="arguments">
<dt>Graph Object <i class="arg">G</i> (input)</dt>
<dd><p>Input graph.</p></dd>
<dt>Node <i class="arg">s</i> (input)</dt>
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
<dt><b class="option">tree</b></dt>
<dd><p>When selected <b class="option">outputFormat</b> is <b class="option">tree</b> - procedure returns a tree structure (<b class="cmd"><a href="struct_tree.html">struct::tree</a></b>),
which is equivalent to BFS tree found by algorithm.</p></dd>
</dl></dd>
</dl></dd>
<dt><a name="35"><b class="cmd">struct::graph::op::MinimumDiameterSpanningTree</b> <i class="arg">G</i></a></dt>
<dd><p>The goal is to find for input graph <i class="arg">G</i>, the <i class="term">spanning tree</i> that
has the minimum <i class="term"><a href="../../../../index.html#key453">diameter</a></i> value.</p>
<p>General idea of algorithm is to run <i class="term"><a href="../../../../index.html#key460">BFS</a></i> over all vertices in graph
<i class="arg">G</i>. If the diameter <i class="term">d</i> of the tree is odd, then we are sure that tree
given by <i class="term"><a href="../../../../index.html#key460">BFS</a></i> is minimum (considering diameter value). When, diameter <i class="term">d</i>
is even, then optimal tree can have minimum <i class="term"><a href="../../../../index.html#key453">diameter</a></i> equal to <i class="term">d</i> or
<i class="term">d-1</i>.</p>
<p>In that case, what algorithm does is rebuilding the tree given by <i class="term"><a href="../../../../index.html#key460">BFS</a></i>, by
adding a vertice between root node and root's child node (nodes), such that
subtree created with child node as root node is the greatest one (has the
greatests height). In the next step for such rebuilded tree, we run again <i class="term"><a href="../../../../index.html#key460">BFS</a></i>
with new node as root node. If the height of the tree didn't changed, we have found
a better solution.</p>
<p>For input graph <i class="arg">G</i> algorithm returns the graph structure (<b class="cmd"><a href="graph.html">struct::graph</a></b>) that is
a spanning tree with minimum diameter found by algorithm.</p></dd>
<dt><a name="36"><b class="cmd">struct::graph::op::MinimumDegreeSpanningTree</b> <i class="arg">G</i></a></dt>
<dd><p>Algorithm finds for input graph <i class="arg">G</i>, a spanning tree <i class="term">T</i> with the minimum possible
degree. That problem is <i class="term">NP-hard</i>, so algorithm is an approximation algorithm.</p>







|
|

|
|

|


|







633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
<dt><b class="option">tree</b></dt>
<dd><p>When selected <b class="option">outputFormat</b> is <b class="option">tree</b> - procedure returns a tree structure (<b class="cmd"><a href="struct_tree.html">struct::tree</a></b>),
which is equivalent to BFS tree found by algorithm.</p></dd>
</dl></dd>
</dl></dd>
<dt><a name="35"><b class="cmd">struct::graph::op::MinimumDiameterSpanningTree</b> <i class="arg">G</i></a></dt>
<dd><p>The goal is to find for input graph <i class="arg">G</i>, the <i class="term">spanning tree</i> that
has the minimum <i class="term"><a href="../../../../index.html#key455">diameter</a></i> value.</p>
<p>General idea of algorithm is to run <i class="term"><a href="../../../../index.html#key462">BFS</a></i> over all vertices in graph
<i class="arg">G</i>. If the diameter <i class="term">d</i> of the tree is odd, then we are sure that tree
given by <i class="term"><a href="../../../../index.html#key462">BFS</a></i> is minimum (considering diameter value). When, diameter <i class="term">d</i>
is even, then optimal tree can have minimum <i class="term"><a href="../../../../index.html#key455">diameter</a></i> equal to <i class="term">d</i> or
<i class="term">d-1</i>.</p>
<p>In that case, what algorithm does is rebuilding the tree given by <i class="term"><a href="../../../../index.html#key462">BFS</a></i>, by
adding a vertice between root node and root's child node (nodes), such that
subtree created with child node as root node is the greatest one (has the
greatests height). In the next step for such rebuilded tree, we run again <i class="term"><a href="../../../../index.html#key462">BFS</a></i>
with new node as root node. If the height of the tree didn't changed, we have found
a better solution.</p>
<p>For input graph <i class="arg">G</i> algorithm returns the graph structure (<b class="cmd"><a href="graph.html">struct::graph</a></b>) that is
a spanning tree with minimum diameter found by algorithm.</p></dd>
<dt><a name="36"><b class="cmd">struct::graph::op::MinimumDegreeSpanningTree</b> <i class="arg">G</i></a></dt>
<dd><p>Algorithm finds for input graph <i class="arg">G</i>, a spanning tree <i class="term">T</i> with the minimum possible
degree. That problem is <i class="term">NP-hard</i>, so algorithm is an approximation algorithm.</p>
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
<dd><p>Algorithm returns dictionary containing it's flow value for each edge (key) in network <i class="arg">G</i>.</p></dd>
</dl>
<p><em>Note:</em> <b class="cmd">struct::graph::op::BlockingFlowByDinic</b> gives <i class="term">O(m*n^2)</i> complexity and
<b class="cmd">struct::graph::op::BlockingFlowByMKM</b> gives <i class="term">O(n^3)</i> complexity, where <i class="term">n</i> is the number of nodes
and <i class="term">m</i> is the number of edges in flow network <i class="arg">G</i>.</p></dd>
<dt><a name="38"><b class="cmd">struct::graph::op::BlockingFlowByDinic</b> <i class="arg">G</i> <i class="arg">s</i> <i class="arg">t</i></a></dt>
<dd><p>Algorithm for given network <i class="arg">G</i> with source <i class="arg">s</i> and sink <i class="arg">t</i>, finds a <span class="sectref"><a href="#subsection6">blocking
flow</a></span>, which can be used to obtain a <i class="term"><a href="../../../../index.html#key493">maximum flow</a></i> for that network <i class="arg">G</i>.</p>
<dl class="definitions">
<dt>Arguments:</dt>
<dd><dl class="arguments">
<dt>Graph Object <i class="arg">G</i> (input)</dt>
<dd><p>Directed graph <i class="arg">G</i> representing the flow network. Each edge should have attribute
<i class="term">throughput</i> set with integer value.</p></dd>
<dt>Node <i class="arg">s</i> (input)</dt>
<dd><p>The source node for the flow network <i class="arg">G</i>.</p></dd>
<dt>Node <i class="arg">t</i> (input)</dt>
<dd><p>The sink node for the flow network <i class="arg">G</i>.</p></dd>
</dl></dd>
<dt>Result:</dt>
<dd><p>Algorithm returns dictionary containing it's blocking flow value for each edge (key) in network <i class="arg">G</i>.</p></dd>
</dl>
<p><em>Note:</em> Algorithm's complexity is <i class="term">O(n*m)</i>, where <i class="term">n</i> is the number of nodes
and <i class="term">m</i> is the number of edges in flow network <i class="arg">G</i>.</p></dd>
<dt><a name="39"><b class="cmd">struct::graph::op::BlockingFlowByMKM</b> <i class="arg">G</i> <i class="arg">s</i> <i class="arg">t</i></a></dt>
<dd><p>Algorithm for given network <i class="arg">G</i> with source <i class="arg">s</i> and sink <i class="arg">t</i>, finds a <span class="sectref"><a href="#subsection6">blocking
flow</a></span>, which can be used to obtain a <i class="term"><a href="../../../../index.html#key493">maximum flow</a></i> for that <i class="term"><a href="../../../../index.html#key665">network</a></i> <i class="arg">G</i>.</p>
<dl class="definitions">
<dt>Arguments:</dt>
<dd><dl class="arguments">
<dt>Graph Object <i class="arg">G</i> (input)</dt>
<dd><p>Directed graph <i class="arg">G</i> representing the flow network. Each edge should have attribute
<i class="term">throughput</i> set with integer value.</p></dd>
<dt>Node <i class="arg">s</i> (input)</dt>
<dd><p>The source node for the flow network <i class="arg">G</i>.</p></dd>
<dt>Node <i class="arg">t</i> (input)</dt>
<dd><p>The sink node for the flow network <i class="arg">G</i>.</p></dd>
</dl></dd>
<dt>Result:</dt>
<dd><p>Algorithm returns dictionary containing it's blocking flow value for each edge (key) in network <i class="arg">G</i>.</p></dd>
</dl>
<p><em>Note:</em> Algorithm's complexity is <i class="term">O(n^2)</i>, where <i class="term">n</i> is the number of nodes in flow network <i class="arg">G</i>.</p></dd>
<dt><a name="40"><b class="cmd">struct::graph::op::createResidualGraph</b> <i class="arg">G</i> <i class="arg">f</i></a></dt>
<dd><p>Procedure creates a <i class="term"><a href="../../../../index.html#key461">residual graph</a></i> (or <span class="sectref"><a href="#subsection6">residual network</a></span> ) for network <i class="arg">G</i> and given
flow <i class="arg">f</i>.</p>
<dl class="definitions">
<dt>Arguments:</dt>
<dd><dl class="arguments">
<dt>Graph Object <i class="arg">G</i> (input)</dt>
<dd><p>Flow network (directed graph where each edge has set attribute: <i class="term">throughput</i> ).</p></dd>
<dt>dictionary <i class="arg">f</i> (input)</dt>
<dd><p>Current flows in flow network <i class="arg">G</i>.</p></dd>
</dl></dd>
<dt>Result:</dt>
<dd><p>Procedure returns graph structure that is a <i class="term"><a href="../../../../index.html#key461">residual graph</a></i> created from input flow
network <i class="arg">G</i>.</p></dd>
</dl></dd>
<dt><a name="41"><b class="cmd">struct::graph::op::createAugmentingNetwork</b> <i class="arg">G</i> <i class="arg">f</i> <i class="arg">path</i></a></dt>
<dd><p>Procedure creates an <span class="sectref"><a href="#subsection6">augmenting network</a></span> for a given residual network <i class="arg">G</i>
, flow <i class="arg">f</i> and augmenting path <i class="arg">path</i>.</p>
<dl class="definitions">
<dt>Arguments:</dt>







|


















|
















|










|







696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
<dd><p>Algorithm returns dictionary containing it's flow value for each edge (key) in network <i class="arg">G</i>.</p></dd>
</dl>
<p><em>Note:</em> <b class="cmd">struct::graph::op::BlockingFlowByDinic</b> gives <i class="term">O(m*n^2)</i> complexity and
<b class="cmd">struct::graph::op::BlockingFlowByMKM</b> gives <i class="term">O(n^3)</i> complexity, where <i class="term">n</i> is the number of nodes
and <i class="term">m</i> is the number of edges in flow network <i class="arg">G</i>.</p></dd>
<dt><a name="38"><b class="cmd">struct::graph::op::BlockingFlowByDinic</b> <i class="arg">G</i> <i class="arg">s</i> <i class="arg">t</i></a></dt>
<dd><p>Algorithm for given network <i class="arg">G</i> with source <i class="arg">s</i> and sink <i class="arg">t</i>, finds a <span class="sectref"><a href="#subsection6">blocking
flow</a></span>, which can be used to obtain a <i class="term"><a href="../../../../index.html#key495">maximum flow</a></i> for that network <i class="arg">G</i>.</p>
<dl class="definitions">
<dt>Arguments:</dt>
<dd><dl class="arguments">
<dt>Graph Object <i class="arg">G</i> (input)</dt>
<dd><p>Directed graph <i class="arg">G</i> representing the flow network. Each edge should have attribute
<i class="term">throughput</i> set with integer value.</p></dd>
<dt>Node <i class="arg">s</i> (input)</dt>
<dd><p>The source node for the flow network <i class="arg">G</i>.</p></dd>
<dt>Node <i class="arg">t</i> (input)</dt>
<dd><p>The sink node for the flow network <i class="arg">G</i>.</p></dd>
</dl></dd>
<dt>Result:</dt>
<dd><p>Algorithm returns dictionary containing it's blocking flow value for each edge (key) in network <i class="arg">G</i>.</p></dd>
</dl>
<p><em>Note:</em> Algorithm's complexity is <i class="term">O(n*m)</i>, where <i class="term">n</i> is the number of nodes
and <i class="term">m</i> is the number of edges in flow network <i class="arg">G</i>.</p></dd>
<dt><a name="39"><b class="cmd">struct::graph::op::BlockingFlowByMKM</b> <i class="arg">G</i> <i class="arg">s</i> <i class="arg">t</i></a></dt>
<dd><p>Algorithm for given network <i class="arg">G</i> with source <i class="arg">s</i> and sink <i class="arg">t</i>, finds a <span class="sectref"><a href="#subsection6">blocking
flow</a></span>, which can be used to obtain a <i class="term"><a href="../../../../index.html#key495">maximum flow</a></i> for that <i class="term"><a href="../../../../index.html#key669">network</a></i> <i class="arg">G</i>.</p>
<dl class="definitions">
<dt>Arguments:</dt>
<dd><dl class="arguments">
<dt>Graph Object <i class="arg">G</i> (input)</dt>
<dd><p>Directed graph <i class="arg">G</i> representing the flow network. Each edge should have attribute
<i class="term">throughput</i> set with integer value.</p></dd>
<dt>Node <i class="arg">s</i> (input)</dt>
<dd><p>The source node for the flow network <i class="arg">G</i>.</p></dd>
<dt>Node <i class="arg">t</i> (input)</dt>
<dd><p>The sink node for the flow network <i class="arg">G</i>.</p></dd>
</dl></dd>
<dt>Result:</dt>
<dd><p>Algorithm returns dictionary containing it's blocking flow value for each edge (key) in network <i class="arg">G</i>.</p></dd>
</dl>
<p><em>Note:</em> Algorithm's complexity is <i class="term">O(n^2)</i>, where <i class="term">n</i> is the number of nodes in flow network <i class="arg">G</i>.</p></dd>
<dt><a name="40"><b class="cmd">struct::graph::op::createResidualGraph</b> <i class="arg">G</i> <i class="arg">f</i></a></dt>
<dd><p>Procedure creates a <i class="term"><a href="../../../../index.html#key463">residual graph</a></i> (or <span class="sectref"><a href="#subsection6">residual network</a></span> ) for network <i class="arg">G</i> and given
flow <i class="arg">f</i>.</p>
<dl class="definitions">
<dt>Arguments:</dt>
<dd><dl class="arguments">
<dt>Graph Object <i class="arg">G</i> (input)</dt>
<dd><p>Flow network (directed graph where each edge has set attribute: <i class="term">throughput</i> ).</p></dd>
<dt>dictionary <i class="arg">f</i> (input)</dt>
<dd><p>Current flows in flow network <i class="arg">G</i>.</p></dd>
</dl></dd>
<dt>Result:</dt>
<dd><p>Procedure returns graph structure that is a <i class="term"><a href="../../../../index.html#key463">residual graph</a></i> created from input flow
network <i class="arg">G</i>.</p></dd>
</dl></dd>
<dt><a name="41"><b class="cmd">struct::graph::op::createAugmentingNetwork</b> <i class="arg">G</i> <i class="arg">f</i> <i class="arg">path</i></a></dt>
<dd><p>Procedure creates an <span class="sectref"><a href="#subsection6">augmenting network</a></span> for a given residual network <i class="arg">G</i>
, flow <i class="arg">f</i> and augmenting path <i class="arg">path</i>.</p>
<dl class="definitions">
<dt>Arguments:</dt>
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
<dd><dl class="arguments">
<dt>Graph Object <i class="arg">Gf</i> (input)</dt>
<dd><p>Residual network, where each edge has it's attribute <i class="term">throughput</i> set with certain value.</p></dd>
<dt>Node <i class="arg">s</i> (input)</dt>
<dd><p>The source node for the residual network <i class="arg">Gf</i>.</p></dd>
</dl></dd>
<dt>Result:</dt>
<dd><p>Procedure returns a <i class="term"><a href="../../../../index.html#key482">level graph</a></i> created from input <i class="term">residual network</i>.</p></dd>
</dl></dd>
<dt><a name="43"><b class="cmd">struct::graph::op::TSPLocalSearching</b> <i class="arg">G</i> <i class="arg">C</i></a></dt>
<dd><p>Algorithm is a <i class="term">heuristic of local searching</i> for <i class="term">Travelling Salesman Problem</i>. For some
solution of <i class="term">TSP problem</i>, it checks if it's possible to find a better solution. As <i class="term">TSP</i>
is well known NP-Complete problem, so algorithm is a approximation algorithm (with 2 approximation factor).</p>
<dl class="definitions">
<dt>Arguments:</dt>







|







773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
<dd><dl class="arguments">
<dt>Graph Object <i class="arg">Gf</i> (input)</dt>
<dd><p>Residual network, where each edge has it's attribute <i class="term">throughput</i> set with certain value.</p></dd>
<dt>Node <i class="arg">s</i> (input)</dt>
<dd><p>The source node for the residual network <i class="arg">Gf</i>.</p></dd>
</dl></dd>
<dt>Result:</dt>
<dd><p>Procedure returns a <i class="term"><a href="../../../../index.html#key484">level graph</a></i> created from input <i class="term">residual network</i>.</p></dd>
</dl></dd>
<dt><a name="43"><b class="cmd">struct::graph::op::TSPLocalSearching</b> <i class="arg">G</i> <i class="arg">C</i></a></dt>
<dd><p>Algorithm is a <i class="term">heuristic of local searching</i> for <i class="term">Travelling Salesman Problem</i>. For some
solution of <i class="term">TSP problem</i>, it checks if it's possible to find a better solution. As <i class="term">TSP</i>
is well known NP-Complete problem, so algorithm is a approximation algorithm (with 2 approximation factor).</p>
<dl class="definitions">
<dt>Arguments:</dt>
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
square the increase of approximation factor, so 2 and 3 approximations are mainly used.</p></dd>
<dt><a name="45"><b class="cmd">struct::graph::op::createSquaredGraph</b> <i class="arg">G</i></a></dt>
<dd><p>X-Squared graph is a graph with the same set of nodes as input graph <i class="arg">G</i>, but a different set of edges. X-Squared graph
has edge <i class="term">(u,v)</i>, if and only if, the distance between <i class="term">u</i> and <i class="term">v</i> nodes is not greater than X and <i class="term">u != v</i>.</p>
<p>Procedure for input graph <i class="arg">G</i>, returns its two-squared graph.</p>
<p><em>Note:</em> Distances used in choosing new set of edges are considering the number of edges, not the sum of weights at edges.</p></dd>
<dt><a name="46"><b class="cmd">struct::graph::op::createCompleteGraph</b> <i class="arg">G</i> <i class="arg">originalEdges</i></a></dt>
<dd><p>For input graph <i class="arg">G</i> procedure adds missing arcs to make it a <i class="term"><a href="../../../../index.html#key483">complete graph</a></i>. It also holds in
variable <i class="arg">originalEdges</i> the set of arcs that graph <i class="arg">G</i> possessed before that operation.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Background theory and terms</a></h2>
<div id="subsection1" class="subsection"><h3><a name="subsection1">Shortest Path Problem</a></h3>
<dl class="definitions">
<dt>Definition (<i class="term">single-pair shortest path problem</i>):</dt>
<dd><p>Formally, given a weighted graph (let <i class="term">V</i> be the set of vertices, and <i class="term"><a href="../../../../index.html#key798">E</a></i> a set of edges),
and one vertice <i class="term">v</i> of <i class="term">V</i>, find a path <i class="term">P</i> from <i class="term">v</i> to a <i class="term">v'</i> of V so that
the sum of weights on edges along the path is minimal among all paths connecting v to v'.</p></dd>
<dt>Generalizations:</dt>
<dd><ul class="itemized">
<li><p><i class="term">The single-source shortest path problem</i>, in which we have to find shortest paths from a source vertex v to all other vertices in the graph.</p></li>
<li><p><i class="term">The single-destination shortest path problem</i>, in which we have to find shortest paths from all vertices in the graph to a single destination vertex v. This can be reduced to the single-source shortest path problem by reversing the edges in the graph.</p></li>
<li><p><i class="term">The all-pairs shortest path problem</i>, in which we have to find shortest paths between every pair of vertices v, v' in the graph.</p></li>







|







|







817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
square the increase of approximation factor, so 2 and 3 approximations are mainly used.</p></dd>
<dt><a name="45"><b class="cmd">struct::graph::op::createSquaredGraph</b> <i class="arg">G</i></a></dt>
<dd><p>X-Squared graph is a graph with the same set of nodes as input graph <i class="arg">G</i>, but a different set of edges. X-Squared graph
has edge <i class="term">(u,v)</i>, if and only if, the distance between <i class="term">u</i> and <i class="term">v</i> nodes is not greater than X and <i class="term">u != v</i>.</p>
<p>Procedure for input graph <i class="arg">G</i>, returns its two-squared graph.</p>
<p><em>Note:</em> Distances used in choosing new set of edges are considering the number of edges, not the sum of weights at edges.</p></dd>
<dt><a name="46"><b class="cmd">struct::graph::op::createCompleteGraph</b> <i class="arg">G</i> <i class="arg">originalEdges</i></a></dt>
<dd><p>For input graph <i class="arg">G</i> procedure adds missing arcs to make it a <i class="term"><a href="../../../../index.html#key485">complete graph</a></i>. It also holds in
variable <i class="arg">originalEdges</i> the set of arcs that graph <i class="arg">G</i> possessed before that operation.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Background theory and terms</a></h2>
<div id="subsection1" class="subsection"><h3><a name="subsection1">Shortest Path Problem</a></h3>
<dl class="definitions">
<dt>Definition (<i class="term">single-pair shortest path problem</i>):</dt>
<dd><p>Formally, given a weighted graph (let <i class="term">V</i> be the set of vertices, and <i class="term"><a href="../../../../index.html#key802">E</a></i> a set of edges),
and one vertice <i class="term">v</i> of <i class="term">V</i>, find a path <i class="term">P</i> from <i class="term">v</i> to a <i class="term">v'</i> of V so that
the sum of weights on edges along the path is minimal among all paths connecting v to v'.</p></dd>
<dt>Generalizations:</dt>
<dd><ul class="itemized">
<li><p><i class="term">The single-source shortest path problem</i>, in which we have to find shortest paths from a source vertex v to all other vertices in the graph.</p></li>
<li><p><i class="term">The single-destination shortest path problem</i>, in which we have to find shortest paths from all vertices in the graph to a single destination vertex v. This can be reduced to the single-source shortest path problem by reversing the edges in the graph.</p></li>
<li><p><i class="term">The all-pairs shortest path problem</i>, in which we have to find shortest paths between every pair of vertices v, v' in the graph.</p></li>
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
<dl class="definitions">
<dt>Definition:</dt>
<dd><p>For given edge-weighted (weights on edges should be positive) graph the goal is to find the cycle that visits each node in graph
exactly once (<i class="term">Hamiltonian cycle</i>).</p></dd>
<dt>Generalizations:</dt>
<dd><ul class="itemized">
<li><p><i class="term">Metric TSP</i> - A very natural restriction of the <i class="term">TSP</i> is to require that the distances between cities form a <i class="term">metric</i>, i.e.,
they satisfy <i class="term">the triangle inequality</i>. That is, for any 3 cities <i class="term">A</i>, <i class="term">B</i> and <i class="term"><a href="../../../../index.html#key286">C</a></i>, the distance between <i class="term">A</i> and <i class="term"><a href="../../../../index.html#key286">C</a></i>
must be at most the distance from <i class="term">A</i> to <i class="term">B</i> plus the distance from <i class="term">B</i> to <i class="term"><a href="../../../../index.html#key286">C</a></i>. Most natural instances of <i class="term">TSP</i>
satisfy this constraint.</p></li>
<li><p><i class="term">Euclidean TSP</i> - Euclidean TSP, or <i class="term">planar TSP</i>, is the <i class="term">TSP</i> with the distance being the ordinary <i class="term">Euclidean distance</i>.
<i class="term">Euclidean TSP</i> is a particular case of <i class="term">TSP</i> with <i class="term">triangle inequality</i>, since distances in plane obey triangle inequality. However,
it seems to be easier than general <i class="term">TSP</i> with <i class="term">triangle inequality</i>. For example, <i class="term">the minimum spanning tree</i> of the graph associated
with an instance of <i class="term">Euclidean TSP</i> is a <i class="term">Euclidean minimum spanning tree</i>, and so can be computed in expected <i class="term">O(n log n)</i> time for
<i class="term">n</i> points (considerably less than the number of edges). This enables the simple <i class="term">2-approximation algorithm</i> for TSP with triangle
inequality above to operate more quickly.</p></li>







|
|







848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
<dl class="definitions">
<dt>Definition:</dt>
<dd><p>For given edge-weighted (weights on edges should be positive) graph the goal is to find the cycle that visits each node in graph
exactly once (<i class="term">Hamiltonian cycle</i>).</p></dd>
<dt>Generalizations:</dt>
<dd><ul class="itemized">
<li><p><i class="term">Metric TSP</i> - A very natural restriction of the <i class="term">TSP</i> is to require that the distances between cities form a <i class="term">metric</i>, i.e.,
they satisfy <i class="term">the triangle inequality</i>. That is, for any 3 cities <i class="term">A</i>, <i class="term">B</i> and <i class="term"><a href="../../../../index.html#key288">C</a></i>, the distance between <i class="term">A</i> and <i class="term"><a href="../../../../index.html#key288">C</a></i>
must be at most the distance from <i class="term">A</i> to <i class="term">B</i> plus the distance from <i class="term">B</i> to <i class="term"><a href="../../../../index.html#key288">C</a></i>. Most natural instances of <i class="term">TSP</i>
satisfy this constraint.</p></li>
<li><p><i class="term">Euclidean TSP</i> - Euclidean TSP, or <i class="term">planar TSP</i>, is the <i class="term">TSP</i> with the distance being the ordinary <i class="term">Euclidean distance</i>.
<i class="term">Euclidean TSP</i> is a particular case of <i class="term">TSP</i> with <i class="term">triangle inequality</i>, since distances in plane obey triangle inequality. However,
it seems to be easier than general <i class="term">TSP</i> with <i class="term">triangle inequality</i>. For example, <i class="term">the minimum spanning tree</i> of the graph associated
with an instance of <i class="term">Euclidean TSP</i> is a <i class="term">Euclidean minimum spanning tree</i>, and so can be computed in expected <i class="term">O(n log n)</i> time for
<i class="term">n</i> points (considerably less than the number of edges). This enables the simple <i class="term">2-approximation algorithm</i> for TSP with triangle
inequality above to operate more quickly.</p></li>
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
<li><p><i class="term">Maximal matching</i> - a matching <i class="term">M</i> of a graph G with the property that if any edge not in <i class="term">M</i> is added to <i class="term">M</i>,
it is no longer a <i class="term"><a href="../../../../index.html#key5">matching</a></i>, that is, <i class="term">M</i> is maximal if it is not a proper subset of any other <i class="term"><a href="../../../../index.html#key5">matching</a></i> in graph G.
In other words, a <i class="term">matching M</i> of a graph G is maximal if every edge in G has a non-empty intersection with at least one edge in <i class="term">M</i>.</p></li>
<li><p><i class="term">Maximum matching</i> - a matching that contains the largest possible number of edges. There may be many <i class="term">maximum matchings</i>.
The <i class="term">matching number</i> of a graph G is the size of a <i class="term">maximum matching</i>. Note that every <i class="term">maximum matching</i> is <i class="term">maximal</i>,
but not every <i class="term">maximal matching</i> is a <i class="term">maximum matching</i>.</p></li>
<li><p><i class="term">Perfect matching</i> - a matching which matches all vertices of the graph. That is, every vertex of the graph is incident to exactly one
edge of the matching. Every <i class="term">perfect matching</i> is <i class="term"><a href="../../../../index.html#key306">maximum</a></i> and hence <i class="term">maximal</i>. In some literature, the term <i class="term">complete matching</i>
is used. A <i class="term">perfect matching</i> is also a <i class="term">minimum-size edge cover</i>. Moreover, the size of a <i class="term">maximum matching</i> is no larger than the
size of a <i class="term">minimum edge cover</i>.</p></li>
<li><p><i class="term">Near-perfect matching</i> - a matching in which exactly one vertex is unmatched. This can only occur when the graph has an odd number of vertices,
and such a <i class="term"><a href="../../../../index.html#key5">matching</a></i> must be <i class="term"><a href="../../../../index.html#key306">maximum</a></i>. If, for every vertex in a graph, there is a near-perfect matching that omits only that vertex, the graph
is also called <i class="term">factor-critical</i>.</p></li>
</ul></dd>
<dt>Related terms:</dt>
<dd><ul class="itemized">
<li><p><i class="term">Alternating path</i> - given a matching <i class="term">M</i>, an <i class="term">alternating path</i> is a path in which the edges belong alternatively
to the matching and not to the matching.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key485">Augmenting path</a></i> - given a matching <i class="term">M</i>, an <i class="term"><a href="../../../../index.html#key485">augmenting path</a></i> is an <i class="term">alternating path</i> that starts from
and ends on free (unmatched) vertices.</p></li>
</ul></dd>
</dl>
</div>
<div id="subsection4" class="subsection"><h3><a name="subsection4">Cut Problems</a></h3>
<dl class="definitions">
<dt>Definition:</dt>
<dd><p>A <i class="term">cut</i> is a partition of the vertices of a graph into two <i class="term">disjoint subsets</i>. The <i class="term">cut-set</i> of the <i class="term">cut</i> is the
set of edges whose end points are in different subsets of the partition. Edges are said to be crossing the cut if they are in its <i class="term">cut-set</i>.</p>
<p>Formally:</p>
<ul class="itemized">
<li><p>a <i class="term">cut</i> <i class="term">C = (S,T)</i> is a partition of <i class="term">V</i> of a graph <i class="term">G = (V, E)</i>.</p></li>
<li><p>an <i class="term">s-t cut</i> <i class="term">C = (S,T)</i> of a <i class="term"><a href="../../../../index.html#key494">flow network</a></i> <i class="term">N = (V, E)</i> is a cut of <i class="term">N</i> such that <i class="term">s</i> is included in <i class="term">S</i>
and <i class="term">t</i> is included in <i class="term">T</i>, where <i class="term">s</i> and <i class="term">t</i> are the <i class="term"><a href="../../../../index.html#key431">source</a></i> and the <i class="term">sink</i> of <i class="term">N</i> respectively.</p></li>
<li><p>The <i class="term">cut-set</i> of a <i class="term">cut C = (S,T)</i> is such set of edges from graph <i class="term">G = (V, E)</i> that each edge <i class="term">(u, v)</i> satisfies
condition that <i class="term">u</i> is included in <i class="term">S</i> and <i class="term">v</i> is included in <i class="term">T</i>.</p></li>
</ul>
<p>In an <i class="term">unweighted undirected</i> graph, the size or weight of a cut is the number of edges crossing the cut. In a <i class="term">weighted graph</i>,
the same term is defined by the sum of the weights of the edges crossing the cut.</p>
<p>In a <i class="term"><a href="../../../../index.html#key494">flow network</a></i>, an <i class="term">s-t cut</i> is a cut that requires the <i class="term"><a href="../../../../index.html#key431">source</a></i> and the <i class="term">sink</i> to be in different subsets,
and its <i class="term">cut-set</i> only consists of edges going from the <i class="term">source's</i> side to the <i class="term">sink's</i> side. The capacity of an <i class="term">s-t cut</i>
is defined by the sum of capacity of each edge in the <i class="term">cut-set</i>.</p>
<p>The <i class="term">cut</i> of a graph can sometimes refer to its <i class="term">cut-set</i> instead of the partition.</p></dd>
<dt>Generalizations:</dt>
<dd><ul class="itemized">
<li><p><i class="term">Minimum cut</i> - A cut is minimum if the size of the cut is not larger than the size of any other cut.</p></li>
<li><p><i class="term">Maximum cut</i> - A cut is maximum if the size of the cut is not smaller than the size of any other cut.</p></li>







|



|






|












|
|





|







879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
<li><p><i class="term">Maximal matching</i> - a matching <i class="term">M</i> of a graph G with the property that if any edge not in <i class="term">M</i> is added to <i class="term">M</i>,
it is no longer a <i class="term"><a href="../../../../index.html#key5">matching</a></i>, that is, <i class="term">M</i> is maximal if it is not a proper subset of any other <i class="term"><a href="../../../../index.html#key5">matching</a></i> in graph G.
In other words, a <i class="term">matching M</i> of a graph G is maximal if every edge in G has a non-empty intersection with at least one edge in <i class="term">M</i>.</p></li>
<li><p><i class="term">Maximum matching</i> - a matching that contains the largest possible number of edges. There may be many <i class="term">maximum matchings</i>.
The <i class="term">matching number</i> of a graph G is the size of a <i class="term">maximum matching</i>. Note that every <i class="term">maximum matching</i> is <i class="term">maximal</i>,
but not every <i class="term">maximal matching</i> is a <i class="term">maximum matching</i>.</p></li>
<li><p><i class="term">Perfect matching</i> - a matching which matches all vertices of the graph. That is, every vertex of the graph is incident to exactly one
edge of the matching. Every <i class="term">perfect matching</i> is <i class="term"><a href="../../../../index.html#key308">maximum</a></i> and hence <i class="term">maximal</i>. In some literature, the term <i class="term">complete matching</i>
is used. A <i class="term">perfect matching</i> is also a <i class="term">minimum-size edge cover</i>. Moreover, the size of a <i class="term">maximum matching</i> is no larger than the
size of a <i class="term">minimum edge cover</i>.</p></li>
<li><p><i class="term">Near-perfect matching</i> - a matching in which exactly one vertex is unmatched. This can only occur when the graph has an odd number of vertices,
and such a <i class="term"><a href="../../../../index.html#key5">matching</a></i> must be <i class="term"><a href="../../../../index.html#key308">maximum</a></i>. If, for every vertex in a graph, there is a near-perfect matching that omits only that vertex, the graph
is also called <i class="term">factor-critical</i>.</p></li>
</ul></dd>
<dt>Related terms:</dt>
<dd><ul class="itemized">
<li><p><i class="term">Alternating path</i> - given a matching <i class="term">M</i>, an <i class="term">alternating path</i> is a path in which the edges belong alternatively
to the matching and not to the matching.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key487">Augmenting path</a></i> - given a matching <i class="term">M</i>, an <i class="term"><a href="../../../../index.html#key487">augmenting path</a></i> is an <i class="term">alternating path</i> that starts from
and ends on free (unmatched) vertices.</p></li>
</ul></dd>
</dl>
</div>
<div id="subsection4" class="subsection"><h3><a name="subsection4">Cut Problems</a></h3>
<dl class="definitions">
<dt>Definition:</dt>
<dd><p>A <i class="term">cut</i> is a partition of the vertices of a graph into two <i class="term">disjoint subsets</i>. The <i class="term">cut-set</i> of the <i class="term">cut</i> is the
set of edges whose end points are in different subsets of the partition. Edges are said to be crossing the cut if they are in its <i class="term">cut-set</i>.</p>
<p>Formally:</p>
<ul class="itemized">
<li><p>a <i class="term">cut</i> <i class="term">C = (S,T)</i> is a partition of <i class="term">V</i> of a graph <i class="term">G = (V, E)</i>.</p></li>
<li><p>an <i class="term">s-t cut</i> <i class="term">C = (S,T)</i> of a <i class="term"><a href="../../../../index.html#key496">flow network</a></i> <i class="term">N = (V, E)</i> is a cut of <i class="term">N</i> such that <i class="term">s</i> is included in <i class="term">S</i>
and <i class="term">t</i> is included in <i class="term">T</i>, where <i class="term">s</i> and <i class="term">t</i> are the <i class="term"><a href="../../../../index.html#key433">source</a></i> and the <i class="term">sink</i> of <i class="term">N</i> respectively.</p></li>
<li><p>The <i class="term">cut-set</i> of a <i class="term">cut C = (S,T)</i> is such set of edges from graph <i class="term">G = (V, E)</i> that each edge <i class="term">(u, v)</i> satisfies
condition that <i class="term">u</i> is included in <i class="term">S</i> and <i class="term">v</i> is included in <i class="term">T</i>.</p></li>
</ul>
<p>In an <i class="term">unweighted undirected</i> graph, the size or weight of a cut is the number of edges crossing the cut. In a <i class="term">weighted graph</i>,
the same term is defined by the sum of the weights of the edges crossing the cut.</p>
<p>In a <i class="term"><a href="../../../../index.html#key496">flow network</a></i>, an <i class="term">s-t cut</i> is a cut that requires the <i class="term"><a href="../../../../index.html#key433">source</a></i> and the <i class="term">sink</i> to be in different subsets,
and its <i class="term">cut-set</i> only consists of edges going from the <i class="term">source's</i> side to the <i class="term">sink's</i> side. The capacity of an <i class="term">s-t cut</i>
is defined by the sum of capacity of each edge in the <i class="term">cut-set</i>.</p>
<p>The <i class="term">cut</i> of a graph can sometimes refer to its <i class="term">cut-set</i> instead of the partition.</p></dd>
<dt>Generalizations:</dt>
<dd><ul class="itemized">
<li><p><i class="term">Minimum cut</i> - A cut is minimum if the size of the cut is not larger than the size of any other cut.</p></li>
<li><p><i class="term">Maximum cut</i> - A cut is maximum if the size of the cut is not smaller than the size of any other cut.</p></li>
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
<i class="term">max-flow min-cut theorem</i>.</p>
<p>More formally for flow network <i class="term">G = (V,E)</i>, where for each edge <i class="term">(u, v)</i> we have its throuhgput <i class="term">c(u,v)</i> defined. As <i class="term"><a href="../../../../index.html#key141">flow</a></i>
<i class="term">F</i> we define set of non-negative integer attributes <i class="term">f(u,v)</i> assigned to edges, satisfying such conditions:</p>
<ol class="enumerated">
<li><p>for each edge <i class="term">(u, v)</i> in <i class="term">G</i> such condition should be satisfied:      0 &lt;= f(u,v) &lt;= c(u,v)</p></li>
<li><p>Network <i class="term">G</i> has source node <i class="term">s</i> such that the flow <i class="term">F</i> is equal to the sum of outcoming flow decreased by the sum of incoming flow from that source node <i class="term">s</i>.</p></li>
<li><p>Network <i class="term">G</i> has sink node <i class="term">t</i> such that the the <i class="term">-F</i> value is equal to the sum of the incoming flow decreased by the sum of outcoming flow from that sink node <i class="term">t</i>.</p></li>
<li><p>For each node that is not a <i class="term"><a href="../../../../index.html#key431">source</a></i> or <i class="term">sink</i> the sum of incoming flow and sum of outcoming flow should be equal.</p></li>
</ol>
</li>
<li><p><i class="term">the minimum cost flow problem</i> - the goal is finding the cheapest possible way of sending a certain amount of flow through a <i class="term"><a href="../../../../index.html#key494">flow network</a></i>.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key451">blocking flow</a></i> - a <i class="term"><a href="../../../../index.html#key451">blocking flow</a></i> for a <i class="term">residual network</i> <i class="term">Gf</i> we name such flow <i class="term">b</i> in <i class="term">Gf</i> that:</p>
<ol class="enumerated">
<li><p>Each path from <i class="term">sink</i> to <i class="term"><a href="../../../../index.html#key431">source</a></i> is the shortest path in <i class="term">Gf</i>.</p></li>
<li><p>Each shortest path in <i class="term">Gf</i> contains an edge with fully used throughput in <i class="term">Gf+b</i>.</p></li>
</ol>
</li>
<li><p><i class="term">residual network</i> - for a flow network <i class="term">G</i> and flow <i class="term">f</i> <i class="term">residual network</i> is built with those edges, which can
send larger flow. It contains only those edges, which can send flow larger than 0.</p></li>
<li><p><i class="term">level network</i> - it has the same set of nodes as <i class="term"><a href="../../../../index.html#key461">residual graph</a></i>, but has only those edges <i class="term">(u,v)</i> from <i class="arg">Gf</i>
for which such equality is satisfied: <i class="term">distance(s,u)+1 = distance(s,v)</i>.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key465">augmenting network</a></i> - it is a modification of <i class="term">residual network</i> considering the new
flow values. Structure stays unchanged but values of throughputs and costs at edges
are different.</p></li>
</ul></dd>
</dl>
</div>
<div id="subsection7" class="subsection"><h3><a name="subsection7">Approximation algorithm</a></h3>
<dl class="definitions">







|


|
|

|





|

|







957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
<i class="term">max-flow min-cut theorem</i>.</p>
<p>More formally for flow network <i class="term">G = (V,E)</i>, where for each edge <i class="term">(u, v)</i> we have its throuhgput <i class="term">c(u,v)</i> defined. As <i class="term"><a href="../../../../index.html#key141">flow</a></i>
<i class="term">F</i> we define set of non-negative integer attributes <i class="term">f(u,v)</i> assigned to edges, satisfying such conditions:</p>
<ol class="enumerated">
<li><p>for each edge <i class="term">(u, v)</i> in <i class="term">G</i> such condition should be satisfied:      0 &lt;= f(u,v) &lt;= c(u,v)</p></li>
<li><p>Network <i class="term">G</i> has source node <i class="term">s</i> such that the flow <i class="term">F</i> is equal to the sum of outcoming flow decreased by the sum of incoming flow from that source node <i class="term">s</i>.</p></li>
<li><p>Network <i class="term">G</i> has sink node <i class="term">t</i> such that the the <i class="term">-F</i> value is equal to the sum of the incoming flow decreased by the sum of outcoming flow from that sink node <i class="term">t</i>.</p></li>
<li><p>For each node that is not a <i class="term"><a href="../../../../index.html#key433">source</a></i> or <i class="term">sink</i> the sum of incoming flow and sum of outcoming flow should be equal.</p></li>
</ol>
</li>
<li><p><i class="term">the minimum cost flow problem</i> - the goal is finding the cheapest possible way of sending a certain amount of flow through a <i class="term"><a href="../../../../index.html#key496">flow network</a></i>.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key453">blocking flow</a></i> - a <i class="term"><a href="../../../../index.html#key453">blocking flow</a></i> for a <i class="term">residual network</i> <i class="term">Gf</i> we name such flow <i class="term">b</i> in <i class="term">Gf</i> that:</p>
<ol class="enumerated">
<li><p>Each path from <i class="term">sink</i> to <i class="term"><a href="../../../../index.html#key433">source</a></i> is the shortest path in <i class="term">Gf</i>.</p></li>
<li><p>Each shortest path in <i class="term">Gf</i> contains an edge with fully used throughput in <i class="term">Gf+b</i>.</p></li>
</ol>
</li>
<li><p><i class="term">residual network</i> - for a flow network <i class="term">G</i> and flow <i class="term">f</i> <i class="term">residual network</i> is built with those edges, which can
send larger flow. It contains only those edges, which can send flow larger than 0.</p></li>
<li><p><i class="term">level network</i> - it has the same set of nodes as <i class="term"><a href="../../../../index.html#key463">residual graph</a></i>, but has only those edges <i class="term">(u,v)</i> from <i class="arg">Gf</i>
for which such equality is satisfied: <i class="term">distance(s,u)+1 = distance(s,v)</i>.</p></li>
<li><p><i class="term"><a href="../../../../index.html#key467">augmenting network</a></i> - it is a modification of <i class="term">residual network</i> considering the new
flow values. Structure stays unchanged but values of throughputs and costs at edges
are different.</p></li>
</ul></dd>
</dl>
</div>
<div id="subsection7" class="subsection"><h3><a name="subsection7">Approximation algorithm</a></h3>
<dl class="definitions">
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
bugs and other problems.
Please report such in the category <em>struct :: graph</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key463">adjacency list</a>, <a href="../../../../index.html#key487">adjacency matrix</a>, <a href="../../../../index.html#key480">adjacent</a>, <a href="../../../../index.html#key489">approximation algorithm</a>, <a href="../../../../index.html#key468">arc</a>, <a href="../../../../index.html#key478">articulation point</a>, <a href="../../../../index.html#key465">augmenting network</a>, <a href="../../../../index.html#key485">augmenting path</a>, <a href="../../../../index.html#key460">bfs</a>, <a href="../../../../index.html#key490">bipartite</a>, <a href="../../../../index.html#key451">blocking flow</a>, <a href="../../../../index.html#key462">bridge</a>, <a href="../../../../index.html#key483">complete graph</a>, <a href="../../../../index.html#key476">connected component</a>, <a href="../../../../index.html#key479">cut edge</a>, <a href="../../../../index.html#key481">cut vertex</a>, <a href="../../../../index.html#key470">degree</a>, <a href="../../../../index.html#key471">degree constrained spanning tree</a>, <a href="../../../../index.html#key453">diameter</a>, <a href="../../../../index.html#key491">dijkstra</a>, <a href="../../../../index.html#key474">distance</a>, <a href="../../../../index.html#key496">eccentricity</a>, <a href="../../../../index.html#key455">edge</a>, <a href="../../../../index.html#key494">flow network</a>, <a href="../../../../index.html#key301">graph</a>, <a href="../../../../index.html#key469">heuristic</a>, <a href="../../../../index.html#key466">independent set</a>, <a href="../../../../index.html#key486">isthmus</a>, <a href="../../../../index.html#key482">level graph</a>, <a href="../../../../index.html#key477">local searching</a>, <a href="../../../../index.html#key452">loop</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key473">max cut</a>, <a href="../../../../index.html#key493">maximum flow</a>, <a href="../../../../index.html#key456">minimal spanning tree</a>, <a href="../../../../index.html#key467">minimum cost flow</a>, <a href="../../../../index.html#key457">minimum degree spanning tree</a>, <a href="../../../../index.html#key495">minimum diameter spanning tree</a>, <a href="../../../../index.html#key484">neighbour</a>, <a href="../../../../index.html#key458">node</a>, <a href="../../../../index.html#key464">radius</a>, <a href="../../../../index.html#key461">residual graph</a>, <a href="../../../../index.html#key472">shortest path</a>, <a href="../../../../index.html#key488">squared graph</a>, <a href="../../../../index.html#key450">strongly connected component</a>, <a href="../../../../index.html#key475">subgraph</a>, <a href="../../../../index.html#key454">travelling salesman</a>, <a href="../../../../index.html#key459">vertex</a>, <a href="../../../../index.html#key492">vertex cover</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 Alejandro Paz &lt;[email protected]&gt;<br>
Copyright &copy; 2008 (docs) Andreas Kupries &lt;[email protected]&gt;<br>
Copyright &copy; 2009 Michal Antoniewski &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|










1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
bugs and other problems.
Please report such in the category <em>struct :: graph</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key465">adjacency list</a>, <a href="../../../../index.html#key489">adjacency matrix</a>, <a href="../../../../index.html#key482">adjacent</a>, <a href="../../../../index.html#key491">approximation algorithm</a>, <a href="../../../../index.html#key470">arc</a>, <a href="../../../../index.html#key480">articulation point</a>, <a href="../../../../index.html#key467">augmenting network</a>, <a href="../../../../index.html#key487">augmenting path</a>, <a href="../../../../index.html#key462">bfs</a>, <a href="../../../../index.html#key492">bipartite</a>, <a href="../../../../index.html#key453">blocking flow</a>, <a href="../../../../index.html#key464">bridge</a>, <a href="../../../../index.html#key485">complete graph</a>, <a href="../../../../index.html#key478">connected component</a>, <a href="../../../../index.html#key481">cut edge</a>, <a href="../../../../index.html#key483">cut vertex</a>, <a href="../../../../index.html#key472">degree</a>, <a href="../../../../index.html#key473">degree constrained spanning tree</a>, <a href="../../../../index.html#key455">diameter</a>, <a href="../../../../index.html#key493">dijkstra</a>, <a href="../../../../index.html#key476">distance</a>, <a href="../../../../index.html#key498">eccentricity</a>, <a href="../../../../index.html#key457">edge</a>, <a href="../../../../index.html#key496">flow network</a>, <a href="../../../../index.html#key303">graph</a>, <a href="../../../../index.html#key471">heuristic</a>, <a href="../../../../index.html#key468">independent set</a>, <a href="../../../../index.html#key488">isthmus</a>, <a href="../../../../index.html#key484">level graph</a>, <a href="../../../../index.html#key479">local searching</a>, <a href="../../../../index.html#key454">loop</a>, <a href="../../../../index.html#key5">matching</a>, <a href="../../../../index.html#key475">max cut</a>, <a href="../../../../index.html#key495">maximum flow</a>, <a href="../../../../index.html#key458">minimal spanning tree</a>, <a href="../../../../index.html#key469">minimum cost flow</a>, <a href="../../../../index.html#key459">minimum degree spanning tree</a>, <a href="../../../../index.html#key497">minimum diameter spanning tree</a>, <a href="../../../../index.html#key486">neighbour</a>, <a href="../../../../index.html#key460">node</a>, <a href="../../../../index.html#key466">radius</a>, <a href="../../../../index.html#key463">residual graph</a>, <a href="../../../../index.html#key474">shortest path</a>, <a href="../../../../index.html#key490">squared graph</a>, <a href="../../../../index.html#key452">strongly connected component</a>, <a href="../../../../index.html#key477">subgraph</a>, <a href="../../../../index.html#key456">travelling salesman</a>, <a href="../../../../index.html#key461">vertex</a>, <a href="../../../../index.html#key494">vertex cover</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 Alejandro Paz &lt;[email protected]&gt;<br>
Copyright &copy; 2008 (docs) Andreas Kupries &lt;[email protected]&gt;<br>
Copyright &copy; 2009 Michal Antoniewski &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/struct/pool.html.

104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">struct::pool(n) 1.2.2 tcllib &quot;Tcl Data Structures&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>struct::pool - Create and manipulate pool objects (of discrete items)</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>







|







104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
| <a href="../../../../toc.html">Main Table Of Contents</a>
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<h1 class="title">struct::pool(n) 1.2.3 tcllib &quot;Tcl Data Structures&quot;</h1>
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>struct::pool - Create and manipulate pool objects (of discrete items)</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#synopsis">Synopsis</a></li>
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.2</b></li>
<li>package require <b class="pkgname">struct::pool <span class="opt">?1.2.2?</span></b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::struct::pool</b> <span class="opt">?<i class="arg">poolName</i>?</span> <span class="opt">?<i class="arg">maxsize</i>?</span></a></li>
<li><a href="#2"><b class="cmd">poolName</b> <i class="arg">option</i> <span class="opt">?<i class="arg">arg arg ...</i>?</span></a></li>
<li><a href="#3"><i class="arg">poolName</i> <b class="method">add</b> <i class="arg">itemName1</i> <span class="opt">?<i class="arg">itemName2 itemName3 ...</i>?</span></a></li>
<li><a href="#4"><i class="arg">poolName</i> <b class="method">clear</b> <span class="opt">?<b class="option">-force</b>?</span></a></li>
<li><a href="#5"><i class="arg">poolName</i> <b class="method">destroy</b> <span class="opt">?<b class="option">-force</b>?</span></a></li>







|







127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="synopsis">
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.2</b></li>
<li>package require <b class="pkgname">struct::pool <span class="opt">?1.2.3?</span></b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::struct::pool</b> <span class="opt">?<i class="arg">poolName</i>?</span> <span class="opt">?<i class="arg">maxsize</i>?</span></a></li>
<li><a href="#2"><b class="cmd">poolName</b> <i class="arg">option</i> <span class="opt">?<i class="arg">arg arg ...</i>?</span></a></li>
<li><a href="#3"><i class="arg">poolName</i> <b class="method">add</b> <i class="arg">itemName1</i> <span class="opt">?<i class="arg">itemName2 itemName3 ...</i>?</span></a></li>
<li><a href="#4"><i class="arg">poolName</i> <b class="method">clear</b> <span class="opt">?<b class="option">-force</b>?</span></a></li>
<li><a href="#5"><i class="arg">poolName</i> <b class="method">destroy</b> <span class="opt">?<b class="option">-force</b>?</span></a></li>
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
<i class="term">owned</i> or <i class="term">occupied</i>; it is not available anymore. If
an item is <i class="term">free</i>, it is <i class="term">available</i>. Deallocating an
item is equivalent to setting free or releasing an item. The person or
entity to which the item has been allotted is said to own the item.</p>
</div>
<div id="section3" class="section"><h2><a name="section3">ITEMS</a></h2>
<p><em>Discrete items</em></p>
<p>The <b class="cmd"><a href="../../../../index.html#key300">pool</a></b> command is designed for
<em>discrete items only</em>. Note that there are pools where
allocation occurs on a non-discrete basis, for example computer
memory. There are also pools from which the shares that are doled out
are not expected to be returned, for example a charity fund or a pan
of soup from which you may receive a portion. Finally, there are even
pools from which nothing is ever allocated or returned, like a
swimming pool or a cesspool.</p>







|







197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
<i class="term">owned</i> or <i class="term">occupied</i>; it is not available anymore. If
an item is <i class="term">free</i>, it is <i class="term">available</i>. Deallocating an
item is equivalent to setting free or releasing an item. The person or
entity to which the item has been allotted is said to own the item.</p>
</div>
<div id="section3" class="section"><h2><a name="section3">ITEMS</a></h2>
<p><em>Discrete items</em></p>
<p>The <b class="cmd"><a href="../../../../index.html#key302">pool</a></b> command is designed for
<em>discrete items only</em>. Note that there are pools where
allocation occurs on a non-discrete basis, for example computer
memory. There are also pools from which the shares that are doled out
are not expected to be returned, for example a charity fund or a pan
of soup from which you may receive a portion. Finally, there are even
pools from which nothing is ever allocated or returned, like a
swimming pool or a cesspool.</p>
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
bugs and other problems.
Please report such in the category <em>struct :: pool</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key778">discrete items</a>, <a href="../../../../index.html#key779">finite</a>, <a href="../../../../index.html#key300">pool</a>, <a href="../../../../index.html#key323">struct</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002, Erik Leunissen &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
bugs and other problems.
Please report such in the category <em>struct :: pool</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key782">discrete items</a>, <a href="../../../../index.html#key783">finite</a>, <a href="../../../../index.html#key302">pool</a>, <a href="../../../../index.html#key325">struct</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002, Erik Leunissen &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/struct/prioqueue.html.

209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
bugs and other problems.
Please report such in the category <em>struct :: prioqueue</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key744">ordered list</a>, <a href="../../../../index.html#key304">prioqueue</a>, <a href="../../../../index.html#key745">priority queue</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003 Michael Schlenker &lt;[email protected]&gt;</p>
</div>







|







209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
bugs and other problems.
Please report such in the category <em>struct :: prioqueue</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key748">ordered list</a>, <a href="../../../../index.html#key306">prioqueue</a>, <a href="../../../../index.html#key749">priority queue</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003 Michael Schlenker &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/struct/queue.html.

189
190
191
192
193
194
195
196
197
198
199
200
201
bugs and other problems.
Please report such in the category <em>struct :: queue</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key301">graph</a>, <a href="../../../../index.html#key298">list</a>, <a href="../../../../index.html#key51">matrix</a>, <a href="../../../../index.html#key300">pool</a>, <a href="../../../../index.html#key304">prioqueue</a>, <a href="../../../../index.html#key303">record</a>, <a href="../../../../index.html#key297">set</a>, <a href="../../../../index.html#key302">skiplist</a>, <a href="../../../../index.html#key299">stack</a>, <a href="../../../../index.html#key296">tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
</div></body></html>







|





189
190
191
192
193
194
195
196
197
198
199
200
201
bugs and other problems.
Please report such in the category <em>struct :: queue</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key303">graph</a>, <a href="../../../../index.html#key300">list</a>, <a href="../../../../index.html#key51">matrix</a>, <a href="../../../../index.html#key302">pool</a>, <a href="../../../../index.html#key306">prioqueue</a>, <a href="../../../../index.html#key305">record</a>, <a href="../../../../index.html#key299">set</a>, <a href="../../../../index.html#key304">skiplist</a>, <a href="../../../../index.html#key301">stack</a>, <a href="../../../../index.html#key298">tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/struct/record.html.

418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
bugs and other problems.
Please report such in the category <em>struct :: record</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key324">data structures</a>, <a href="../../../../index.html#key303">record</a>, <a href="../../../../index.html#key323">struct</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002, Brett Schwarz &lt;[email protected]&gt;</p>
</div>







|







418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
bugs and other problems.
Please report such in the category <em>struct :: record</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key326">data structures</a>, <a href="../../../../index.html#key305">record</a>, <a href="../../../../index.html#key325">struct</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002, Brett Schwarz &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/struct/skiplist.html.

187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
bugs and other problems.
Please report such in the category <em>struct :: skiplist</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key302">skiplist</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2000 Keith Vetter</p>
</div>







|







187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
bugs and other problems.
Please report such in the category <em>struct :: skiplist</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key304">skiplist</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2000 Keith Vetter</p>
</div>

Changes to embedded/www/tcllib/files/modules/struct/stack.html.

203
204
205
206
207
208
209
210
211
212
213
214
215
bugs and other problems.
Please report such in the category <em>struct :: stack</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key301">graph</a>, <a href="../../../../index.html#key51">matrix</a>, <a href="../../../../index.html#key50">queue</a>, <a href="../../../../index.html#key296">tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
</div></body></html>







|





203
204
205
206
207
208
209
210
211
212
213
214
215
bugs and other problems.
Please report such in the category <em>struct :: stack</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key303">graph</a>, <a href="../../../../index.html#key51">matrix</a>, <a href="../../../../index.html#key50">queue</a>, <a href="../../../../index.html#key298">tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/struct/struct_list.html.

596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
permutation for which <i class="arg">body</i> is currently executed. The result of
the loop command is the empty string.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">LONGEST COMMON SUBSEQUENCE AND FILE COMPARISON</a></h2>
<p>The <b class="method">longestCommonSubsequence</b> subcommand forms the core of a
flexible system for doing differential comparisons of files, similar
to the capability offered by the Unix command <b class="syscmd"><a href="../../../../index.html#key557">diff</a></b>.
While this procedure is quite rapid for many tasks of file comparison,
its performance degrades severely if <i class="arg">sequence2</i> contains many
equal elements (as, for instance, when using this procedure to compare
two files, a quarter of whose lines are blank.  This drawback is
intrinsic to the algorithm used (see the Reference for details).</p>
<p>One approach to dealing with the performance problem that is sometimes
effective in practice is arbitrarily to exclude elements that appear







|







596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
permutation for which <i class="arg">body</i> is currently executed. The result of
the loop command is the empty string.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">LONGEST COMMON SUBSEQUENCE AND FILE COMPARISON</a></h2>
<p>The <b class="method">longestCommonSubsequence</b> subcommand forms the core of a
flexible system for doing differential comparisons of files, similar
to the capability offered by the Unix command <b class="syscmd"><a href="../../../../index.html#key560">diff</a></b>.
While this procedure is quite rapid for many tasks of file comparison,
its performance degrades severely if <i class="arg">sequence2</i> contains many
equal elements (as, for instance, when using this procedure to compare
two files, a quarter of whose lines are blank.  This drawback is
intrinsic to the algorithm used (see the Reference for details).</p>
<p>One approach to dealing with the performance problem that is sometimes
effective in practice is arbitrarily to exclude elements that appear
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
bugs and other problems.
Please report such in the category <em>struct :: list</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key563">Fisher-Yates</a>, <a href="../../../../index.html#key565">assign</a>, <a href="../../../../index.html#key546">common</a>, <a href="../../../../index.html#key548">comparison</a>, <a href="../../../../index.html#key557">diff</a>, <a href="../../../../index.html#key551">differential</a>, <a href="../../../../index.html#key554">equal</a>, <a href="../../../../index.html#key567">equality</a>, <a href="../../../../index.html#key221">filter</a>, <a href="../../../../index.html#key555">first permutation</a>, <a href="../../../../index.html#key552">flatten</a>, <a href="../../../../index.html#key560">folding</a>, <a href="../../../../index.html#key558">full outer join</a>, <a href="../../../../index.html#key566">generate permutations</a>, <a href="../../../../index.html#key562">inner join</a>, <a href="../../../../index.html#key553">join</a>, <a href="../../../../index.html#key547">left outer join</a>, <a href="../../../../index.html#key298">list</a>, <a href="../../../../index.html#key545">longest common subsequence</a>, <a href="../../../../index.html#key199">map</a>, <a href="../../../../index.html#key570">next permutation</a>, <a href="../../../../index.html#key569">outer join</a>, <a href="../../../../index.html#key544">permutation</a>, <a href="../../../../index.html#key215">reduce</a>, <a href="../../../../index.html#key568">repeating</a>, <a href="../../../../index.html#key277">repetition</a>, <a href="../../../../index.html#key561">reshuffle</a>, <a href="../../../../index.html#key549">reverse</a>, <a href="../../../../index.html#key550">right outer join</a>, <a href="../../../../index.html#key564">shuffle</a>, <a href="../../../../index.html#key559">subsequence</a>, <a href="../../../../index.html#key556">swapping</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003-2005 by Kevin B. Kenny. All rights reserved<br>
Copyright &copy; 2003-2012 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|









689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
bugs and other problems.
Please report such in the category <em>struct :: list</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key566">Fisher-Yates</a>, <a href="../../../../index.html#key568">assign</a>, <a href="../../../../index.html#key549">common</a>, <a href="../../../../index.html#key551">comparison</a>, <a href="../../../../index.html#key560">diff</a>, <a href="../../../../index.html#key554">differential</a>, <a href="../../../../index.html#key557">equal</a>, <a href="../../../../index.html#key570">equality</a>, <a href="../../../../index.html#key221">filter</a>, <a href="../../../../index.html#key558">first permutation</a>, <a href="../../../../index.html#key555">flatten</a>, <a href="../../../../index.html#key563">folding</a>, <a href="../../../../index.html#key561">full outer join</a>, <a href="../../../../index.html#key569">generate permutations</a>, <a href="../../../../index.html#key565">inner join</a>, <a href="../../../../index.html#key556">join</a>, <a href="../../../../index.html#key550">left outer join</a>, <a href="../../../../index.html#key300">list</a>, <a href="../../../../index.html#key548">longest common subsequence</a>, <a href="../../../../index.html#key199">map</a>, <a href="../../../../index.html#key573">next permutation</a>, <a href="../../../../index.html#key572">outer join</a>, <a href="../../../../index.html#key547">permutation</a>, <a href="../../../../index.html#key215">reduce</a>, <a href="../../../../index.html#key571">repeating</a>, <a href="../../../../index.html#key279">repetition</a>, <a href="../../../../index.html#key564">reshuffle</a>, <a href="../../../../index.html#key552">reverse</a>, <a href="../../../../index.html#key553">right outer join</a>, <a href="../../../../index.html#key567">shuffle</a>, <a href="../../../../index.html#key562">subsequence</a>, <a href="../../../../index.html#key559">swapping</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2003-2005 by Kevin B. Kenny. All rights reserved<br>
Copyright &copy; 2003-2012 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/struct/struct_set.html.

229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
bugs and other problems.
Please report such in the category <em>struct :: set</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key722">cardinality</a>, <a href="../../../../index.html#key725">difference</a>, <a href="../../../../index.html#key721">emptiness</a>, <a href="../../../../index.html#key723">exclusion</a>, <a href="../../../../index.html#key720">inclusion</a>, <a href="../../../../index.html#key724">intersection</a>, <a href="../../../../index.html#key719">membership</a>, <a href="../../../../index.html#key297">set</a>, <a href="../../../../index.html#key718">symmetric difference</a>, <a href="../../../../index.html#key617">union</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004-2008 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
bugs and other problems.
Please report such in the category <em>struct :: set</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key726">cardinality</a>, <a href="../../../../index.html#key729">difference</a>, <a href="../../../../index.html#key725">emptiness</a>, <a href="../../../../index.html#key727">exclusion</a>, <a href="../../../../index.html#key724">inclusion</a>, <a href="../../../../index.html#key728">intersection</a>, <a href="../../../../index.html#key723">membership</a>, <a href="../../../../index.html#key299">set</a>, <a href="../../../../index.html#key722">symmetric difference</a>, <a href="../../../../index.html#key621">union</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004-2008 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/struct/struct_tree.html.

201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
<li><p>Trees are accessed through an object command, whereas arrays are
accessed as variables. (This means trees cannot be local to a procedure.)</p></li>
<li><p>Trees have a hierarchical structure, whereas an array is just an
unordered collection.</p></li>
<li><p>Each node of a tree has a separate collection of attributes and
values. This is like an array where every value is a dictionary.</p></li>
</ol>
<p><em>Note:</em> The major version of the package <b class="package"><a href="../../../../index.html#key323">struct</a></b> has
been changed to version 2.0, due to backward incompatible changes in
the API of this module. Please read the section
<span class="sectref"><a href="#subsection3">Changes for 2.0</a></span> for a full list of all changes,
incompatible and otherwise.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<div id="subsection1" class="subsection"><h3><a name="subsection1">Tree CLASS API</a></h3>







|







201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
<li><p>Trees are accessed through an object command, whereas arrays are
accessed as variables. (This means trees cannot be local to a procedure.)</p></li>
<li><p>Trees have a hierarchical structure, whereas an array is just an
unordered collection.</p></li>
<li><p>Each node of a tree has a separate collection of attributes and
values. This is like an array where every value is a dictionary.</p></li>
</ol>
<p><em>Note:</em> The major version of the package <b class="package"><a href="../../../../index.html#key325">struct</a></b> has
been changed to version 2.0, due to backward incompatible changes in
the API of this module. Please read the section
<span class="sectref"><a href="#subsection3">Changes for 2.0</a></span> for a full list of all changes,
incompatible and otherwise.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<div id="subsection1" class="subsection"><h3><a name="subsection1">Tree CLASS API</a></h3>
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
bugs and other problems.
Please report such in the category <em>struct :: tree</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key695">breadth-first</a>, <a href="../../../../index.html#key693">depth-first</a>, <a href="../../../../index.html#key692">in-order</a>, <a href="../../../../index.html#key458">node</a>, <a href="../../../../index.html#key694">post-order</a>, <a href="../../../../index.html#key691">pre-order</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key296">tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002-2004,2012 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
bugs and other problems.
Please report such in the category <em>struct :: tree</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key699">breadth-first</a>, <a href="../../../../index.html#key697">depth-first</a>, <a href="../../../../index.html#key696">in-order</a>, <a href="../../../../index.html#key460">node</a>, <a href="../../../../index.html#key698">post-order</a>, <a href="../../../../index.html#key695">pre-order</a>, <a href="../../../../index.html#key109">serialization</a>, <a href="../../../../index.html#key298">tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002-2004,2012 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/struct/struct_tree1.html.

310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
any of its children. In-order walking means that a parent node is
visited after its first child and before the second. This is a
generalization of in-order walking for binary trees and will do the
right thing if a binary is walked. The combination of a breadth-first
walk with in-order is illegal.</p>
<p>As the walk progresses, the command <i class="arg">cmd</i> will be evaluated at
each node.  Percent substitution will be performed on <i class="arg">cmd</i> before
evaluation, just as in a <b class="cmd"><a href="../../../../index.html#key706">bind</a></b> script.  The following
substitutions are recognized:</p>
<dl class="definitions">
<dt><b class="const">%%</b></dt>
<dd><p>Insert the literal % character.</p></dd>
<dt><b class="const">%t</b></dt>
<dd><p>Name of the tree object.</p></dd>
<dt><b class="const">%n</b></dt>







|







310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
any of its children. In-order walking means that a parent node is
visited after its first child and before the second. This is a
generalization of in-order walking for binary trees and will do the
right thing if a binary is walked. The combination of a breadth-first
walk with in-order is illegal.</p>
<p>As the walk progresses, the command <i class="arg">cmd</i> will be evaluated at
each node.  Percent substitution will be performed on <i class="arg">cmd</i> before
evaluation, just as in a <b class="cmd"><a href="../../../../index.html#key710">bind</a></b> script.  The following
substitutions are recognized:</p>
<dl class="definitions">
<dt><b class="const">%%</b></dt>
<dd><p>Insert the literal % character.</p></dd>
<dt><b class="const">%t</b></dt>
<dd><p>Name of the tree object.</p></dd>
<dt><b class="const">%n</b></dt>
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
bugs and other problems.
Please report such in the category <em>struct :: tree</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key296">tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
bugs and other problems.
Please report such in the category <em>struct :: tree</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key298">tree</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2002 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/tar/tar.html.

257
258
259
260
261
262
263
264
265
266
267
268
269
bugs and other problems.
Please report such in the category <em>tar</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key728">archive</a>, <a href="../../../../index.html#key727">tape archive</a>, <a href="../../../../index.html#key729">tar</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>File formats</p>
</div>
</div></body></html>







|





257
258
259
260
261
262
263
264
265
266
267
268
269
bugs and other problems.
Please report such in the category <em>tar</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key732">archive</a>, <a href="../../../../index.html#key731">tape archive</a>, <a href="../../../../index.html#key733">tar</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>File formats</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/tepam/tepam_argument_dialogbox.html.

596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
<p>To reuse the saved parameters not just in the actual application session but also in another one, it is sufficient to store the <b class="variable">last_parameter</b> array variable contents in a configuration file which is loaded the next time an application is launched.</p></dd>
</dl>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="tepam_introduction.html">tepam(n)</a>, <a href="tepam_procedure.html">tepam::procedure(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key398">data entry form</a>, <a href="../../../../index.html#key399">parameter entry form</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Argument entry form, mega widget</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009-2013, Andreas Drollinger</p>
</div>







|







596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
<p>To reuse the saved parameters not just in the actual application session but also in another one, it is sufficient to store the <b class="variable">last_parameter</b> array variable contents in a configuration file which is loaded the next time an application is launched.</p></dd>
</dl>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="tepam_introduction.html">tepam(n)</a>, <a href="tepam_procedure.html">tepam::procedure(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key400">data entry form</a>, <a href="../../../../index.html#key401">parameter entry form</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Argument entry form, mega widget</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009-2013, Andreas Drollinger</p>
</div>

Changes to embedded/www/tcllib/files/modules/tepam/tepam_doc_gen.html.

154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package generates documentations of TEPAM procedures (procedures that have been declared with <b class="cmd"><a href="tepam_procedure.html">tepam::procedure</a></b>). The documents are generated in the classic UNIX document style using the following document sections: Name, Synopsis, Description, Arguments and Example. <b class="package">TEPAM Doc Gen</b> provides support for various document formats. Support for additional formats can be added if necessary.</p>
<p>The <b class="package">TEPAM Doc Gen</b> package provides the following commands:</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">tepam::doc_gen::generate</b> <span class="opt">?-format <i class="arg">format</i>?</span> <span class="opt">?-style <i class="arg">style</i>?</span> <span class="opt">?-header_footer?</span> <span class="opt">?-dest_file <i class="arg">dest_file</i>?</span> <i class="arg">name</i></a></dt>
<dd><p>This command generates the documentation for a specified procedure (<i class="arg">name</i>) in one of the supported formats (TXT, HTML, POD (Perl Doc), DT (TclLib DocTool), or in a custom specific format. The format is specified via <span class="opt">?format?</span>. The flag <span class="opt">?-header_footer?</span> adds to the documentation file header and footer. If <span class="opt">?dest_file?</span> is specified the documentation is stored in a file (the file header and footer are added automatically in this case) and the file name is returned. Otherwise the documentation string is returned by <b class="cmd">generate</b>.</p></dd>
<dt><a name="2"><b class="cmd">tepam::doc_gen::patch</b> <span class="opt">?-format <i class="arg">format</i>?</span> <span class="opt">?-style <i class="arg">style</i>?</span> <span class="opt">?-search_pattern <i class="arg">search_pattern</i>?</span> <span class="opt">?-src_string <i class="arg">src_string</i> | -src_file <i class="arg">src_file</i>?</span> <span class="opt">?-dest_file <i class="arg">dest_file</i>?</span> <span class="opt">?name?</span></a></dt>
<dd><p>This command inserts procedure documentations into an existing master document at the locations indicated by insertion placeholders which are matching the pattern of <span class="opt">?search_pattern?</span>. The existing master document is either provided as data to the argument (<span class="opt">?src_string?</span>) or via a file (<span class="opt">?src_file?</span>). The final document is returned by <b class="cmd"><a href="../../../../index.html#key655">patch</a></b> if no destination file is defined (<span class="opt">?dest_file?</span>). Otherwise, the document is stored in the specified file, and the number of insertion placeholders that could be handled successfully is returned.</p>
<p>Any insertion placeholders of the master document are handled by default. By defining the argument <span class="opt">?name?</span> the documentation insertion will be restricted to a particular procedure.</p></dd>
</dl>
</div>
<div id="section2" class="section"><h2><a name="section2">ARGUMENTS</a></h2>
<dl class="definitions">
<dt><span class="opt">?-format <i class="arg">format</i>?</span></dt>
<dd><p>Specifies the documentation format. <b class="package">TEPAM Doc Gen</b> provides support for the following formats:</p>
<ul class="itemized">
<li><p>TXT - Text format (default)</p></li>
<li><p>HTML</p></li>
<li><p>POD - Perl Plain Old Documentation format (PerlPOD)</p></li>
<li><p>DT - TclLib DocTool format</p></li>
</ul>
<p>Section <span class="sectref"><a href="#section4">ADDING SUPPORT FOR NEW DOCUMENT FORMATS</a></span> shows how support for additional formats can be added.</p></dd>
<dt><span class="opt">?-style <i class="arg">style</i>?</span></dt>
<dd><p>The documentation is by default generated in Tcl style (e.g. <b class="cmd">command arg1 arg2 ...</b>). C-style documentation can be generated by setting this argument to 'C' (e.g. <b class="cmd">command(arg1,arg2,...)</b>).</p></dd>
<dt><span class="opt">?-dest_file <i class="arg">dest_file</i>?</span></dt>
<dd><p>If <span class="opt">?dest_file?</span> is defined the documentation is written into the specified destination file. Otherwise the documentation string is returned by the commands <b class="cmd">generate</b> and <b class="cmd"><a href="../../../../index.html#key655">patch</a></b>.</p></dd>
<dt><i class="arg">name</i> / <span class="opt">?name?</span></dt>
<dd><p>This is the name of the procedure for which the documentation has to be generated. This is a mandatory argument for <b class="cmd">generate</b>, but an optional argument for <b class="cmd"><a href="../../../../index.html#key655">patch</a></b>.</p></dd>
<dt><span class="opt">?-header_footer?</span></dt>
<dd><p><b class="cmd">Generate</b> adds to the generated procedure documentation the file header and footer only if a file is generated. By selecting the flag <span class="opt">?-header_footer?</span> the header and footer are also generated if the documentation is returned as string by <b class="cmd">generate</b>.</p></dd>
<dt><span class="opt">?-src_string <i class="arg">src_string</i> | -src_file <i class="arg">src_file</i>?</span></dt>
<dd><p><b class="cmd"><a href="../../../../index.html#key655">Patch</a></b> inserts procedure documentations into an existing document that is either provided as string to the argument (<span class="opt">?src_string?</span>) or as a file (<span class="opt">?src_file?</span>). One of these two arguments need to be specified.</p></dd>
<dt><span class="opt">?-search_pattern <i class="arg">search_pattern</i>?</span></dt>
<dd><p>The argument <span class="opt">?search_pattern?</span> defines the documentation insertion placeholder used in a document. It is a regular expression accepted by <b class="cmd">regexp</b> and needs to contain a parenthesized sub-expression that contains the procedure name for which the documentation needs to be inserted.</p>
<p>The default insertion placeholder pattern is <em>\{!(.*?)!\}</em>, which means that the procedure name will be embedded between <em>{!</em> and <em>!}</em>. The section <span class="sectref"><a href="#section5">EXAMPLES</a></span> contains a custom insertion placeholder pattern example.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">PREDEFINED DOCUMENT FORMATS</a></h2>
<p><b class="package">TEPAM Doc Gen</b> pre-defines the following document formats:</p>







|

















|

|



|







154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package generates documentations of TEPAM procedures (procedures that have been declared with <b class="cmd"><a href="tepam_procedure.html">tepam::procedure</a></b>). The documents are generated in the classic UNIX document style using the following document sections: Name, Synopsis, Description, Arguments and Example. <b class="package">TEPAM Doc Gen</b> provides support for various document formats. Support for additional formats can be added if necessary.</p>
<p>The <b class="package">TEPAM Doc Gen</b> package provides the following commands:</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">tepam::doc_gen::generate</b> <span class="opt">?-format <i class="arg">format</i>?</span> <span class="opt">?-style <i class="arg">style</i>?</span> <span class="opt">?-header_footer?</span> <span class="opt">?-dest_file <i class="arg">dest_file</i>?</span> <i class="arg">name</i></a></dt>
<dd><p>This command generates the documentation for a specified procedure (<i class="arg">name</i>) in one of the supported formats (TXT, HTML, POD (Perl Doc), DT (TclLib DocTool), or in a custom specific format. The format is specified via <span class="opt">?format?</span>. The flag <span class="opt">?-header_footer?</span> adds to the documentation file header and footer. If <span class="opt">?dest_file?</span> is specified the documentation is stored in a file (the file header and footer are added automatically in this case) and the file name is returned. Otherwise the documentation string is returned by <b class="cmd">generate</b>.</p></dd>
<dt><a name="2"><b class="cmd">tepam::doc_gen::patch</b> <span class="opt">?-format <i class="arg">format</i>?</span> <span class="opt">?-style <i class="arg">style</i>?</span> <span class="opt">?-search_pattern <i class="arg">search_pattern</i>?</span> <span class="opt">?-src_string <i class="arg">src_string</i> | -src_file <i class="arg">src_file</i>?</span> <span class="opt">?-dest_file <i class="arg">dest_file</i>?</span> <span class="opt">?name?</span></a></dt>
<dd><p>This command inserts procedure documentations into an existing master document at the locations indicated by insertion placeholders which are matching the pattern of <span class="opt">?search_pattern?</span>. The existing master document is either provided as data to the argument (<span class="opt">?src_string?</span>) or via a file (<span class="opt">?src_file?</span>). The final document is returned by <b class="cmd"><a href="../../../../index.html#key659">patch</a></b> if no destination file is defined (<span class="opt">?dest_file?</span>). Otherwise, the document is stored in the specified file, and the number of insertion placeholders that could be handled successfully is returned.</p>
<p>Any insertion placeholders of the master document are handled by default. By defining the argument <span class="opt">?name?</span> the documentation insertion will be restricted to a particular procedure.</p></dd>
</dl>
</div>
<div id="section2" class="section"><h2><a name="section2">ARGUMENTS</a></h2>
<dl class="definitions">
<dt><span class="opt">?-format <i class="arg">format</i>?</span></dt>
<dd><p>Specifies the documentation format. <b class="package">TEPAM Doc Gen</b> provides support for the following formats:</p>
<ul class="itemized">
<li><p>TXT - Text format (default)</p></li>
<li><p>HTML</p></li>
<li><p>POD - Perl Plain Old Documentation format (PerlPOD)</p></li>
<li><p>DT - TclLib DocTool format</p></li>
</ul>
<p>Section <span class="sectref"><a href="#section4">ADDING SUPPORT FOR NEW DOCUMENT FORMATS</a></span> shows how support for additional formats can be added.</p></dd>
<dt><span class="opt">?-style <i class="arg">style</i>?</span></dt>
<dd><p>The documentation is by default generated in Tcl style (e.g. <b class="cmd">command arg1 arg2 ...</b>). C-style documentation can be generated by setting this argument to 'C' (e.g. <b class="cmd">command(arg1,arg2,...)</b>).</p></dd>
<dt><span class="opt">?-dest_file <i class="arg">dest_file</i>?</span></dt>
<dd><p>If <span class="opt">?dest_file?</span> is defined the documentation is written into the specified destination file. Otherwise the documentation string is returned by the commands <b class="cmd">generate</b> and <b class="cmd"><a href="../../../../index.html#key659">patch</a></b>.</p></dd>
<dt><i class="arg">name</i> / <span class="opt">?name?</span></dt>
<dd><p>This is the name of the procedure for which the documentation has to be generated. This is a mandatory argument for <b class="cmd">generate</b>, but an optional argument for <b class="cmd"><a href="../../../../index.html#key659">patch</a></b>.</p></dd>
<dt><span class="opt">?-header_footer?</span></dt>
<dd><p><b class="cmd">Generate</b> adds to the generated procedure documentation the file header and footer only if a file is generated. By selecting the flag <span class="opt">?-header_footer?</span> the header and footer are also generated if the documentation is returned as string by <b class="cmd">generate</b>.</p></dd>
<dt><span class="opt">?-src_string <i class="arg">src_string</i> | -src_file <i class="arg">src_file</i>?</span></dt>
<dd><p><b class="cmd"><a href="../../../../index.html#key659">Patch</a></b> inserts procedure documentations into an existing document that is either provided as string to the argument (<span class="opt">?src_string?</span>) or as a file (<span class="opt">?src_file?</span>). One of these two arguments need to be specified.</p></dd>
<dt><span class="opt">?-search_pattern <i class="arg">search_pattern</i>?</span></dt>
<dd><p>The argument <span class="opt">?search_pattern?</span> defines the documentation insertion placeholder used in a document. It is a regular expression accepted by <b class="cmd">regexp</b> and needs to contain a parenthesized sub-expression that contains the procedure name for which the documentation needs to be inserted.</p>
<p>The default insertion placeholder pattern is <em>\{!(.*?)!\}</em>, which means that the procedure name will be embedded between <em>{!</em> and <em>!}</em>. The section <span class="sectref"><a href="#section5">EXAMPLES</a></span> contains a custom insertion placeholder pattern example.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">PREDEFINED DOCUMENT FORMATS</a></h2>
<p><b class="package">TEPAM Doc Gen</b> pre-defines the following document formats:</p>
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
<em># Open the HTML file, and write the HTML formatted documentation</em>
set fHtml [open doc_gen.dt.html w]
puts $fHtml [myDoc format $dt]
close $fHtml
</pre>
</div>
<div id="subsection6" class="subsection"><h3><a name="subsection6">tepam::doc_gen::patch</a></h3>
<p>While <b class="cmd">generate</b> provides a limited number of possibilities to vary the document structure, <b class="cmd"><a href="../../../../index.html#key655">patch</a></b> offers more flexibility. Multiple documentations for different procedures and meta information can for example be added.</p>
<p>The following listing shows how the <b class="cmd"><a href="../../../../index.html#key655">patch</a></b> command works. It defines first a HTML master document string that contains 2 procedure documentation placeholders (<em>{*&lt;ProcedureName&gt;*}</em>). There placeholders are replaced by <b class="cmd"><a href="../../../../index.html#key655">patch</a></b> with the generated documentation of the referred procedures. Since nonstandard placeholders are used, <b class="cmd"><a href="../../../../index.html#key655">patch</a></b> is called with an explicit placeholder pattern definition (argument <i class="arg">search_pattern</i>).</p>
<pre class="example">
<em># Define the HTML master document</em>
set HtmlMasterDoc {\
&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;tepam::doc_gen&lt;/title&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;tepam_doc_stylesheet.css&quot;&gt;







|
|







367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
<em># Open the HTML file, and write the HTML formatted documentation</em>
set fHtml [open doc_gen.dt.html w]
puts $fHtml [myDoc format $dt]
close $fHtml
</pre>
</div>
<div id="subsection6" class="subsection"><h3><a name="subsection6">tepam::doc_gen::patch</a></h3>
<p>While <b class="cmd">generate</b> provides a limited number of possibilities to vary the document structure, <b class="cmd"><a href="../../../../index.html#key659">patch</a></b> offers more flexibility. Multiple documentations for different procedures and meta information can for example be added.</p>
<p>The following listing shows how the <b class="cmd"><a href="../../../../index.html#key659">patch</a></b> command works. It defines first a HTML master document string that contains 2 procedure documentation placeholders (<em>{*&lt;ProcedureName&gt;*}</em>). There placeholders are replaced by <b class="cmd"><a href="../../../../index.html#key659">patch</a></b> with the generated documentation of the referred procedures. Since nonstandard placeholders are used, <b class="cmd"><a href="../../../../index.html#key659">patch</a></b> is called with an explicit placeholder pattern definition (argument <i class="arg">search_pattern</i>).</p>
<pre class="example">
<em># Define the HTML master document</em>
set HtmlMasterDoc {\
&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;tepam::doc_gen&lt;/title&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;tepam_doc_stylesheet.css&quot;&gt;
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
</pre>
</div>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="tepam_introduction.html">tepam(n)</a>, <a href="tepam_procedure.html">tepam::procedure(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key822">automatic documentation</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key823">procedure documentation</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2013, Andreas Drollinger</p>
</div>
</div></body></html>







|








399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
</pre>
</div>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="tepam_introduction.html">tepam(n)</a>, <a href="tepam_procedure.html">tepam::procedure(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key826">automatic documentation</a>, <a href="../../../../index.html#key185">documentation</a>, <a href="../../../../index.html#key827">procedure documentation</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2013, Andreas Drollinger</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/tepam/tepam_introduction.html.

147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<li><p>Automatic help and usage text generation if a procedure is called with the <i class="arg">-help</i> flag.</p></li>
<li><p>Automatic generation of an interactive argument definition form, in case a procedure is called with the <i class="arg">-interactive</i> flag.</p></li>
<li><p>Procedure calls can be logged which is useful to get for interactively called procedures the command call lines.</p></li>
<li><p>Powerful and code efficient generation of complex parameter definition forms.</p></li>
</ul>
</div>
<div id="section3" class="section"><h2><a name="section3">PROCEDURE DECLARATION</a></h2>
<p>TEPAM's procedure declaration syntax is simple and self-explaining. Instead of declaring a procedure with the Tcl key word <b class="cmd"><a href="../../../../index.html#key586">proc</a></b>, a procedure is declared with the TEPAM command <b class="cmd"><a href="../../../../index.html#key41">procedure</a></b> which takes as <b class="cmd"><a href="../../../../index.html#key586">proc</a></b> also 3 arguments: The procedure name, the procedure header and the procedure body.</p>
<p>The following example declares the subcommand <b class="cmd"><a href="../../../../index.html#key357">message</a></b> of the procedure <b class="cmd">display</b>. This command has several named and unnamed arguments:</p>
<pre class="example"><b class="cmd"><a href="tepam_procedure.html">tepam::procedure</a></b> {display message} {
   -return            -
   -short_description &quot;Displays a simple message box&quot;
   -description       &quot;This procedure allows displaying a configurable message box.
   -args {
      {-mtype -default Warning -choices {Info Warning Error} -description &quot;Message type&quot;}
      {-font -type font -default {Arial 10 italic} -description &quot;Message text font&quot;}







|
|







147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<li><p>Automatic help and usage text generation if a procedure is called with the <i class="arg">-help</i> flag.</p></li>
<li><p>Automatic generation of an interactive argument definition form, in case a procedure is called with the <i class="arg">-interactive</i> flag.</p></li>
<li><p>Procedure calls can be logged which is useful to get for interactively called procedures the command call lines.</p></li>
<li><p>Powerful and code efficient generation of complex parameter definition forms.</p></li>
</ul>
</div>
<div id="section3" class="section"><h2><a name="section3">PROCEDURE DECLARATION</a></h2>
<p>TEPAM's procedure declaration syntax is simple and self-explaining. Instead of declaring a procedure with the Tcl key word <b class="cmd"><a href="../../../../index.html#key589">proc</a></b>, a procedure is declared with the TEPAM command <b class="cmd"><a href="../../../../index.html#key41">procedure</a></b> which takes as <b class="cmd"><a href="../../../../index.html#key589">proc</a></b> also 3 arguments: The procedure name, the procedure header and the procedure body.</p>
<p>The following example declares the subcommand <b class="cmd"><a href="../../../../index.html#key359">message</a></b> of the procedure <b class="cmd">display</b>. This command has several named and unnamed arguments:</p>
<pre class="example"><b class="cmd"><a href="tepam_procedure.html">tepam::procedure</a></b> {display message} {
   -return            -
   -short_description &quot;Displays a simple message box&quot;
   -description       &quot;This procedure allows displaying a configurable message box.
   -args {
      {-mtype -default Warning -choices {Info Warning Error} -description &quot;Message type&quot;}
      {-font -type font -default {Arial 10 italic} -description &quot;Message text font&quot;}
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
   foreach var {mtype font level fg bg no_border log_file text} {
      if {[info exists $var]} {
         puts  &quot;  $var=[set $var]&quot;
      }
   }
</em>}</pre>
<p>A call of procedure that has been declared in this way will first invoke the TEPAM argument manager, before the procedure body is executed. The argument manager parses the provided arguments, validates them, completes them eventually with some default values, and makes them finally available to the procedure body as local variables. In case an argument is missing or has a wrong type, the argument manager generates an error message that explains the reason for the error.</p>
<p>As the example above shows, the TEPAM command <b class="cmd"><a href="../../../../index.html#key41">procedure</a></b> accepts subcommand definitions as procedure name and allows defining much more information than just the argument list inside the procedure header. The procedure body on the other hand is identical between a command declared with <b class="cmd"><a href="../../../../index.html#key586">proc</a></b> and a command declared with <b class="cmd"><a href="../../../../index.html#key41">procedure</a></b>.</p>
<p>The procedure header allows defining in addition to the arguments some procedure attributes, like a description, information concerning the return value, etc. This information is basically used for the automatic generation of comprehensive help and usage texts.</p>
<p>A list of argument definition statements assigned to the <i class="arg">-args</i> argument is defining the procedure arguments. Each argument definition statement starts with the argument name, optionally followed by some argument attributes.</p>
<p>Three types of arguments can be defined: Unnamed arguments, named arguments and flags. The distinction between the named and unnamed arguments is made by the first argument name character which is simply &quot;-&quot; for named arguments. A flag is defined as named argument that has the type  <em>none</em>.</p>
<p>Named and unnamed arguments are mandatory, unless they are declared with the <i class="arg">-optional</i> flag and unless they have a default value specified with the <i class="arg">-default</i> option. Named arguments and the last unnamed argument can have the attribute <i class="arg">-multiple</i>, which means that they can be defined multiple times. The expected argument data type is specified with the <i class="arg">-type</i> option. TEPAM defines a large set of standard data types which can easily be completed with application specific data types.</p>
<p>The argument declaration order has only an importance for unnamed arguments that are by default parsed after the named arguments (Tcl style). A variable allows changing this behavior in a way that unnamed arguments are parsed first, before the named arguments (Tk style).</p>
</div>
<div id="section4" class="section"><h2><a name="section4">PROCEDURE HELP</a></h2>







|







172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
   foreach var {mtype font level fg bg no_border log_file text} {
      if {[info exists $var]} {
         puts  &quot;  $var=[set $var]&quot;
      }
   }
</em>}</pre>
<p>A call of procedure that has been declared in this way will first invoke the TEPAM argument manager, before the procedure body is executed. The argument manager parses the provided arguments, validates them, completes them eventually with some default values, and makes them finally available to the procedure body as local variables. In case an argument is missing or has a wrong type, the argument manager generates an error message that explains the reason for the error.</p>
<p>As the example above shows, the TEPAM command <b class="cmd"><a href="../../../../index.html#key41">procedure</a></b> accepts subcommand definitions as procedure name and allows defining much more information than just the argument list inside the procedure header. The procedure body on the other hand is identical between a command declared with <b class="cmd"><a href="../../../../index.html#key589">proc</a></b> and a command declared with <b class="cmd"><a href="../../../../index.html#key41">procedure</a></b>.</p>
<p>The procedure header allows defining in addition to the arguments some procedure attributes, like a description, information concerning the return value, etc. This information is basically used for the automatic generation of comprehensive help and usage texts.</p>
<p>A list of argument definition statements assigned to the <i class="arg">-args</i> argument is defining the procedure arguments. Each argument definition statement starts with the argument name, optionally followed by some argument attributes.</p>
<p>Three types of arguments can be defined: Unnamed arguments, named arguments and flags. The distinction between the named and unnamed arguments is made by the first argument name character which is simply &quot;-&quot; for named arguments. A flag is defined as named argument that has the type  <em>none</em>.</p>
<p>Named and unnamed arguments are mandatory, unless they are declared with the <i class="arg">-optional</i> flag and unless they have a default value specified with the <i class="arg">-default</i> option. Named arguments and the last unnamed argument can have the attribute <i class="arg">-multiple</i>, which means that they can be defined multiple times. The expected argument data type is specified with the <i class="arg">-type</i> option. TEPAM defines a large set of standard data types which can easily be completed with application specific data types.</p>
<p>The argument declaration order has only an importance for unnamed arguments that are by default parsed after the named arguments (Tcl style). A variable allows changing this behavior in a way that unnamed arguments are parsed first, before the named arguments (Tk style).</p>
</div>
<div id="section4" class="section"><h2><a name="section4">PROCEDURE HELP</a></h2>
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
   Color: 'red'
   Font: 'Courier 12 italic'</em></pre>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="tepam_argument_dialogbox.html">tepam::argument_dialogbox(n)</a>, <a href="tepam_procedure.html">tepam::procedure(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key750">argument integrity</a>, <a href="../../../../index.html#key751">argument validation</a>, <a href="../../../../index.html#key749">arguments</a>, <a href="../../../../index.html#key752">entry mask</a>, <a href="../../../../index.html#key399">parameter entry form</a>, <a href="../../../../index.html#key41">procedure</a>, <a href="../../../../index.html#key748">subcommand</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Procedures, arguments, parameters, options</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009-2013, Andreas Drollinger</p>
</div>
</div></body></html>







|








346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
   Color: 'red'
   Font: 'Courier 12 italic'</em></pre>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="tepam_argument_dialogbox.html">tepam::argument_dialogbox(n)</a>, <a href="tepam_procedure.html">tepam::procedure(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key754">argument integrity</a>, <a href="../../../../index.html#key755">argument validation</a>, <a href="../../../../index.html#key753">arguments</a>, <a href="../../../../index.html#key756">entry mask</a>, <a href="../../../../index.html#key401">parameter entry form</a>, <a href="../../../../index.html#key41">procedure</a>, <a href="../../../../index.html#key752">subcommand</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Procedures, arguments, parameters, options</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009-2013, Andreas Drollinger</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/tepam/tepam_procedure.html.

792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
<em>-&gt; args: -mtype Warning {It is 7:00}</em></pre>
</div>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="tepam_introduction.html">tepam(n)</a>, <a href="tepam_argument_dialogbox.html">tepam::argument_dialogbox(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key750">argument integrity</a>, <a href="../../../../index.html#key751">argument validation</a>, <a href="../../../../index.html#key749">arguments</a>, <a href="../../../../index.html#key41">procedure</a>, <a href="../../../../index.html#key748">subcommand</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Procedures, arguments, parameters, options</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009-2013, Andreas Drollinger</p>
</div>







|







792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
<em>-&gt; args: -mtype Warning {It is 7:00}</em></pre>
</div>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="tepam_introduction.html">tepam(n)</a>, <a href="tepam_argument_dialogbox.html">tepam::argument_dialogbox(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key754">argument integrity</a>, <a href="../../../../index.html#key755">argument validation</a>, <a href="../../../../index.html#key753">arguments</a>, <a href="../../../../index.html#key41">procedure</a>, <a href="../../../../index.html#key752">subcommand</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Procedures, arguments, parameters, options</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009-2013, Andreas Drollinger</p>
</div>

Changes to embedded/www/tcllib/files/modules/term/ansi_cmacros.html.

185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key166">ansi</a>, <a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key667">frame</a>, <a href="../../../../index.html#key666">menu</a>, <a href="../../../../index.html#key92">terminal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key166">ansi</a>, <a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key671">frame</a>, <a href="../../../../index.html#key670">menu</a>, <a href="../../../../index.html#key92">terminal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/term/ansi_code.html.

161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key334">declare</a>, <a href="../../../../index.html#key335">define</a>, <a href="../../../../index.html#key92">terminal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key336">declare</a>, <a href="../../../../index.html#key337">define</a>, <a href="../../../../index.html#key92">terminal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/term/ansi_ctrlu.html.

147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p><em>WARNING</em>: This package is unix-specific and depends on the
availability of two unix system commands for terminal control,
i.e. <b class="syscmd">stty</b> and <b class="syscmd">tput</b>, both of which have to be found
in the <b class="variable">$PATH</b>. If any of these two commands is missing the
loading of the package will fail.</p>
<p>The package provides commands to switch the standard input of the
current process between <i class="term"><a href="../../../../index.html#key503">raw</a></i> and <i class="term"><a href="../../../../index.html#key501">cooked</a></i> input modes, and
to query the size of terminals, i.e. the available number of columns
and lines.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<div id="subsection1" class="subsection"><h3><a name="subsection1">Introspection</a></h3>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::term::ansi::ctrl::unix::import</b> <span class="opt">?<i class="arg">ns</i>?</span> <span class="opt">?<i class="arg">arg</i>...?</span></a></dt>
<dd><p>This command imports some or all attribute commands into the namespace
<i class="arg">ns</i>. This is by default the namespace <em>ctrl</em>. Note that this
is relative namespace name, placing the imported command into a child
of the current namespace. By default all commands are imported, this
can howver be restricted by listing the names of the wanted commands
after the namespace argument.</p></dd>
</dl>
</div>
<div id="subsection2" class="subsection"><h3><a name="subsection2">Operations</a></h3>
<dl class="definitions">
<dt><a name="2"><b class="cmd">::term::ansi::ctrl::unix::raw</b></a></dt>
<dd><p>This command switches the standard input of the current process to
<i class="term"><a href="../../../../index.html#key503">raw</a></i> input mode. This means that from then on all characters
typed by the user are immediately reported to the application instead
of waiting in the OS buffer until the Enter/Return key is received.</p></dd>
<dt><a name="3"><b class="cmd">::term::ansi::ctrl::unix::cooked</b></a></dt>
<dd><p>This command switches the standard input of the current process to
<i class="term"><a href="../../../../index.html#key501">cooked</a></i> input mode. This means that from then on all characters
typed by the user are kept in OS buffers for editing until the
Enter/Return key is received.</p></dd>
<dt><a name="4"><b class="cmd">::term::ansi::ctrl::unix::columns</b></a></dt>
<dd><p>This command queries the terminal connected to the standard input for
the number of columns available for display.</p></dd>
<dt><a name="5"><b class="cmd">::term::ansi::ctrl::unix::rows</b></a></dt>
<dd><p>This command queries the terminal connected to the standard input for
the number of rows (aka lines) available for display.</p></dd>
</dl>
</div>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key166">ansi</a>, <a href="../../../../index.html#key502">columns</a>, <a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key501">cooked</a>, <a href="../../../../index.html#key500">input mode</a>, <a href="../../../../index.html#key505">lines</a>, <a href="../../../../index.html#key503">raw</a>, <a href="../../../../index.html#key504">rows</a>, <a href="../../../../index.html#key92">terminal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006-2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|



















|




|




















|








147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p><em>WARNING</em>: This package is unix-specific and depends on the
availability of two unix system commands for terminal control,
i.e. <b class="syscmd">stty</b> and <b class="syscmd">tput</b>, both of which have to be found
in the <b class="variable">$PATH</b>. If any of these two commands is missing the
loading of the package will fail.</p>
<p>The package provides commands to switch the standard input of the
current process between <i class="term"><a href="../../../../index.html#key505">raw</a></i> and <i class="term"><a href="../../../../index.html#key503">cooked</a></i> input modes, and
to query the size of terminals, i.e. the available number of columns
and lines.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<div id="subsection1" class="subsection"><h3><a name="subsection1">Introspection</a></h3>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::term::ansi::ctrl::unix::import</b> <span class="opt">?<i class="arg">ns</i>?</span> <span class="opt">?<i class="arg">arg</i>...?</span></a></dt>
<dd><p>This command imports some or all attribute commands into the namespace
<i class="arg">ns</i>. This is by default the namespace <em>ctrl</em>. Note that this
is relative namespace name, placing the imported command into a child
of the current namespace. By default all commands are imported, this
can howver be restricted by listing the names of the wanted commands
after the namespace argument.</p></dd>
</dl>
</div>
<div id="subsection2" class="subsection"><h3><a name="subsection2">Operations</a></h3>
<dl class="definitions">
<dt><a name="2"><b class="cmd">::term::ansi::ctrl::unix::raw</b></a></dt>
<dd><p>This command switches the standard input of the current process to
<i class="term"><a href="../../../../index.html#key505">raw</a></i> input mode. This means that from then on all characters
typed by the user are immediately reported to the application instead
of waiting in the OS buffer until the Enter/Return key is received.</p></dd>
<dt><a name="3"><b class="cmd">::term::ansi::ctrl::unix::cooked</b></a></dt>
<dd><p>This command switches the standard input of the current process to
<i class="term"><a href="../../../../index.html#key503">cooked</a></i> input mode. This means that from then on all characters
typed by the user are kept in OS buffers for editing until the
Enter/Return key is received.</p></dd>
<dt><a name="4"><b class="cmd">::term::ansi::ctrl::unix::columns</b></a></dt>
<dd><p>This command queries the terminal connected to the standard input for
the number of columns available for display.</p></dd>
<dt><a name="5"><b class="cmd">::term::ansi::ctrl::unix::rows</b></a></dt>
<dd><p>This command queries the terminal connected to the standard input for
the number of rows (aka lines) available for display.</p></dd>
</dl>
</div>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key166">ansi</a>, <a href="../../../../index.html#key504">columns</a>, <a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key503">cooked</a>, <a href="../../../../index.html#key502">input mode</a>, <a href="../../../../index.html#key507">lines</a>, <a href="../../../../index.html#key505">raw</a>, <a href="../../../../index.html#key506">rows</a>, <a href="../../../../index.html#key92">terminal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006-2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/term/ansi_send.html.

440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key415">character output</a>, <a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key92">terminal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key417">character output</a>, <a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key92">terminal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/term/imenu.html.

246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key666">menu</a>, <a href="../../../../index.html#key92">terminal</a>, <a href="../../../../index.html#key780">text display</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key670">menu</a>, <a href="../../../../index.html#key92">terminal</a>, <a href="../../../../index.html#key784">text display</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/term/ipager.html.

246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key781">pager</a>, <a href="../../../../index.html#key92">terminal</a>, <a href="../../../../index.html#key780">text display</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key785">pager</a>, <a href="../../../../index.html#key92">terminal</a>, <a href="../../../../index.html#key784">text display</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/term/receive.html.

137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<li><a href="#5"><b class="cmd">::term::receive::unlisten</b> <span class="opt">?<i class="arg">chan</i>?</span></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides the most primitive commands for receiving
characters to a terminal. They are in essence convenient wrappers
around the builtin commands <b class="cmd"><a href="../../../../index.html#key406">read</a></b> and <b class="cmd">fileevent</b>.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::term::receive::getch</b> <span class="opt">?<i class="arg">chan</i>?</span></a></dt>
<dd><p>This command reads a single character from the channel with handle
<i class="arg">chan</i> and returns it as the result of the command.</p>
<p>If not specified <i class="arg">chan</i> defaults to <b class="const">stdin</b>.</p>
<p>It is the responsibility of the caller to make sure that the channel
can provide single characters. On unix this can be done, for example,







|







137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<li><a href="#5"><b class="cmd">::term::receive::unlisten</b> <span class="opt">?<i class="arg">chan</i>?</span></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides the most primitive commands for receiving
characters to a terminal. They are in essence convenient wrappers
around the builtin commands <b class="cmd"><a href="../../../../index.html#key408">read</a></b> and <b class="cmd">fileevent</b>.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::term::receive::getch</b> <span class="opt">?<i class="arg">chan</i>?</span></a></dt>
<dd><p>This command reads a single character from the channel with handle
<i class="arg">chan</i> and returns it as the result of the command.</p>
<p>If not specified <i class="arg">chan</i> defaults to <b class="const">stdin</b>.</p>
<p>It is the responsibility of the caller to make sure that the channel
can provide single characters. On unix this can be done, for example,

Changes to embedded/www/tcllib/files/modules/term/term_bind.html.

219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key96">character input</a>, <a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key512">dispatcher</a>, <a href="../../../../index.html#key97">listener</a>, <a href="../../../../index.html#key93">receiver</a>, <a href="../../../../index.html#key92">terminal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key96">character input</a>, <a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key514">dispatcher</a>, <a href="../../../../index.html#key97">listener</a>, <a href="../../../../index.html#key93">receiver</a>, <a href="../../../../index.html#key92">terminal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/term/term_send.html.

156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key415">character output</a>, <a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key92">terminal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
bugs and other problems.
Please report such in the category <em>term</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key417">character output</a>, <a href="../../../../index.html#key95">control</a>, <a href="../../../../index.html#key92">terminal</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Terminal control</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/textutil/adjust.html.

264
265
266
267
268
269
270
271
272
273
274
275
276
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key341">TeX</a>, <a href="../../../../index.html#key342">adjusting</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key344">hyphenation</a>, <a href="../../../../index.html#key340">indenting</a>, <a href="../../../../index.html#key339">justification</a>, <a href="../../../../index.html#key343">paragraph</a>, <a href="../../../../index.html#key276">string</a>, <a href="../../../../index.html#key338">undenting</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>







|





264
265
266
267
268
269
270
271
272
273
274
275
276
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key343">TeX</a>, <a href="../../../../index.html#key344">adjusting</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key346">hyphenation</a>, <a href="../../../../index.html#key342">indenting</a>, <a href="../../../../index.html#key341">justification</a>, <a href="../../../../index.html#key345">paragraph</a>, <a href="../../../../index.html#key278">string</a>, <a href="../../../../index.html#key340">undenting</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/textutil/expander.html.

162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<li><a href="#17"><i class="arg">expanderName</i> <b class="method">setbrackets</b> <i class="arg">lbrack rbrack</i></a></li>
<li><a href="#18"><i class="arg">expanderName</i> <b class="method">textcmd</b> <span class="opt">?<i class="arg">newTextCmd</i>?</span></a></li>
<li><a href="#19"><i class="arg">expanderName</i> <b class="method">where</b></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The Tcl <b class="cmd"><a href="../../../../index.html#key269">subst</a></b> command is often used to support a kind of
template processing. Given a string with embedded variables or
function calls, <b class="cmd"><a href="../../../../index.html#key269">subst</a></b> will interpolate the variable and function
values, returning the new string:</p>
<pre class="example">
    % set greeting &quot;Howdy&quot;
    Howdy
    % proc place {} {return &quot;World&quot;}
    % subst {$greeting, [place]!}
    Howdy, World!
    %
</pre>
<p>By defining a suitable set of Tcl commands, <b class="cmd"><a href="../../../../index.html#key269">subst</a></b> can be used to
implement a markup language similar to HTML.</p>
<p>The <b class="cmd"><a href="../../../../index.html#key269">subst</a></b> command is efficient, but it has three drawbacks for
this kind of template processing:</p>
<ul class="itemized">
<li><p>There's no way to identify and process the plain text between two
embedded Tcl commands; that makes it difficult to handle plain text in
a context-sensitive way.</p></li>
<li><p>Embedded commands are necessarily bracketed by <b class="const">[</b> and
<b class="const">]</b>; it's convenient to be able to choose different brackets







|

|









|

|







162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<li><a href="#17"><i class="arg">expanderName</i> <b class="method">setbrackets</b> <i class="arg">lbrack rbrack</i></a></li>
<li><a href="#18"><i class="arg">expanderName</i> <b class="method">textcmd</b> <span class="opt">?<i class="arg">newTextCmd</i>?</span></a></li>
<li><a href="#19"><i class="arg">expanderName</i> <b class="method">where</b></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The Tcl <b class="cmd"><a href="../../../../index.html#key271">subst</a></b> command is often used to support a kind of
template processing. Given a string with embedded variables or
function calls, <b class="cmd"><a href="../../../../index.html#key271">subst</a></b> will interpolate the variable and function
values, returning the new string:</p>
<pre class="example">
    % set greeting &quot;Howdy&quot;
    Howdy
    % proc place {} {return &quot;World&quot;}
    % subst {$greeting, [place]!}
    Howdy, World!
    %
</pre>
<p>By defining a suitable set of Tcl commands, <b class="cmd"><a href="../../../../index.html#key271">subst</a></b> can be used to
implement a markup language similar to HTML.</p>
<p>The <b class="cmd"><a href="../../../../index.html#key271">subst</a></b> command is efficient, but it has three drawbacks for
this kind of template processing:</p>
<ul class="itemized">
<li><p>There's no way to identify and process the plain text between two
embedded Tcl commands; that makes it difficult to handle plain text in
a context-sensitive way.</p></li>
<li><p>Embedded commands are necessarily bracketed by <b class="const">[</b> and
<b class="const">]</b>; it's convenient to be able to choose different brackets
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
bugs and other problems.
Please report such in the category <em>textutil</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>[uri, http://www.wjduquette.com/expand, regexp, <a href="../../../../index.html#key435">split</a>, <a href="../../../../index.html#key276">string</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key276">string</a>, <a href="../../../../index.html#key772">template processing</a>, <a href="../../../../index.html#key773">text expansion</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; William H. Duquette, http://www.wjduquette.com/expand</p>
</div>
</div></body></html>







|


|








499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
bugs and other problems.
Please report such in the category <em>textutil</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>[uri, http://www.wjduquette.com/expand, regexp, <a href="../../../../index.html#key437">split</a>, <a href="../../../../index.html#key278">string</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key278">string</a>, <a href="../../../../index.html#key776">template processing</a>, <a href="../../../../index.html#key777">text expansion</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Documentation tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; William H. Duquette, http://www.wjduquette.com/expand</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/textutil/repeat.html.

158
159
160
161
162
163
164
165
166
167
168
169
170
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key278">blanks</a>, <a href="../../../../index.html#key277">repetition</a>, <a href="../../../../index.html#key276">string</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>







|





158
159
160
161
162
163
164
165
166
167
168
169
170
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key280">blanks</a>, <a href="../../../../index.html#key279">repetition</a>, <a href="../../../../index.html#key278">string</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/textutil/tabify.html.

178
179
180
181
182
183
184
185
186
187
188
189
190
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key276">string</a>, <a href="../../../../index.html#key538">tabstops</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>







|





178
179
180
181
182
183
184
185
186
187
188
189
190
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key278">string</a>, <a href="../../../../index.html#key541">tabstops</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/textutil/textutil.html.

302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
generated list will be shorter than <i class="arg">len</i>.</p></dd>
<dt><a name="8"><b class="cmd">::textutil::splitx</b> <i class="arg">string</i> <span class="opt">?<i class="arg">regexp</i>?</span></a></dt>
<dd><p>Split the <i class="arg">string</i> and return a list. The string is split
according to the regular expression <i class="arg">regexp</i> instead of a simple
list of chars. Note that if you add parenthesis into the <i class="arg">regexp</i>,
the parentheses part of separator would be added into list as
additional element. If the <i class="arg">string</i> is empty the result is the
empty list, like for <b class="cmd"><a href="../../../../index.html#key435">split</a></b>. If <i class="arg">regexp</i> is empty the
<i class="arg">string</i> is split at every character, like <b class="cmd"><a href="../../../../index.html#key435">split</a></b> does.
The regular expression <i class="arg">regexp</i> defaults to &quot;[\\t \\r\\n]+&quot;.</p></dd>
<dt><a name="9"><b class="cmd">::textutil::tabify</b> <i class="arg">string</i> <span class="opt">?<i class="arg">num</i>?</span></a></dt>
<dd><p>Tabify the <i class="arg">string</i> by replacing any substring of <i class="arg">num</i> space
chars by a tabulation and return the result as a new string. <i class="arg">num</i>
defaults to 8.</p></dd>
<dt><a name="10"><b class="cmd">::textutil::tabify2</b> <i class="arg">string</i> <span class="opt">?<i class="arg">num</i>?</span></a></dt>
<dd><p>Similar to <b class="cmd">::textutil::tabify</b> this command tabifies the







|
|







302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
generated list will be shorter than <i class="arg">len</i>.</p></dd>
<dt><a name="8"><b class="cmd">::textutil::splitx</b> <i class="arg">string</i> <span class="opt">?<i class="arg">regexp</i>?</span></a></dt>
<dd><p>Split the <i class="arg">string</i> and return a list. The string is split
according to the regular expression <i class="arg">regexp</i> instead of a simple
list of chars. Note that if you add parenthesis into the <i class="arg">regexp</i>,
the parentheses part of separator would be added into list as
additional element. If the <i class="arg">string</i> is empty the result is the
empty list, like for <b class="cmd"><a href="../../../../index.html#key437">split</a></b>. If <i class="arg">regexp</i> is empty the
<i class="arg">string</i> is split at every character, like <b class="cmd"><a href="../../../../index.html#key437">split</a></b> does.
The regular expression <i class="arg">regexp</i> defaults to &quot;[\\t \\r\\n]+&quot;.</p></dd>
<dt><a name="9"><b class="cmd">::textutil::tabify</b> <i class="arg">string</i> <span class="opt">?<i class="arg">num</i>?</span></a></dt>
<dd><p>Tabify the <i class="arg">string</i> by replacing any substring of <i class="arg">num</i> space
chars by a tabulation and return the result as a new string. <i class="arg">num</i>
defaults to 8.</p></dd>
<dt><a name="10"><b class="cmd">::textutil::tabify2</b> <i class="arg">string</i> <span class="opt">?<i class="arg">num</i>?</span></a></dt>
<dd><p>Similar to <b class="cmd">::textutil::tabify</b> this command tabifies the
411
412
413
414
415
416
417
418
419
420
421
422
423
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key341">TeX</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key344">hyphenation</a>, <a href="../../../../index.html#key340">indenting</a>, <a href="../../../../index.html#key343">paragraph</a>, <a href="../../../../index.html#key320">regular expression</a>, <a href="../../../../index.html#key276">string</a>, <a href="../../../../index.html#key424">trimming</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>







|





411
412
413
414
415
416
417
418
419
420
421
422
423
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key343">TeX</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key346">hyphenation</a>, <a href="../../../../index.html#key342">indenting</a>, <a href="../../../../index.html#key345">paragraph</a>, <a href="../../../../index.html#key322">regular expression</a>, <a href="../../../../index.html#key278">string</a>, <a href="../../../../index.html#key426">trimming</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/textutil/textutil_split.html.

149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
<dt><a name="2"><b class="cmd">::textutil::split::splitx</b> <i class="arg">string</i> <span class="opt">?<i class="arg">regexp</i>?</span></a></dt>
<dd><p>This command splits the <i class="arg">string</i> and return a list. The string is
split according to the regular expression <i class="arg">regexp</i> instead of a
simple list of chars.
Note that if you parentheses are added into the <i class="arg">regexp</i>, the
parentheses part of separator will be added into the result list as
additional element. If the <i class="arg">string</i> is empty the result is the
empty list, like for <b class="cmd"><a href="../../../../index.html#key435">split</a></b>. If <i class="arg">regexp</i> is empty the
<i class="arg">string</i> is split at every character, like <b class="cmd"><a href="../../../../index.html#key435">split</a></b> does.
The regular expression <i class="arg">regexp</i> defaults to &quot;[\\t \\r\\n]+&quot;.</p></dd>
</dl>
</div>
<div id="section2" class="section"><h2><a name="section2">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>textutil</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key320">regular expression</a>, <a href="../../../../index.html#key435">split</a>, <a href="../../../../index.html#key276">string</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>







|
|















|





149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
<dt><a name="2"><b class="cmd">::textutil::split::splitx</b> <i class="arg">string</i> <span class="opt">?<i class="arg">regexp</i>?</span></a></dt>
<dd><p>This command splits the <i class="arg">string</i> and return a list. The string is
split according to the regular expression <i class="arg">regexp</i> instead of a
simple list of chars.
Note that if you parentheses are added into the <i class="arg">regexp</i>, the
parentheses part of separator will be added into the result list as
additional element. If the <i class="arg">string</i> is empty the result is the
empty list, like for <b class="cmd"><a href="../../../../index.html#key437">split</a></b>. If <i class="arg">regexp</i> is empty the
<i class="arg">string</i> is split at every character, like <b class="cmd"><a href="../../../../index.html#key437">split</a></b> does.
The regular expression <i class="arg">regexp</i> defaults to &quot;[\\t \\r\\n]+&quot;.</p></dd>
</dl>
</div>
<div id="section2" class="section"><h2><a name="section2">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>textutil</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key322">regular expression</a>, <a href="../../../../index.html#key437">split</a>, <a href="../../../../index.html#key278">string</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/textutil/textutil_string.html.

179
180
181
182
183
184
185
186
187
188
189
190
191
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key682">capitalize</a>, <a href="../../../../index.html#key681">chop</a>, <a href="../../../../index.html#key683">common prefix</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key680">prefix</a>, <a href="../../../../index.html#key276">string</a>, <a href="../../../../index.html#key679">uncapitalize</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>







|





179
180
181
182
183
184
185
186
187
188
189
190
191
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key686">capitalize</a>, <a href="../../../../index.html#key685">chop</a>, <a href="../../../../index.html#key687">common prefix</a>, <a href="../../../../index.html#key245">formatting</a>, <a href="../../../../index.html#key684">prefix</a>, <a href="../../../../index.html#key278">string</a>, <a href="../../../../index.html#key683">uncapitalize</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/textutil/trim.html.

183
184
185
186
187
188
189
190
191
192
193
194
195
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key680">prefix</a>, <a href="../../../../index.html#key320">regular expression</a>, <a href="../../../../index.html#key276">string</a>, <a href="../../../../index.html#key424">trimming</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>







|





183
184
185
186
187
188
189
190
191
192
193
194
195
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p>regexp(n), split(n), string(n)</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key684">prefix</a>, <a href="../../../../index.html#key322">regular expression</a>, <a href="../../../../index.html#key278">string</a>, <a href="../../../../index.html#key426">trimming</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Text processing</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/tie/tie.html.

165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tie</b> package provides a framework for the creation of
persistent Tcl array variables. It should be noted that the provided
mechanism is generic enough to also allow its usage for the
distribution of the contents of Tcl arrays over multiple threads and
processes, i.e. communication.</p>
<p>This, persistence and communication, is accomplished by <i class="term">tying</i>)
a Tcl array variable to a <i class="term"><a href="../../../../index.html#key361">data source</a></i>. Examples of data
sources are other Tcl arrays and files.</p>
<p>It should be noted that a single Tcl array variable can be tied to
more than one <i class="term"><a href="../../../../index.html#key361">data source</a></i>. It is this feature which allows
the framework to be used for communication as well. Just tie several
Tcl arrays in many client processes to a Tcl array in a server and all
changes to any of them will be distributed to all. Less centralized
variants of this are of course possible as well.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">USING TIES</a></h2>
<div id="subsection1" class="subsection"><h3><a name="subsection1">TIE API</a></h3>
<p>This section describes the basic API used to establish and remove ties
between Tcl array variables and data sources. This interface is the
only one a casual user has to be concerned about. The following
sections about the various internal interfaces can be safely skipped.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tie::tie</b> <i class="arg">arrayvarname</i> <i class="arg">options</i>... <i class="arg">dstype</i> <i class="arg">dsname</i>...</a></dt>
<dd><p>This command establishes a tie between the Tcl array whose name is
provided by the argument <i class="arg">arrayvarname</i> and the
<i class="term"><a href="../../../../index.html#key361">data source</a></i> identified by the <i class="arg">dstype</i> and its series of
<i class="arg">dsname</i> arguments. All changes made to the Tcl array after this
command returns will be saved to the <i class="term"><a href="../../../../index.html#key361">data source</a></i> for
safekeeping (or distribution).</p>
<p>The result of the command is always a token which identifies the new
tie. This token can be used later to destroy this specific tie.</p>
<dl class="arguments">
<dt>varname <i class="arg">arrayvarname</i> (in)</dt>
<dd><p>The name of the Tcl array variable to connect the new tie to.</p></dd>
<dt>name|command <i class="arg">dstype</i> (in)</dt>
<dd><p>This argument specifies the type of the <i class="term"><a href="../../../../index.html#key361">data source</a></i> we wish
to access.
The <i class="arg">dstype</i> can be one of <b class="const">log</b>, <b class="const">array</b>,
<b class="const">remotearray</b>, <b class="const">file</b>, <b class="const">growfile</b>, or
<b class="const">dsource</b>; in addition, the programmer can register additional
data source types.
Each <i class="arg">dstype</i> is followed by one or more arguments that identify
the <i class="term"><a href="../../../../index.html#key361">data source</a></i> to which the array is to be tied.</p></dd>
<dt>string <i class="arg">dsname</i> (in)</dt>
<dd><p>The series of <i class="arg">dsname</i> arguments coming after the <i class="arg">dstype</i>
identifies the <i class="term"><a href="../../../../index.html#key361">data source</a></i> we wish to connect to, and has to
be appropriate for the chosen type.</p></dd>
</dl>
<p>The command understands a number of additional options which guide the
process of setting up the connection between Tcl array and
<i class="term"><a href="../../../../index.html#key361">data source</a></i>.</p>
<dl class="options">
<dt><b class="option">-open</b></dt>
<dd><p>The Tcl array for the new tie is <i class="term">loaded</i> from the
<i class="term"><a href="../../../../index.html#key361">data source</a></i>, and the previously existing contents of the Tcl
array are erased. Care is taken to <em>not</em> erase the previous
contents should the creation of the tie fail.</p>
<p>This option and the option <b class="option">-save</b> exclude each other. If
neither this nor option <b class="option">-save</b> are specified then this option
is assumed as default.</p></dd>
<dt><b class="option">-save</b></dt>
<dd><p>The Tcl array for the new tie is <i class="term">saved</i> to the
<i class="term"><a href="../../../../index.html#key361">data source</a></i>, and the previously existing contents of the
<i class="term"><a href="../../../../index.html#key361">data source</a></i> are erased.</p>
<p>This option and the option <b class="option">-open</b> exclude each other. If
neither this nor option <b class="option">-open</b> are specified then option
<b class="option">-open</b> is assumed as default.</p></dd>
<dt><b class="option">-merge</b></dt>
<dd><p>Using this option prevents the erasure of any previously existing
content and merges the data instead. It can be specified in
conjunction with either <b class="option">-open</b> or <b class="option">-save</b>. They
determine how data existing in both Tcl array and
<i class="term"><a href="../../../../index.html#key361">data source</a></i>, i.e duplicates, are dealt with.</p>
<p>When used with <b class="option">-open</b> data in the <i class="term"><a href="../../../../index.html#key361">data source</a></i> has
precedence.
In other words, for duplicates the data in the <i class="term"><a href="../../../../index.html#key361">data source</a></i> is
loaded into the Tcl array.</p>
<p>When used with <b class="option">-save</b> data in the Tcl array has precedence. In
other words, for duplicates the data in the Tcl array is saved into
the <i class="term"><a href="../../../../index.html#key361">data source</a></i>.</p></dd>
</dl></dd>
<dt><a name="2"><b class="cmd">::tie::untie</b> <i class="arg">arrayvarname</i> <span class="opt">?<i class="arg">token</i>?</span></a></dt>
<dd><p>This command dissolves one or more ties associated with the Tcl array
named by <i class="arg">arrayvarname</i>. If no <i class="arg">token</i> is specified then all
ties to that Tcl array are dissolved. Otherwise only the tie the token
stands for is removed, if it is actually connected to the
array. Trying to remove a specific tie not belonging to the provided
array will cause an error.</p>
<p>It should be noted that while severing a tie will destroy management
information internal to the package the <i class="term"><a href="../../../../index.html#key361">data source</a></i> which was
handled by the tie will not be touched, only closed.</p>
<p>After the command returns none of changes made to the array will be
saved to the <i class="term"><a href="../../../../index.html#key361">data source</a></i> anymore.</p>
<p>The result of the command is an empty string.</p>
<dl class="arguments">
<dt>varname <i class="arg">arrayname</i> (in)</dt>
<dd><p>The name of a Tcl array variable which may have ties.</p></dd>
<dt>handle <i class="arg">token</i> (in)</dt>
<dd><p>A handle representing a specific tie. This argument is optional.</p></dd>
</dl></dd>







|


|















|

|







|






|


|




|



|







|
|








|
|

|



|









|


|







165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tie</b> package provides a framework for the creation of
persistent Tcl array variables. It should be noted that the provided
mechanism is generic enough to also allow its usage for the
distribution of the contents of Tcl arrays over multiple threads and
processes, i.e. communication.</p>
<p>This, persistence and communication, is accomplished by <i class="term">tying</i>)
a Tcl array variable to a <i class="term"><a href="../../../../index.html#key363">data source</a></i>. Examples of data
sources are other Tcl arrays and files.</p>
<p>It should be noted that a single Tcl array variable can be tied to
more than one <i class="term"><a href="../../../../index.html#key363">data source</a></i>. It is this feature which allows
the framework to be used for communication as well. Just tie several
Tcl arrays in many client processes to a Tcl array in a server and all
changes to any of them will be distributed to all. Less centralized
variants of this are of course possible as well.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">USING TIES</a></h2>
<div id="subsection1" class="subsection"><h3><a name="subsection1">TIE API</a></h3>
<p>This section describes the basic API used to establish and remove ties
between Tcl array variables and data sources. This interface is the
only one a casual user has to be concerned about. The following
sections about the various internal interfaces can be safely skipped.</p>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tie::tie</b> <i class="arg">arrayvarname</i> <i class="arg">options</i>... <i class="arg">dstype</i> <i class="arg">dsname</i>...</a></dt>
<dd><p>This command establishes a tie between the Tcl array whose name is
provided by the argument <i class="arg">arrayvarname</i> and the
<i class="term"><a href="../../../../index.html#key363">data source</a></i> identified by the <i class="arg">dstype</i> and its series of
<i class="arg">dsname</i> arguments. All changes made to the Tcl array after this
command returns will be saved to the <i class="term"><a href="../../../../index.html#key363">data source</a></i> for
safekeeping (or distribution).</p>
<p>The result of the command is always a token which identifies the new
tie. This token can be used later to destroy this specific tie.</p>
<dl class="arguments">
<dt>varname <i class="arg">arrayvarname</i> (in)</dt>
<dd><p>The name of the Tcl array variable to connect the new tie to.</p></dd>
<dt>name|command <i class="arg">dstype</i> (in)</dt>
<dd><p>This argument specifies the type of the <i class="term"><a href="../../../../index.html#key363">data source</a></i> we wish
to access.
The <i class="arg">dstype</i> can be one of <b class="const">log</b>, <b class="const">array</b>,
<b class="const">remotearray</b>, <b class="const">file</b>, <b class="const">growfile</b>, or
<b class="const">dsource</b>; in addition, the programmer can register additional
data source types.
Each <i class="arg">dstype</i> is followed by one or more arguments that identify
the <i class="term"><a href="../../../../index.html#key363">data source</a></i> to which the array is to be tied.</p></dd>
<dt>string <i class="arg">dsname</i> (in)</dt>
<dd><p>The series of <i class="arg">dsname</i> arguments coming after the <i class="arg">dstype</i>
identifies the <i class="term"><a href="../../../../index.html#key363">data source</a></i> we wish to connect to, and has to
be appropriate for the chosen type.</p></dd>
</dl>
<p>The command understands a number of additional options which guide the
process of setting up the connection between Tcl array and
<i class="term"><a href="../../../../index.html#key363">data source</a></i>.</p>
<dl class="options">
<dt><b class="option">-open</b></dt>
<dd><p>The Tcl array for the new tie is <i class="term">loaded</i> from the
<i class="term"><a href="../../../../index.html#key363">data source</a></i>, and the previously existing contents of the Tcl
array are erased. Care is taken to <em>not</em> erase the previous
contents should the creation of the tie fail.</p>
<p>This option and the option <b class="option">-save</b> exclude each other. If
neither this nor option <b class="option">-save</b> are specified then this option
is assumed as default.</p></dd>
<dt><b class="option">-save</b></dt>
<dd><p>The Tcl array for the new tie is <i class="term">saved</i> to the
<i class="term"><a href="../../../../index.html#key363">data source</a></i>, and the previously existing contents of the
<i class="term"><a href="../../../../index.html#key363">data source</a></i> are erased.</p>
<p>This option and the option <b class="option">-open</b> exclude each other. If
neither this nor option <b class="option">-open</b> are specified then option
<b class="option">-open</b> is assumed as default.</p></dd>
<dt><b class="option">-merge</b></dt>
<dd><p>Using this option prevents the erasure of any previously existing
content and merges the data instead. It can be specified in
conjunction with either <b class="option">-open</b> or <b class="option">-save</b>. They
determine how data existing in both Tcl array and
<i class="term"><a href="../../../../index.html#key363">data source</a></i>, i.e duplicates, are dealt with.</p>
<p>When used with <b class="option">-open</b> data in the <i class="term"><a href="../../../../index.html#key363">data source</a></i> has
precedence.
In other words, for duplicates the data in the <i class="term"><a href="../../../../index.html#key363">data source</a></i> is
loaded into the Tcl array.</p>
<p>When used with <b class="option">-save</b> data in the Tcl array has precedence. In
other words, for duplicates the data in the Tcl array is saved into
the <i class="term"><a href="../../../../index.html#key363">data source</a></i>.</p></dd>
</dl></dd>
<dt><a name="2"><b class="cmd">::tie::untie</b> <i class="arg">arrayvarname</i> <span class="opt">?<i class="arg">token</i>?</span></a></dt>
<dd><p>This command dissolves one or more ties associated with the Tcl array
named by <i class="arg">arrayvarname</i>. If no <i class="arg">token</i> is specified then all
ties to that Tcl array are dissolved. Otherwise only the tie the token
stands for is removed, if it is actually connected to the
array. Trying to remove a specific tie not belonging to the provided
array will cause an error.</p>
<p>It should be noted that while severing a tie will destroy management
information internal to the package the <i class="term"><a href="../../../../index.html#key363">data source</a></i> which was
handled by the tie will not be touched, only closed.</p>
<p>After the command returns none of changes made to the array will be
saved to the <i class="term"><a href="../../../../index.html#key363">data source</a></i> anymore.</p>
<p>The result of the command is an empty string.</p>
<dl class="arguments">
<dt>varname <i class="arg">arrayname</i> (in)</dt>
<dd><p>The name of a Tcl array variable which may have ties.</p></dd>
<dt>handle <i class="arg">token</i> (in)</dt>
<dd><p>A handle representing a specific tie. This argument is optional.</p></dd>
</dl></dd>
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
</dl>
</div>
<div id="subsection2" class="subsection"><h3><a name="subsection2">STANDARD DATA SOURCE TYPES</a></h3>
<p>This package provides the six following types as examples and standard
data sources.</p>
<dl class="definitions">
<dt><b class="const">log</b></dt>
<dd><p>This <i class="term"><a href="../../../../index.html#key361">data source</a></i> does not maintain any actual data, nor
persistence. It does not accept any identifying arguments. All changes
are simply logged to <b class="const">stdout</b>.</p></dd>
<dt><b class="const">array</b></dt>
<dd><p>This <i class="term"><a href="../../../../index.html#key361">data source</a></i> uses a regular Tcl array as the origin of
the persistent data. It accepts a single identifying argument, the
name of this Tcl array. All changes are mirrored to that array.</p></dd>
<dt><b class="const">remotearray</b></dt>
<dd><p>This <i class="term"><a href="../../../../index.html#key361">data source</a></i> is similar to <b class="const">array</b>. The difference
is that the Tcl array to which we are mirroring is not directly
accessible, but through a <b class="cmd"><a href="../../../../index.html#key349">send</a></b>-like command.</p>
<p>It accepts three identifying arguments, the name of the other Tcl
array, the command prefix for the <b class="cmd"><a href="../../../../index.html#key349">send</a></b>-like accessor command,
and an identifier for the remote entity hosting the array, in this
order. All changes are mirrored to that array, via the command
prefix. All commands will be executed in the context of the global
namespace.</p>
<p><b class="cmd"><a href="../../../../index.html#key349">send</a></b>-like means that the command prefix has to have <b class="cmd"><a href="../../../../index.html#key349">send</a></b>
syntax and semantics. I.e. it is a channel over which we can send
arbitrary commands to some other entity.
The remote array <i class="term"><a href="../../../../index.html#key361">data source</a></i> however uses only the commands
<b class="cmd"><a href="../../../../index.html#key297">set</a></b>, <b class="cmd">unset</b>, <b class="cmd">array exists</b>, <b class="cmd">array names</b>, <b class="cmd">array set</b>, and
<b class="cmd">array get</b> to retrieve and set values in the remote array.</p>
<p>The command prefix and the entity id are separate to allow the data
source to use options like <b class="option">-async</b> when assembling the actual
commands.</p>
<p>Examples of command prefixes, listed with the id of the remote entity,
without options. In reality only the part before the id is the command
prefix:</p>
<dl class="definitions">
<dt><b class="cmd"><a href="../../../../index.html#key349">send</a></b> <i class="arg">tkname</i></dt>
<dd><p>The Tcl array is in a remote interpreter and is accessed via Tk's X
communication.</p></dd>
<dt><b class="cmd">comm::comm send</b> <i class="arg">hostportid</i></dt>
<dd><p>The Tcl array is in a remote interpreter and is accessed through a
socket.</p></dd>
<dt><b class="cmd">thread::send</b> <i class="arg">threadid</i></dt>
<dd><p>The Tcl array is in a remote interpreter in a different thread of this
process.</p></dd>
</dl></dd>
<dt><b class="const">file</b></dt>
<dd><p>This <i class="term"><a href="../../../../index.html#key361">data source</a></i> uses a single file as origin of the
persistent data. It accepts a single identifying argument, the path to
this file. The file has to be both readable and writable. It may not
exist, the <i class="term"><a href="../../../../index.html#key361">data source</a></i> will create it in that case. This (and
only this) situation will require that the directory for the file
exists and is writable as well.</p>
<p>All changes are saved in the file, as proper Tcl commands, one command
per operation. In other words, the file will always contain a proper
Tcl script.</p>
<p>If the file exists when the tie using it is set up, then it will be
compacted, i.e. superfluous operations are removed, if the operations
log stored in it contains either at least one operation clearing the
whole array, or at least 1.5 times more operations than entries in the
loaded array.</p></dd>
<dt><b class="const">growfile</b></dt>
<dd><p>This <i class="term"><a href="../../../../index.html#key361">data source</a></i> is like <b class="const">file</b> in terms of the storage
medium for the array data, and how it is configured. In constrast to
the former it however assumes and ensures that the tied array will
never shrink. I.e. the creation of new array entries, and the
modification of existing entries is allowed, but the deletion of
entries is not, and causes the data source to throw errors.</p>
<p>This restriction allows us to simplify both file format and access to
the file radically. For one, the file is read only once and the
internal cache cannot be invalidated. Second, writing data is reduced
to a simple append, and no compaction step is necessary. The format of
the contents is the string representation of a dictionary which can be
incrementally extended forever at the end.</p></dd>
<dt><b class="const">dsource</b></dt>
<dd><p>This <i class="term"><a href="../../../../index.html#key361">data source</a></i> uses an explicitly specified
<i class="term">data source object</i> as the source for the persistent
data. It accepts a single identifying argument, the command prefix,
i.e. object command.</p>
<p>To use this type it is necessary to know how the framework manages
ties and what <span class="sectref"><a href="#subsection3">data source objects</a></span> are.</p>
<p>All changes are delegated to the specified object.</p></dd>
</dl>
</div>
</div>
<div id="section3" class="section"><h2><a name="section3">CREATING NEW DATA SOURCES</a></h2>
<p>This section is of no interest to the casual user of ties. Only
developers wishing to create new data sources have to know the
information provided herein.</p>
<div id="subsection3" class="subsection"><h3><a name="subsection3">DATA SOURCE OBJECTS</a></h3>
<p>All ties are represented internally by an in-memory object which
mediates between the tie framework and the specific
<i class="term"><a href="../../../../index.html#key361">data source</a></i>, like an array, file, etc.
This is the <i class="term">data source object</i>.</p>
<p>Its class, the <span class="sectref"><a href="#subsection5">data source class</a></span> is <em>not</em> generic,
but specific to the type of the <i class="term"><a href="../../../../index.html#key361">data source</a></i>. Writing a new
<i class="term"><a href="../../../../index.html#key361">data source</a></i> requires us to write such a class, and then
registering it with the framework as a new type.</p>
<p>The following subsections describe the various APIs a
<span class="sectref"><a href="#subsection5">data source class</a></span> and the objects it generates will have
to follow to be compatible with the tie framework.</p>
<p>Data source objects are normally automatically created and destroyed
by the framework when a tie is created, or removed. This management
can be explicitly bypassed through the usage of the &quot;dsource&quot; type.
The <i class="term"><a href="../../../../index.html#key361">data source</a></i> for this type is a
<i class="term">data source object</i> itself, and this object is outside of the
scope of the tie framework and not managed by it.
In other words, this type allows the creation of ties which talk to
pre-existing <i class="term">data source object</i>s, and these objects will
survive the removal of the ties using them as well.</p>
</div>
<div id="subsection4" class="subsection"><h3><a name="subsection4">REGISTERING A NEW DATA SOURCE CLASS</a></h3>
<p>After a <span class="sectref"><a href="#subsection5">data source class</a></span> has been written it is necessary
to register it as a new type with the framework.</p>
<dl class="definitions">
<dt><a name="6"><b class="cmd">::tie::register</b> <i class="arg">dsclasscmd</i> <b class="const">as</b> <i class="arg">dstype</i></a></dt>
<dd><p>Using this command causes the tie framework to remember the class
command <i class="arg">dsclasscmd</i> of a <span class="sectref"><a href="#subsection5">data source class</a></span> under the
type name <i class="arg">dstype</i>.</p>
<p>After the call the argument <i class="arg">dstype</i> of the basic user command
<b class="cmd">::tie::tie</b> will accept <i class="arg">dstype</i> as a type name and translate
it internally to the appropriate class command for the creation of
<span class="sectref"><a href="#subsection3">data source objects</a></span> for the new <i class="term"><a href="../../../../index.html#key361">data source</a></i>.</p></dd>
</dl>
</div>
<div id="subsection5" class="subsection"><h3><a name="subsection5">DATA SOURCE CLASS</a></h3>
<p>Each data source class is represented by a single command, also called
the <i class="term">class command</i>, or <i class="term">object creation command</i>. Its
syntax is</p>
<dl class="definitions">







|



|



|

|

|




|


|
|








|










|


|











|












|
















|


|
|







|

















|







277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
</dl>
</div>
<div id="subsection2" class="subsection"><h3><a name="subsection2">STANDARD DATA SOURCE TYPES</a></h3>
<p>This package provides the six following types as examples and standard
data sources.</p>
<dl class="definitions">
<dt><b class="const">log</b></dt>
<dd><p>This <i class="term"><a href="../../../../index.html#key363">data source</a></i> does not maintain any actual data, nor
persistence. It does not accept any identifying arguments. All changes
are simply logged to <b class="const">stdout</b>.</p></dd>
<dt><b class="const">array</b></dt>
<dd><p>This <i class="term"><a href="../../../../index.html#key363">data source</a></i> uses a regular Tcl array as the origin of
the persistent data. It accepts a single identifying argument, the
name of this Tcl array. All changes are mirrored to that array.</p></dd>
<dt><b class="const">remotearray</b></dt>
<dd><p>This <i class="term"><a href="../../../../index.html#key363">data source</a></i> is similar to <b class="const">array</b>. The difference
is that the Tcl array to which we are mirroring is not directly
accessible, but through a <b class="cmd"><a href="../../../../index.html#key351">send</a></b>-like command.</p>
<p>It accepts three identifying arguments, the name of the other Tcl
array, the command prefix for the <b class="cmd"><a href="../../../../index.html#key351">send</a></b>-like accessor command,
and an identifier for the remote entity hosting the array, in this
order. All changes are mirrored to that array, via the command
prefix. All commands will be executed in the context of the global
namespace.</p>
<p><b class="cmd"><a href="../../../../index.html#key351">send</a></b>-like means that the command prefix has to have <b class="cmd"><a href="../../../../index.html#key351">send</a></b>
syntax and semantics. I.e. it is a channel over which we can send
arbitrary commands to some other entity.
The remote array <i class="term"><a href="../../../../index.html#key363">data source</a></i> however uses only the commands
<b class="cmd"><a href="../../../../index.html#key299">set</a></b>, <b class="cmd">unset</b>, <b class="cmd">array exists</b>, <b class="cmd">array names</b>, <b class="cmd">array set</b>, and
<b class="cmd">array get</b> to retrieve and set values in the remote array.</p>
<p>The command prefix and the entity id are separate to allow the data
source to use options like <b class="option">-async</b> when assembling the actual
commands.</p>
<p>Examples of command prefixes, listed with the id of the remote entity,
without options. In reality only the part before the id is the command
prefix:</p>
<dl class="definitions">
<dt><b class="cmd"><a href="../../../../index.html#key351">send</a></b> <i class="arg">tkname</i></dt>
<dd><p>The Tcl array is in a remote interpreter and is accessed via Tk's X
communication.</p></dd>
<dt><b class="cmd">comm::comm send</b> <i class="arg">hostportid</i></dt>
<dd><p>The Tcl array is in a remote interpreter and is accessed through a
socket.</p></dd>
<dt><b class="cmd">thread::send</b> <i class="arg">threadid</i></dt>
<dd><p>The Tcl array is in a remote interpreter in a different thread of this
process.</p></dd>
</dl></dd>
<dt><b class="const">file</b></dt>
<dd><p>This <i class="term"><a href="../../../../index.html#key363">data source</a></i> uses a single file as origin of the
persistent data. It accepts a single identifying argument, the path to
this file. The file has to be both readable and writable. It may not
exist, the <i class="term"><a href="../../../../index.html#key363">data source</a></i> will create it in that case. This (and
only this) situation will require that the directory for the file
exists and is writable as well.</p>
<p>All changes are saved in the file, as proper Tcl commands, one command
per operation. In other words, the file will always contain a proper
Tcl script.</p>
<p>If the file exists when the tie using it is set up, then it will be
compacted, i.e. superfluous operations are removed, if the operations
log stored in it contains either at least one operation clearing the
whole array, or at least 1.5 times more operations than entries in the
loaded array.</p></dd>
<dt><b class="const">growfile</b></dt>
<dd><p>This <i class="term"><a href="../../../../index.html#key363">data source</a></i> is like <b class="const">file</b> in terms of the storage
medium for the array data, and how it is configured. In constrast to
the former it however assumes and ensures that the tied array will
never shrink. I.e. the creation of new array entries, and the
modification of existing entries is allowed, but the deletion of
entries is not, and causes the data source to throw errors.</p>
<p>This restriction allows us to simplify both file format and access to
the file radically. For one, the file is read only once and the
internal cache cannot be invalidated. Second, writing data is reduced
to a simple append, and no compaction step is necessary. The format of
the contents is the string representation of a dictionary which can be
incrementally extended forever at the end.</p></dd>
<dt><b class="const">dsource</b></dt>
<dd><p>This <i class="term"><a href="../../../../index.html#key363">data source</a></i> uses an explicitly specified
<i class="term">data source object</i> as the source for the persistent
data. It accepts a single identifying argument, the command prefix,
i.e. object command.</p>
<p>To use this type it is necessary to know how the framework manages
ties and what <span class="sectref"><a href="#subsection3">data source objects</a></span> are.</p>
<p>All changes are delegated to the specified object.</p></dd>
</dl>
</div>
</div>
<div id="section3" class="section"><h2><a name="section3">CREATING NEW DATA SOURCES</a></h2>
<p>This section is of no interest to the casual user of ties. Only
developers wishing to create new data sources have to know the
information provided herein.</p>
<div id="subsection3" class="subsection"><h3><a name="subsection3">DATA SOURCE OBJECTS</a></h3>
<p>All ties are represented internally by an in-memory object which
mediates between the tie framework and the specific
<i class="term"><a href="../../../../index.html#key363">data source</a></i>, like an array, file, etc.
This is the <i class="term">data source object</i>.</p>
<p>Its class, the <span class="sectref"><a href="#subsection5">data source class</a></span> is <em>not</em> generic,
but specific to the type of the <i class="term"><a href="../../../../index.html#key363">data source</a></i>. Writing a new
<i class="term"><a href="../../../../index.html#key363">data source</a></i> requires us to write such a class, and then
registering it with the framework as a new type.</p>
<p>The following subsections describe the various APIs a
<span class="sectref"><a href="#subsection5">data source class</a></span> and the objects it generates will have
to follow to be compatible with the tie framework.</p>
<p>Data source objects are normally automatically created and destroyed
by the framework when a tie is created, or removed. This management
can be explicitly bypassed through the usage of the &quot;dsource&quot; type.
The <i class="term"><a href="../../../../index.html#key363">data source</a></i> for this type is a
<i class="term">data source object</i> itself, and this object is outside of the
scope of the tie framework and not managed by it.
In other words, this type allows the creation of ties which talk to
pre-existing <i class="term">data source object</i>s, and these objects will
survive the removal of the ties using them as well.</p>
</div>
<div id="subsection4" class="subsection"><h3><a name="subsection4">REGISTERING A NEW DATA SOURCE CLASS</a></h3>
<p>After a <span class="sectref"><a href="#subsection5">data source class</a></span> has been written it is necessary
to register it as a new type with the framework.</p>
<dl class="definitions">
<dt><a name="6"><b class="cmd">::tie::register</b> <i class="arg">dsclasscmd</i> <b class="const">as</b> <i class="arg">dstype</i></a></dt>
<dd><p>Using this command causes the tie framework to remember the class
command <i class="arg">dsclasscmd</i> of a <span class="sectref"><a href="#subsection5">data source class</a></span> under the
type name <i class="arg">dstype</i>.</p>
<p>After the call the argument <i class="arg">dstype</i> of the basic user command
<b class="cmd">::tie::tie</b> will accept <i class="arg">dstype</i> as a type name and translate
it internally to the appropriate class command for the creation of
<span class="sectref"><a href="#subsection3">data source objects</a></span> for the new <i class="term"><a href="../../../../index.html#key363">data source</a></i>.</p></dd>
</dl>
</div>
<div id="subsection5" class="subsection"><h3><a name="subsection5">DATA SOURCE CLASS</a></h3>
<p>Each data source class is represented by a single command, also called
the <i class="term">class command</i>, or <i class="term">object creation command</i>. Its
syntax is</p>
<dl class="definitions">
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
The interface this command has to follow is described in the section
<span class="sectref"><a href="#subsection6">DATA SOURCE OBJECT API</a></span></p></dd>
</dl>
</div>
<div id="subsection6" class="subsection"><h3><a name="subsection6">DATA SOURCE OBJECT API</a></h3>
<p>Please read the section <span class="sectref"><a href="#subsection5">DATA SOURCE CLASS</a></span> first, to know
how to generate new <i class="term">object commands</i>.</p>
<p>Each <i class="term">object command</i> for a <i class="term"><a href="../../../../index.html#key361">data source</a></i> object has to
provide at least the methods listed below for proper inter-operation
with the tie framework. Note that the names of most of the methods
match the subcommands of the builtin <b class="cmd"><a href="../../../../index.html#key37">array</a></b> command.</p>
<dl class="definitions">
<dt><a name="8"><b class="cmd">ds</b> <b class="method">destroy</b></a></dt>
<dd><p>This method is called when the object <b class="cmd">ds</b> is destroyed. It now
has to release all its internal resources associated with the external
data source.</p></dd>
<dt><a name="9"><b class="cmd">ds</b> <b class="method">names</b></a></dt>
<dd><p>This command has to return a list containing the names of all keys
found in the <i class="term"><a href="../../../../index.html#key361">data source</a></i> the object talks to. This is
equivalent to <b class="cmd">array names</b>.</p></dd>
<dt><a name="10"><b class="cmd">ds</b> <b class="method">size</b></a></dt>
<dd><p>This command has to return an integer number specifying the number of
keys found in the <i class="term"><a href="../../../../index.html#key361">data source</a></i> the object talks to. This is
equivalent to <b class="cmd">array size</b>.</p></dd>
<dt><a name="11"><b class="cmd">ds</b> <b class="method">get</b></a></dt>
<dd><p>This command has to return a dictionary containing the data found in
the <i class="term"><a href="../../../../index.html#key361">data source</a></i> the object talks to. This is equivalent to
<b class="cmd">array get</b>.</p></dd>
<dt><a name="12"><b class="cmd">ds</b> <b class="method">set</b> <i class="arg">dict</i></a></dt>
<dd><p>This command takes a dictionary and adds its contents to the data
source the object talks to. This is equivalent to <b class="cmd">array set</b>.</p></dd>
<dt><a name="13"><b class="cmd">ds</b> <b class="method">unset</b> <span class="opt">?<i class="arg">pattern</i>?</span></a></dt>
<dd><p>This command takes a pattern and removes all elements whose keys
matching it from the <i class="term"><a href="../../../../index.html#key361">data source</a></i>. If no pattern is specified
it defaults to <b class="const">*</b>, causing the removal of all elements. This
is nearly equivalent to <b class="cmd">array unset</b>.</p></dd>
<dt><a name="14"><b class="cmd">ds</b> <b class="method">setv</b> <i class="arg">index</i> <i class="arg">value</i></a></dt>
<dd><p>This command has to save the <i class="arg">value</i> in the <i class="term"><a href="../../../../index.html#key361">data source</a></i>
the object talks to, under the key <i class="arg">index</i>.</p>
<p>The result of the command is ignored. If an error is thrown then this
error will show up as error of the set operation which caused the
method call.</p></dd>
<dt><a name="15"><b class="cmd">ds</b> <b class="method">unsetv</b> <i class="arg">index</i></a></dt>
<dd><p>This command has to remove the value under the key <i class="arg">index</i> from
the <i class="term"><a href="../../../../index.html#key361">data source</a></i> the object talks to.</p>
<p>The result of the command is ignored. If an error is thrown then this
error will show up as error of the unset operation which caused the
method call.</p></dd>
<dt><a name="16"><b class="cmd">ds</b> <b class="method">getv</b> <i class="arg">index</i></a></dt>
<dd><p>This command has to return the value for the key <i class="arg">index</i> in the
<i class="term"><a href="../../../../index.html#key361">data source</a></i> the object talks to.</p></dd>
</dl>
<p>And here a small table comparing the <i class="term"><a href="../../../../index.html#key361">data source</a></i> methods to
the regular Tcl commands for accessing an array.</p>
<pre class="example">
        Regular Tcl             Data source
        -----------             -----------
        array names a           ds names
        array size  a           ds size
        array get   a           ds get







|










|



|



|






|



|






|





|

|







421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
The interface this command has to follow is described in the section
<span class="sectref"><a href="#subsection6">DATA SOURCE OBJECT API</a></span></p></dd>
</dl>
</div>
<div id="subsection6" class="subsection"><h3><a name="subsection6">DATA SOURCE OBJECT API</a></h3>
<p>Please read the section <span class="sectref"><a href="#subsection5">DATA SOURCE CLASS</a></span> first, to know
how to generate new <i class="term">object commands</i>.</p>
<p>Each <i class="term">object command</i> for a <i class="term"><a href="../../../../index.html#key363">data source</a></i> object has to
provide at least the methods listed below for proper inter-operation
with the tie framework. Note that the names of most of the methods
match the subcommands of the builtin <b class="cmd"><a href="../../../../index.html#key37">array</a></b> command.</p>
<dl class="definitions">
<dt><a name="8"><b class="cmd">ds</b> <b class="method">destroy</b></a></dt>
<dd><p>This method is called when the object <b class="cmd">ds</b> is destroyed. It now
has to release all its internal resources associated with the external
data source.</p></dd>
<dt><a name="9"><b class="cmd">ds</b> <b class="method">names</b></a></dt>
<dd><p>This command has to return a list containing the names of all keys
found in the <i class="term"><a href="../../../../index.html#key363">data source</a></i> the object talks to. This is
equivalent to <b class="cmd">array names</b>.</p></dd>
<dt><a name="10"><b class="cmd">ds</b> <b class="method">size</b></a></dt>
<dd><p>This command has to return an integer number specifying the number of
keys found in the <i class="term"><a href="../../../../index.html#key363">data source</a></i> the object talks to. This is
equivalent to <b class="cmd">array size</b>.</p></dd>
<dt><a name="11"><b class="cmd">ds</b> <b class="method">get</b></a></dt>
<dd><p>This command has to return a dictionary containing the data found in
the <i class="term"><a href="../../../../index.html#key363">data source</a></i> the object talks to. This is equivalent to
<b class="cmd">array get</b>.</p></dd>
<dt><a name="12"><b class="cmd">ds</b> <b class="method">set</b> <i class="arg">dict</i></a></dt>
<dd><p>This command takes a dictionary and adds its contents to the data
source the object talks to. This is equivalent to <b class="cmd">array set</b>.</p></dd>
<dt><a name="13"><b class="cmd">ds</b> <b class="method">unset</b> <span class="opt">?<i class="arg">pattern</i>?</span></a></dt>
<dd><p>This command takes a pattern and removes all elements whose keys
matching it from the <i class="term"><a href="../../../../index.html#key363">data source</a></i>. If no pattern is specified
it defaults to <b class="const">*</b>, causing the removal of all elements. This
is nearly equivalent to <b class="cmd">array unset</b>.</p></dd>
<dt><a name="14"><b class="cmd">ds</b> <b class="method">setv</b> <i class="arg">index</i> <i class="arg">value</i></a></dt>
<dd><p>This command has to save the <i class="arg">value</i> in the <i class="term"><a href="../../../../index.html#key363">data source</a></i>
the object talks to, under the key <i class="arg">index</i>.</p>
<p>The result of the command is ignored. If an error is thrown then this
error will show up as error of the set operation which caused the
method call.</p></dd>
<dt><a name="15"><b class="cmd">ds</b> <b class="method">unsetv</b> <i class="arg">index</i></a></dt>
<dd><p>This command has to remove the value under the key <i class="arg">index</i> from
the <i class="term"><a href="../../../../index.html#key363">data source</a></i> the object talks to.</p>
<p>The result of the command is ignored. If an error is thrown then this
error will show up as error of the unset operation which caused the
method call.</p></dd>
<dt><a name="16"><b class="cmd">ds</b> <b class="method">getv</b> <i class="arg">index</i></a></dt>
<dd><p>This command has to return the value for the key <i class="arg">index</i> in the
<i class="term"><a href="../../../../index.html#key363">data source</a></i> the object talks to.</p></dd>
</dl>
<p>And here a small table comparing the <i class="term"><a href="../../../../index.html#key363">data source</a></i> methods to
the regular Tcl commands for accessing an array.</p>
<pre class="example">
        Regular Tcl             Data source
        -----------             -----------
        array names a           ds names
        array size  a           ds size
        array get   a           ds get

Changes to embedded/www/tcllib/files/modules/transfer/connect.html.

149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides objects holding enough information to enable
them to either actively connect to a counterpart, or to passively wait
for a connection from said counterpart.
I.e. any object created by this packages is always in one of two
complementary modes, called <i class="term"><a href="../../../../index.html#key607">active</a></i> (the object initiates the
connection) and <i class="term"><a href="../../../../index.html#key608">passive</a></i> (the object receives the connection).</p>
<p>Of the two objects in a connecting pair one has to be configured for
<i class="term"><a href="../../../../index.html#key607">active</a></i> mode, and the other then has to be configured for
<i class="term"><a href="../../../../index.html#key608">passive</a></i> mode. This establishes which of the two partners
connects to whom (the <i class="term"><a href="../../../../index.html#key607">active</a></i> to the other), or, who is waiting
on whom (the <i class="term"><a href="../../../../index.html#key608">passive</a></i> on the other).
Note that this is completely independent of the direction of any data
transmission using the connection after it has been established.
An active object can, after establishing the connection, either
transmit or receive data. Equivalently the passive object can do the
same after the waiting for its partner has ended.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>







|
|

|
|
|
|







149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides objects holding enough information to enable
them to either actively connect to a counterpart, or to passively wait
for a connection from said counterpart.
I.e. any object created by this packages is always in one of two
complementary modes, called <i class="term"><a href="../../../../index.html#key610">active</a></i> (the object initiates the
connection) and <i class="term"><a href="../../../../index.html#key611">passive</a></i> (the object receives the connection).</p>
<p>Of the two objects in a connecting pair one has to be configured for
<i class="term"><a href="../../../../index.html#key610">active</a></i> mode, and the other then has to be configured for
<i class="term"><a href="../../../../index.html#key611">passive</a></i> mode. This establishes which of the two partners
connects to whom (the <i class="term"><a href="../../../../index.html#key610">active</a></i> to the other), or, who is waiting
on whom (the <i class="term"><a href="../../../../index.html#key611">passive</a></i> on the other).
Note that this is completely independent of the direction of any data
transmission using the connection after it has been established.
An active object can, after establishing the connection, either
transmit or receive data. Equivalently the passive object can do the
same after the waiting for its partner has ended.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
specifications.</p></dd>
</dl>
</div>
<div id="subsection3" class="subsection"><h3><a name="subsection3">Object methods</a></h3>
<dl class="definitions">
<dt><a name="3"><i class="arg">objectName</i> <b class="method">destroy</b></a></dt>
<dd><p>This method destroys the object.
This is safe to do for an <i class="term"><a href="../../../../index.html#key607">active</a></i> object when a connection has
been started, as the completion callback is synchronous.
For a <i class="term"><a href="../../../../index.html#key608">passive</a></i> object currently waiting for its partner to
establish the connection however this is not safe and will cause
errors later on, when the connection setup completes and tries to
access the now missing data structures of the destroyed object.</p></dd>
<dt><a name="4"><i class="arg">objectName</i> <b class="method">connect</b> <i class="arg">command</i></a></dt>
<dd><p>This method starts the connection setup per the configuration of the
object. When the connection is established the callback <i class="arg">command</i>
will be invoked with one additional argument, the channel handle of
the socket over which data can be transfered.</p>
<p>The detailed behaviour of the method depends on the configured
mode.</p>
<dl class="definitions">
<dt><i class="term"><a href="../../../../index.html#key607">active</a></i></dt>
<dd><p>The connection setup is done synchronously. The object waits until the
connection is established. The method returns the empty string as its
result.</p></dd>
<dt><i class="term"><a href="../../../../index.html#key608">passive</a></i></dt>
<dd><p>The connection setup is done asynchronously. The method returns
immediately after a listening socket has been set up. The connection
will be established in the background.
The method returns the port number of the listening socket, for use by
the caller. One important use is the transfer of this information to
the counterpart so that it knows where it has to connect to.</p>
<p>This is necessary as the object might have been configured for port







|

|











|



|







193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
specifications.</p></dd>
</dl>
</div>
<div id="subsection3" class="subsection"><h3><a name="subsection3">Object methods</a></h3>
<dl class="definitions">
<dt><a name="3"><i class="arg">objectName</i> <b class="method">destroy</b></a></dt>
<dd><p>This method destroys the object.
This is safe to do for an <i class="term"><a href="../../../../index.html#key610">active</a></i> object when a connection has
been started, as the completion callback is synchronous.
For a <i class="term"><a href="../../../../index.html#key611">passive</a></i> object currently waiting for its partner to
establish the connection however this is not safe and will cause
errors later on, when the connection setup completes and tries to
access the now missing data structures of the destroyed object.</p></dd>
<dt><a name="4"><i class="arg">objectName</i> <b class="method">connect</b> <i class="arg">command</i></a></dt>
<dd><p>This method starts the connection setup per the configuration of the
object. When the connection is established the callback <i class="arg">command</i>
will be invoked with one additional argument, the channel handle of
the socket over which data can be transfered.</p>
<p>The detailed behaviour of the method depends on the configured
mode.</p>
<dl class="definitions">
<dt><i class="term"><a href="../../../../index.html#key610">active</a></i></dt>
<dd><p>The connection setup is done synchronously. The object waits until the
connection is established. The method returns the empty string as its
result.</p></dd>
<dt><i class="term"><a href="../../../../index.html#key611">passive</a></i></dt>
<dd><p>The connection setup is done asynchronously. The method returns
immediately after a listening socket has been set up. The connection
will be established in the background.
The method returns the port number of the listening socket, for use by
the caller. One important use is the transfer of this information to
the counterpart so that it knows where it has to connect to.</p>
<p>This is necessary as the object might have been configured for port
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
<dd><p>In this mode the option <b class="option">-host</b> has no relevance and is ignored
should it be configured.
The only option the object needs is <b class="option">-port</b>, and it specifies
the TCP port on which the listening socket is opened to await the
connection from the partner.</p></dd>
</dl></dd>
<dt><b class="option">-host</b> <i class="arg">hostname-or-ipaddr</i></dt>
<dd><p>This option specifies the host to connect to in <i class="term"><a href="../../../../index.html#key607">active</a></i> mode,
either by name or ip-address. An object configured for <i class="term"><a href="../../../../index.html#key608">passive</a></i>
mode ignores this option.</p></dd>
<dt><b class="option">-port</b> <i class="arg">int</i></dt>
<dd><p>For <i class="term"><a href="../../../../index.html#key607">active</a></i> mode this option specifies the port the object is
expected to connect to. For <i class="term"><a href="../../../../index.html#key608">passive</a></i> mode however it is the port
where the object creates the listening socket waiting for a
connection. It defaults to <b class="const">0</b>, which allows the OS to choose
the actual port to listen on.</p></dd>
<dt><b class="option">-socketcmd</b> <i class="arg">command</i></dt>
<dd><p>This option allows the user to specify which command to use to open a
socket. The default is to use the builtin <b class="cmd">::socket</b>. Any
compatible with that command is allowed.</p>
<p>The envisioned main use is the specfication of <b class="cmd">tls::socket</b>. I.e.
this option allows the creation of secure transfer channels, without
making this package explicitly dependent on the <b class="package"><a href="../../../../index.html#key327">tls</a></b> package.</p>
<p>See also section <span class="sectref"><a href="#section3">Secure connections</a></span>.</p></dd>
<dt><b class="option">-encoding</b> encodingname</dt>
<dd></dd>
<dt><b class="option">-eofchar</b> eofspec</dt>
<dd></dd>
<dt><b class="option">-translation</b> transspec</dt>
<dd><p>These options are the same as are recognized by the builtin command
<b class="cmd">fconfigure</b>. They provide the configuration to be set for the
channel between the two partners after it has been established, but
before the callback is invoked (See method <b class="method">connect</b>).</p></dd>
</dl>
</div>
</div>
<div id="section3" class="section"><h2><a name="section3">Secure connections</a></h2>
<p>One way to secure connections made by objects of this package is to
require the package <b class="package"><a href="../../../../index.html#key327">tls</a></b> and then configure the option
<b class="option">-socketcmd</b> to force the use of command <b class="cmd">tls::socket</b> to
open the socket.</p>
<pre class="example">
    # Load and initialize tls
    package require tls
    tls::init -cafile /path/to/ca/cert -keyfile ...
    # Create a connector with secure socket setup,
    transfer::connect C -socketcmd tls::socket ...
    ...
</pre>
</div>
<div id="section4" class="section"><h2><a name="section4">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section5" class="section"><h2><a name="section5">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>transfer</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key607">active</a>, <a href="../../../../index.html#key63">channel</a>, <a href="../../../../index.html#key606">connection</a>, <a href="../../../../index.html#key608">passive</a>, <a href="../../../../index.html#key352">secure</a>, <a href="../../../../index.html#key355">ssl</a>, <a href="../../../../index.html#key327">tls</a>, <a href="../../../../index.html#key62">transfer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Transfer module</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|
|


|
|









|















|












|


|







|
|

















|








252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
<dd><p>In this mode the option <b class="option">-host</b> has no relevance and is ignored
should it be configured.
The only option the object needs is <b class="option">-port</b>, and it specifies
the TCP port on which the listening socket is opened to await the
connection from the partner.</p></dd>
</dl></dd>
<dt><b class="option">-host</b> <i class="arg">hostname-or-ipaddr</i></dt>
<dd><p>This option specifies the host to connect to in <i class="term"><a href="../../../../index.html#key610">active</a></i> mode,
either by name or ip-address. An object configured for <i class="term"><a href="../../../../index.html#key611">passive</a></i>
mode ignores this option.</p></dd>
<dt><b class="option">-port</b> <i class="arg">int</i></dt>
<dd><p>For <i class="term"><a href="../../../../index.html#key610">active</a></i> mode this option specifies the port the object is
expected to connect to. For <i class="term"><a href="../../../../index.html#key611">passive</a></i> mode however it is the port
where the object creates the listening socket waiting for a
connection. It defaults to <b class="const">0</b>, which allows the OS to choose
the actual port to listen on.</p></dd>
<dt><b class="option">-socketcmd</b> <i class="arg">command</i></dt>
<dd><p>This option allows the user to specify which command to use to open a
socket. The default is to use the builtin <b class="cmd">::socket</b>. Any
compatible with that command is allowed.</p>
<p>The envisioned main use is the specfication of <b class="cmd">tls::socket</b>. I.e.
this option allows the creation of secure transfer channels, without
making this package explicitly dependent on the <b class="package"><a href="../../../../index.html#key329">tls</a></b> package.</p>
<p>See also section <span class="sectref"><a href="#section3">Secure connections</a></span>.</p></dd>
<dt><b class="option">-encoding</b> encodingname</dt>
<dd></dd>
<dt><b class="option">-eofchar</b> eofspec</dt>
<dd></dd>
<dt><b class="option">-translation</b> transspec</dt>
<dd><p>These options are the same as are recognized by the builtin command
<b class="cmd">fconfigure</b>. They provide the configuration to be set for the
channel between the two partners after it has been established, but
before the callback is invoked (See method <b class="method">connect</b>).</p></dd>
</dl>
</div>
</div>
<div id="section3" class="section"><h2><a name="section3">Secure connections</a></h2>
<p>One way to secure connections made by objects of this package is to
require the package <b class="package"><a href="../../../../index.html#key329">tls</a></b> and then configure the option
<b class="option">-socketcmd</b> to force the use of command <b class="cmd">tls::socket</b> to
open the socket.</p>
<pre class="example">
    # Load and initialize tls
    package require tls
    tls::init -cafile /path/to/ca/cert -keyfile ...
    # Create a connector with secure socket setup,
    transfer::connect C -socketcmd tls::socket ...
    ...
</pre>
</div>
<div id="section4" class="section"><h2><a name="section4">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section5" class="section"><h2><a name="section5">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>transfer</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key610">active</a>, <a href="../../../../index.html#key63">channel</a>, <a href="../../../../index.html#key609">connection</a>, <a href="../../../../index.html#key611">passive</a>, <a href="../../../../index.html#key354">secure</a>, <a href="../../../../index.html#key357">ssl</a>, <a href="../../../../index.html#key329">tls</a>, <a href="../../../../index.html#key62">transfer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Transfer module</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/transfer/dsource.html.

274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
bugs and other problems.
Please report such in the category <em>transfer</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key63">channel</a>, <a href="../../../../index.html#key64">copy</a>, <a href="../../../../index.html#key361">data source</a>, <a href="../../../../index.html#key62">transfer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Transfer module</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
bugs and other problems.
Please report such in the category <em>transfer</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key63">channel</a>, <a href="../../../../index.html#key64">copy</a>, <a href="../../../../index.html#key363">data source</a>, <a href="../../../../index.html#key62">transfer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Transfer module</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/transfer/receiver.html.

194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
<em>Note</em> however that the signature of the command prefix specified
for the <b class="option">-command</b> callback differs from the signature for the
same option of the receiver object.
This callback is only given the number of bytes and transfered, and
possibly an error message. No reference to the internally used
receiver object is made.</p>
<p>The result returned by the command is the empty string
if it was set to make an <i class="term"><a href="../../../../index.html#key607">active</a></i> connection, and the port the
internal receiver object is listening on otherwise, i.e when it is
configured to connect <i class="term"><a href="../../../../index.html#key608">passive</a></i>ly.
See also the package <b class="package"><a href="connect.html">transfer::connect</a></b> and the description
of the method <b class="method">connect</b> for where this behaviour comes from.</p></dd>
<dt><a name="3"><b class="cmd">transfer::receiver</b> <b class="method">stream file</b> <i class="arg">path</i> <i class="arg">host</i> <i class="arg">port</i> <span class="opt">?<i class="arg">arg</i>...?</span></a></dt>
<dd><p>This method is like <b class="method">stream channel</b>, except that the
received data is written to the file <i class="arg">path</i>, replacing any prior
content.</p></dd>
</dl>







|

|







194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
<em>Note</em> however that the signature of the command prefix specified
for the <b class="option">-command</b> callback differs from the signature for the
same option of the receiver object.
This callback is only given the number of bytes and transfered, and
possibly an error message. No reference to the internally used
receiver object is made.</p>
<p>The result returned by the command is the empty string
if it was set to make an <i class="term"><a href="../../../../index.html#key610">active</a></i> connection, and the port the
internal receiver object is listening on otherwise, i.e when it is
configured to connect <i class="term"><a href="../../../../index.html#key611">passive</a></i>ly.
See also the package <b class="package"><a href="connect.html">transfer::connect</a></b> and the description
of the method <b class="method">connect</b> for where this behaviour comes from.</p></dd>
<dt><a name="3"><b class="cmd">transfer::receiver</b> <b class="method">stream file</b> <i class="arg">path</i> <i class="arg">host</i> <i class="arg">port</i> <span class="opt">?<i class="arg">arg</i>...?</span></a></dt>
<dd><p>This method is like <b class="method">stream channel</b>, except that the
received data is written to the file <i class="arg">path</i>, replacing any prior
content.</p></dd>
</dl>
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
The method will throw an error if a reception is already/still in
progress.
I.e. it is not possible to run two receptions in parallel, only in
sequence.
Errors will also be thrown if the configuration of the data
destination is invalid, or if no completion callback was specified.</p>
<p>The result returned by the method is the empty string
for an object configured to make an <i class="term"><a href="../../../../index.html#key607">active</a></i> connection, and the port the
 object is listening on otherwise, i.e when it is
configured to connect <i class="term"><a href="../../../../index.html#key608">passive</a></i>ly.
See also the package <b class="package"><a href="connect.html">transfer::connect</a></b> and the description
of the method <b class="method">connect</b> for where this behaviour comes from.</p></dd>
<dt><a name="7"><i class="arg">objectName</i> <b class="method">busy</b></a></dt>
<dd><p>This method returns a boolean value telling us whether a reception
is in progress (<b class="const">True</b>), or not (<b class="const">False</b>).</p></dd>
</dl>
</div>







|

|







234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
The method will throw an error if a reception is already/still in
progress.
I.e. it is not possible to run two receptions in parallel, only in
sequence.
Errors will also be thrown if the configuration of the data
destination is invalid, or if no completion callback was specified.</p>
<p>The result returned by the method is the empty string
for an object configured to make an <i class="term"><a href="../../../../index.html#key610">active</a></i> connection, and the port the
 object is listening on otherwise, i.e when it is
configured to connect <i class="term"><a href="../../../../index.html#key611">passive</a></i>ly.
See also the package <b class="package"><a href="connect.html">transfer::connect</a></b> and the description
of the method <b class="method">connect</b> for where this behaviour comes from.</p></dd>
<dt><a name="7"><i class="arg">objectName</i> <b class="method">busy</b></a></dt>
<dd><p>This method returns a boolean value telling us whether a reception
is in progress (<b class="const">True</b>), or not (<b class="const">False</b>).</p></dd>
</dl>
</div>
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
<dd><p>In this mode the option <b class="option">-host</b> has no relevance and is ignored
should it be configured.
The only option the object needs is <b class="option">-port</b>, and it specifies
the TCP port on which the listening socket is opened to await the
connection from the partner.</p></dd>
</dl></dd>
<dt><b class="option">-host</b> <i class="arg">hostname-or-ipaddr</i></dt>
<dd><p>This option specifies the host to connect to in <i class="term"><a href="../../../../index.html#key607">active</a></i> mode,
either by name or ip-address. An object configured for <i class="term"><a href="../../../../index.html#key608">passive</a></i>
mode ignores this option.</p></dd>
<dt><b class="option">-port</b> <i class="arg">int</i></dt>
<dd><p>For <i class="term"><a href="../../../../index.html#key607">active</a></i> mode this option specifies the port the object is
expected to connect to. For <i class="term"><a href="../../../../index.html#key608">passive</a></i> mode however it is the port
where the object creates the listening socket waiting for a
connection. It defaults to <b class="const">0</b>, which allows the OS to choose
the actual port to listen on.</p></dd>
<dt><b class="option">-socketcmd</b> <i class="arg">command</i></dt>
<dd><p>This option allows the user to specify which command to use to open a
socket. The default is to use the builtin <b class="cmd">::socket</b>. Any
compatible with that command is allowed.</p>
<p>The envisioned main use is the specfication of <b class="cmd">tls::socket</b>. I.e.
this option allows the creation of secure transfer channels, without
making this package explicitly dependent on the <b class="package"><a href="../../../../index.html#key327">tls</a></b> package.</p>
<p>See also section <span class="sectref"><a href="#section3">Secure connections</a></span>.</p></dd>
<dt><b class="option">-encoding</b> encodingname</dt>
<dd></dd>
<dt><b class="option">-eofchar</b> eofspec</dt>
<dd></dd>
<dt><b class="option">-translation</b> transspec</dt>
<dd><p>These options are the same as are recognized by the builtin command







|
|


|
|









|







273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
<dd><p>In this mode the option <b class="option">-host</b> has no relevance and is ignored
should it be configured.
The only option the object needs is <b class="option">-port</b>, and it specifies
the TCP port on which the listening socket is opened to await the
connection from the partner.</p></dd>
</dl></dd>
<dt><b class="option">-host</b> <i class="arg">hostname-or-ipaddr</i></dt>
<dd><p>This option specifies the host to connect to in <i class="term"><a href="../../../../index.html#key610">active</a></i> mode,
either by name or ip-address. An object configured for <i class="term"><a href="../../../../index.html#key611">passive</a></i>
mode ignores this option.</p></dd>
<dt><b class="option">-port</b> <i class="arg">int</i></dt>
<dd><p>For <i class="term"><a href="../../../../index.html#key610">active</a></i> mode this option specifies the port the object is
expected to connect to. For <i class="term"><a href="../../../../index.html#key611">passive</a></i> mode however it is the port
where the object creates the listening socket waiting for a
connection. It defaults to <b class="const">0</b>, which allows the OS to choose
the actual port to listen on.</p></dd>
<dt><b class="option">-socketcmd</b> <i class="arg">command</i></dt>
<dd><p>This option allows the user to specify which command to use to open a
socket. The default is to use the builtin <b class="cmd">::socket</b>. Any
compatible with that command is allowed.</p>
<p>The envisioned main use is the specfication of <b class="cmd">tls::socket</b>. I.e.
this option allows the creation of secure transfer channels, without
making this package explicitly dependent on the <b class="package"><a href="../../../../index.html#key329">tls</a></b> package.</p>
<p>See also section <span class="sectref"><a href="#section3">Secure connections</a></span>.</p></dd>
<dt><b class="option">-encoding</b> encodingname</dt>
<dd></dd>
<dt><b class="option">-eofchar</b> eofspec</dt>
<dd></dd>
<dt><b class="option">-translation</b> transspec</dt>
<dd><p>These options are the same as are recognized by the builtin command
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
the reception of the data. The callback is always invoked with one
additional argument, the number of bytes received so far.</p></dd>
</dl>
</div>
</div>
<div id="section3" class="section"><h2><a name="section3">Secure connections</a></h2>
<p>One way to secure connections made by objects of this package is to
require the package <b class="package"><a href="../../../../index.html#key327">tls</a></b> and then configure the option
<b class="option">-socketcmd</b> to force the use of command <b class="cmd">tls::socket</b> to
open the socket.</p>
<pre class="example">
    # Load and initialize tls
    package require tls
    tls::init -cafile /path/to/ca/cert -keyfile ...
    # Create a connector with secure socket setup,
    transfer::receiver R -socketcmd tls::socket ...
    ...
</pre>
</div>
<div id="section4" class="section"><h2><a name="section4">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section5" class="section"><h2><a name="section5">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>transfer</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key63">channel</a>, <a href="../../../../index.html#key64">copy</a>, <a href="../../../../index.html#key61">data destination</a>, <a href="../../../../index.html#key93">receiver</a>, <a href="../../../../index.html#key352">secure</a>, <a href="../../../../index.html#key355">ssl</a>, <a href="../../../../index.html#key327">tls</a>, <a href="../../../../index.html#key62">transfer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Transfer module</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|












|


|







|
|

















|








322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
the reception of the data. The callback is always invoked with one
additional argument, the number of bytes received so far.</p></dd>
</dl>
</div>
</div>
<div id="section3" class="section"><h2><a name="section3">Secure connections</a></h2>
<p>One way to secure connections made by objects of this package is to
require the package <b class="package"><a href="../../../../index.html#key329">tls</a></b> and then configure the option
<b class="option">-socketcmd</b> to force the use of command <b class="cmd">tls::socket</b> to
open the socket.</p>
<pre class="example">
    # Load and initialize tls
    package require tls
    tls::init -cafile /path/to/ca/cert -keyfile ...
    # Create a connector with secure socket setup,
    transfer::receiver R -socketcmd tls::socket ...
    ...
</pre>
</div>
<div id="section4" class="section"><h2><a name="section4">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section5" class="section"><h2><a name="section5">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>transfer</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key63">channel</a>, <a href="../../../../index.html#key64">copy</a>, <a href="../../../../index.html#key61">data destination</a>, <a href="../../../../index.html#key93">receiver</a>, <a href="../../../../index.html#key354">secure</a>, <a href="../../../../index.html#key357">ssl</a>, <a href="../../../../index.html#key329">tls</a>, <a href="../../../../index.html#key62">transfer</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Transfer module</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/transfer/tqueue.html.

222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
<dd><p>This method destroys the object. Doing so while the object is busy
will cause errors later on, when the currently executed request
completes and tries to access the now missing data structures of the
destroyed object.</p></dd>
<dt><a name="4"><i class="arg">objectName</i> <b class="method">busy</b></a></dt>
<dd><p>This method returns a boolean value telling us if the object is
currently serving a request (i.e. <i class="term">busy</i>, value <b class="const">True</b>), or
not (i.e. <i class="term"><a href="../../../../index.html#key535">idle</a></i>, value <b class="const">False</b>).</p></dd>
<dt><a name="5"><i class="arg">objectName</i> <b class="method">pending</b></a></dt>
<dd><p>This method returns the number of requests currently waiting in the
queue for their execution. A request currently served is not counted
as waiting.</p></dd>
<dt><a name="6"><i class="arg">objectName</i> <b class="method">put</b> <i class="arg">request</i></a></dt>
<dd><p>This method enters the transfer <i class="arg">request</i> into the object's queue
of waiting requests.
If the object is <i class="term"><a href="../../../../index.html#key535">idle</a></i> it will become <i class="term">busy</i>, immediately
servicing the request. Otherwise servicing the new request will be
defered until all preceding requests have been served.</p></dd>
</dl>
</div>
</div>
<div id="section3" class="section"><h2><a name="section3">Options</a></h2>
<p>The only option known is <b class="option">-on-status-change</b>. It is optional







|







|







222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
<dd><p>This method destroys the object. Doing so while the object is busy
will cause errors later on, when the currently executed request
completes and tries to access the now missing data structures of the
destroyed object.</p></dd>
<dt><a name="4"><i class="arg">objectName</i> <b class="method">busy</b></a></dt>
<dd><p>This method returns a boolean value telling us if the object is
currently serving a request (i.e. <i class="term">busy</i>, value <b class="const">True</b>), or
not (i.e. <i class="term"><a href="../../../../index.html#key538">idle</a></i>, value <b class="const">False</b>).</p></dd>
<dt><a name="5"><i class="arg">objectName</i> <b class="method">pending</b></a></dt>
<dd><p>This method returns the number of requests currently waiting in the
queue for their execution. A request currently served is not counted
as waiting.</p></dd>
<dt><a name="6"><i class="arg">objectName</i> <b class="method">put</b> <i class="arg">request</i></a></dt>
<dd><p>This method enters the transfer <i class="arg">request</i> into the object's queue
of waiting requests.
If the object is <i class="term"><a href="../../../../index.html#key538">idle</a></i> it will become <i class="term">busy</i>, immediately
servicing the request. Otherwise servicing the new request will be
defered until all preceding requests have been served.</p></dd>
</dl>
</div>
</div>
<div id="section3" class="section"><h2><a name="section3">Options</a></h2>
<p>The only option known is <b class="option">-on-status-change</b>. It is optional

Changes to embedded/www/tcllib/files/modules/transfer/transmitter.html.

192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
<em>Note</em> however that the signature of the command prefix specified
for the <b class="option">-command</b> callback differs from the signature for the
same option of the transmitter object.
This callback is only given the number of bytes and transfered, and
possibly an error message. No reference to the internally used
transmitter object is made.</p>
<p>The result returned by the command is the empty string
if it was set to make an <i class="term"><a href="../../../../index.html#key607">active</a></i> connection, and the port the
internal transmitter object is listening on otherwise, i.e when it is
configured to connect <i class="term"><a href="../../../../index.html#key608">passive</a></i>ly.
See also the package <b class="package"><a href="connect.html">transfer::connect</a></b> and the description
of the method <b class="method">connect</b> for where this behaviour comes from.</p></dd>
<dt><a name="3"><b class="cmd">transfer::transmitter</b> <b class="method">stream file</b> <i class="arg">path</i> <i class="arg">host</i> <i class="arg">port</i> <span class="opt">?<i class="arg">arg</i>...?</span></a></dt>
<dd><p>This method is like <b class="method">stream channel</b>, except that the data
contained in the file <i class="arg">path</i> is transfered.</p></dd>
</dl>
</div>







|

|







192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
<em>Note</em> however that the signature of the command prefix specified
for the <b class="option">-command</b> callback differs from the signature for the
same option of the transmitter object.
This callback is only given the number of bytes and transfered, and
possibly an error message. No reference to the internally used
transmitter object is made.</p>
<p>The result returned by the command is the empty string
if it was set to make an <i class="term"><a href="../../../../index.html#key610">active</a></i> connection, and the port the
internal transmitter object is listening on otherwise, i.e when it is
configured to connect <i class="term"><a href="../../../../index.html#key611">passive</a></i>ly.
See also the package <b class="package"><a href="connect.html">transfer::connect</a></b> and the description
of the method <b class="method">connect</b> for where this behaviour comes from.</p></dd>
<dt><a name="3"><b class="cmd">transfer::transmitter</b> <b class="method">stream file</b> <i class="arg">path</i> <i class="arg">host</i> <i class="arg">port</i> <span class="opt">?<i class="arg">arg</i>...?</span></a></dt>
<dd><p>This method is like <b class="method">stream channel</b>, except that the data
contained in the file <i class="arg">path</i> is transfered.</p></dd>
</dl>
</div>
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
progress.
I.e. it is not possible to run two transmissions in parallel on a
single object, only in sequence. Multiple transmitter objects are
needed to manage parallel transfers, one per transmission.
Errors will also be thrown if the configuration of the data source is
invalid, or if no completion callback was specified.</p>
<p>The result returned by the method is the empty string
for an object configured to make an <i class="term"><a href="../../../../index.html#key607">active</a></i> connection, and the port the
 object is listening on otherwise, i.e when it is
configured to connect <i class="term"><a href="../../../../index.html#key608">passive</a></i>ly.
See also the package <b class="package"><a href="connect.html">transfer::connect</a></b> and the description
of the method <b class="method">connect</b> for where this behaviour comes from.</p></dd>
<dt><a name="7"><i class="arg">objectName</i> <b class="method">busy</b></a></dt>
<dd><p>This method returns a boolean value telling us whether a transmission
is in progress (<b class="const">True</b>), or not (<b class="const">False</b>).</p></dd>
</dl>
</div>







|

|







231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
progress.
I.e. it is not possible to run two transmissions in parallel on a
single object, only in sequence. Multiple transmitter objects are
needed to manage parallel transfers, one per transmission.
Errors will also be thrown if the configuration of the data source is
invalid, or if no completion callback was specified.</p>
<p>The result returned by the method is the empty string
for an object configured to make an <i class="term"><a href="../../../../index.html#key610">active</a></i> connection, and the port the
 object is listening on otherwise, i.e when it is
configured to connect <i class="term"><a href="../../../../index.html#key611">passive</a></i>ly.
See also the package <b class="package"><a href="connect.html">transfer::connect</a></b> and the description
of the method <b class="method">connect</b> for where this behaviour comes from.</p></dd>
<dt><a name="7"><i class="arg">objectName</i> <b class="method">busy</b></a></dt>
<dd><p>This method returns a boolean value telling us whether a transmission
is in progress (<b class="const">True</b>), or not (<b class="const">False</b>).</p></dd>
</dl>
</div>
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
<dd><p>In this mode the option <b class="option">-host</b> has no relevance and is ignored
should it be configured.
The only option the object needs is <b class="option">-port</b>, and it specifies
the TCP port on which the listening socket is opened to await the
connection from the partner.</p></dd>
</dl></dd>
<dt><b class="option">-host</b> <i class="arg">hostname-or-ipaddr</i></dt>
<dd><p>This option specifies the host to connect to in <i class="term"><a href="../../../../index.html#key607">active</a></i> mode,
either by name or ip-address. An object configured for <i class="term"><a href="../../../../index.html#key608">passive</a></i>
mode ignores this option.</p></dd>
<dt><b class="option">-port</b> <i class="arg">int</i></dt>
<dd><p>For <i class="term"><a href="../../../../index.html#key607">active</a></i> mode this option specifies the port the object is
expected to connect to. For <i class="term"><a href="../../../../index.html#key608">passive</a></i> mode however it is the port
where the object creates the listening socket waiting for a
connection. It defaults to <b class="const">0</b>, which allows the OS to choose
the actual port to listen on.</p></dd>
<dt><b class="option">-socketcmd</b> <i class="arg">command</i></dt>
<dd><p>This option allows the user to specify which command to use to open a
socket. The default is to use the builtin <b class="cmd">::socket</b>. Any
compatible with that command is allowed.</p>
<p>The envisioned main use is the specfication of <b class="cmd">tls::socket</b>. I.e.
this option allows the creation of secure transfer channels, without
making this package explicitly dependent on the <b class="package"><a href="../../../../index.html#key327">tls</a></b> package.</p>
<p>See also section <span class="sectref"><a href="#section3">Secure connections</a></span>.</p></dd>
<dt><b class="option">-encoding</b> encodingname</dt>
<dd></dd>
<dt><b class="option">-eofchar</b> eofspec</dt>
<dd></dd>
<dt><b class="option">-translation</b> transspec</dt>
<dd><p>These options are the same as are recognized by the builtin command







|
|


|
|









|







272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
<dd><p>In this mode the option <b class="option">-host</b> has no relevance and is ignored
should it be configured.
The only option the object needs is <b class="option">-port</b>, and it specifies
the TCP port on which the listening socket is opened to await the
connection from the partner.</p></dd>
</dl></dd>
<dt><b class="option">-host</b> <i class="arg">hostname-or-ipaddr</i></dt>
<dd><p>This option specifies the host to connect to in <i class="term"><a href="../../../../index.html#key610">active</a></i> mode,
either by name or ip-address. An object configured for <i class="term"><a href="../../../../index.html#key611">passive</a></i>
mode ignores this option.</p></dd>
<dt><b class="option">-port</b> <i class="arg">int</i></dt>
<dd><p>For <i class="term"><a href="../../../../index.html#key610">active</a></i> mode this option specifies the port the object is
expected to connect to. For <i class="term"><a href="../../../../index.html#key611">passive</a></i> mode however it is the port
where the object creates the listening socket waiting for a
connection. It defaults to <b class="const">0</b>, which allows the OS to choose
the actual port to listen on.</p></dd>
<dt><b class="option">-socketcmd</b> <i class="arg">command</i></dt>
<dd><p>This option allows the user to specify which command to use to open a
socket. The default is to use the builtin <b class="cmd">::socket</b>. Any
compatible with that command is allowed.</p>
<p>The envisioned main use is the specfication of <b class="cmd">tls::socket</b>. I.e.
this option allows the creation of secure transfer channels, without
making this package explicitly dependent on the <b class="package"><a href="../../../../index.html#key329">tls</a></b> package.</p>
<p>See also section <span class="sectref"><a href="#section3">Secure connections</a></span>.</p></dd>
<dt><b class="option">-encoding</b> encodingname</dt>
<dd></dd>
<dt><b class="option">-eofchar</b> eofspec</dt>
<dd></dd>
<dt><b class="option">-translation</b> transspec</dt>
<dd><p>These options are the same as are recognized by the builtin command
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
of the transmission of the data. The callback is always invoked with
one additional argument, the number of bytes transmitted so far.</p></dd>
</dl>
</div>
</div>
<div id="section3" class="section"><h2><a name="section3">Secure connections</a></h2>
<p>One way to secure connections made by objects of this package is to
require the package <b class="package"><a href="../../../../index.html#key327">tls</a></b> and then configure the option
<b class="option">-socketcmd</b> to force the use of command <b class="cmd">tls::socket</b> to
open the socket.</p>
<pre class="example">
    # Load and initialize tls
    package require tls
    tls::init -cafile /path/to/ca/cert -keyfile ...
    # Create a connector with secure socket setup,
    transfer::transmitter T -socketcmd tls::socket ...
    ...
</pre>
</div>
<div id="section4" class="section"><h2><a name="section4">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section5" class="section"><h2><a name="section5">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>transfer</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key63">channel</a>, <a href="../../../../index.html#key64">copy</a>, <a href="../../../../index.html#key361">data source</a>, <a href="../../../../index.html#key352">secure</a>, <a href="../../../../index.html#key355">ssl</a>, <a href="../../../../index.html#key327">tls</a>, <a href="../../../../index.html#key62">transfer</a>, <a href="../../../../index.html#key710">transmitter</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Transfer module</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|












|


|







|
|

















|








327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
of the transmission of the data. The callback is always invoked with
one additional argument, the number of bytes transmitted so far.</p></dd>
</dl>
</div>
</div>
<div id="section3" class="section"><h2><a name="section3">Secure connections</a></h2>
<p>One way to secure connections made by objects of this package is to
require the package <b class="package"><a href="../../../../index.html#key329">tls</a></b> and then configure the option
<b class="option">-socketcmd</b> to force the use of command <b class="cmd">tls::socket</b> to
open the socket.</p>
<pre class="example">
    # Load and initialize tls
    package require tls
    tls::init -cafile /path/to/ca/cert -keyfile ...
    # Create a connector with secure socket setup,
    transfer::transmitter T -socketcmd tls::socket ...
    ...
</pre>
</div>
<div id="section4" class="section"><h2><a name="section4">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section5" class="section"><h2><a name="section5">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>transfer</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key63">channel</a>, <a href="../../../../index.html#key64">copy</a>, <a href="../../../../index.html#key363">data source</a>, <a href="../../../../index.html#key354">secure</a>, <a href="../../../../index.html#key357">ssl</a>, <a href="../../../../index.html#key329">tls</a>, <a href="../../../../index.html#key62">transfer</a>, <a href="../../../../index.html#key714">transmitter</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Transfer module</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2006-2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/treeql/treeql.html.

295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
<p>The main concept which has to be understood is that of the
<i class="term">node set</i>.
Each query object maintains exactly one such <i class="term">node set</i>, and
essentially all operators use it and input argument and for their
result.
This structure simply contains the handles of all nodes which are
currently of interest to the query object.
To name it a <i class="term"><a href="../../../../index.html#key297">set</a></i> is a bit of a misnomer, because</p>
<ol class="enumerated">
<li><p>A node (handle) can occur in the structure more than once, and</p></li>
<li><p>the order of nodes in the structure is important as well.
Whenever an operator processes all nodes in the node set it will do so
in the order they occur in the structure.</p></li>
</ol>
<p>Regarding the possible multiple occurrence of a node, consider a node







|







295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
<p>The main concept which has to be understood is that of the
<i class="term">node set</i>.
Each query object maintains exactly one such <i class="term">node set</i>, and
essentially all operators use it and input argument and for their
result.
This structure simply contains the handles of all nodes which are
currently of interest to the query object.
To name it a <i class="term"><a href="../../../../index.html#key299">set</a></i> is a bit of a misnomer, because</p>
<ol class="enumerated">
<li><p>A node (handle) can occur in the structure more than once, and</p></li>
<li><p>the order of nodes in the structure is important as well.
Whenever an operator processes all nodes in the node set it will do so
in the order they occur in the structure.</p></li>
</ol>
<p>Regarding the possible multiple occurrence of a node, consider a node
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
<dt><b class="method">string</b> <i class="arg">op</i> <i class="arg">attr</i></dt>
<dd><p>Applies the string operator <i class="arg">op</i> to the attribute named
<i class="arg">attr</i>, for all nodes <b class="variable">N</b> in the node set, collects the
results of that application and places them into the node set.</p>
<p>The operator will fail if a node does not have an attribute named
<i class="arg">attr</i>.</p>
<p>The argument <i class="arg">op</i> is interpreted as partial argument list for the
builtin command <b class="cmd"><a href="../../../../index.html#key276">string</a></b>.  Its first word has to be any of the
sub-commands understood by <b class="cmd"><a href="../../../../index.html#key276">string</a></b>.  This has to be followed by
all arguments required for the subcommand, except the last.  that last
argument is supplied by the attribute value.</p></dd>
<dt><b class="method">get</b> <i class="arg">pattern</i></dt>
<dd><p>For all nodes <b class="variable">N</b> in the node set it determines all their
attributes with names matching the glob <i class="arg">pattern</i>, then the values
of these attributes, at last it replaces the node set with the list of
these attribute values.</p></dd>







|
|







497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
<dt><b class="method">string</b> <i class="arg">op</i> <i class="arg">attr</i></dt>
<dd><p>Applies the string operator <i class="arg">op</i> to the attribute named
<i class="arg">attr</i>, for all nodes <b class="variable">N</b> in the node set, collects the
results of that application and places them into the node set.</p>
<p>The operator will fail if a node does not have an attribute named
<i class="arg">attr</i>.</p>
<p>The argument <i class="arg">op</i> is interpreted as partial argument list for the
builtin command <b class="cmd"><a href="../../../../index.html#key278">string</a></b>.  Its first word has to be any of the
sub-commands understood by <b class="cmd"><a href="../../../../index.html#key278">string</a></b>.  This has to be followed by
all arguments required for the subcommand, except the last.  that last
argument is supplied by the attribute value.</p></dd>
<dt><b class="method">get</b> <i class="arg">pattern</i></dt>
<dd><p>For all nodes <b class="variable">N</b> in the node set it determines all their
attributes with names matching the glob <i class="arg">pattern</i>, then the values
of these attributes, at last it replaces the node set with the list of
these attribute values.</p></dd>
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
bugs and other problems.
Please report such in the category <em>treeql</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key810">Cost</a>, <a href="../../../../index.html#key807">DOM</a>, <a href="../../../../index.html#key809">TreeQL</a>, <a href="../../../../index.html#key808">XPath</a>, <a href="../../../../index.html#key812">XSLT</a>, <a href="../../../../index.html#key813">structured queries</a>, <a href="../../../../index.html#key296">tree</a>, <a href="../../../../index.html#key811">tree query language</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Colin McCormack &lt;[email protected]&gt;<br>
Copyright &copy; 2004 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|









641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
bugs and other problems.
Please report such in the category <em>treeql</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key814">Cost</a>, <a href="../../../../index.html#key811">DOM</a>, <a href="../../../../index.html#key813">TreeQL</a>, <a href="../../../../index.html#key812">XPath</a>, <a href="../../../../index.html#key816">XSLT</a>, <a href="../../../../index.html#key817">structured queries</a>, <a href="../../../../index.html#key298">tree</a>, <a href="../../../../index.html#key815">tree query language</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Data structures</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2004 Colin McCormack &lt;[email protected]&gt;<br>
Copyright &copy; 2004 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/uev/uevent.html.

129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">uevent <span class="opt">?0.3.1?</span></b></li>
<li>package require <b class="pkgname">logger</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::uevent::bind</b> <i class="arg">tag</i> <i class="arg">event</i> <i class="arg">command</i></a></li>
<li><a href="#2"><b class="cmd"><a href="../../../../index.html#key271">command</a></b> <i class="arg">tag</i> <i class="arg">event</i> <i class="arg">details</i></a></li>
<li><a href="#3"><b class="cmd">::uevent::unbind</b> <i class="arg">token</i></a></li>
<li><a href="#4"><b class="cmd">::uevent::generate</b> <i class="arg">tag</i> <i class="arg">event</i> <span class="opt">?<i class="arg">details</i>?</span></a></li>
<li><a href="#5"><b class="cmd">::uevent::list</b></a></li>
<li><a href="#6"><b class="cmd">::uevent::list</b> <i class="arg">tag</i></a></li>
<li><a href="#7"><b class="cmd">::uevent::list</b> <i class="arg">tag</i> <i class="arg">event</i></a></li>
<li><a href="#8"><b class="cmd">::uevent::watch::tag::add</b> <i class="arg">pattern</i> <i class="arg">command</i></a></li>
<li><a href="#9"><b class="cmd">{*}command</b> <b class="const">bound</b> <i class="arg">tag</i></a></li>







|







129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<ul class="requirements">
<li>package require <b class="pkgname">Tcl 8.4</b></li>
<li>package require <b class="pkgname">uevent <span class="opt">?0.3.1?</span></b></li>
<li>package require <b class="pkgname">logger</b></li>
</ul>
<ul class="syntax">
<li><a href="#1"><b class="cmd">::uevent::bind</b> <i class="arg">tag</i> <i class="arg">event</i> <i class="arg">command</i></a></li>
<li><a href="#2"><b class="cmd"><a href="../../../../index.html#key273">command</a></b> <i class="arg">tag</i> <i class="arg">event</i> <i class="arg">details</i></a></li>
<li><a href="#3"><b class="cmd">::uevent::unbind</b> <i class="arg">token</i></a></li>
<li><a href="#4"><b class="cmd">::uevent::generate</b> <i class="arg">tag</i> <i class="arg">event</i> <span class="opt">?<i class="arg">details</i>?</span></a></li>
<li><a href="#5"><b class="cmd">::uevent::list</b></a></li>
<li><a href="#6"><b class="cmd">::uevent::list</b> <i class="arg">tag</i></a></li>
<li><a href="#7"><b class="cmd">::uevent::list</b> <i class="arg">tag</i> <i class="arg">event</i></a></li>
<li><a href="#8"><b class="cmd">::uevent::watch::tag::add</b> <i class="arg">pattern</i> <i class="arg">command</i></a></li>
<li><a href="#9"><b class="cmd">{*}command</b> <b class="const">bound</b> <i class="arg">tag</i></a></li>
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<dd><p>Using this command registers the <i class="arg">command</i> prefix to be triggered
when the <i class="arg">event</i> occurs for the <i class="arg">tag</i>. The result of the
command is an opaque token representing the binding. Note that if the
same combination of &lt;<i class="arg">tag</i>,<i class="arg">event</i>,<i class="arg">command</i>&gt; is used
multiple times the same token is returned by every call.</p>
<p>The signature of the <i class="arg">command</i> prefix is</p>
<dl class="definitions">
<dt><a name="2"><b class="cmd"><a href="../../../../index.html#key271">command</a></b> <i class="arg">tag</i> <i class="arg">event</i> <i class="arg">details</i></a></dt>
<dd></dd>
</dl>
<p>where <i class="arg">details</i> contains the argument(s) of the event. Its
contents are event specific and have to be agreed upon between actual
event generator and consumer. This package simply transfers the
information and does not perform any processing beyond that.</p></dd>
<dt><a name="3"><b class="cmd">::uevent::unbind</b> <i class="arg">token</i></a></dt>







|







182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<dd><p>Using this command registers the <i class="arg">command</i> prefix to be triggered
when the <i class="arg">event</i> occurs for the <i class="arg">tag</i>. The result of the
command is an opaque token representing the binding. Note that if the
same combination of &lt;<i class="arg">tag</i>,<i class="arg">event</i>,<i class="arg">command</i>&gt; is used
multiple times the same token is returned by every call.</p>
<p>The signature of the <i class="arg">command</i> prefix is</p>
<dl class="definitions">
<dt><a name="2"><b class="cmd"><a href="../../../../index.html#key273">command</a></b> <i class="arg">tag</i> <i class="arg">event</i> <i class="arg">details</i></a></dt>
<dd></dd>
</dl>
<p>where <i class="arg">details</i> contains the argument(s) of the event. Its
contents are event specific and have to be agreed upon between actual
event generator and consumer. This package simply transfers the
information and does not perform any processing beyond that.</p></dd>
<dt><a name="3"><b class="cmd">::uevent::unbind</b> <i class="arg">token</i></a></dt>
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../hook/hook.html">hook(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key706">bind</a>, <a href="../../../../index.html#key536">event</a>, <a href="../../../../index.html#key705">generate event</a>, <a href="../../../../index.html#key673">hook</a>, <a href="../../../../index.html#key704">unbind</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2012 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../hook/hook.html">hook(n)</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key710">bind</a>, <a href="../../../../index.html#key539">event</a>, <a href="../../../../index.html#key709">generate event</a>, <a href="../../../../index.html#key677">hook</a>, <a href="../../../../index.html#key708">unbind</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2012 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/uev/uevent_onidle.html.

174
175
176
177
178
179
180
181
182
183
184
185
186
bugs and other problems.
Please report such in the category <em>uevent</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key534">callback</a>, <a href="../../../../index.html#key537">deferal</a>, <a href="../../../../index.html#key536">event</a>, <a href="../../../../index.html#key535">idle</a>, <a href="../../../../index.html#key533">merge</a>, <a href="../../../../index.html#key532">on-idle</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|





174
175
176
177
178
179
180
181
182
183
184
185
186
bugs and other problems.
Please report such in the category <em>uevent</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key537">callback</a>, <a href="../../../../index.html#key540">deferal</a>, <a href="../../../../index.html#key539">event</a>, <a href="../../../../index.html#key538">idle</a>, <a href="../../../../index.html#key536">merge</a>, <a href="../../../../index.html#key535">on-idle</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/units/units.html.

466
467
468
469
470
471
472
473
474
475
476
477
478
bugs and other problems.
Please report such in the category <em>units</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key576">angle</a>, <a href="../../../../index.html#key604">constants</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key474">distance</a>, <a href="../../../../index.html#key605">radians</a>, <a href="../../../../index.html#key603">unit</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2000-2005 Mayo Foundation</p>
</div>
</div></body></html>







|





466
467
468
469
470
471
472
473
474
475
476
477
478
bugs and other problems.
Please report such in the category <em>units</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key579">angle</a>, <a href="../../../../index.html#key607">constants</a>, <a href="../../../../index.html#key20">conversion</a>, <a href="../../../../index.html#key476">distance</a>, <a href="../../../../index.html#key608">radians</a>, <a href="../../../../index.html#key606">unit</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2000-2005 Mayo Foundation</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/uri/uri.html.

155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">uri::split</b> <i class="arg">url</i> <span class="opt">?<i class="arg">defaultscheme</i>?</span></a></dt>
<dd><p><b class="cmd">uri::split</b> takes an <i class="arg">url</i>, decodes it and then returns a
list of key/value pairs suitable for <b class="cmd">array set</b> containing the
constituents of the <i class="arg">url</i>. If the scheme is missing from the url
it defaults to the value of <i class="arg">defaultscheme</i> if it was specified,
or <i class="term"><a href="../../../../index.html#key441">http</a></i> else. Currently only the schemes <i class="term"><a href="../../../../index.html#key441">http</a></i>,
<i class="term"><a href="../../../../index.html#key290">ftp</a></i>, <i class="term"><a href="../../../../index.html#key528">mailto</a></i>, <i class="term"><a href="../../../../index.html#key571">urn</a></i>, <i class="term"><a href="../../../../index.html#key526">news</a></i>, <i class="term"><a href="../../../../index.html#key130">ldap</a></i> and
<i class="term"><a href="../../../../index.html#key31">file</a></i> are supported by the package itself.
See section <span class="sectref"><a href="#section4">EXTENDING</a></span> on how to expand that range.</p>
<p>The set of constituents of an url (= the set of keys in the returned
dictionary) is dependent on the scheme of the url. The only key which
is therefore always present is <b class="const">scheme</b>. For the following
schemes the constituents and their keys are known:</p>
<dl class="definitions">







|
|







155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">uri::split</b> <i class="arg">url</i> <span class="opt">?<i class="arg">defaultscheme</i>?</span></a></dt>
<dd><p><b class="cmd">uri::split</b> takes an <i class="arg">url</i>, decodes it and then returns a
list of key/value pairs suitable for <b class="cmd">array set</b> containing the
constituents of the <i class="arg">url</i>. If the scheme is missing from the url
it defaults to the value of <i class="arg">defaultscheme</i> if it was specified,
or <i class="term"><a href="../../../../index.html#key443">http</a></i> else. Currently only the schemes <i class="term"><a href="../../../../index.html#key443">http</a></i>,
<i class="term"><a href="../../../../index.html#key292">ftp</a></i>, <i class="term"><a href="../../../../index.html#key531">mailto</a></i>, <i class="term"><a href="../../../../index.html#key574">urn</a></i>, <i class="term"><a href="../../../../index.html#key529">news</a></i>, <i class="term"><a href="../../../../index.html#key130">ldap</a></i> and
<i class="term"><a href="../../../../index.html#key31">file</a></i> are supported by the package itself.
See section <span class="sectref"><a href="#section4">EXTENDING</a></span> on how to expand that range.</p>
<p>The set of constituents of an url (= the set of keys in the returned
dictionary) is dependent on the scheme of the url. The only key which
is therefore always present is <b class="const">scheme</b>. For the following
schemes the constituents and their keys are known:</p>
<dl class="definitions">
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<dd><p><b class="const">user</b>, <b class="const">host</b>. The host is optional.</p></dd>
<dt>news</dt>
<dd><p>Either <b class="const">message-id</b> or <b class="const">newsgroup-name</b>.</p></dd>
</dl></dd>
<dt><a name="2"><b class="cmd">uri::join</b> <span class="opt">?<i class="arg">key</i> <i class="arg">value</i>?</span>...</a></dt>
<dd><p><b class="cmd">uri::join</b> takes a list of key/value pairs (generated by
<b class="cmd">uri::split</b>, for example) and returns the canonical url they
represent. Currently only the schemes <i class="term"><a href="../../../../index.html#key441">http</a></i>, <i class="term"><a href="../../../../index.html#key290">ftp</a></i>,
<i class="term"><a href="../../../../index.html#key528">mailto</a></i>, <i class="term"><a href="../../../../index.html#key571">urn</a></i>, <i class="term"><a href="../../../../index.html#key526">news</a></i>, <i class="term"><a href="../../../../index.html#key130">ldap</a></i> and <i class="term"><a href="../../../../index.html#key31">file</a></i>
are supported. See section <span class="sectref"><a href="#section4">EXTENDING</a></span> on how to expand that
range.</p></dd>
<dt><a name="3"><b class="cmd">uri::resolve</b> <i class="arg">base</i> <i class="arg">url</i></a></dt>
<dd><p><b class="cmd">uri::resolve</b> resolves the specified <i class="arg">url</i> relative to
<i class="arg">base</i>. In other words: A non-relative <i class="arg">url</i> is returned
unchanged, whereas for a relative <i class="arg">url</i> the missing parts are
taken from <i class="arg">base</i> and prepended to it. The result of this







|
|







181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<dd><p><b class="const">user</b>, <b class="const">host</b>. The host is optional.</p></dd>
<dt>news</dt>
<dd><p>Either <b class="const">message-id</b> or <b class="const">newsgroup-name</b>.</p></dd>
</dl></dd>
<dt><a name="2"><b class="cmd">uri::join</b> <span class="opt">?<i class="arg">key</i> <i class="arg">value</i>?</span>...</a></dt>
<dd><p><b class="cmd">uri::join</b> takes a list of key/value pairs (generated by
<b class="cmd">uri::split</b>, for example) and returns the canonical url they
represent. Currently only the schemes <i class="term"><a href="../../../../index.html#key443">http</a></i>, <i class="term"><a href="../../../../index.html#key292">ftp</a></i>,
<i class="term"><a href="../../../../index.html#key531">mailto</a></i>, <i class="term"><a href="../../../../index.html#key574">urn</a></i>, <i class="term"><a href="../../../../index.html#key529">news</a></i>, <i class="term"><a href="../../../../index.html#key130">ldap</a></i> and <i class="term"><a href="../../../../index.html#key31">file</a></i>
are supported. See section <span class="sectref"><a href="#section4">EXTENDING</a></span> on how to expand that
range.</p></dd>
<dt><a name="3"><b class="cmd">uri::resolve</b> <i class="arg">base</i> <i class="arg">url</i></a></dt>
<dd><p><b class="cmd">uri::resolve</b> resolves the specified <i class="arg">url</i> relative to
<i class="arg">base</i>. In other words: A non-relative <i class="arg">url</i> is returned
unchanged, whereas for a relative <i class="arg">url</i> the missing parts are
taken from <i class="arg">base</i> and prepended to it. The result of this
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
regular expression to recognize urls for a number of url schemes.</p>
<p>For each supported scheme a namespace of the same name as the scheme
itself is provided inside of the namespace <em>uri</em> containing the
variable <b class="variable">url</b> whose contents are a regular expression to
recognize urls of that scheme. Additional variables may contain
regular expressions for parts of urls for that scheme.</p>
<p>The variable <b class="variable">uri::schemes</b> contains a list of all supported
schemes. Currently these are <i class="term"><a href="../../../../index.html#key290">ftp</a></i>, <i class="term"><a href="../../../../index.html#key130">ldap</a></i>, <i class="term"><a href="../../../../index.html#key31">file</a></i>,
<i class="term"><a href="../../../../index.html#key441">http</a></i>, <i class="term"><a href="../../../../index.html#key525">gopher</a></i>, <i class="term"><a href="../../../../index.html#key528">mailto</a></i>, <i class="term"><a href="../../../../index.html#key526">news</a></i>,
<i class="term"><a href="../../../../index.html#key524">wais</a></i> and <i class="term"><a href="../../../../index.html#key523">prospero</a></i>.</p>
</div>
<div id="section4" class="section"><h2><a name="section4">EXTENDING</a></h2>
<p>Extending the range of schemes supported by <b class="cmd">uri::split</b> and
<b class="cmd">uri::join</b> is easy because both commands do not handle the
request by themselves but dispatch it to another command in the
<em>uri</em> namespace using the scheme of the url as criterion.</p>
<p><b class="cmd">uri::split</b> and <b class="cmd">uri::join</b>







|
|
|







234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
regular expression to recognize urls for a number of url schemes.</p>
<p>For each supported scheme a namespace of the same name as the scheme
itself is provided inside of the namespace <em>uri</em> containing the
variable <b class="variable">url</b> whose contents are a regular expression to
recognize urls of that scheme. Additional variables may contain
regular expressions for parts of urls for that scheme.</p>
<p>The variable <b class="variable">uri::schemes</b> contains a list of all supported
schemes. Currently these are <i class="term"><a href="../../../../index.html#key292">ftp</a></i>, <i class="term"><a href="../../../../index.html#key130">ldap</a></i>, <i class="term"><a href="../../../../index.html#key31">file</a></i>,
<i class="term"><a href="../../../../index.html#key443">http</a></i>, <i class="term"><a href="../../../../index.html#key528">gopher</a></i>, <i class="term"><a href="../../../../index.html#key531">mailto</a></i>, <i class="term"><a href="../../../../index.html#key529">news</a></i>,
<i class="term"><a href="../../../../index.html#key527">wais</a></i> and <i class="term"><a href="../../../../index.html#key526">prospero</a></i>.</p>
</div>
<div id="section4" class="section"><h2><a name="section4">EXTENDING</a></h2>
<p>Extending the range of schemes supported by <b class="cmd">uri::split</b> and
<b class="cmd">uri::join</b> is easy because both commands do not handle the
request by themselves but dispatch it to another command in the
<em>uri</em> namespace using the scheme of the url as criterion.</p>
<p><b class="cmd">uri::split</b> and <b class="cmd">uri::join</b>
261
262
263
264
265
266
267
268
269
270
271
272
273
bugs and other problems.
Please report such in the category <em>uri</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key527">fetching information</a>, <a href="../../../../index.html#key31">file</a>, <a href="../../../../index.html#key290">ftp</a>, <a href="../../../../index.html#key525">gopher</a>, <a href="../../../../index.html#key441">http</a>, <a href="../../../../index.html#key130">ldap</a>, <a href="../../../../index.html#key528">mailto</a>, <a href="../../../../index.html#key526">news</a>, <a href="../../../../index.html#key523">prospero</a>, <a href="../../../../index.html#key529">rfc 2255</a>, <a href="../../../../index.html#key531">rfc 2396</a>, <a href="../../../../index.html#key522">uri</a>, <a href="../../../../index.html#key244">url</a>, <a href="../../../../index.html#key524">wais</a>, <a href="../../../../index.html#key530">www</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>







|





261
262
263
264
265
266
267
268
269
270
271
272
273
bugs and other problems.
Please report such in the category <em>uri</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key530">fetching information</a>, <a href="../../../../index.html#key31">file</a>, <a href="../../../../index.html#key292">ftp</a>, <a href="../../../../index.html#key528">gopher</a>, <a href="../../../../index.html#key443">http</a>, <a href="../../../../index.html#key130">ldap</a>, <a href="../../../../index.html#key531">mailto</a>, <a href="../../../../index.html#key529">news</a>, <a href="../../../../index.html#key526">prospero</a>, <a href="../../../../index.html#key532">rfc 2255</a>, <a href="../../../../index.html#key534">rfc 2396</a>, <a href="../../../../index.html#key525">uri</a>, <a href="../../../../index.html#key244">url</a>, <a href="../../../../index.html#key527">wais</a>, <a href="../../../../index.html#key533">www</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/uri/urn-scheme.html.

131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<li><a href="#1"><b class="cmd">uri::urn::quote</b> <i class="arg">url</i></a></li>
<li><a href="#2"><b class="cmd">uri::urn::unquote</b> <i class="arg">url</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides two commands to quote and unquote the disallowed
characters for url using the <i class="term"><a href="../../../../index.html#key571">urn</a></i> scheme, registers the scheme
with the package <b class="package"><a href="uri.html">uri</a></b>, and provides internal helpers which
will be automatically used by the commands <b class="cmd">uri::split</b> and
<b class="cmd">uri::join</b> of package <b class="package"><a href="uri.html">uri</a></b> to handle urls using the
<i class="term"><a href="../../../../index.html#key571">urn</a></i> scheme.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">uri::urn::quote</b> <i class="arg">url</i></a></dt>
<dd><p>This command quotes the characters disallowed by the <i class="term"><a href="../../../../index.html#key571">urn</a></i> scheme
(per RFC 2141 sec2.2) in the <i class="arg">url</i> and returns the modified url as
its result.</p></dd>
<dt><a name="2"><b class="cmd">uri::urn::unquote</b> <i class="arg">url</i></a></dt>
<dd><p>This commands performs the reverse of <b class="cmd">::uri::urn::quote</b>. It
takes an <i class="term"><a href="../../../../index.html#key571">urn</a></i> url, removes the quoting from all disallowed
characters, and returns the modified urls as its result.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>uri</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key572">rfc 2141</a>, <a href="../../../../index.html#key522">uri</a>, <a href="../../../../index.html#key244">url</a>, <a href="../../../../index.html#key571">urn</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>







|



|




|




|












|





131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<li><a href="#1"><b class="cmd">uri::urn::quote</b> <i class="arg">url</i></a></li>
<li><a href="#2"><b class="cmd">uri::urn::unquote</b> <i class="arg">url</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>This package provides two commands to quote and unquote the disallowed
characters for url using the <i class="term"><a href="../../../../index.html#key574">urn</a></i> scheme, registers the scheme
with the package <b class="package"><a href="uri.html">uri</a></b>, and provides internal helpers which
will be automatically used by the commands <b class="cmd">uri::split</b> and
<b class="cmd">uri::join</b> of package <b class="package"><a href="uri.html">uri</a></b> to handle urls using the
<i class="term"><a href="../../../../index.html#key574">urn</a></i> scheme.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">COMMANDS</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">uri::urn::quote</b> <i class="arg">url</i></a></dt>
<dd><p>This command quotes the characters disallowed by the <i class="term"><a href="../../../../index.html#key574">urn</a></i> scheme
(per RFC 2141 sec2.2) in the <i class="arg">url</i> and returns the modified url as
its result.</p></dd>
<dt><a name="2"><b class="cmd">uri::urn::unquote</b> <i class="arg">url</i></a></dt>
<dd><p>This commands performs the reverse of <b class="cmd">::uri::urn::quote</b>. It
takes an <i class="term"><a href="../../../../index.html#key574">urn</a></i> url, removes the quoting from all disallowed
characters, and returns the modified urls as its result.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>uri</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key575">rfc 2141</a>, <a href="../../../../index.html#key525">uri</a>, <a href="../../../../index.html#key244">url</a>, <a href="../../../../index.html#key574">urn</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/valtype/cc_amex.html.

205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key393">AMEX</a>, <a href="../../../../index.html#key392">American Express</a>, <a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key265">bank</a>, <a href="../../../../index.html#key263">card for credit</a>, <a href="../../../../index.html#key266">credit card</a>, <a href="../../../../index.html#key264">finance</a>, <a href="../../../../index.html#key55">isA</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key395">AMEX</a>, <a href="../../../../index.html#key394">American Express</a>, <a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key267">bank</a>, <a href="../../../../index.html#key265">card for credit</a>, <a href="../../../../index.html#key268">credit card</a>, <a href="../../../../index.html#key266">finance</a>, <a href="../../../../index.html#key55">isA</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/valtype/cc_discover.html.

205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key267">Discover</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key265">bank</a>, <a href="../../../../index.html#key263">card for credit</a>, <a href="../../../../index.html#key266">credit card</a>, <a href="../../../../index.html#key264">finance</a>, <a href="../../../../index.html#key55">isA</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key269">Discover</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key267">bank</a>, <a href="../../../../index.html#key265">card for credit</a>, <a href="../../../../index.html#key268">credit card</a>, <a href="../../../../index.html#key266">finance</a>, <a href="../../../../index.html#key55">isA</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/valtype/cc_mastercard.html.

205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key663">MasterCard</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key265">bank</a>, <a href="../../../../index.html#key263">card for credit</a>, <a href="../../../../index.html#key266">credit card</a>, <a href="../../../../index.html#key264">finance</a>, <a href="../../../../index.html#key55">isA</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key667">MasterCard</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key267">bank</a>, <a href="../../../../index.html#key265">card for credit</a>, <a href="../../../../index.html#key268">credit card</a>, <a href="../../../../index.html#key266">finance</a>, <a href="../../../../index.html#key55">isA</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/valtype/cc_visa.html.

205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key701">VISA</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key265">bank</a>, <a href="../../../../index.html#key263">card for credit</a>, <a href="../../../../index.html#key266">credit card</a>, <a href="../../../../index.html#key264">finance</a>, <a href="../../../../index.html#key55">isA</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key705">VISA</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key267">bank</a>, <a href="../../../../index.html#key265">card for credit</a>, <a href="../../../../index.html#key268">credit card</a>, <a href="../../../../index.html#key266">finance</a>, <a href="../../../../index.html#key55">isA</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/valtype/iban.html.

199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key378">IBAN</a>, <a href="../../../../index.html#key377">International Bank Account Number</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key265">bank</a>, <a href="../../../../index.html#key264">finance</a>, <a href="../../../../index.html#key55">isA</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key380">IBAN</a>, <a href="../../../../index.html#key379">International Bank Account Number</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key267">bank</a>, <a href="../../../../index.html#key266">finance</a>, <a href="../../../../index.html#key55">isA</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/valtype/imei.html.

202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key782">IMEI</a>, <a href="../../../../index.html#key785">International Mobile Equipment Identity</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key786">cell-phone</a>, <a href="../../../../index.html#key55">isA</a>, <a href="../../../../index.html#key783">mobile phone</a>, <a href="../../../../index.html#key784">phone</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key786">IMEI</a>, <a href="../../../../index.html#key789">International Mobile Equipment Identity</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key790">cell-phone</a>, <a href="../../../../index.html#key55">isA</a>, <a href="../../../../index.html#key787">mobile phone</a>, <a href="../../../../index.html#key788">phone</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/valtype/isbn.html.

208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key359">Book Number</a>, <a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key103">EAN</a>, <a href="../../../../index.html#key104">EAN13</a>, <a href="../../../../index.html#key102">European Article Number</a>, <a href="../../../../index.html#key358">ISBN</a>, <a href="../../../../index.html#key105">International Article Number</a>, <a href="../../../../index.html#key360">International Standard Book Number</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key55">isA</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key361">Book Number</a>, <a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key103">EAN</a>, <a href="../../../../index.html#key104">EAN13</a>, <a href="../../../../index.html#key102">European Article Number</a>, <a href="../../../../index.html#key360">ISBN</a>, <a href="../../../../index.html#key105">International Article Number</a>, <a href="../../../../index.html#key362">International Standard Book Number</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key55">isA</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/valtype/verhoeff.html.

199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key55">isA</a>, <a href="../../../../index.html#key741">verhoeff</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
bugs and other problems.
Please report such in the category <em>valtype</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key53">Checking</a>, <a href="../../../../index.html#key58">Testing</a>, <a href="../../../../index.html#key57">Type checking</a>, <a href="../../../../index.html#key60">Validation</a>, <a href="../../../../index.html#key56">Value checking</a>, <a href="../../../../index.html#key55">isA</a>, <a href="../../../../index.html#key745">verhoeff</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Validation, Type checking</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/virtchannel_base/cat.html.

143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
of subordinate channels whose contents they return in order, until all
are exhausted. In this manner the channel is the concatentation of the
contents of all the sub-ordinate channels.</p>
<p>Note that the created channels take ownership of the channels
they were constructed with. Whenever they have exhausted one of their
channel it will be closed. Similarly, closing the cat channel will
close all the sub-ordinates it still has.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/core.html">tcl::chan::core</a></b> framework.</p>
<p>Event handling is delegated to the currently active sub-channel.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::cat</b> <i class="arg">chan</i>...</a></dt>
<dd><p>This command creates the concatenation channel using all the provided







|







143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
of subordinate channels whose contents they return in order, until all
are exhausted. In this manner the channel is the concatentation of the
contents of all the sub-ordinate channels.</p>
<p>Note that the created channels take ownership of the channels
they were constructed with. Whenever they have exhausted one of their
channel it will be closed. Similarly, closing the cat channel will
close all the sub-ordinates it still has.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/core.html">tcl::chan::core</a></b> framework.</p>
<p>Event handling is delegated to the currently active sub-channel.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::cat</b> <i class="arg">chan</i>...</a></dt>
<dd><p>This command creates the concatenation channel using all the provided

Changes to embedded/www/tcllib/files/modules/virtchannel_base/halfpipe.html.

141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::halfpipe</b> package provides a command creating
one half of a <b class="package"><a href="tcllib_fifo2.html">tcl::chan::fifo2</a></b> pair. Writing into such a
channel invokes a set of callbacks which then handle the data. This is
similar to a channel handler, except having a much simpler API.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::halfpipe</b> <span class="opt">?<b class="option">-option</b> <i class="arg">value</i>...?</span></a></dt>
<dd><p>This command creates a halfpipe channel and configures it with the
callbacks to run when the channel is closed, data was written to it,







|







141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::halfpipe</b> package provides a command creating
one half of a <b class="package"><a href="tcllib_fifo2.html">tcl::chan::fifo2</a></b> pair. Writing into such a
channel invokes a set of callbacks which then handle the data. This is
similar to a channel handler, except having a much simpler API.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::halfpipe</b> <span class="opt">?<b class="option">-option</b> <i class="arg">value</i>...?</span></a></dt>
<dd><p>This command creates a halfpipe channel and configures it with the
callbacks to run when the channel is closed, data was written to it,
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key713">callbacks</a>, <a href="../../../../index.html#key602">fifo</a>, <a href="../../../../index.html#key46">in-memory channel</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key717">callbacks</a>, <a href="../../../../index.html#key605">fifo</a>, <a href="../../../../index.html#key46">in-memory channel</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_base/nullzero.html.

140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::nullzero</b> package provides a command creating channels,
which are a combination of null and zero devices. They immediately forget
whatever is written to them, and on reading return an infinite stream of null
characters.</p>
<p>Packages related to this are <b class="package"><a href="tcllib_null.html">tcl::chan::null</a></b> and
<b class="package"><a href="tcllib_zero.html">tcl::chan::zero</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the channel handler
is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::nullzero</b></a></dt>
<dd><p>This command creates a new nullzero channel and returns its handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key756">/dev/null</a>, <a href="../../../../index.html#key114">/dev/zero</a>, <a href="../../../../index.html#key757">null</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a>, <a href="../../../../index.html#key113">zero</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|

















|








140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::nullzero</b> package provides a command creating channels,
which are a combination of null and zero devices. They immediately forget
whatever is written to them, and on reading return an infinite stream of null
characters.</p>
<p>Packages related to this are <b class="package"><a href="tcllib_null.html">tcl::chan::null</a></b> and
<b class="package"><a href="tcllib_zero.html">tcl::chan::zero</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the channel handler
is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::nullzero</b></a></dt>
<dd><p>This command creates a new nullzero channel and returns its handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key760">/dev/null</a>, <a href="../../../../index.html#key114">/dev/zero</a>, <a href="../../../../index.html#key761">null</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a>, <a href="../../../../index.html#key113">zero</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_base/randseed.html.

158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key585">/dev/random</a>, <a href="../../../../index.html#key533">merge</a>, <a href="../../../../index.html#key584">random</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key824">seed</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key588">/dev/random</a>, <a href="../../../../index.html#key536">merge</a>, <a href="../../../../index.html#key587">random</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key828">seed</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/virtchannel_base/std.html.

138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::std</b> package provides a command creating
a standard channel which unifies stdin and stdout into a single
read- and writable channel. The result is not seek-able, like
the original standard channels.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/core.html">tcl::chan::core</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::std</b></a></dt>
<dd><p>This command creates the std channel and returns its handle.</p>
<p>The channel is created only once, on the first call, and all
future calls simply return this handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key818">standard io</a>, <a href="../../../../index.html#key819">stdin</a>, <a href="../../../../index.html#key820">stdout</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|



















|








138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::std</b> package provides a command creating
a standard channel which unifies stdin and stdout into a single
read- and writable channel. The result is not seek-able, like
the original standard channels.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/core.html">tcl::chan::core</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::std</b></a></dt>
<dd><p>This command creates the std channel and returns its handle.</p>
<p>The channel is created only once, on the first call, and all
future calls simply return this handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key822">standard io</a>, <a href="../../../../index.html#key823">stdin</a>, <a href="../../../../index.html#key824">stdout</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2011 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_base/tcllib_fifo.html.

140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::fifo</b> package provides a command creating
channels which live purely in memory. Access is fifo-like, i.e. things
are read out of the channel in the order they were written to it.
This is equivalent to the fifo channels provided by the package
<b class="package">Mmechan</b>, except that this is written in pure Tcl, not C. On
the other hand, <b class="package">Memchan</b> is usable with Tcl 8.4 and before,
whereas this package requires Tcl 8.5 or higher, and <b class="package"><a href="../../../../index.html#key761">TclOO</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::fifo</b></a></dt>
<dd><p>This command creates a new fifo channel and returns its handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key602">fifo</a>, <a href="../../../../index.html#key46">in-memory channel</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|
|

















|








140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::fifo</b> package provides a command creating
channels which live purely in memory. Access is fifo-like, i.e. things
are read out of the channel in the order they were written to it.
This is equivalent to the fifo channels provided by the package
<b class="package">Mmechan</b>, except that this is written in pure Tcl, not C. On
the other hand, <b class="package">Memchan</b> is usable with Tcl 8.4 and before,
whereas this package requires Tcl 8.5 or higher, and <b class="package"><a href="../../../../index.html#key765">TclOO</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::fifo</b></a></dt>
<dd><p>This command creates a new fifo channel and returns its handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key605">fifo</a>, <a href="../../../../index.html#key46">in-memory channel</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_base/tcllib_fifo2.html.

144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
each other in a fifo manner. What is written to one half of the pair
can be read from the other half, in the same order. One particular
application for this is communication between threads, with one half
of the pair moved to the thread to talk to.
This is equivalent to the fifo2 channels provided by the package
<b class="package">Mmechan</b>, except that this is written in pure Tcl, not C. On
the other hand, <b class="package">Memchan</b> is usable with Tcl 8.4 and before,
whereas this package requires Tcl 8.5 or higher, and <b class="package"><a href="../../../../index.html#key761">TclOO</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::fifo2</b></a></dt>
<dd><p>This command creates a new connected pair of fifo channels and returns
their handles, as a list containing two elements.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key733">connected fifos</a>, <a href="../../../../index.html#key602">fifo</a>, <a href="../../../../index.html#key46">in-memory channel</a>, <a href="../../../../index.html#key732">inter-thread communication</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|
|


















|








144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
each other in a fifo manner. What is written to one half of the pair
can be read from the other half, in the same order. One particular
application for this is communication between threads, with one half
of the pair moved to the thread to talk to.
This is equivalent to the fifo2 channels provided by the package
<b class="package">Mmechan</b>, except that this is written in pure Tcl, not C. On
the other hand, <b class="package">Memchan</b> is usable with Tcl 8.4 and before,
whereas this package requires Tcl 8.5 or higher, and <b class="package"><a href="../../../../index.html#key765">TclOO</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::fifo2</b></a></dt>
<dd><p>This command creates a new connected pair of fifo channels and returns
their handles, as a list containing two elements.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key737">connected fifos</a>, <a href="../../../../index.html#key605">fifo</a>, <a href="../../../../index.html#key46">in-memory channel</a>, <a href="../../../../index.html#key736">inter-thread communication</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_base/tcllib_memchan.html.

140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::memchan</b> package provides a command creating
channels which live purely in memory. They provide random-access,
i.e. are seekable. This is equivalent to the memchan channels provided by
the package <b class="package">Memchan</b>, except that this is written in pure Tcl,
not C. On the other hand, <b class="package">Memchan</b> is usable with Tcl 8.4 and
before, whereas this package requires Tcl 8.5 or higher, and
<b class="package"><a href="../../../../index.html#key761">TclOO</a></b>.</p>
<p>Packages related to this are <b class="package"><a href="tcllib_string.html">tcl::chan::string</a></b> and
<b class="package"><a href="tcllib_variable.html">tcl::chan::variable</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::memchan</b></a></dt>
<dd><p>This command creates a new memchan channel and returns its handle.</p></dd>
</dl>







|


|







140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::memchan</b> package provides a command creating
channels which live purely in memory. They provide random-access,
i.e. are seekable. This is equivalent to the memchan channels provided by
the package <b class="package">Memchan</b>, except that this is written in pure Tcl,
not C. On the other hand, <b class="package">Memchan</b> is usable with Tcl 8.4 and
before, whereas this package requires Tcl 8.5 or higher, and
<b class="package"><a href="../../../../index.html#key765">TclOO</a></b>.</p>
<p>Packages related to this are <b class="package"><a href="tcllib_string.html">tcl::chan::string</a></b> and
<b class="package"><a href="tcllib_variable.html">tcl::chan::variable</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::memchan</b></a></dt>
<dd><p>This command creates a new memchan channel and returns its handle.</p></dd>
</dl>

Changes to embedded/www/tcllib/files/modules/virtchannel_base/tcllib_null.html.

140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::null</b> package provides a command creating null
channels, i.e. write-only channels which immediately forget whatever
is written to them. This is equivalent to the null channels provided by
the package <b class="package">Memchan</b>, except that this is written in pure Tcl,
not C. On the other hand, <b class="package">Memchan</b> is usable with Tcl 8.4 and
before, whereas this package requires Tcl 8.5 or higher, and
<b class="package"><a href="../../../../index.html#key761">TclOO</a></b>.</p>
<p>Packages related to this are <b class="package"><a href="tcllib_zero.html">tcl::chan::zero</a></b> and
<b class="package"><a href="nullzero.html">tcl::chan::nullzero</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::null</b></a></dt>
<dd><p>This command creates a new null channel and returns its handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key756">/dev/null</a>, <a href="../../../../index.html#key757">null</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|


|

















|








140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::null</b> package provides a command creating null
channels, i.e. write-only channels which immediately forget whatever
is written to them. This is equivalent to the null channels provided by
the package <b class="package">Memchan</b>, except that this is written in pure Tcl,
not C. On the other hand, <b class="package">Memchan</b> is usable with Tcl 8.4 and
before, whereas this package requires Tcl 8.5 or higher, and
<b class="package"><a href="../../../../index.html#key765">TclOO</a></b>.</p>
<p>Packages related to this are <b class="package"><a href="tcllib_zero.html">tcl::chan::zero</a></b> and
<b class="package"><a href="nullzero.html">tcl::chan::nullzero</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::null</b></a></dt>
<dd><p>This command creates a new null channel and returns its handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key760">/dev/null</a>, <a href="../../../../index.html#key761">null</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_base/tcllib_random.html.

142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
random channels, i.e. read-only channels which return an infinite
stream of pseudo-random characters upon reading. This is similar to
the random channels provided by the package <b class="package">Memchan</b>, except
that this is written in pure Tcl, not C, and uses a much simpler
generator as well. On the other hand, <b class="package">Memchan</b> is usable with
Tcl 8.4 and before, whereas this package requires Tcl 8.5 or higher,
and TclOO.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::random</b> <i class="arg">seed</i></a></dt>
<dd><p>This command creates a new random channel and returns its handle.
The seed is a list of integer numbers used to initialize the
internal feedback shift register of the generator.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key585">/dev/random</a>, <a href="../../../../index.html#key584">random</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|



















|








142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
random channels, i.e. read-only channels which return an infinite
stream of pseudo-random characters upon reading. This is similar to
the random channels provided by the package <b class="package">Memchan</b>, except
that this is written in pure Tcl, not C, and uses a much simpler
generator as well. On the other hand, <b class="package">Memchan</b> is usable with
Tcl 8.4 and before, whereas this package requires Tcl 8.5 or higher,
and TclOO.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::random</b> <i class="arg">seed</i></a></dt>
<dd><p>This command creates a new random channel and returns its handle.
The seed is a list of integer numbers used to initialize the
internal feedback shift register of the generator.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key588">/dev/random</a>, <a href="../../../../index.html#key587">random</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_base/tcllib_string.html.

142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
channels which live purely in memory. They provide random-access,
i.e. are seekable.
In contrast to the channels created by <b class="package"><a href="tcllib_memchan.html">tcl::chan::memchan</a></b>
they are read-only however, their content is provided at the time of
construction and immutable afterward.</p>
<p>Packages related to this are <b class="package"><a href="tcllib_memchan.html">tcl::chan::memchan</a></b> and
<b class="package"><a href="tcllib_variable.html">tcl::chan::variable</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::string</b> <i class="arg">content</i></a></dt>
<dd><p>This command creates a new string channel and returns its handle. The
channel provides random read-only access to the <i class="arg">content</i> string.</p></dd>







|







142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
channels which live purely in memory. They provide random-access,
i.e. are seekable.
In contrast to the channels created by <b class="package"><a href="tcllib_memchan.html">tcl::chan::memchan</a></b>
they are read-only however, their content is provided at the time of
construction and immutable afterward.</p>
<p>Packages related to this are <b class="package"><a href="tcllib_memchan.html">tcl::chan::memchan</a></b> and
<b class="package"><a href="tcllib_variable.html">tcl::chan::variable</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::string</b> <i class="arg">content</i></a></dt>
<dd><p>This command creates a new string channel and returns its handle. The
channel provides random read-only access to the <i class="arg">content</i> string.</p></dd>

Changes to embedded/www/tcllib/files/modules/virtchannel_base/tcllib_variable.html.

142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
channels which live purely in memory. They provide random-access,
i.e. are seekable.
In contrast to the channels created by <b class="package"><a href="tcllib_memchan.html">tcl::chan::memchan</a></b>
the data is not hidden in the channel however, but stored in an
associated variable, specified at the time of construction.</p>
<p>Packages related to this are <b class="package"><a href="tcllib_memchan.html">tcl::chan::memchan</a></b> and
<b class="package"><a href="tcllib_string.html">tcl::chan::string</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::variable</b> <i class="arg">varname</i></a></dt>
<dd><p>This command creates a new variable channel and returns its handle.
The content of the channel is stored in the associated namespace







|







142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
channels which live purely in memory. They provide random-access,
i.e. are seekable.
In contrast to the channels created by <b class="package"><a href="tcllib_memchan.html">tcl::chan::memchan</a></b>
the data is not hidden in the channel however, but stored in an
associated variable, specified at the time of construction.</p>
<p>Packages related to this are <b class="package"><a href="tcllib_memchan.html">tcl::chan::memchan</a></b> and
<b class="package"><a href="tcllib_string.html">tcl::chan::string</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::variable</b> <i class="arg">varname</i></a></dt>
<dd><p>This command creates a new variable channel and returns its handle.
The content of the channel is stored in the associated namespace

Changes to embedded/www/tcllib/files/modules/virtchannel_base/tcllib_zero.html.

143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
characters upon reading. This is equivalent to the zero channels
provided by the package <b class="package">Memchan</b>, except that this is written
in pure Tcl, not C. On the other hand, <b class="package">Memchan</b> is usable with
Tcl 8.4 and before, whereas this package requires Tcl 8.5 or higher,
and TclOO.</p>
<p>Packages related to this are <b class="package"><a href="tcllib_null.html">tcl::chan::null</a></b> and
<b class="package"><a href="nullzero.html">tcl::chan::nullzero</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::zero</b></a></dt>
<dd><p>This command creates a new zero channel and returns its handle.</p></dd>
</dl>







|







143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
characters upon reading. This is equivalent to the zero channels
provided by the package <b class="package">Memchan</b>, except that this is written
in pure Tcl, not C. On the other hand, <b class="package">Memchan</b> is usable with
Tcl 8.4 and before, whereas this package requires Tcl 8.5 or higher,
and TclOO.</p>
<p>Packages related to this are <b class="package"><a href="tcllib_null.html">tcl::chan::null</a></b> and
<b class="package"><a href="nullzero.html">tcl::chan::nullzero</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::zero</b></a></dt>
<dd><p>This command creates a new zero channel and returns its handle.</p></dd>
</dl>

Changes to embedded/www/tcllib/files/modules/virtchannel_base/textwindow.html.

137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::textwindow</b> package provides a command creating
write-only channels connected to text widgets. Anything written to the
channel is printed into the associated widget.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::textwindow</b> <i class="arg">widget</i></a></dt>
<dd><p>This command creates a new textwindow channel and returns its handle.
Data written to this channel will appear in the associated <i class="arg">widget</i>.</p></dd>







|







137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::textwindow</b> package provides a command creating
write-only channels connected to text widgets. Anything written to the
channel is printed into the associated widget.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the channel
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/events.html">tcl::chan::events</a></b> framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::chan::textwindow</b> <i class="arg">widget</i></a></dt>
<dd><p>This command creates a new textwindow channel and returns its handle.
Data written to this channel will appear in the associated <i class="arg">widget</i>.</p></dd>

Changes to embedded/www/tcllib/files/modules/virtchannel_core/core.html.

137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<li><a href="#2"><i class="arg">objectName</i> <b class="method">initialize</b> <i class="arg">thechannel</i> <i class="arg">mode</i></a></li>
<li><a href="#3"><i class="arg">objectName</i> <b class="method">finalize</b> <i class="arg">thechannel</i></a></li>
<li><a href="#4"><i class="arg">objectName</i> <b class="method">destroy</b></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::core</b> package provides a <b class="package"><a href="../../../../index.html#key761">TclOO</a></b>
class implementing common behaviour needed by virtually every
reflected or virtual channel (initialization, finalization).</p>
<p>This class expects to be used as either superclass of a concrete
channel class, or to be mixed into such a class.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Class API</a></h2>
<dl class="definitions">







|







137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<li><a href="#2"><i class="arg">objectName</i> <b class="method">initialize</b> <i class="arg">thechannel</i> <i class="arg">mode</i></a></li>
<li><a href="#3"><i class="arg">objectName</i> <b class="method">finalize</b> <i class="arg">thechannel</i></a></li>
<li><a href="#4"><i class="arg">objectName</i> <b class="method">destroy</b></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::core</b> package provides a <b class="package"><a href="../../../../index.html#key765">TclOO</a></b>
class implementing common behaviour needed by virtually every
reflected or virtual channel (initialization, finalization).</p>
<p>This class expects to be used as either superclass of a concrete
channel class, or to be mixed into such a class.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Class API</a></h2>
<dl class="definitions">

Changes to embedded/www/tcllib/files/modules/virtchannel_core/events.html.

139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<li><a href="#3"><i class="arg">objectName</i> <b class="method">watch</b> <i class="arg">thechannel</i> <i class="arg">eventmask</i></a></li>
<li><a href="#4"><i class="arg">objectName</i> <b class="method">allow</b> <i class="arg">eventname</i>...</a></li>
<li><a href="#5"><i class="arg">objectName</i> <b class="method">disallow</b> <i class="arg">eventname</i>...</a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::events</b> package provides a <b class="package"><a href="../../../../index.html#key761">TclOO</a></b>
class implementing common behaviour needed by virtually every
reflected or virtual channel supporting event driven IO. It is a
sub-class of <b class="package"><a href="core.html">tcl::chan::core</a></b>, inheriting all of its behaviour.</p>
<p>This class expects to be used as either superclass of a concrete
channel class, or to be mixed into such a class.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Class API</a></h2>







|







139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<li><a href="#3"><i class="arg">objectName</i> <b class="method">watch</b> <i class="arg">thechannel</i> <i class="arg">eventmask</i></a></li>
<li><a href="#4"><i class="arg">objectName</i> <b class="method">allow</b> <i class="arg">eventname</i>...</a></li>
<li><a href="#5"><i class="arg">objectName</i> <b class="method">disallow</b> <i class="arg">eventname</i>...</a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::chan::events</b> package provides a <b class="package"><a href="../../../../index.html#key765">TclOO</a></b>
class implementing common behaviour needed by virtually every
reflected or virtual channel supporting event driven IO. It is a
sub-class of <b class="package"><a href="core.html">tcl::chan::core</a></b>, inheriting all of its behaviour.</p>
<p>This class expects to be used as either superclass of a concrete
channel class, or to be mixed into such a class.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Class API</a></h2>
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key511">event management</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key513">event management</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key45">tip 219</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_core/transformcore.html.

137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<li><a href="#2"><i class="arg">objectName</i> <b class="method">initialize</b> <i class="arg">thechannel</i> <i class="arg">mode</i></a></li>
<li><a href="#3"><i class="arg">objectName</i> <b class="method">finalize</b> <i class="arg">thechannel</i></a></li>
<li><a href="#4"><i class="arg">objectName</i> <b class="method">destroy</b></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::core</b> package provides a <b class="package"><a href="../../../../index.html#key761">TclOO</a></b>
class implementing common behaviour needed by virtually every
reflected or virtual channel transformation (initialization, finalization).</p>
<p>This class expects to be used as either superclass of a concrete
channel class, or to be mixed into such a class.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Class API</a></h2>
<dl class="definitions">







|







137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<li><a href="#2"><i class="arg">objectName</i> <b class="method">initialize</b> <i class="arg">thechannel</i> <i class="arg">mode</i></a></li>
<li><a href="#3"><i class="arg">objectName</i> <b class="method">finalize</b> <i class="arg">thechannel</i></a></li>
<li><a href="#4"><i class="arg">objectName</i> <b class="method">destroy</b></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::core</b> package provides a <b class="package"><a href="../../../../index.html#key765">TclOO</a></b>
class implementing common behaviour needed by virtually every
reflected or virtual channel transformation (initialization, finalization).</p>
<p>This class expects to be used as either superclass of a concrete
channel class, or to be mixed into such a class.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Class API</a></h2>
<dl class="definitions">

Changes to embedded/www/tcllib/files/modules/virtchannel_transform/adler32.html.

144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
it has seen for each direction and stores them in Tcl variables
specified at construction time.</p>
<p>Related transformations in this module are
<b class="package"><a href="vt_counter.html">tcl::transform::counter</a></b>,
<b class="package"><a href="vt_crc32.html">tcl::transform::crc32</a></b>,
<b class="package"><a href="identity.html">tcl::transform::identity</a></b>, and
<b class="package"><a href="observe.html">tcl::transform::observe</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::adler32</b> <i class="arg">chan</i> <b class="option">-option</b> <i class="arg">value</i>...</a></dt>
<dd><p>This command creates an adler32 checksumming transformation on top of







|







144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
it has seen for each direction and stores them in Tcl variables
specified at construction time.</p>
<p>Related transformations in this module are
<b class="package"><a href="vt_counter.html">tcl::transform::counter</a></b>,
<b class="package"><a href="vt_crc32.html">tcl::transform::crc32</a></b>,
<b class="package"><a href="identity.html">tcl::transform::identity</a></b>, and
<b class="package"><a href="observe.html">tcl::transform::observe</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::adler32</b> <i class="arg">chan</i> <b class="option">-option</b> <i class="arg">value</i>...</a></dt>
<dd><p>This command creates an adler32 checksumming transformation on top of
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key661">adler32</a>, <a href="../../../../index.html#key273">channel transformation</a>, <a href="../../../../index.html#key150">checksum</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key274">tip 230</a>, <a href="../../../../index.html#key275">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key665">adler32</a>, <a href="../../../../index.html#key275">channel transformation</a>, <a href="../../../../index.html#key150">checksum</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key276">tip 230</a>, <a href="../../../../index.html#key277">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_transform/hex.html.

138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::hex</b> package provides a command creating
a channel transformation which hex encodes data written to it, and
decodes the data read from it.</p>
<p>A related transformations in this module is
<b class="package"><a href="vt_base64.html">tcl::transform::base64</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::hex</b> <i class="arg">chan</i></a></dt>
<dd><p>This command creates a hex transformation on top of the channel
<i class="arg">chan</i> and returns its handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key273">channel transformation</a>, <a href="../../../../index.html#key726">hexadecimal</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key274">tip 230</a>, <a href="../../../../index.html#key275">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|



















|








138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::hex</b> package provides a command creating
a channel transformation which hex encodes data written to it, and
decodes the data read from it.</p>
<p>A related transformations in this module is
<b class="package"><a href="vt_base64.html">tcl::transform::base64</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::hex</b> <i class="arg">chan</i></a></dt>
<dd><p>This command creates a hex transformation on top of the channel
<i class="arg">chan</i> and returns its handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key275">channel transformation</a>, <a href="../../../../index.html#key730">hexadecimal</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key276">tip 230</a>, <a href="../../../../index.html#key277">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_transform/identity.html.

145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
observers people may wish to write.</p>
<p>The transformations in this module which derived from
identity's code are
<b class="package"><a href="adler32.html">tcl::transform::adler32</a></b>,
<b class="package"><a href="vt_counter.html">tcl::transform::counter</a></b>,
<b class="package"><a href="vt_crc32.html">tcl::transform::crc32</a></b>, and
<b class="package"><a href="observe.html">tcl::transform::observe</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::identity</b> <i class="arg">chan</i></a></dt>
<dd><p>This command creates an identity transformation on top of the channel
<i class="arg">chan</i> and returns its handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key273">channel transformation</a>, <a href="../../../../index.html#key437">identity</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key274">tip 230</a>, <a href="../../../../index.html#key275">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|



















|








145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
observers people may wish to write.</p>
<p>The transformations in this module which derived from
identity's code are
<b class="package"><a href="adler32.html">tcl::transform::adler32</a></b>,
<b class="package"><a href="vt_counter.html">tcl::transform::counter</a></b>,
<b class="package"><a href="vt_crc32.html">tcl::transform::crc32</a></b>, and
<b class="package"><a href="observe.html">tcl::transform::observe</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::identity</b> <i class="arg">chan</i></a></dt>
<dd><p>This command creates an identity transformation on top of the channel
<i class="arg">chan</i> and returns its handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key275">channel transformation</a>, <a href="../../../../index.html#key439">identity</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key276">tip 230</a>, <a href="../../../../index.html#key277">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_transform/limitsize.html.

137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::limitsize</b> package provides a command
creating a channel transformation which limits the number of
characters which can be read from the channel. A generator for an
artificial EOF.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::limitsize</b> <i class="arg">chan</i> <i class="arg">max</i></a></dt>
<dd><p>This command creates a size limiting transformation on top of the







|







137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::limitsize</b> package provides a command
creating a channel transformation which limits the number of
characters which can be read from the channel. A generator for an
artificial EOF.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::limitsize</b> <i class="arg">chan</i> <i class="arg">max</i></a></dt>
<dd><p>This command creates a size limiting transformation on top of the
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key273">channel transformation</a>, <a href="../../../../index.html#key717">limitsize</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key716">size limit</a>, <a href="../../../../index.html#key274">tip 230</a>, <a href="../../../../index.html#key275">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key275">channel transformation</a>, <a href="../../../../index.html#key721">limitsize</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key720">size limit</a>, <a href="../../../../index.html#key276">tip 230</a>, <a href="../../../../index.html#key277">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_transform/observe.html.

143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
additionally copies the data it has seen for each direction into
channels specified at construction time.</p>
<p>Related transformations in this module are
<b class="package"><a href="adler32.html">tcl::transform::adler32</a></b>,
<b class="package"><a href="vt_counter.html">tcl::transform::counter</a></b>,
<b class="package"><a href="vt_crc32.html">tcl::transform::crc32</a></b>, and
<b class="package"><a href="identity.html">tcl::transform::identity</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::observe</b> <i class="arg">chan</i> <i class="arg">logw</i> <i class="arg">logr</i></a></dt>
<dd><p>This command creates an observer transformation on top of the channel
<i class="arg">chan</i> and returns its handle. The channel handles <i class="arg">logr</i> and
<i class="arg">logw</i> are there the data is copied to.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key273">channel transformation</a>, <a href="../../../../index.html#key643">observer</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key644">stream copy</a>, <a href="../../../../index.html#key274">tip 230</a>, <a href="../../../../index.html#key275">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|




















|








143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
additionally copies the data it has seen for each direction into
channels specified at construction time.</p>
<p>Related transformations in this module are
<b class="package"><a href="adler32.html">tcl::transform::adler32</a></b>,
<b class="package"><a href="vt_counter.html">tcl::transform::counter</a></b>,
<b class="package"><a href="vt_crc32.html">tcl::transform::crc32</a></b>, and
<b class="package"><a href="identity.html">tcl::transform::identity</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::observe</b> <i class="arg">chan</i> <i class="arg">logw</i> <i class="arg">logr</i></a></dt>
<dd><p>This command creates an observer transformation on top of the channel
<i class="arg">chan</i> and returns its handle. The channel handles <i class="arg">logr</i> and
<i class="arg">logw</i> are there the data is copied to.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key275">channel transformation</a>, <a href="../../../../index.html#key647">observer</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key648">stream copy</a>, <a href="../../../../index.html#key276">tip 230</a>, <a href="../../../../index.html#key277">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_transform/rot.html.

139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::rot</b> package provides a command creating
a channel transformation which performs primitive encryption (on
writing) and decryption (on reading) on the alphabetic characters. The
algorithm is the Caesar-cipher, a specific variant of which is rot13.</p>
<p>A related transformations in this module is
<b class="package"><a href="vt_otp.html">tcl::transform::otp</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::rot</b> <i class="arg">chan</i> <i class="arg">key</i></a></dt>
<dd><p>This command creates a rot encryption transformation on top of the







|







139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::rot</b> package provides a command creating
a channel transformation which performs primitive encryption (on
writing) and decryption (on reading) on the alphabetic characters. The
algorithm is the Caesar-cipher, a specific variant of which is rot13.</p>
<p>A related transformations in this module is
<b class="package"><a href="vt_otp.html">tcl::transform::otp</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::rot</b> <i class="arg">chan</i> <i class="arg">key</i></a></dt>
<dd><p>This command creates a rot encryption transformation on top of the
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key396">caesar cipher</a>, <a href="../../../../index.html#key273">channel transformation</a>, <a href="../../../../index.html#key169">cipher</a>, <a href="../../../../index.html#key370">decryption</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key395">rot</a>, <a href="../../../../index.html#key394">rot13</a>, <a href="../../../../index.html#key274">tip 230</a>, <a href="../../../../index.html#key275">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key398">caesar cipher</a>, <a href="../../../../index.html#key275">channel transformation</a>, <a href="../../../../index.html#key169">cipher</a>, <a href="../../../../index.html#key372">decryption</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key397">rot</a>, <a href="../../../../index.html#key396">rot13</a>, <a href="../../../../index.html#key276">tip 230</a>, <a href="../../../../index.html#key277">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_transform/spacer.html.

136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::spacer</b> package provides a command
creating a channel transformation which adds spacing to the data
written to it, and removes such spacing from the data read from it.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::spacer</b> <i class="arg">chan</i> <i class="arg">n</i> <span class="opt">?<i class="arg">space</i>?</span></a></dt>
<dd><p>This command creates a spacer transformation on top of the channel







|







136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::spacer</b> package provides a command
creating a channel transformation which adds spacing to the data
written to it, and removes such spacing from the data read from it.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::spacer</b> <i class="arg">chan</i> <i class="arg">n</i> <span class="opt">?<i class="arg">space</i>?</span></a></dt>
<dd><p>This command creates a spacer transformation on top of the channel
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key273">channel transformation</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key515">spacing</a>, <a href="../../../../index.html#key274">tip 230</a>, <a href="../../../../index.html#key275">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key275">channel transformation</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key517">spacing</a>, <a href="../../../../index.html#key276">tip 230</a>, <a href="../../../../index.html#key277">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_transform/tcllib_zlib.html.

136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::zlib</b> package provides a command creating
a channel transformation which zlib compresses the written data, and
decompresses on reading.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::zlib</b> <i class="arg">chan</i> <span class="opt">?<i class="arg">level</i>?</span></a></dt>
<dd><p>This command creates a zlib compressor transformation on top of the







|







136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::zlib</b> package provides a command creating
a channel transformation which zlib compresses the written data, and
decompresses on reading.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::zlib</b> <i class="arg">chan</i> <span class="opt">?<i class="arg">level</i>?</span></a></dt>
<dd><p>This command creates a zlib compressor transformation on top of the
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key273">channel transformation</a>, <a href="../../../../index.html#key262">compression</a>, <a href="../../../../index.html#key43">decompression</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key274">tip 230</a>, <a href="../../../../index.html#key542">tip 234</a>, <a href="../../../../index.html#key275">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a>, <a href="../../../../index.html#key541">zlib</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key275">channel transformation</a>, <a href="../../../../index.html#key264">compression</a>, <a href="../../../../index.html#key43">decompression</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key276">tip 230</a>, <a href="../../../../index.html#key545">tip 234</a>, <a href="../../../../index.html#key277">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a>, <a href="../../../../index.html#key544">zlib</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_transform/vt_base64.html.

138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::base64</b> package provides a command
creating a channel transformation which base64 encodes data written to
it, and decodes the data read from it.</p>
<p>A related transformations in this module is
<b class="package"><a href="hex.html">tcl::transform::hex</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::base64</b> <i class="arg">chan</i></a></dt>
<dd><p>This command creates a base64 transformation on top of the channel
<i class="arg">chan</i> and returns its handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key581">base64</a>, <a href="../../../../index.html#key273">channel transformation</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key274">tip 230</a>, <a href="../../../../index.html#key580">tip 317</a>, <a href="../../../../index.html#key275">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|



















|








138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::base64</b> package provides a command
creating a channel transformation which base64 encodes data written to
it, and decodes the data read from it.</p>
<p>A related transformations in this module is
<b class="package"><a href="hex.html">tcl::transform::hex</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::base64</b> <i class="arg">chan</i></a></dt>
<dd><p>This command creates a base64 transformation on top of the channel
<i class="arg">chan</i> and returns its handle.</p></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key584">base64</a>, <a href="../../../../index.html#key275">channel transformation</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key276">tip 230</a>, <a href="../../../../index.html#key583">tip 317</a>, <a href="../../../../index.html#key277">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_transform/vt_counter.html.

143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
additionally counts the bytes it has seen for each direction and
stores these counts in Tcl variables specified at construction time.</p>
<p>Related transformations in this module are
<b class="package"><a href="adler32.html">tcl::transform::adler32</a></b>,
<b class="package"><a href="vt_crc32.html">tcl::transform::crc32</a></b>,
<b class="package"><a href="identity.html">tcl::transform::identity</a></b>, and
<b class="package"><a href="observe.html">tcl::transform::observe</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::counter</b> <i class="arg">chan</i> <b class="option">-option</b> <i class="arg">value</i>...</a></dt>
<dd><p>This command creates a counter transformation on top of the channel







|







143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
additionally counts the bytes it has seen for each direction and
stores these counts in Tcl variables specified at construction time.</p>
<p>Related transformations in this module are
<b class="package"><a href="adler32.html">tcl::transform::adler32</a></b>,
<b class="package"><a href="vt_crc32.html">tcl::transform::crc32</a></b>,
<b class="package"><a href="identity.html">tcl::transform::identity</a></b>, and
<b class="package"><a href="observe.html">tcl::transform::observe</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::counter</b> <i class="arg">chan</i> <b class="option">-option</b> <i class="arg">value</i>...</a></dt>
<dd><p>This command creates a counter transformation on top of the channel
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key273">channel transformation</a>, <a href="../../../../index.html#key272">counter</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key274">tip 230</a>, <a href="../../../../index.html#key275">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key275">channel transformation</a>, <a href="../../../../index.html#key274">counter</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key276">tip 230</a>, <a href="../../../../index.html#key277">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_transform/vt_crc32.html.

144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
has seen for each direction and stores them in Tcl variables specified
at construction time. The checksum in question is zlib's crc32.</p>
<p>Related transformations in this module are
<b class="package"><a href="adler32.html">tcl::transform::adler32</a></b>,
<b class="package"><a href="vt_counter.html">tcl::transform::counter</a></b>,
<b class="package"><a href="identity.html">tcl::transform::identity</a></b>, and
<b class="package"><a href="observe.html">tcl::transform::observe</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::crc32</b> <i class="arg">chan</i> <b class="option">-option</b> <i class="arg">value</i>...</a></dt>
<dd><p>This command creates a crc32 checksumming transformation on top of







|







144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
has seen for each direction and stores them in Tcl variables specified
at construction time. The checksum in question is zlib's crc32.</p>
<p>Related transformations in this module are
<b class="package"><a href="adler32.html">tcl::transform::adler32</a></b>,
<b class="package"><a href="vt_counter.html">tcl::transform::counter</a></b>,
<b class="package"><a href="identity.html">tcl::transform::identity</a></b>, and
<b class="package"><a href="observe.html">tcl::transform::observe</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::crc32</b> <i class="arg">chan</i> <b class="option">-option</b> <i class="arg">value</i>...</a></dt>
<dd><p>This command creates a crc32 checksumming transformation on top of
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key273">channel transformation</a>, <a href="../../../../index.html#key150">checksum</a>, <a href="../../../../index.html#key147">crc32</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key274">tip 230</a>, <a href="../../../../index.html#key275">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key275">channel transformation</a>, <a href="../../../../index.html#key150">checksum</a>, <a href="../../../../index.html#key147">crc32</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key276">tip 230</a>, <a href="../../../../index.html#key277">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/virtchannel_transform/vt_otp.html.

138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::otp</b> package provides a command creating
a channel transformation which uses externally provided one-time pads
to perform encryption (on writing) and decryption (on reading).</p>
<p>A related transformations in this module is
<b class="package"><a href="rot.html">tcl::transform::rot</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key761">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::otp</b> <i class="arg">chan</i> <i class="arg">keychanw</i> <i class="arg">keychanr</i></a></dt>
<dd><p>This command creates a one-time pad based encryption transformation on







|







138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">tcl::transform::otp</b> package provides a command creating
a channel transformation which uses externally provided one-time pads
to perform encryption (on writing) and decryption (on reading).</p>
<p>A related transformations in this module is
<b class="package"><a href="rot.html">tcl::transform::rot</a></b>.</p>
<p>The internal <b class="package"><a href="../../../../index.html#key765">TclOO</a></b> class implementing the transform
handler is a sub-class of the <b class="package"><a href="../virtchannel_core/transformcore.html">tcl::transform::core</a></b>
framework.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">API</a></h2>
<dl class="definitions">
<dt><a name="1"><b class="cmd">::tcl::transform::otp</b> <i class="arg">chan</i> <i class="arg">keychanw</i> <i class="arg">keychanr</i></a></dt>
<dd><p>This command creates a one-time pad based encryption transformation on
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key273">channel transformation</a>, <a href="../../../../index.html#key169">cipher</a>, <a href="../../../../index.html#key370">decryption</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key371">one time pad</a>, <a href="../../../../index.html#key372">otp</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key274">tip 230</a>, <a href="../../../../index.html#key275">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a>, <a href="../../../../index.html#key369">xor</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|








162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
bugs and other problems.
Please report such in the category <em>virtchannel</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key275">channel transformation</a>, <a href="../../../../index.html#key169">cipher</a>, <a href="../../../../index.html#key372">decryption</a>, <a href="../../../../index.html#key127">encryption</a>, <a href="../../../../index.html#key373">one time pad</a>, <a href="../../../../index.html#key374">otp</a>, <a href="../../../../index.html#key47">reflected channel</a>, <a href="../../../../index.html#key276">tip 230</a>, <a href="../../../../index.html#key277">transformation</a>, <a href="../../../../index.html#key44">virtual channel</a>, <a href="../../../../index.html#key371">xor</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Channels</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2009 Andreas Kupries &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/websocket/websocket.html.

458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
}
set sock [::websocket::open ws://echo.websocket.org/ handler]
after 400 test $sock
vwait forever
</pre>
</div>
<div id="section5" class="section"><h2><a name="section5">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key327">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key327">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key327">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key327">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section6" class="section"><h2><a name="section6">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>websocket</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../../../../index.html#key441">http</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key441">http</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key291">net</a>, <a href="../../../../index.html#key442">rfc 6455</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>







|


|







|
|

















|


|





458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
}
set sock [::websocket::open ws://echo.websocket.org/ handler]
after 400 test $sock
vwait forever
</pre>
</div>
<div id="section5" class="section"><h2><a name="section5">TLS Security Considerations</a></h2>
<p>This package uses the <b class="package"><a href="../../../../index.html#key329">TLS</a></b> package to handle the security
for <b class="const">https</b> urls and other socket connections.</p>
<p>Policy decisions like the set of protocols to support and what
ciphers to use are not the responsibility of <b class="package"><a href="../../../../index.html#key329">TLS</a></b>, nor of
this package itself however.
Such decisions are the responsibility of whichever application is
using the package, and are likely influenced by the set of servers
the application will talk to as well.</p>
<p>For example, in light of the recent
<a href="http://googleonlinesecurity.blogspot.co.uk/2014/10/this-poodle-bites-exploiting-ssl-30.html">POODLE attack</a> discovered by Google many servers will disable support
for the SSLv3 protocol.
To handle this change the applications using <b class="package"><a href="../../../../index.html#key329">TLS</a></b> must be
patched, and not this package, nor <b class="package"><a href="../../../../index.html#key329">TLS</a></b> itself.
Such a patch may be as simple as generally activating <b class="const">tls1</b>
support, as shown in the example below.</p>
<pre class="example">
    package require tls
    tls::init -tls1 1 ;# forcibly activate support for the TLS1 protocol
    ... your own application code ...
</pre>
</div>
<div id="section6" class="section"><h2><a name="section6">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>websocket</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../../../../index.html#key443">http</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key443">http</a>, <a href="../../../../index.html#key131">internet</a>, <a href="../../../../index.html#key293">net</a>, <a href="../../../../index.html#key444">rfc 6455</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Networking</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/wip/wip.html.

401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
bugs and other problems.
Please report such in the category <em>wip</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key38">interpreter</a>, <a href="../../../../index.html#key298">list</a>, <a href="../../../../index.html#key268">word</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2010 Andreas Kupries &lt;[email protected]&gt;</p>
</div>







|







401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
bugs and other problems.
Please report such in the category <em>wip</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key38">interpreter</a>, <a href="../../../../index.html#key300">list</a>, <a href="../../../../index.html#key270">word</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>Programming tools</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2007-2010 Andreas Kupries &lt;[email protected]&gt;</p>
</div>

Changes to embedded/www/tcllib/files/modules/yaml/huddle.html.

153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<li><a href="#16"><b class="cmd">huddle compile</b> <i class="arg">spec</i> <i class="arg">data</i></a></li>
<li><a href="#17"><b class="cmd">huddle isHuddle</b> <i class="arg">object</i></a></li>
<li><a href="#18"><b class="cmd">huddle checkHuddle</b> <i class="arg">object</i></a></li>
<li><a href="#19"><b class="cmd">huddle to_node</b> <i class="arg">object</i> <span class="opt">?<i class="arg">tag</i>?</span></a></li>
<li><a href="#20"><b class="cmd">huddle wrap</b> <i class="arg">tag</i> <i class="arg">src</i></a></li>
<li><a href="#21"><b class="cmd">huddle call</b> <i class="arg">tag</i> <i class="arg">command</i> <i class="arg">args</i></a></li>
<li><a href="#22"><b class="cmd">huddle addType</b> <i class="arg">callback</i></a></li>
<li><a href="#23"><b class="cmd"><a href="../../../../index.html#key534">callback</a></b> <i class="arg">command</i> <span class="opt">?<i class="arg">args</i>?</span></a></li>
<li><a href="#24"><b class="cmd">setting</b></a></li>
<li><a href="#25"><b class="cmd">get_sub</b> <i class="arg">src</i> <i class="arg">key</i></a></li>
<li><a href="#26"><b class="cmd">strip</b> <i class="arg">src</i></a></li>
<li><a href="#27"><b class="cmd"><a href="../../../../index.html#key297">set</a></b> <i class="arg">src</i> <i class="arg">key</i> <i class="arg">value</i></a></li>
<li><a href="#28"><b class="cmd"><a href="../../../../index.html#key226">remove</a></b> <i class="arg">src</i> <i class="arg">key</i> <i class="arg">value</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Huddle provides a generic Tcl-based serialization/intermediary format.
Currently, each node is wrapped in a tag with simple type information.</p>







|



|







153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<li><a href="#16"><b class="cmd">huddle compile</b> <i class="arg">spec</i> <i class="arg">data</i></a></li>
<li><a href="#17"><b class="cmd">huddle isHuddle</b> <i class="arg">object</i></a></li>
<li><a href="#18"><b class="cmd">huddle checkHuddle</b> <i class="arg">object</i></a></li>
<li><a href="#19"><b class="cmd">huddle to_node</b> <i class="arg">object</i> <span class="opt">?<i class="arg">tag</i>?</span></a></li>
<li><a href="#20"><b class="cmd">huddle wrap</b> <i class="arg">tag</i> <i class="arg">src</i></a></li>
<li><a href="#21"><b class="cmd">huddle call</b> <i class="arg">tag</i> <i class="arg">command</i> <i class="arg">args</i></a></li>
<li><a href="#22"><b class="cmd">huddle addType</b> <i class="arg">callback</i></a></li>
<li><a href="#23"><b class="cmd"><a href="../../../../index.html#key537">callback</a></b> <i class="arg">command</i> <span class="opt">?<i class="arg">args</i>?</span></a></li>
<li><a href="#24"><b class="cmd">setting</b></a></li>
<li><a href="#25"><b class="cmd">get_sub</b> <i class="arg">src</i> <i class="arg">key</i></a></li>
<li><a href="#26"><b class="cmd">strip</b> <i class="arg">src</i></a></li>
<li><a href="#27"><b class="cmd"><a href="../../../../index.html#key299">set</a></b> <i class="arg">src</i> <i class="arg">key</i> <i class="arg">value</i></a></li>
<li><a href="#28"><b class="cmd"><a href="../../../../index.html#key226">remove</a></b> <i class="arg">src</i> <i class="arg">key</i> <i class="arg">value</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Huddle provides a generic Tcl-based serialization/intermediary format.
Currently, each node is wrapped in a tag with simple type information.</p>
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
<dd><p>callback function name for additional type.</p></dd>
</dl></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">TYPE CALLBACK</a></h2>
<p>The definition of callback for user-type.</p>
<dl class="definitions">
<dt><a name="23"><b class="cmd"><a href="../../../../index.html#key534">callback</a></b> <i class="arg">command</i> <span class="opt">?<i class="arg">args</i>?</span></a></dt>
<dd><dl class="options">
<dt><b class="option">command</b></dt>
<dd><p>huddle subcomand which is needed to reply by the callback.</p></dd>
<dt><b class="option">args</b></dt>
<dd><p>arguments of subcommand. The number of list of arguments is different for each subcommand.</p></dd>
</dl></dd>
</dl>







|







371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
<dd><p>callback function name for additional type.</p></dd>
</dl></dd>
</dl>
</div>
<div id="section3" class="section"><h2><a name="section3">TYPE CALLBACK</a></h2>
<p>The definition of callback for user-type.</p>
<dl class="definitions">
<dt><a name="23"><b class="cmd"><a href="../../../../index.html#key537">callback</a></b> <i class="arg">command</i> <span class="opt">?<i class="arg">args</i>?</span></a></dt>
<dd><dl class="options">
<dt><b class="option">command</b></dt>
<dd><p>huddle subcomand which is needed to reply by the callback.</p></dd>
<dt><b class="option">args</b></dt>
<dd><p>arguments of subcommand. The number of list of arguments is different for each subcommand.</p></dd>
</dl></dd>
</dl>
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
<dd><p>returns a sub node specified by <i class="arg">key</i>.</p>
<dl class="options">
<dt><b class="option">src</b></dt>
<dd><p>a node content in huddle object.</p></dd>
</dl></dd>
<dt><a name="26"><b class="cmd">strip</b> <i class="arg">src</i></a></dt>
<dd><p>returns stripped node contents. if the type has child nodes, every node must be stripped.</p></dd>
<dt><a name="27"><b class="cmd"><a href="../../../../index.html#key297">set</a></b> <i class="arg">src</i> <i class="arg">key</i> <i class="arg">value</i></a></dt>
<dd><p>sets a sub-node from the tagged-content, and returns self.</p></dd>
<dt><a name="28"><b class="cmd"><a href="../../../../index.html#key226">remove</a></b> <i class="arg">src</i> <i class="arg">key</i> <i class="arg">value</i></a></dt>
<dd><p>removes a sub-node from the tagged-content, and returns self.</p></dd>
</dl>
<p><b class="cmd">strip</b> must be defined at all types.
<b class="cmd">get_sub</b> must be defined at container types.
<b class="cmd">set/remove</b> shuould be defined, if you call them.</p>







|







399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
<dd><p>returns a sub node specified by <i class="arg">key</i>.</p>
<dl class="options">
<dt><b class="option">src</b></dt>
<dd><p>a node content in huddle object.</p></dd>
</dl></dd>
<dt><a name="26"><b class="cmd">strip</b> <i class="arg">src</i></a></dt>
<dd><p>returns stripped node contents. if the type has child nodes, every node must be stripped.</p></dd>
<dt><a name="27"><b class="cmd"><a href="../../../../index.html#key299">set</a></b> <i class="arg">src</i> <i class="arg">key</i> <i class="arg">value</i></a></dt>
<dd><p>sets a sub-node from the tagged-content, and returns self.</p></dd>
<dt><a name="28"><b class="cmd"><a href="../../../../index.html#key226">remove</a></b> <i class="arg">src</i> <i class="arg">key</i> <i class="arg">value</i></a></dt>
<dd><p>removes a sub-node from the tagged-content, and returns self.</p></dd>
</dl>
<p><b class="cmd">strip</b> must be defined at all types.
<b class="cmd">get_sub</b> must be defined at container types.
<b class="cmd">set/remove</b> shuould be defined, if you call them.</p>
591
592
593
594
595
596
597
598
599
600
601
602
603
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="yaml.html">yaml</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key203">data exchange</a>, <a href="../../../../index.html#key202">exchange format</a>, <a href="../../../../index.html#key582">huddle</a>, <a href="../../../../index.html#key204">json</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key190">text processing</a>, <a href="../../../../index.html#key583">yaml</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 KATO Kanryu &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|





591
592
593
594
595
596
597
598
599
600
601
602
603
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="yaml.html">yaml</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key203">data exchange</a>, <a href="../../../../index.html#key202">exchange format</a>, <a href="../../../../index.html#key585">huddle</a>, <a href="../../../../index.html#key204">json</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key190">text processing</a>, <a href="../../../../index.html#key586">yaml</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 KATO Kanryu &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/yaml/yaml.html.

274
275
276
277
278
279
280
281
282
283
284
285
286
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../base64/base64.html">base64</a>, <a href="huddle.html">huddle</a>, <a href="../json/json.html">json</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key203">data exchange</a>, <a href="../../../../index.html#key582">huddle</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key190">text processing</a>, <a href="../../../../index.html#key583">yaml</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 KATO Kanryu &lt;[email protected]&gt;</p>
</div>
</div></body></html>







|





274
275
276
277
278
279
280
281
282
283
284
285
286
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="see-also" class="section"><h2><a name="see-also">See Also</a></h2>
<p><a href="../base64/base64.html">base64</a>, <a href="huddle.html">huddle</a>, <a href="../json/json.html">json</a></p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key203">data exchange</a>, <a href="../../../../index.html#key585">huddle</a>, <a href="../../../../index.html#key26">parsing</a>, <a href="../../../../index.html#key190">text processing</a>, <a href="../../../../index.html#key586">yaml</a></p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008 KATO Kanryu &lt;[email protected]&gt;</p>
</div>
</div></body></html>

Changes to embedded/www/tcllib/files/modules/zip/encode.html.

186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
bugs and other problems.
Please report such in the category <em>zipfile</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key262">compression</a>, <a href="../../../../index.html#key42">zip</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>File</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008-2009 Andreas Kupries</p>
</div>







|







186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
bugs and other problems.
Please report such in the category <em>zipfile</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
</div>
<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
<p><a href="../../../../index.html#key264">compression</a>, <a href="../../../../index.html#key42">zip</a></p>
</div>
<div id="category" class="section"><h2><a name="category">Category</a></h2>
<p>File</p>
</div>
<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
<p>Copyright &copy; 2008-2009 Andreas Kupries</p>
</div>

Changes to embedded/www/tcllib/toc.html.

137
138
139
140
141
142
143




144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802




803
804
805
806
807
808
809
<td class="#tocright">Perform a 16bit Cyclic Redundancy Check</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/crc/crc32.html">crc32</a></td>
<td class="#tocright">Perform a 32bit Cyclic Redundancy Check</td>
</tr>
<tr class="#tocodd"  >




<td class="#tocleft" ><a href="files/modules/csv/csv.html">csv</a></td>
<td class="#tocright">Procedures to handle CSV data.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/debug/debug.html">debug</a></td>
<td class="#tocright">debug narrative - core</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/debug/debug_caller.html">debug::caller</a></td>
<td class="#tocright">debug narrative - caller</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/debug/debug_heartbeat.html">debug::heartbeat</a></td>
<td class="#tocright">debug narrative - heartbeat</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/debug/debug_timestamp.html">debug::timestamp</a></td>
<td class="#tocright">debug narrative - timestamping</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/interp/deleg_method.html">deleg_method</a></td>
<td class="#tocright">Creation of comm delegates (snit methods)</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/interp/deleg_proc.html">deleg_proc</a></td>
<td class="#tocright">Creation of comm delegates (procedures)</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/des/des.html">des</a></td>
<td class="#tocright">Implementation of the DES and triple-DES ciphers</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/dns/tcllib_dns.html">dns</a></td>
<td class="#tocright">Tcl Domain Name Service Client</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/docidx_intro.html">docidx_intro</a></td>
<td class="#tocright">docidx introduction</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/docidx_lang_cmdref.html">docidx_lang_cmdref</a></td>
<td class="#tocright">docidx language command reference</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/docidx_lang_faq.html">docidx_lang_faq</a></td>
<td class="#tocright">docidx language faq</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/docidx_lang_intro.html">docidx_lang_intro</a></td>
<td class="#tocright">docidx language introduction</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/docidx_lang_syntax.html">docidx_lang_syntax</a></td>
<td class="#tocright">docidx language syntax</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/docidx_plugin_apiref.html">docidx_plugin_apiref</a></td>
<td class="#tocright">docidx plugin API reference</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/docstrip/docstrip.html">docstrip</a></td>
<td class="#tocright">Docstrip style source code extraction</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/docstrip/docstrip_util.html">docstrip_util</a></td>
<td class="#tocright">Docstrip-related utilities</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc_intro.html">doctoc_intro</a></td>
<td class="#tocright">doctoc introduction</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc_lang_cmdref.html">doctoc_lang_cmdref</a></td>
<td class="#tocright">doctoc language command reference</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc_lang_faq.html">doctoc_lang_faq</a></td>
<td class="#tocright">doctoc language faq</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc_lang_intro.html">doctoc_lang_intro</a></td>
<td class="#tocright">doctoc language introduction</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc_lang_syntax.html">doctoc_lang_syntax</a></td>
<td class="#tocright">doctoc language syntax</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc_plugin_apiref.html">doctoc_plugin_apiref</a></td>
<td class="#tocright">doctoc plugin API reference</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctools.html">doctools</a></td>
<td class="#tocright">doctools - Processing documents</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_introduction.html">doctools2idx_introduction</a></td>
<td class="#tocright">DocTools - Keyword indices</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_introduction.html">doctools2toc_introduction</a></td>
<td class="#tocright">DocTools - Tables of Contents</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/changelog.html">doctools::changelog</a></td>
<td class="#tocright">Processing text in Emacs ChangeLog format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/cvs.html">doctools::cvs</a></td>
<td class="#tocright">Processing text in 'cvs log' format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2base/html_cssdefaults.html">doctools::html::cssdefaults</a></td>
<td class="#tocright">Default CSS style for HTML export plugins</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/docidx.html">doctools::idx</a></td>
<td class="#tocright">docidx - Processing indices</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_container.html">doctools::idx</a></td>
<td class="#tocright">Holding keyword indices</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_export.html">doctools::idx::export</a></td>
<td class="#tocright">Exporting keyword indices</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/export_docidx.html">doctools::idx::export::docidx</a></td>
<td class="#tocright">docidx export plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_export_html.html">doctools::idx::export::html</a></td>
<td class="#tocright">HTML export plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_export_json.html">doctools::idx::export::json</a></td>
<td class="#tocright">JSON export plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_export_nroff.html">doctools::idx::export::nroff</a></td>
<td class="#tocright">nroff export plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_export_text.html">doctools::idx::export::text</a></td>
<td class="#tocright">plain text export plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_export_wiki.html">doctools::idx::export::wiki</a></td>
<td class="#tocright">wiki export plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_import.html">doctools::idx::import</a></td>
<td class="#tocright">Importing keyword indices</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/import_docidx.html">doctools::idx::import::docidx</a></td>
<td class="#tocright">docidx import plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_import_json.html">doctools::idx::import::json</a></td>
<td class="#tocright">JSON import plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_parse.html">doctools::idx::parse</a></td>
<td class="#tocright">Parsing text in docidx format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_structure.html">doctools::idx::structure</a></td>
<td class="#tocright">Docidx serialization utilities</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2base/tcllib_msgcat.html">doctools::msgcat</a></td>
<td class="#tocright">Message catalog management for the various document parsers</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_msgcat_c.html">doctools::msgcat::idx::c</a></td>
<td class="#tocright">Message catalog for the docidx parser (C)</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_msgcat_de.html">doctools::msgcat::idx::de</a></td>
<td class="#tocright">Message catalog for the docidx parser (DE)</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_msgcat_en.html">doctools::msgcat::idx::en</a></td>
<td class="#tocright">Message catalog for the docidx parser (EN)</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_msgcat_fr.html">doctools::msgcat::idx::fr</a></td>
<td class="#tocright">Message catalog for the docidx parser (FR)</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_msgcat_c.html">doctools::msgcat::toc::c</a></td>
<td class="#tocright">Message catalog for the doctoc parser (C)</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_msgcat_de.html">doctools::msgcat::toc::de</a></td>
<td class="#tocright">Message catalog for the doctoc parser (DE)</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_msgcat_en.html">doctools::msgcat::toc::en</a></td>
<td class="#tocright">Message catalog for the doctoc parser (EN)</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_msgcat_fr.html">doctools::msgcat::toc::fr</a></td>
<td class="#tocright">Message catalog for the doctoc parser (FR)</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2base/nroff_manmacros.html">doctools::nroff::man_macros</a></td>
<td class="#tocright">Default CSS style for NROFF export plugins</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2base/tcl_parse.html">doctools::tcl::parse</a></td>
<td class="#tocright">Processing text in 'subst -novariables' format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_container.html">doctools::toc</a></td>
<td class="#tocright">Holding tables of contents</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc.html">doctools::toc</a></td>
<td class="#tocright">doctoc - Processing tables of contents</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_export.html">doctools::toc::export</a></td>
<td class="#tocright">Exporting tables of contents</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/export_doctoc.html">doctools::toc::export::doctoc</a></td>
<td class="#tocright">doctoc export plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_export_html.html">doctools::toc::export::html</a></td>
<td class="#tocright">HTML export plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_export_json.html">doctools::toc::export::json</a></td>
<td class="#tocright">JSON export plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_export_nroff.html">doctools::toc::export::nroff</a></td>
<td class="#tocright">nroff export plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_export_text.html">doctools::toc::export::text</a></td>
<td class="#tocright">plain text export plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_export_wiki.html">doctools::toc::export::wiki</a></td>
<td class="#tocright">wiki export plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_import.html">doctools::toc::import</a></td>
<td class="#tocright">Importing keyword indices</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/import_doctoc.html">doctools::toc::import::doctoc</a></td>
<td class="#tocright">doctoc import plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_import_json.html">doctools::toc::import::json</a></td>
<td class="#tocright">JSON import plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_parse.html">doctools::toc::parse</a></td>
<td class="#tocright">Parsing text in doctoc format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_structure.html">doctools::toc::structure</a></td>
<td class="#tocright">Doctoc serialization utilities</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctools_intro.html">doctools_intro</a></td>
<td class="#tocright">doctools introduction</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctools_lang_cmdref.html">doctools_lang_cmdref</a></td>
<td class="#tocright">doctools language command reference</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctools_lang_faq.html">doctools_lang_faq</a></td>
<td class="#tocright">doctools language faq</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctools_lang_intro.html">doctools_lang_intro</a></td>
<td class="#tocright">doctools language introduction</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctools_lang_syntax.html">doctools_lang_syntax</a></td>
<td class="#tocright">doctools language syntax</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctools_plugin_apiref.html">doctools_plugin_apiref</a></td>
<td class="#tocright">doctools plugin API reference</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/apps/dtplite.html">dtplite</a></td>
<td class="#tocright">Lightweight DocTools Markup Processor</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/dtplite/pkg_dtplite.html">dtplite</a></td>
<td class="#tocright">Lightweight DocTools Markup Processor</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/fileutil/fileutil.html">fileutil</a></td>
<td class="#tocright">Procedures implementing some file utilities</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/fumagic/cfront.html">fileutil::magic::cfront</a></td>
<td class="#tocright">Generator core for compiler of magic(5) files</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/fumagic/cgen.html">fileutil::magic::cgen</a></td>
<td class="#tocright">Generator core for compiler of magic(5) files</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/fumagic/filetypes.html">fileutil::magic::filetype</a></td>
<td class="#tocright">Procedures implementing file-type recognition</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/fumagic/mimetypes.html">fileutil::magic::mimetype</a></td>
<td class="#tocright">Procedures implementing mime-type recognition</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/fumagic/rtcore.html">fileutil::magic::rt</a></td>
<td class="#tocright">Runtime core for file type recognition engines written in pure Tcl</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/fileutil/multi.html">fileutil::multi</a></td>
<td class="#tocright">Multi-file operation, scatter/gather, standard object</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/fileutil/multiop.html">fileutil::multi::op</a></td>
<td class="#tocright">Multi-file operation, scatter/gather</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/fileutil/traverse.html">fileutil_traverse</a></td>
<td class="#tocright">Iterative directory traversal</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/ftp/ftp.html">ftp</a></td>
<td class="#tocright">Client-side tcl implementation of the ftp protocol</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/ftp/ftp_geturl.html">ftp::geturl</a></td>
<td class="#tocright">Uri handler for ftp urls</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/ftpd/ftpd.html">ftpd</a></td>
<td class="#tocright">Tcl FTP server implementation</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/generator/generator.html">generator</a></td>
<td class="#tocright">Procedures for creating and using generators.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/gpx/gpx.html">gpx</a></td>
<td class="#tocright">Extracts waypoints, tracks and routes from GPX files</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_aycock/aycock.html">grammar::aycock</a></td>
<td class="#tocright">Aycock-Horspool-Earley parser generator for Tcl</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_fa/fa.html">grammar::fa</a></td>
<td class="#tocright">Create and manipulate finite automatons</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_fa/dacceptor.html">grammar::fa::dacceptor</a></td>
<td class="#tocright">Create and use deterministic acceptors</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_fa/dexec.html">grammar::fa::dexec</a></td>
<td class="#tocright">Execute deterministic finite automatons</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_fa/faop.html">grammar::fa::op</a></td>
<td class="#tocright">Operations on finite automatons</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_cpu.html">grammar::me::cpu</a></td>
<td class="#tocright">Virtual machine implementation II for parsing token streams</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_cpucore.html">grammar::me::cpu::core</a></td>
<td class="#tocright">ME virtual machine state manipulation</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_me/gasm.html">grammar::me::cpu::gasm</a></td>
<td class="#tocright">ME assembler</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_tcl.html">grammar::me::tcl</a></td>
<td class="#tocright">Virtual machine implementation I for parsing token streams</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_util.html">grammar::me::util</a></td>
<td class="#tocright">AST utilities</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_ast.html">grammar::me_ast</a></td>
<td class="#tocright">Various representations of ASTs</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_intro.html">grammar::me_intro</a></td>
<td class="#tocright">Introduction to virtual machines for parsing token streams</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_vm.html">grammar::me_vm</a></td>
<td class="#tocright">Virtual machine for parsing token streams</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_peg/peg.html">grammar::peg</a></td>
<td class="#tocright">Create and manipulate parsing expression grammars</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_peg/peg_interp.html">grammar::peg::interp</a></td>
<td class="#tocright">Interpreter for parsing expression grammars</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/hook/hook.html">hook</a></td>
<td class="#tocright">Hooks</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/html/html.html">html</a></td>
<td class="#tocright">Procedures to generate HTML structures</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/htmlparse/htmlparse.html">htmlparse</a></td>
<td class="#tocright">Procedures to parse HTML strings</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/yaml/huddle.html">huddle</a></td>
<td class="#tocright">Create and manipulate huddle object</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/ident/ident.html">ident</a></td>
<td class="#tocright">Ident protocol client</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/imap4/imap4.html">imap4</a></td>
<td class="#tocright">imap client-side tcl implementation of imap protocol</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/inifile/ini.html">inifile</a></td>
<td class="#tocright">Parsing of Windows INI files</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/interp/tcllib_interp.html">interp</a></td>
<td class="#tocright">Interp creation and aliasing</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/irc/irc.html">irc</a></td>
<td class="#tocright">Create IRC connection and interface.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/javascript/javascript.html">javascript</a></td>
<td class="#tocright">Procedures to generate HTML and Java Script structures.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/jpeg/jpeg.html">jpeg</a></td>
<td class="#tocright">JPEG querying and manipulation of meta data</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/json/json.html">json</a></td>
<td class="#tocright">JSON parser</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/json/json_write.html">json::write</a></td>
<td class="#tocright">JSON generation</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/lambda/lambda.html">lambda</a></td>
<td class="#tocright">Utility commands for anonymous procedures</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/ldap/ldap.html">ldap</a></td>
<td class="#tocright">LDAP client</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/ldap/ldapx.html">ldapx</a></td>
<td class="#tocright">LDAP extended object interface</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/log/log.html">log</a></td>
<td class="#tocright">Procedures to log messages of libraries and applications.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/log/logger.html">logger</a></td>
<td class="#tocright">System to control logging of events.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/log/loggerAppender.html">logger::appender</a></td>
<td class="#tocright">Collection of predefined appenders for logger</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/log/loggerUtils.html">logger::utils</a></td>
<td class="#tocright">Utilities for logger</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/map/map_geocode_nominatim.html">map::geocode::nominatim</a></td>
<td class="#tocright">Resolving geographical names with a Nominatim service</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/map/map_slippy.html">map::slippy</a></td>
<td class="#tocright">Common code for slippy based map packages</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/map/map_slippy_cache.html">map::slippy::cache</a></td>
<td class="#tocright">Management of a tile cache in the local filesystem</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/map/map_slippy_fetcher.html">map::slippy::fetcher</a></td>
<td class="#tocright">Accessing a server providing tiles for slippy-based maps</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/mapproj/mapproj.html">mapproj</a></td>
<td class="#tocright">Map projection routines</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/math.html">math</a></td>
<td class="#tocright">Tcl Math Library</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/bigfloat.html">math::bigfloat</a></td>
<td class="#tocright">Arbitrary precision floating-point numbers</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/bignum.html">math::bignum</a></td>
<td class="#tocright">Arbitrary precision integer numbers</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/calculus.html">math::calculus</a></td>
<td class="#tocright">Integration and ordinary differential equations</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/romberg.html">math::calculus::romberg</a></td>
<td class="#tocright">Romberg integration</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/symdiff.html">math::calculus::symdiff</a></td>
<td class="#tocright">Symbolic differentiation for Tcl</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/combinatorics.html">math::combinatorics</a></td>
<td class="#tocright">Combinatorial functions in the Tcl Math Library</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/qcomplex.html">math::complexnumbers</a></td>
<td class="#tocright">Straightforward complex number package</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/constants.html">math::constants</a></td>
<td class="#tocright">Mathematical and numerical constants</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/decimal.html">math::decimal</a></td>
<td class="#tocright">General decimal arithmetic</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/fourier.html">math::fourier</a></td>
<td class="#tocright">Discrete and fast fourier transforms</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/fuzzy.html">math::fuzzy</a></td>
<td class="#tocright">Fuzzy comparison of floating-point numbers</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/math_geometry.html">math::geometry</a></td>
<td class="#tocright">Geometrical computations</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/interpolate.html">math::interpolate</a></td>
<td class="#tocright">Interpolation routines</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/linalg.html">math::linearalgebra</a></td>
<td class="#tocright">Linear Algebra</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/numtheory.html">math::numtheory</a></td>
<td class="#tocright">Number Theory</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/optimize.html">math::optimize</a></td>
<td class="#tocright">Optimisation routines</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/polynomials.html">math::polynomials</a></td>
<td class="#tocright">Polynomial functions</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/rational_funcs.html">math::rationalfunctions</a></td>
<td class="#tocright">Polynomial functions</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/roman.html">math::roman</a></td>
<td class="#tocright">Tools for creating and manipulating roman numerals</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/special.html">math::special</a></td>
<td class="#tocright">Special mathematical functions</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/statistics.html">math::statistics</a></td>
<td class="#tocright">Basic statistical functions and procedures</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/md4/md4.html">md4</a></td>
<td class="#tocright">MD4 Message-Digest Algorithm</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/md5/md5.html">md5</a></td>
<td class="#tocright">MD5 Message-Digest Algorithm</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/md5crypt/md5crypt.html">md5crypt</a></td>
<td class="#tocright">MD5-based password encryption</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/mime/mime.html">mime</a></td>
<td class="#tocright">Manipulation of MIME body parts</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/mpexpand.html">mpexpand</a></td>
<td class="#tocright">Markup processor</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/multiplexer/multiplexer.html">multiplexer</a></td>
<td class="#tocright">One-to-many communication with sockets.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/nns/nns_client.html">nameserv</a></td>
<td class="#tocright">Name service facility, Client</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/nns/nns_auto.html">nameserv::auto</a></td>
<td class="#tocright">Name service facility, Client Extension</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/nns/nns_common.html">nameserv::common</a></td>
<td class="#tocright">Name service facility, shared definitions</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/nns/nns_protocol.html">nameserv::protocol</a></td>
<td class="#tocright">Name service facility, client/server protocol</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/nns/nns_server.html">nameserv::server</a></td>
<td class="#tocright">Name service facility, Server</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/namespacex/namespacex.html">namespacex</a></td>
<td class="#tocright">Namespace utility commands</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/ncgi/ncgi.html">ncgi</a></td>
<td class="#tocright">Procedures to manipulate CGI values.</td>
</tr>




<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/nmea/nmea.html">nmea</a></td>
<td class="#tocright">Process NMEA data</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/apps/nns.html">nns</a></td>
<td class="#tocright">Name service facility, Commandline Client Application</td>







>
>
>
>



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



>
>
>
>







137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
<td class="#tocright">Perform a 16bit Cyclic Redundancy Check</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/crc/crc32.html">crc32</a></td>
<td class="#tocright">Perform a 32bit Cyclic Redundancy Check</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/cron/cron.html">cron</a></td>
<td class="#tocright">Tool for automating the period callback of commands</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/csv/csv.html">csv</a></td>
<td class="#tocright">Procedures to handle CSV data.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/debug/debug.html">debug</a></td>
<td class="#tocright">debug narrative - core</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/debug/debug_caller.html">debug::caller</a></td>
<td class="#tocright">debug narrative - caller</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/debug/debug_heartbeat.html">debug::heartbeat</a></td>
<td class="#tocright">debug narrative - heartbeat</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/debug/debug_timestamp.html">debug::timestamp</a></td>
<td class="#tocright">debug narrative - timestamping</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/interp/deleg_method.html">deleg_method</a></td>
<td class="#tocright">Creation of comm delegates (snit methods)</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/interp/deleg_proc.html">deleg_proc</a></td>
<td class="#tocright">Creation of comm delegates (procedures)</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/des/des.html">des</a></td>
<td class="#tocright">Implementation of the DES and triple-DES ciphers</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/dns/tcllib_dns.html">dns</a></td>
<td class="#tocright">Tcl Domain Name Service Client</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/docidx_intro.html">docidx_intro</a></td>
<td class="#tocright">docidx introduction</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/docidx_lang_cmdref.html">docidx_lang_cmdref</a></td>
<td class="#tocright">docidx language command reference</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/docidx_lang_faq.html">docidx_lang_faq</a></td>
<td class="#tocright">docidx language faq</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/docidx_lang_intro.html">docidx_lang_intro</a></td>
<td class="#tocright">docidx language introduction</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/docidx_lang_syntax.html">docidx_lang_syntax</a></td>
<td class="#tocright">docidx language syntax</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/docidx_plugin_apiref.html">docidx_plugin_apiref</a></td>
<td class="#tocright">docidx plugin API reference</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/docstrip/docstrip.html">docstrip</a></td>
<td class="#tocright">Docstrip style source code extraction</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/docstrip/docstrip_util.html">docstrip_util</a></td>
<td class="#tocright">Docstrip-related utilities</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc_intro.html">doctoc_intro</a></td>
<td class="#tocright">doctoc introduction</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc_lang_cmdref.html">doctoc_lang_cmdref</a></td>
<td class="#tocright">doctoc language command reference</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc_lang_faq.html">doctoc_lang_faq</a></td>
<td class="#tocright">doctoc language faq</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc_lang_intro.html">doctoc_lang_intro</a></td>
<td class="#tocright">doctoc language introduction</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc_lang_syntax.html">doctoc_lang_syntax</a></td>
<td class="#tocright">doctoc language syntax</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc_plugin_apiref.html">doctoc_plugin_apiref</a></td>
<td class="#tocright">doctoc plugin API reference</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctools.html">doctools</a></td>
<td class="#tocright">doctools - Processing documents</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_introduction.html">doctools2idx_introduction</a></td>
<td class="#tocright">DocTools - Keyword indices</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_introduction.html">doctools2toc_introduction</a></td>
<td class="#tocright">DocTools - Tables of Contents</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/changelog.html">doctools::changelog</a></td>
<td class="#tocright">Processing text in Emacs ChangeLog format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/cvs.html">doctools::cvs</a></td>
<td class="#tocright">Processing text in 'cvs log' format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2base/html_cssdefaults.html">doctools::html::cssdefaults</a></td>
<td class="#tocright">Default CSS style for HTML export plugins</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/docidx.html">doctools::idx</a></td>
<td class="#tocright">docidx - Processing indices</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_container.html">doctools::idx</a></td>
<td class="#tocright">Holding keyword indices</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_export.html">doctools::idx::export</a></td>
<td class="#tocright">Exporting keyword indices</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/export_docidx.html">doctools::idx::export::docidx</a></td>
<td class="#tocright">docidx export plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_export_html.html">doctools::idx::export::html</a></td>
<td class="#tocright">HTML export plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_export_json.html">doctools::idx::export::json</a></td>
<td class="#tocright">JSON export plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_export_nroff.html">doctools::idx::export::nroff</a></td>
<td class="#tocright">nroff export plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_export_text.html">doctools::idx::export::text</a></td>
<td class="#tocright">plain text export plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_export_wiki.html">doctools::idx::export::wiki</a></td>
<td class="#tocright">wiki export plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_import.html">doctools::idx::import</a></td>
<td class="#tocright">Importing keyword indices</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/import_docidx.html">doctools::idx::import::docidx</a></td>
<td class="#tocright">docidx import plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_import_json.html">doctools::idx::import::json</a></td>
<td class="#tocright">JSON import plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_parse.html">doctools::idx::parse</a></td>
<td class="#tocright">Parsing text in docidx format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_structure.html">doctools::idx::structure</a></td>
<td class="#tocright">Docidx serialization utilities</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2base/tcllib_msgcat.html">doctools::msgcat</a></td>
<td class="#tocright">Message catalog management for the various document parsers</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_msgcat_c.html">doctools::msgcat::idx::c</a></td>
<td class="#tocright">Message catalog for the docidx parser (C)</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_msgcat_de.html">doctools::msgcat::idx::de</a></td>
<td class="#tocright">Message catalog for the docidx parser (DE)</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_msgcat_en.html">doctools::msgcat::idx::en</a></td>
<td class="#tocright">Message catalog for the docidx parser (EN)</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2idx/idx_msgcat_fr.html">doctools::msgcat::idx::fr</a></td>
<td class="#tocright">Message catalog for the docidx parser (FR)</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_msgcat_c.html">doctools::msgcat::toc::c</a></td>
<td class="#tocright">Message catalog for the doctoc parser (C)</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_msgcat_de.html">doctools::msgcat::toc::de</a></td>
<td class="#tocright">Message catalog for the doctoc parser (DE)</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_msgcat_en.html">doctools::msgcat::toc::en</a></td>
<td class="#tocright">Message catalog for the doctoc parser (EN)</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_msgcat_fr.html">doctools::msgcat::toc::fr</a></td>
<td class="#tocright">Message catalog for the doctoc parser (FR)</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2base/nroff_manmacros.html">doctools::nroff::man_macros</a></td>
<td class="#tocright">Default CSS style for NROFF export plugins</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2base/tcl_parse.html">doctools::tcl::parse</a></td>
<td class="#tocright">Processing text in 'subst -novariables' format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_container.html">doctools::toc</a></td>
<td class="#tocright">Holding tables of contents</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctoc.html">doctools::toc</a></td>
<td class="#tocright">doctoc - Processing tables of contents</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_export.html">doctools::toc::export</a></td>
<td class="#tocright">Exporting tables of contents</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/export_doctoc.html">doctools::toc::export::doctoc</a></td>
<td class="#tocright">doctoc export plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_export_html.html">doctools::toc::export::html</a></td>
<td class="#tocright">HTML export plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_export_json.html">doctools::toc::export::json</a></td>
<td class="#tocright">JSON export plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_export_nroff.html">doctools::toc::export::nroff</a></td>
<td class="#tocright">nroff export plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_export_text.html">doctools::toc::export::text</a></td>
<td class="#tocright">plain text export plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_export_wiki.html">doctools::toc::export::wiki</a></td>
<td class="#tocright">wiki export plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_import.html">doctools::toc::import</a></td>
<td class="#tocright">Importing keyword indices</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/import_doctoc.html">doctools::toc::import::doctoc</a></td>
<td class="#tocright">doctoc import plugin</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_import_json.html">doctools::toc::import::json</a></td>
<td class="#tocright">JSON import plugin</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_parse.html">doctools::toc::parse</a></td>
<td class="#tocright">Parsing text in doctoc format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools2toc/toc_structure.html">doctools::toc::structure</a></td>
<td class="#tocright">Doctoc serialization utilities</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctools_intro.html">doctools_intro</a></td>
<td class="#tocright">doctools introduction</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctools_lang_cmdref.html">doctools_lang_cmdref</a></td>
<td class="#tocright">doctools language command reference</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctools_lang_faq.html">doctools_lang_faq</a></td>
<td class="#tocright">doctools language faq</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctools_lang_intro.html">doctools_lang_intro</a></td>
<td class="#tocright">doctools language introduction</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/doctools_lang_syntax.html">doctools_lang_syntax</a></td>
<td class="#tocright">doctools language syntax</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/doctools/doctools_plugin_apiref.html">doctools_plugin_apiref</a></td>
<td class="#tocright">doctools plugin API reference</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/apps/dtplite.html">dtplite</a></td>
<td class="#tocright">Lightweight DocTools Markup Processor</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/dtplite/pkg_dtplite.html">dtplite</a></td>
<td class="#tocright">Lightweight DocTools Markup Processor</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/fileutil/fileutil.html">fileutil</a></td>
<td class="#tocright">Procedures implementing some file utilities</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/fumagic/cfront.html">fileutil::magic::cfront</a></td>
<td class="#tocright">Generator core for compiler of magic(5) files</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/fumagic/cgen.html">fileutil::magic::cgen</a></td>
<td class="#tocright">Generator core for compiler of magic(5) files</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/fumagic/filetypes.html">fileutil::magic::filetype</a></td>
<td class="#tocright">Procedures implementing file-type recognition</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/fumagic/mimetypes.html">fileutil::magic::mimetype</a></td>
<td class="#tocright">Procedures implementing mime-type recognition</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/fumagic/rtcore.html">fileutil::magic::rt</a></td>
<td class="#tocright">Runtime core for file type recognition engines written in pure Tcl</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/fileutil/multi.html">fileutil::multi</a></td>
<td class="#tocright">Multi-file operation, scatter/gather, standard object</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/fileutil/multiop.html">fileutil::multi::op</a></td>
<td class="#tocright">Multi-file operation, scatter/gather</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/fileutil/traverse.html">fileutil_traverse</a></td>
<td class="#tocright">Iterative directory traversal</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/ftp/ftp.html">ftp</a></td>
<td class="#tocright">Client-side tcl implementation of the ftp protocol</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/ftp/ftp_geturl.html">ftp::geturl</a></td>
<td class="#tocright">Uri handler for ftp urls</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/ftpd/ftpd.html">ftpd</a></td>
<td class="#tocright">Tcl FTP server implementation</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/generator/generator.html">generator</a></td>
<td class="#tocright">Procedures for creating and using generators.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/gpx/gpx.html">gpx</a></td>
<td class="#tocright">Extracts waypoints, tracks and routes from GPX files</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_aycock/aycock.html">grammar::aycock</a></td>
<td class="#tocright">Aycock-Horspool-Earley parser generator for Tcl</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_fa/fa.html">grammar::fa</a></td>
<td class="#tocright">Create and manipulate finite automatons</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_fa/dacceptor.html">grammar::fa::dacceptor</a></td>
<td class="#tocright">Create and use deterministic acceptors</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_fa/dexec.html">grammar::fa::dexec</a></td>
<td class="#tocright">Execute deterministic finite automatons</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_fa/faop.html">grammar::fa::op</a></td>
<td class="#tocright">Operations on finite automatons</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_cpu.html">grammar::me::cpu</a></td>
<td class="#tocright">Virtual machine implementation II for parsing token streams</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_cpucore.html">grammar::me::cpu::core</a></td>
<td class="#tocright">ME virtual machine state manipulation</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_me/gasm.html">grammar::me::cpu::gasm</a></td>
<td class="#tocright">ME assembler</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_tcl.html">grammar::me::tcl</a></td>
<td class="#tocright">Virtual machine implementation I for parsing token streams</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_util.html">grammar::me::util</a></td>
<td class="#tocright">AST utilities</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_ast.html">grammar::me_ast</a></td>
<td class="#tocright">Various representations of ASTs</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_intro.html">grammar::me_intro</a></td>
<td class="#tocright">Introduction to virtual machines for parsing token streams</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_me/me_vm.html">grammar::me_vm</a></td>
<td class="#tocright">Virtual machine for parsing token streams</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/grammar_peg/peg.html">grammar::peg</a></td>
<td class="#tocright">Create and manipulate parsing expression grammars</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/grammar_peg/peg_interp.html">grammar::peg::interp</a></td>
<td class="#tocright">Interpreter for parsing expression grammars</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/hook/hook.html">hook</a></td>
<td class="#tocright">Hooks</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/html/html.html">html</a></td>
<td class="#tocright">Procedures to generate HTML structures</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/htmlparse/htmlparse.html">htmlparse</a></td>
<td class="#tocright">Procedures to parse HTML strings</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/yaml/huddle.html">huddle</a></td>
<td class="#tocright">Create and manipulate huddle object</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/ident/ident.html">ident</a></td>
<td class="#tocright">Ident protocol client</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/imap4/imap4.html">imap4</a></td>
<td class="#tocright">imap client-side tcl implementation of imap protocol</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/inifile/ini.html">inifile</a></td>
<td class="#tocright">Parsing of Windows INI files</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/interp/tcllib_interp.html">interp</a></td>
<td class="#tocright">Interp creation and aliasing</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/irc/irc.html">irc</a></td>
<td class="#tocright">Create IRC connection and interface.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/javascript/javascript.html">javascript</a></td>
<td class="#tocright">Procedures to generate HTML and Java Script structures.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/jpeg/jpeg.html">jpeg</a></td>
<td class="#tocright">JPEG querying and manipulation of meta data</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/json/json.html">json</a></td>
<td class="#tocright">JSON parser</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/json/json_write.html">json::write</a></td>
<td class="#tocright">JSON generation</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/lambda/lambda.html">lambda</a></td>
<td class="#tocright">Utility commands for anonymous procedures</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/ldap/ldap.html">ldap</a></td>
<td class="#tocright">LDAP client</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/ldap/ldapx.html">ldapx</a></td>
<td class="#tocright">LDAP extended object interface</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/log/log.html">log</a></td>
<td class="#tocright">Procedures to log messages of libraries and applications.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/log/logger.html">logger</a></td>
<td class="#tocright">System to control logging of events.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/log/loggerAppender.html">logger::appender</a></td>
<td class="#tocright">Collection of predefined appenders for logger</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/log/loggerUtils.html">logger::utils</a></td>
<td class="#tocright">Utilities for logger</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/map/map_geocode_nominatim.html">map::geocode::nominatim</a></td>
<td class="#tocright">Resolving geographical names with a Nominatim service</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/map/map_slippy.html">map::slippy</a></td>
<td class="#tocright">Common code for slippy based map packages</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/map/map_slippy_cache.html">map::slippy::cache</a></td>
<td class="#tocright">Management of a tile cache in the local filesystem</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/map/map_slippy_fetcher.html">map::slippy::fetcher</a></td>
<td class="#tocright">Accessing a server providing tiles for slippy-based maps</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/mapproj/mapproj.html">mapproj</a></td>
<td class="#tocright">Map projection routines</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/math.html">math</a></td>
<td class="#tocright">Tcl Math Library</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/bigfloat.html">math::bigfloat</a></td>
<td class="#tocright">Arbitrary precision floating-point numbers</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/bignum.html">math::bignum</a></td>
<td class="#tocright">Arbitrary precision integer numbers</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/calculus.html">math::calculus</a></td>
<td class="#tocright">Integration and ordinary differential equations</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/romberg.html">math::calculus::romberg</a></td>
<td class="#tocright">Romberg integration</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/symdiff.html">math::calculus::symdiff</a></td>
<td class="#tocright">Symbolic differentiation for Tcl</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/combinatorics.html">math::combinatorics</a></td>
<td class="#tocright">Combinatorial functions in the Tcl Math Library</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/qcomplex.html">math::complexnumbers</a></td>
<td class="#tocright">Straightforward complex number package</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/constants.html">math::constants</a></td>
<td class="#tocright">Mathematical and numerical constants</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/decimal.html">math::decimal</a></td>
<td class="#tocright">General decimal arithmetic</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/fourier.html">math::fourier</a></td>
<td class="#tocright">Discrete and fast fourier transforms</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/fuzzy.html">math::fuzzy</a></td>
<td class="#tocright">Fuzzy comparison of floating-point numbers</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/math_geometry.html">math::geometry</a></td>
<td class="#tocright">Geometrical computations</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/interpolate.html">math::interpolate</a></td>
<td class="#tocright">Interpolation routines</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/linalg.html">math::linearalgebra</a></td>
<td class="#tocright">Linear Algebra</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/numtheory.html">math::numtheory</a></td>
<td class="#tocright">Number Theory</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/optimize.html">math::optimize</a></td>
<td class="#tocright">Optimisation routines</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/polynomials.html">math::polynomials</a></td>
<td class="#tocright">Polynomial functions</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/rational_funcs.html">math::rationalfunctions</a></td>
<td class="#tocright">Polynomial functions</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/roman.html">math::roman</a></td>
<td class="#tocright">Tools for creating and manipulating roman numerals</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/special.html">math::special</a></td>
<td class="#tocright">Special mathematical functions</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/statistics.html">math::statistics</a></td>
<td class="#tocright">Basic statistical functions and procedures</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/md4/md4.html">md4</a></td>
<td class="#tocright">MD4 Message-Digest Algorithm</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/md5/md5.html">md5</a></td>
<td class="#tocright">MD5 Message-Digest Algorithm</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/md5crypt/md5crypt.html">md5crypt</a></td>
<td class="#tocright">MD5-based password encryption</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/mime/mime.html">mime</a></td>
<td class="#tocright">Manipulation of MIME body parts</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/doctools/mpexpand.html">mpexpand</a></td>
<td class="#tocright">Markup processor</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/multiplexer/multiplexer.html">multiplexer</a></td>
<td class="#tocright">One-to-many communication with sockets.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/nns/nns_client.html">nameserv</a></td>
<td class="#tocright">Name service facility, Client</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/nns/nns_auto.html">nameserv::auto</a></td>
<td class="#tocright">Name service facility, Client Extension</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/nns/nns_common.html">nameserv::common</a></td>
<td class="#tocright">Name service facility, shared definitions</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/nns/nns_protocol.html">nameserv::protocol</a></td>
<td class="#tocright">Name service facility, client/server protocol</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/nns/nns_server.html">nameserv::server</a></td>
<td class="#tocright">Name service facility, Server</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/namespacex/namespacex.html">namespacex</a></td>
<td class="#tocright">Namespace utility commands</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/ncgi/ncgi.html">ncgi</a></td>
<td class="#tocright">Procedures to manipulate CGI values.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/nettool/nettool.html">nettool</a></td>
<td class="#tocright">Tools for networked applications</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/nmea/nmea.html">nmea</a></td>
<td class="#tocright">Process NMEA data</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/apps/nns.html">nns</a></td>
<td class="#tocright">Name service facility, Commandline Client Application</td>
901
902
903
904
905
906
907




908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
<td class="#tocright">Simple mailbox database for pop3d</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pop3d/pop3d_udb.html">pop3d::udb</a></td>
<td class="#tocright">Simple user database for pop3d</td>
</tr>
<tr class="#toceven" >




<td class="#tocleft" ><a href="files/modules/profiler/profiler.html">profiler</a></td>
<td class="#tocright">Tcl source code profiler</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/apps/pt.html">pt</a></td>
<td class="#tocright">Parser Tools Application</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_astree.html">pt::ast</a></td>
<td class="#tocright">Abstract Syntax Tree Serialization</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_cparam_config_critcl.html">pt::cparam::configuration::critcl</a></td>
<td class="#tocright">C/PARAM, Canned configuration, Critcl</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_cparam_config_tea.html">pt::cparam::configuration::tea</a></td>
<td class="#tocright">C/PARAM, Canned configuration, TEA</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_json_language.html">pt::json_language</a></td>
<td class="#tocright">The JSON Grammar Exchange Format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_param.html">pt::param</a></td>
<td class="#tocright">PackRat Machine Specification</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_pexpression.html">pt::pe</a></td>
<td class="#tocright">Parsing Expression Serialization</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_pexpr_op.html">pt::pe::op</a></td>
<td class="#tocright">Parsing Expression Utilities</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_pegrammar.html">pt::peg</a></td>
<td class="#tocright">Parsing Expression Grammar Serialization</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_container.html">pt::peg::container</a></td>
<td class="#tocright">PEG Storage</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_container_peg.html">pt::peg::container::peg</a></td>
<td class="#tocright">PEG Storage. Canned PEG grammar specification</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_export.html">pt::peg::export</a></td>
<td class="#tocright">PEG Export</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_export_container.html">pt::peg::export::container</a></td>
<td class="#tocright">PEG Export Plugin. Write CONTAINER format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_export_json.html">pt::peg::export::json</a></td>
<td class="#tocright">PEG Export Plugin. Write JSON format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_export_peg.html">pt::peg::export::peg</a></td>
<td class="#tocright">PEG Export Plugin. Write PEG format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_from_container.html">pt::peg::from::container</a></td>
<td class="#tocright">PEG Conversion. From CONTAINER format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_from_json.html">pt::peg::from::json</a></td>
<td class="#tocright">PEG Conversion. Read JSON format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_from_peg.html">pt::peg::from::peg</a></td>
<td class="#tocright">PEG Conversion. Read PEG format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_import.html">pt::peg::import</a></td>
<td class="#tocright">PEG Import</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_import_container.html">pt::peg::import::container</a></td>
<td class="#tocright">PEG Import Plugin. From CONTAINER format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_import_json.html">pt::peg::import::json</a></td>
<td class="#tocright">PEG Import Plugin. Read JSON format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_import_peg.html">pt::peg::import::peg</a></td>
<td class="#tocright">PEG Import Plugin. Read PEG format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_interp.html">pt::peg::interp</a></td>
<td class="#tocright">Interpreter for parsing expression grammars</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_to_container.html">pt::peg::to::container</a></td>
<td class="#tocright">PEG Conversion. Write CONTAINER format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_to_cparam.html">pt::peg::to::cparam</a></td>
<td class="#tocright">PEG Conversion. Write CPARAM format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_to_json.html">pt::peg::to::json</a></td>
<td class="#tocright">PEG Conversion. Write JSON format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_to_param.html">pt::peg::to::param</a></td>
<td class="#tocright">PEG Conversion. Write PARAM format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_to_peg.html">pt::peg::to::peg</a></td>
<td class="#tocright">PEG Conversion. Write PEG format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_to_tclparam.html">pt::peg::to::tclparam</a></td>
<td class="#tocright">PEG Conversion. Write TCLPARAM format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_language.html">pt::peg_language</a></td>
<td class="#tocright">PEG Language Tutorial</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_introduction.html">pt::pegrammar</a></td>
<td class="#tocright">Introduction to Parsing Expression Grammars</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_pgen.html">pt::pgen</a></td>
<td class="#tocright">Parser Generator</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_rdengine.html">pt::rde</a></td>
<td class="#tocright">Parsing Runtime Support, PARAM based</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_tclparam_config_snit.html">pt::tclparam::configuration::snit</a></td>
<td class="#tocright">Tcl/PARAM, Canned configuration, Snit</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_tclparam_config_tcloo.html">pt::tclparam::configuration::tcloo</a></td>
<td class="#tocright">Tcl/PARAM, Canned configuration, Tcloo</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_util.html">pt::util</a></td>
<td class="#tocright">General utilities</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_to_api.html">pt_export_api</a></td>
<td class="#tocright">Parser Tools Export API</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_from_api.html">pt_import_api</a></td>
<td class="#tocright">Parser Tools Import API</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_introduction.html">pt_introduction</a></td>
<td class="#tocright">Introduction to Parser Tools</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_parse_peg.html">pt_parse_peg</a></td>
<td class="#tocright">Parser Tools PEG Parser</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_parser_api.html">pt_parser_api</a></td>
<td class="#tocright">Parser API</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_op.html">pt_peg_op</a></td>
<td class="#tocright">Parser Tools PE Grammar Utility Operations</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/rc4/rc4.html">rc4</a></td>
<td class="#tocright">Implementation of the RC4 stream cipher</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/rcs/rcs.html">rcs</a></td>
<td class="#tocright">RCS low level utilities</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/report/report.html">report</a></td>
<td class="#tocright">Create and manipulate report objects</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/rest/rest.html">rest</a></td>
<td class="#tocright">define REST web APIs and call them inline or asychronously</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/ripemd/ripemd128.html">ripemd128</a></td>
<td class="#tocright">RIPEMD-128 Message-Digest Algorithm</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/ripemd/ripemd160.html">ripemd160</a></td>
<td class="#tocright">RIPEMD-160 Message-Digest Algorithm</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/amazon-s3/S3.html">S3</a></td>
<td class="#tocright">Amazon S3 Web Service Interface</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/sasl/sasl.html">SASL</a></td>
<td class="#tocright">Implementation of SASL mechanisms for Tcl</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/sasl/ntlm.html">SASL::NTLM</a></td>
<td class="#tocright">Implementation of SASL NTLM mechanism for Tcl</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/sasl/scram.html">SASL::SCRAM</a></td>
<td class="#tocright">Implementation of SASL SCRAM mechanism for Tcl</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/sasl/gtoken.html">SASL::XGoogleToken</a></td>
<td class="#tocright">Implementation of SASL NTLM mechanism for Tcl</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/sha1/sha1.html">sha1</a></td>
<td class="#tocright">SHA1 Message-Digest Algorithm</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/sha1/sha256.html">sha256</a></td>
<td class="#tocright">SHA256 Message-Digest Algorithm</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/simulation/annealing.html">simulation::annealing</a></td>
<td class="#tocright">Simulated annealing</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/simulation/montecarlo.html">simulation::montecarlo</a></td>
<td class="#tocright">Monte Carlo simulations</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/simulation/simulation_random.html">simulation::random</a></td>
<td class="#tocright">Pseudo-random number generators</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/mime/smtp.html">smtp</a></td>
<td class="#tocright">Client-side tcl implementation of the smtp protocol</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/smtpd/smtpd.html">smtpd</a></td>
<td class="#tocright">Tcl SMTP server implementation</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/snit/snit.html">snit</a></td>
<td class="#tocright">Snit's Not Incr Tcl</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/snit/snitfaq.html">snitfaq</a></td>
<td class="#tocright">Snit Frequently Asked Questions</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/soundex/soundex.html">soundex</a></td>
<td class="#tocright">Soundex</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/stooop/stooop.html">stooop</a></td>
<td class="#tocright">Object oriented extension.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/string/token.html">string::token</a></td>
<td class="#tocright">Regex based iterative lexing</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/string/token_shell.html">string::token::shell</a></td>
<td class="#tocright">Parsing of shell command line</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/stringprep/stringprep.html">stringprep</a></td>
<td class="#tocright">Implementation of stringprep</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/stringprep/stringprep_data.html">stringprep::data</a></td>
<td class="#tocright">stringprep data tables, generated, internal</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/disjointset.html">struct::disjointset</a></td>
<td class="#tocright">Disjoint set data structure</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/graph.html">struct::graph</a></td>
<td class="#tocright">Create and manipulate directed graph objects</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/graphops.html">struct::graph::op</a></td>
<td class="#tocright">Operation for (un)directed graph objects</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/graph1.html">struct::graph_v1</a></td>
<td class="#tocright">Create and manipulate directed graph objects</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/struct_list.html">struct::list</a></td>
<td class="#tocright">Procedures for manipulating lists</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/matrix.html">struct::matrix</a></td>
<td class="#tocright">Create and manipulate matrix objects</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/matrix1.html">struct::matrix_v1</a></td>
<td class="#tocright">Create and manipulate matrix objects</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/pool.html">struct::pool</a></td>
<td class="#tocright">Create and manipulate pool objects (of discrete items)</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/prioqueue.html">struct::prioqueue</a></td>
<td class="#tocright">Create and manipulate prioqueue objects</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/queue.html">struct::queue</a></td>
<td class="#tocright">Create and manipulate queue objects</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/record.html">struct::record</a></td>
<td class="#tocright">Define and create records (similar to 'C' structures)</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/struct_set.html">struct::set</a></td>
<td class="#tocright">Procedures for manipulating sets</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/skiplist.html">struct::skiplist</a></td>
<td class="#tocright">Create and manipulate skiplists</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/stack.html">struct::stack</a></td>
<td class="#tocright">Create and manipulate stack objects</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/struct_tree.html">struct::tree</a></td>
<td class="#tocright">Create and manipulate tree objects</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/struct_tree1.html">struct::tree_v1</a></td>
<td class="#tocright">Create and manipulate tree objects</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/crc/sum.html">sum</a></td>
<td class="#tocright">Calculate a sum(1) compatible checksum</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/stooop/switched.html">switched</a></td>
<td class="#tocright">switch/option management.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/tar/tar.html">tar</a></td>
<td class="#tocright">Tar file creation, extraction &amp; manipulation</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/cat.html">tcl::chan::cat</a></td>
<td class="#tocright">Concatenation channel</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_core/core.html">tcl::chan::core</a></td>
<td class="#tocright">Basic reflected/virtual channel support</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_core/events.html">tcl::chan::events</a></td>
<td class="#tocright">Event support for reflected/virtual channels</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/facade.html">tcl::chan::facade</a></td>
<td class="#tocright">Facade channel</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_fifo.html">tcl::chan::fifo</a></td>
<td class="#tocright">In-memory fifo channel</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_fifo2.html">tcl::chan::fifo2</a></td>
<td class="#tocright">In-memory interconnected fifo channels</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/halfpipe.html">tcl::chan::halfpipe</a></td>
<td class="#tocright">In-memory channel, half of a fifo2</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_memchan.html">tcl::chan::memchan</a></td>
<td class="#tocright">In-memory channel</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_null.html">tcl::chan::null</a></td>
<td class="#tocright">Null channel</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/nullzero.html">tcl::chan::nullzero</a></td>
<td class="#tocright">Null/Zero channel combination</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_random.html">tcl::chan::random</a></td>
<td class="#tocright">Random channel</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/std.html">tcl::chan::std</a></td>
<td class="#tocright">Standard I/O, unification of stdin and stdout</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_string.html">tcl::chan::string</a></td>
<td class="#tocright">Read-only in-memory channel</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/textwindow.html">tcl::chan::textwindow</a></td>
<td class="#tocright">Textwindow channel</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_variable.html">tcl::chan::variable</a></td>
<td class="#tocright">In-memory channel using variable for storage</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_zero.html">tcl::chan::zero</a></td>
<td class="#tocright">Zero channel</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/randseed.html">tcl::randomseed</a></td>
<td class="#tocright">Utilities for random channels</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/adler32.html">tcl::transform::adler32</a></td>
<td class="#tocright">Adler32 transformation</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/vt_base64.html">tcl::transform::base64</a></td>
<td class="#tocright">Base64 encoding transformation</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_core/transformcore.html">tcl::transform::core</a></td>
<td class="#tocright">Basic reflected/virtual channel transform support</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/vt_counter.html">tcl::transform::counter</a></td>
<td class="#tocright">Counter transformation</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/vt_crc32.html">tcl::transform::crc32</a></td>
<td class="#tocright">Crc32 transformation</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/hex.html">tcl::transform::hex</a></td>
<td class="#tocright">Hexadecimal encoding transformation</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/identity.html">tcl::transform::identity</a></td>
<td class="#tocright">Identity transformation</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/limitsize.html">tcl::transform::limitsize</a></td>
<td class="#tocright">limiting input</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/observe.html">tcl::transform::observe</a></td>
<td class="#tocright">Observer transformation, stream copy</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/vt_otp.html">tcl::transform::otp</a></td>
<td class="#tocright">Encryption via one-time pad</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/rot.html">tcl::transform::rot</a></td>
<td class="#tocright">rot-encryption</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/spacer.html">tcl::transform::spacer</a></td>
<td class="#tocright">Space insertation and removal</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/tcllib_zlib.html">tcl::transform::zlib</a></td>
<td class="#tocright">zlib (de)compression</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/des/tcldesjr.html">tcldes</a></td>
<td class="#tocright">Implementation of the DES and triple-DES ciphers</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/des/tcldes.html">tcldes</a></td>
<td class="#tocright">Implementation of the DES and triple-DES ciphers</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/apps/tcldocstrip.html">tcldocstrip</a></td>
<td class="#tocright">Tcl-based Docstrip Processor</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/dns/tcllib_ip.html">tcllib_ip</a></td>
<td class="#tocright">IPv4 and IPv6 address manipulation</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/math/machineparameters.html">tclrep/machineparameters</a></td>
<td class="#tocright">Compute double precision machine parameters.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/tepam/tepam_introduction.html">tepam</a></td>
<td class="#tocright">An introduction into TEPAM, Tcl's Enhanced Procedure and Argument Manager</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/tepam/tepam_argument_dialogbox.html">tepam::argument_dialogbox</a></td>
<td class="#tocright">TEPAM argument_dialogbox, reference manual</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/tepam/tepam_doc_gen.html">tepam::doc_gen</a></td>
<td class="#tocright">TEPAM DOC Generation, reference manual</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/tepam/tepam_procedure.html">tepam::procedure</a></td>
<td class="#tocright">TEPAM procedure, reference manual</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/term/term.html">term</a></td>
<td class="#tocright">General terminal control</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/term/ansi_code.html">term::ansi::code</a></td>
<td class="#tocright">Helper for control sequences</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/term/ansi_cattr.html">term::ansi::code::attr</a></td>
<td class="#tocright">ANSI attribute sequences</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/term/ansi_cctrl.html">term::ansi::code::ctrl</a></td>
<td class="#tocright">ANSI control sequences</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/term/ansi_cmacros.html">term::ansi::code::macros</a></td>
<td class="#tocright">Macro sequences</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/term/ansi_ctrlu.html">term::ansi::ctrl::unix</a></td>
<td class="#tocright">Control operations and queries</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/term/ansi_send.html">term::ansi::send</a></td>
<td class="#tocright">Output of ANSI control sequences to terminals</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/term/imenu.html">term::interact::menu</a></td>
<td class="#tocright">Terminal widget, menu</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/term/ipager.html">term::interact::pager</a></td>
<td class="#tocright">Terminal widget, paging</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/term/receive.html">term::receive</a></td>
<td class="#tocright">General input from terminals</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/term/term_bind.html">term::receive::bind</a></td>
<td class="#tocright">Keyboard dispatch from terminals</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/term/term_send.html">term::send</a></td>
<td class="#tocright">General output to terminals</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/textutil/textutil.html">textutil</a></td>
<td class="#tocright">Procedures to manipulate texts and strings.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/textutil/adjust.html">textutil::adjust</a></td>
<td class="#tocright">Procedures to adjust, indent, and undent paragraphs</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/textutil/expander.html">textutil::expander</a></td>
<td class="#tocright">Procedures to process templates and expand text.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/textutil/repeat.html">textutil::repeat</a></td>
<td class="#tocright">Procedures to repeat strings.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/textutil/textutil_split.html">textutil::split</a></td>
<td class="#tocright">Procedures to split texts</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/textutil/textutil_string.html">textutil::string</a></td>
<td class="#tocright">Procedures to manipulate texts and strings.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/textutil/tabify.html">textutil::tabify</a></td>
<td class="#tocright">Procedures to (un)tabify strings</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/textutil/trim.html">textutil::trim</a></td>
<td class="#tocright">Procedures to trim strings</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/tie/tie_std.html">tie</a></td>
<td class="#tocright">Array persistence, standard data sources</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/tie/tie.html">tie</a></td>
<td class="#tocright">Array persistence</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/tiff/tiff.html">tiff</a></td>
<td class="#tocright">TIFF reading, writing, and querying and manipulation of meta data</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/transfer/connect.html">transfer::connect</a></td>
<td class="#tocright">Connection setup</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/transfer/copyops.html">transfer::copy</a></td>
<td class="#tocright">Data transfer foundation</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/transfer/tqueue.html">transfer::copy::queue</a></td>
<td class="#tocright">Queued transfers</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/transfer/ddest.html">transfer::data::destination</a></td>
<td class="#tocright">Data destination</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/transfer/dsource.html">transfer::data::source</a></td>
<td class="#tocright">Data source</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/transfer/receiver.html">transfer::receiver</a></td>
<td class="#tocright">Data source</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/transfer/transmitter.html">transfer::transmitter</a></td>
<td class="#tocright">Data source</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/treeql/treeql.html">treeql</a></td>
<td class="#tocright">Query tree objects</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/try/tcllib_try.html">try</a></td>
<td class="#tocright">try - Trap and process errors and exceptions</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/uev/uevent.html">uevent</a></td>
<td class="#tocright">User events</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/uev/uevent_onidle.html">uevent::onidle</a></td>
<td class="#tocright">Request merging and deferal to idle time</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/stringprep/unicode.html">unicode</a></td>
<td class="#tocright">Implementation of Unicode normalization</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/stringprep/unicode_data.html">unicode::data</a></td>
<td class="#tocright">unicode data tables, generated, internal</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/units/units.html">units</a></td>
<td class="#tocright">unit conversion</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/uri/uri.html">uri</a></td>
<td class="#tocright">URI utilities</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/uri/urn-scheme.html">uri_urn</a></td>
<td class="#tocright">URI utilities, URN scheme</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/base64/uuencode.html">uuencode</a></td>
<td class="#tocright">UU-encode/decode binary data</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/uuid/uuid.html">uuid</a></td>
<td class="#tocright">UUID generation and comparison</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/valtype/valtype_common.html">valtype::common</a></td>
<td class="#tocright">Validation, common code</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/valtype/cc_amex.html">valtype::creditcard::amex</a></td>
<td class="#tocright">Validation for AMEX creditcard number</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/valtype/cc_discover.html">valtype::creditcard::discover</a></td>
<td class="#tocright">Validation for Discover creditcard number</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/valtype/cc_mastercard.html">valtype::creditcard::mastercard</a></td>
<td class="#tocright">Validation for Mastercard creditcard number</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/valtype/cc_visa.html">valtype::creditcard::visa</a></td>
<td class="#tocright">Validation for VISA creditcard number</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/valtype/ean13.html">valtype::gs1::ean13</a></td>
<td class="#tocright">Validation for EAN13</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/valtype/iban.html">valtype::iban</a></td>
<td class="#tocright">Validation for IBAN</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/valtype/imei.html">valtype::imei</a></td>
<td class="#tocright">Validation for IMEI</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/valtype/isbn.html">valtype::isbn</a></td>
<td class="#tocright">Validation for ISBN</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/valtype/luhn.html">valtype::luhn</a></td>
<td class="#tocright">Validation for plain number with a LUHN checkdigit</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/valtype/luhn5.html">valtype::luhn5</a></td>
<td class="#tocright">Validation for plain number with a LUHN5 checkdigit</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/valtype/usnpi.html">valtype::usnpi</a></td>
<td class="#tocright">Validation for USNPI</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/valtype/verhoeff.html">valtype::verhoeff</a></td>
<td class="#tocright">Validation for plain number with a VERHOEFF checkdigit</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/websocket/websocket.html">websocket</a></td>
<td class="#tocright">Tcl implementation of the websocket protocol</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/wip/wip.html">wip</a></td>
<td class="#tocright">Word Interpreter</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/amazon-s3/xsxp.html">xsxp</a></td>
<td class="#tocright">eXtremely Simple Xml Parser</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/yaml/yaml.html">yaml</a></td>
<td class="#tocright">YAML Format Encoder/Decoder</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/base64/yencode.html">yencode</a></td>
<td class="#tocright">Y-encode/decode binary data</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/zip/decode.html">zipfile::decode</a></td>
<td class="#tocright">Access to zip archives</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/zip/encode.html">zipfile::encode</a></td>
<td class="#tocright">Generation of zip archives</td>
</tr>
</table>
</dl><hr></body></html>







>
>
>
>



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|



|





909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
<td class="#tocright">Simple mailbox database for pop3d</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pop3d/pop3d_udb.html">pop3d::udb</a></td>
<td class="#tocright">Simple user database for pop3d</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/processman/processman.html">processman</a></td>
<td class="#tocright">Tool for automating the period callback of commands</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/profiler/profiler.html">profiler</a></td>
<td class="#tocright">Tcl source code profiler</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/apps/pt.html">pt</a></td>
<td class="#tocright">Parser Tools Application</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_astree.html">pt::ast</a></td>
<td class="#tocright">Abstract Syntax Tree Serialization</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_cparam_config_critcl.html">pt::cparam::configuration::critcl</a></td>
<td class="#tocright">C/PARAM, Canned configuration, Critcl</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_cparam_config_tea.html">pt::cparam::configuration::tea</a></td>
<td class="#tocright">C/PARAM, Canned configuration, TEA</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_json_language.html">pt::json_language</a></td>
<td class="#tocright">The JSON Grammar Exchange Format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_param.html">pt::param</a></td>
<td class="#tocright">PackRat Machine Specification</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_pexpression.html">pt::pe</a></td>
<td class="#tocright">Parsing Expression Serialization</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_pexpr_op.html">pt::pe::op</a></td>
<td class="#tocright">Parsing Expression Utilities</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_pegrammar.html">pt::peg</a></td>
<td class="#tocright">Parsing Expression Grammar Serialization</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_container.html">pt::peg::container</a></td>
<td class="#tocright">PEG Storage</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_container_peg.html">pt::peg::container::peg</a></td>
<td class="#tocright">PEG Storage. Canned PEG grammar specification</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_export.html">pt::peg::export</a></td>
<td class="#tocright">PEG Export</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_export_container.html">pt::peg::export::container</a></td>
<td class="#tocright">PEG Export Plugin. Write CONTAINER format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_export_json.html">pt::peg::export::json</a></td>
<td class="#tocright">PEG Export Plugin. Write JSON format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_export_peg.html">pt::peg::export::peg</a></td>
<td class="#tocright">PEG Export Plugin. Write PEG format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_from_container.html">pt::peg::from::container</a></td>
<td class="#tocright">PEG Conversion. From CONTAINER format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_from_json.html">pt::peg::from::json</a></td>
<td class="#tocright">PEG Conversion. Read JSON format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_from_peg.html">pt::peg::from::peg</a></td>
<td class="#tocright">PEG Conversion. Read PEG format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_import.html">pt::peg::import</a></td>
<td class="#tocright">PEG Import</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_import_container.html">pt::peg::import::container</a></td>
<td class="#tocright">PEG Import Plugin. From CONTAINER format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_import_json.html">pt::peg::import::json</a></td>
<td class="#tocright">PEG Import Plugin. Read JSON format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_import_peg.html">pt::peg::import::peg</a></td>
<td class="#tocright">PEG Import Plugin. Read PEG format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_interp.html">pt::peg::interp</a></td>
<td class="#tocright">Interpreter for parsing expression grammars</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_to_container.html">pt::peg::to::container</a></td>
<td class="#tocright">PEG Conversion. Write CONTAINER format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_to_cparam.html">pt::peg::to::cparam</a></td>
<td class="#tocright">PEG Conversion. Write CPARAM format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_to_json.html">pt::peg::to::json</a></td>
<td class="#tocright">PEG Conversion. Write JSON format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_to_param.html">pt::peg::to::param</a></td>
<td class="#tocright">PEG Conversion. Write PARAM format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_to_peg.html">pt::peg::to::peg</a></td>
<td class="#tocright">PEG Conversion. Write PEG format</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_to_tclparam.html">pt::peg::to::tclparam</a></td>
<td class="#tocright">PEG Conversion. Write TCLPARAM format</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_language.html">pt::peg_language</a></td>
<td class="#tocright">PEG Language Tutorial</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_introduction.html">pt::pegrammar</a></td>
<td class="#tocright">Introduction to Parsing Expression Grammars</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_pgen.html">pt::pgen</a></td>
<td class="#tocright">Parser Generator</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_rdengine.html">pt::rde</a></td>
<td class="#tocright">Parsing Runtime Support, PARAM based</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_tclparam_config_snit.html">pt::tclparam::configuration::snit</a></td>
<td class="#tocright">Tcl/PARAM, Canned configuration, Snit</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_tclparam_config_tcloo.html">pt::tclparam::configuration::tcloo</a></td>
<td class="#tocright">Tcl/PARAM, Canned configuration, Tcloo</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_util.html">pt::util</a></td>
<td class="#tocright">General utilities</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_to_api.html">pt_export_api</a></td>
<td class="#tocright">Parser Tools Export API</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_from_api.html">pt_import_api</a></td>
<td class="#tocright">Parser Tools Import API</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_introduction.html">pt_introduction</a></td>
<td class="#tocright">Introduction to Parser Tools</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_parse_peg.html">pt_parse_peg</a></td>
<td class="#tocright">Parser Tools PEG Parser</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/pt/pt_parser_api.html">pt_parser_api</a></td>
<td class="#tocright">Parser API</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/pt/pt_peg_op.html">pt_peg_op</a></td>
<td class="#tocright">Parser Tools PE Grammar Utility Operations</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/rc4/rc4.html">rc4</a></td>
<td class="#tocright">Implementation of the RC4 stream cipher</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/rcs/rcs.html">rcs</a></td>
<td class="#tocright">RCS low level utilities</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/report/report.html">report</a></td>
<td class="#tocright">Create and manipulate report objects</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/rest/rest.html">rest</a></td>
<td class="#tocright">define REST web APIs and call them inline or asychronously</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/ripemd/ripemd128.html">ripemd128</a></td>
<td class="#tocright">RIPEMD-128 Message-Digest Algorithm</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/ripemd/ripemd160.html">ripemd160</a></td>
<td class="#tocright">RIPEMD-160 Message-Digest Algorithm</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/amazon-s3/S3.html">S3</a></td>
<td class="#tocright">Amazon S3 Web Service Interface</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/sasl/sasl.html">SASL</a></td>
<td class="#tocright">Implementation of SASL mechanisms for Tcl</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/sasl/ntlm.html">SASL::NTLM</a></td>
<td class="#tocright">Implementation of SASL NTLM mechanism for Tcl</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/sasl/scram.html">SASL::SCRAM</a></td>
<td class="#tocright">Implementation of SASL SCRAM mechanism for Tcl</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/sasl/gtoken.html">SASL::XGoogleToken</a></td>
<td class="#tocright">Implementation of SASL NTLM mechanism for Tcl</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/sha1/sha1.html">sha1</a></td>
<td class="#tocright">SHA1 Message-Digest Algorithm</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/sha1/sha256.html">sha256</a></td>
<td class="#tocright">SHA256 Message-Digest Algorithm</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/simulation/annealing.html">simulation::annealing</a></td>
<td class="#tocright">Simulated annealing</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/simulation/montecarlo.html">simulation::montecarlo</a></td>
<td class="#tocright">Monte Carlo simulations</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/simulation/simulation_random.html">simulation::random</a></td>
<td class="#tocright">Pseudo-random number generators</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/mime/smtp.html">smtp</a></td>
<td class="#tocright">Client-side tcl implementation of the smtp protocol</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/smtpd/smtpd.html">smtpd</a></td>
<td class="#tocright">Tcl SMTP server implementation</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/snit/snit.html">snit</a></td>
<td class="#tocright">Snit's Not Incr Tcl</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/snit/snitfaq.html">snitfaq</a></td>
<td class="#tocright">Snit Frequently Asked Questions</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/soundex/soundex.html">soundex</a></td>
<td class="#tocright">Soundex</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/stooop/stooop.html">stooop</a></td>
<td class="#tocright">Object oriented extension.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/string/token.html">string::token</a></td>
<td class="#tocright">Regex based iterative lexing</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/string/token_shell.html">string::token::shell</a></td>
<td class="#tocright">Parsing of shell command line</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/stringprep/stringprep.html">stringprep</a></td>
<td class="#tocright">Implementation of stringprep</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/stringprep/stringprep_data.html">stringprep::data</a></td>
<td class="#tocright">stringprep data tables, generated, internal</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/disjointset.html">struct::disjointset</a></td>
<td class="#tocright">Disjoint set data structure</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/graph.html">struct::graph</a></td>
<td class="#tocright">Create and manipulate directed graph objects</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/graphops.html">struct::graph::op</a></td>
<td class="#tocright">Operation for (un)directed graph objects</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/graph1.html">struct::graph_v1</a></td>
<td class="#tocright">Create and manipulate directed graph objects</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/struct_list.html">struct::list</a></td>
<td class="#tocright">Procedures for manipulating lists</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/matrix.html">struct::matrix</a></td>
<td class="#tocright">Create and manipulate matrix objects</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/matrix1.html">struct::matrix_v1</a></td>
<td class="#tocright">Create and manipulate matrix objects</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/pool.html">struct::pool</a></td>
<td class="#tocright">Create and manipulate pool objects (of discrete items)</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/prioqueue.html">struct::prioqueue</a></td>
<td class="#tocright">Create and manipulate prioqueue objects</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/queue.html">struct::queue</a></td>
<td class="#tocright">Create and manipulate queue objects</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/record.html">struct::record</a></td>
<td class="#tocright">Define and create records (similar to 'C' structures)</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/struct_set.html">struct::set</a></td>
<td class="#tocright">Procedures for manipulating sets</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/skiplist.html">struct::skiplist</a></td>
<td class="#tocright">Create and manipulate skiplists</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/stack.html">struct::stack</a></td>
<td class="#tocright">Create and manipulate stack objects</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/struct/struct_tree.html">struct::tree</a></td>
<td class="#tocright">Create and manipulate tree objects</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/struct/struct_tree1.html">struct::tree_v1</a></td>
<td class="#tocright">Create and manipulate tree objects</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/crc/sum.html">sum</a></td>
<td class="#tocright">Calculate a sum(1) compatible checksum</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/stooop/switched.html">switched</a></td>
<td class="#tocright">switch/option management.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/tar/tar.html">tar</a></td>
<td class="#tocright">Tar file creation, extraction &amp; manipulation</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/cat.html">tcl::chan::cat</a></td>
<td class="#tocright">Concatenation channel</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_core/core.html">tcl::chan::core</a></td>
<td class="#tocright">Basic reflected/virtual channel support</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_core/events.html">tcl::chan::events</a></td>
<td class="#tocright">Event support for reflected/virtual channels</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/facade.html">tcl::chan::facade</a></td>
<td class="#tocright">Facade channel</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_fifo.html">tcl::chan::fifo</a></td>
<td class="#tocright">In-memory fifo channel</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_fifo2.html">tcl::chan::fifo2</a></td>
<td class="#tocright">In-memory interconnected fifo channels</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/halfpipe.html">tcl::chan::halfpipe</a></td>
<td class="#tocright">In-memory channel, half of a fifo2</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_memchan.html">tcl::chan::memchan</a></td>
<td class="#tocright">In-memory channel</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_null.html">tcl::chan::null</a></td>
<td class="#tocright">Null channel</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/nullzero.html">tcl::chan::nullzero</a></td>
<td class="#tocright">Null/Zero channel combination</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_random.html">tcl::chan::random</a></td>
<td class="#tocright">Random channel</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/std.html">tcl::chan::std</a></td>
<td class="#tocright">Standard I/O, unification of stdin and stdout</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_string.html">tcl::chan::string</a></td>
<td class="#tocright">Read-only in-memory channel</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/textwindow.html">tcl::chan::textwindow</a></td>
<td class="#tocright">Textwindow channel</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_variable.html">tcl::chan::variable</a></td>
<td class="#tocright">In-memory channel using variable for storage</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/tcllib_zero.html">tcl::chan::zero</a></td>
<td class="#tocright">Zero channel</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_base/randseed.html">tcl::randomseed</a></td>
<td class="#tocright">Utilities for random channels</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/adler32.html">tcl::transform::adler32</a></td>
<td class="#tocright">Adler32 transformation</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/vt_base64.html">tcl::transform::base64</a></td>
<td class="#tocright">Base64 encoding transformation</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_core/transformcore.html">tcl::transform::core</a></td>
<td class="#tocright">Basic reflected/virtual channel transform support</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/vt_counter.html">tcl::transform::counter</a></td>
<td class="#tocright">Counter transformation</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/vt_crc32.html">tcl::transform::crc32</a></td>
<td class="#tocright">Crc32 transformation</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/hex.html">tcl::transform::hex</a></td>
<td class="#tocright">Hexadecimal encoding transformation</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/identity.html">tcl::transform::identity</a></td>
<td class="#tocright">Identity transformation</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/limitsize.html">tcl::transform::limitsize</a></td>
<td class="#tocright">limiting input</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/observe.html">tcl::transform::observe</a></td>
<td class="#tocright">Observer transformation, stream copy</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/vt_otp.html">tcl::transform::otp</a></td>
<td class="#tocright">Encryption via one-time pad</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/rot.html">tcl::transform::rot</a></td>
<td class="#tocright">rot-encryption</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/spacer.html">tcl::transform::spacer</a></td>
<td class="#tocright">Space insertation and removal</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/virtchannel_transform/tcllib_zlib.html">tcl::transform::zlib</a></td>
<td class="#tocright">zlib (de)compression</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/des/tcldesjr.html">tcldes</a></td>
<td class="#tocright">Implementation of the DES and triple-DES ciphers</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/des/tcldes.html">tcldes</a></td>
<td class="#tocright">Implementation of the DES and triple-DES ciphers</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/apps/tcldocstrip.html">tcldocstrip</a></td>
<td class="#tocright">Tcl-based Docstrip Processor</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/dns/tcllib_ip.html">tcllib_ip</a></td>
<td class="#tocright">IPv4 and IPv6 address manipulation</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/math/machineparameters.html">tclrep/machineparameters</a></td>
<td class="#tocright">Compute double precision machine parameters.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/tepam/tepam_introduction.html">tepam</a></td>
<td class="#tocright">An introduction into TEPAM, Tcl's Enhanced Procedure and Argument Manager</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/tepam/tepam_argument_dialogbox.html">tepam::argument_dialogbox</a></td>
<td class="#tocright">TEPAM argument_dialogbox, reference manual</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/tepam/tepam_doc_gen.html">tepam::doc_gen</a></td>
<td class="#tocright">TEPAM DOC Generation, reference manual</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/tepam/tepam_procedure.html">tepam::procedure</a></td>
<td class="#tocright">TEPAM procedure, reference manual</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/term/term.html">term</a></td>
<td class="#tocright">General terminal control</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/term/ansi_code.html">term::ansi::code</a></td>
<td class="#tocright">Helper for control sequences</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/term/ansi_cattr.html">term::ansi::code::attr</a></td>
<td class="#tocright">ANSI attribute sequences</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/term/ansi_cctrl.html">term::ansi::code::ctrl</a></td>
<td class="#tocright">ANSI control sequences</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/term/ansi_cmacros.html">term::ansi::code::macros</a></td>
<td class="#tocright">Macro sequences</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/term/ansi_ctrlu.html">term::ansi::ctrl::unix</a></td>
<td class="#tocright">Control operations and queries</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/term/ansi_send.html">term::ansi::send</a></td>
<td class="#tocright">Output of ANSI control sequences to terminals</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/term/imenu.html">term::interact::menu</a></td>
<td class="#tocright">Terminal widget, menu</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/term/ipager.html">term::interact::pager</a></td>
<td class="#tocright">Terminal widget, paging</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/term/receive.html">term::receive</a></td>
<td class="#tocright">General input from terminals</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/term/term_bind.html">term::receive::bind</a></td>
<td class="#tocright">Keyboard dispatch from terminals</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/term/term_send.html">term::send</a></td>
<td class="#tocright">General output to terminals</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/textutil/textutil.html">textutil</a></td>
<td class="#tocright">Procedures to manipulate texts and strings.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/textutil/adjust.html">textutil::adjust</a></td>
<td class="#tocright">Procedures to adjust, indent, and undent paragraphs</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/textutil/expander.html">textutil::expander</a></td>
<td class="#tocright">Procedures to process templates and expand text.</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/textutil/repeat.html">textutil::repeat</a></td>
<td class="#tocright">Procedures to repeat strings.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/textutil/textutil_split.html">textutil::split</a></td>
<td class="#tocright">Procedures to split texts</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/textutil/textutil_string.html">textutil::string</a></td>
<td class="#tocright">Procedures to manipulate texts and strings.</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/textutil/tabify.html">textutil::tabify</a></td>
<td class="#tocright">Procedures to (un)tabify strings</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/textutil/trim.html">textutil::trim</a></td>
<td class="#tocright">Procedures to trim strings</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/tie/tie_std.html">tie</a></td>
<td class="#tocright">Array persistence, standard data sources</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/tie/tie.html">tie</a></td>
<td class="#tocright">Array persistence</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/tiff/tiff.html">tiff</a></td>
<td class="#tocright">TIFF reading, writing, and querying and manipulation of meta data</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/transfer/connect.html">transfer::connect</a></td>
<td class="#tocright">Connection setup</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/transfer/copyops.html">transfer::copy</a></td>
<td class="#tocright">Data transfer foundation</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/transfer/tqueue.html">transfer::copy::queue</a></td>
<td class="#tocright">Queued transfers</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/transfer/ddest.html">transfer::data::destination</a></td>
<td class="#tocright">Data destination</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/transfer/dsource.html">transfer::data::source</a></td>
<td class="#tocright">Data source</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/transfer/receiver.html">transfer::receiver</a></td>
<td class="#tocright">Data source</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/transfer/transmitter.html">transfer::transmitter</a></td>
<td class="#tocright">Data source</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/treeql/treeql.html">treeql</a></td>
<td class="#tocright">Query tree objects</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/try/tcllib_try.html">try</a></td>
<td class="#tocright">try - Trap and process errors and exceptions</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/uev/uevent.html">uevent</a></td>
<td class="#tocright">User events</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/uev/uevent_onidle.html">uevent::onidle</a></td>
<td class="#tocright">Request merging and deferal to idle time</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/stringprep/unicode.html">unicode</a></td>
<td class="#tocright">Implementation of Unicode normalization</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/stringprep/unicode_data.html">unicode::data</a></td>
<td class="#tocright">unicode data tables, generated, internal</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/units/units.html">units</a></td>
<td class="#tocright">unit conversion</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/uri/uri.html">uri</a></td>
<td class="#tocright">URI utilities</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/uri/urn-scheme.html">uri_urn</a></td>
<td class="#tocright">URI utilities, URN scheme</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/base64/uuencode.html">uuencode</a></td>
<td class="#tocright">UU-encode/decode binary data</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/uuid/uuid.html">uuid</a></td>
<td class="#tocright">UUID generation and comparison</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/valtype/valtype_common.html">valtype::common</a></td>
<td class="#tocright">Validation, common code</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/valtype/cc_amex.html">valtype::creditcard::amex</a></td>
<td class="#tocright">Validation for AMEX creditcard number</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/valtype/cc_discover.html">valtype::creditcard::discover</a></td>
<td class="#tocright">Validation for Discover creditcard number</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/valtype/cc_mastercard.html">valtype::creditcard::mastercard</a></td>
<td class="#tocright">Validation for Mastercard creditcard number</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/valtype/cc_visa.html">valtype::creditcard::visa</a></td>
<td class="#tocright">Validation for VISA creditcard number</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/valtype/ean13.html">valtype::gs1::ean13</a></td>
<td class="#tocright">Validation for EAN13</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/valtype/iban.html">valtype::iban</a></td>
<td class="#tocright">Validation for IBAN</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/valtype/imei.html">valtype::imei</a></td>
<td class="#tocright">Validation for IMEI</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/valtype/isbn.html">valtype::isbn</a></td>
<td class="#tocright">Validation for ISBN</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/valtype/luhn.html">valtype::luhn</a></td>
<td class="#tocright">Validation for plain number with a LUHN checkdigit</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/valtype/luhn5.html">valtype::luhn5</a></td>
<td class="#tocright">Validation for plain number with a LUHN5 checkdigit</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/valtype/usnpi.html">valtype::usnpi</a></td>
<td class="#tocright">Validation for USNPI</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/valtype/verhoeff.html">valtype::verhoeff</a></td>
<td class="#tocright">Validation for plain number with a VERHOEFF checkdigit</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/websocket/websocket.html">websocket</a></td>
<td class="#tocright">Tcl implementation of the websocket protocol</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/wip/wip.html">wip</a></td>
<td class="#tocright">Word Interpreter</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/amazon-s3/xsxp.html">xsxp</a></td>
<td class="#tocright">eXtremely Simple Xml Parser</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/yaml/yaml.html">yaml</a></td>
<td class="#tocright">YAML Format Encoder/Decoder</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/base64/yencode.html">yencode</a></td>
<td class="#tocright">Y-encode/decode binary data</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="files/modules/zip/decode.html">zipfile::decode</a></td>
<td class="#tocright">Access to zip archives</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="files/modules/zip/encode.html">zipfile::encode</a></td>
<td class="#tocright">Generation of zip archives</td>
</tr>
</table>
</dl><hr></body></html>

Changes to embedded/www/toc.html.

1325
1326
1327
1328
1329
1330
1331















1332
1333
1334
1335
1336
1337
1338
<td class="#tocleft" ><a href="tcllib/files/modules/uev/uevent.html">uevent</a></td>
<td class="#tocright">User events</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="tcllib/files/modules/wip/wip.html">wip</a></td>
<td class="#tocright">Word Interpreter</td>
</tr>















</table></dl>
<dl><dt>Terminal control<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/term/term.html">term</a></td>
<td class="#tocright">General terminal control</td>
</tr>







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
<td class="#tocleft" ><a href="tcllib/files/modules/uev/uevent.html">uevent</a></td>
<td class="#tocright">User events</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="tcllib/files/modules/wip/wip.html">wip</a></td>
<td class="#tocright">Word Interpreter</td>
</tr>
</table></dl>
<dl><dt>System<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/cron/cron.html">cron</a></td>
<td class="#tocright">Tool for automating the period callback of commands</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="tcllib/files/modules/nettool/nettool.html">nettool</a></td>
<td class="#tocright">Tools for networked applications</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/processman/processman.html">processman</a></td>
<td class="#tocright">Tool for automating the period callback of commands</td>
</tr>
</table></dl>
<dl><dt>Terminal control<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/term/term.html">term</a></td>
<td class="#tocright">General terminal control</td>
</tr>
1954
1955
1956
1957
1958
1959
1960







1961
1962
1963
1964
1965
1966
1967
<td class="#tocleft" ><a href="tcllib/files/modules/crc/crc32.html">crc32</a></td>
<td class="#tocright">Perform a 32bit Cyclic Redundancy Check</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="tcllib/files/modules/crc/sum.html">sum</a></td>
<td class="#tocright">Calculate a sum(1) compatible checksum</td>
</tr>







</table></dl>
<dl><dt>csv<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/csv/csv.html">csv</a></td>
<td class="#tocright">Procedures to handle CSV data.</td>
</tr>







>
>
>
>
>
>
>







1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
<td class="#tocleft" ><a href="tcllib/files/modules/crc/crc32.html">crc32</a></td>
<td class="#tocright">Perform a 32bit Cyclic Redundancy Check</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="tcllib/files/modules/crc/sum.html">sum</a></td>
<td class="#tocright">Calculate a sum(1) compatible checksum</td>
</tr>
</table></dl>
<dl><dt>cron<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/cron/cron.html">cron</a></td>
<td class="#tocright">Tool for automating the period callback of commands</td>
</tr>
</table></dl>
<dl><dt>csv<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/csv/csv.html">csv</a></td>
<td class="#tocright">Procedures to handle CSV data.</td>
</tr>
2756
2757
2758
2759
2760
2761
2762







2763
2764
2765
2766
2767
2768
2769
</table></dl>
<dl><dt>ncgi<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/ncgi/ncgi.html">ncgi</a></td>
<td class="#tocright">Procedures to manipulate CGI values.</td>
</tr>







</table></dl>
<dl><dt>nmea<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/nmea/nmea.html">nmea</a></td>
<td class="#tocright">Process NMEA data</td>
</tr>







>
>
>
>
>
>
>







2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
</table></dl>
<dl><dt>ncgi<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/ncgi/ncgi.html">ncgi</a></td>
<td class="#tocright">Procedures to manipulate CGI values.</td>
</tr>
</table></dl>
<dl><dt>nettool<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/nettool/nettool.html">nettool</a></td>
<td class="#tocright">Tools for networked applications</td>
</tr>
</table></dl>
<dl><dt>nmea<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/nmea/nmea.html">nmea</a></td>
<td class="#tocright">Process NMEA data</td>
</tr>
2899
2900
2901
2902
2903
2904
2905







2906
2907
2908
2909
2910
2911
2912
<td class="#tocleft" ><a href="tcllib/files/modules/pop3d/pop3d_dbox.html">pop3d::dbox</a></td>
<td class="#tocright">Simple mailbox database for pop3d</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/pop3d/pop3d_udb.html">pop3d::udb</a></td>
<td class="#tocright">Simple user database for pop3d</td>
</tr>







</table></dl>
<dl><dt>profiler<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/profiler/profiler.html">profiler</a></td>
<td class="#tocright">Tcl source code profiler</td>
</tr>







>
>
>
>
>
>
>







2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
<td class="#tocleft" ><a href="tcllib/files/modules/pop3d/pop3d_dbox.html">pop3d::dbox</a></td>
<td class="#tocright">Simple mailbox database for pop3d</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/pop3d/pop3d_udb.html">pop3d::udb</a></td>
<td class="#tocright">Simple user database for pop3d</td>
</tr>
</table></dl>
<dl><dt>processman<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/processman/processman.html">processman</a></td>
<td class="#tocright">Tool for automating the period callback of commands</td>
</tr>
</table></dl>
<dl><dt>profiler<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/profiler/profiler.html">profiler</a></td>
<td class="#tocright">Tcl source code profiler</td>
</tr>

Changes to embedded/www/toc0.html.

1325
1326
1327
1328
1329
1330
1331















1332
1333
1334
1335
1336
1337
1338
<td class="#tocleft" ><a href="tcllib/files/modules/uev/uevent.html">uevent</a></td>
<td class="#tocright">User events</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="tcllib/files/modules/wip/wip.html">wip</a></td>
<td class="#tocright">Word Interpreter</td>
</tr>















</table></dl>
<dl><dt>Terminal control<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/term/term.html">term</a></td>
<td class="#tocright">General terminal control</td>
</tr>







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
<td class="#tocleft" ><a href="tcllib/files/modules/uev/uevent.html">uevent</a></td>
<td class="#tocright">User events</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="tcllib/files/modules/wip/wip.html">wip</a></td>
<td class="#tocright">Word Interpreter</td>
</tr>
</table></dl>
<dl><dt>System<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/cron/cron.html">cron</a></td>
<td class="#tocright">Tool for automating the period callback of commands</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="tcllib/files/modules/nettool/nettool.html">nettool</a></td>
<td class="#tocright">Tools for networked applications</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/processman/processman.html">processman</a></td>
<td class="#tocright">Tool for automating the period callback of commands</td>
</tr>
</table></dl>
<dl><dt>Terminal control<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/term/term.html">term</a></td>
<td class="#tocright">General terminal control</td>
</tr>

Changes to embedded/www/toc1.html.

202
203
204
205
206
207
208







209
210
211
212
213
214
215
<td class="#tocleft" ><a href="tcllib/files/modules/crc/crc32.html">crc32</a></td>
<td class="#tocright">Perform a 32bit Cyclic Redundancy Check</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="tcllib/files/modules/crc/sum.html">sum</a></td>
<td class="#tocright">Calculate a sum(1) compatible checksum</td>
</tr>







</table></dl>
<dl><dt>csv<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/csv/csv.html">csv</a></td>
<td class="#tocright">Procedures to handle CSV data.</td>
</tr>







>
>
>
>
>
>
>







202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<td class="#tocleft" ><a href="tcllib/files/modules/crc/crc32.html">crc32</a></td>
<td class="#tocright">Perform a 32bit Cyclic Redundancy Check</td>
</tr>
<tr class="#tocodd"  >
<td class="#tocleft" ><a href="tcllib/files/modules/crc/sum.html">sum</a></td>
<td class="#tocright">Calculate a sum(1) compatible checksum</td>
</tr>
</table></dl>
<dl><dt>cron<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/cron/cron.html">cron</a></td>
<td class="#tocright">Tool for automating the period callback of commands</td>
</tr>
</table></dl>
<dl><dt>csv<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/csv/csv.html">csv</a></td>
<td class="#tocright">Procedures to handle CSV data.</td>
</tr>
1004
1005
1006
1007
1008
1009
1010







1011
1012
1013
1014
1015
1016
1017
</table></dl>
<dl><dt>ncgi<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/ncgi/ncgi.html">ncgi</a></td>
<td class="#tocright">Procedures to manipulate CGI values.</td>
</tr>







</table></dl>
<dl><dt>nmea<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/nmea/nmea.html">nmea</a></td>
<td class="#tocright">Process NMEA data</td>
</tr>







>
>
>
>
>
>
>







1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
</table></dl>
<dl><dt>ncgi<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/ncgi/ncgi.html">ncgi</a></td>
<td class="#tocright">Procedures to manipulate CGI values.</td>
</tr>
</table></dl>
<dl><dt>nettool<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/nettool/nettool.html">nettool</a></td>
<td class="#tocright">Tools for networked applications</td>
</tr>
</table></dl>
<dl><dt>nmea<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/nmea/nmea.html">nmea</a></td>
<td class="#tocright">Process NMEA data</td>
</tr>
1147
1148
1149
1150
1151
1152
1153







1154
1155
1156
1157
1158
1159
1160
<td class="#tocleft" ><a href="tcllib/files/modules/pop3d/pop3d_dbox.html">pop3d::dbox</a></td>
<td class="#tocright">Simple mailbox database for pop3d</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/pop3d/pop3d_udb.html">pop3d::udb</a></td>
<td class="#tocright">Simple user database for pop3d</td>
</tr>







</table></dl>
<dl><dt>profiler<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/profiler/profiler.html">profiler</a></td>
<td class="#tocright">Tcl source code profiler</td>
</tr>







>
>
>
>
>
>
>







1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
<td class="#tocleft" ><a href="tcllib/files/modules/pop3d/pop3d_dbox.html">pop3d::dbox</a></td>
<td class="#tocright">Simple mailbox database for pop3d</td>
</tr>
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/pop3d/pop3d_udb.html">pop3d::udb</a></td>
<td class="#tocright">Simple user database for pop3d</td>
</tr>
</table></dl>
<dl><dt>processman<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/processman/processman.html">processman</a></td>
<td class="#tocright">Tool for automating the period callback of commands</td>
</tr>
</table></dl>
<dl><dt>profiler<dd>
<table class="#toc">
<tr class="#toceven" >
<td class="#tocleft" ><a href="tcllib/files/modules/profiler/profiler.html">profiler</a></td>
<td class="#tocright">Tcl source code profiler</td>
</tr>

Changes to modules/amazon-s3/S3.man.

1
2
3
4
5
6
7
8
[vset VERSION 1.0.2]
[manpage_begin S3 n [vset VERSION]]
[keywords amazon]
[keywords cloud]
[keywords s3]
[moddesc {Amazon S3 Web Service Utilities}]
[titledesc {Amazon S3 Web Service Interface}]
[category  Networking]
|







1
2
3
4
5
6
7
8
[vset VERSION 1.0.3]
[manpage_begin S3 n [vset VERSION]]
[keywords amazon]
[keywords cloud]
[keywords s3]
[moddesc {Amazon S3 Web Service Utilities}]
[titledesc {Amazon S3 Web Service Interface}]
[category  Networking]

Changes to modules/amazon-s3/S3.tcl.

34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# These three are required to do the auth, so always require them.
#    Note that package registry and package fileutil are required
#    by the individual routines that need them. Grep for "package".
package require sha1
package require md5
package require base64

package provide S3 1.0.2

namespace eval S3 { 
    variable config          ; # A dict holding the current configuration.
    variable config_orig     ; # Holds configuration to "reset" back to.
    variable debug 0         ; # Turns on or off S3::debug
    variable debuglog 0      ; # Turns on or off debugging into a file
    variable bgvar_counter 0 ; # Makes unique names for bgvars.







|







34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# These three are required to do the auth, so always require them.
#    Note that package registry and package fileutil are required
#    by the individual routines that need them. Grep for "package".
package require sha1
package require md5
package require base64

package provide S3 1.0.3

namespace eval S3 { 
    variable config          ; # A dict holding the current configuration.
    variable config_orig     ; # Holds configuration to "reset" back to.
    variable debug 0         ; # Turns on or off S3::debug
    variable debuglog 0      ; # Turns on or off debugging into a file
    variable bgvar_counter 0 ; # Makes unique names for bgvars.
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
    global errorCode
    S3::debug "nextdo" $routine $thunk $direction $args
    if {[dict get $thunk blocking]} {
	return [S3::$routine $thunk]
    } else {
	if {[llength $args] == 2} {
	    # fcopy failed!
	    S3::fail "S3 fcopy failed: [lindex $args 1]" "" \
		[list S3 socket $errorCode]
	} else {
	    fileevent [dict get $thunk S3chan] $direction \
		[list S3::$routine $thunk]
	    if {$direction == "writable"} {
		fileevent [dict get $thunk S3chan] readable {}
	    } else {







|







317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
    global errorCode
    S3::debug "nextdo" $routine $thunk $direction $args
    if {[dict get $thunk blocking]} {
	return [S3::$routine $thunk]
    } else {
	if {[llength $args] == 2} {
	    # fcopy failed!
	    S3::fail $thunk "S3 fcopy failed: [lindex $args 1]" "" \
		[list S3 socket $errorCode]
	} else {
	    fileevent [dict get $thunk S3chan] $direction \
		[list S3::$routine $thunk]
	    if {$direction == "writable"} {
		fileevent [dict get $thunk S3chan] readable {}
	    } else {

Changes to modules/amazon-s3/pkgIndex.tcl.

1
2
3
4
5
6
7
8
9
# pkgIndex.tcl --
# Copyright (c) 2006 Darren New
# This is for the Amazon S3 web service packages.

if {![package vsatisfies [package provide Tcl] 8.5]} {return}

package ifneeded xsxp 1.0 [list source [file join $dir xsxp.tcl]]
package ifneeded S3 1.0.2 [list source [file join $dir S3.tcl]]







|
|

1
2
3
4
5
6
7
8
9
# pkgIndex.tcl --
# Copyright (c) 2006 Darren New
# This is for the Amazon S3 web service packages.

if {![package vsatisfies [package provide Tcl] 8.5]} {return}

package ifneeded xsxp 1.0   [list source [file join $dir xsxp.tcl]]
package ifneeded S3   1.0.3 [list source [file join $dir S3.tcl]]

Changes to modules/bibtex/bibtex.man.

1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[comment {-*- tcl -*- doctools manpage}]

[manpage_begin bibtex n 0.5]
[keywords bibliography]
[keywords bibtex]
[keywords parsing]
[keywords {text processing}]
[copyright {2005 for documentation, Andreas Kupries <[email protected]>}]
[moddesc   {bibtex}]
[titledesc {Parse bibtex files}]
[category  {Text processing}]
[require Tcl 8.4]
[require bibtex [opt 0.5]]
[description]
[para]

This package provides commands for the parsing of bibliographies in
BibTeX format.

[list_begin definitions]

>
|









|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[comment {-*- tcl -*- doctools manpage}]
[vset VERSION 0.6]
[manpage_begin bibtex n [vset VERSION]]
[keywords bibliography]
[keywords bibtex]
[keywords parsing]
[keywords {text processing}]
[copyright {2005 for documentation, Andreas Kupries <[email protected]>}]
[moddesc   {bibtex}]
[titledesc {Parse bibtex files}]
[category  {Text processing}]
[require Tcl 8.4]
[require bibtex [opt [vset VERSION]]]
[description]
[para]

This package provides commands for the parsing of bibliographies in
BibTeX format.

[list_begin definitions]
72
73
74
75
76
77
78

79
80
81
82
83
84
85

[call [cmd ::bibtex::parse] \
	[opt "[option -recordcommand]   [arg recordcmd]"] \
	[opt "[option -preamblecommand] [arg preamblecmd]"] \
	[opt "[option -stringcommand]   [arg stringcmd]"] \
	[opt "[option -commentcommand]  [arg commentcmd]"] \
	[opt "[option -progresscommand] [arg progresscmd]"] \

	"([arg text] | [option -channel] [arg chan])"]

This is the most low-level form for the parser. The returned result
will be a handle for the parser. During processing it will invoke the
invoke the specified callback commands for each type of data found in
the bibliography.








>







73
74
75
76
77
78
79
80
81
82
83
84
85
86
87

[call [cmd ::bibtex::parse] \
	[opt "[option -recordcommand]   [arg recordcmd]"] \
	[opt "[option -preamblecommand] [arg preamblecmd]"] \
	[opt "[option -stringcommand]   [arg stringcmd]"] \
	[opt "[option -commentcommand]  [arg commentcmd]"] \
	[opt "[option -progresscommand] [arg progresscmd]"] \
	[opt "[option -casesensitivestrings] [arg bool]"] \
	"([arg text] | [option -channel] [arg chan])"]

This is the most low-level form for the parser. The returned result
will be a handle for the parser. During processing it will invoke the
invoke the specified callback commands for each type of data found in
the bibliography.

95
96
97
98
99
100
101






102
103
104
105
106
107
108
The callbacks, i.e. [arg *cmd], are all command prefixes and will be
invoked with additional arguments appended to them. The meaning of the
arguments depends on the callback and is explained below. The first
argument will however always be the handle of the parser invoking the
callback.

[list_begin definitions]







[def "[cmd recordcmd] [arg token] [arg type] [arg key] [arg recorddict]"]

This callback is invoked whenever the parser detects a bibliography
record in the input. Its arguments are the record type, the
bibliography key for the record, and a dictionary containing the keys
and values describing the record. Any string macros known to the







>
>
>
>
>
>







97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
The callbacks, i.e. [arg *cmd], are all command prefixes and will be
invoked with additional arguments appended to them. The meaning of the
arguments depends on the callback and is explained below. The first
argument will however always be the handle of the parser invoking the
callback.

[list_begin definitions]

[def "[option -casesensitivestrings]"]

This option takes a boolean value. When set string macro processing
becomes case-sensitive. The default is case-insensitive string macro
processing.

[def "[cmd recordcmd] [arg token] [arg type] [arg key] [arg recorddict]"]

This callback is invoked whenever the parser detects a bibliography
record in the input. Its arguments are the record type, the
bibliography key for the record, and a dictionary containing the keys
and values describing the record. Any string macros known to the

Changes to modules/bibtex/bibtex.pcx.

1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
18
19
# -*- tcl -*- bibtex.pcx
# Syntax of the commands provided by package bibtex.
#
# For use by TclDevKit's static syntax checker (v4.1+).
# See http://www.activestate.com/solutions/tcl/
# See http://aspn.activestate.com/ASPN/docs/Tcl_Dev_Kit/4.0/Checker.html#pcx_api
# for the specification of the format of the code in this file.
#

package require pcx
pcx::register bibtex
pcx::tcldep   0.5 needs tcl 8.5


namespace eval ::bibtex {}

pcx::message parseSaxCmdErr {Options -*command and -command exclude each other} err

pcx::check 0.5 std ::bibtex::addStrings \
    {checkSimpleArgs 2 2 {












>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# -*- tcl -*- bibtex.pcx
# Syntax of the commands provided by package bibtex.
#
# For use by TclDevKit's static syntax checker (v4.1+).
# See http://www.activestate.com/solutions/tcl/
# See http://aspn.activestate.com/ASPN/docs/Tcl_Dev_Kit/4.0/Checker.html#pcx_api
# for the specification of the format of the code in this file.
#

package require pcx
pcx::register bibtex
pcx::tcldep   0.5 needs tcl 8.5
pcx::tcldep   0.6 needs tcl 8.5

namespace eval ::bibtex {}

pcx::message parseSaxCmdErr {Options -*command and -command exclude each other} err

pcx::check 0.5 std ::bibtex::addStrings \
    {checkSimpleArgs 2 2 {
48
49
50
51
52
53
54


























55
56
57
58
	    }}}
	}}
    }}
pcx::check 0.5 std ::bibtex::wait \
    {checkSimpleArgs 1 1 {
	checkWord
    }}



























# Initialization via pcx::init.
# Use a ::bibtex::init procedure for non-standard initialization.
pcx::complete







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




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
	    }}}
	}}
    }}
pcx::check 0.5 std ::bibtex::wait \
    {checkSimpleArgs 1 1 {
	checkWord
    }}

pcx::check 0.6 std ::bibtex::parse \
    {checkSimpleArgs 1 -1 {
	{checkConstrained {
	    checkSwitches exact {
		{-casesensitivestrings checkBoolean}
		{-recordcommand        {checkSetConstraint sax {checkProcCall 4}}}
		{-preamblecommand      {checkSetConstraint sax {checkProcCall 2}}}
		{-stringcommand        {checkSetConstraint sax {checkProcCall 2}}}
		{-commentcommand       {checkSetConstraint sax {checkProcCall 2}}}
		{-progresscommand      {checkSetConstraint sax {checkProcCall 2}}}
		{-command              {checkSetConstraint cmd {checkProcCall 2}}}
		{-channel              {checkSetConstraint chan checkChannelID}}
	    } {checkConstraint {
		{{chan sax cmd} {warn bibtex::parseSaxCmdErr {} checkAtEnd}}
		{{sax cmd}      {warn bibtex::parseSaxCmdErr {} {
		    checkSimpleArgs 1 1 {
			checkWord
		    }
		}}}
		{chan checkAtEnd}
	    } {checkSimpleArgs 1 1 {
		checkWord
	    }}}
	}}
    }}

# Initialization via pcx::init.
# Use a ::bibtex::init procedure for non-standard initialization.
pcx::complete

Changes to modules/bibtex/bibtex.tcl.

159
160
161
162
163
164
165
166
167
168
169
170
171
172

173
174
175
176
177
178
179
proc ::bibtex::GetOptions {argv statevar} {
    upvar 1 $statevar state

    # Basic processing of the argument list
    # and the options found therein.

    set opts [lrange [::cmdline::GetOptionDefaults {
	{command.arg         {}}
	{channel.arg         {}}
	{recordcommand.arg   {}}
	{preamblecommand.arg {}}
	{stringcommand.arg   {}}
	{commentcommand.arg  {}}
	{progresscommand.arg {}}

    } result] 2 end] ;# Remove ? and help.

    set argc [llength $argv]
    while {[set err [::cmdline::getopt argv $opts opt arg]]} {
	if {$err < 0} {
	    set olist ""
	    foreach o [lsort $opts] {







|
|
|
|
|
|
|
>







159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
proc ::bibtex::GetOptions {argv statevar} {
    upvar 1 $statevar state

    # Basic processing of the argument list
    # and the options found therein.

    set opts [lrange [::cmdline::GetOptionDefaults {
	{command.arg              {}}
	{channel.arg              {}}
	{recordcommand.arg        {}}
	{preamblecommand.arg      {}}
	{stringcommand.arg        {}}
	{commentcommand.arg       {}}
	{progresscommand.arg      {}}
	{casesensitivestrings.arg {}}
    } result] 2 end] ;# Remove ? and help.

    set argc [llength $argv]
    while {[set err [::cmdline::getopt argv $opts opt arg]]} {
	if {$err < 0} {
	    set olist ""
	    foreach o [lsort $opts] {
246
247
248
249
250
251
252







253
254
255
256
257
258
259
    set state(bg)     [expr {$sax || $bg}]

    if {![info exists state(-stringcommand)]} {
	set state(-stringcommand) [list ::bibtex::addStrings]
    }
    if {![info exists state(-recordcommand)] && (!$sax)} {
	set state(-recordcommand) [list ::bibtex::AddRecord]







    }
    return
}

proc ::bibtex::Callback {token type args} {
    variable data








>
>
>
>
>
>
>







247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
    set state(bg)     [expr {$sax || $bg}]

    if {![info exists state(-stringcommand)]} {
	set state(-stringcommand) [list ::bibtex::addStrings]
    }
    if {![info exists state(-recordcommand)] && (!$sax)} {
	set state(-recordcommand) [list ::bibtex::AddRecord]
    }
    if {[info exists state(-casesensitivestrings)] &&
	$state(-casesensitivestrings)
    } {
	set state(casesensitivestrings) 1
    } else {
	set state(casesensitivestrings) 0
    }
    return
}

proc ::bibtex::Callback {token type args} {
    variable data

359
360
361
362
363
364
365
366
367
368



369
370
371
372
373
374
375
376
377




378

379
380
381
382
383
384
385
386





387
388
389
390
391
392
393
	}
	if {[regexp -nocase {\s*comment([^\n])*\n(.*)} $block \
		-> cmnt rest]} {
	    # Are @comments blocks, or just 1 line?
	    # Does anyone care?
	    Callback $token comment $cmnt

	} elseif {[regexp -nocase {\s*string[^\{]*\{(.*)\}[^\}]*} \
		$block -> rest]} {
	    # string macro defs



	    Callback $token string [ParseBlock $rest]

	} elseif {[regexp -nocase {\s*preamble[^\{]*\{(.*)\}[^\}]*} \
		$block -> rest]} {
	    Callback $token preamble $rest

	} elseif {[regexp {([^\{]+)\{([^,]*),(.*)\}[^\}]*} \
		$block -> type key rest]} {
	    # Do any @string mappings (these are case insensitive)




	    set rest [string map -nocase $data($token,strings) $rest]

	    Callback $token record [Tidy $type] [string trim $key] \
		    [ParseBlock $rest]
	} else {
	    ## FUTURE: Use a logger.
	    puts stderr "Skipping: $block"
	}
    }
}






proc ::bibtex::ParseBlock {block} {
    set ret   [list]
    set index 0
    while {
	[regexp -start $index -indices -- \
		{(\S+)[^=]*=(.*)} $block -> key rest]







|


>
>
>
|
|






|
>
>
>
>
|
>








>
>
>
>
>







367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
	}
	if {[regexp -nocase {\s*comment([^\n])*\n(.*)} $block \
		-> cmnt rest]} {
	    # Are @comments blocks, or just 1 line?
	    # Does anyone care?
	    Callback $token comment $cmnt

	} elseif {[regexp -nocase {^\s*string[^\{]*\{(.*)\}[^\}]*} \
		$block -> rest]} {
	    # string macro defs
	    if {$data($token,casesensitivestrings)} {
		Callback $token string [ParseString $rest]
	    } else {
		Callback $token string [ParseBlock $rest]
	    }
	} elseif {[regexp -nocase {\s*preamble[^\{]*\{(.*)\}[^\}]*} \
		$block -> rest]} {
	    Callback $token preamble $rest

	} elseif {[regexp {([^\{]+)\{([^,]*),(.*)\}[^\}]*} \
		$block -> type key rest]} {
	    # Do any @string mappings
	    if {$data($token,casesensitivestrings)} {
		# puts $data($token,strings)
		set rest [string map $data($token,strings) $rest]
	    } else {
		set rest [string map -nocase $data($token,strings) $rest]
	    }
	    Callback $token record [Tidy $type] [string trim $key] \
		    [ParseBlock $rest]
	} else {
	    ## FUTURE: Use a logger.
	    puts stderr "Skipping: $block"
	}
    }
}

proc ::bibtex::ParseString {block} {
    regexp {(\S+)[^=]*=(.*)} $block -> key rest
    return [list $key $rest]
}

proc ::bibtex::ParseBlock {block} {
    set ret   [list]
    set index 0
    while {
	[regexp -start $index -indices -- \
		{(\S+)[^=]*=(.*)} $block -> key rest]
473
474
475
476
477
478
479
480
481
    # -commentcommand  -- callback for @comment blocks
    # -progresscommand -- callback to indicate progress of parse
    ##
}

# ### ### ### ######### ######### #########
## Ready to go
package provide bibtex 0.5
# EOF







|

494
495
496
497
498
499
500
501
502
    # -commentcommand  -- callback for @comment blocks
    # -progresscommand -- callback to indicate progress of parse
    ##
}

# ### ### ### ######### ######### #########
## Ready to go
package provide bibtex 0.6
# EOF

Changes to modules/bibtex/bibtex.test.

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
    set code [catch {::bibtex::parse} msg]
    list $code $msg
} {1 {wrong # args: should be "::bibtex::parse ?options? ?bibtex?"}}

test bibtex-1.1 {Parse errors} {} {
    set code [catch {::bibtex::parse -frob} msg]
    list $code $msg
} {1 {bad option "frob", should be one of -channel, -command, -commentcommand, -preamblecommand, -progresscommand, -recordcommand, or -stringcommand}}

test bibtex-1.2 {Parse errors} {
    set code [catch {::bibtex::parse -frob nibar} msg]
    list $code $msg
} {1 {bad option "frob", should be one of -channel, -command, -commentcommand, -preamblecommand, -progresscommand, -recordcommand, or -stringcommand}}

test bibtex-1.3 {Parse errors} {} {
    set code [catch {::bibtex::parse -frob nibar fuzz} msg]
    list $code $msg
} {1 {bad option "frob", should be one of -channel, -command, -commentcommand, -preamblecommand, -progresscommand, -recordcommand, or -stringcommand}}

test bibtex-1.4 {Parse errors} {} {
    set code [catch {::bibtex::parse -command nibar -recordcommand fuzz snarf} msg]
    list $code $msg
} {1 {The options -command and -TYPEcommand exclude each other}}

test bibtex-1.5 {Parse errors} {} {







|




|




|







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
    set code [catch {::bibtex::parse} msg]
    list $code $msg
} {1 {wrong # args: should be "::bibtex::parse ?options? ?bibtex?"}}

test bibtex-1.1 {Parse errors} {} {
    set code [catch {::bibtex::parse -frob} msg]
    list $code $msg
} {1 {bad option "frob", should be one of -casesensitivestrings, -channel, -command, -commentcommand, -preamblecommand, -progresscommand, -recordcommand, or -stringcommand}}

test bibtex-1.2 {Parse errors} {
    set code [catch {::bibtex::parse -frob nibar} msg]
    list $code $msg
} {1 {bad option "frob", should be one of -casesensitivestrings, -channel, -command, -commentcommand, -preamblecommand, -progresscommand, -recordcommand, or -stringcommand}}

test bibtex-1.3 {Parse errors} {} {
    set code [catch {::bibtex::parse -frob nibar fuzz} msg]
    list $code $msg
} {1 {bad option "frob", should be one of -casesensitivestrings, -channel, -command, -commentcommand, -preamblecommand, -progresscommand, -recordcommand, or -stringcommand}}

test bibtex-1.4 {Parse errors} {} {
    set code [catch {::bibtex::parse -command nibar -recordcommand fuzz snarf} msg]
    list $code $msg
} {1 {The options -command and -TYPEcommand exclude each other}}

test bibtex-1.5 {Parse errors} {} {

Changes to modules/bibtex/pkgIndex.tcl.

1
2
if {![package vsatisfies [package provide Tcl] 8.4]} {return}
package ifneeded bibtex 0.5 [list source [file join $dir bibtex.tcl]]

|
1
2
if {![package vsatisfies [package provide Tcl] 8.4]} {return}
package ifneeded bibtex 0.6 [list source [file join $dir bibtex.tcl]]

Changes to modules/clock/iso8601.test.

20
21
22
23
24
25
26
27
28
29
30




31
32
33
34
35
36
37
    clock::iso8601 parse_date
} -returnCodes error -result {wrong # args: should be "clock::iso8601 parse_date string ..."}

test clock-iso8601-1.0.1 {parse_date wrong\#args} -constraints {tcl8.6plus} -body {
    clock::iso8601 parse_date
} -returnCodes error -result {wrong # args: should be "clock::iso8601 parse_date string ?arg ...?"}

test clock-iso8601-1.1 {parse_date, bad option} -body {
    clock::iso8601 parse_date 1994-11-05 -foo x
} -returnCodes error -result {bad switch "-foo", must be -base, -format, -gmt, -locale or -timezone}





# NOTE: While listed as legal, -format is NOT. This is because the
# command simply hands off to clock scan, and we are seeing its error
# message.  Either we do our own argument check first, or we capture
# and rewrite the error.

# -------------------------------------------------------------------------








|



>
>
>
>







20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
    clock::iso8601 parse_date
} -returnCodes error -result {wrong # args: should be "clock::iso8601 parse_date string ..."}

test clock-iso8601-1.0.1 {parse_date wrong\#args} -constraints {tcl8.6plus} -body {
    clock::iso8601 parse_date
} -returnCodes error -result {wrong # args: should be "clock::iso8601 parse_date string ?arg ...?"}

test clock-iso8601-1.1.0 {parse_date, bad option} -constraints {tcl8.5plus tcl8.5minus} -body {
    clock::iso8601 parse_date 1994-11-05 -foo x
} -returnCodes error -result {bad switch "-foo", must be -base, -format, -gmt, -locale or -timezone}

test clock-iso8601-1.1.1 {parse_date, bad option} -constraints {tcl8.6plus} -body {
    clock::iso8601 parse_date 1994-11-05 -foo x
} -returnCodes error -result {bad option "-foo", must be -base, -format, -gmt, -locale or -timezone}

# NOTE: While listed as legal, -format is NOT. This is because the
# command simply hands off to clock scan, and we are seeing its error
# message.  Either we do our own argument check first, or we capture
# and rewrite the error.

# -------------------------------------------------------------------------

Added modules/cron/cron.man.





























































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
[comment {-*- tcl -*- doctools manpage}]
[vset PACKAGE_VERSION 0.1]
[manpage_begin cron n [vset PACKAGE_VERSION]]
[keywords {cron}]
[keywords {odie}]
[copyright {2015 Sean Woods <[email protected]>}]
[moddesc   {cron}]
[titledesc {Tool for automating the period callback of commands}]
[category  System]
[require Tcl 8.5]
[require cron [opt [vset PACKAGE_VERSION]]]
[description]
[para]

The [package cron] package provides a Pure-tcl set of tools to allow
programs to schedule tasks to occur at regular intervals. Rather than
force each task to issue it's own call to the event loop, the cron
system mimics the cron utility in Unix: on task periodically checks to
see if something is to be done, and issues all commands for a given
time step at once.

The cron package is intended to work in time scales greater than 1 second.

[section Commands]
[list_begin definitions]

[call [cmd ::cron::at] [arg ?processname?] [arg timecode] [arg command]]

This command registers a [arg command] to be called at the time specified by [arg timecode].
If [arg timecode] is expressed as an integer, the timecode is assumed to be in unixtime. All
other inputs will be interpreted by [cmd {clock scan}] and converted to unix time.
This task can be modified by subsequent calls to
this package's commands by referencing [arg processname]. If [arg processname] exists,
it will be replaced.

If [arg processname] is not given, one is generated and returned by the command.

[example_begin]
::cron::at start_coffee {Tomorrow at 9:00am}  {remote::exec::coffeepot power on}
::cron::at shutdown_coffee {Tomorrow at 12:00pm}  {remote::exec::coffeepot power off}
[example_end]

[call [cmd ::cron::cancel] [arg processname]]

This command unregisters the process [arg processname] and cancels any pending commands.
Note: processname can be a process created by either [cmd ::cron::at] or [cmd ::cron::every].

[example_begin]
::cron::cancel check_mail
[example_end]

[call [cmd ::cron::every] [arg processname] [arg frequency] [arg command]]

This command registers a [arg command] to be called at the interval of [arg frequency].
[arg frequency] is given in seconds. This task can be modified by subsequent calls to
this package's commands by referencing [arg processname]. If [arg processname] exists,
it will be replaced.

[example_begin]
::cron::every check_mail 900  ::imap_client::check_mail
::cron::every backup_db  3600 {::backup_procedure ::mydb}
[example_end]

[call [cmd ::cron::in] [arg ?processname?] [arg timecode] [arg command]]

This command registers a [arg command] to be called after a delay of time specified by [arg timecode].
[arg timecode] is expressed as an seconds.
This task can be modified by subsequent calls to
this package's commands by referencing [arg processname]. If [arg processname] exists,
it will be replaced.

If [arg processname] is not given, one is generated and returned by the command.

[list_end]
[para]
[vset CATEGORY odie]
[include ../doctools2base/include/feedback.inc]
[manpage_end]

Added modules/cron/cron.tcl.



















































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
###
# This file implements a process table
# Instead of having individual components try to maintain their own timers
# we centrally manage how often tasks should be kicked off here.
###
#
# Author: Sean Woods (for T&E Solutions)

package provide cron 1.1

::namespace eval ::cron {}

proc ::cron::at args {
  switch [llength $args] {
    2 {
      variable processuid
      set process event#[incr processuid]
      lassign $args timecode command
    }
    3 {
      lassign $args process timecode command
    }
    default {
      error "Usage: ?process? timecode command"
    }
  }
  variable processTable
  if {[string is integer -strict $timecode]} {
    set scheduled $timecode
  } else {
    set scheduled [clock scan $timecode]
  }
  set now [clock seconds]
  set info [list process $process frequency 0 command $command scheduled $scheduled lastevent $now]
  if ![info exists processTable($process)] {
    lappend info lastrun 0 err 0 result {}
  }
  foreach {field value} $info {
    dict set processTable($process) $field $value
  }
  ::cron::runTasks
  return $process
}

proc ::cron::in args {
  switch [llength $args] {
    2 {
      variable processuid
      set process event#[incr processuid]
      lassign $args timecode command
    }
    3 {
      lassign $args process timecode command
    }
    default {
      error "Usage: ?process? timecode command"
    }
  }
  variable processTable
  set now [clock seconds]
  set scheduled [expr {int(ceil($timecode+$now))}]
  set info [list process $process frequency 0 command $command scheduled $scheduled lastevent $now]
  if ![info exists processTable($process)] {
    lappend info lastrun 0 err 0 result {}
  }
  foreach {field value} $info {
    dict set processTable($process) $field $value
  }
  ::cron::runTasks
  return $process
}

###
# topic: 0776dccd7e84530fa6412e507c02487c
###
proc ::cron::every {process frequency command} {
  variable processTable
  set now [clock seconds]
  set info [list process $process frequency $frequency command $command scheduled [expr {$now + $frequency}] lastevent $now]
  if ![info exists processTable($process)] {
    lappend info lastrun 0 err 0 result {}
  }
  foreach {field value} $info {
    dict set processTable($process) $field $value
  }
  ::cron::runTasks
}

proc ::cron::cancel {process} {
  variable processTable
  unset -nocomplain processTable($process)
}

###
# topic: 97015814408714af539f35856f85bce6
###
proc ::cron::run process {
  variable processTable
  dict set processTable($process) lastrun 0
}

###
# topic: 1f8d4726623321acc311734c1dadcd8e
# description:
#    Run through our process table and
#    kick off overdue tasks
###
proc ::cron::runProcesses {} {
  variable processTable
  set now [clock seconds]
  
  ###
  # Determine what tasks to run this timestep
  ###
  set tasks {}
  set cancellist {}
  foreach {process} [array names processTable] {
    dict with processTable($process) {
      if { $scheduled <= $now } {
        lappend tasks $process
        if { $frequency <= 0 } {
          lappend cancellist $process
        } else {
          set scheduled [expr {$frequency + $lastrun}]
          if { $scheduled <= $now } {
            set scheduled [expr {$frequency + $now}]
          }
        }
        set lastrun $now
      }
      set lastevent $now
    }
  }
  foreach task $tasks {
    dict with processTable($task) {
      set err [catch {uplevel #0 $command} result]
      if $err {
        puts $result
      }
    }
  }

  foreach {task} $cancellist {
    unset -nocomplain processTable($task)
  }
}

###
# topic: 2f5a33d28948c4514764bd2f58b750fc
# description:
#    Called once per second, and timed to ensure
#    we run in roughly realtime
###
proc ::cron::runTasks {} {
  variable lastcall
  after cancel $lastcall
  ###
  # Run the processes before we kick off another task...
  ###
  catch {runProcesses}
  variable processTable
  ###
  # Look at our schedule and book the next timeslot
  # or 15 minutes, whichever is sooner
  ###
  set now [clock seconds]
  set nexttime [expr {$now - ($now % 900) + 900}]
  foreach {process} [array names processTable] {
    dict with processTable($process) {
      if {$scheduled > $now && $scheduled < $nexttime} {
        set nexttime $scheduled
      }
    }
  }
  ###
  # Try to get the event to fire off on the border of the
  # nearest second
  ###
  if { $nexttime > $now } {
    set ctime [clock milliseconds]
    set next [expr {($nexttime-$now)*1000-1000+($ctime % 1000)}]
  } else {
    set next 0
  }
  set lastcall [after $next [namespace current]::runTasks]
}

###
# topic: 4a891d0caabc6e25fbec9514ea8104dd
# description:
#    This file implements a process table
#    Instead of having individual components try to maintain their own timers
#    we centrally manage how often tasks should be kicked off here.
###
namespace eval ::cron {
  variable lastcall 0
  variable processTable
}

::cron::runTasks

Added modules/cron/cron.test.







































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
# Tests for the cron module
#
# This file contains a collection of tests for one or more of the Tcl
# built-in commands.  Sourcing this file into Tcl runs the tests and
# generates output for errors.  No output means no errors were found.
#
# Copyright (c) 2014 by Sean Woods
# (Insert BSDish style "use at your own risk" license text)

source [file join \
    [file dirname [file dirname [file join [pwd] [info script]]]] \
    devtools testutilities.tcl]

package require tcltest
testsNeedTcl     8.5
testsNeedTcltest 1.0

testing {
    useLocal cron.tcl cron
}

set timecounter 0
::cron::every timecounter 1 {incr timecounter}
set now [clock seconds]

# Test at
set timerevent 0
::cron::at timeevent1 [expr {$now + 5}] {set ::timerevent 1}
::cron::at timeevent2 [expr {$now + 6}] {set ::eventpause 0}
::cron::at timeevent3 [expr {$now + 10}] {set ::timerevent 2}
::cron::at timeevent4 [expr {$now + 11}] {set ::pause 0}

test cron-1.1 {cron::every} {
  set ::timecounter
} 0
test cron-1.2 {cron::at1} {
  set ::timerevent
} 0
vwait eventpause
test cron-1.3 {cron::at1} {
  set ::timerevent
} 1

# Test that in X seconds our timer
# was incremented X times
vwait pause  
test cron-1.4 {cron::every} {
  set ::timecounter
} [expr {[clock seconds]-$now}]

test cron-1.5 {cron::at2} {
  set ::timerevent
} 2

###
# Confirm cancel works
::cron::cancel timecounter
set timecounterfinal $::timecounter

after 2000 {set pause 0}
vwait pause
test cron-1.6 {cron::cancel} {
  set ::timecounter
} $::timecounterfinal

###
# Test the new IN command
###
set ::inevent 0
cron::in 5 {set ::inevent 1}

test cron-1.7 {cron::in} {
  set ::inevent
} 0

after 6000 {set pause 0}
vwait pause
test cron-1.8 {cron::in} {
  set ::inevent
} 1

testsuiteCleanup
return

Added modules/cron/pkgIndex.tcl.























>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
# Tcl package index file, version 1.1
# This file is generated by the "pkg_mkIndex" command
# and sourced either when an application starts up or
# by a "package unknown" script.  It invokes the
# "package ifneeded" command to set up package-related
# information so that packages will be loaded automatically
# in response to "package require" commands.  When this
# script is sourced, the variable $dir must contain the
# full path name of this file's directory.

package ifneeded cron 1.1 [list source [file join $dir cron.tcl]]

Changes to modules/dns/ipMore.tcl.

39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Category: 
#       
#
# End of Header

package require msgcat

# Try to load various C based accelerato packages for two of the
# commands.

if {[catch {package require ipMorec}]} {
    catch {package require tcllibc}
}

if {[llength [info commands ::ip::prefixToNativec]]} {







|







39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Category: 
#       
#
# End of Header

package require msgcat

# Try to load various C based accelerator packages for two of the
# commands.

if {[catch {package require ipMorec}]} {
    catch {package require tcllibc}
}

if {[llength [info commands ::ip::prefixToNativec]]} {
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
#        -ipv4
#            the provided native format addresses are in ipv4 format (default)
#
# Return Values:
#        non-zero if there is an overlap, value is element # in list with overlap
#
# Description:
#        isOverlapNative is avaliabel both as a C extension and in a native tcl form
#        if the extension is loaded (tried automatically), isOverlapNative will be
#        linked to isOverlapNativeC. If an extension is not loaded, then isOverlapNative
#        will be linked to the native tcl proc: ipOverlapNativeTcl.
#
# Examples:
#        % ::ip::isOverlapNative 0x01010100 0xffffff00 {{0x02010001 0xffffffff}}
#        0







|







745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
#        -ipv4
#            the provided native format addresses are in ipv4 format (default)
#
# Return Values:
#        non-zero if there is an overlap, value is element # in list with overlap
#
# Description:
#        isOverlapNative is available both as a C extension and in a native tcl form
#        if the extension is loaded (tried automatically), isOverlapNative will be
#        linked to isOverlapNativeC. If an extension is not loaded, then isOverlapNative
#        will be linked to the native tcl proc: ipOverlapNativeTcl.
#
# Examples:
#        % ::ip::isOverlapNative 0x01010100 0xffffff00 {{0x02010001 0xffffffff}}
#        0

Changes to modules/fileutil/pkgIndex.tcl.

1
2
3
4
5
6
7
8
9
10
if {![package vsatisfies [package provide Tcl] 8.2]} {return}
package ifneeded fileutil 1.14.10 [list source [file join $dir fileutil.tcl]]

if {![package vsatisfies [package provide Tcl] 8.3]} {return}
package ifneeded fileutil::traverse 0.4.5 [list source [file join $dir traverse.tcl]]

if {![package vsatisfies [package provide Tcl] 8.4]} {return}
package ifneeded fileutil::multi     0.1   [list source [file join $dir multi.tcl]]
package ifneeded fileutil::multi::op 0.5.3 [list source [file join $dir multiop.tcl]]
package ifneeded fileutil::decode    0.2   [list source [file join $dir decode.tcl]]




|





1
2
3
4
5
6
7
8
9
10
if {![package vsatisfies [package provide Tcl] 8.2]} {return}
package ifneeded fileutil 1.14.10 [list source [file join $dir fileutil.tcl]]

if {![package vsatisfies [package provide Tcl] 8.3]} {return}
package ifneeded fileutil::traverse 0.5 [list source [file join $dir traverse.tcl]]

if {![package vsatisfies [package provide Tcl] 8.4]} {return}
package ifneeded fileutil::multi     0.1   [list source [file join $dir multi.tcl]]
package ifneeded fileutil::multi::op 0.5.3 [list source [file join $dir multiop.tcl]]
package ifneeded fileutil::decode    0.2   [list source [file join $dir decode.tcl]]

Changes to modules/fileutil/traverse.man.

1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[comment {-*- text -*- doctools manpage}]

[manpage_begin fileutil_traverse n 0.4.5]
[keywords {directory traversal}]
[keywords traversal]
[moddesc   {file utilities}]
[titledesc {Iterative directory traversal}]
[category  {Programming tools}]
[require Tcl 8.3]
[require fileutil::traverse [opt 0.4.3]]
[require fileutil]
[require control]
[description]
[para]

This package provides objects for the programmable traversal of
directory hierarchies.

>
|






|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[comment {-*- text -*- doctools manpage}]
[vset VERSION 0.5]
[manpage_begin fileutil_traverse n [vset VERSION]]
[keywords {directory traversal}]
[keywords traversal]
[moddesc   {file utilities}]
[titledesc {Iterative directory traversal}]
[category  {Programming tools}]
[require Tcl 8.3]
[require fileutil::traverse [opt [vset VERSION]]]
[require fileutil]
[require control]
[description]
[para]

This package provides objects for the programmable traversal of
directory hierarchies.

Changes to modules/fileutil/traverse.tcl.

1
2
3
4
5
6
7
8
9
10
11
12
# traverse.tcl --
#
#	Directory traversal.
#
# Copyright (c) 2006-2009 by Andreas Kupries <[email protected]>
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
# 
# RCS: @(#) $Id: traverse.tcl,v 1.9 2012/08/29 20:42:19 andreas_kupries Exp $

package require Tcl 8.3




|







1
2
3
4
5
6
7
8
9
10
11
12
# traverse.tcl --
#
#	Directory traversal.
#
# Copyright (c) 2006-2015 by Andreas Kupries <[email protected]>
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
# 
# RCS: @(#) $Id: traverse.tcl,v 1.9 2012/08/29 20:42:19 andreas_kupries Exp $

package require Tcl 8.3
260
261
262
263
264
265
266

267
268
269
270
271
272
273
    variable _parent -array {}
    variable _norm   -array {}

    # ### ### ### ######### ######### #########
    ## Internal helpers.

    proc Enter {parent path} {

	upvar 1 _parent _parent _norm _norm
	set _parent($path) $parent
	set _norm($path)   [fileutil::fullnormalize $path]
    }

    proc Cycle {path} {
	upvar 1 _parent _parent _norm _norm







>







260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
    variable _parent -array {}
    variable _norm   -array {}

    # ### ### ### ######### ######### #########
    ## Internal helpers.

    proc Enter {parent path} {
	#puts ___E|$path
	upvar 1 _parent _parent _norm _norm
	set _parent($path) $parent
	set _norm($path)   [fileutil::fullnormalize $path]
    }

    proc Cycle {path} {
	upvar 1 _parent _parent _norm _norm
297
298
299
300
301
302
303

304
305

306
307
308
309
310
311
312

313
314

315
316
317
318
319
320
321
322
323

324
325
326
327
328
329
330

	# System is set up now.
	set _init 1
	return
    }

    proc Valid {path} {

	upvar 1 options options
	if {![llength $options(-filter)]} {return 1}

	set code [catch {uplevel \#0 [linsert $options(-filter) end $path]} valid]
	if {!$code} {return $valid}
	Error $path $valid
	return 0
    }

    proc Recurse {path} {

	upvar 1 options options
	if {![llength $options(-prefilter)]} {return 1}

	set code [catch {uplevel \#0 [linsert $options(-prefilter) end $path]} valid]
	if {!$code} {return $valid}
	Error $path $valid
	return 0
    }

    proc Error {path msg} {
	upvar 1 options options
	if {![llength $options(-errorcmd)]} return

	uplevel \#0 [linsert $options(-errorcmd) end $path $msg]
	return
    }

    ##
    # ### ### ### ######### ######### #########
}







>


>







>
|

>









>







298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336

	# System is set up now.
	set _init 1
	return
    }

    proc Valid {path} {
	#puts ___V|$path
	upvar 1 options options
	if {![llength $options(-filter)]} {return 1}
	set path [file normalize $path]
	set code [catch {uplevel \#0 [linsert $options(-filter) end $path]} valid]
	if {!$code} {return $valid}
	Error $path $valid
	return 0
    }

    proc Recurse {path} {
	#puts ___X|$path
	upvar 1 options options _norm _norm
	if {![llength $options(-prefilter)]} {return 1}
	set path [file normalize $path]
	set code [catch {uplevel \#0 [linsert $options(-prefilter) end $path]} valid]
	if {!$code} {return $valid}
	Error $path $valid
	return 0
    }

    proc Error {path msg} {
	upvar 1 options options
	if {![llength $options(-errorcmd)]} return
	set path [file normalize $path]
	uplevel \#0 [linsert $options(-errorcmd) end $path $msg]
	return
    }

    ##
    # ### ### ### ######### ######### #########
}
493
494
495
496
497
498
499
500
	return $l
    }
}

# ### ### ### ######### ######### #########
## Ready

package provide fileutil::traverse 0.4.5







|
499
500
501
502
503
504
505
506
	return $l
    }
}

# ### ### ### ######### ######### #########
## Ready

package provide fileutil::traverse 0.5

Changes to modules/fileutil/traverse.test.

34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
proc rec {x} {
    lappend ::rec $x
    return 1
}

proc recx {args} {
    lappend ::rec $args
    return
}

# -------------------------------------------------------------------------

test traverse-1.0.0 {Traverse result, circular links, unix} -setup {
    f_setupcircle
    set t [fileutil::traverse %AUTO% [tempPath {find 1}]]







|







34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
proc rec {x} {
    lappend ::rec $x
    return 1
}

proc recx {args} {
    lappend ::rec $args
    return 1
}

# -------------------------------------------------------------------------

test traverse-1.0.0 {Traverse result, circular links, unix} -setup {
    f_setupcircle
    set t [fileutil::traverse %AUTO% [tempPath {find 1}]]
326
327
328
329
330
331
332
333
334
335



















































336
337
338
} -cleanup {
    $t destroy
    f_cleanup3
} -result [join [pathmap \
		     z z/a z/a/c z/a/c/g z/a/c/h z/a/c/h/e z/a/c/h/f \
		     z/a/c/i z/a/d z/b z/b/e z/b/e/g z/b/e/g/c z/b/e/g/d \
		     z/b/e/h z/b/e/i z/b/f] \n]

# -------------------------------------------------------------------------




















































f_cleanall
testsuiteCleanup
return










>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
} -cleanup {
    $t destroy
    f_cleanup3
} -result [join [pathmap \
		     z z/a z/a/c z/a/c/g z/a/c/h z/a/c/h/e z/a/c/h/f \
		     z/a/c/i z/a/d z/b z/b/e z/b/e/g z/b/e/g/c z/b/e/g/d \
		     z/b/e/h z/b/e/i z/b/f] \n]

# -------------------------------------------------------------------------

test traverse-1.5 {Traverse, relative base path, callback API} -setup {
    f_setupcircle
    set rec {}

    set base [tempPath {find 1}]
    set bdir [file dirname $base]
    set base [file tail $base]
    set here [pwd]
    cd $bdir
    set t [fileutil::traverse %AUTO% $base -filter ::rec]
} -constraints unix -body {
    $t files
    lsort $rec
} -cleanup {
    $t destroy
    cd $here
    unset rec bdir base here
    f_cleanup
} -result [list \
	       [tempPath {find 1}] \
	       [tempPath {find 1/file [1]}] \
	       [tempPath {find 1/find 2}] \
	       [tempPath {find 1/find 2/file 3}] \
	       [tempPath {find 1/find 2/file* 2}]]

test traverse-1.6 {Traverse, relative base path, callback API} -setup {
    f_setupcircle
    set rec {}

    set base [tempPath {find 1}]
    set bdir [file dirname $base]
    set base [file tail $base]
    set here [pwd]
    cd $bdir
    set t [fileutil::traverse %AUTO% $base -prefilter ::rec]
} -constraints unix -body {
    $t files
    lsort $rec
} -cleanup {
    $t destroy
    cd $here
    unset rec bdir base here
    f_cleanup
} -result [list \
	       [tempPath {find 1}] \
	       [tempPath {find 1/find 2}]]

# TODO: checking -error callback with ingoing relative basepath.

# -------------------------------------------------------------------------

f_cleanall
testsuiteCleanup
return

Changes to modules/math/ChangeLog.








1
2
3
4
5
6
7







2014-09-27  Arjen Markus <[email protected]>
	* statistics.tcl: Bump version to 0.9.2
	* statistics.test: Add tests for all pdf-* and cdf-* procedures, crude tests for random-* procedures
	* pdf_stat.tcl: Fix a typo (cdf-uniform) and fix inadvertent integer divisions should arguments be integer
	* special.tcl: Adding Christian's implementation of the inverse normal distribution function (invnorm)
	* special.test: Adding test case for this new function
	* special.man: Describing invnorm plus a correction in the overview (ierfc_n is not implemented)
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
2015-04-26  Arjen Markus <[email protected]>
	* statistics.tcl: Bump version to 0.9.3
	                  Implemented an alternative to histogram (ticket 1502400fff)
	                  Revised test-normal to use "significance" (ticket 2812473fff)
	* statistics.man: Describe histogram-alt, changes to test-normal (and t-test-mean, again "confidence")
	* pdf_stat.tcl: Correct the returned value for pdf-beta - if x is 0 or 1.

2014-09-27  Arjen Markus <[email protected]>
	* statistics.tcl: Bump version to 0.9.2
	* statistics.test: Add tests for all pdf-* and cdf-* procedures, crude tests for random-* procedures
	* pdf_stat.tcl: Fix a typo (cdf-uniform) and fix inadvertent integer divisions should arguments be integer
	* special.tcl: Adding Christian's implementation of the inverse normal distribution function (invnorm)
	* special.test: Adding test case for this new function
	* special.man: Describing invnorm plus a correction in the overview (ierfc_n is not implemented)

Changes to modules/math/calculus.man.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

[manpage_begin math::calculus n 0.8]
[see_also romberg]
[keywords calculus]
[keywords {differential equations}]
[keywords integration]
[keywords math]
[keywords roots]
[copyright {2002,2003,2004 Arjen Markus}]
[moddesc   {Tcl Math Library}]
[titledesc {Integration and ordinary differential equations}]
[category  Mathematics]
[require Tcl 8.4]
[require math::calculus 0.8]
[description]
[para]
This package implements several simple mathematical algorithms:

[list_begin itemized]
[item]
The integration of a function over an interval
>
|











|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[vset VERSION 0.8.1]
[manpage_begin math::calculus n [vset VERSION]]
[see_also romberg]
[keywords calculus]
[keywords {differential equations}]
[keywords integration]
[keywords math]
[keywords roots]
[copyright {2002,2003,2004 Arjen Markus}]
[moddesc   {Tcl Math Library}]
[titledesc {Integration and ordinary differential equations}]
[category  Mathematics]
[require Tcl 8.4]
[require math::calculus [vset VERSION]]
[description]
[para]
This package implements several simple mathematical algorithms:

[list_begin itemized]
[item]
The integration of a function over an interval

Changes to modules/math/calculus.tcl.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# RCS: @(#) $Id: calculus.tcl,v 1.15 2008/10/08 03:30:48 andreas_kupries Exp $

package require Tcl 8.4
package require math::interpolate
package provide math::calculus 0.8

# math::calculus --
#    Namespace for the commands

namespace eval ::math::calculus {

    namespace import ::math::interpolate::neville







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# RCS: @(#) $Id: calculus.tcl,v 1.15 2008/10/08 03:30:48 andreas_kupries Exp $

package require Tcl 8.4
package require math::interpolate
package provide math::calculus 0.8.1

# math::calculus --
#    Namespace for the commands

namespace eval ::math::calculus {

    namespace import ::math::interpolate::neville
1484
1485
1486
1487
1488
1489
1490








1491
1492
1493
1494
1495
1496
1497
           0.1047900103222502e+00    0.1406532597155259e+00
           0.1690047266392679e+00    0.1903505780647854e+00
           0.2044329400752989e+00    0.2094821410847278e+00}
    set qk15_wg {
           0.1294849661688697e+00    0.2797053914892767e+00
           0.3818300505051189e+00    0.4179591836734694e+00}
}









proc ::math::calculus::qk15_basic {xstart xend func} {
    variable qk15_wg
    variable qk15_wgk
    variable qk15_xgk

    #







>
>
>
>
>
>
>
>







1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
           0.1047900103222502e+00    0.1406532597155259e+00
           0.1690047266392679e+00    0.1903505780647854e+00
           0.2044329400752989e+00    0.2094821410847278e+00}
    set qk15_wg {
           0.1294849661688697e+00    0.2797053914892767e+00
           0.3818300505051189e+00    0.4179591836734694e+00}
}

if {[package vsatisfies [package present Tcl] 8.5]} {
    proc ::math::calculus::Min {a b} { expr {min ($a, $b)} }
    proc ::math::calculus::Max {a b} { expr {max ($a, $b)} }
} else {
    proc ::math::calculus::Min {a b} { if {$a < $b} { return $a } else { return $b }}
    proc ::math::calculus::Max {a b} { if {$a > $b} { return $a } else { return $b }}
}

proc ::math::calculus::qk15_basic {xstart xend func} {
    variable qk15_wg
    variable qk15_wgk
    variable qk15_xgk

    #
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
    }

    set result [expr {$resk*$hlgth}]
    set resabs [expr {$resabs*$dhlgth}]
    set resasc [expr {$resasc*$dhlgth}]
    set abserr [expr {abs(($resk-$resg)*$hlgth)}]
    if { $resasc != 0.0e+00 && $abserr != 0.0e+00 } {
        set abserr [expr {$resasc*min(0.1e+01,(0.2e+3*$abserr/$resasc)**1.5e+00)}]
    }
    if { $resabs > $uflow/(0.5e+02*$epmach) } {
        set abserr [expr {max(($epmach*0.5e+02)*$resabs,$abserr)}]
    }

    return [list $result $abserr $resabs $resasc]
}

# qk15 --
#     Apply the QK15 rule to an interval and return the estimated integral







|


|







1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
    }

    set result [expr {$resk*$hlgth}]
    set resabs [expr {$resabs*$dhlgth}]
    set resasc [expr {$resasc*$dhlgth}]
    set abserr [expr {abs(($resk-$resg)*$hlgth)}]
    if { $resasc != 0.0e+00 && $abserr != 0.0e+00 } {
        set abserr [expr {$resasc*[Min 0.1e+01 [expr {pow((0.2e+3*$abserr/$resasc),1.5e+00)}]]}]
    }
    if { $resabs > $uflow/(0.5e+02*$epmach) } {
        set abserr [Max [expr {($epmach*0.5e+02)*$resabs}] $abserr]
    }

    return [list $result $abserr $resabs $resasc]
}

# qk15 --
#     Apply the QK15 rule to an interval and return the estimated integral
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
        set abserr 0.0
        set resabs 0.0
        set resasc 0.0
        for {set i 0} {$i < $n} {incr i} {
            set xb [expr {$xstart + $dx * $i}]
            set xe [expr {$xstart + $dx * ($i+1)}]

            lassign [qk15_basic $xb $xe $func] dresult dabserr dresabs dresasc
            set result [expr {$result + $dresult}]
            set abserr [expr {$abserr + $dabserr}]
            set resabs [expr {$resabs + $dresabs}]
            set resasc [expr {$resasc + $dresasc}]
        }
    }

    return [list $result $abserr $resabs $resasc]
}







|









1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
        set abserr 0.0
        set resabs 0.0
        set resasc 0.0
        for {set i 0} {$i < $n} {incr i} {
            set xb [expr {$xstart + $dx * $i}]
            set xe [expr {$xstart + $dx * ($i+1)}]

            foreach {dresult dabserr dresabs dresasc} [qk15_basic $xb $xe $func] break
            set result [expr {$result + $dresult}]
            set abserr [expr {$abserr + $dabserr}]
            set resabs [expr {$resabs + $dresabs}]
            set resasc [expr {$resasc + $dresasc}]
        }
    }

    return [list $result $abserr $resabs $resasc]
}

Changes to modules/math/linalg.tcl.

1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752

    if { $m < $n } {
        set U {}
        incr m -1
        foreach row $A {
            lappend U [lrange $row 0 $m]
        }
        puts $U
    }
    return [list $U $S $V]
}

# eigenvectorsSVD --
#     Determine the eigenvectors and eigenvalues of a real
#     symmetric matrix via the SVD







|







1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752

    if { $m < $n } {
        set U {}
        incr m -1
        foreach row $A {
            lappend U [lrange $row 0 $m]
        }
        #puts $U
    }
    return [list $U $S $V]
}

# eigenvectorsSVD --
#     Determine the eigenvectors and eigenvalues of a real
#     symmetric matrix via the SVD

Changes to modules/math/mvlinreg.tcl.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# mvreglin.tcl --
#     Addition to the statistics package
#     Copyright 2007 Eric Kemp-Benedict
#     Released under the BSD license under any terms
#     that allow it to be compatible with tcllib

package require math::linearalgebra 1.0
package require math::statistics 0.4

# ::math::statistics --
#     This file adds:
#     mvlinreg = Multivariate Linear Regression
#
namespace eval ::math::statistics {
    variable epsilon 1.0e-7







<







1
2
3
4
5
6
7

8
9
10
11
12
13
14
# mvreglin.tcl --
#     Addition to the statistics package
#     Copyright 2007 Eric Kemp-Benedict
#     Released under the BSD license under any terms
#     that allow it to be compatible with tcllib

package require math::linearalgebra 1.0


# ::math::statistics --
#     This file adds:
#     mvlinreg = Multivariate Linear Regression
#
namespace eval ::math::statistics {
    variable epsilon 1.0e-7

Changes to modules/math/pdf_stat.tcl.

969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
    if {$b <= 0.0} {
        return -code error "Value out of range in Beta density: b = $b, must be > 0"
    }
    #
    # Corner cases ... need to check these!
    #
    if {$x == 0.0} {
        return 0.0
    }
    if {$x == 1.0} {
        return 0.0
    }
    set aplusb [expr {$a + $b}]
    set term1 [expr {[::math::ln_Gamma $aplusb]- [::math::ln_Gamma $a] - [::math::ln_Gamma $b]}]
    set term2 [expr {($a - 1.0) * log($x) + ($b - 1.0) * log(1.0 - $x)}]

    set term [expr {$term1 + $term2}]
    if { $term > -200.0 } {







|


|







969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
    if {$b <= 0.0} {
        return -code error "Value out of range in Beta density: b = $b, must be > 0"
    }
    #
    # Corner cases ... need to check these!
    #
    if {$x == 0.0} {
        return [expr {$a > 1.0? 0.0 : Inf}]
    }
    if {$x == 1.0} {
        return [expr {$b > 1.0? 0.0 : Inf}]
    }
    set aplusb [expr {$a + $b}]
    set term1 [expr {[::math::ln_Gamma $aplusb]- [::math::ln_Gamma $a] - [::math::ln_Gamma $b]}]
    set term2 [expr {($a - 1.0) * log($x) + ($b - 1.0) * log(1.0 - $x)}]

    set term [expr {$term1 + $term2}]
    if { $term > -200.0 } {

Changes to modules/math/pkgIndex.tcl.

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package ifneeded math::fourier           1.0.2 [list source [file join $dir fourier.tcl]]

if {![package vsatisfies [package provide Tcl] 8.3]} {return}
package ifneeded math::roman             1.0   [list source [file join $dir romannumerals.tcl]]

if {![package vsatisfies [package provide Tcl] 8.4]} {return}
# statistics depends on linearalgebra (for multi-variate linear regression).
package ifneeded math::statistics        0.9.2 [list source [file join $dir statistics.tcl]]
package ifneeded math::optimize          1.0.1 [list source [file join $dir optimize.tcl]]
package ifneeded math::calculus          0.8   [list source [file join $dir calculus.tcl]]
package ifneeded math::interpolate       1.1   [list source [file join $dir interpolate.tcl]]
package ifneeded math::linearalgebra     1.1.5 [list source [file join $dir linalg.tcl]]
package ifneeded math::bignum            3.1.1 [list source [file join $dir bignum.tcl]]
package ifneeded math::bigfloat          1.2.2 [list source [file join $dir bigfloat.tcl]]
package ifneeded math::machineparameters 0.1   [list source [file join $dir machineparameters.tcl]]

if {![package vsatisfies [package provide Tcl] 8.5]} {return}







|

|







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package ifneeded math::fourier           1.0.2 [list source [file join $dir fourier.tcl]]

if {![package vsatisfies [package provide Tcl] 8.3]} {return}
package ifneeded math::roman             1.0   [list source [file join $dir romannumerals.tcl]]

if {![package vsatisfies [package provide Tcl] 8.4]} {return}
# statistics depends on linearalgebra (for multi-variate linear regression).
package ifneeded math::statistics        0.9.3 [list source [file join $dir statistics.tcl]]
package ifneeded math::optimize          1.0.1 [list source [file join $dir optimize.tcl]]
package ifneeded math::calculus          0.8.1 [list source [file join $dir calculus.tcl]]
package ifneeded math::interpolate       1.1   [list source [file join $dir interpolate.tcl]]
package ifneeded math::linearalgebra     1.1.5 [list source [file join $dir linalg.tcl]]
package ifneeded math::bignum            3.1.1 [list source [file join $dir bignum.tcl]]
package ifneeded math::bigfloat          1.2.2 [list source [file join $dir bigfloat.tcl]]
package ifneeded math::machineparameters 0.1   [list source [file join $dir machineparameters.tcl]]

if {![package vsatisfies [package provide Tcl] 8.5]} {return}

Changes to modules/math/statistics.man.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

[manpage_begin math::statistics n 0.9]
[keywords {data analysis}]
[keywords mathematics]
[keywords statistics]
[moddesc {Tcl Math Library}]
[titledesc {Basic statistical functions and procedures}]
[category  Mathematics]
[require Tcl 8.4]
[require math::statistics 0.9]
[description]
[para]

The [package math::statistics] package contains functions and procedures for
basic statistical data analysis, such as:

[list_begin itemized]
>
|







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[vset VERSION 0.9.3]
[manpage_begin math::statistics n [vset VERSION]]
[keywords {data analysis}]
[keywords mathematics]
[keywords statistics]
[moddesc {Tcl Math Library}]
[titledesc {Basic statistical functions and procedures}]
[category  Mathematics]
[require Tcl 8.4]
[require math::statistics [vset VERSION]]
[description]
[para]

The [package math::statistics] package contains functions and procedures for
basic statistical data analysis, such as:

[list_begin itemized]
155
156
157
158
159
160
161












162
163
164
165
166
167
168
[list_begin arguments]
[arg_def list limits] - List of upper limits (in ascending order) for the
intervals of the histogram.
[arg_def list values] - List of data
[arg_def list weights] - List of weights, one weight per value
[list_end]
[para]













[call [cmd ::math::statistics::corr] [arg data1] [arg data2]]
Determine the correlation coefficient between two sets of data.

[list_begin arguments]
[arg_def list data1] - First list of data
[arg_def list data2] - Second list of data







>
>
>
>
>
>
>
>
>
>
>
>







156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
[list_begin arguments]
[arg_def list limits] - List of upper limits (in ascending order) for the
intervals of the histogram.
[arg_def list values] - List of data
[arg_def list weights] - List of weights, one weight per value
[list_end]
[para]

[call [cmd ::math::statistics::histogram-alt] [arg limits] [arg values] [opt weights]]
Alternative implementation of the histogram procedure: the open end of the intervals
is at the lower bound instead of the upper bound.

[list_begin arguments]
[arg_def list limits] - List of upper limits (in ascending order) for the
intervals of the histogram.
[arg_def list values] - List of data
[arg_def list weights] - List of weights, one weight per value
[list_end]
[para]

[call [cmd ::math::statistics::corr] [arg data1] [arg data2]]
Determine the correlation coefficient between two sets of data.

[list_begin arguments]
[arg_def list data1] - First list of data
[arg_def list data2] - Second list of data
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206

207
208
209


210
211
212
213
214
215
216
[list_begin arguments]
[arg_def list data] - List of raw data values (small sample)
[arg_def float confidence] - Confidence level (0.95 or 0.99 for instance)
[list_end]
[para]

[call [cmd ::math::statistics::t-test-mean] [arg data] [arg est_mean] \
[arg est_stdev] [arg confidence]]
Test whether the mean value of a sample is in accordance with the
estimated normal distribution with a certain level of confidence.
Returns 1 if the test succeeds or 0 if the mean is unlikely to fit
the given distribution.

[list_begin arguments]
[arg_def list data] - List of raw data values (small sample)
[arg_def float est_mean] - Estimated mean of the distribution
[arg_def float est_stdev] - Estimated stdev of the distribution
[arg_def float confidence] - Confidence level (0.95 or 0.99 for instance)
[list_end]
[para]

[call [cmd ::math::statistics::test-normal] [arg data] [arg confidence]]
Test whether the given data follow a normal distribution
with a certain level of confidence.
Returns 1 if the data are normally distributed within the level of
confidence, returns 0 if not. The underlying test is the Lilliefors
test.

[list_begin arguments]
[arg_def list data] - List of raw data values

[arg_def float confidence] - Confidence level (one of 0.80, 0.90, 0.95 or 0.99)
[list_end]
[para]



[call [cmd ::math::statistics::lillieforsFit] [arg data]]
Returns the goodness of fit to a normal distribution according to
Lilliefors. The higher the number, the more likely the data are indeed
normally distributed. The test requires at least [emph five] data
points.








|

|







|



|

|

|
|



>
|


>
>







190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
[list_begin arguments]
[arg_def list data] - List of raw data values (small sample)
[arg_def float confidence] - Confidence level (0.95 or 0.99 for instance)
[list_end]
[para]

[call [cmd ::math::statistics::t-test-mean] [arg data] [arg est_mean] \
[arg est_stdev] [arg alpha]]
Test whether the mean value of a sample is in accordance with the
estimated normal distribution with a certain probability.
Returns 1 if the test succeeds or 0 if the mean is unlikely to fit
the given distribution.

[list_begin arguments]
[arg_def list data] - List of raw data values (small sample)
[arg_def float est_mean] - Estimated mean of the distribution
[arg_def float est_stdev] - Estimated stdev of the distribution
[arg_def float alpha] - Probability level (0.95 or 0.99 for instance)
[list_end]
[para]

[call [cmd ::math::statistics::test-normal] [arg data] [arg significance]]
Test whether the given data follow a normal distribution
with a certain level of significance.
Returns 1 if the data are normally distributed within the level of
significance, returns 0 if not. The underlying test is the Lilliefors
test. Smaller values of the significance mean a stricter testing.

[list_begin arguments]
[arg_def list data] - List of raw data values
[arg_def float significance] - Significance level (one of 0.01, 0.05, 0.10, 0.15 or 0.20). For compatibility
reasons the values "1-significance", 0.80, 0.85, 0.90, 0.95 or 0.99 are also accepted.
[list_end]
[para]
Compatibility issue: the original implementation and documentation used the term "confidence" and used a value
1-significance (see ticket 2812473fff). This has been corrected as of version 0.9.3.

[call [cmd ::math::statistics::lillieforsFit] [arg data]]
Returns the goodness of fit to a normal distribution according to
Lilliefors. The higher the number, the more likely the data are indeed
normally distributed. The test requires at least [emph five] data
points.

831
832
833
834
835
836
837
838
839
840
841
842
843
844
845

[call [cmd ::math::statistics::cdf-beta] [arg a] [arg b] [arg value]]
Return the cumulative probability of a given value for a Beta
distribution with given shape parameters

[list_begin arguments]
[arg_def float a] - First shape parameter
[arg_def float b] - First shape parameter
[arg_def float value] - Value for which the probability is required
[list_end]
[para]

[call [cmd ::math::statistics::random-normal] [arg mean] [arg stdev] [arg number]]
Return a list of "number" random values satisfying a normal
distribution with given mean and standard deviation.







|







847
848
849
850
851
852
853
854
855
856
857
858
859
860
861

[call [cmd ::math::statistics::cdf-beta] [arg a] [arg b] [arg value]]
Return the cumulative probability of a given value for a Beta
distribution with given shape parameters

[list_begin arguments]
[arg_def float a] - First shape parameter
[arg_def float b] - Second shape parameter
[arg_def float value] - Value for which the probability is required
[list_end]
[para]

[call [cmd ::math::statistics::random-normal] [arg mean] [arg stdev] [arg number]]
Return a list of "number" random values satisfying a normal
distribution with given mean and standard deviation.

Changes to modules/math/statistics.tcl.

13
14
15
16
17
18
19

20
21
22
23
24
25
26
27
28
29
# version 0.5:   added the population standard deviation and variance,
#                as suggested by Dimitrios Zachariadis
# version 0.6:   added pdf and cdf procedures for various distributions
#                (provided by Eric Kemp-Benedict)
# version 0.7:   added Kruskal-Wallis test (by Torsten Berg)
# version 0.8:   added Wilcoxon test and Spearman rank correlation
# version 0.9:   added kernel density estimation


package require Tcl 8.4
package provide math::statistics 0.9.2
package require math

if {![llength [info commands ::lrepeat]]} {
    # Forward portability, emulate lrepeat
    proc ::lrepeat {n args} {
	if {$n < 1} {
	    return -code error "must have a count of at least 1"







>


|







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# version 0.5:   added the population standard deviation and variance,
#                as suggested by Dimitrios Zachariadis
# version 0.6:   added pdf and cdf procedures for various distributions
#                (provided by Eric Kemp-Benedict)
# version 0.7:   added Kruskal-Wallis test (by Torsten Berg)
# version 0.8:   added Wilcoxon test and Spearman rank correlation
# version 0.9:   added kernel density estimation
# version 0.9.3: added histogram-alt, corrected test-normal

package require Tcl 8.4
package provide math::statistics 0.9.3
package require math

if {![llength [info commands ::lrepeat]]} {
    # Forward portability, emulate lrepeat
    proc ::lrepeat {n args} {
	if {$n < 1} {
	    return -code error "must have a count of at least 1"
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#

namespace eval ::math::statistics {
    #
    # Safer: change to short procedures
    #
    namespace export mean min max number var stdev pvar pstdev basic-stats corr \
	    histogram interval-mean-stdev t-test-mean quantiles \
	    test-normal lillieforsFit \
	    autocorr crosscorr filter map samplescount median \
	    test-2x2 print-2x2 control-xbar test_xbar \
	    control-Rchart test-Rchart \
	    test-Kruskal-Wallis analyse-Kruskal-Wallis group-rank \
	    test-Wilcoxon spearman-rank spearman-rank-extended
    #







|







43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#

namespace eval ::math::statistics {
    #
    # Safer: change to short procedures
    #
    namespace export mean min max number var stdev pvar pstdev basic-stats corr \
	    histogram histogram-alt interval-mean-stdev t-test-mean quantiles \
	    test-normal lillieforsFit \
	    autocorr crosscorr filter map samplescount median \
	    test-2x2 print-2x2 control-xbar test_xbar \
	    control-Rchart test-Rchart \
	    test-Kruskal-Wallis analyse-Kruskal-Wallis group-rank \
	    test-Wilcoxon spearman-rank spearman-rank-extended
    #
225
226
227
228
229
230
231

































































232
233
234
235
236
237
238
	    continue
	}

	set index 0
	set found 0
	foreach limit $limits {
	    if { $value <= $limit } {

































































		set found 1
		set buckets($index) [expr $buckets($index)+$weight]
		break
	    }
	    incr index
	}








>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
	    continue
	}

	set index 0
	set found 0
	foreach limit $limits {
	    if { $value <= $limit } {
		set found 1
		set buckets($index) [expr $buckets($index)+$weight]
		break
	    }
	    incr index
	}

	if { $found == 0 } {
	    set buckets($last) [expr $buckets($last)+$weight]
	}
    }

    set result {}
    for { set index 0 } { $index <= $last } { incr index } {
	lappend result $buckets($index)
    }

    return $result
}

# histogram-alt --
#    Return histogram information from a list of numbers -
#    intervals are open-ended at the lower bound instead of at the upper bound
#
# Arguments:
#    limits   Upper limits for the buckets (in increasing order)
#    values   List of values to be examined
#    weights  List of weights, one per value (optional)
#
# Results:
#    List of number of values in each bucket (length is one more than
#    the number of limits)
#
#
proc ::math::statistics::histogram-alt { limits values {weights {}} } {

    if { [llength $limits] < 1 } {
	return -code error -errorcode ARG -errorinfo {No limits given} {No limits given}
    }
    if { [llength $weights] > 0 && [llength $values] != [llength $weights] } {
	return -code error -errorcode ARG -errorinfo {Number of weights be equal to number of values} {Weights and values differ in length}
    }

    set limits [lsort -real -increasing $limits]

    for { set index 0 } { $index <= [llength $limits] } { incr index } {
	set buckets($index) 0
    }

    set last [llength $limits]

    # Will do integer arithmetic if unset
    if {$weights eq ""} {
       set weights [lrepeat [llength $values] 1]
    }

    foreach value $values weight $weights {
	if { $value == {} } {
	    continue
	}

	set index 0
	set found 0
	foreach limit $limits {
	    if { $value < $limit } {
		set found 1
		set buckets($index) [expr $buckets($index)+$weight]
		break
	    }
	    incr index
	}

428
429
430
431
432
433
434
435
436
437
438
439





440
441
442




443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
}

# test-normal --
#     Test for normality (using method Lilliefors)
#
# Arguments:
#     data            Values that need to be tested
#     confidence      ...
#
# Result:
#     1 if of the statistic D
#





proc ::math::statistics::test-normal {data confidence} {
    set D [lillieforsFit $data]





    set Dcrit --
    if { abs($confidence-0.80) < 0.0001 } {
        set Dcrit 0.741
    }
    if { abs($confidence-0.85) < 0.0001 } {
        set Dcrit 0.775
    }
    if { abs($confidence-0.90) < 0.0001 } {
        set Dcrit 0.819
    }
    if { abs($confidence-0.95) < 0.0001 } {
        set Dcrit 0.895
    }
    if { abs($confidence-0.99) < 0.0001 } {
        set Dcrit 1.035
    }
    if { $Dcrit != "--" } {
        return [expr {$D > $Dcrit ? 1 : 0 }]
    } else {
        return -code error "Confidence level must be one of: 0.80, 0.85, 0.90, 0.95 or 0.99"
    }
}

# t-test-mean --
#    Test whether the mean value of a sample is in accordance with the
#    estimated normal distribution with a certain level of confidence
#    (Student's t test)
#
# Arguments:
#    data         List of raw data values (small sample)
#    est_mean     Estimated mean of the distribution
#    est_stdev    Estimated stdev of the distribution
#    confidence   Confidence level (0.95 or 0.99 for instance)
#
# Result:
#    1 if the test is positive, 0 otherwise. If there are too few data,
#    returns an empty string
#
proc ::math::statistics::t-test-mean { data est_mean est_stdev confidence } {
    variable NEGSTDEV
    variable TOOFEWDATA

    if { $est_stdev <= 0.0 } {
	return -code error -errorcode ARG -errorinfo $NEGSTDEV $NEGSTDEV
    }

    set allstats        [BasicStats all $data]

    set conf2           [expr {(1.0+$confidence)/2.0}]

    set sample_mean     [lindex $allstats 0]
    set sample_number   [lindex $allstats 3]

    if { $sample_number > 1 } {
	set tzero   [expr {abs($sample_mean-$est_mean)/$est_stdev * \
		sqrt($sample_number-1)}]
	set degrees [expr {$sample_number-1}]
	set prob    [cdf-students-t $degrees $tzero]

	return [expr {$prob<$conf2}]

    } else {
	return -code error -errorcode DATA -errorinfo $TOOFEWDATA $TOOFEWDATA
    }
}

# interval-mean-stdev --







|


|

>
>
>
>
>
|


>
>
>
>

|


|


|


|


|





|





|






|





|









|










|







494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
}

# test-normal --
#     Test for normality (using method Lilliefors)
#
# Arguments:
#     data            Values that need to be tested
#     significance    Level at which the discrepancy from normality is tested
#
# Result:
#     1 if the Lilliefors statistic D is larger than the critical level
#
# Note:
#     There was a mistake in the implementation before 0.9.3: confidence (wrong word)
#     instead of significance. To keep compatibility with earlier versions, both
#     significance and 1-significance are accepted.
#
proc ::math::statistics::test-normal {data significance} {
    set D [lillieforsFit $data]

    if { $significance > 0.5 } {
        set significance [expr {1.0-$significance}] ;# Convert the erroneous levels pre 0.9.3
    }

    set Dcrit --
    if { abs($significance-0.20) < 0.0001 } {
        set Dcrit 0.741
    }
    if { abs($significance-0.15) < 0.0001 } {
        set Dcrit 0.775
    }
    if { abs($significance-0.10) < 0.0001 } {
        set Dcrit 0.819
    }
    if { abs($significance-0.05) < 0.0001 } {
        set Dcrit 0.895
    }
    if { abs($significance-0.01) < 0.0001 } {
        set Dcrit 1.035
    }
    if { $Dcrit != "--" } {
        return [expr {$D > $Dcrit ? 1 : 0 }]
    } else {
        return -code error "Significancce level must be one of: 0.20, 0.15, 0.10, 0.05 or 0.01"
    }
}

# t-test-mean --
#    Test whether the mean value of a sample is in accordance with the
#    estimated normal distribution with a certain probability
#    (Student's t test)
#
# Arguments:
#    data         List of raw data values (small sample)
#    est_mean     Estimated mean of the distribution
#    est_stdev    Estimated stdev of the distribution
#    alpha        Probability level (0.95 or 0.99 for instance)
#
# Result:
#    1 if the test is positive, 0 otherwise. If there are too few data,
#    returns an empty string
#
proc ::math::statistics::t-test-mean { data est_mean est_stdev alpha } {
    variable NEGSTDEV
    variable TOOFEWDATA

    if { $est_stdev <= 0.0 } {
	return -code error -errorcode ARG -errorinfo $NEGSTDEV $NEGSTDEV
    }

    set allstats        [BasicStats all $data]

    set alpha2          [expr {(1.0+$alpha)/2.0}]

    set sample_mean     [lindex $allstats 0]
    set sample_number   [lindex $allstats 3]

    if { $sample_number > 1 } {
	set tzero   [expr {abs($sample_mean-$est_mean)/$est_stdev * \
		sqrt($sample_number-1)}]
	set degrees [expr {$sample_number-1}]
	set prob    [cdf-students-t $degrees $tzero]

	return [expr {$prob<$alpha2}]

    } else {
	return -code error -errorcode DATA -errorinfo $TOOFEWDATA $TOOFEWDATA
    }
}

# interval-mean-stdev --

Changes to modules/math/statistics.test.

196
197
198
199
200
201
202









203
204
205
206
207
208
209
} -result {1 1 8 0}

test "Histogram-1.5" "Histogram - linear data 2 with weights" -match glob -body {
  set values [::math::statistics::histogram {1.5 2.5} [concat $::data_linear 0.0 0.0] \
      [concat [lrepeat [llength $::data_linear] 1] 0 0]]
} -result {1 1 8}










#
# Quantiles
# Bug #1272910: related to rounding 0.5 - use different levels instead
#               because another bug was fixed, return to the original
#               levels again
#
test "Quantiles-1.0" "Quantiles - raw data" -match tolerant -body {







>
>
>
>
>
>
>
>
>







196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
} -result {1 1 8 0}

test "Histogram-1.5" "Histogram - linear data 2 with weights" -match glob -body {
  set values [::math::statistics::histogram {1.5 2.5} [concat $::data_linear 0.0 0.0] \
      [concat [lrepeat [llength $::data_linear] 1] 0 0]]
} -result {1 1 8}

#
# Alternative definition of the intervals (ticket 1502400fff)
# Note the difference in the expected bin sizes for the two
#
test "Histogram-2.1" "Histogram - alternative interval bounds" -match glob -body {
  set values [concat [::math::statistics::histogram-alt {5.0 7.0} $::data_linear] \
                     [::math::statistics::histogram     {5.0 7.0} $::data_linear]]
} -result {4 2 4 5 2 3}

#
# Quantiles
# Bug #1272910: related to rounding 0.5 - use different levels instead
#               because another bug was fixed, return to the original
#               levels again
#
test "Quantiles-1.0" "Quantiles - raw data" -match tolerant -body {
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
#
test "Testnormal-1.0" "Determine normality statistic for birth weight data" -match tolerant -body {
    ::math::statistics::lillieforsFit {72 112 111 107 119  92 126  80 81 84 115
                                       118 128 128 123 116 125 126 122 126 127 86
                                       142 132  87 123 133 106 103 118 114 94}
} -result 0.82827415657

test "Testnormal-1.0" "Test birthweight data for normality - 80%" -match tolerant -body {
    ::math::statistics::test-normal {72 112 111 107 119  92 126  80 81 84 115
                                     118 128 128 123 116 125 126 122 126 127 86
                                     142 132  87 123 133 106 103 118 114 94} 0.80
} -result 1

test "Testnormal-1.0" "Test birthweight data for normality - 95%" -match tolerant -body {
    ::math::statistics::test-normal {72 112 111 107 119  92 126  80 81 84 115
                                     118 128 128 123 116 125 126 122 126 127 86
                                     142 132  87 123 133 106 103 118 114 94} 0.95
} -result 0

#
# Testing multivariate linear regression
#
# Provide some data
test "Testmultivar-1.0" "Ordinary multivariate regression - three independent variables" \







|


|


|


|







445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
#
test "Testnormal-1.0" "Determine normality statistic for birth weight data" -match tolerant -body {
    ::math::statistics::lillieforsFit {72 112 111 107 119  92 126  80 81 84 115
                                       118 128 128 123 116 125 126 122 126 127 86
                                       142 132  87 123 133 106 103 118 114 94}
} -result 0.82827415657

test "Testnormal-1.0" "Test birthweight data for normality - 20% significance" -match tolerant -body {
    ::math::statistics::test-normal {72 112 111 107 119  92 126  80 81 84 115
                                     118 128 128 123 116 125 126 122 126 127 86
                                     142 132  87 123 133 106 103 118 114 94} 0.20
} -result 1

test "Testnormal-1.0" "Test birthweight data for normality - 5% significance" -match tolerant -body {
    ::math::statistics::test-normal {72 112 111 107 119  92 126  80 81 84 115
                                     118 128 128 123 116 125 126 122 126 127 86
                                     142 132  87 123 133 106 103 118 114 94} 0.05
} -result 0

#
# Testing multivariate linear regression
#
# Provide some data
test "Testmultivar-1.0" "Ordinary multivariate regression - three independent variables" \

Changes to modules/math/wilcoxon.tcl.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# statistics_new.tcl --
#     Implementation of the Wilcoxon test: test if the medians
#     of two samples are the same
#

package require math::statistics

# test-Wilcoxon
#     Compute the statistic that indicates if the medians of two
#     samples are the same
#
# Arguments:
#     sample_a       List of values in the first sample
#     sample_b       List of values in the second sample





<
<







1
2
3
4
5


6
7
8
9
10
11
12
# statistics_new.tcl --
#     Implementation of the Wilcoxon test: test if the medians
#     of two samples are the same
#



# test-Wilcoxon
#     Compute the statistic that indicates if the medians of two
#     samples are the same
#
# Arguments:
#     sample_a       List of values in the first sample
#     sample_b       List of values in the second sample

Added modules/nettool/available_ports.tcl.















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
###
# topic: 868a79cedf28924191fd86aa85f6dd1d
###
namespace eval ::nettool {
  set blocks {}
}

lappend ::nettool::blocks 1028 1028
lappend ::nettool::blocks 1067 1068
lappend ::nettool::blocks 1109 1109
lappend ::nettool::blocks 1138 1138
lappend ::nettool::blocks 1313 1313
lappend ::nettool::blocks 1382 1382
lappend ::nettool::blocks 1385 1385
lappend ::nettool::blocks 1416 1416
lappend ::nettool::blocks 1454 1454
lappend ::nettool::blocks 1461 1461
lappend ::nettool::blocks 1464 1464
lappend ::nettool::blocks 1486 1486
lappend ::nettool::blocks 1491 1491
lappend ::nettool::blocks 1493 1493
lappend ::nettool::blocks 1528 1528
lappend ::nettool::blocks 1556 1556
lappend ::nettool::blocks 1587 1587
lappend ::nettool::blocks 1651 1651
lappend ::nettool::blocks 1783 1783
lappend ::nettool::blocks 1895 1895
lappend ::nettool::blocks 2083 2083
lappend ::nettool::blocks 2194 2196
lappend ::nettool::blocks 2222 2222
lappend ::nettool::blocks 2259 2259
lappend ::nettool::blocks 2340 2340
lappend ::nettool::blocks 2346 2349
lappend ::nettool::blocks 2369 2369
lappend ::nettool::blocks 2377 2378
lappend ::nettool::blocks 2395 2395
lappend ::nettool::blocks 2426 2426
lappend ::nettool::blocks 2446 2446
lappend ::nettool::blocks 2528 2528
lappend ::nettool::blocks 2640 2640
lappend ::nettool::blocks 2654 2654
lappend ::nettool::blocks 2682 2682
lappend ::nettool::blocks 2693 2693
lappend ::nettool::blocks 2794 2794
lappend ::nettool::blocks 2825 2825
lappend ::nettool::blocks 2873 2873
lappend ::nettool::blocks 2916 2917
lappend ::nettool::blocks 2925 2925
lappend ::nettool::blocks 3014 3014
lappend ::nettool::blocks 3016 3019
lappend ::nettool::blocks 3024 3024
lappend ::nettool::blocks 3027 3029
lappend ::nettool::blocks 3050 3050
lappend ::nettool::blocks 3080 3080
lappend ::nettool::blocks 3092 3092
lappend ::nettool::blocks 3126 3126
lappend ::nettool::blocks 3300 3301
lappend ::nettool::blocks 3396 3396
lappend ::nettool::blocks 3403 3404
lappend ::nettool::blocks 3546 3546
lappend ::nettool::blocks 3693 3694
lappend ::nettool::blocks 3876 3876
lappend ::nettool::blocks 3900 3900
lappend ::nettool::blocks 3938 3938
lappend ::nettool::blocks 3970 3970
lappend ::nettool::blocks 3986 3986
lappend ::nettool::blocks 3994 3994
lappend ::nettool::blocks 4000 4000
lappend ::nettool::blocks 4048 4048
lappend ::nettool::blocks 4060 4060
lappend ::nettool::blocks 4065 4065
lappend ::nettool::blocks 4120 4120
lappend ::nettool::blocks 4132 4133
lappend ::nettool::blocks 4140 4140
lappend ::nettool::blocks 4144 4144
lappend ::nettool::blocks 4151 4152
lappend ::nettool::blocks 4184 4184
lappend ::nettool::blocks 4194 4198
lappend ::nettool::blocks 4315 4315
lappend ::nettool::blocks 4317 4319
lappend ::nettool::blocks 4332 4332
lappend ::nettool::blocks 4334 4339
lappend ::nettool::blocks 4363 4367
lappend ::nettool::blocks 4370 4370
lappend ::nettool::blocks 4380 4388
lappend ::nettool::blocks 4397 4399
lappend ::nettool::blocks 4412 4424
lappend ::nettool::blocks 4434 4440
lappend ::nettool::blocks 4459 4483
lappend ::nettool::blocks 4489 4499
lappend ::nettool::blocks 4501 4501
lappend ::nettool::blocks 4503 4533
lappend ::nettool::blocks 4539 4544
lappend ::nettool::blocks 4560 4562
lappend ::nettool::blocks 4564 4565
lappend ::nettool::blocks 4569 4569
lappend ::nettool::blocks 4571 4589
lappend ::nettool::blocks 4606 4657
lappend ::nettool::blocks 4693 4699
lappend ::nettool::blocks 4705 4724
lappend ::nettool::blocks 4734 4736
lappend ::nettool::blocks 4746 4746
lappend ::nettool::blocks 4748 4748
lappend ::nettool::blocks 4754 4783
lappend ::nettool::blocks 4792 4799
lappend ::nettool::blocks 4805 4826
lappend ::nettool::blocks 4828 4836
lappend ::nettool::blocks 4846 4846
lappend ::nettool::blocks 4852 4866
lappend ::nettool::blocks 4872 4875
lappend ::nettool::blocks 4886 4893
lappend ::nettool::blocks 4895 4898
lappend ::nettool::blocks 4903 4911
lappend ::nettool::blocks 4916 4935
lappend ::nettool::blocks 4938 4939
lappend ::nettool::blocks 4943 4948
lappend ::nettool::blocks 4954 4968
lappend ::nettool::blocks 4971 4983
lappend ::nettool::blocks 4992 4998
lappend ::nettool::blocks 5016 5019
lappend ::nettool::blocks 5033 5041
lappend ::nettool::blocks 5076 5077
lappend ::nettool::blocks 5088 5089
lappend ::nettool::blocks 5095 5098
lappend ::nettool::blocks 5107 5110
lappend ::nettool::blocks 5113 5113
lappend ::nettool::blocks 5118 5119
lappend ::nettool::blocks 5121 5132
lappend ::nettool::blocks 5138 5145
lappend ::nettool::blocks 5147 5149
lappend ::nettool::blocks 5151 5151
lappend ::nettool::blocks 5158 5160
lappend ::nettool::blocks 5165 5165
lappend ::nettool::blocks 5169 5171
lappend ::nettool::blocks 5173 5189
lappend ::nettool::blocks 5197 5199
lappend ::nettool::blocks 5204 5208
lappend ::nettool::blocks 5210 5214
lappend ::nettool::blocks 5216 5220
lappend ::nettool::blocks 5238 5244
lappend ::nettool::blocks 5254 5263
lappend ::nettool::blocks 5266 5268
lappend ::nettool::blocks 5273 5279
lappend ::nettool::blocks 5283 5297
lappend ::nettool::blocks 5311 5311
lappend ::nettool::blocks 5316 5316
lappend ::nettool::blocks 5319 5319
lappend ::nettool::blocks 5322 5342
lappend ::nettool::blocks 5345 5348
lappend ::nettool::blocks 5365 5396
lappend ::nettool::blocks 5438 5442
lappend ::nettool::blocks 5444 5444
lappend ::nettool::blocks 5446 5452
lappend ::nettool::blocks 5457 5460
lappend ::nettool::blocks 5466 5499
lappend ::nettool::blocks 5507 5552
lappend ::nettool::blocks 5558 5565
lappend ::nettool::blocks 5570 5572
lappend ::nettool::blocks 5576 5578
lappend ::nettool::blocks 5587 5596
lappend ::nettool::blocks 5606 5617
lappend ::nettool::blocks 5619 5626
lappend ::nettool::blocks 5640 5645
lappend ::nettool::blocks 5647 5669
lappend ::nettool::blocks 5685 5686
lappend ::nettool::blocks 5690 5692
lappend ::nettool::blocks 5694 5695
lappend ::nettool::blocks 5697 5712
lappend ::nettool::blocks 5731 5740
lappend ::nettool::blocks 5749 5749
lappend ::nettool::blocks 5751 5754
lappend ::nettool::blocks 5756 5756
lappend ::nettool::blocks 5758 5765
lappend ::nettool::blocks 5772 5776
lappend ::nettool::blocks 5778 5779
lappend ::nettool::blocks 5788 5792
lappend ::nettool::blocks 5795 5812
lappend ::nettool::blocks 5815 5840
lappend ::nettool::blocks 5843 5858
lappend ::nettool::blocks 5860 5862
lappend ::nettool::blocks 5864 5867
lappend ::nettool::blocks 5869 5882
lappend ::nettool::blocks 5884 5899
lappend ::nettool::blocks 5901 5909
lappend ::nettool::blocks 5914 5962
lappend ::nettool::blocks 5964 5967
lappend ::nettool::blocks 5970 5983
lappend ::nettool::blocks 5993 5998
lappend ::nettool::blocks 6067 6067
lappend ::nettool::blocks 6078 6080
lappend ::nettool::blocks 6089 6098
lappend ::nettool::blocks 6119 6120
lappend ::nettool::blocks 6125 6129
lappend ::nettool::blocks 6131 6132
lappend ::nettool::blocks 6134 6139
lappend ::nettool::blocks 6150 6158
lappend ::nettool::blocks 6164 6199
lappend ::nettool::blocks 6202 6221
lappend ::nettool::blocks 6223 6240
lappend ::nettool::blocks 6245 6250
lappend ::nettool::blocks 6254 6266
lappend ::nettool::blocks 6270 6299
lappend ::nettool::blocks 6301 6305
lappend ::nettool::blocks 6307 6314
lappend ::nettool::blocks 6318 6319
lappend ::nettool::blocks 6323 6323
lappend ::nettool::blocks 6327 6342
lappend ::nettool::blocks 6345 6345
lappend ::nettool::blocks 6348 6349
lappend ::nettool::blocks 6351 6354
lappend ::nettool::blocks 6356 6359
lappend ::nettool::blocks 6361 6362
lappend ::nettool::blocks 6364 6369
lappend ::nettool::blocks 6371 6381
lappend ::nettool::blocks 6383 6388
lappend ::nettool::blocks 6391 6399
lappend ::nettool::blocks 6411 6416
lappend ::nettool::blocks 6422 6431
lappend ::nettool::blocks 6433 6441
lappend ::nettool::blocks 6444 6445
lappend ::nettool::blocks 6447 6454
lappend ::nettool::blocks 6457 6470
lappend ::nettool::blocks 6472 6479
lappend ::nettool::blocks 6490 6499
lappend ::nettool::blocks 6501 6508
lappend ::nettool::blocks 6512 6512
lappend ::nettool::blocks 6516 6542
lappend ::nettool::blocks 6545 6546
lappend ::nettool::blocks 6552 6557
lappend ::nettool::blocks 6559 6565
lappend ::nettool::blocks 6569 6578
lappend ::nettool::blocks 6584 6599
lappend ::nettool::blocks 6603 6618
lappend ::nettool::blocks 6629 6631
lappend ::nettool::blocks 6635 6639
lappend ::nettool::blocks 6641 6652
lappend ::nettool::blocks 6654 6654
lappend ::nettool::blocks 6658 6664
lappend ::nettool::blocks 6672 6677
lappend ::nettool::blocks 6680 6686
lappend ::nettool::blocks 6690 6695
lappend ::nettool::blocks 6698 6700
lappend ::nettool::blocks 6707 6713
lappend ::nettool::blocks 6717 6766
lappend ::nettool::blocks 6772 6776
lappend ::nettool::blocks 6779 6783
lappend ::nettool::blocks 6792 6800
lappend ::nettool::blocks 6802 6816
lappend ::nettool::blocks 6818 6830
lappend ::nettool::blocks 6832 6840
lappend ::nettool::blocks 6843 6849
lappend ::nettool::blocks 6851 6867
lappend ::nettool::blocks 6869 6887
lappend ::nettool::blocks 6889 6900
lappend ::nettool::blocks 6902 6934
lappend ::nettool::blocks 6937 6945
lappend ::nettool::blocks 6947 6950
lappend ::nettool::blocks 6952 6960
lappend ::nettool::blocks 6967 6968
lappend ::nettool::blocks 6971 6996
lappend ::nettool::blocks 7016 7017
lappend ::nettool::blocks 7026 7029
lappend ::nettool::blocks 7032 7039
lappend ::nettool::blocks 7041 7069
lappend ::nettool::blocks 7072 7072
lappend ::nettool::blocks 7074 7079
lappend ::nettool::blocks 7081 7094
lappend ::nettool::blocks 7096 7098
lappend ::nettool::blocks 7102 7106
lappend ::nettool::blocks 7108 7120
lappend ::nettool::blocks 7122 7127
lappend ::nettool::blocks 7130 7160
lappend ::nettool::blocks 7175 7180
lappend ::nettool::blocks 7182 7199
lappend ::nettool::blocks 7202 7226
lappend ::nettool::blocks 7230 7234
lappend ::nettool::blocks 7238 7261
lappend ::nettool::blocks 7263 7271
lappend ::nettool::blocks 7284 7299
lappend ::nettool::blocks 7360 7364
lappend ::nettool::blocks 7366 7390
lappend ::nettool::blocks 7396 7396
lappend ::nettool::blocks 7398 7399
lappend ::nettool::blocks 7403 7409
lappend ::nettool::blocks 7412 7420
lappend ::nettool::blocks 7422 7425
lappend ::nettool::blocks 7432 7436
lappend ::nettool::blocks 7438 7442
lappend ::nettool::blocks 7444 7470
lappend ::nettool::blocks 7472 7472
lappend ::nettool::blocks 7475 7490
lappend ::nettool::blocks 7492 7499
lappend ::nettool::blocks 7502 7507
lappend ::nettool::blocks 7512 7541
lappend ::nettool::blocks 7551 7559
lappend ::nettool::blocks 7561 7562
lappend ::nettool::blocks 7564 7565
lappend ::nettool::blocks 7567 7568
lappend ::nettool::blocks 7571 7573
lappend ::nettool::blocks 7575 7587
lappend ::nettool::blocks 7589 7623
lappend ::nettool::blocks 7625 7625
lappend ::nettool::blocks 7632 7632
lappend ::nettool::blocks 7634 7647
lappend ::nettool::blocks 7649 7671
lappend ::nettool::blocks 7678 7679
lappend ::nettool::blocks 7681 7688
lappend ::nettool::blocks 7690 7696
lappend ::nettool::blocks 7698 7699
lappend ::nettool::blocks 7701 7706
lappend ::nettool::blocks 7709 7719
lappend ::nettool::blocks 7721 7723
lappend ::nettool::blocks 7728 7733
lappend ::nettool::blocks 7735 7737
lappend ::nettool::blocks 7739 7740
lappend ::nettool::blocks 7745 7746
lappend ::nettool::blocks 7748 7776
lappend ::nettool::blocks 7780 7780
lappend ::nettool::blocks 7782 7785
lappend ::nettool::blocks 7788 7788
lappend ::nettool::blocks 7790 7793
lappend ::nettool::blocks 7795 7796
lappend ::nettool::blocks 7803 7809
lappend ::nettool::blocks 7811 7844
lappend ::nettool::blocks 7848 7868
lappend ::nettool::blocks 7873 7877
lappend ::nettool::blocks 7879 7879
lappend ::nettool::blocks 7881 7886
lappend ::nettool::blocks 7888 7899
lappend ::nettool::blocks 7904 7912
lappend ::nettool::blocks 7914 7931
lappend ::nettool::blocks 7934 7961
lappend ::nettool::blocks 7963 7966
lappend ::nettool::blocks 7968 7978
lappend ::nettool::blocks 7983 7996
lappend ::nettool::blocks 8004 8004
lappend ::nettool::blocks 8006 8007
lappend ::nettool::blocks 8009 8018
lappend ::nettool::blocks 8023 8024
lappend ::nettool::blocks 8027 8031
lappend ::nettool::blocks 8035 8039
lappend ::nettool::blocks 8041 8041
lappend ::nettool::blocks 8045 8050
lappend ::nettool::blocks 8061 8065
lappend ::nettool::blocks 8067 8073
lappend ::nettool::blocks 8075 8079
lappend ::nettool::blocks 8084 8085
lappend ::nettool::blocks 8089 8090
lappend ::nettool::blocks 8092 8096
lappend ::nettool::blocks 8098 8099
lappend ::nettool::blocks 8103 8114
lappend ::nettool::blocks 8119 8120
lappend ::nettool::blocks 8123 8127
lappend ::nettool::blocks 8133 8139
lappend ::nettool::blocks 8141 8147
lappend ::nettool::blocks 8150 8152
lappend ::nettool::blocks 8154 8159
lappend ::nettool::blocks 8163 8180
lappend ::nettool::blocks 8185 8190
lappend ::nettool::blocks 8193 8193
lappend ::nettool::blocks 8196 8198
lappend ::nettool::blocks 8203 8203
lappend ::nettool::blocks 8209 8229
lappend ::nettool::blocks 8231 8242
lappend ::nettool::blocks 8244 8275
lappend ::nettool::blocks 8277 8279
lappend ::nettool::blocks 8281 8291
lappend ::nettool::blocks 8295 8299
lappend ::nettool::blocks 8302 8312
lappend ::nettool::blocks 8314 8319
lappend ::nettool::blocks 8322 8350
lappend ::nettool::blocks 8352 8375
lappend ::nettool::blocks 8381 8382
lappend ::nettool::blocks 8384 8399
lappend ::nettool::blocks 8406 8414
lappend ::nettool::blocks 8418 8441
lappend ::nettool::blocks 8446 8449
lappend ::nettool::blocks 8451 8456
lappend ::nettool::blocks 8458 8469
lappend ::nettool::blocks 8475 8499
lappend ::nettool::blocks 8503 8553
lappend ::nettool::blocks 8556 8566
lappend ::nettool::blocks 8568 8599
lappend ::nettool::blocks 8601 8608
lappend ::nettool::blocks 8616 8664
lappend ::nettool::blocks 8667 8674
lappend ::nettool::blocks 8676 8685
lappend ::nettool::blocks 8687 8687
lappend ::nettool::blocks 8689 8698
lappend ::nettool::blocks 8700 8710
lappend ::nettool::blocks 8712 8731
lappend ::nettool::blocks 8734 8749
lappend ::nettool::blocks 8751 8762
lappend ::nettool::blocks 8767 8769
lappend ::nettool::blocks 8771 8777
lappend ::nettool::blocks 8779 8785
lappend ::nettool::blocks 8788 8792
lappend ::nettool::blocks 8794 8799
lappend ::nettool::blocks 8801 8803
lappend ::nettool::blocks 8805 8872
lappend ::nettool::blocks 8874 8879
lappend ::nettool::blocks 8882 8882
lappend ::nettool::blocks 8884 8887
lappend ::nettool::blocks 8895 8898
lappend ::nettool::blocks 8902 8909
lappend ::nettool::blocks 8914 8936
lappend ::nettool::blocks 8938 8952
lappend ::nettool::blocks 8955 8988
lappend ::nettool::blocks 8992 8997
lappend ::nettool::blocks 9003 9006
lappend ::nettool::blocks 9011 9019
lappend ::nettool::blocks 9027 9049
lappend ::nettool::blocks 9052 9079
lappend ::nettool::blocks 9081 9081
lappend ::nettool::blocks 9094 9099
lappend ::nettool::blocks 9108 9118
lappend ::nettool::blocks 9120 9121
lappend ::nettool::blocks 9124 9130
lappend ::nettool::blocks 9132 9159
lappend ::nettool::blocks 9165 9190
lappend ::nettool::blocks 9192 9199
lappend ::nettool::blocks 9218 9221
lappend ::nettool::blocks 9223 9254
lappend ::nettool::blocks 9256 9276
lappend ::nettool::blocks 9288 9291
lappend ::nettool::blocks 9296 9299
lappend ::nettool::blocks 9301 9305
lappend ::nettool::blocks 9307 9311
lappend ::nettool::blocks 9313 9317
lappend ::nettool::blocks 9319 9320
lappend ::nettool::blocks 9322 9342
lappend ::nettool::blocks 9345 9345
lappend ::nettool::blocks 9347 9373
lappend ::nettool::blocks 9375 9379
lappend ::nettool::blocks 9381 9386
lappend ::nettool::blocks 9391 9395
lappend ::nettool::blocks 9398 9399
lappend ::nettool::blocks 9403 9417
lappend ::nettool::blocks 9419 9442
lappend ::nettool::blocks 9446 9449
lappend ::nettool::blocks 9451 9499
lappend ::nettool::blocks 9501 9521
lappend ::nettool::blocks 9523 9534
lappend ::nettool::blocks 9537 9554
lappend ::nettool::blocks 9556 9591
lappend ::nettool::blocks 9601 9611
lappend ::nettool::blocks 9613 9613
lappend ::nettool::blocks 9615 9615
lappend ::nettool::blocks 9619 9627
lappend ::nettool::blocks 9633 9639
lappend ::nettool::blocks 9641 9665
lappend ::nettool::blocks 9669 9693
lappend ::nettool::blocks 9696 9699
lappend ::nettool::blocks 9701 9746
lappend ::nettool::blocks 9748 9749
lappend ::nettool::blocks 9751 9752
lappend ::nettool::blocks 9754 9761
lappend ::nettool::blocks 9763 9799
lappend ::nettool::blocks 9803 9874
lappend ::nettool::blocks 9877 9877
lappend ::nettool::blocks 9879 9887
lappend ::nettool::blocks 9890 9897
lappend ::nettool::blocks 9904 9908
lappend ::nettool::blocks 9910 9910
lappend ::nettool::blocks 9912 9924
lappend ::nettool::blocks 9926 9949
lappend ::nettool::blocks 9957 9965
lappend ::nettool::blocks 9967 9977
lappend ::nettool::blocks 9979 9986
lappend ::nettool::blocks 9989 9989
lappend ::nettool::blocks 10003 10003
lappend ::nettool::blocks 10011 10022
lappend ::nettool::blocks 10024 10049
lappend ::nettool::blocks 10052 10054
lappend ::nettool::blocks 10056 10079
lappend ::nettool::blocks 10082 10099
lappend ::nettool::blocks 10105 10106
lappend ::nettool::blocks 10108 10109
lappend ::nettool::blocks 10112 10112
lappend ::nettool::blocks 10118 10127
lappend ::nettool::blocks 10130 10159
lappend ::nettool::blocks 10163 10199
lappend ::nettool::blocks 10202 10251
lappend ::nettool::blocks 10253 10259
lappend ::nettool::blocks 10261 10287
lappend ::nettool::blocks 10289 10320
lappend ::nettool::blocks 10322 10438
lappend ::nettool::blocks 10440 10499
lappend ::nettool::blocks 10501 10539
lappend ::nettool::blocks 10545 10630
lappend ::nettool::blocks 10632 10799
lappend ::nettool::blocks 10801 10804
lappend ::nettool::blocks 10806 10808
lappend ::nettool::blocks 10811 10859
lappend ::nettool::blocks 10861 10879
lappend ::nettool::blocks 10881 10989
lappend ::nettool::blocks 10991 10999
lappend ::nettool::blocks 11002 11094
lappend ::nettool::blocks 11096 11102
lappend ::nettool::blocks 11107 11107
lappend ::nettool::blocks 11113 11160
lappend ::nettool::blocks 11166 11170
lappend ::nettool::blocks 11176 11200
lappend ::nettool::blocks 11203 11207
lappend ::nettool::blocks 11209 11210
lappend ::nettool::blocks 11212 11318
lappend ::nettool::blocks 11322 11366
lappend ::nettool::blocks 11368 11370
lappend ::nettool::blocks 11372 11429
lappend ::nettool::blocks 11431 11488
lappend ::nettool::blocks 11490 11599
lappend ::nettool::blocks 11601 11622
lappend ::nettool::blocks 11624 11719
lappend ::nettool::blocks 11721 11722
lappend ::nettool::blocks 11724 11750
lappend ::nettool::blocks 11752 11795
lappend ::nettool::blocks 11797 11875
lappend ::nettool::blocks 11878 11966
lappend ::nettool::blocks 11968 11996
lappend ::nettool::blocks 12011 12011
lappend ::nettool::blocks 12014 12108
lappend ::nettool::blocks 12110 12120
lappend ::nettool::blocks 12122 12167
lappend ::nettool::blocks 12169 12171
lappend ::nettool::blocks 12173 12299
lappend ::nettool::blocks 12301 12301
lappend ::nettool::blocks 12303 12320
lappend ::nettool::blocks 12323 12344
lappend ::nettool::blocks 12346 12752
lappend ::nettool::blocks 12754 12864
lappend ::nettool::blocks 12866 13159
lappend ::nettool::blocks 13161 13215
lappend ::nettool::blocks 13219 13222
lappend ::nettool::blocks 13225 13399
lappend ::nettool::blocks 13401 13719
lappend ::nettool::blocks 13723 13723
lappend ::nettool::blocks 13725 13781
lappend ::nettool::blocks 13784 13784
lappend ::nettool::blocks 13787 13817
lappend ::nettool::blocks 13824 13893
lappend ::nettool::blocks 13895 13928
lappend ::nettool::blocks 13931 13999
lappend ::nettool::blocks 14003 14032
lappend ::nettool::blocks 14035 14140
lappend ::nettool::blocks 14143 14144
lappend ::nettool::blocks 14146 14148
lappend ::nettool::blocks 14151 14153
lappend ::nettool::blocks 14155 14249
lappend ::nettool::blocks 14251 14413
lappend ::nettool::blocks 14415 14935
lappend ::nettool::blocks 14938 14999
lappend ::nettool::blocks 15001 15001
lappend ::nettool::blocks 15003 15117
lappend ::nettool::blocks 15119 15344
lappend ::nettool::blocks 15346 15362
lappend ::nettool::blocks 15364 15554
lappend ::nettool::blocks 15556 15659
lappend ::nettool::blocks 15661 15739
lappend ::nettool::blocks 15741 15997
lappend ::nettool::blocks 16004 16019
lappend ::nettool::blocks 16022 16160
lappend ::nettool::blocks 16163 16308
lappend ::nettool::blocks 16312 16359
lappend ::nettool::blocks 16362 16366
lappend ::nettool::blocks 16369 16383
lappend ::nettool::blocks 16385 16618
lappend ::nettool::blocks 16620 16664
lappend ::nettool::blocks 16667 16899
lappend ::nettool::blocks 16901 16949
lappend ::nettool::blocks 16951 16990
lappend ::nettool::blocks 16996 17006
lappend ::nettool::blocks 17008 17183
lappend ::nettool::blocks 17186 17218
lappend ::nettool::blocks 17223 17233
lappend ::nettool::blocks 17236 17499
lappend ::nettool::blocks 17501 17554
lappend ::nettool::blocks 17556 17728
lappend ::nettool::blocks 17730 17753
lappend ::nettool::blocks 17757 17776
lappend ::nettool::blocks 17778 17999
lappend ::nettool::blocks 18001 18103
lappend ::nettool::blocks 18105 18135
lappend ::nettool::blocks 18137 18180
lappend ::nettool::blocks 18188 18240
lappend ::nettool::blocks 18244 18261
lappend ::nettool::blocks 18263 18462
lappend ::nettool::blocks 18464 18633
lappend ::nettool::blocks 18636 18768
lappend ::nettool::blocks 18770 18880
lappend ::nettool::blocks 18882 18887
lappend ::nettool::blocks 18889 18999
lappend ::nettool::blocks 19001 19006
lappend ::nettool::blocks 19008 19019
lappend ::nettool::blocks 19021 19190
lappend ::nettool::blocks 19192 19193
lappend ::nettool::blocks 19195 19282
lappend ::nettool::blocks 19284 19314
lappend ::nettool::blocks 19316 19397
lappend ::nettool::blocks 19399 19409
lappend ::nettool::blocks 19413 19538
lappend ::nettool::blocks 19542 19787
lappend ::nettool::blocks 19789 19997
lappend ::nettool::blocks 20004 20004
lappend ::nettool::blocks 20006 20011
lappend ::nettool::blocks 20015 20045
lappend ::nettool::blocks 20047 20047
lappend ::nettool::blocks 20050 20166
lappend ::nettool::blocks 20168 20201
lappend ::nettool::blocks 20203 20221
lappend ::nettool::blocks 20223 20479
lappend ::nettool::blocks 20481 20669
lappend ::nettool::blocks 20671 20998
lappend ::nettool::blocks 21001 21009
lappend ::nettool::blocks 21011 21552
lappend ::nettool::blocks 21555 21589
lappend ::nettool::blocks 21591 21799
lappend ::nettool::blocks 21801 21844
lappend ::nettool::blocks 21850 21999
lappend ::nettool::blocks 22006 22124
lappend ::nettool::blocks 22126 22127
lappend ::nettool::blocks 22129 22221
lappend ::nettool::blocks 22223 22272
lappend ::nettool::blocks 22274 22304
lappend ::nettool::blocks 22306 22342
lappend ::nettool::blocks 22344 22346
lappend ::nettool::blocks 22348 22349
lappend ::nettool::blocks 22352 22536
lappend ::nettool::blocks 22538 22554
lappend ::nettool::blocks 22556 22762
lappend ::nettool::blocks 22764 22799
lappend ::nettool::blocks 22801 22950
lappend ::nettool::blocks 22952 22999
lappend ::nettool::blocks 23006 23052
lappend ::nettool::blocks 23054 23271
lappend ::nettool::blocks 23273 23332
lappend ::nettool::blocks 23334 23399
lappend ::nettool::blocks 23403 23455
lappend ::nettool::blocks 23458 23545
lappend ::nettool::blocks 23547 23999
lappend ::nettool::blocks 24007 24241
lappend ::nettool::blocks 24243 24248
lappend ::nettool::blocks 24250 24320
lappend ::nettool::blocks 24323 24464
lappend ::nettool::blocks 24466 24553
lappend ::nettool::blocks 24555 24576
lappend ::nettool::blocks 24578 24675
lappend ::nettool::blocks 24679 24679
lappend ::nettool::blocks 24681 24753
lappend ::nettool::blocks 24755 24849
lappend ::nettool::blocks 24851 24921
lappend ::nettool::blocks 24923 24999
lappend ::nettool::blocks 25010 25470
lappend ::nettool::blocks 25472 25575
lappend ::nettool::blocks 25577 25603
lappend ::nettool::blocks 25605 25792
lappend ::nettool::blocks 25794 25899
lappend ::nettool::blocks 25904 25953
lappend ::nettool::blocks 25956 25999
lappend ::nettool::blocks 26001 26132
lappend ::nettool::blocks 26134 26207
lappend ::nettool::blocks 26209 26259
lappend ::nettool::blocks 26264 26485
lappend ::nettool::blocks 26488 26488
lappend ::nettool::blocks 26490 26999
lappend ::nettool::blocks 27010 27344
lappend ::nettool::blocks 27346 27441
lappend ::nettool::blocks 27443 27503
lappend ::nettool::blocks 27505 27781
lappend ::nettool::blocks 27783 27875
lappend ::nettool::blocks 27877 27998
lappend ::nettool::blocks 28002 28118
lappend ::nettool::blocks 28120 28199
lappend ::nettool::blocks 28201 28239
lappend ::nettool::blocks 28241 29117
lappend ::nettool::blocks 29119 29166
lappend ::nettool::blocks 29170 29998
lappend ::nettool::blocks 30005 30259
lappend ::nettool::blocks 30261 30831
lappend ::nettool::blocks 30833 30998
lappend ::nettool::blocks 31000 31019
lappend ::nettool::blocks 31021 31028
lappend ::nettool::blocks 31030 31399
lappend ::nettool::blocks 31401 31415
lappend ::nettool::blocks 31417 31456
lappend ::nettool::blocks 31458 31619
lappend ::nettool::blocks 31621 31684
lappend ::nettool::blocks 31686 31764
lappend ::nettool::blocks 31766 32033
lappend ::nettool::blocks 32035 32248
lappend ::nettool::blocks 32250 32482
lappend ::nettool::blocks 32484 32634
lappend ::nettool::blocks 32637 32766
lappend ::nettool::blocks 32778 32800
lappend ::nettool::blocks 32802 32810
lappend ::nettool::blocks 32812 32895
lappend ::nettool::blocks 32897 33122
lappend ::nettool::blocks 33124 33330
lappend ::nettool::blocks 33332 33332
lappend ::nettool::blocks 33335 33433
lappend ::nettool::blocks 33435 33655
lappend ::nettool::blocks 33657 34248
lappend ::nettool::blocks 34250 34377
lappend ::nettool::blocks 34380 34566
lappend ::nettool::blocks 34568 34961
lappend ::nettool::blocks 34965 34979
lappend ::nettool::blocks 34981 34999
lappend ::nettool::blocks 35007 35353
lappend ::nettool::blocks 35358 36000
lappend ::nettool::blocks 36002 36411
lappend ::nettool::blocks 36413 36421
lappend ::nettool::blocks 36423 36442
lappend ::nettool::blocks 36445 36523
lappend ::nettool::blocks 36525 36601
lappend ::nettool::blocks 36603 36699
lappend ::nettool::blocks 36701 36864
lappend ::nettool::blocks 36866 37474
lappend ::nettool::blocks 37476 37482
lappend ::nettool::blocks 37484 37653
lappend ::nettool::blocks 37655 37999
lappend ::nettool::blocks 38002 38200
lappend ::nettool::blocks 38204 38799
lappend ::nettool::blocks 38801 38864
lappend ::nettool::blocks 38866 39680
lappend ::nettool::blocks 39682 39999
lappend ::nettool::blocks 40001 40403
lappend ::nettool::blocks 40405 40840
lappend ::nettool::blocks 40844 40852
lappend ::nettool::blocks 40854 41110
lappend ::nettool::blocks 41112 41120
lappend ::nettool::blocks 41122 41793
lappend ::nettool::blocks 41798 42507
lappend ::nettool::blocks 42511 42999
lappend ::nettool::blocks 43001 44320
lappend ::nettool::blocks 44323 44443
lappend ::nettool::blocks 44445 44543
lappend ::nettool::blocks 44545 44552
lappend ::nettool::blocks 44554 44599
lappend ::nettool::blocks 44601 44899
lappend ::nettool::blocks 44901 44999
lappend ::nettool::blocks 45002 45044
lappend ::nettool::blocks 45046 45053
lappend ::nettool::blocks 45055 45677
lappend ::nettool::blocks 45679 45823
lappend ::nettool::blocks 45826 45965
lappend ::nettool::blocks 45967 46997
lappend ::nettool::blocks 47002 47099
lappend ::nettool::blocks 47101 47556
lappend ::nettool::blocks 47558 47623
lappend ::nettool::blocks 47625 47805
lappend ::nettool::blocks 47807 47807
lappend ::nettool::blocks 47810 47999
lappend ::nettool::blocks 48006 48048
lappend ::nettool::blocks 48051 48127
lappend ::nettool::blocks 48130 48555
lappend ::nettool::blocks 48557 48618
lappend ::nettool::blocks 48620 48652
lappend ::nettool::blocks 48654 48999
lappend ::nettool::blocks 49001 65535

Added modules/nettool/generic.tcl.





























































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
::namespace eval ::nettool {}

###
# topic: 825cd25953c2cc896a96006b7f454e00
# title: Return pairings of MAC numbers to IP addresses on the local network
###
proc ::nettool::arp_table {} {}

###
# topic: 92ebbfa155883ad41c37d3f843392be4
# title: Return list of broadcast addresses for local networks
###
proc ::nettool::broadcast_list {} {
  return 127.0.0.1
}

###
# topic: 15d9bc96ec6ce31d4c8f99a425a9c02c
# description: Return Processor utilization
###
proc ::nettool::busy {} {}

###
# topic: 187cfa1827097c5cdf1c40c656cedfcc
# description: Return time since booted
###
proc ::nettool::cpuinfo {} {}

###
# topic: 58295f2544f43827e855d09dc3ee625a
###
proc ::nettool::diskless_client {} {
  return 0
}

###
# topic: 57fdc331bc60c7bf2bd3f3214e9a906f
###
proc ::nettool::hwaddr_to_ipaddr {hwaddr args} {}

###
# topic: dd2e2c0810cea69909399808f2a68949
# title: Return a list of unique hardware ids
###
proc ::nettool::hwid_list {} {
  set result {}
  foreach mac [::nettool::mac_list] {
    lappend result 0x[string map {: {}} $num]
  }
  if {[llength $result]} {
    return $result
  }
  return 0x010203040506
}

###
# topic: 4b87d977492bd10802bfc0327cd07ac2
# title: Return list of network interfaces
###
proc ::nettool::if_list {} {}

###
# topic: d2932eb0ea8cc9f6a865c1ab7cdd4572
# description:
#    Called on package load to build any static
#    structures to cache data that would be time
#    consuming to call on the fly
###
proc ::nettool::init {} {}

###
# topic: 417672d3f31b80d749588365af88baf6
# title: Return list of ip addresses for this computer (primary first)
###
proc ::nettool::ip_list {} {}

###
# topic: ac9d6815d47f60d45930f0c8c8ae8f16
# title: Return list of mac numbers for this computer (primary first)
###
proc ::nettool::mac_list {} {}

###
# topic: c42343f20e3afd2884a5dd1c219e4415
###
proc ::nettool::platform {} {
  variable platform
  return $platform
}

###
# Provide empty implementations
###

Added modules/nettool/locateport.tcl.























































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
::namespace eval ::nettool {}

###
# topic: fc6f8b9587dd5524f143f9df4be4755b63eb6cd5
###
proc ::nettool::allocate_port startingport {
  foreach {start end} $::nettool::blocks {
    if { $end <= $startingport } continue
    if { $start > $startingport } {
      set i $start
    } else {
      set i $startingport
    }
    for {} {$i <= $end} {incr i} {
      if {[string is true -strict [get ::nettool::used_ports($i)]]} continue
      if {[catch {socket -server NOOP $i} chan]} continue
      close $chan
      set ::nettool::used_ports($i) 1
      return $i
    }
  }
  error "Could not locate a port"
}

###
# topic: 3286fdbd0a3fdebbb26414475754bcf3dea67b0f
###
proc ::nettool::claim_port {port {protocol tcp}} {
  set ::nettool::used_ports($port) 1
}

###
# topic: 1d1f8a65a9aef8765c9b4f2b0ee0ebaf42e99d46
###
proc ::nettool::find_port startingport {
  foreach {start end} $::nettool::blocks {
    if { $end <= $startingport } continue
    if { $start > $startingport } {
      set i $start
    } else {
      set i $startingport
    }
    for {} {$i <= $end} {incr i} {
      if {[string is true -strict [get ::nettool::used_ports($i)]]} continue
      return $i
    }
  }
  error "Could not locate a port"
}

###
# topic: ded1c51260e009effb1f77044f8d0dec3d030b91
###
proc ::nettool::port_busy port {
  ###
  # Check our private list of used ports
  ###
  if {[string is true -strict [get ::nettool::used_ports($port)]]} {
    return 1
  }
  foreach {start end} $::nettool::blocks {
    if { $port >= $start && $port <= $end } {
      return 0
    }
  }
  return 1
}

###
# topic: b5407b084aa09f9efa4f58a337af6186418fddf2
###
proc ::nettool::release_port {port {protocol tcp}} {
  set ::nettool::used_ports($port) 0
}

Added modules/nettool/nettool.man.





















































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
[comment {-*- tcl -*- doctools manpage}]
[vset PACKAGE_VERSION 0.1]
[manpage_begin nettool n [vset PACKAGE_VERSION]]
[keywords {nettool}]
[keywords {odie}]
[copyright {2015 Sean Woods <[email protected]>}]
[moddesc   {nettool}]
[titledesc {Tools for networked applications}]
[category  System]
[require Tcl 8.5]
[require nettool [opt [vset PACKAGE_VERSION]]]
[require twapi 3.1]
[require ip 0.1]
[require platform 0.1]
[description]
[para]

The [package nettool] package consists of a Pure-tcl set of tools
to perform common network functions that would normally require
different packages or calls to exec, in a standard Tcl interface.

At present nettool has reference implementations for the following operating
systems: Windows, MacOSX, and Linux (debian).

[section Commands]
[list_begin definitions]

[call [cmd ::cat] [arg filename]]

Dump the contents of a file as a result.

[call [cmd ::nettool::allocate_port] [arg startingport]]

Attempt to allocate [arg startingport], or, if busy, advance the port
number sequentially until a free port is found, and claim that port.

This command uses a built-in database of known ports to avoid returning a
port which is in common use. (For example: http (80))

[call [cmd ::nettool::arp_table]]

Dump the contents of this computer's Address Resolution Protocol (ARP) table.
The result will be a Tcl formatted list: [arg macid] [arg ipaddrlist] ...

[call [cmd ::nettool::broadcast_list]]

Returns a list of broadcast addresses (suitable for UDP multicast)
that this computer is associated with.

[call [cmd ::nettool::claim_port] [arg port] [opt [arg protocol]]]

Mark [arg port] as busy, optionally as either [const tcp] (default) or [const udp].

[call [cmd ::nettool::cpuinfo] [arg args]]

If no arguments are given, return a key/value list describing the
CPU of the present machine. Included in the matrix is info on the number
of cores/processors that are available for parallel tasking, installed physical
RAM, and processor family.
[para]
The exact contents are platform specific.
[para]
For Linux, information is drawn from /proc/cpuinfo and /proc/meminfo.
[para]
For MacOSX, information is drawn from sysctl
[para]
For Windows, information is draw from TWAPI.
[para]
If arguments are given, the result with be a key/value list limited to the
fields requested.
[para]
Canonical fields for all platforms:
[list_begin definitions][comment {-- cpuinfofields}]
[def cpus]   Count of CPUs/cores/execution units
[def speed]  Clock speed of processor(s) in Mhz
[def memory] Installed RAM (in MB)
[def vendor] Manufacturer
[list_end]

[call [cmd ::nettool::find_port] [arg startingport]]

Return [arg startingport] if it is available, or the next free port after
[arg startingport]. Note: Unlike [cmd ::nettool::allocate_port], this
command does not claim the port.
[para]
This command uses a built-in database of known ports to avoid returning a
port which is in common use. (For example: http (80))

[call [cmd  ::nettool::hwid_list]]

Return a list of hardware specific identifiers from this computer. The source
and content will vary by platform.
[para]
For MacOSX, the motherboard serial number and macids for all network devices is returned.
[para]
For Windows, the volume serial number of C and macids for all network devices is returned.
[para]
For Linux, macids for all network devices is returned.

[call [cmd  ::nettool::ip_list]]

Return a list of IP addresses associated with this computer.

[call [cmd  ::nettool::mac_list]]

Return a list of MACIDs for the network cards attached to this machine. The MACID of the
primary network card is returned first.

[call [cmd ::nettool::network_list]]

Return a list of networks associated with this computer. Networks are formated with
[cmd ip::nativeToPrefix].

[call [cmd  ::nettool::port_busy] [arg port]]

Return true if [arg port] is claimed, false otherwise.

[call [cmd ::nettool::release_port] [arg port] [opt [arg protocol]]]

Mark [arg port] as not busy, optionally as either [const tcp] (default) or [const udp].

[call [cmd ::nettool::status]]

Return a key/value list describing the status of the computer. The output
is designed to be comparable to the output of [cmd top] for all platforms.
[para]
Common fields include:
[list_begin definitions][comment {-- statusfields}]
[def load]         Processes per processing unit
[def memory_total] Total physical RAM (MB)
[def memory_free]  Total physical RAM unused (MB)
[list_end]
 
[list_end]
[para]
[vset CATEGORY odie]
[include ../doctools2base/include/feedback.inc]
[manpage_end]

Added modules/nettool/nettool.tcl.









































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
# @mdgen OWNER: generic.tcl
# @mdgen OWNER: available_ports.tcl
# @mdgen OWNER: locateport.tcl
# @mdgen OWNER: platform_*.tcl
package provide nettool 0.4

package require platform
# Uses the "ip" package from tcllib
package require ip

if {[info command ::ladd] eq {}} {
  proc ::ladd {varname args} {
    upvar 1 $varname var
    if ![info exists var] {
        set var {}
    }
    foreach item $args {
      if {$item in $var} continue
      lappend var $item
    }
    return $var
  }
}
if {[info command ::get] eq {}} {
  proc ::get varname {
    upvar 1 $varname var
    if {[info exists var]} {
      return [set var]
    }
    return {}
  }
}
if {[info command ::cat] eq {}} {
  proc ::cat filename {
    set fin [open $filename r]
    set dat [read $fin]
    close $fin
    return $dat
  }
}


set here [file dirname [file normalize [info script]]]

::namespace eval ::nettool {}

set genus [lindex [split [::platform::generic] -] 0]
dict set ::nettool::platform tcl_os  $::tcl_platform(os)
dict set ::nettool::platform odie_class   $::tcl_platform(platform)
dict set ::nettool::platform odie_genus   $genus
dict set ::nettool::platform odie_target  [::platform::generic]
dict set ::nettool::platform odie_species [::platform::identify]

source [file join $here generic.tcl]
source [file join $here available_ports.tcl]
source [file join $here locateport.tcl]

set platfile [file join $here platform_$::tcl_platform(platform).tcl]
if {[file exists $platfile]} {
  source $platfile
}
set genfile [file join $here platform_$::tcl_platform(platform)_$genus.tcl]
if {[file exists $genfile]} {
  source $genfile
}

::nettool::init

Added modules/nettool/nettool.test.











































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101

source [file join \
    [file dirname [file dirname [file join [pwd] [info script]]]] \
    devtools testutilities.tcl]

package require tcltest
testsNeedTcl     8.5
testsNeedTcltest 1.0

testing {
    useLocal nettool.tcl    nettool
}

# Test known busy ports
foreach port {
  80
  3020
  21
  7794
} {
  ::tcltest::test port-busy-$port \
    "Test that port busy returns true for known port $port" \
    [list ::nettool::port_busy $port] 1
}

# Test known free ports
# And test the full range at 7790-7792 to ensure there
# are now edge cases at the start and end of a range
foreach port {
  1028
  2446
  7790 7791 7792 7792
} {
  ::tcltest::test port-free-$port \
    "Test that port busy returns false for known port $port" \
    [list ::nettool::port_busy $port] 0
}

# Test that "next" for block 7790 return 7790
::tcltest::test port-find-0001 \
    "Test that port find returns the first port in unclaimed block starting at 7790" \
    [list ::nettool::find_port 7790] 7790

foreach {port nextport comment} {
  7790 7791 {Start of block}
  7791 7792 {...}
  7792 7793 {End of block}
  7793 7795 {Start of new block}
} {
  ::nettool::claim_port $port
  ::tcltest::test port-claim-0001 \
      "Test that port busy returns true after $port is claimed" \
      [list ::nettool::port_busy $port] 1
  
  # Test that claiming a port makes it busy
  ::tcltest::test port-find-0002 \
      "Test that port find returns the next port in unclaimed block starting at $port following claim" \
      [list ::nettool::find_port $port] $nextport

}

set port 7790
::nettool::claim_port $port
::tcltest::test port-claim-0002 \
    "Test that port busy returns true after $port is claimed" \
    [list ::nettool::port_busy $port] 1
::nettool::release_port $port
::tcltest::test port-claim-0003 \
    "Test that port busy returns false after $port is release" \
    [list ::nettool::port_busy $port] 0
  
# Test that claiming a port makes it busy
::tcltest::test port-find-0004 \
    "Test that port find returns the next port in released block starting at $port following claim" \
    [list ::nettool::find_port 7790] 7790

foreach {port nextport comment} {
  7790 7791 {Start of block}
  7791 7792 {...}
  7792 7793 {End of block}
  7793 7795 {Start of new block}
} {
  ::nettool::release_port $port 
}

# Test that claiming a port makes it busy
::tcltest::test port-allocate-0004 \
    "Test allocate port returns the address of an unclaimed spot and claims it" \
    [list ::nettool::allocate_port 7790] 7790

::tcltest::test port-allocate-0005 \
    "Test allocate port returns the next address of an claimed spot and claims it" \
    [list ::nettool::allocate_port 7790] 7791

::tcltest::test port-allocate-0006 \
    "Test allocate port returns the next address of an claimed spot and claims it" \
    [list ::nettool::allocate_port 7790] 7792


testsuiteCleanup
return

Added modules/nettool/pkgIndex.tcl.























>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
# Tcl package index file, version 1.1
# This file is generated by the "pkg_mkIndex" command
# and sourced either when an application starts up or
# by a "package unknown" script.  It invokes the
# "package ifneeded" command to set up package-related
# information so that packages will be loaded automatically
# in response to "package require" commands.  When this
# script is sourced, the variable $dir must contain the
# full path name of this file's directory.

package ifneeded nettool 0.4 [list source [file join $dir nettool.tcl]]

Added modules/nettool/platform_unix.tcl.















































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
###
# Generic answers that can be answered on most if not all unix platforms
###

::namespace eval ::nettool {}

###
# topic: 825cd25953c2cc896a96006b7f454e00
# title: Return pairings of MAC numbers to IP addresses on the local network
# description: Under unix, we call the arp command for arp table resolution
###
proc ::nettool::arp_table {} {
  set result {}
  set dat [exec arp -a]
  foreach line [split $dat \n] {
    set host [lindex $line 0]
    set ip [lindex $line 1]
    set macid [lindex $line 3]
    lappend result $macid [string range $ip 1 end-1]
  }
  return $result
}

Added modules/nettool/platform_unix_linux.tcl.

































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
::namespace eval ::nettool {}

###
# topic: 92ebbfa155883ad41c37d3f843392be4
# title: Return list of broadcast addresses for local networks
###
proc ::nettool::broadcast_list {} {
  set result {}
  lappend result 127.0.0.1
  foreach {iface info} [dump] {
    if {[dict exists $info ipv4 Bcast:]} {
      lappend result [dict get $info ipv4 Bcast:]
    }
  }
  return [lsort -unique -dictionary $result]
}

###
# topic: 187cfa1827097c5cdf1c40c656cedfcc
# description: Return time since booted
###
proc ::nettool::cpuinfo args {
  variable cpuinfo
  if {![info exists cpuinfo]} {
    set cpuinfo {}
    set dat [cat /proc/meminfo]
    foreach line [split $dat \n] {
      switch [lindex $line 0] {
        MemTotal: {
          # Normalize to MB
          dict set cpuinfo memory [lindex $line 1]/1024
        }
      }
    }
    set cpus 0
    set dat [cat /proc/cpuinfo]
    foreach line [split $dat \n] {
      set idx [string first : $line]
      set field [string trim [string range $line 0 $idx-1]]
      set value [string trim [string range $line $idx+1 end]]
      switch $field {
        processor {
          incr cpus
        }
        {cpu family} {
          dict set cpuinfo family $value
        }
        model {
          dict set cpuinfo model $value
        }
        stepping {
          dict set cpuinfo stepping $value
        }
        vendor_id {
          dict set cpuinfo vendor $value          
        }
        {model name} {
          dict set cpuinfo brand $value                    
        }
        {cpu MHz} {
          dict set cpuinfo speed $value          
        }
        flags {
          dict set cpuinfo features $value
        }
      }
    }
    dict set cpuinfo cpus $cpus
  }
  if {$args eq "<list>"} {
    return [dict keys $cpuinfo]
  }
  if {[llength $args]==0} {
    return $cpuinfo
  }
  if {[llength $args]==1} {
    return [dict get $cpuinfo [lindex $args 0]]
  }
  set result {}
  foreach item $args {
    if {[dict exists $cpuinfo $item]} {
      dict set result $item [dict get $cpuinfo $item]
    } else {
      dict set result $item {}
    }
  }
  return $result
}

###
# topic: aa8eda4fb59296a1a34d8d600ca54e28
# description: Dump interfaces
###
proc ::nettool::dump {} {
  set data [exec ifconfig]
  set iface {}
  set result {}
  foreach line [split $data \n] {
    if {[string index $line 0] in {" " "\t"} } {
      # Indented line appends the prior iface
      switch [lindex $line 0] {
        inet {
          foreach tuple [lrange $line 1 end] {
	    set idx [string first : $tuple]
            set field [string trim [string range $tuple 0 $idx]]
            set value [string trim [string range $tuple $idx+1 end]]
            dict set result $iface ipv4 [string trim $field] [string trim $value]
          }
        }
        inet6 {
          dict set result $iface ipv6 addr: [lindex $line 2]
          foreach tuple [lrange $line 3 end] {
	    set idx [string first : $tuple]
            set field [string trim [string range $tuple 0 $idx]]
            set value [string trim [string range $tuple $idx+1 end]]
            dict set result $iface ipv6 [string trim $field] [string trim $value]
          }
	}
      }
    } else {
      # Non-intended line - new iface
      set iface [lindex $line 0]
      set idx [lsearch $line HWaddr]
      if {$idx >= 0 } {
        dict set result $iface ether: [lindex $line $idx+1]
      }
    }
  }
  return $result
}

###
# topic: 417672d3f31b80d749588365af88baf6
# title: Return list of ip addresses for this computer (primary first)
###
proc ::nettool::ip_list {} {
  set result {}
  foreach {iface info} [dump] {
    if {[dict exists $info ipv4 addr:]} {
      lappend result [dict get $info ipv4 addr:]
    }
  }
  ldelete result 127.0.0.1
  return $result
}

###
# topic: ac9d6815d47f60d45930f0c8c8ae8f16
# title: Return list of mac numbers for this computer (primary first)
###
proc ::nettool::mac_list {} {
  set result {}
  foreach {iface info} [dump] {
    if {[dict exists $info ether:]} {
      lappend result [dict get $info ether:]
    }
  }
  return $result
}

###
# topic: a43b6f42141820e0ba1094840d0f6fc0
###
proc ::nettool::network_list {} {
  foreach {iface info} [dump] {
    if {![dict exists $info ipv4 addr:]} continue
    if {![dict exists $info ipv4 Mask:]} continue
    #set mask [::ip::maskToInt $netmask]
    set addr [dict get $info ipv4 addr:]
    set mask [dict get $info ipv4 Mask:]
    set addri [::ip::toInteger $addr]
    lappend result [ip::nativeToPrefix [list [expr {$addri & $mask}] $mask] -ipv4]    
  }
  return $result
}

###
# topic: e7db1ae1b5b98a1bb4384f0a4fe81f42
###
proc ::nettool::status {} {
  set result {}
  set dat [cat /proc/loadavg]
  dict set result load_average    [lrange $dat 0 2]
  set cpus [cpuinfo cpus].0
  dict set result load [expr {[lindex $dat 0]/$cpus}]
  
  set processes [split [lindex $dat 3] /]
  dict set result processes_running [lindex $processes 0]
  dict set result processes_total [lindex $processes 1]

  set dat [cat /proc/meminfo]
  foreach line [split $dat \n] {
    switch [lindex $line 0] {
      MemTotal: {
        # Normalize to MB
        dict set result memory_total [expr {[lindex $line 1]/1024}]
      }
      MemFree: {
        # Normalize to MB
        dict set result memory_free [expr {[lindex $line 1]/1024}]
      }
    }
  }
  return $result
}

###
# topic: 59bf977ad7287b4d90346fad639aed34
###
proc ::nettool::uptime_report {} {
  set result {}
  set dat [split [exec uptime] ,]
  puts $dat
  dict set result time   [lindex [lindex $dat 0] 0]
  dict set result uptime [lrange [lindex $dat 0] 1 end]
  dict set result users  [lindex [lindex $dat 2] 0]
  dict set result load_1_minute  [lindex [lindex $dat 3] end]
  dict set result load_5_minute  [lindex [lindex $dat 4] end]
  dict set result load_15_minute  [lindex [lindex $dat 5] end]
  return $result
}

unset -nocomplain ::nettool::cpuinfo

Added modules/nettool/platform_unix_macosx.tcl.































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
::namespace eval ::nettool {}

###
# topic: 825cd25953c2cc896a96006b7f454e00
# title: Return pairings of MAC numbers to IP addresses on the local network
# description: Under macosx, we call the arp command for arp table resolution
###
proc ::nettool::arp_table {} {
  set result {}
  set dat [exec arp -a]
  foreach line [split $dat \n] {
    set host [lindex $line 0]
    set ip [lindex $line 1]
    set macid [lindex $line 3]
    lappend result $macid [string range $ip 1 end-1]
  }
  return $result
}

###
# topic: 92ebbfa155883ad41c37d3f843392be4
# title: Return list of broadcast addresses for local networks
###
proc ::nettool::broadcast_list {} {
  set result {}
  lappend result 127.0.0.1
  foreach {iface info} [dump] {
    if {[dict exists $info broadcast:]} {
      lappend result [dict get $info broadcast:]
    }
  }
  return [lsort -unique -dictionary $result]
}

###
# topic: 187cfa1827097c5cdf1c40c656cedfcc
# description: Return time since booted
###
proc ::nettool::cpuinfo args {
  variable cpuinfo
  if {![info exists cpuinfo]} {
    set cpuinfo {}
    dict set cpuinfo machine  [exec sysctl -n hw.machine]
    dict set cpuinfo cpus     [exec sysctl -n hw.ncpu]
    # Normalize to MB
    dict set cpuinfo memory   [expr {[exec sysctl -n hw.memsize] / 1048576}]
    
    dict set cpuinfo vendor   [exec sysctl -n machdep.cpu.vendor]
    dict set cpuinfo brand    [exec sysctl -n machdep.cpu.brand_string]
    
    dict set cpuinfo model    [exec sysctl -n machdep.cpu.model]
    dict set cpuinfo speed    [expr {[exec sysctl -n hw.cpufrequency]/1000000}]
    
    dict set cpuinfo family   [exec sysctl -n machdep.cpu.family]
    dict set cpuinfo stepping [exec sysctl -n machdep.cpu.stepping]
    dict set cpuinfo features [exec sysctl -n machdep.cpu.features]
    dict set cpuinfo diskless []
  }
  if {$args eq "<list>"} {
    return [dict keys $cpuinfo]
  }
  if {[llength $args]==0} {
    return $cpuinfo
  }
  if {[llength $args]==1} {
    return [dict get $cpuinfo [lindex $args 0]]
  }
  set result {}
  foreach item $args {
    if {[dict exists $cpuinfo $item]} {
      dict set result $item [dict get $cpuinfo $item]
    } else {
      dict set result $item {}
    }
  }
  return $result
}

###
# topic: aa8eda4fb59296a1a34d8d600ca54e28
# description: Dump interfaces
###
proc ::nettool::dump {} {
  set data [exec ifconfig]
  set iface {}
  set result {}
  foreach line [split $data \n] {
    if {[string index $line 0] in {" " "\t"} } {
      # Indented line appends the prior iface
      foreach {field value} $line {
        dict set result $iface [string trimright $field :]: $value
      }
    } else {
      # Non-intended line - new iface
      set iface [lindex $line 0]
    }
  }
  return $result
}

###
# topic: dd2e2c0810cea69909399808f2a68949
# title: Return a list of unique hardware addresses
###
proc ::nettool::hwid_list {} {
  variable cached_data
  set result {}
  if {![info exists cached_data]} {
    set cached_data [exec system_profiler SPHardwareDataType]
  }
  set serial {}
  set hwuuid {}
  set result {}
  catch {
  foreach line [split $cached_data \n] {
    if { [lindex $line 0] == "Serial" && [lindex $line 1] == "Number" } {
      set serial [lindex $line end]
    }
    if { [lindex $line 0] == "Hardware" && [lindex $line 1] == "UUID:" } {
      set hwuuid [lindex $line end]
    }
  }
  }
  if { $hwuuid != {} } {
    lappend result 0x[string map {- {}} $hwuuid]
  }
  # Blank serial number?
  if { $serial != {} } {
    set sn [binary scan $serial H* hash]
    lappend result 0x$hash
  }
  if {[llength $result]} {
    return $result
  }
  foreach mac [::nettool::mac_list] {
    lappend result 0x[string map {: {}} $num]
  }
  if {[llength $result]} {
    return $result
  }
  return 0x010203040506
}

###
# topic: d2932eb0ea8cc9f6a865c1ab7cdd4572
# description:
#    Called on package load to build any static
#    structures to cache data that would be time
#    consuming to call on the fly
###
proc ::nettool::init {} {
  unset -nocomplain [namespace current]::cpuinfo
  
}

###
# topic: 417672d3f31b80d749588365af88baf6
# title: Return list of ip addresses for this computer (primary first)
###
proc ::nettool::ip_list {} {
  set result {}
  foreach {iface info} [dump] {
    if {[dict exists $info inet:]} {
      lappend result [dict get $info inet:]
    }
  }
  ldelete result 127.0.0.1
  return $result
}

###
# topic: ac9d6815d47f60d45930f0c8c8ae8f16
# title: Return list of mac numbers for this computer (primary first)
###
proc ::nettool::mac_list {} {
  set result {}
  foreach {iface info} [dump] {
    if {[dict exists $info ether:]} {
      lappend result [dict get $info ether:]
    }
  }
  return $result
}

###
# topic: a43b6f42141820e0ba1094840d0f6fc0
###
proc ::nettool::network_list {} {
  foreach {iface info} [dump] {
    if {![dict exists $info inet:]} continue
    if {![dict exists $info netmask:]} continue
    #set mask [::ip::maskToInt $netmask]
    set addr [dict get $info inet:]
    set mask [dict get $info netmask:]
    set addri [::ip::toInteger $addr]
    lappend result [ip::nativeToPrefix [list [expr {$addri & $mask}] $mask] -ipv4]    
  }
  return $result
}

###
# topic: e7db1ae1b5b98a1bb4384f0a4fe81f42
###
proc ::nettool::status {} {
  set result {}
  set loaddat [lindex [exec sysctl -n vm.loadavg] 0]
  set cpus [cpuinfo cpus].0
  dict set result load [expr {[lindex $loaddat 0]/$cpus}]
  dict set result load_average_1 [lindex $loaddat 0]
  dict set result load_average_5 [lindex $loaddat 1]
  dict set result load_average_15 [lindex $loaddat 2]

  set total [exec sysctl -n hw.memsize]
  dict set result memory_total [expr {$total / 1048576}]
  set used 0
  foreach {amt} [exec sysctl -n sysctl -n machdep.memmap] {
    incr used $amt
  }
  dict set result memory_free [expr {($total - $used) / 1048576}]

  return $result
}

Added modules/nettool/platform_windows.tcl.











































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package require twapi

::namespace eval ::nettool {}

###
# topic: 825cd25953c2cc896a96006b7f454e00
# title: Return pairings of MAC numbers to IP addresses on the local network
# description: Under macosx, we call the arp command for arp table resolution
###
proc ::nettool::arp_table {} {
  set result {}
  catch {
  foreach element [::twapi::get_arp_table] {
    foreach {ifidx macid ipaddr type} {
      lappend result [string map {- :} $macid] $ipaddr
    }
  }
  }
  return $result
}

###
# topic: 92ebbfa155883ad41c37d3f843392be4
# title: Return list of broadcast addresses for local networks
###
proc ::nettool::broadcast_list {} {
  set result {}
  lappend result 127.0.0.1
  foreach iface [::twapi::get_netif_indices] {
    set dat [::twapi::GetIpAddrTable $iface]
    foreach element $dat {
      foreach {addr ifindx netmask broadcast reamsize} $element break;
      lappend result [::ip::broadcastAddress $addr/$netmask]
    }
  }
  return [lsort -unique -dictionary $result]
}

###
# topic: 57fdc331bc60c7bf2bd3f3214e9a906f
###
proc ::nettool::hwaddr_to_ipaddr args {
  return [::twapi::hwaddr_to_ipaddr {*}$args]
}

###
# topic: dd2e2c0810cea69909399808f2a68949
# title: Return a list of unique hardware ids
###
proc ::nettool::hwid_list {} {
  # Use the serial number on the hard drive
  catch {exec {*}[auto_execok vol] c:} voldat
  set num [lindex [lindex [split $voldat \n] end] end]
  return 0x[string map {- {}} $num]
}

###
# topic: 4b87d977492bd10802bfc0327cd07ac2
# title: Return list of network interfaces
###
proc ::nettool::if_list {} {
  return [::twapi::get_netif_indices]
}

###
# topic: 417672d3f31b80d749588365af88baf6
# title: Return list of ip addresses for this computer (primary first)
###
set body {}
if {[::twapi::get_ip_addresses] ne {}} {
  set body {
  set result [::twapi::get_ip_addresses]
  ldelete result 127.0.0.1
  return $result
} 
} elseif {[info command ::twapi::get_system_ipaddrs] ne {}} {
# They changed commands names on me...
  set body {
  set result [::twapi::get_system_ipaddrs]
  ldelete result 127.0.0.1
  return $result
}
}
proc ::nettool::ip_list {} $body
###
# topic: ac9d6815d47f60d45930f0c8c8ae8f16
# title: Return list of mac numbers for this computer (primary first)
###
proc ::nettool::mac_list {} {
  
  set result {}
  foreach iface [::twapi::get_netif_indices] {
    foreach {field value} [::twapi::get_netif_info $iface -physicaladdress] {
      if { $value eq {} } continue
      lappend result [string map {- :} $value] 
    }
  }
  return $result
}

###
# topic: a43b6f42141820e0ba1094840d0f6fc0
###
proc ::nettool::network_list {} {
  set result {}
  foreach iface [::twapi::get_netif_indices] {
    set dat [::twapi::GetIpAddrTable $iface]
    foreach element $dat {
      foreach {addr ifindx netmask broadcast reamsize} $element break;
      set mask [::ip::maskToInt $netmask]
      set addri [::ip::toInteger $addr]
      lappend result [ip::nativeToPrefix [list [expr {$addri & $mask}] $netmask] -ipv4]    
    }
  }
  return [lsort -unique $result]
}
package provide nettool::platform::windows 0.1

Added modules/nettool/scripts/build_services.tcl.







































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
###
# topic: 1b090f3648b8120c7df65ecbac65d548
# description:
#    This script digests the raw data from
#    http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv
#    And produces a summary
###
proc ::record {service port type usage} {
  if { $port eq {} } return
  if {$service eq {} && $type in {tcp udp {}} && $usage != "Reserved"} {
    ladd ::available_port($port) {*}$type
    return
  }
  unset -nocomplain ::available_port($port)
  lappend ::busy_port($port) $type $usage
  #puts [list busy $service $port $type $usage]
}

for {set x 0} {$x < 65536} {incr x} {
  set ::available_port($x) {}
}
package require listutil
package require csv
set fin [open [lindex $argv 0] r]
set headers [gets $fin]
set thisline {}
while {[gets $fin line]>=0} {
  append thisline \n$line
  if {![csv::iscomplete $line]} continue
  set lline [csv::split $line]
  if [catch {
  set service [lindex $lline 0]
  set port [lindex $lline 1]
  set type [lindex $lline 2]
  set usage [lindex $lline 3]

  }] continue
  if {![string is integer -strict $port]} {
    set startport [lindex [split $port -] 0]
    set endport [lindex [split $port -] 1]
    if {[string is integer -strict $startport] && [string is integer -strict $endport]} {
      for {set i $startport} {$i<=$endport}  {incr i}  {
        record $service $i $type $usage
      }
      continue
    }
    
  }
  
  record $service $port $type $usage
}
close $fin

set fout [open available_ports.tcl w]
puts $fout {
package provide nettool::available_ports 0.1
namespace eval ::nettool {
  set blocks {}
}
}
set startport 0
set endport 0
foreach {port avail} [lsort -integer -stride 2 [array get available_port]] {
  # Don't bother with ports below 1024
  # Most operating systems won't let us access them anyway
  if {$port < 1024 } continue
  if { $endport == ($port-1) } {
    set endport $port
    continue
  }
  if {$startport} {
    puts $fout [list lappend ::nettool::blocks $startport $endport]
  }
  set startport $port
  set endport $port
}
if { $startport } {
  puts $fout [list lappend ::nettool::blocks $startport $endport]
}
close $fout

exit

Added modules/nettool/service-names-port-numbers.csv.

more than 10,000 changes

Added modules/processman/pkgIndex.tcl.























>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
# Tcl package index file, version 1.1
# This file is generated by the "pkg_mkIndex" command
# and sourced either when an application starts up or
# by a "package unknown" script.  It invokes the
# "package ifneeded" command to set up package-related
# information so that packages will be loaded automatically
# in response to "package require" commands.  When this
# script is sourced, the variable $dir must contain the
# full path name of this file's directory.

package ifneeded odie::processman 0.3 [list source [file join $dir processman.tcl]]

Added modules/processman/processman.man.





















































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
[comment {-*- tcl -*- doctools manpage}]
[vset PACKAGE_VERSION 0.1]
[manpage_begin processman n [vset PACKAGE_VERSION]]
[keywords {processman}]
[keywords {odie}]
[copyright {2015 Sean Woods <[email protected]>}]
[moddesc   {processman}]
[titledesc {Tool for automating the period callback of commands}]
[category  System]
[require Tcl 8.5]
[require twapi 3.1]
[require cron 1.1]
[require processman [opt [vset PACKAGE_VERSION]]]
[description]
[para]

The [package processman] package provides a Pure-tcl set of utilities
to manage child processes in a platform-generic nature.

[section Commands]
[list_begin definitions]

[call [cmd ::processman::find_exe] [arg name]]

Locate an executable by the name of [arg name] in the system path. On windows,
also add the .exe extention if not given.

[call [cmd ::processman::kill] [arg id]]

Kill a child process [arg id].

[call [cmd ::processman::kill_all]]

Kill all processes spawned by this program

[call [cmd ::processman::killexe] [arg name]]

Kill a process identified by the executable. On Unix, this triggers a killall.
On windows, [cmd twapi::get_process_ids] is used to map a name one or more IDs,
which are then killed.

[call [cmd ::processman::onexit] [arg id] [arg cmd]]

Arrange to execute the script [arg cmd] when this programe detects that
process [arg id] as terminated.

[call [cmd ::processman::priority] [arg id] [arg level]]

Mark process [arg id] with the priorty [arg level]. Valid levels: low, high, default.
[para]
On Unix, the process is tagged using the [cmd nice] command.
[para]
On Windows, the process is modifed via the [cmd twapi::set_priority_class]

[call [cmd ::processman::process_list]]

Return a list of processes that have been triggered by this program, as
well as a boolean flag to indicate if the process is still running.


[call [cmd ::processman::process_list] [arg id]]

Return true if process [arg id] is still running, false otherwise.

[call [cmd ::processman::spawn] [arg id] [arg cmd] [arg args]]

Start a child process, identified by [arg id]. [arg cmd] is the name
of the command to execute. [arg args] are arguments to pass to that command.

[list_end]
[para]
[vset CATEGORY odie]
[include ../doctools2base/include/feedback.inc]
[manpage_end]

Added modules/processman/processman.tcl.



























































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
###
# IRM External Process Manager
###

package provide odie::processman 0.3
package require cron 1.1

::namespace eval ::processman {}

if { $::tcl_platform(platform) eq "windows" } {
  package require twapi
} else {
  ###
  # Try to utilize C level utilities that are bundled
  # with either TclX or Odielib
  ###
  if [catch {package require odielib}] {
    catch {package require Tclx}
  }
  if {[info command subprocess_exists] eq {}} {
    proc ::processman::subprocess_exists pid {
      set dat [exec ps]
      foreach line [split $dat \n] {
        if {![scan $line "%d %s" thispid rest]} continue
        if { $thispid eq $pid} {
          return $thispid
        }
      }
      return 0
    }
  }
  if {[info command kill_subprocess] eq {}} {
    proc ::processman::kill_subprocess pid {
      catch {exec kill $pid}
    }
  }
}
if {[info command harvest_zombies] eq {}} {
  proc ::processman::harvest_zombies args {
  }
}

###
# topic: a0cdb7503872cd302756c732956cd5c3
# title: Periodic scan of the state of processes
###
proc ::processman::events {} {
  variable process_binding
  foreach {id bind} $process_binding {
    if {![running $id]} {
      kill $id
      catch {eval $bind}
    }
  }
}

###
# topic: 95edbb845e0a8802b1cc3119516a6502
# title: Locate and executable of name
###
proc ::processman::find_exe name {
  global tcl_platform
  if {$tcl_platform(platform)=="windows"} {set suffix .exe} {set suffix {}}
  foreach f [list $name ~/irm/bin/$name ./$name/$name ./$name  ../$name/$name ../../$name/$name] {
    if {[file executable $f]} break
    append f $suffix
    if {[file executable $f]} break
  }
  if {![file executable $f]} {
     error "Cannot find the $name executable"
     return {}
  }
  return $f
}

###
# topic: ac021b1116f0c1d5e3319d9f333f0c89
# title: Kill a process
###
proc ::processman::kill id {
  variable process_list
  variable process_binding
  global tcl_platform

  if {![dict exists $process_list $id]} {
    return
  }
  foreach pid [dict get $process_list $id] {
    if { $tcl_platform(platform) eq "unix" } {
      catch {kill_subprocess $pid}
    } elseif { $tcl_platform(platform) eq "windows" } {
      catch {::twapi::end_process $pid}
    }
  }
  dict set process_list $id {}
  dict unset process_binding $id
  harvest_zombies
}

###
# topic: 8987329d60cd1adc766e09a0227f87b6
# title: Kill all processes spawned by this program
###
proc ::processman::kill_all {} {
  variable process_list
  if {![info exists process_list]} {
    return {}
  }
  foreach {name pidlist} $process_list {
    kill $name
  }
  harvest_zombies
}

###
# topic: 17a9014236425560140ba62bbb2745a8
# title: Kill a process
###
proc ::processman::killexe name {
  if {$::tcl_platform(platform) eq "windows" } {
    set pids [twapi::get_process_ids -name $name.exe]
    foreach pid $pids {
        # Catch the error in case process does not exist any more
        catch {twapi::end_process $pid}
    }
    #catch {exec taskkill /F /IM $name.exe} err
    puts $err
  } else {
    catch {exec killall -9 $name} err
    ##puts $err
  }
  harvest_zombies
}

###
# topic: 02406b2a7edd05c887554384ad2db41f
# title: Issue a command when process {$id} exits
###
proc ::processman::onexit {id cmd} {
  variable process_binding
  if {![running $id]} {
    catch {eval $cmd}
    return
  }
  dict set process_binding $id $cmd
}

###
# topic: ee784ae29e5b66867a30428b3095dc65
# title: Changes priority of task
###
proc ::processman::priority {id level} {
  variable process_list

  set pid [running $id]
  if {![string is integer $pid]} {
    set pid 0
  }
  if {!$pid} {
    return
  }
  if { $::tcl_platform(platform) eq "windows" } {
    package require twapi
    switch $level {
      low {
        twapi::set_priority_class $pid 0x4000
      }
      high {
        twapi::set_priority_class $pid 0x20
      }
      default {
        twapi::set_priority_class $pid 0x8000
      }
    }
  } else {
    switch $level {
      low {
        exec renice -n 10 -p $pid
      }
      high {
        exec renice -n -5 -p $pid
      }
      default {
        exec renice -n 0 -p $pid
      }
    }
  }
}

###
# topic: 8bccf62b4fa11949dba4c85e05d116e9
# title: Return a list of processes and their current state
###
proc ::processman::process_list {} {
  variable process_list
  if {![info exists process_list]} {
    return {}
  }
  set result {}
  foreach {name pidlist} $process_list {
    foreach pid $pidlist {
      lappend result $name $pid [subprocess_exists $pid]
    }
  }
  return $result
}

###
# topic: 96b4b2c53ea1554006417e507197488c
# title: Test if a process is running
###
proc ::processman::running id {
  variable process_list
  if {![dict exists $process_list $id]} {
    return 0
  }
  foreach pid [dict get $process_list $id] {
    if { $::tcl_platform(platform) eq "windows" } {
      if {[::twapi::process_exists $pid]} {
        return $pid
      }
    } else {
      if {[subprocess_exists $pid]} {
        return $pid
      }
    }
  }
  return 0
}

###
# topic: 61694ad97dbac52351431ad0d8c448e3
# title: Launch a task in the background
###
proc ::processman::spawn {id command args} {
  variable process_list
  if {[llength $command] == 1} {
    set command [lindex $command 0]
  }
  if {$::tcl_platform(platform) eq "windows"} {
    set pid [exec "$command" {*}$args &]
  } else {
    set pid [exec $command {*}$args &]
  }
  dict lappend process_list $id $pid
  return $pid
}

###
# topic: 56fbf345652c5ca18543a67a6bc95787
# title: Process Management Tools
###
namespace eval ::processman {
###
# initialize tables
###

variable process_list
variable process_binding
if { ![info exists process_list]} {
  set process_list {}
}
if {![info exists process_binding]} {
  set process_binding {}
}
}

::cron::every processman 60 ::processman::events

Changes to modules/pt/tests/char.tests.

1
2
3
4
5
6
7
8





9
10
11
12
13
14
15
16
17
18





19
20
21
22
23
24
25
26
27
28
29
30




31
32
33
34
35
36
37
# -*- tcl -*-
# Testsuite for char.
# Called by the ../char.test driver file.

test char-1.0 {char, wrong#args} -body {
    char
} -returnCodes error \
    -result {wrong # args: should be "char subcommand ?argument ...?"}






test char-1.1 {char, bogus method} -body {
    char bogus
} -returnCodes error \
    -result {unknown or ambiguous subcommand "bogus": must be quote, or unquote}

test char-1.2 {char, wrong#args} -body {
    char quote
} -returnCodes error \
    -result {wrong # args: should be "char quote subcommand ?argument ...?"}






test char-1.3 {char, bogus method} -body {
    char quote bogus
} -returnCodes error \
    -result {unknown or ambiguous subcommand "bogus": must be comment, cstring, string, or tcl}

#----------------------------------------------------------------------

test char-2.0 {char tcl, wrong#args} -body {
    char quote tcl
} -returnCodes error -result {wrong # args: should be "char quote tcl ch ..."}





test char-2.1 {char tcl, single char} -body {
    char quote tcl A
} -result A

test char-2.2 {char tcl, multi char} -body {
    char quote tcl A B
} -result {A B}




|



>
>
>
>
>






|



>
>
>
>
>








|



>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
# -*- tcl -*-
# Testsuite for char.
# Called by the ../char.test driver file.

test char-1.0.0 {char, wrong#args} -constraints tcl8.5minus -body {
    char
} -returnCodes error \
    -result {wrong # args: should be "char subcommand ?argument ...?"}

test char-1.0.1 {char, wrong#args} -constraints tcl8.6plus -body {
    char
} -returnCodes error \
    -result {wrong # args: should be "char subcommand ?arg ...?"}

test char-1.1 {char, bogus method} -body {
    char bogus
} -returnCodes error \
    -result {unknown or ambiguous subcommand "bogus": must be quote, or unquote}

test char-1.2.0 {char, wrong#args} -constraints tcl8.5minus -body {
    char quote
} -returnCodes error \
    -result {wrong # args: should be "char quote subcommand ?argument ...?"}

test char-1.2.1 {char, wrong#args} -constraints tcl8.6plus -body {
    char quote
} -returnCodes error \
    -result {wrong # args: should be "char quote subcommand ?arg ...?"}

test char-1.3 {char, bogus method} -body {
    char quote bogus
} -returnCodes error \
    -result {unknown or ambiguous subcommand "bogus": must be comment, cstring, string, or tcl}

#----------------------------------------------------------------------

test char-2.0.0 {char tcl, wrong#args} -constraints tcl8.5minus -body {
    char quote tcl
} -returnCodes error -result {wrong # args: should be "char quote tcl ch ..."}

test char-2.0.1 {char tcl, wrong#args} -constraints tcl8.6plus -body {
    char quote tcl
} -returnCodes error -result {wrong # args: should be "char quote tcl ch ?arg ...?"}

test char-2.1 {char tcl, single char} -body {
    char quote tcl A
} -result A

test char-2.2 {char tcl, multi char} -body {
    char quote tcl A B
} -result {A B}
66
67
68
69
70
71
72
73
74
75
76




77
78
79
80
81
82
83
    char quote tcl {*}$li
} -result $le

unset -nocomplain n label input expected ll li le

#----------------------------------------------------------------------

test char-3.0 {char string, wrong#args} -body {
    char quote string
} -returnCodes error -result {wrong # args: should be "char quote string ch ..."}





test char-3.1 {char string, single char} -body {
    char quote string A
} -result A

test char-3.2 {char string, multi char} -body {
    char quote string A B
} -result {A B}







|



>
>
>
>







80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
    char quote tcl {*}$li
} -result $le

unset -nocomplain n label input expected ll li le

#----------------------------------------------------------------------

test char-3.0.0 {char string, wrong#args} -constraints tcl8.5minus -body {
    char quote string
} -returnCodes error -result {wrong # args: should be "char quote string ch ..."}

test char-3.0.1 {char string, wrong#args} -constraints tcl8.6plus -body {
    char quote string
} -returnCodes error -result {wrong # args: should be "char quote string ch ?arg ...?"}

test char-3.1 {char string, single char} -body {
    char quote string A
} -result A

test char-3.2 {char string, multi char} -body {
    char quote string A B
} -result {A B}
112
113
114
115
116
117
118
119
120
121
122




123
124
125
126
127
128
129
    char quote string {*}$li
} -result $le

unset -nocomplain n label input expected ll li le

#----------------------------------------------------------------------

test char-4.0 {char cstring, wrong#args} -body {
    char quote cstring
} -returnCodes error -result {wrong # args: should be "char quote cstring ch ..."}





test char-4.1 {char cstring, single char} -body {
    char quote cstring A
} -result A

test char-4.2 {char cstring, multi char} -body {
    char quote cstring A B
} -result {A B}







|



>
>
>
>







130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
    char quote string {*}$li
} -result $le

unset -nocomplain n label input expected ll li le

#----------------------------------------------------------------------

test char-4.0.0 {char cstring, wrong#args} -constraints tcl8.5minus -body {
    char quote cstring
} -returnCodes error -result {wrong # args: should be "char quote cstring ch ..."}

test char-4.0.1 {char cstring, wrong#args} -constraints tcl8.6plus -body {
    char quote cstring
} -returnCodes error -result {wrong # args: should be "char quote cstring ch ?arg ...?"}

test char-4.1 {char cstring, single char} -body {
    char quote cstring A
} -result A

test char-4.2 {char cstring, multi char} -body {
    char quote cstring A B
} -result {A B}
158
159
160
161
162
163
164
165
166
167
168




169
170
171
172
173
174
175
    char quote cstring {*}$li
} -result $le

unset -nocomplain n label input expected ll li le

#----------------------------------------------------------------------

test char-5.0 {char comment, wrong#args} -body {
    char quote comment
} -returnCodes error -result {wrong # args: should be "char quote comment ch ..."}





test char-5.1 {char comment, single char} -body {
    char quote comment A
} -result A

test char-5.2 {char comment, multi char} -body {
    char quote comment A B
} -result {A B}







|



>
>
>
>







180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
    char quote cstring {*}$li
} -result $le

unset -nocomplain n label input expected ll li le

#----------------------------------------------------------------------

test char-5.0.0 {char comment, wrong#args} -constraints tcl8.5minus -body {
    char quote comment
} -returnCodes error -result {wrong # args: should be "char quote comment ch ..."}

test char-5.0.1 {char comment, wrong#args} -constraints tcl8.6plus -body {
    char quote comment
} -returnCodes error -result {wrong # args: should be "char quote comment ch ?arg ...?"}

test char-5.1 {char comment, single char} -body {
    char quote comment A
} -result A

test char-5.2 {char comment, multi char} -body {
    char quote comment A B
} -result {A B}

Changes to modules/pt/tests/data/ok/peg_cparam-critcl/0_basic_arithmetic.

830
831
832
833
834
835
836

837
838
839
840
841
842

843
844
845
846
847
848
849
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-critcl/10_notahead.

830
831
832
833
834
835
836

837
838
839
840
841
842

843
844
845
846
847
848
849
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-critcl/11_epsilon.

830
831
832
833
834
835
836

837
838
839
840
841
842

843
844
845
846
847
848
849
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-critcl/1_functions.

830
831
832
833
834
835
836

837
838
839
840
841
842

843
844
845
846
847
848
849
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-critcl/2_fun_arithmetic.

830
831
832
833
834
835
836

837
838
839
840
841
842

843
844
845
846
847
848
849
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-critcl/3_peg_itself.

830
831
832
833
834
835
836

837
838
839
840
841
842

843
844
845
846
847
848
849
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-critcl/4_choice.

830
831
832
833
834
835
836

837
838
839
840
841
842

843
844
845
846
847
848
849
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-critcl/5_sequence.

830
831
832
833
834
835
836

837
838
839
840
841
842

843
844
845
846
847
848
849
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-critcl/6_optional.

830
831
832
833
834
835
836

837
838
839
840
841
842

843
844
845
846
847
848
849
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-critcl/7_kleene.

830
831
832
833
834
835
836

837
838
839
840
841
842

843
844
845
846
847
848
849
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-critcl/8_pkleene.

830
831
832
833
834
835
836

837
838
839
840
841
842

843
844
845
846
847
848
849
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-critcl/9_ahead.

830
831
832
833
834
835
836

837
838
839
840
841
842

843
844
845
846
847
848
849
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-tea/0_basic_arithmetic.

797
798
799
800
801
802
803

804
805
806
807
808
809

810
811
812
813
814
815
816
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-tea/10_notahead.

797
798
799
800
801
802
803

804
805
806
807
808
809

810
811
812
813
814
815
816
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-tea/11_epsilon.

797
798
799
800
801
802
803

804
805
806
807
808
809

810
811
812
813
814
815
816
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-tea/1_functions.

797
798
799
800
801
802
803

804
805
806
807
808
809

810
811
812
813
814
815
816
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-tea/2_fun_arithmetic.

797
798
799
800
801
802
803

804
805
806
807
808
809

810
811
812
813
814
815
816
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-tea/3_peg_itself.

797
798
799
800
801
802
803

804
805
806
807
808
809

810
811
812
813
814
815
816
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-tea/4_choice.

797
798
799
800
801
802
803

804
805
806
807
808
809

810
811
812
813
814
815
816
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-tea/5_sequence.

797
798
799
800
801
802
803

804
805
806
807
808
809

810
811
812
813
814
815
816
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-tea/6_optional.

797
798
799
800
801
802
803

804
805
806
807
808
809

810
811
812
813
814
815
816
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-tea/7_kleene.

797
798
799
800
801
802
803

804
805
806
807
808
809

810
811
812
813
814
815
816
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-tea/8_pkleene.

797
798
799
800
801
802
803

804
805
806
807
808
809

810
811
812
813
814
815
816
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/pt/tests/data/ok/peg_cparam-tea/9_ahead.

797
798
799
800
801
802
803

804
805
806
807
808
809

810
811
812
813
814
815
816
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;

	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;

	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {







>






>







797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
	    ER_CLEAR (p);
	}
	SCOPE void
	rde_param_i_error_nonterminal (RDE_PARAM p, long int s)
	{
	    
	    return;
	#if 0
	    long int pos;
	    if (!p->ER) return;
	    pos = 1 + (long int) rde_stack_top (p->LS);
	    if (p->ER->loc != pos) return;
	    error_set (p, s);
	    p->ER->loc = pos;
	#endif
	}
	SCOPE void
	rde_param_i_error_pop_merge (RDE_PARAM p)
	{
	    ERROR_STATE* top = (ERROR_STATE*) rde_stack_top (p->ES);
	    
	    if (top == p->ER) {

Changes to modules/snit/snit.test.

765
766
767
768
769
770
771
772
















773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
    dog foo bar
} -constraints {
    snit1
} -returnCodes {
    error
} -result {bad option "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}

test dtypemethod-1.6a {delegating unknown typemethod to existing typecomponent with error} -body {
















    type dog {
        delegate typemethod * to stringhandler

        typeconstructor {
            set stringhandler string
        }
    }

    dog foo bar
} -constraints {
    snit2
} -returnCodes {
    error
} -result {unknown or ambiguous subcommand "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart}

test dtypemethod-1.7 {can't delegate local typemethod: order 1} -body {
    type dog {
        typemethod foo {} {}
        delegate typemethod foo to bar
    }
} -returnCodes {







|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>










|


|







765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
    dog foo bar
} -constraints {
    snit1
} -returnCodes {
    error
} -result {bad option "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}

test dtypemethod-1.6a.0 {delegating unknown typemethod to existing typecomponent with error} -body {
    type dog {
        delegate typemethod * to stringhandler

        typeconstructor {
            set stringhandler string
        }
    }

    dog foo bar
} -constraints {
    snit2 tcl8.5minus
} -returnCodes {
    error
} -result {unknown or ambiguous subcommand "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart}

test dtypemethod-1.6a.1 {delegating unknown typemethod to existing typecomponent with error} -body {
    type dog {
        delegate typemethod * to stringhandler

        typeconstructor {
            set stringhandler string
        }
    }

    dog foo bar
} -constraints {
    snit2 tcl8.6plus
} -returnCodes {
    error
} -result {unknown or ambiguous subcommand "foo": must be bytelength, cat, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart}

test dtypemethod-1.7 {can't delegate local typemethod: order 1} -body {
    type dog {
        typemethod foo {} {}
        delegate typemethod foo to bar
    }
} -returnCodes {
3318
3319
3320
3321
3322
3323
3324
3325



















3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
    snit1
} -returnCodes {
    error
} -cleanup {
    dog destroy
} -result {bad option "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}

test dmethod-1.6a {delegating unknown method to existing component with error} -body {



















    type dog {
        constructor {args} {
            set stringhandler string
        }

        delegate method * to stringhandler
    }

    dog create spot
    spot foo bar
} -constraints {
    snit2
} -returnCodes {
    error
} -cleanup {
    dog destroy
} -result {unknown or ambiguous subcommand "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart}

test dmethod-1.7 {can't delegate local method: order 1} -body {
    type cat {
        method foo {} {}
        delegate method foo to hull
    }
} -returnCodes {







|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>











|




|







3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
    snit1
} -returnCodes {
    error
} -cleanup {
    dog destroy
} -result {bad option "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart}

test dmethod-1.6a.0 {delegating unknown method to existing component with error} -body {
    type dog {
        constructor {args} {
            set stringhandler string
        }

        delegate method * to stringhandler
    }

    dog create spot
    spot foo bar
} -constraints {
    snit2 tcl8.5minus
} -returnCodes {
    error
} -cleanup {
    dog destroy
} -result {unknown or ambiguous subcommand "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart}

test dmethod-1.6a.1 {delegating unknown method to existing component with error} -body {
    type dog {
        constructor {args} {
            set stringhandler string
        }

        delegate method * to stringhandler
    }

    dog create spot
    spot foo bar
} -constraints {
    snit2 tcl8.6plus
} -returnCodes {
    error
} -cleanup {
    dog destroy
} -result {unknown or ambiguous subcommand "foo": must be bytelength, cat, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart}

test dmethod-1.7 {can't delegate local method: order 1} -body {
    type cat {
        method foo {} {}
        delegate method foo to hull
    }
} -returnCodes {

Changes to modules/struct/pkgIndex.tcl.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if {![package vsatisfies [package provide Tcl] 8.2]} {return}
package ifneeded struct            2.1   [list source [file join $dir struct.tcl]]
package ifneeded struct            1.4   [list source [file join $dir struct1.tcl]]

package ifneeded struct::queue     1.4.5 [list source [file join $dir queue.tcl]]
package ifneeded struct::stack     1.5.3 [list source [file join $dir stack.tcl]]
package ifneeded struct::tree      2.1.2 [list source [file join $dir tree.tcl]]
package ifneeded struct::matrix    2.0.3 [list source [file join $dir matrix.tcl]]
package ifneeded struct::pool      1.2.2 [list source [file join $dir pool.tcl]]
package ifneeded struct::record    1.2.1 [list source [file join $dir record.tcl]]
package ifneeded struct::set       2.2.3 [list source [file join $dir sets.tcl]]
package ifneeded struct::disjointset 1.0 [list source [file join $dir disjointset.tcl]]
package ifneeded struct::prioqueue 1.4   [list source [file join $dir prioqueue.tcl]]
package ifneeded struct::skiplist  1.3   [list source [file join $dir skiplist.tcl]]

package ifneeded struct::graph     1.2.1 [list source [file join $dir graph1.tcl]]








|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if {![package vsatisfies [package provide Tcl] 8.2]} {return}
package ifneeded struct            2.1   [list source [file join $dir struct.tcl]]
package ifneeded struct            1.4   [list source [file join $dir struct1.tcl]]

package ifneeded struct::queue     1.4.5 [list source [file join $dir queue.tcl]]
package ifneeded struct::stack     1.5.3 [list source [file join $dir stack.tcl]]
package ifneeded struct::tree      2.1.2 [list source [file join $dir tree.tcl]]
package ifneeded struct::matrix    2.0.3 [list source [file join $dir matrix.tcl]]
package ifneeded struct::pool      1.2.3 [list source [file join $dir pool.tcl]]
package ifneeded struct::record    1.2.1 [list source [file join $dir record.tcl]]
package ifneeded struct::set       2.2.3 [list source [file join $dir sets.tcl]]
package ifneeded struct::disjointset 1.0 [list source [file join $dir disjointset.tcl]]
package ifneeded struct::prioqueue 1.4   [list source [file join $dir prioqueue.tcl]]
package ifneeded struct::skiplist  1.3   [list source [file join $dir skiplist.tcl]]

package ifneeded struct::graph     1.2.1 [list source [file join $dir graph1.tcl]]

Changes to modules/struct/pool.man.

1
2
3
4
5
6
7
8
9
[comment {-*- tcl -*-}]
[vset VERSION 1.2.2]
[manpage_begin struct::pool n [vset VERSION]]
[keywords {discrete items}]
[keywords finite]
[keywords pool]
[keywords struct]
[copyright {2002, Erik Leunissen <[email protected]>}]
[moddesc   {Tcl Data Structures}]

|







1
2
3
4
5
6
7
8
9
[comment {-*- tcl -*-}]
[vset VERSION 1.2.3]
[manpage_begin struct::pool n [vset VERSION]]
[keywords {discrete items}]
[keywords finite]
[keywords pool]
[keywords struct]
[copyright {2002, Erik Leunissen <[email protected]>}]
[moddesc   {Tcl Data Structures}]

Changes to modules/struct/pool.tcl.

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
	WRONG_NARGS            "wrong#args"
    }
    
    namespace export pool
}

# A small helper routine to generate structured errors



proc ::struct::pool::Error {error args} {
    variable Errors
    return -code error -level 1 \
	-errorcode [list STRUCT POOL $error {*}$args] \
	[format $Errors($error) {*}$args]











}

# A small helper routine to check list membership
proc ::struct::pool::lmember {list element} {
    if { [lsearch -exact $list $element] >= 0 } {
        return 1
    } else  {
        return 0
    }
}


# General note
# ============
#
# All procedures below use the following method to reference
# a particular pool-object:
#







>
>
>
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>










<







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
86
87
88
89

90
91
92
93
94
95
96
	WRONG_NARGS            "wrong#args"
    }
    
    namespace export pool
}

# A small helper routine to generate structured errors

if {[package vsatisfies [package present Tcl] 8.5]} {
    # Tcl 8.5+, have expansion operator and syntax. And option -level.
    proc ::struct::pool::Error {error args} {
	variable Errors
	return -code error -level 1 \
	    -errorcode [list STRUCT POOL $error {*}$args] \
	    [format $Errors($error) {*}$args]
    }
} else {
    # Tcl 8.4. No expansion operator available. Nor -level.
    # Construct the pieces explicitly, via linsert/eval hop&dance.
    proc ::struct::pool::Error {error args} {
	variable Errors
	lappend code STRUCT POOL $error
	eval [linsert $args 0 lappend code]
	set msg [eval [linsert $args 0 format $Errors($error)]]
	return -code error -errorcode $code $msg
    }
}

# A small helper routine to check list membership
proc ::struct::pool::lmember {list element} {
    if { [lsearch -exact $list $element] >= 0 } {
        return 1
    } else  {
        return 0
    }
}


# General note
# ============
#
# All procedures below use the following method to reference
# a particular pool-object:
#
695
696
697
698
699
700
701
702
## Ready

namespace eval ::struct {
    # Get 'pool::pool' into the general structure namespace.
    namespace import -force pool::pool
    namespace export pool
}
package provide struct::pool 1.2.2







|
708
709
710
711
712
713
714
715
## Ready

namespace eval ::struct {
    # Get 'pool::pool' into the general structure namespace.
    namespace import -force pool::pool
    namespace export pool
}
package provide struct::pool 1.2.3

Changes to modules/struct/sets.test.

82
83
84
85
86
87
88
89





90
91
92
93
94
95
96

		proc Nothing {} {
		    return [tcltest::wrongNumArgs {::struct::set} {cmd ?arg ...?} 0]
		}
	    }
	}
	tcl {
	    if {[package vsatisfies [package present Tcl] 8.5]} {





		# In 8.5 head the alias itself is reported, not what it
		# resolved to.
		proc Nothing {} {
		    return [tcltest::wrongNumArgs setop {cmd args} 0]
		}
	    } else {
		proc Nothing {} {







|
>
>
>
>
>







82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101

		proc Nothing {} {
		    return [tcltest::wrongNumArgs {::struct::set} {cmd ?arg ...?} 0]
		}
	    }
	}
	tcl {
	    if {[package vsatisfies [package present Tcl] 8.6]} {
		# In 8.6 head Tcl again reports what the alias resolved to
		proc Nothing {} {
		    return [tcltest::wrongNumArgs {::struct::set} {cmd args} 0]
		}
	    } elseif {[package vsatisfies [package present Tcl] 8.5]} {
		# In 8.5 head the alias itself is reported, not what it
		# resolved to.
		proc Nothing {} {
		    return [tcltest::wrongNumArgs setop {cmd args} 0]
		}
	    } else {
		proc Nothing {} {

Changes to modules/uev/uevent.test.

348
349
350
351
352
353
354













355
356
357
358
359
360
361
# -------------------------------------------------------------------------

proc WATCHE {a t e} {
    global  res
    lappend res $a $t $e
    return
}














test uevent-9.0 {watch event add, wrong#args, not enough} {
    catch {
	::uevent::watch::event::add
    } msg
    set msg
} {wrong # args: should be "::uevent::watch::event::add tpattern epattern cmdprefix"}







>
>
>
>
>
>
>
>
>
>
>
>
>







348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
# -------------------------------------------------------------------------

proc WATCHE {a t e} {
    global  res
    lappend res $a $t $e
    return
}
proc SORTE {} {
    global res
    set tmp {}
    foreach {a t e} $res {
	lappend tmp [list $a $t $e]
    }
    set res {}
    foreach item [lsort -dict $tmp] {
	foreach {a t e} $item break
	lappend res $a $t $e
    }
    return $res
}

test uevent-9.0 {watch event add, wrong#args, not enough} {
    catch {
	::uevent::watch::event::add
    } msg
    set msg
} {wrong # args: should be "::uevent::watch::event::add tpattern epattern cmdprefix"}
443
444
445
446
447
448
449

450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
test uevent-10.3 {watch events, watch after bind, glob} {
    set res {}
    set t1 [::uevent::bind TAGX E FOO]
    set t2 [::uevent::bind TAG  E FOO]
    set t3 [::uevent::bind TAGX EX FOO]
    set t4 [::uevent::bind TAG  EX FOO]
    set tw [::uevent::watch::event::add TAG* E* WATCHE]

    ::uevent::unbind $t1
    ::uevent::unbind $t2
    ::uevent::unbind $t3
    ::uevent::unbind $t4
    ::uevent::watch::event::remove $tw
    set res
} {bound TAG EX bound TAGX EX bound TAG E bound TAGX E unbound TAGX E unbound TAG E unbound TAGX EX unbound TAG EX}

# -------------------------------------------------------------------------
rename EVENT  {}
rename EVENT2 {}
rename WATCHT {}
rename WATCHE {}
catch {unset res}
testsuiteCleanup







>






|








456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
test uevent-10.3 {watch events, watch after bind, glob} {
    set res {}
    set t1 [::uevent::bind TAGX E FOO]
    set t2 [::uevent::bind TAG  E FOO]
    set t3 [::uevent::bind TAGX EX FOO]
    set t4 [::uevent::bind TAG  EX FOO]
    set tw [::uevent::watch::event::add TAG* E* WATCHE]
    SORTE ;# ensure a canonical order
    ::uevent::unbind $t1
    ::uevent::unbind $t2
    ::uevent::unbind $t3
    ::uevent::unbind $t4
    ::uevent::watch::event::remove $tw
    set res
} {bound TAG E bound TAG EX bound TAGX E bound TAGX EX unbound TAGX E unbound TAG E unbound TAGX EX unbound TAG EX}

# -------------------------------------------------------------------------
rename EVENT  {}
rename EVENT2 {}
rename WATCHT {}
rename WATCHE {}
catch {unset res}
testsuiteCleanup

Changes to support/devel/sak/doc/kwic.txt.

549
550
551
552
553
554
555


556
557
558
559
560
561
562
[manpage modules/crc/sum.man                        sum]
[manpage modules/virtchannel_transform/vt_crc32.man tcl::transform::crc32]
[key {credit card}]
[manpage modules/valtype/cc_amex.man       valtype::creditcard::amex]
[manpage modules/valtype/cc_discover.man   valtype::creditcard::discover]
[manpage modules/valtype/cc_mastercard.man valtype::creditcard::mastercard]
[manpage modules/valtype/cc_visa.man       valtype::creditcard::visa]


[key cryptography]
[manpage modules/blowfish/blowfish.man blowfish]
[key CSS]
[manpage modules/doctools2base/html_cssdefaults.man doctools::html::cssdefaults]
[key csv]
[manpage modules/bench/bench_read.man bench::in]
[manpage modules/bench/bench_wcsv.man bench::out::csv]







>
>







549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
[manpage modules/crc/sum.man                        sum]
[manpage modules/virtchannel_transform/vt_crc32.man tcl::transform::crc32]
[key {credit card}]
[manpage modules/valtype/cc_amex.man       valtype::creditcard::amex]
[manpage modules/valtype/cc_discover.man   valtype::creditcard::discover]
[manpage modules/valtype/cc_mastercard.man valtype::creditcard::mastercard]
[manpage modules/valtype/cc_visa.man       valtype::creditcard::visa]
[key cron]
[manpage modules/cron/cron.man cron]
[key cryptography]
[manpage modules/blowfish/blowfish.man blowfish]
[key CSS]
[manpage modules/doctools2base/html_cssdefaults.man doctools::html::cssdefaults]
[key csv]
[manpage modules/bench/bench_read.man bench::in]
[manpage modules/bench/bench_wcsv.man bench::out::csv]
1996
1997
1998
1999
2000
2001
2002


2003
2004
2005
2006
2007
2008
2009
[key net]
[manpage modules/ftp/ftp.man             ftp]
[manpage modules/ftp/ftp_geturl.man      ftp::geturl]
[manpage modules/imap4/imap4.man         imap4]
[manpage modules/mime/mime.man           mime]
[manpage modules/mime/smtp.man           smtp]
[manpage modules/websocket/websocket.man websocket]


[key network]
[manpage modules/pop3d/pop3d.man      pop3d]
[manpage modules/pop3d/pop3d_dbox.man pop3d::dbox]
[manpage modules/pop3d/pop3d_udb.man  pop3d::udb]
[key news]
[manpage modules/nntp/nntp.man nntp]
[manpage modules/uri/uri.man   uri]







>
>







1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
[key net]
[manpage modules/ftp/ftp.man             ftp]
[manpage modules/ftp/ftp_geturl.man      ftp::geturl]
[manpage modules/imap4/imap4.man         imap4]
[manpage modules/mime/mime.man           mime]
[manpage modules/mime/smtp.man           smtp]
[manpage modules/websocket/websocket.man websocket]
[key nettool]
[manpage modules/nettool/nettool.man nettool]
[key network]
[manpage modules/pop3d/pop3d.man      pop3d]
[manpage modules/pop3d/pop3d_dbox.man pop3d::dbox]
[manpage modules/pop3d/pop3d_udb.man  pop3d::udb]
[key news]
[manpage modules/nntp/nntp.man nntp]
[manpage modules/uri/uri.man   uri]
2064
2065
2066
2067
2068
2069
2070




2071
2072
2073
2074
2075
2076
2077
[manpage modules/snit/snit.man       snit]
[manpage modules/snit/snitfaq.man    snitfaq]
[manpage modules/stooop/stooop.man   stooop]
[manpage modules/stooop/switched.man switched]
[key observer]
[manpage modules/hook/hook.man                     hook]
[manpage modules/virtchannel_transform/observe.man tcl::transform::observe]




[key on-idle]
[manpage modules/uev/uevent_onidle.man uevent::onidle]
[key {one time pad}]
[manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp]
[key optimization]
[manpage modules/math/optimize.man        math::optimize]
[manpage modules/simulation/annealing.man simulation::annealing]







>
>
>
>







2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
[manpage modules/snit/snit.man       snit]
[manpage modules/snit/snitfaq.man    snitfaq]
[manpage modules/stooop/stooop.man   stooop]
[manpage modules/stooop/switched.man switched]
[key observer]
[manpage modules/hook/hook.man                     hook]
[manpage modules/virtchannel_transform/observe.man tcl::transform::observe]
[key odie]
[manpage modules/cron/cron.man             cron]
[manpage modules/nettool/nettool.man       nettool]
[manpage modules/processman/processman.man processman]
[key on-idle]
[manpage modules/uev/uevent_onidle.man uevent::onidle]
[key {one time pad}]
[manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp]
[key optimization]
[manpage modules/math/optimize.man        math::optimize]
[manpage modules/simulation/annealing.man simulation::annealing]
2417
2418
2419
2420
2421
2422
2423


2424
2425
2426
2427
2428
2429
2430
[manpage modules/lambda/lambda.man lambda]
[key procedure]
[manpage modules/interp/deleg_proc.man        deleg_proc]
[manpage modules/tepam/tepam_introduction.man tepam]
[manpage modules/tepam/tepam_procedure.man    tepam::procedure]
[key {procedure documentation}]
[manpage modules/tepam/tepam_doc_gen.man tepam::doc_gen]


[key producer]
[manpage modules/hook/hook.man hook]
[key profile]
[manpage modules/profiler/profiler.man profiler]
[key projection]
[manpage modules/mapproj/mapproj.man mapproj]
[key prospero]







>
>







2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
[manpage modules/lambda/lambda.man lambda]
[key procedure]
[manpage modules/interp/deleg_proc.man        deleg_proc]
[manpage modules/tepam/tepam_introduction.man tepam]
[manpage modules/tepam/tepam_procedure.man    tepam::procedure]
[key {procedure documentation}]
[manpage modules/tepam/tepam_doc_gen.man tepam::doc_gen]
[key processman]
[manpage modules/processman/processman.man processman]
[key producer]
[manpage modules/hook/hook.man hook]
[key profile]
[manpage modules/profiler/profiler.man profiler]
[key projection]
[manpage modules/mapproj/mapproj.man mapproj]
[key prospero]

Changes to support/devel/sak/doc/manpages.txt.

36
37
38
39
40
41
42

43
44
45
46
47
48
49
modules/coroutine/coro_auto.man
modules/coroutine/tcllib_coroutine.man
modules/counter/counter.man
modules/crc/cksum.man
modules/crc/crc16.man
modules/crc/crc32.man
modules/crc/sum.man

modules/csv/csv.man
modules/debug/debug.man
modules/debug/debug_caller.man
modules/debug/debug_heartbeat.man
modules/debug/debug_timestamp.man
modules/des/des.man
modules/des/tcldes.man







>







36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
modules/coroutine/coro_auto.man
modules/coroutine/tcllib_coroutine.man
modules/counter/counter.man
modules/crc/cksum.man
modules/crc/crc16.man
modules/crc/crc32.man
modules/crc/sum.man
modules/cron/cron.man
modules/csv/csv.man
modules/debug/debug.man
modules/debug/debug_caller.man
modules/debug/debug_heartbeat.man
modules/debug/debug_timestamp.man
modules/des/des.man
modules/des/tcldes.man
202
203
204
205
206
207
208

209
210
211
212
213
214
215
modules/md5/md5.man
modules/md5crypt/md5crypt.man
modules/mime/mime.man
modules/mime/smtp.man
modules/multiplexer/multiplexer.man
modules/namespacex/namespacex.man
modules/ncgi/ncgi.man

modules/nmea/nmea.man
modules/nns/nns_auto.man
modules/nns/nns_client.man
modules/nns/nns_common.man
modules/nns/nns_intro.man
modules/nns/nns_protocol.man
modules/nns/nns_server.man







>







203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
modules/md5/md5.man
modules/md5crypt/md5crypt.man
modules/mime/mime.man
modules/mime/smtp.man
modules/multiplexer/multiplexer.man
modules/namespacex/namespacex.man
modules/ncgi/ncgi.man
modules/nettool/nettool.man
modules/nmea/nmea.man
modules/nns/nns_auto.man
modules/nns/nns_client.man
modules/nns/nns_common.man
modules/nns/nns_intro.man
modules/nns/nns_protocol.man
modules/nns/nns_server.man
228
229
230
231
232
233
234

235
236
237
238
239
240
241
modules/pki/pki.man
modules/pluginmgr/pluginmgr.man
modules/png/png.man
modules/pop3/pop3.man
modules/pop3d/pop3d.man
modules/pop3d/pop3d_dbox.man
modules/pop3d/pop3d_udb.man

modules/profiler/profiler.man
modules/pt/pt_astree.man
modules/pt/pt_cparam_config_critcl.man
modules/pt/pt_cparam_config_tea.man
modules/pt/pt_from_api.man
modules/pt/pt_introduction.man
modules/pt/pt_json_language.man







>







230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
modules/pki/pki.man
modules/pluginmgr/pluginmgr.man
modules/png/png.man
modules/pop3/pop3.man
modules/pop3d/pop3d.man
modules/pop3d/pop3d_dbox.man
modules/pop3d/pop3d_udb.man
modules/processman/processman.man
modules/profiler/profiler.man
modules/pt/pt_astree.man
modules/pt/pt_cparam_config_critcl.man
modules/pt/pt_cparam_config_tea.man
modules/pt/pt_from_api.man
modules/pt/pt_introduction.man
modules/pt/pt_json_language.man

Changes to support/devel/sak/doc/toc.txt.

347
348
349
350
351
352
353





354
355
356
357
358
359
360
[item modules/stooop/stooop.man           stooop                    {Object oriented extension.}]
[item modules/stooop/switched.man         switched                  {switch/option management.}]
[item modules/tie/tie.man                 tie                       {Array persistence}]
[item modules/tie/tie_std.man             tie                       {Array persistence, standard data sources}]
[item modules/uev/uevent.man              uevent                    {User events}]
[item modules/wip/wip.man                 wip                       {Word Interpreter}]
[division_end]





[division_start {Terminal control}]
[item modules/term/term.man         term                     {General terminal control}]
[item modules/term/ansi_code.man    term::ansi::code         {Helper for control sequences}]
[item modules/term/ansi_cattr.man   term::ansi::code::attr   {ANSI attribute sequences}]
[item modules/term/ansi_cctrl.man   term::ansi::code::ctrl   {ANSI control sequences}]
[item modules/term/ansi_cmacros.man term::ansi::code::macros {Macro sequences}]
[item modules/term/ansi_ctrlu.man   term::ansi::ctrl::unix   {Control operations and queries}]







>
>
>
>
>







347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
[item modules/stooop/stooop.man           stooop                    {Object oriented extension.}]
[item modules/stooop/switched.man         switched                  {switch/option management.}]
[item modules/tie/tie.man                 tie                       {Array persistence}]
[item modules/tie/tie_std.man             tie                       {Array persistence, standard data sources}]
[item modules/uev/uevent.man              uevent                    {User events}]
[item modules/wip/wip.man                 wip                       {Word Interpreter}]
[division_end]
[division_start System]
[item modules/cron/cron.man             cron       {Tool for automating the period callback of commands}]
[item modules/nettool/nettool.man       nettool    {Tools for networked applications}]
[item modules/processman/processman.man processman {Tool for automating the period callback of commands}]
[division_end]
[division_start {Terminal control}]
[item modules/term/term.man         term                     {General terminal control}]
[item modules/term/ansi_code.man    term::ansi::code         {Helper for control sequences}]
[item modules/term/ansi_cattr.man   term::ansi::code::attr   {ANSI attribute sequences}]
[item modules/term/ansi_cctrl.man   term::ansi::code::ctrl   {ANSI control sequences}]
[item modules/term/ansi_cmacros.man term::ansi::code::macros {Macro sequences}]
[item modules/term/ansi_ctrlu.man   term::ansi::ctrl::unix   {Control operations and queries}]
538
539
540
541
542
543
544



545
546
547
548
549
550
551
[division_end]
[division_start crc]
[item modules/crc/cksum.man cksum {Calculate a cksum(1) compatible checksum}]
[item modules/crc/crc16.man crc16 {Perform a 16bit Cyclic Redundancy Check}]
[item modules/crc/crc32.man crc32 {Perform a 32bit Cyclic Redundancy Check}]
[item modules/crc/sum.man   sum   {Calculate a sum(1) compatible checksum}]
[division_end]



[division_start csv]
[item modules/csv/csv.man csv {Procedures to handle CSV data.}]
[division_end]
[division_start debug]
[item modules/debug/debug.man           debug            {debug narrative - core}]
[item modules/debug/debug_caller.man    debug::caller    {debug narrative - caller}]
[item modules/debug/debug_heartbeat.man debug::heartbeat {debug narrative - heartbeat}]







>
>
>







543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
[division_end]
[division_start crc]
[item modules/crc/cksum.man cksum {Calculate a cksum(1) compatible checksum}]
[item modules/crc/crc16.man crc16 {Perform a 16bit Cyclic Redundancy Check}]
[item modules/crc/crc32.man crc32 {Perform a 32bit Cyclic Redundancy Check}]
[item modules/crc/sum.man   sum   {Calculate a sum(1) compatible checksum}]
[division_end]
[division_start cron]
[item modules/cron/cron.man cron {Tool for automating the period callback of commands}]
[division_end]
[division_start csv]
[item modules/csv/csv.man csv {Procedures to handle CSV data.}]
[division_end]
[division_start debug]
[item modules/debug/debug.man           debug            {debug narrative - core}]
[item modules/debug/debug_caller.man    debug::caller    {debug narrative - caller}]
[item modules/debug/debug_heartbeat.man debug::heartbeat {debug narrative - heartbeat}]
796
797
798
799
800
801
802



803
804
805
806
807
808
809
[division_end]
[division_start namespacex]
[item modules/namespacex/namespacex.man namespacex {Namespace utility commands}]
[division_end]
[division_start ncgi]
[item modules/ncgi/ncgi.man ncgi {Procedures to manipulate CGI values.}]
[division_end]



[division_start nmea]
[item modules/nmea/nmea.man nmea {Process NMEA data}]
[division_end]
[division_start nns]
[item modules/nns/nns_client.man   nameserv           {Name service facility, Client}]
[item modules/nns/nns_auto.man     nameserv::auto     {Name service facility, Client Extension}]
[item modules/nns/nns_common.man   nameserv::common   {Name service facility, shared definitions}]







>
>
>







804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
[division_end]
[division_start namespacex]
[item modules/namespacex/namespacex.man namespacex {Namespace utility commands}]
[division_end]
[division_start ncgi]
[item modules/ncgi/ncgi.man ncgi {Procedures to manipulate CGI values.}]
[division_end]
[division_start nettool]
[item modules/nettool/nettool.man nettool {Tools for networked applications}]
[division_end]
[division_start nmea]
[item modules/nmea/nmea.man nmea {Process NMEA data}]
[division_end]
[division_start nns]
[item modules/nns/nns_client.man   nameserv           {Name service facility, Client}]
[item modules/nns/nns_auto.man     nameserv::auto     {Name service facility, Client Extension}]
[item modules/nns/nns_common.man   nameserv::common   {Name service facility, shared definitions}]
848
849
850
851
852
853
854



855
856
857
858
859
860
861
[item modules/pop3/pop3.man pop3 {Tcl client for POP3 email protocol}]
[division_end]
[division_start pop3d]
[item modules/pop3d/pop3d.man      pop3d       {Tcl POP3 server implementation}]
[item modules/pop3d/pop3d_dbox.man pop3d::dbox {Simple mailbox database for pop3d}]
[item modules/pop3d/pop3d_udb.man  pop3d::udb  {Simple user database for pop3d}]
[division_end]



[division_start profiler]
[item modules/profiler/profiler.man profiler {Tcl source code profiler}]
[division_end]
[division_start pt]
[item modules/pt/pt_astree.man                pt::ast                            {Abstract Syntax Tree Serialization}]
[item modules/pt/pt_cparam_config_critcl.man  pt::cparam::configuration::critcl  {C/PARAM, Canned configuration, Critcl}]
[item modules/pt/pt_cparam_config_tea.man     pt::cparam::configuration::tea     {C/PARAM, Canned configuration, TEA}]







>
>
>







859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
[item modules/pop3/pop3.man pop3 {Tcl client for POP3 email protocol}]
[division_end]
[division_start pop3d]
[item modules/pop3d/pop3d.man      pop3d       {Tcl POP3 server implementation}]
[item modules/pop3d/pop3d_dbox.man pop3d::dbox {Simple mailbox database for pop3d}]
[item modules/pop3d/pop3d_udb.man  pop3d::udb  {Simple user database for pop3d}]
[division_end]
[division_start processman]
[item modules/processman/processman.man processman {Tool for automating the period callback of commands}]
[division_end]
[division_start profiler]
[item modules/profiler/profiler.man profiler {Tcl source code profiler}]
[division_end]
[division_start pt]
[item modules/pt/pt_astree.man                pt::ast                            {Abstract Syntax Tree Serialization}]
[item modules/pt/pt_cparam_config_critcl.man  pt::cparam::configuration::critcl  {C/PARAM, Canned configuration, Critcl}]
[item modules/pt/pt_cparam_config_tea.man     pt::cparam::configuration::tea     {C/PARAM, Canned configuration, TEA}]

Changes to support/devel/sak/doc/toc_cats.txt.

347
348
349
350
351
352
353





354
355
356
357
358
359
360
[item modules/stooop/stooop.man           stooop                    {Object oriented extension.}]
[item modules/stooop/switched.man         switched                  {switch/option management.}]
[item modules/tie/tie.man                 tie                       {Array persistence}]
[item modules/tie/tie_std.man             tie                       {Array persistence, standard data sources}]
[item modules/uev/uevent.man              uevent                    {User events}]
[item modules/wip/wip.man                 wip                       {Word Interpreter}]
[division_end]





[division_start {Terminal control}]
[item modules/term/term.man         term                     {General terminal control}]
[item modules/term/ansi_code.man    term::ansi::code         {Helper for control sequences}]
[item modules/term/ansi_cattr.man   term::ansi::code::attr   {ANSI attribute sequences}]
[item modules/term/ansi_cctrl.man   term::ansi::code::ctrl   {ANSI control sequences}]
[item modules/term/ansi_cmacros.man term::ansi::code::macros {Macro sequences}]
[item modules/term/ansi_ctrlu.man   term::ansi::ctrl::unix   {Control operations and queries}]







>
>
>
>
>







347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
[item modules/stooop/stooop.man           stooop                    {Object oriented extension.}]
[item modules/stooop/switched.man         switched                  {switch/option management.}]
[item modules/tie/tie.man                 tie                       {Array persistence}]
[item modules/tie/tie_std.man             tie                       {Array persistence, standard data sources}]
[item modules/uev/uevent.man              uevent                    {User events}]
[item modules/wip/wip.man                 wip                       {Word Interpreter}]
[division_end]
[division_start System]
[item modules/cron/cron.man             cron       {Tool for automating the period callback of commands}]
[item modules/nettool/nettool.man       nettool    {Tools for networked applications}]
[item modules/processman/processman.man processman {Tool for automating the period callback of commands}]
[division_end]
[division_start {Terminal control}]
[item modules/term/term.man         term                     {General terminal control}]
[item modules/term/ansi_code.man    term::ansi::code         {Helper for control sequences}]
[item modules/term/ansi_cattr.man   term::ansi::code::attr   {ANSI attribute sequences}]
[item modules/term/ansi_cctrl.man   term::ansi::code::ctrl   {ANSI control sequences}]
[item modules/term/ansi_cmacros.man term::ansi::code::macros {Macro sequences}]
[item modules/term/ansi_ctrlu.man   term::ansi::ctrl::unix   {Control operations and queries}]

Changes to support/devel/sak/doc/toc_mods.txt.

65
66
67
68
69
70
71



72
73
74
75
76
77
78
[division_end]
[division_start crc]
[item modules/crc/cksum.man cksum {Calculate a cksum(1) compatible checksum}]
[item modules/crc/crc16.man crc16 {Perform a 16bit Cyclic Redundancy Check}]
[item modules/crc/crc32.man crc32 {Perform a 32bit Cyclic Redundancy Check}]
[item modules/crc/sum.man   sum   {Calculate a sum(1) compatible checksum}]
[division_end]



[division_start csv]
[item modules/csv/csv.man csv {Procedures to handle CSV data.}]
[division_end]
[division_start debug]
[item modules/debug/debug.man           debug            {debug narrative - core}]
[item modules/debug/debug_caller.man    debug::caller    {debug narrative - caller}]
[item modules/debug/debug_heartbeat.man debug::heartbeat {debug narrative - heartbeat}]







>
>
>







65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
[division_end]
[division_start crc]
[item modules/crc/cksum.man cksum {Calculate a cksum(1) compatible checksum}]
[item modules/crc/crc16.man crc16 {Perform a 16bit Cyclic Redundancy Check}]
[item modules/crc/crc32.man crc32 {Perform a 32bit Cyclic Redundancy Check}]
[item modules/crc/sum.man   sum   {Calculate a sum(1) compatible checksum}]
[division_end]
[division_start cron]
[item modules/cron/cron.man cron {Tool for automating the period callback of commands}]
[division_end]
[division_start csv]
[item modules/csv/csv.man csv {Procedures to handle CSV data.}]
[division_end]
[division_start debug]
[item modules/debug/debug.man           debug            {debug narrative - core}]
[item modules/debug/debug_caller.man    debug::caller    {debug narrative - caller}]
[item modules/debug/debug_heartbeat.man debug::heartbeat {debug narrative - heartbeat}]
323
324
325
326
327
328
329



330
331
332
333
334
335
336
[division_end]
[division_start namespacex]
[item modules/namespacex/namespacex.man namespacex {Namespace utility commands}]
[division_end]
[division_start ncgi]
[item modules/ncgi/ncgi.man ncgi {Procedures to manipulate CGI values.}]
[division_end]



[division_start nmea]
[item modules/nmea/nmea.man nmea {Process NMEA data}]
[division_end]
[division_start nns]
[item modules/nns/nns_client.man   nameserv           {Name service facility, Client}]
[item modules/nns/nns_auto.man     nameserv::auto     {Name service facility, Client Extension}]
[item modules/nns/nns_common.man   nameserv::common   {Name service facility, shared definitions}]







>
>
>







326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
[division_end]
[division_start namespacex]
[item modules/namespacex/namespacex.man namespacex {Namespace utility commands}]
[division_end]
[division_start ncgi]
[item modules/ncgi/ncgi.man ncgi {Procedures to manipulate CGI values.}]
[division_end]
[division_start nettool]
[item modules/nettool/nettool.man nettool {Tools for networked applications}]
[division_end]
[division_start nmea]
[item modules/nmea/nmea.man nmea {Process NMEA data}]
[division_end]
[division_start nns]
[item modules/nns/nns_client.man   nameserv           {Name service facility, Client}]
[item modules/nns/nns_auto.man     nameserv::auto     {Name service facility, Client Extension}]
[item modules/nns/nns_common.man   nameserv::common   {Name service facility, shared definitions}]
375
376
377
378
379
380
381



382
383
384
385
386
387
388
[item modules/pop3/pop3.man pop3 {Tcl client for POP3 email protocol}]
[division_end]
[division_start pop3d]
[item modules/pop3d/pop3d.man      pop3d       {Tcl POP3 server implementation}]
[item modules/pop3d/pop3d_dbox.man pop3d::dbox {Simple mailbox database for pop3d}]
[item modules/pop3d/pop3d_udb.man  pop3d::udb  {Simple user database for pop3d}]
[division_end]



[division_start profiler]
[item modules/profiler/profiler.man profiler {Tcl source code profiler}]
[division_end]
[division_start pt]
[item modules/pt/pt_astree.man                pt::ast                            {Abstract Syntax Tree Serialization}]
[item modules/pt/pt_cparam_config_critcl.man  pt::cparam::configuration::critcl  {C/PARAM, Canned configuration, Critcl}]
[item modules/pt/pt_cparam_config_tea.man     pt::cparam::configuration::tea     {C/PARAM, Canned configuration, TEA}]







>
>
>







381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
[item modules/pop3/pop3.man pop3 {Tcl client for POP3 email protocol}]
[division_end]
[division_start pop3d]
[item modules/pop3d/pop3d.man      pop3d       {Tcl POP3 server implementation}]
[item modules/pop3d/pop3d_dbox.man pop3d::dbox {Simple mailbox database for pop3d}]
[item modules/pop3d/pop3d_udb.man  pop3d::udb  {Simple user database for pop3d}]
[division_end]
[division_start processman]
[item modules/processman/processman.man processman {Tool for automating the period callback of commands}]
[division_end]
[division_start profiler]
[item modules/profiler/profiler.man profiler {Tcl source code profiler}]
[division_end]
[division_start pt]
[item modules/pt/pt_astree.man                pt::ast                            {Abstract Syntax Tree Serialization}]
[item modules/pt/pt_cparam_config_critcl.man  pt::cparam::configuration::critcl  {C/PARAM, Canned configuration, Critcl}]
[item modules/pt/pt_cparam_config_tea.man     pt::cparam::configuration::tea     {C/PARAM, Canned configuration, TEA}]

Changes to support/devel/sak/readme/readme.tcl.

26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    getpackage textutil::adjust textutil/adjust.tcl

    # Future: Consolidate with ... review ...
    # Determine which packages are potentially changed, from the set
    # of modules touched since the last release, as per the fossil
    # repository's commit log.

    set trunk     [sak::review::Leaf trunk]            ;# rid
    set release   [sak::review::YoungestOfTag release] ;# datetime

    sak::review::AllParentsAfter $trunk $release -> rid {
	sak::review::FileSet $rid -> path action {
	    lappend modifiedm [lindex [file split $path] 1]
	}
    }
    set modifiedm [lsort -unique $modifiedm]

    set issues {}







|
|

|







26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    getpackage textutil::adjust textutil/adjust.tcl

    # Future: Consolidate with ... review ...
    # Determine which packages are potentially changed, from the set
    # of modules touched since the last release, as per the fossil
    # repository's commit log.

    foreach {trunk   tuid} [sak::review::Leaf          trunk]   break ;# rid + uuid
    foreach {release ruid} [sak::review::YoungestOfTag release] break ;# datetime+uuid

    sak::review::AllParentsAfter $trunk $tuid $release $ruid -> rid uuid {
	sak::review::FileSet $rid -> path action {
	    lappend modifiedm [lindex [file split $path] 1]
	}
    }
    set modifiedm [lsort -unique $modifiedm]

    set issues {}

Changes to support/devel/sak/review/review.tcl.

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
# # ## ### ##### ######## ############# ##################### 
## Phase I. Determine which modules require a review.
## A derivative of the code in ::sak::readme.

proc ::sak::review::Scan {} {
    global distribution
    variable review


    Banner "Scan for modules and packages to review..."

    # Future: Consolidate with ... readme ...
    # Determine which packages are potentially changed and therefore
    # in need of review, from the set of modules touched since the
    # last release, as per the fossil repository's commit log.

    # list of modified modules.
    set modifiedm {}

    # database of commit message per changed module.

    array set cm {}



    set trunk     [Leaf trunk]            ;# rid




    set release   [YoungestOfTag release] ;# datetime
    AllParentsAfter $trunk $release -> rid {
	Next ; Progress " $rid"

	set d [Description $rid]
	Progress " D"






	FileSet $rid -> path action {
	    Progress .

	    set px [file split $path]
	    set themodule [lindex $px 1]
	    lappend modifiedm $themodule
	    lappend cm($themodule) $d

	    # ignore files in modules/
	    if {[llength $px] < 3} continue




	    lappend pt($themodule) [file join {*}[lrange $px 2 end]]
	}






    }

    Next

    # cleanup module list, may have duplicates
    set modifiedm [lsort -unique $modifiedm]








>











|
>


>
>
|
>
>
>
>
|
|




>
>
>
>
>











>
>
>
>


>
>
>
>
>
>







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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# # ## ### ##### ######## ############# ##################### 
## Phase I. Determine which modules require a review.
## A derivative of the code in ::sak::readme.

proc ::sak::review::Scan {} {
    global distribution
    variable review
    variable rm

    Banner "Scan for modules and packages to review..."

    # Future: Consolidate with ... readme ...
    # Determine which packages are potentially changed and therefore
    # in need of review, from the set of modules touched since the
    # last release, as per the fossil repository's commit log.

    # list of modified modules.
    set modifiedm {}

    # database of commit messages per changed module.
    # cm: module -> list(string)
    array set cm {}

    # pt: database of files per changed module.
    # module -> list(path)

    # rm: module -> list (revs); rev = uuid+desc+files (string)
    array set rm {}

    foreach {trunk   tuid} [Leaf          trunk]   break ;# rid + uuid
    foreach {release ruid} [YoungestOfTag release] break ;# datetime + uuid
    AllParentsAfter $trunk $tuid $release $ruid -> rid uuid {
	Next ; Progress " $rid"

	set d [Description $rid]
	Progress " D"

	# Determine file set, split by modules, then generate a package of
	# uuid, description and filtered files per modules touched.

	array set fs {}

	FileSet $rid -> path action {
	    Progress .

	    set px [file split $path]
	    set themodule [lindex $px 1]
	    lappend modifiedm $themodule
	    lappend cm($themodule) $d

	    # ignore files in modules/
	    if {[llength $px] < 3} continue

	    #puts $themodule||$rid||$action|$px|

	    lappend fs($themodule) [file join {*}[lrange $px 2 end]]
	    lappend pt($themodule) [file join {*}[lrange $px 2 end]]
	}

	foreach {m files} [array get fs] {
	    set str \[$uuid\]\n$d\n\n[join [lsort -dict $files] \n]
	    lappend rm($m) $str
	}
	unset fs
    }

    Next

    # cleanup module list, may have duplicates
    set modifiedm [lsort -unique $modifiedm]

152
153
154
155
156
157
158

159



160

161

162
163
164
165

166
167
168
169
170
171
172

    Close

    # Postprocessing phase, pull in all relevant commit messages of the module.

    foreach m [array names review] {
	# commit messages

	set     entries [lsort -unique $cm($m)]



	# and affected files

	lappend entries [join [lsort -dict [lsort -unique $pt($m)]] \n]


	set review($m) [list $review($m) [join $entries \n\n]]
    }


    set review() $np
    return
}

# see also readme
proc ::sak::review::Provided {m} {
    set result {}







>
|
>
>
>

>
|
>




>







175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202

    Close

    # Postprocessing phase, pull in all relevant commit messages of the module.

    foreach m [array names review] {
	# commit messages
	if {[info exists cm($m)]} {
	    set entries [lsort -unique $cm($m)]
	} else {
	    set entries {}
	}
	# and affected files
	if {[info exists pt($m)]} {
	    lappend entries [join [lsort -dict [lsort -unique $pt($m)]] \n]
	}

	set review($m) [list $review($m) [join $entries \n\n]]
    }

    # review: module -> list (notes, desc+files)
    set review() $np
    return
}

# see also readme
proc ::sak::review::Provided {m} {
    set result {}
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
    lappend map @rid@ $rid
    foreach line [split [string trim [F [string map $map {
	SELECT filename.name,
	       CASE WHEN nullif(mlink.pid,0) is null THEN 'added'
                    WHEN nullif(mlink.fid,0) is null THEN 'deleted'
                    ELSE                                  'edited'
	       END
	FROM   mlink, filename
	WHERE mlink.mid  = @rid@
	AND   mlink.fnid = filename.fnid
	ORDER BY filename.name;
    }]]] \n] {
	foreach {thepath theaction} [split $line |] break
	# ignore all changes not in modules
	if {![string match modules* $thepath]} continue







|







298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
    lappend map @rid@ $rid
    foreach line [split [string trim [F [string map $map {
	SELECT filename.name,
	       CASE WHEN nullif(mlink.pid,0) is null THEN 'added'
                    WHEN nullif(mlink.fid,0) is null THEN 'deleted'
                    ELSE                                  'edited'
	       END
	FROM  mlink, filename
	WHERE mlink.mid  = @rid@
	AND   mlink.fnid = filename.fnid
	ORDER BY filename.name;
    }]]] \n] {
	foreach {thepath theaction} [split $line |] break
	# ignore all changes not in modules
	if {![string match modules* $thepath]} continue
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306

307
308
309
310
311
312
313
314
315
316
317
318
319
320
321

322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337

338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378

379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399

400


401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418

419
420
421
422
423
424
425
426
427

428
429
430
431

432
433
434
435
436
437
438
	SELECT coalesce(event.ecomment,event.comment)
	FROM   event
	WHERE  event.objid = @rid@
	;
    }]]
}

proc ::sak::review::AllParentsAfter {rid cut _ rv script} {
    upvar 1 $rv therev

    array set rev {}
    set rev($rid) .
    lappend front $rid

    # Initial run, for the starting revision.
    set therev   $rid

    uplevel 1 $script

    # Standard iterative incremental transitive-closure. We have a
    # front of revisions whose parents we take, which become the new
    # front to follow, until no parents are delivered anymore due to
    # the cutoff condition (timestamp, only the revisions coming after
    # are accepted).

    while {1} {
	set new {}
	foreach cid $front {
	    foreach pid [split [Parents $cid $cut] \n] {
		foreach {pid uuid mtraw mtime} [split [string trim $pid |] |] break
		lappend new $pid $mtime $uuid


		if {$mtraw <= $cut} {
		    puts "Overshot: $rid $mtime $uuid"
		}

	    }
	}
	if {![llength $new]} break

	# record new parents, and make them the new starting points
	set front {}
	foreach {pid mtime uuid} $new {
	    if {[info exists rev($pid)]} continue
	    set rev($pid) .
	    lappend front $pid

	    set therev   $pid

	    uplevel 1 $script
	}
    }
}

proc ::sak::review::Parents {rid cut} {
    lappend map @rid@    $rid
    lappend map @cutoff@ $cut
    F [string map $map {
	SELECT pid, blob.uuid, event.mtime, datetime(event.mtime)
	FROM  plink, blob, event
	WHERE plink.cid   = @rid@
	AND   plink.pid = blob.rid
	AND   plink.pid = event.objid
	AND   event.mtime > @cutoff@
	;
    }]
}

proc ::sak::review::YoungestOfTag {tag} {
    lappend map @tag@ $tag
    puts stderr "last $tag = [F [string map $map {
	SELECT datetime (event.mtime)
	FROM   tag, tagxref, event
	WHERE tag.tagname     = 'sym-' || '@tag@'
	AND   tagxref.tagid   = tag.tagid
	AND   tagxref.tagtype > 0
	AND   tagxref.rid     = event.objid
	AND   event.type      = 'ci'
	ORDER BY event.mtime DESC
	LIMIT 1
	;
    }]]"
    F [string map $map {
	SELECT event.mtime
	FROM   tag, tagxref, event
	WHERE tag.tagname     = 'sym-' || '@tag@'
	AND   tagxref.tagid   = tag.tagid
	AND   tagxref.tagtype > 0
	AND   tagxref.rid     = event.objid
	AND   event.type      = 'ci'

	ORDER BY event.mtime DESC
	LIMIT 1
	;
    }]
}

proc ::sak::review::Leaf {branch} {
    lappend map @branch@ $branch
    F [string map $map {
	SELECT blob.rid
	FROM   leaf, blob, tag, tagxref
	WHERE blob.rid        = leaf.rid
	AND   tag.tagname     = 'sym-' || '@branch@'
	AND   tagxref.tagid   = tag.tagid
	AND   tagxref.tagtype > 0
	AND   tagxref.rid     = leaf.rid
	;
    }]
}

proc ::sak::review::F {script} {

    exec fossil sqlite3 << $script


}



# # ## ### ##### ######## ############# ##################### 
## Phase II. Interactively review the changes packages.

# Namespace variables
#
# review      : array, database of all modules, keyed by name
# nm          : number of modules
# modules     : list of module names, keys to --> review
# current     : index in -> modules, current module
# np          : number of packages in current module
# packages    : list of packages in current module
# currentp    : index in --> packages
# im          : 1+current  | indices for display
# ip          : 1+currentp |

# end         : array : module (name) --> index of last package
# stop        : repl exit flag
# map         : array : text -> module/package index
# commands    : proper commands
# allcommands : commands + namesof(map)
# 

proc ::sak::review::Review {} {
    variable review   ;# table of everything to review

    variable nm       ;# number of modules
    variable modules  ;# list of module names, sorted
    variable stop 0   ;# repl exit flag
    variable end      ;# last module/package index.


    variable navcommands
    variable allcommands ;# list of all commands, sorted
    variable commands    ;# list of proper commands, sorted
    variable map         ;# map from package names to module/package indices.
    variable prefix








|
|






|
>











|

|

>



<











|
>








|







|
















|
|
|





>



|




|
|







|



>
|
>
>


















>








|
>
|
|
|
|
>







321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356

357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
	SELECT coalesce(event.ecomment,event.comment)
	FROM   event
	WHERE  event.objid = @rid@
	;
    }]]
}

proc ::sak::review::AllParentsAfter {rid ruid cut cutuid _ rv uv script} {
    upvar 1 $rv therev $uv theuid

    array set rev {}
    set rev($rid) .
    lappend front $rid

    # Initial run, for the starting revision.
    set therev $rid
    set theuid $ruid
    uplevel 1 $script

    # Standard iterative incremental transitive-closure. We have a
    # front of revisions whose parents we take, which become the new
    # front to follow, until no parents are delivered anymore due to
    # the cutoff condition (timestamp, only the revisions coming after
    # are accepted).

    while {1} {
	set new {}
	foreach cid $front {
	    foreach pid [Parents $cid $cut] {
		foreach {pid uuid mtraw mtime} [split [string trim $pid |] |] break
		if {$uuid eq $cutuid} continue

		lappend new $pid $mtime $uuid
		if {$mtraw <= $cut} {
		    puts "Overshot: $rid $mtime $uuid"
		}

	    }
	}
	if {![llength $new]} break

	# record new parents, and make them the new starting points
	set front {}
	foreach {pid mtime uuid} $new {
	    if {[info exists rev($pid)]} continue
	    set rev($pid) .
	    lappend front $pid

	    set therev $pid
	    set theuid $uuid
	    uplevel 1 $script
	}
    }
}

proc ::sak::review::Parents {rid cut} {
    lappend map @rid@    $rid
    lappend map @cutoff@ $cut
    split [F [string map $map {
	SELECT pid, blob.uuid, event.mtime, datetime(event.mtime)
	FROM  plink, blob, event
	WHERE plink.cid   = @rid@
	AND   plink.pid = blob.rid
	AND   plink.pid = event.objid
	AND   event.mtime > @cutoff@
	;
    }]] \n
}

proc ::sak::review::YoungestOfTag {tag} {
    lappend map @tag@ $tag
    puts stderr "last $tag = [F [string map $map {
	SELECT datetime (event.mtime)
	FROM   tag, tagxref, event
	WHERE tag.tagname     = 'sym-' || '@tag@'
	AND   tagxref.tagid   = tag.tagid
	AND   tagxref.tagtype > 0
	AND   tagxref.rid     = event.objid
	AND   event.type      = 'ci'
	ORDER BY event.mtime DESC
	LIMIT 1
	;
    }]]"
    split [F [string map $map {
	SELECT event.mtime, blob.uuid
	FROM   tag, tagxref, event, blob
	WHERE tag.tagname     = 'sym-' || '@tag@'
	AND   tagxref.tagid   = tag.tagid
	AND   tagxref.tagtype > 0
	AND   tagxref.rid     = event.objid
	AND   event.type      = 'ci'
        AND   blob.rid        = event.objid
	ORDER BY event.mtime DESC
	LIMIT 1
	;
    }]] |
}

proc ::sak::review::Leaf {branch} {
    lappend map @branch@ $branch
    split [F [string map $map {
	SELECT blob.rid, blob.uuid
	FROM   leaf, blob, tag, tagxref
	WHERE blob.rid        = leaf.rid
	AND   tag.tagname     = 'sym-' || '@branch@'
	AND   tagxref.tagid   = tag.tagid
	AND   tagxref.tagtype > 0
	AND   tagxref.rid     = leaf.rid
	;
    }]] |
}

proc ::sak::review::F {script} {
    #puts |$script|
    set r [exec fossil sqlite3 << $script]
    #puts ($r)
    return $r
}



# # ## ### ##### ######## ############# ##################### 
## Phase II. Interactively review the changes packages.

# Namespace variables
#
# review      : array, database of all modules, keyed by name
# nm          : number of modules
# modules     : list of module names, keys to --> review
# current     : index in -> modules, current module
# np          : number of packages in current module
# packages    : list of packages in current module
# currentp    : index in --> packages
# im          : 1+current  | indices for display
# ip          : 1+currentp |
# ir          : 1+currentr |
# end         : array : module (name) --> index of last package
# stop        : repl exit flag
# map         : array : text -> module/package index
# commands    : proper commands
# allcommands : commands + namesof(map)
# 

proc ::sak::review::Review {} {
    variable review    ;# table of everything to review
    variable rm        ;# Alt structure, rev (desc, files) by module.
    variable nm        ;# number of modules
    variable modules   ;# list of module names, sorted
    variable stop 0    ;# repl exit flag
    variable end       ;# last module/package index.
    variable smode rev ;# standard display per revision.

    variable navcommands
    variable allcommands ;# list of all commands, sorted
    variable commands    ;# list of proper commands, sorted
    variable map         ;# map from package names to module/package indices.
    variable prefix

523
524
525
526
527
528
529

530

531

532

533









534

535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552







553






554
555
556
557
558
559
560
561
}

# # ## ### ##### ######## ############# ##################### 

proc ::sak::review::RefreshDisplay {} {
    variable m
    variable im

    variable nm

    variable clog

    variable what











    Banner "\[$im/$nm\] [=cya [string totitle $what]] [=green $m]"

    puts "| [join [split $clog \n] \n|]\n"
    return
}

proc ::sak::review::Exit {} {
    variable stop
    return  $stop
}

proc ::sak::review::Continued {buffer} {
    return 0
}

proc ::sak::review::Prompt {} {
    variable ip
    variable np
    variable name
    variable tags














    return "\[$ip/$np\] $name ($tags): "
}

proc ::sak::review::Complete {line} {
    variable allcommands
    if {$line eq {}} {
	return $allcommands
    } elseif {[llength $line] == 1} {







>

>

>

>

>
>
>
>
>
>
>
>
>
|
>
|

















>
>
>
>
>
>
>

>
>
>
>
>
>
|







562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
}

# # ## ### ##### ######## ############# ##################### 

proc ::sak::review::RefreshDisplay {} {
    variable m
    variable im
    variable ir
    variable nm
    variable nr
    variable clog
    variable rlog
    variable what
    variable smode

    if {$smode eq "rev"} {
	set text $rlog
    } else {
	set text $clog
    }

    if {$smode eq "rev"} {
	Banner "($ir/$nr) \[$im/$nm\] [=cya [string totitle $what]] [=green $m]"
    } else {
	Banner "\[$im/$nm\] [=cya [string totitle $what]] [=green $m]"
    }
    puts "| [join [split $text \n] "\n| "]\n"
    return
}

proc ::sak::review::Exit {} {
    variable stop
    return  $stop
}

proc ::sak::review::Continued {buffer} {
    return 0
}

proc ::sak::review::Prompt {} {
    variable ip
    variable np
    variable name
    variable tags
    variable smode
    variable im
    variable ir
    variable nm
    variable nr
    variable what
    variable m

    if {$smode eq "rev"} {
	append p "($ir/$nr) "
    }

    append p "\[$im/$nm\] [=green $m] [=cya [string totitle $what]] "
    append p "\[$ip/$np\] [=whi $name] ($tags): "
    return $p
}

proc ::sak::review::Complete {line} {
    variable allcommands
    if {$line eq {}} {
	return $allcommands
    } elseif {[llength $line] == 1} {
593
594
595
596
597
598
599

600
601
602


603
604

605
606

607
608
609
610
611
612
613
614
615

616
617

618
619
620
621
622










623
624
625
626
627
628
629
630
631

632
633
634
635
636
637
638
639
640





















































641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661

662
663
664










665
666
667
668
669
670
671
	return
    }
    eval C_$line
}

proc ::sak::review::Goto {loc {skip 0}} {
    variable review

    variable modules
    variable packages
    variable clog


    variable current
    variable currentp

    variable nm
    variable np

    variable at
    variable tags
    variable what
    variable name

    variable m
    variable p
    variable ip
    variable im


    foreach {current currentp} $loc break


    puts "Goto ($current/$currentp)"

    set m [lindex $modules $current]
    foreach {packages clog} $review($m) break











    set np [llength $packages]
    set p  [lindex  $packages $currentp]

    foreach {name what tags} $p break
    set at [list $m $name]

    set im [expr {1+$current}]
    set ip [expr {1+$currentp}]


    if {$skip && ([llength $tags] ||
		  ($tags == "---"))} {
	C_next
    } else {
	RefreshDisplay
    }
    return
}






















































proc ::sak::review::C_exit {} { variable stop 1 }
proc ::sak::review::C_quit {} { variable stop 1 }

proc ::sak::review::C_? {} { C_help }
proc ::sak::review::C_help {} {
    variable commands
    return [join $commands {, }]
}

proc ::sak::review::C_@? {} { C_@help }
proc ::sak::review::C_@help {} {
    variable navcommands
    return [join $navcommands {, }]
}

proc ::sak::review::C_@start {} { Goto {0 0} }
proc ::sak::review::C_@0     {} { Goto {0 0} }
proc ::sak::review::C_@end   {} { variable end ; Goto $end() }

proc ::sak::review::C_next {} {

    variable tags
    variable current
    variable currentp











    C_step 0

    set stop @$current/$currentp
    while {[llength $tags] ||
	   ($tags == "---")} {
	C_step 0







>



>
>


>


>









>


>





>
>
>
>
>
>
>
>
>
>









>









>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




















|
>



>
>
>
>
>
>
>
>
>
>







659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
	return
    }
    eval C_$line
}

proc ::sak::review::Goto {loc {skip 0}} {
    variable review
    variable rm
    variable modules
    variable packages
    variable clog
    variable rlog
    variable rloga
    variable current
    variable currentp
    variable currentr
    variable nm
    variable np
    variable nr
    variable at
    variable tags
    variable what
    variable name

    variable m
    variable p
    variable ip
    variable im
    variable ir

    foreach {current currentp} $loc break
    set currentr 0

    puts "Goto ($current/$currentp)"

    set m [lindex $modules $current]
    foreach {packages clog} $review($m) break
    if {[catch {
	set nr   [llength $rm($m)]
	set rloga $rm($m)
	set rlog [lindex $rloga $currentr]
    }]} {
	set nr 0
	set currentr 0
	set rloga {}
	set rlog {}
    }

    set np [llength $packages]
    set p  [lindex  $packages $currentp]

    foreach {name what tags} $p break
    set at [list $m $name]

    set im [expr {1+$current}]
    set ip [expr {1+$currentp}]
    set ir [expr {1+$currentr}]

    if {$skip && ([llength $tags] ||
		  ($tags == "---"))} {
	C_next
    } else {
	RefreshDisplay
    }
    return
}

proc ::sak::review::C_* {} {
    variable smode
    variable currentr
    if {$smode eq "all"} {
	set smode rev
	set currentr 0
    } else {
	set smode all
    }
    RefreshDisplay
    return
}
proc ::sak::review::C_, {} {
    # next revision
    variable smode
    variable rlog
    variable rloga
    variable currentr
    if {$smode eq "all"} {
	set smode rev
	set currentr 0
    } else {
	variable nr
	incr currentr
	if {$currentr >= $nr} { set currentr 0 }
    }
    variable ir [expr {1+$currentr}]
    set rlog [lindex $rloga $currentr]
    RefreshDisplay
    return
}
proc ::sak::review::C_' {} {
    # previous revision
    variable smode
    variable rlog
    variable rloga
    variable nr
    variable currentr
    if {$smode eq "all"} {
	set smode rev
	set currentr $nr
    }
    incr currentr -1
    if {$currentr <= 0} {
	set currentr $nr
	incr currentr -1
    }
    variable ir [expr {1+$currentr}]
    set rlog [lindex $rloga $currentr]
    RefreshDisplay
    return
}

proc ::sak::review::C_exit {} { variable stop 1 }
proc ::sak::review::C_quit {} { variable stop 1 }

proc ::sak::review::C_? {} { C_help }
proc ::sak::review::C_help {} {
    variable commands
    return [join $commands {, }]
}

proc ::sak::review::C_@? {} { C_@help }
proc ::sak::review::C_@help {} {
    variable navcommands
    return [join $navcommands {, }]
}

proc ::sak::review::C_@start {} { Goto {0 0} }
proc ::sak::review::C_@0     {} { Goto {0 0} }
proc ::sak::review::C_@end   {} { variable end ; Goto $end() }

proc ::sak::review::C_>> {} { C_next 1 }
proc ::sak::review::C_next {{skiprev 0}} {
    variable tags
    variable current
    variable currentp
    variable smode

    if {!($skiprev) && ($smode eq "rev")} {
	variable ir
	variable nr
	if {$ir < $nr} {
	    C_,
	    return
	}
    }

    C_step 0

    set stop @$current/$currentp
    while {[llength $tags] ||
	   ($tags == "---")} {
	C_step 0
694
695
696
697
698
699
700
701

702
703
704
705
706
707









708
709
710
711
712
713
714
	set currentp 0

    }
    Goto [list $current $currentp]
    return
}

proc ::sak::review::C_prev {} {

    variable end
    variable nm
    variable np
    variable current
    variable currentp
    variable packages










    incr currentp -1
    if {$currentp < 0} {
	# skip to previous module, last package
	incr current -1
	if {$current < 0} {
	    # skip to back to last module







|
>






>
>
>
>
>
>
>
>
>







842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
	set currentp 0

    }
    Goto [list $current $currentp]
    return
}

proc ::sak::review::C_<< {} { C_prev 1 }
proc ::sak::review::C_prev {{skiprev 0}} {
    variable end
    variable nm
    variable np
    variable current
    variable currentp
    variable packages
    variable smode

    if {!$skiprev && ($smode eq "rev")} {
	variable ir
	if {$ir > 1} {
	    C_'
	    return
	}
    }

    incr currentp -1
    if {$currentp < 0} {
	# skip to previous module, last package
	incr current -1
	if {$current < 0} {
	    # skip to back to last module

Changes to support/installation/modules.tcl.

48
49
50
51
52
53
54

55
56
57
58
59
60
61
Module  clock       _tcl  _man _null
Module  cmdline     _tcl  _man  _null
Module  comm        _tcl  _man  _null
Module  control      _tci _man  _null
Module  coroutine   _tcl _null  _null
Module  counter     _tcl  _man  _null
Module  crc         _tcl  _man  _null

Module  csv         _tcl  _man _exa
Module  debug       _tcl _null  _null
Module  des         _tcl  _man  _null
Module  dns          _msg _man _exa
Module  docstrip    _tcl  _man  _null
Module  doctools     _doc _man _exa
Module  doctools2base _tcl _man _null







>







48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Module  clock       _tcl  _man _null
Module  cmdline     _tcl  _man  _null
Module  comm        _tcl  _man  _null
Module  control      _tci _man  _null
Module  coroutine   _tcl _null  _null
Module  counter     _tcl  _man  _null
Module  crc         _tcl  _man  _null
Module  cron        _tcl  _man  _null
Module  csv         _tcl  _man _exa
Module  debug       _tcl _null  _null
Module  des         _tcl  _man  _null
Module  dns          _msg _man _exa
Module  docstrip    _tcl  _man  _null
Module  doctools     _doc _man _exa
Module  doctools2base _tcl _man _null
94
95
96
97
98
99
100

101
102
103
104
105
106
107
108
109
110
111
112
113

114
115
116
117
118
119
120
Module  md4         _tcl  _man  _null
Module  md5         _tcl  _man  _null
Module  md5crypt    _tcl  _man _null
Module  mime        _tcl  _man _exa
Module  multiplexer _tcl  _man  _null
Module  namespacex  _tcl  _man  _null
Module  ncgi        _tcl  _man  _null

Module  nmea        _tcl  _man  _null
Module  nns         _tcl  _man  _null
Module  nntp        _tcl  _man _exa
Module  ntp         _tcl  _man _exa
Module  oauth       _tcl  _man  _null
Module  ooutil      _tcl  _man  _null
Module  otp         _tcl  _man  _null
Module  page         _trt _man  _null
Module  pki         _tcl  _man  _null
Module  pluginmgr   _tcl  _man  _null
Module  png         _tcl  _man  _null
Module  pop3        _tcl  _man  _null
Module  pop3d       _tcl  _man  _null

Module  profiler    _tcl  _man  _null
Module  pt           _rde _man  _null
Module  rc4         _tcl  _man  _null
Module  rcs         _tcl  _man  _null
Module  report      _tcl  _man  _null
Module  rest        _tcl  _man  _null
Module  ripemd      _tcl  _man  _null







>













>







95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
Module  md4         _tcl  _man  _null
Module  md5         _tcl  _man  _null
Module  md5crypt    _tcl  _man _null
Module  mime        _tcl  _man _exa
Module  multiplexer _tcl  _man  _null
Module  namespacex  _tcl  _man  _null
Module  ncgi        _tcl  _man  _null
Module  nettool     _tcl  _man  _null
Module  nmea        _tcl  _man  _null
Module  nns         _tcl  _man  _null
Module  nntp        _tcl  _man _exa
Module  ntp         _tcl  _man _exa
Module  oauth       _tcl  _man  _null
Module  ooutil      _tcl  _man  _null
Module  otp         _tcl  _man  _null
Module  page         _trt _man  _null
Module  pki         _tcl  _man  _null
Module  pluginmgr   _tcl  _man  _null
Module  png         _tcl  _man  _null
Module  pop3        _tcl  _man  _null
Module  pop3d       _tcl  _man  _null
Module  processman  _tcl  _man  _null
Module  profiler    _tcl  _man  _null
Module  pt           _rde _man  _null
Module  rc4         _tcl  _man  _null
Module  rcs         _tcl  _man  _null
Module  report      _tcl  _man  _null
Module  rest        _tcl  _man  _null
Module  ripemd      _tcl  _man  _null

Changes to support/installation/version.tcl.

1
2
3
4
5
6
7
8
package_version 1.16
package_name    tcllib

dist_exclude    config
dist_exclude    modules/ftp/example
dist_exclude    modules/ftpd/examples
dist_exclude    modules/stats
dist_exclude    modules/fileinput
|







1
2
3
4
5
6
7
8
package_version 1.17
package_name    tcllib

dist_exclude    config
dist_exclude    modules/ftp/example
dist_exclude    modules/ftpd/examples
dist_exclude    modules/stats
dist_exclude    modules/fileinput

Changes to support/releases/PACKAGES.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
@@ RELEASE 1.16

S3                                 1.0.0
SASL                               1.3.3
SASL::NTLM                         1.1.2
SASL::SCRAM                        0.1
SASL::XGoogleToken                 1.0.1
aes                                1.1.1
ascii85                            1.0
asn                                0.8.4
autoproxy                          1.5.3
base32                             0.1
base32::core                       0.1
base32::hex                        0.1
base64                             2.4.2
bee                                0.1
bench                              0.4
bench::in                          0.1
bench::out::csv                    0.1.2
bench::out::text                   0.1.2
bibtex                             0.5
blowfish                           1.0.4
cache::async                       0.3
calendar                           0.2
char                               1
cksum                              1.1.3
clock::iso8601                     0.1
clock::rfc2822                     0.1
cmdline                            1.3.3
comm                               4.6.2
configuration                      1
control                            0.1.3
coroutine                          1.1
coroutine::auto                    1.1.1
counter                            2.0.4
crc16                              1.1.2
crc32                              1.3.1

csv                                0.8
debug                              1.0.2
debug::caller                      1
debug::heartbeat                   1
debug::timestamp                   1
des                                1.1.0
dns                                1.3.3
docstrip                           1.2
docstrip::util                     1.3
doctools                           1.4.17
doctools::changelog                1.1
doctools::config                   0.1
doctools::cvs                      1
doctools::html                     0.1
doctools::html::cssdefaults        0.1
doctools::idx                      1.0.4
doctools::idx                      2
doctools::idx::export              0.1
doctools::idx::export::docidx      0.1
doctools::idx::export::html        0.2
doctools::idx::export::json        0.1
doctools::idx::export::nroff       0.3
doctools::idx::export::text        0.2
|

|




|












|



|
|


|
|


|
|


|
>

|




|


|





|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
@@ RELEASE 1.17

S3                                 1.0.3
SASL                               1.3.3
SASL::NTLM                         1.1.2
SASL::SCRAM                        0.1
SASL::XGoogleToken                 1.0.1
aes                                1.2.1
ascii85                            1.0
asn                                0.8.4
autoproxy                          1.5.3
base32                             0.1
base32::core                       0.1
base32::hex                        0.1
base64                             2.4.2
bee                                0.1
bench                              0.4
bench::in                          0.1
bench::out::csv                    0.1.2
bench::out::text                   0.1.2
bibtex                             0.6
blowfish                           1.0.4
cache::async                       0.3
calendar                           0.2
char                               1.0.1
cksum                              1.1.4
clock::iso8601                     0.1
clock::rfc2822                     0.1
cmdline                            1.5
comm                               4.6.3.1
configuration                      1
control                            0.1.3
coroutine                          1.1.3
coroutine::auto                    1.1.3
counter                            2.0.4
crc16                              1.1.2
crc32                              1.3.2
cron                               1.1
csv                                0.8
debug                              1.0.5
debug::caller                      1
debug::heartbeat                   1
debug::timestamp                   1
des                                1.1.0
dns                                1.3.5
docstrip                           1.2
docstrip::util                     1.3
doctools                           1.4.19
doctools::changelog                1.1
doctools::config                   0.1
doctools::cvs                      1
doctools::html                     0.1
doctools::html::cssdefaults        0.1
doctools::idx                      1.0.5
doctools::idx                      2
doctools::idx::export              0.1
doctools::idx::export::docidx      0.1
doctools::idx::export::html        0.2
doctools::idx::export::json        0.1
doctools::idx::export::nroff       0.3
doctools::idx::export::text        0.2
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186

187
188


189
190
191
192
193
194
195
196
doctools::msgcat::toc::de          0.1
doctools::msgcat::toc::en          0.1
doctools::msgcat::toc::fr          0.1
doctools::nroff::man_macros        0.1
doctools::paths                    0.1
doctools::tcl::parse               0.1
doctools::text                     0.1
doctools::toc                      1.1.3
doctools::toc                      2
doctools::toc::export              0.1
doctools::toc::export::doctoc      0.1
doctools::toc::export::html        0.1
doctools::toc::export::json        0.1
doctools::toc::export::nroff       0.2
doctools::toc::export::text        0.1
doctools::toc::export::wiki        0.1
doctools::toc::import              0.1
doctools::toc::import::doctoc      0.1
doctools::toc::import::json        0.1
doctools::toc::parse               0.1
doctools::toc::structure           0.1
dtplite                            1.1
exif                               1.1.2
fileutil                           1.14.6
fileutil::decode                   0.2
fileutil::magic::cfront            1.0
fileutil::magic::cgen              1.0
fileutil::magic::filetype          1.0.2
fileutil::magic::mimetype          1.0.2
fileutil::magic::rt                1.0
fileutil::multi                    0.1
fileutil::multi::op                0.5.3
fileutil::traverse                 0.4.3
ftp                                2.4.12
ftp::geturl                        0.2.1
ftpd                               1.2.6
generator                          0.1
gpx                                1
grammar::aycock                    1.0
grammar::aycock::debug             1.0
grammar::aycock::runtime           1.0
grammar::fa                        0.5
grammar::fa::dacceptor             0.1.1
grammar::fa::dexec                 0.2
grammar::fa::op                    0.4.1
grammar::me::cpu                   0.2
grammar::me::cpu::core             0.2
grammar::me::cpu::gasm             0.1
grammar::me::tcl                   0.1
grammar::me::util                  0.1
grammar::peg                       0.2
grammar::peg::interp               0.1.1
hook                               0.1
html                               1.4
htmlparse                          1.2.1
huddle                             0.1.5
ident                              0.42
imap4                              0.5.2
inifile                            0.2.5
interp                             0.1.2
interp::delegate::method           0.2
interp::delegate::proc             0.2
ip                                 1.2.2
irc                                0.6.1
javascript                         1.0.2
jpeg                               0.5
json                               1.3.2
json::write                        1.0.2
lambda                             1
ldap                               1.8
ldapx                              1.0
log                                1.3
logger                             0.9.3
logger::appender                   1.3
logger::utils                      1.3
map::geocode::nominatim            0.1
map::slippy                        0.5
map::slippy::cache                 0.2
map::slippy::fetcher               0.3
mapproj                            1.0
math                               1.2.5
math::bigfloat                     1.2.2
math::bigfloat                     2.0.1
math::bignum                       3.1.1
math::calculus                     0.7.2
math::calculus::symdiff            1.0
math::complexnumbers               1.0.2
math::constants                    1.0.1
math::decimal                      1.0.3
math::fourier                      1.0.2
math::fuzzy                        0.2.1
math::geometry                     1.1.3
math::interpolate                  1.1
math::linearalgebra                1.1.4
math::machineparameters            0.1
math::numtheory                    1.0
math::optimize                     1.0
math::polynomials                  1.0.1
math::rationalfunctions            1.0.1
math::roman                        1.0
math::special                      0.2.2
math::statistics                   0.9
md4                                1.0.5
md5                                1.4.4
md5                                2.0.7
md5crypt                           1.1.0
mime                               1.6
multiplexer                        0.2
nameserv                           0.4.2
nameserv::auto                     0.3
nameserv::common                   0.1
nameserv::server                   0.3.2
namespacex                         0.1
ncgi                               1.4.2

nmea                               1.0.0
nntp                               0.2.1


oo::util                           1.2
otp                                1.0.0
page::analysis::peg::emodes        0.1
page::analysis::peg::minimize      0.1
page::analysis::peg::reachable     0.1
page::analysis::peg::realizable    0.1
page::compiler::peg::mecpu         0.1.1
page::config::peg                  0.1







|













|

|








|
|



















|




|



|



|
|




|









|

|








|


|



|
|
|










|
>


>
>
|







74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
doctools::msgcat::toc::de          0.1
doctools::msgcat::toc::en          0.1
doctools::msgcat::toc::fr          0.1
doctools::nroff::man_macros        0.1
doctools::paths                    0.1
doctools::tcl::parse               0.1
doctools::text                     0.1
doctools::toc                      1.1.4
doctools::toc                      2
doctools::toc::export              0.1
doctools::toc::export::doctoc      0.1
doctools::toc::export::html        0.1
doctools::toc::export::json        0.1
doctools::toc::export::nroff       0.2
doctools::toc::export::text        0.1
doctools::toc::export::wiki        0.1
doctools::toc::import              0.1
doctools::toc::import::doctoc      0.1
doctools::toc::import::json        0.1
doctools::toc::parse               0.1
doctools::toc::structure           0.1
dtplite                            1.2
exif                               1.1.2
fileutil                           1.14.10
fileutil::decode                   0.2
fileutil::magic::cfront            1.0
fileutil::magic::cgen              1.0
fileutil::magic::filetype          1.0.2
fileutil::magic::mimetype          1.0.2
fileutil::magic::rt                1.0
fileutil::multi                    0.1
fileutil::multi::op                0.5.3
fileutil::traverse                 0.5
ftp                                2.4.13
ftp::geturl                        0.2.1
ftpd                               1.2.6
generator                          0.1
gpx                                1
grammar::aycock                    1.0
grammar::aycock::debug             1.0
grammar::aycock::runtime           1.0
grammar::fa                        0.5
grammar::fa::dacceptor             0.1.1
grammar::fa::dexec                 0.2
grammar::fa::op                    0.4.1
grammar::me::cpu                   0.2
grammar::me::cpu::core             0.2
grammar::me::cpu::gasm             0.1
grammar::me::tcl                   0.1
grammar::me::util                  0.1
grammar::peg                       0.2
grammar::peg::interp               0.1.1
hook                               0.1
html                               1.4.4
htmlparse                          1.2.1
huddle                             0.1.5
ident                              0.42
imap4                              0.5.2
inifile                            0.3
interp                             0.1.2
interp::delegate::method           0.2
interp::delegate::proc             0.2
ip                                 1.3
irc                                0.6.1
javascript                         1.0.2
jpeg                               0.5
json                               1.3.3
json::write                        1.0.3
lambda                             1
ldap                               1.8
ldapx                              1.0
log                                1.3
logger                             0.9.4
logger::appender                   1.3
logger::utils                      1.3
map::geocode::nominatim            0.1
map::slippy                        0.5
map::slippy::cache                 0.2
map::slippy::fetcher               0.3
mapproj                            1.0
math                               1.2.5
math::bigfloat                     1.2.2
math::bigfloat                     2.0.2
math::bignum                       3.1.1
math::calculus                     0.8.1
math::calculus::symdiff            1.0
math::complexnumbers               1.0.2
math::constants                    1.0.1
math::decimal                      1.0.3
math::fourier                      1.0.2
math::fuzzy                        0.2.1
math::geometry                     1.1.3
math::interpolate                  1.1
math::linearalgebra                1.1.5
math::machineparameters            0.1
math::numtheory                    1.0
math::optimize                     1.0.1
math::polynomials                  1.0.1
math::rationalfunctions            1.0.1
math::roman                        1.0
math::special                      0.3.0
math::statistics                   0.9.3
md4                                1.0.6
md5                                1.4.4
md5                                2.0.7
md5crypt                           1.1.0
mime                               1.6
multiplexer                        0.2
nameserv                           0.4.2
nameserv::auto                     0.3
nameserv::common                   0.1
nameserv::server                   0.3.2
namespacex                         0.1
ncgi                               1.4.3
nettool                            0.4
nmea                               1.0.0
nntp                               0.2.1
oauth                              1
odie::processman                   0.3
oo::util                           1.2.1
otp                                1.0.0
page::analysis::peg::emodes        0.1
page::analysis::peg::minimize      0.1
page::analysis::peg::reachable     0.1
page::analysis::peg::realizable    0.1
page::compiler::peg::mecpu         0.1.1
page::config::peg                  0.1
235
236
237
238
239
240
241
242

243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270

271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
png                                0.2
pop3                               1.9
pop3d                              1.1.0
pop3d::dbox                        1.0.2
pop3d::udb                         1.1
profiler                           0.3
pt::ast                            1.1
pt::cparam::configuration::critcl  1.0.1

pt::parse::peg                     1
pt::pe                             1
pt::pe::op                         1
pt::peg                            1
pt::peg::container                 1
pt::peg::container::peg            1
pt::peg::export                    1
pt::peg::export::container         1
pt::peg::export::json              1
pt::peg::export::peg               1
pt::peg::from::json                1
pt::peg::from::peg                 1.0.2
pt::peg::import                    1
pt::peg::import::json              1
pt::peg::import::peg               1
pt::peg::interp                    1
pt::peg::op                        1.0.1
pt::peg::to::container             1
pt::peg::to::cparam                1.0.1
pt::peg::to::json                  1
pt::peg::to::param                 1
pt::peg::to::peg                   1.0.1
pt::peg::to::tclparam              1
pt::pgen                           1.0.2
pt::rde                            1.0.2
pt::rde::oo                        1.0.2
pt::tclparam::configuration::snit  1.0.1
pt::tclparam::configuration::tcloo 1.0.3

rc4                                1.1.0
rcs                                0.1
report                             0.3.1
resolv                             1.0.3
rest                               1.0.1
ripemd128                          1.0.4
ripemd160                          1.0.4
sha1                               1.1.0
sha1                               2.0.3
sha256                             1.0.3
simulation::annealing              0.2
simulation::montecarlo             0.1
simulation::random                 0.3.1
smtp                               1.4.5
smtpd                              1.5
snit                               1.4.2
snit                               2.3.2
soundex                            1.0
spf                                1.1.1
stooop                             4.4.1
string::token                      1
string::token::shell               1.1
stringprep                         1.0.1
stringprep::data                   1.0.1
struct                             1.4
struct                             2.1
struct::disjointset                1.0
struct::graph                      1.2.1
struct::graph                      2.4
struct::graph::op                  0.11.3
struct::list                       1.8.3
struct::matrix                     1.2.1
struct::matrix                     2.0.3
struct::pool                       1.2.1
struct::prioqueue                  1.4
struct::queue                      1.4.5
struct::record                     1.2.1
struct::set                        2.2.3
struct::skiplist                   1.3
struct::stack                      1.5.3
struct::tree                       1.2.2
struct::tree                       2.1.2
sum                                1.1.0
switched                           2.2.1
tar                                0.9
tcl::chan::cat                     1.0.2
tcl::chan::core                    1
tcl::chan::events                  1
tcl::chan::facade                  1.0.1
tcl::chan::fifo                    1
tcl::chan::fifo2                   1
tcl::chan::halfpipe                1







|
>
|
|









|



|


|

|
|
|
|
|
|
|
|
>


|


|
|
|













|











|








|

|







239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
png                                0.2
pop3                               1.9
pop3d                              1.1.0
pop3d::dbox                        1.0.2
pop3d::udb                         1.1
profiler                           0.3
pt::ast                            1.1
pt::cparam::configuration::critcl  1.0.2
pt::cparam::configuration::tea     0.1
pt::parse::peg                     1.0.1
pt::pe                             1.0.2
pt::pe::op                         1
pt::peg                            1
pt::peg::container                 1
pt::peg::container::peg            1
pt::peg::export                    1
pt::peg::export::container         1
pt::peg::export::json              1
pt::peg::export::peg               1
pt::peg::from::json                1
pt::peg::from::peg                 1.0.3
pt::peg::import                    1
pt::peg::import::json              1
pt::peg::import::peg               1
pt::peg::interp                    1.0.1
pt::peg::op                        1.0.1
pt::peg::to::container             1
pt::peg::to::cparam                1.1.3
pt::peg::to::json                  1
pt::peg::to::param                 1.0.1
pt::peg::to::peg                   1.0.2
pt::peg::to::tclparam              1.0.2
pt::pgen                           1.0.3
pt::rde                            1.0.3
pt::rde::oo                        1.0.3
pt::tclparam::configuration::snit  1.0.2
pt::tclparam::configuration::tcloo 1.0.4
pt::util                           1
rc4                                1.1.0
rcs                                0.1
report                             0.3.2
resolv                             1.0.3
rest                               1.0.1
ripemd128                          1.0.5
ripemd160                          1.0.5
sha1                               1.1.1
sha1                               2.0.3
sha256                             1.0.3
simulation::annealing              0.2
simulation::montecarlo             0.1
simulation::random                 0.3.1
smtp                               1.4.5
smtpd                              1.5
snit                               1.4.2
snit                               2.3.2
soundex                            1.0
spf                                1.1.1
stooop                             4.4.1
string::token                      1
string::token::shell               1.2
stringprep                         1.0.1
stringprep::data                   1.0.1
struct                             1.4
struct                             2.1
struct::disjointset                1.0
struct::graph                      1.2.1
struct::graph                      2.4
struct::graph::op                  0.11.3
struct::list                       1.8.3
struct::matrix                     1.2.1
struct::matrix                     2.0.3
struct::pool                       1.2.3
struct::prioqueue                  1.4
struct::queue                      1.4.5
struct::record                     1.2.1
struct::set                        2.2.3
struct::skiplist                   1.3
struct::stack                      1.5.3
struct::tree                       1.2.2
struct::tree                       2.1.2
sum                                1.1.2
switched                           2.2.1
tar                                0.10
tcl::chan::cat                     1.0.2
tcl::chan::core                    1
tcl::chan::events                  1
tcl::chan::facade                  1.0.1
tcl::chan::fifo                    1
tcl::chan::fifo2                   1
tcl::chan::halfpipe                1
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
tcl::transform::hex                1
tcl::transform::identity           1
tcl::transform::limitsize          1
tcl::transform::observe            1
tcl::transform::otp                1
tcl::transform::rot                1
tcl::transform::spacer             1
tcl::transform::zlib               1
tclDES                             1.0.0
tclDESjr                           1.0.0
tepam                              0.5.0
tepam::doc_gen                     0.1.1
term                               0.1
term::ansi::code                   0.2
term::ansi::code::attr             0.1
term::ansi::code::ctrl             0.2
term::ansi::code::macros           0.1
term::ansi::ctrl::unix             0.1.1
term::ansi::send                   0.2
term::interact::menu               0.1
term::interact::pager              0.1
term::receive                      0.1
term::receive::bind                0.1
term::send                         0.1
text::write                        1
textutil                           0.8
textutil::adjust                   0.7.1
textutil::expander                 1.3.1
textutil::repeat                   0.7
textutil::split                    0.7
textutil::string                   0.8
textutil::tabify                   0.7
textutil::trim                     0.7
tie                                1.1







|


|















|







344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
tcl::transform::hex                1
tcl::transform::identity           1
tcl::transform::limitsize          1
tcl::transform::observe            1
tcl::transform::otp                1
tcl::transform::rot                1
tcl::transform::spacer             1
tcl::transform::zlib               1.0.1
tclDES                             1.0.0
tclDESjr                           1.0.0
tepam                              0.5
tepam::doc_gen                     0.1.1
term                               0.1
term::ansi::code                   0.2
term::ansi::code::attr             0.1
term::ansi::code::ctrl             0.2
term::ansi::code::macros           0.1
term::ansi::ctrl::unix             0.1.1
term::ansi::send                   0.2
term::interact::menu               0.1
term::interact::pager              0.1
term::receive                      0.1
term::receive::bind                0.1
term::send                         0.1
text::write                        1
textutil                           0.8
textutil::adjust                   0.7.3
textutil::expander                 1.3.1
textutil::repeat                   0.7
textutil::split                    0.7
textutil::string                   0.8
textutil::tabify                   0.7
textutil::trim                     0.7
tie                                1.1
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
treeql                             1.3.1
try                                1
uevent                             0.3.1
uevent::onidle                     0.1
unicode                            1.0.0
unicode::data                      1.0.0
units                              2.1.1
uri                                1.2.4
uri::urn                           1.0.2
uuencode                           1.1.5
uuid                               1.0.2
valtype::common                    1
valtype::creditcard::amex          1
valtype::creditcard::discover      1
valtype::creditcard::mastercard    1
valtype::creditcard::visa          1
valtype::gs1::ean13                1
valtype::iban                      1.4
valtype::imei                      1
valtype::isbn                      1
valtype::luhn                      1
valtype::luhn5                     1
valtype::usnpi                     1
valtype::verhoeff                  1
websocket                          1.3
wip                                1.2
wip                                2.2
xsxp                               1.0
yaml                               0.3.6
yencode                            1.1.3
zipfile::decode                    0.4
zipfile::encode                    0.3







|
|

|






|






|



|

|

393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
treeql                             1.3.1
try                                1
uevent                             0.3.1
uevent::onidle                     0.1
unicode                            1.0.0
unicode::data                      1.0.0
units                              2.1.1
uri                                1.2.5
uri::urn                           1.0.3
uuencode                           1.1.5
uuid                               1.0.4
valtype::common                    1
valtype::creditcard::amex          1
valtype::creditcard::discover      1
valtype::creditcard::mastercard    1
valtype::creditcard::visa          1
valtype::gs1::ean13                1
valtype::iban                      1.5
valtype::imei                      1
valtype::isbn                      1
valtype::luhn                      1
valtype::luhn5                     1
valtype::usnpi                     1
valtype::verhoeff                  1
websocket                          1.4
wip                                1.2
wip                                2.2
xsxp                               1.0
yaml                               0.3.7
yencode                            1.1.3
zipfile::decode                    0.6.1
zipfile::encode                    0.3

Added support/releases/history/README-1.17.txt.























































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
Overview
========

    6   new packages                in 5   modules
    66  changed packages            in 39  modules
    46  internally changed packages in 31  modules
    293 unchanged packages          in 74  modules
    418 packages, total             in 118 modules, total

New in tcllib 1.17
==================

    Module       Package                          New Version   Comments
    ------------ -------------------------------- ------------- ----------
    cron         cron                             1.1
    nettool      nettool                          0.4
    oauth        oauth                            1
    processman   odie::processman                 0.3
    ------------ -------------------------------- ------------- ----------
    pt           pt::cparam::configuration::tea   0.1
                 pt::util                         1
    ------------ -------------------------------- ------------- ----------

Changes from tcllib 1.16 to 1.17
================================

                                                                 tcllib 1.16   tcllib 1.17
    Module                  Package                              Old Version   New Version   Comments
    ----------------------- ------------------------------------ ------------- ------------- ----------
    aes                     aes                                  1.1.1         1.2.1         I P
    amazon-s3               S3                                   1.0.0         1.0.3         B D P
    bibtex                  bibtex                               0.5           0.6           B EF
    cmdline                 cmdline                              1.3.3         1.5           D EF I T
    comm                    comm                                 4.6.2         4.6.3.1       B D
    ----------------------- ------------------------------------ ------------- ------------- ----------
    coroutine               coroutine                            1.1           1.1.3         B D
                            coroutine::auto                      1.1.1         1.1.3         B D
    ----------------------- ------------------------------------ ------------- ------------- ----------
    crc                     cksum                                1.1.3         1.1.4         B D I
                            crc32                                1.3.1         1.3.2         B D I
                            sum                                  1.1.0         1.1.2         B D I T
    ----------------------- ------------------------------------ ------------- ------------- ----------
    debug                   debug                                1.0.2         1.0.5         B D EF
    ----------------------- ------------------------------------ ------------- ------------- ----------
    dns                     dns                                  1.3.3         1.3.5         B D I
                            ip                                   1.2.2         1.3           D EF I T
    ----------------------- ------------------------------------ ------------- ------------- ----------
    doctools                doctools                             1.4.17        1.4.19        B D I
                            doctools::idx                        1.0.4         1.0.5         B D I
                            doctools::idx                        2             2             B D I
                            doctools::toc                        1.1.3         1.1.4         B D I
                            doctools::toc                        2             2             B D I
    ----------------------- ------------------------------------ ------------- ------------- ----------
    doctools2idx            doctools::idx                        1.0.4         1.0.5         B D I
                            doctools::idx                        2             2             B D I
    ----------------------- ------------------------------------ ------------- ------------- ----------
    doctools2toc            doctools::toc                        1.1.3         1.1.4         B D I
                            doctools::toc                        2             2             B D I
    ----------------------- ------------------------------------ ------------- ------------- ----------
    dtplite                 dtplite                              1.1           1.2           D I
    ----------------------- ------------------------------------ ------------- ------------- ----------
    fileutil                fileutil                             1.14.6        1.14.10       B D T
                            fileutil::traverse                   0.4.3         0.5           B D T
    ----------------------- ------------------------------------ ------------- ------------- ----------
    ftp                     ftp                                  2.4.12        2.4.13        B D
    html                    html                                 1.4           1.4.4         B D T
    inifile                 inifile                              0.2.5         0.3           D EF I T
    ----------------------- ------------------------------------ ------------- ------------- ----------
    json                    json                                 1.3.2         1.3.3         B D T
                            json::write                          1.0.2         1.0.3         B D T
    ----------------------- ------------------------------------ ------------- ------------- ----------
    log                     logger                               0.9.3         0.9.4         B D T
    ----------------------- ------------------------------------ ------------- ------------- ----------
    math                    math::bigfloat                       1.2.2         1.2.2         B T
                            math::bigfloat                       2.0.1         2.0.2         B T
                            math::calculus                       0.7.2         0.8.1         B D EF T
                            math::linearalgebra                  1.1.4         1.1.5         B D T
                            math::optimize                       1.0           1.0.1         B T
                            math::special                        0.2.2         0.3.0         D EF T
                            math::statistics                     0.9           0.9.3         B D EF T
    ----------------------- ------------------------------------ ------------- ------------- ----------
    md4                     md4                                  1.0.5         1.0.6         B D I
    ncgi                    ncgi                                 1.4.2         1.4.3         B D T
    ooutil                  oo::util                             1.2           1.2.1         B D T
    ----------------------- ------------------------------------ ------------- ------------- ----------
    pt                      char                                 1             1.0.1         D I T
                            pt::cparam::configuration::critcl    1.0.1         1.0.2         B D I T
                            pt::parse::peg                       1             1.0.1         B I T
                            pt::pe                               1             1.0.2         B D EF I
                            pt::peg::from::peg                   1.0.2         1.0.3         D EF
                            pt::peg::interp                      1             1.0.1         D EF
                            pt::peg::to::cparam                  1.0.1         1.1.3         B D EF
                            pt::peg::to::param                   1             1.0.1         B
                            pt::peg::to::peg                     1.0.1         1.0.2         D EF
                            pt::peg::to::tclparam                1             1.0.2         B D EF
                            pt::pgen                             1.0.2         1.0.3         EF T
                            pt::rde                              1.0.2         1.0.3         B D EF
                            pt::rde::oo                          1.0.2         1.0.3         B
                            pt::tclparam::configuration::snit    1.0.1         1.0.2         D EF
                            pt::tclparam::configuration::tcloo   1.0.3         1.0.4         D EF
    ----------------------- ------------------------------------ ------------- ------------- ----------
    report                  report                               0.3.1         0.3.2         D EF
    ----------------------- ------------------------------------ ------------- ------------- ----------
    ripemd                  ripemd128                            1.0.4         1.0.5         B D I
                            ripemd160                            1.0.4         1.0.5         B D I
    ----------------------- ------------------------------------ ------------- ------------- ----------
    sha1                    sha1                                 1.1.0         1.1.1         B I T
                            sha1                                 2.0.3         2.0.3         B I T
    ----------------------- ------------------------------------ ------------- ------------- ----------
    string                  string::token::shell                 1.1           1.2           D EF T
    struct                  struct::pool                         1.2.1         1.2.3         D I T
    tar                     tar                                  0.9           0.10          B D T
    tepam                   tepam                                0.5.0         0.5           I
    textutil                textutil::adjust                     0.7.1         0.7.3         B D T
    ----------------------- ------------------------------------ ------------- ------------- ----------
    uri                     uri                                  1.2.4         1.2.5         B D T
                            uri::urn                             1.0.2         1.0.3         B D I T
    ----------------------- ------------------------------------ ------------- ------------- ----------
    uuid                    uuid                                 1.0.2         1.0.4         B D I
    valtype                 valtype::iban                        1.4           1.5           B D EF T
    virtchannel_transform   tcl::transform::zlib                 1             1.0.1         B
    websocket               websocket                            1.3           1.4           B D EF
    yaml                    yaml                                 0.3.6         0.3.7         B D T
    zip                     zipfile::decode                      0.4           0.6.1         B D EF
    ----------------------- ------------------------------------ ------------- ------------- ----------

Invisible changes (documentation, testsuites)
=============================================

                                              tcllib 1.16   tcllib 1.17
    Module      Package                       Old Version   New Version   Comments
    ----------- ----------------------------- ------------- ------------- ----------
    amazon-s3   xsxp                          1.0           1.0           D
    ----------- ----------------------------- ------------- ------------- ----------
    base32      base32                        0.1           0.1           I
                base32::hex                   0.1           0.1           I
    ----------- ----------------------------- ------------- ------------- ----------
    base64      uuencode                      1.1.5         1.1.5         I
                yencode                       1.1.3         1.1.3         I
    ----------- ----------------------------- ------------- ------------- ----------
    blowfish    blowfish                      1.0.4         1.0.4         I
    calendar    calendar                      0.2           0.2           I
    control     control                       0.1.3         0.1.3         I
    crc         crc16                         1.1.2         1.1.2         D I
    des         des                           1.1.0         1.1.0         I
    ----------- ----------------------------- ------------- ------------- ----------
    dns         resolv                        1.0.3         1.0.3         I
                spf                           1.1.1         1.1.1         I
    ----------- ----------------------------- ------------- ------------- ----------
    http        autoproxy                     1.5.3         1.5.3         D I
    imap4       imap4                         0.5.2         0.5.2         D
    ----------- ----------------------------- ------------- ------------- ----------
    irc         irc                           0.6.1         0.6.1         I
                picoirc                       0.5.1         0.5.1         I
    ----------- ----------------------------- ------------- ------------- ----------
    ldap        ldap                          1.8           1.8           D
    log         logger::utils                 1.3           1.3           D
    math        math                          1.2.5         1.2.5         I
    ----------- ----------------------------- ------------- ------------- ----------
    md5         md5                           1.4.4         1.4.4         I
                md5                           2.0.7         2.0.7         I
    ----------- ----------------------------- ------------- ------------- ----------
    md5crypt    md5crypt                      1.1.0         1.1.0         I
    mime        smtp                          1.4.5         1.4.5         D I
    ntp         time                          1.2.1         1.2.1         I
    otp         otp                           1.0.0         1.0.0         I
    pop3        pop3                          1.9           1.9           D
    ----------- ----------------------------- ------------- ------------- ----------
    pop3d       pop3d                         1.1.0         1.1.0         I T
                pop3d::dbox                   1.0.2         1.0.2         I T
                pop3d::udb                    1.1           1.1           I
    ----------- ----------------------------- ------------- ------------- ----------
    pt          pt::peg::op                   1.0.1         1.0.1         D
    rc4         rc4                           1.1.0         1.1.0         I
    rest        rest                          1.0.1         1.0.1         D
    ----------- ----------------------------- ------------- ------------- ----------
    sasl        SASL                          1.3.3         1.3.3         I
                SASL::NTLM                    1.1.2         1.1.2         I
                SASL::SCRAM                   0.1           0.1           I
                SASL::XGoogleToken            1.0.1         1.0.1         D I
    ----------- ----------------------------- ------------- ------------- ----------
    sha1        sha256                        1.0.3         1.0.3         I T
    smtpd       smtpd                         1.5           1.5           D I
    ----------- ----------------------------- ------------- ------------- ----------
    struct      struct::matrix                1.2.1         1.2.1         D
                struct::matrix                2.0.3         2.0.3         D
    ----------- ----------------------------- ------------- ------------- ----------
    tepam       tepam::doc_gen                0.1.1         0.1.1         I
    ----------- ----------------------------- ------------- ------------- ----------
    transfer    transfer::connect             0.2           0.2           D
                transfer::copy                0.3           0.3           D
                transfer::copy::queue         0.1           0.1           D
                transfer::data::destination   0.2           0.2           D
                transfer::data::source        0.2           0.2           D
                transfer::receiver            0.2           0.2           D
                transfer::transmitter         0.2           0.2           D
    ----------- ----------------------------- ------------- ------------- ----------

Unchanged
=========

    ascii85, asn, base32::core, base64, bee, bench, bench::in,
    bench::out::csv, bench::out::text, cache::async, clock::iso8601,
    clock::rfc2822, configuration, counter, csv, debug::caller,
    debug::heartbeat, debug::timestamp, docstrip, docstrip::util,
    doctools::changelog, doctools::config, doctools::cvs,
    doctools::html, doctools::html::cssdefaults,
    doctools::idx::export, doctools::idx::export::docidx,
    doctools::idx::export::html, doctools::idx::export::json,
    doctools::idx::export::nroff, doctools::idx::export::text,
    doctools::idx::export::wiki, doctools::idx::import,
    doctools::idx::import::docidx, doctools::idx::import::json,
    doctools::idx::parse, doctools::idx::structure,
    doctools::msgcat, doctools::msgcat::idx::c,
    doctools::msgcat::idx::de, doctools::msgcat::idx::en,
    doctools::msgcat::idx::fr, doctools::msgcat::toc::c,
    doctools::msgcat::toc::de, doctools::msgcat::toc::en,
    doctools::msgcat::toc::fr, doctools::nroff::man_macros,
    doctools::paths, doctools::tcl::parse, doctools::text,
    doctools::toc::export, doctools::toc::export::doctoc,
    doctools::toc::export::html, doctools::toc::export::json,
    doctools::toc::export::nroff, doctools::toc::export::text,
    doctools::toc::export::wiki, doctools::toc::import,
    doctools::toc::import::doctoc, doctools::toc::import::json,
    doctools::toc::parse, doctools::toc::structure, exif,
    fileutil::decode, fileutil::magic::cfront,
    fileutil::magic::cgen, fileutil::magic::filetype,
    fileutil::magic::mimetype, fileutil::magic::rt, fileutil::multi,
    fileutil::multi::op, ftp::geturl, ftpd, generator, gpx,
    grammar::aycock, grammar::aycock::debug,
    grammar::aycock::runtime, grammar::fa, grammar::fa::dacceptor,
    grammar::fa::dexec, grammar::fa::op, grammar::me::cpu,
    grammar::me::cpu::core, grammar::me::cpu::gasm,
    grammar::me::tcl, grammar::me::util, grammar::peg,
    grammar::peg::interp, hook, htmlparse, huddle, ident, interp,
    interp::delegate::method, interp::delegate::proc, javascript,
    jpeg, lambda, ldapx, log, logger::appender,
    map::geocode::nominatim, map::slippy, map::slippy::cache,
    map::slippy::fetcher, mapproj, math::bignum,
    math::calculus::symdiff, math::complexnumbers, math::constants,
    math::decimal, math::fourier, math::fuzzy, math::geometry,
    math::interpolate, math::machineparameters, math::numtheory,
    math::polynomials, math::rationalfunctions, math::roman, mime,
    multiplexer, nameserv, nameserv::auto, nameserv::common,
    nameserv::server, namespacex, nmea, nntp,
    page::analysis::peg::emodes, page::analysis::peg::minimize,
    page::analysis::peg::reachable, page::analysis::peg::realizable,
    page::compiler::peg::mecpu, page::config::peg,
    page::gen::peg::canon, page::gen::peg::cpkg, page::gen::peg::hb,
    page::gen::peg::me, page::gen::peg::mecpu, page::gen::peg::ser,
    page::gen::tree::text, page::parse::lemon, page::parse::peg,
    page::parse::peghb, page::parse::pegser, page::pluginmgr,
    page::reader::hb, page::reader::lemon, page::reader::peg,
    page::reader::ser, page::reader::treeser,
    page::transform::mecpu, page::transform::reachable,
    page::transform::realizable, page::util::flow,
    page::util::norm::lemon, page::util::norm::peg, page::util::peg,
    page::util::quote, page::writer::hb, page::writer::identity,
    page::writer::me, page::writer::mecpu, page::writer::null,
    page::writer::peg, page::writer::ser, page::writer::tpc,
    page::writer::tree, paths, pki, pluginmgr, png, profiler,
    pt::ast, pt::pe::op, pt::peg, pt::peg::container,
    pt::peg::container::peg, pt::peg::export,
    pt::peg::export::container, pt::peg::export::json,
    pt::peg::export::peg, pt::peg::from::json, pt::peg::import,
    pt::peg::import::json, pt::peg::import::peg,
    pt::peg::to::container, pt::peg::to::json, rcs,
    simulation::annealing, simulation::montecarlo,
    simulation::random, snit, soundex, stooop, string::token,
    stringprep, stringprep::data, struct, struct::disjointset,
    struct::graph, struct::graph::op, struct::list,
    struct::prioqueue, struct::queue, struct::record, struct::set,
    struct::skiplist, struct::stack, struct::tree, switched,
    tcl::chan::cat, tcl::chan::core, tcl::chan::events,
    tcl::chan::facade, tcl::chan::fifo, tcl::chan::fifo2,
    tcl::chan::halfpipe, tcl::chan::memchan, tcl::chan::null,
    tcl::chan::nullzero, tcl::chan::random, tcl::chan::std,
    tcl::chan::string, tcl::chan::textwindow, tcl::chan::variable,
    tcl::chan::zero, tcl::randomseed, tcl::transform::adler32,
    tcl::transform::base64, tcl::transform::core,
    tcl::transform::counter, tcl::transform::crc32,
    tcl::transform::hex, tcl::transform::identity,
    tcl::transform::limitsize, tcl::transform::observe,
    tcl::transform::otp, tcl::transform::rot,
    tcl::transform::spacer, tclDES, tclDESjr, term,
    term::ansi::code, term::ansi::code::attr,
    term::ansi::code::ctrl, term::ansi::code::macros,
    term::ansi::ctrl::unix, term::ansi::send, term::interact::menu,
    term::interact::pager, term::receive, term::receive::bind,
    term::send, text::write, textutil, textutil::expander,
    textutil::repeat, textutil::split, textutil::string,
    textutil::tabify, textutil::trim, tie, tie::std::array,
    tie::std::dsource, tie::std::file, tie::std::growfile,
    tie::std::log, tie::std::rarray, tiff, treeql, try, uevent,
    uevent::onidle, unicode, unicode::data, units, valtype::common,
    valtype::creditcard::amex, valtype::creditcard::discover,
    valtype::creditcard::mastercard, valtype::creditcard::visa,
    valtype::gs1::ean13, valtype::imei, valtype::isbn,
    valtype::luhn, valtype::luhn5, valtype::usnpi,
    valtype::verhoeff, wip, zipfile::encode

Legend  Change  Details Comments
        ------  ------- ---------
        Major   API:    ** incompatible ** API changes.

        Minor   EF :    Extended functionality, API.
                I  :    Major rewrite, but no API change

        Patch   B  :    Bug fixes.
                EX :    New examples.
                P  :    Performance enhancement.

        None    T  :    Testsuite changes.
                D  :    Documentation updates.
    

Changes to tcllib.spec.

1
2
3
4
5
6
7
8
9
10
# $Id: package_rpm.txt,v 1.1 2006/07/01 03:16:57 andreas_kupries Exp $

%define version 1.15
%define directory /usr

Summary: The standard Tcl library
Name: tcllib
Version: %{version}
Release: 2
Copyright: BSD


|







1
2
3
4
5
6
7
8
9
10
# $Id: package_rpm.txt,v 1.1 2006/07/01 03:16:57 andreas_kupries Exp $

%define version 1.17
%define directory /usr

Summary: The standard Tcl library
Name: tcllib
Version: %{version}
Release: 2
Copyright: BSD

Changes to tcllib.tap.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
format  {TclDevKit Project File}
fmtver  2.0
fmttool {TclDevKit TclApp PackageDefinition} 2.5

##  Saved at : Fri Feb 15 16:12:19 PST 2013
##  By       : andreask
##
##  Generated by "sak.tcl tap"
##  of tcllib 1.15

########
#####
###
##
#

# ###############
# Complete bundle

Package {tcllib 1.15}
Base     @TAP_DIR@
Platform *
Desc     {Tcllib: Bundle of all packages}
Path     pkgIndex.tcl
Path     aes
Path     amazon-s3
Path     asn




|



|










|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
format  {TclDevKit Project File}
fmtver  2.0
fmttool {TclDevKit TclApp PackageDefinition} 2.5

##  Saved at : Wed Apr 29 15:26:36 PDT 2015
##  By       : andreask
##
##  Generated by "sak.tcl tap"
##  of tcllib 1.17

########
#####
###
##
#

# ###############
# Complete bundle

Package {tcllib 1.17}
Base     @TAP_DIR@
Platform *
Desc     {Tcllib: Bundle of all packages}
Path     pkgIndex.tcl
Path     aes
Path     amazon-s3
Path     asn
36
37
38
39
40
41
42

43

44
45
46
47
48
49
50

51
52
53
54
55
56
57
Path     clock
Path     cmdline
Path     comm
Path     control
Path     coroutine
Path     counter
Path     crc

Path     csv

Path     des
Path     dns
Path     docstrip
Path     doctools
Path     doctools2base
Path     doctools2idx
Path     doctools2toc

Path     exif
Path     fileutil
Path     ftp
Path     ftpd
Path     fumagic
Path     generator
Path     gpx







>

>







>







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
Path     clock
Path     cmdline
Path     comm
Path     control
Path     coroutine
Path     counter
Path     crc
Path     cron
Path     csv
Path     debug
Path     des
Path     dns
Path     docstrip
Path     doctools
Path     doctools2base
Path     doctools2idx
Path     doctools2toc
Path     dtplite
Path     exif
Path     fileutil
Path     ftp
Path     ftpd
Path     fumagic
Path     generator
Path     gpx
80
81
82
83
84
85
86

87
88
89
90

91
92
93
94
95
96
97
98

99
100
101
102
103
104
105
Path     md4
Path     md5
Path     md5crypt
Path     mime
Path     multiplexer
Path     namespacex
Path     ncgi

Path     nmea
Path     nns
Path     nntp
Path     ntp

Path     ooutil
Path     otp
Path     page
Path     pki
Path     pluginmgr
Path     png
Path     pop3
Path     pop3d

Path     profiler
Path     pt
Path     rc4
Path     rcs
Path     report
Path     rest
Path     ripemd







>




>








>







83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
Path     md4
Path     md5
Path     md5crypt
Path     mime
Path     multiplexer
Path     namespacex
Path     ncgi
Path     nettool
Path     nmea
Path     nns
Path     nntp
Path     ntp
Path     oauth
Path     ooutil
Path     otp
Path     page
Path     pki
Path     pluginmgr
Path     png
Path     pop3
Path     pop3d
Path     processman
Path     profiler
Path     pt
Path     rc4
Path     rcs
Path     report
Path     rest
Path     ripemd
126
127
128
129
130
131
132

133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
Path     units
Path     uri
Path     uuid
Path     valtype
Path     virtchannel_base
Path     virtchannel_core
Path     virtchannel_transform

Path     wip
Path     yaml
Path     zip

# ############
# Module "aes"
# [1]    | "aes" (1.1)
# -------+

Package {aes 1.1}
Platform *
Desc     {Implementation of the AES block cipher}
Base     @TAP_DIR@/aes
Path     aes.tcl
Path     pkgIndex.tcl

#
# ############

# ##################
# Module "amazon-s3"
# [1]    | "S3" (1.0.0)
# [2]    | "xsxp" (1.0)
# -------+

Package {__amazon-s3 0.0}
Platform *
Desc     {Amazon S3 Web Service Utilities}
Hidden
Base     @TAP_DIR@/amazon-s3
Path     pkgIndex.tcl
Path     S3.tcl
Path     xsxp.tcl

Package {S3 1.0.0}
See   __amazon-s3
Platform *
Desc     {Tcllib package}

Package {xsxp 1.0}
See   __amazon-s3
Platform *
Desc     {Amazon S3 Web Service Interface}

#
# ##################

# ############
# Module "asn"
# [1]    | "asn" (0.8.4)







>






|


|











|












|


|




|







132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
Path     units
Path     uri
Path     uuid
Path     valtype
Path     virtchannel_base
Path     virtchannel_core
Path     virtchannel_transform
Path     websocket
Path     wip
Path     yaml
Path     zip

# ############
# Module "aes"
# [1]    | "aes" (1.2.1)
# -------+

Package {aes 1.2.1}
Platform *
Desc     {Implementation of the AES block cipher}
Base     @TAP_DIR@/aes
Path     aes.tcl
Path     pkgIndex.tcl

#
# ############

# ##################
# Module "amazon-s3"
# [1]    | "S3" (1.0.3)
# [2]    | "xsxp" (1.0)
# -------+

Package {__amazon-s3 0.0}
Platform *
Desc     {Amazon S3 Web Service Utilities}
Hidden
Base     @TAP_DIR@/amazon-s3
Path     pkgIndex.tcl
Path     S3.tcl
Path     xsxp.tcl

Package {S3 1.0.3}
See   __amazon-s3
Platform *
Desc     {Amazon S3 Web Service Interface}

Package {xsxp 1.0}
See   __amazon-s3
Platform *
Desc     {eXtremely Simple Xml Parser}

#
# ##################

# ############
# Module "asn"
# [1]    | "asn" (0.8.4)
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311





312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
Path     pkgIndex.tcl

#
# ############

# ##############
# Module "bench"
# [1]    | "bench::out::csv" (0.1.2)
# [2]    | "bench" (0.4)
# [3]    | "bench::out::text" (0.1.2)
# [4]    | "bench::in" (0.1)
# -------+

Package {__bench 0.0}
Platform *
Desc     {Benchmarking/Performance tools}
Hidden
Base     @TAP_DIR@/bench
Path     bench.tcl
Path     bench_read.tcl
Path     bench_wcsv.tcl
Path     bench_wtext.tcl
Path     libbench.tcl
Path     pkgIndex.tcl






Package {bench::out::csv 0.1.2}
See   __bench
Platform *
Desc     {bench::out::csv - Formatting benchmark results as CSV}

Package {bench 0.4}
See   __bench
Platform *
Desc     {bench - Processing benchmark suites}

Package {bench::out::text 0.1.2}
See   __bench
Platform *
Desc     {bench::out::text - Formatting benchmark results as human readable text}

Package {bench::in 0.1}
See   __bench
Platform *
Desc     {bench::in - Reading benchmark results}

#
# ##############

# ###############
# Module "bibtex"
# [1]    | "bibtex" (0.5)
# -------+

Package {bibtex 0.5}
Platform *
Desc     {Parse bibtex files}
Base     @TAP_DIR@/bibtex
Path     bibtex.tcl
Path     pkgIndex.tcl

#







|
|
















>
>
>
>
>





<
<
<
<
<















|


|







294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328





329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
Path     pkgIndex.tcl

#
# ############

# ##############
# Module "bench"
# [1]    | "bench" (0.4)
# [2]    | "bench::out::csv" (0.1.2)
# [3]    | "bench::out::text" (0.1.2)
# [4]    | "bench::in" (0.1)
# -------+

Package {__bench 0.0}
Platform *
Desc     {Benchmarking/Performance tools}
Hidden
Base     @TAP_DIR@/bench
Path     bench.tcl
Path     bench_read.tcl
Path     bench_wcsv.tcl
Path     bench_wtext.tcl
Path     libbench.tcl
Path     pkgIndex.tcl

Package {bench 0.4}
See   __bench
Platform *
Desc     {bench - Processing benchmark suites}

Package {bench::out::csv 0.1.2}
See   __bench
Platform *
Desc     {bench::out::csv - Formatting benchmark results as CSV}






Package {bench::out::text 0.1.2}
See   __bench
Platform *
Desc     {bench::out::text - Formatting benchmark results as human readable text}

Package {bench::in 0.1}
See   __bench
Platform *
Desc     {bench::in - Reading benchmark results}

#
# ##############

# ###############
# Module "bibtex"
# [1]    | "bibtex" (0.6)
# -------+

Package {bibtex 0.6}
Platform *
Desc     {Parse bibtex files}
Base     @TAP_DIR@/bibtex
Path     bibtex.tcl
Path     pkgIndex.tcl

#
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
Desc     {Parsing ISO 8601 dates/times}

#
# ##############

# ################
# Module "cmdline"
# [1]    | "cmdline" (1.3.3)
# -------+

Package {cmdline 1.3.3}
Platform *
Desc     {Procedures to process command lines and options.}
Base     @TAP_DIR@/cmdline
Path     cmdline.tcl
Path     pkgIndex.tcl

#
# ################

# #############
# Module "comm"
# [1]    | "comm" (4.6.2)
# -------+

Package {comm 4.6.2}
Platform *
Desc     {A remote communication facility for Tcl (8.3 and later)}
Base     @TAP_DIR@/comm
Path     comm.tcl
Path     pkgIndex.tcl

#
# #############

# ################
# Module "control"
# [1]    | "control" (0.1.3)
# -------+

Package {control 0.1.3}
Platform *
Desc     {Procedures for control flow structures.}
Base     @TAP_DIR@/control
Path     ascaller.tcl
Path     assert.tcl
Path     control.tcl
Path     do.tcl
Path     no-op.tcl
Path     pkgIndex.tcl
Path     tclIndex

#
# ################

# ##################
# Module "coroutine"
# [1]    | "coroutine" (1.1)
# [2]    | "coroutine::auto" (1.1)
# -------+

Package {__coroutine 0.0}
Platform *
Desc     {Coroutine utilities}
Hidden
Base     @TAP_DIR@/coroutine
Path     coro_auto.tcl
Path     coroutine.tcl
Path     pkgIndex.tcl

Package {coroutine 1.1}
See   __coroutine
Platform *
Desc     {Coroutine based event and IO handling}

Package {coroutine::auto 1.1}
See   __coroutine
Platform *
Desc     {Automatic event and IO coroutine awareness}

#
# ##################








|


|











|


|

|














|














|
|











|




|







427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
Desc     {Parsing ISO 8601 dates/times}

#
# ##############

# ################
# Module "cmdline"
# [1]    | "cmdline" (1.5)
# -------+

Package {cmdline 1.5}
Platform *
Desc     {Procedures to process command lines and options.}
Base     @TAP_DIR@/cmdline
Path     cmdline.tcl
Path     pkgIndex.tcl

#
# ################

# #############
# Module "comm"
# [1]    | "comm" (4.6.3.1)
# -------+

Package {comm 4.6.3.1}
Platform *
Desc     {The comm wire protocol}
Base     @TAP_DIR@/comm
Path     comm.tcl
Path     pkgIndex.tcl

#
# #############

# ################
# Module "control"
# [1]    | "control" (0.1.3)
# -------+

Package {control 0.1.3}
Platform *
Desc     {Iterative directory traversal}
Base     @TAP_DIR@/control
Path     ascaller.tcl
Path     assert.tcl
Path     control.tcl
Path     do.tcl
Path     no-op.tcl
Path     pkgIndex.tcl
Path     tclIndex

#
# ################

# ##################
# Module "coroutine"
# [1]    | "coroutine" (1.1.3)
# [2]    | "coroutine::auto" (1.1.3)
# -------+

Package {__coroutine 0.0}
Platform *
Desc     {Coroutine utilities}
Hidden
Base     @TAP_DIR@/coroutine
Path     coro_auto.tcl
Path     coroutine.tcl
Path     pkgIndex.tcl

Package {coroutine 1.1.3}
See   __coroutine
Platform *
Desc     {Coroutine based event and IO handling}

Package {coroutine::auto 1.1.3}
See   __coroutine
Platform *
Desc     {Automatic event and IO coroutine awareness}

#
# ##################

513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537





538
539
540
541
542
543
544
545
546
547
548
549
550
551
552








553
554
555
556



557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574










































575
576
577
578
579
580
581
Path     pkgIndex.tcl

#
# ################

# ############
# Module "crc"
# [1]    | "sum" (1.1.0)
# [2]    | "crc32" (1.3.1)
# [3]    | "crc16" (1.1.2)
# [4]    | "cksum" (1.1.3)
# -------+

Package {__crc 0.0}
Platform *
Desc     {Cyclic Redundancy Checks}
Hidden
Base     @TAP_DIR@/crc
Path     cksum.tcl
Path     crc16.tcl
Path     crc32.tcl
Path     crcc.tcl
Path     pkgIndex.tcl
Path     sum.tcl






Package {sum 1.1.0}
See   __crc
Platform *
Desc     {Calculate a sum(1) compatible checksum}

Package {crc32 1.3.1}
See   __crc
Platform *
Desc     {Perform a 32bit Cyclic Redundancy Check}

Package {crc16 1.1.2}
See   __crc
Platform *
Desc     {Perform a 16bit Cyclic Redundancy Check}









Package {cksum 1.1.3}
See   __crc
Platform *
Desc     {Calculate a cksum(1) compatible checksum}




#
# ############

# ############
# Module "csv"
# [1]    | "csv" (0.8)
# -------+

Package {csv 0.8}
Platform *
Desc     {Procedures to handle CSV data.}
Base     @TAP_DIR@/csv
Path     csv.tcl
Path     pkgIndex.tcl

#
# ############











































# ############
# Module "des"
# [1]    | "des" (1.1.0)
# [2]    | "tclDES" (1.0.0)
# [3]    | "tclDESjr" (1.0.0)
# -------+







|
|
|
|














>
>
>
>
>
|




|


|






>
>
>
>
>
>
>
>
|
<

|
>
>
>


|















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573

574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
Path     pkgIndex.tcl

#
# ################

# ############
# Module "crc"
# [1]    | "crc32" (1.3.2)
# [2]    | "sum" (1.1.2)
# [3]    | "cksum" (1.1.4)
# [4]    | "crc16" (1.1.2)
# -------+

Package {__crc 0.0}
Platform *
Desc     {Cyclic Redundancy Checks}
Hidden
Base     @TAP_DIR@/crc
Path     cksum.tcl
Path     crc16.tcl
Path     crc32.tcl
Path     crcc.tcl
Path     pkgIndex.tcl
Path     sum.tcl

Package {crc32 1.3.2}
See   __crc
Platform *
Desc     {Perform a 32bit Cyclic Redundancy Check}

Package {sum 1.1.2}
See   __crc
Platform *
Desc     {Calculate a sum(1) compatible checksum}

Package {cksum 1.1.4}
See   __crc
Platform *
Desc     {Calculate a cksum(1) compatible checksum}

Package {crc16 1.1.2}
See   __crc
Platform *
Desc     {Perform a 16bit Cyclic Redundancy Check}

#
# ############

# #############
# Module "cron"
# [1]    | "cron" (1.1)
# -------+

Package {cron 1.1}

Platform *
Desc     {Tool for automating the period callback of commands}
Base     @TAP_DIR@/cron
Path     cron.tcl
Path     pkgIndex.tcl

#
# #############

# ############
# Module "csv"
# [1]    | "csv" (0.8)
# -------+

Package {csv 0.8}
Platform *
Desc     {Procedures to handle CSV data.}
Base     @TAP_DIR@/csv
Path     csv.tcl
Path     pkgIndex.tcl

#
# ############

# ##############
# Module "debug"
# [1]    | "debug::caller" (1)
# [2]    | "debug::timestamp" (1)
# [3]    | "debug::heartbeat" (1)
# [4]    | "debug" (1.0.5)
# -------+

Package {__debug 0.0}
Platform *
Desc     {debug narrative}
Hidden
Base     @TAP_DIR@/debug
Path     caller.tcl
Path     debug.tcl
Path     heartbeat.tcl
Path     pkgIndex.tcl
Path     timestamp.tcl

Package {debug::caller 1}
See   __debug
Platform *
Desc     {debug narrative - caller}

Package {debug::timestamp 1}
See   __debug
Platform *
Desc     {debug narrative - timestamping}

Package {debug::heartbeat 1}
See   __debug
Platform *
Desc     {debug narrative - heartbeat}

Package {debug 1.0.5}
See   __debug
Platform *
Desc     {debug narrative - core}

#
# ##############

# ############
# Module "des"
# [1]    | "des" (1.1.0)
# [2]    | "tclDES" (1.0.0)
# [3]    | "tclDESjr" (1.0.0)
# -------+
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632





633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
See   __des
Platform *
Desc     {Implementation of the DES and triple-DES ciphers}

Package {tclDES 1.0.0}
See   __des
Platform *
Desc     {Tcllib package}

Package {tclDESjr 1.0.0}
See   __des
Platform *
Desc     {Tcllib package}

#
# ############

# ############
# Module "dns"
# [1]    | "ip" (1.2)
# [2]    | "spf" (1.1.1)
# [3]    | "dns" (1.3.3)
# [4]    | "resolv" (1.0.3)
# -------+

Package {__dns 0.0}
Platform *
Desc     {Domain Name Service}
Hidden
Base     @TAP_DIR@/dns
Path     dns.tcl
Path     ip.tcl
Path     ipMore.tcl
Path     ipMoreC.tcl
Path     msgs/en.msg
Path     pkgIndex.tcl
Path     resolv.tcl
Path     spf.tcl






Package {ip 1.2}
See   __dns
Platform *
Desc     {IPv4 and IPv6 address manipulation}

Package {spf 1.1.1}
See   __dns
Platform *
Desc     {Tcllib package}

Package {dns 1.3.3}
See   __dns
Platform *
Desc     {Tcl Domain Name Service Client}

Package {resolv 1.0.3}
See   __dns
Platform *
Desc     {Tcllib package}

#
# ############







|




|






|
|
|

















>
>
>
>
>
|









<
<
<
<
<







658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711





712
713
714
715
716
717
718
See   __des
Platform *
Desc     {Implementation of the DES and triple-DES ciphers}

Package {tclDES 1.0.0}
See   __des
Platform *
Desc     {Implementation of the DES and triple-DES ciphers}

Package {tclDESjr 1.0.0}
See   __des
Platform *
Desc     {Implementation of the DES and triple-DES ciphers}

#
# ############

# ############
# Module "dns"
# [1]    | "dns" (1.3.5)
# [2]    | "ip" (1.3)
# [3]    | "spf" (1.1.1)
# [4]    | "resolv" (1.0.3)
# -------+

Package {__dns 0.0}
Platform *
Desc     {Domain Name Service}
Hidden
Base     @TAP_DIR@/dns
Path     dns.tcl
Path     ip.tcl
Path     ipMore.tcl
Path     ipMoreC.tcl
Path     msgs/en.msg
Path     pkgIndex.tcl
Path     resolv.tcl
Path     spf.tcl

Package {dns 1.3.5}
See   __dns
Platform *
Desc     {Tcl Domain Name Service Client}

Package {ip 1.3}
See   __dns
Platform *
Desc     {IPv4 and IPv6 address manipulation}

Package {spf 1.1.1}
See   __dns
Platform *
Desc     {Tcllib package}






Package {resolv 1.0.3}
See   __dns
Platform *
Desc     {Tcllib package}

#
# ############
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
Desc     {Docstrip-related utilities}

#
# #################

# #################
# Module "doctools"
# [1]    | "doctools::idx" (1.0.4)
# [2]    | "doctools::toc" (1.1.3)
# [3]    | "doctools" (1.4.14)
# [4]    | "doctools::cvs" (1)
# [5]    | "doctools::changelog" (1.1)
# -------+

Package {__doctools 0.0}
Platform *
Desc     {Documentation tools}
Hidden
Base     @TAP_DIR@/doctools







|
|
|

|







743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
Desc     {Docstrip-related utilities}

#
# #################

# #################
# Module "doctools"
# [1]    | "doctools::idx" (1.0.5)
# [2]    | "doctools::toc" (1.1.4)
# [3]    | "doctools::changelog" (1.1)
# [4]    | "doctools::cvs" (1)
# [5]    | "doctools" (1.4.19)
# -------+

Package {__doctools 0.0}
Platform *
Desc     {Documentation tools}
Hidden
Base     @TAP_DIR@/doctools
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809





810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
Path     mpformats/toc.nroff
Path     mpformats/toc.null
Path     mpformats/toc.text
Path     mpformats/toc.tmml
Path     mpformats/toc.wiki
Path     pkgIndex.tcl

Package {doctools::idx 1.0.4}
See   __doctools
Platform *
Desc     {docidx - Processing indices}

Package {doctools::toc 1.1.3}
See   __doctools
Platform *
Desc     {doctoc - Processing tables of contents}

Package {doctools 1.4.14}
See   __doctools
Platform *
Desc     {doctools - Processing documents}

Package {doctools::cvs 1}
See   __doctools
Platform *
Desc     {Processing text in 'cvs log' format}

Package {doctools::changelog 1.1}
See   __doctools
Platform *
Desc     {Processing text in Emacs ChangeLog format}

#
# #################

# ######################
# Module "doctools2base"
# [1]    | "doctools::text" (0.1)
# [2]    | "doctools::html" (0.1)
# [3]    | "doctools::tcl::parse" (0.1)
# [4]    | "doctools::html::cssdefaults" (0.1)
# [5]    | "doctools::config" (0.1)
# [6]    | "doctools::msgcat" (0.1)
# [7]    | "doctools::nroff::man_macros" (0.1)
# [8]    | "doctools::paths" (0.1)
# -------+

Package {__doctools2base 0.0}
Platform *
Desc     {Documentation tools}
Hidden
Base     @TAP_DIR@/doctools2base
Path     config.tcl
Path     html.tcl
Path     html_cssdefaults.tcl
Path     msgcat.tcl
Path     nroff_manmacros.tcl
Path     paths.tcl
Path     pkgIndex.tcl
Path     tcl_parse.tcl
Path     text.tcl

Package {doctools::text 0.1}
See   __doctools2base
Platform *
Desc     {Tcllib package}

Package {doctools::html 0.1}
See   __doctools2base
Platform *
Desc     {Tcllib package}

Package {doctools::tcl::parse 0.1}
See   __doctools2base





Platform *
Desc     {Tcllib package}

Package {doctools::html::cssdefaults 0.1}
See   __doctools2base
Platform *
Desc     {Default CSS style for HTML export plugins}

Package {doctools::config 0.1}
See   __doctools2base
Platform *
Desc     {Tcllib package}

Package {doctools::msgcat 0.1}
See   __doctools2base
Platform *
Desc     {Message catalog management for the various document parsers}

Package {doctools::nroff::man_macros 0.1}
See   __doctools2base







|


|

|


|

|


|






|


|






|
|

|
|




















|




|






>
>
>
>
>








<
<
<
<
<







800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886





887
888
889
890
891
892
893
Path     mpformats/toc.nroff
Path     mpformats/toc.null
Path     mpformats/toc.text
Path     mpformats/toc.tmml
Path     mpformats/toc.wiki
Path     pkgIndex.tcl

Package {doctools::idx 1.0.5}
See   __doctools
Platform *
Desc     {Holding keyword indices}

Package {doctools::toc 1.1.4}
See   __doctools
Platform *
Desc     {Holding tables of contents}

Package {doctools::changelog 1.1}
See   __doctools
Platform *
Desc     {Processing text in Emacs ChangeLog format}

Package {doctools::cvs 1}
See   __doctools
Platform *
Desc     {Processing text in 'cvs log' format}

Package {doctools 1.4.19}
See   __doctools
Platform *
Desc     {doctools - Processing documents}

#
# #################

# ######################
# Module "doctools2base"
# [1]    | "doctools::html" (0.1)
# [2]    | "doctools::text" (0.1)
# [3]    | "doctools::tcl::parse" (0.1)
# [4]    | "doctools::config" (0.1)
# [5]    | "doctools::html::cssdefaults" (0.1)
# [6]    | "doctools::msgcat" (0.1)
# [7]    | "doctools::nroff::man_macros" (0.1)
# [8]    | "doctools::paths" (0.1)
# -------+

Package {__doctools2base 0.0}
Platform *
Desc     {Documentation tools}
Hidden
Base     @TAP_DIR@/doctools2base
Path     config.tcl
Path     html.tcl
Path     html_cssdefaults.tcl
Path     msgcat.tcl
Path     nroff_manmacros.tcl
Path     paths.tcl
Path     pkgIndex.tcl
Path     tcl_parse.tcl
Path     text.tcl

Package {doctools::html 0.1}
See   __doctools2base
Platform *
Desc     {Tcllib package}

Package {doctools::text 0.1}
See   __doctools2base
Platform *
Desc     {Tcllib package}

Package {doctools::tcl::parse 0.1}
See   __doctools2base
Platform *
Desc     {Processing text in 'subst -novariables' format}

Package {doctools::config 0.1}
See   __doctools2base
Platform *
Desc     {Tcllib package}

Package {doctools::html::cssdefaults 0.1}
See   __doctools2base
Platform *
Desc     {Default CSS style for HTML export plugins}






Package {doctools::msgcat 0.1}
See   __doctools2base
Platform *
Desc     {Message catalog management for the various document parsers}

Package {doctools::nroff::man_macros 0.1}
See   __doctools2base
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
# Module "doctools2idx"
# [1]    | "doctools::idx::import::json" (0.1)
# [2]    | "doctools::idx::structure" (0.1)
# [3]    | "doctools::idx::export::nroff" (0.3)
# [4]    | "doctools::idx::import::docidx" (0.1)
# [5]    | "doctools::idx::export" (0.1)
# [6]    | "doctools::idx::parse" (0.1)
# [7]    | "doctools::idx::export::html" (0.2)
# [8]    | "doctools::msgcat::idx::fr" (0.1)
# [9]    | "doctools::msgcat::idx::de" (0.1)
# [10]    | "doctools::idx" (2)
# [11]    | "doctools::msgcat::idx::en" (0.1)
# [12]    | "doctools::msgcat::idx::c" (0.1)
# [13]    | "doctools::idx::export::json" (0.1)
# [14]    | "doctools::idx::export::docidx" (0.1)
# [15]    | "doctools::idx::export::wiki" (0.2)
# [16]    | "doctools::idx::import" (0.1)
# [17]    | "doctools::idx::export::text" (0.2)
# -------+








|
|


|
|







906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
# Module "doctools2idx"
# [1]    | "doctools::idx::import::json" (0.1)
# [2]    | "doctools::idx::structure" (0.1)
# [3]    | "doctools::idx::export::nroff" (0.3)
# [4]    | "doctools::idx::import::docidx" (0.1)
# [5]    | "doctools::idx::export" (0.1)
# [6]    | "doctools::idx::parse" (0.1)
# [7]    | "doctools::msgcat::idx::fr" (0.1)
# [8]    | "doctools::idx::export::html" (0.2)
# [9]    | "doctools::msgcat::idx::de" (0.1)
# [10]    | "doctools::idx" (2)
# [11]    | "doctools::msgcat::idx::c" (0.1)
# [12]    | "doctools::msgcat::idx::en" (0.1)
# [13]    | "doctools::idx::export::json" (0.1)
# [14]    | "doctools::idx::export::docidx" (0.1)
# [15]    | "doctools::idx::export::wiki" (0.2)
# [16]    | "doctools::idx::import" (0.1)
# [17]    | "doctools::idx::export::text" (0.2)
# -------+

909
910
911
912
913
914
915





916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933

934




935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
Desc     {Exporting keyword indices}

Package {doctools::idx::parse 0.1}
See   __doctools2idx
Platform *
Desc     {Parsing text in docidx format}






Package {doctools::idx::export::html 0.2}
See   __doctools2idx
Platform *
Desc     {HTML export plugin}

Package {doctools::msgcat::idx::fr 0.1}
See   __doctools2idx
Platform *
Desc     {Message catalog for the docidx parser (FR)}

Package {doctools::msgcat::idx::de 0.1}
See   __doctools2idx
Platform *
Desc     {Message catalog for the docidx parser (DE)}

Package {doctools::idx 2}
See   __doctools2idx
Platform *

Desc     {docidx - Processing indices}





Package {doctools::msgcat::idx::en 0.1}
See   __doctools2idx
Platform *
Desc     {Message catalog for the docidx parser (EN)}

Package {doctools::msgcat::idx::c 0.1}
See   __doctools2idx
Platform *
Desc     {Message catalog for the docidx parser (C)}

Package {doctools::idx::export::json 0.1}
See   __doctools2idx
Platform *
Desc     {JSON export plugin}

Package {doctools::idx::export::docidx 0.1}
See   __doctools2idx







>
>
>
>
>





<
<
<
<
<








>
|
>
>
>
>






<
<
<
<
<







973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989





990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009





1010
1011
1012
1013
1014
1015
1016
Desc     {Exporting keyword indices}

Package {doctools::idx::parse 0.1}
See   __doctools2idx
Platform *
Desc     {Parsing text in docidx format}

Package {doctools::msgcat::idx::fr 0.1}
See   __doctools2idx
Platform *
Desc     {Message catalog for the docidx parser (FR)}

Package {doctools::idx::export::html 0.2}
See   __doctools2idx
Platform *
Desc     {HTML export plugin}






Package {doctools::msgcat::idx::de 0.1}
See   __doctools2idx
Platform *
Desc     {Message catalog for the docidx parser (DE)}

Package {doctools::idx 2}
See   __doctools2idx
Platform *
Desc     {Holding keyword indices}

Package {doctools::msgcat::idx::c 0.1}
See   __doctools2idx
Platform *
Desc     {Message catalog for the docidx parser (C)}

Package {doctools::msgcat::idx::en 0.1}
See   __doctools2idx
Platform *
Desc     {Message catalog for the docidx parser (EN)}






Package {doctools::idx::export::json 0.1}
See   __doctools2idx
Platform *
Desc     {JSON export plugin}

Package {doctools::idx::export::docidx 0.1}
See   __doctools2idx
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Desc     {plain text export plugin}

#
# #####################

# #####################
# Module "doctools2toc"
# [1]    | "doctools::toc::export::html" (0.1)
# [2]    | "doctools::msgcat::toc::fr" (0.1)
# [3]    | "doctools::toc" (2)
# [4]    | "doctools::msgcat::toc::de" (0.1)
# [5]    | "doctools::msgcat::toc::en" (0.1)
# [6]    | "doctools::toc::export::json" (0.1)
# [7]    | "doctools::toc::structure" (0.1)
# [8]    | "doctools::toc::export::nroff" (0.2)
# [9]    | "doctools::toc::export::wiki" (0.1)
# [10]    | "doctools::toc::import::doctoc" (0.1)
# [11]    | "doctools::toc::import" (0.1)
# [12]    | "doctools::toc::parse" (0.1)
# [13]    | "doctools::toc::export::text" (0.1)
# [14]    | "doctools::msgcat::toc::c" (0.1)
# [15]    | "dict" (1)
# [16]    | "doctools::toc::import::json" (0.1)
# [17]    | "doctools::toc::export::doctoc" (0.1)
# [18]    | "doctools::toc::export" (0.1)
# -------+

Package {__doctools2toc 0.0}
Platform *
Desc     {Documentation tools}
Hidden
Base     @TAP_DIR@/doctools2toc







|
|







|
|
|
|



|
|







1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
Desc     {plain text export plugin}

#
# #####################

# #####################
# Module "doctools2toc"
# [1]    | "doctools::msgcat::toc::fr" (0.1)
# [2]    | "doctools::toc::export::html" (0.1)
# [3]    | "doctools::toc" (2)
# [4]    | "doctools::msgcat::toc::de" (0.1)
# [5]    | "doctools::msgcat::toc::en" (0.1)
# [6]    | "doctools::toc::export::json" (0.1)
# [7]    | "doctools::toc::structure" (0.1)
# [8]    | "doctools::toc::export::nroff" (0.2)
# [9]    | "doctools::toc::export::wiki" (0.1)
# [10]    | "doctools::toc::import" (0.1)
# [11]    | "doctools::toc::import::doctoc" (0.1)
# [12]    | "doctools::toc::export::text" (0.1)
# [13]    | "doctools::toc::parse" (0.1)
# [14]    | "doctools::msgcat::toc::c" (0.1)
# [15]    | "dict" (1)
# [16]    | "doctools::toc::import::json" (0.1)
# [17]    | "doctools::toc::export" (0.1)
# [18]    | "doctools::toc::export::doctoc" (0.1)
# -------+

Package {__doctools2toc 0.0}
Platform *
Desc     {Documentation tools}
Hidden
Base     @TAP_DIR@/doctools2toc
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027





1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063





1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098





1099
1100
1101
1102
1103
1104


1105




1106

1107
1108



1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
Path     msgcat_de.tcl
Path     msgcat_en.tcl
Path     msgcat_fr.tcl
Path     parse.tcl
Path     pkgIndex.tcl
Path     structure.tcl

Package {doctools::toc::export::html 0.1}
See   __doctools2toc
Platform *
Desc     {Tcllib package}

Package {doctools::msgcat::toc::fr 0.1}
See   __doctools2toc
Platform *





Desc     {Tcllib package}

Package {doctools::toc 2}
See   __doctools2toc
Platform *
Desc     {doctoc - Processing tables of contents}

Package {doctools::msgcat::toc::de 0.1}
See   __doctools2toc
Platform *
Desc     {Tcllib package}

Package {doctools::msgcat::toc::en 0.1}
See   __doctools2toc
Platform *
Desc     {Tcllib package}

Package {doctools::toc::export::json 0.1}
See   __doctools2toc
Platform *
Desc     {Tcllib package}

Package {doctools::toc::structure 0.1}
See   __doctools2toc
Platform *
Desc     {Tcllib package}

Package {doctools::toc::export::nroff 0.2}
See   __doctools2toc
Platform *
Desc     {Tcllib package}

Package {doctools::toc::export::wiki 0.1}
See   __doctools2toc
Platform *
Desc     {Tcllib package}






Package {doctools::toc::import::doctoc 0.1}
See   __doctools2toc
Platform *
Desc     {doctoc import plugin}

Package {doctools::toc::import 0.1}
See   __doctools2toc
Platform *
Desc     {Tcllib package}

Package {doctools::toc::parse 0.1}
See   __doctools2toc
Platform *
Desc     {Tcllib package}

Package {doctools::toc::export::text 0.1}
See   __doctools2toc
Platform *
Desc     {Tcllib package}

Package {doctools::msgcat::toc::c 0.1}
See   __doctools2toc
Platform *
Desc     {Tcllib package}

Package {dict 1}
See   __doctools2toc
Platform *
Desc     {Tcllib package}

Package {doctools::toc::import::json 0.1}
See   __doctools2toc
Platform *
Desc     {Tcllib package}






Package {doctools::toc::export::doctoc 0.1}
See   __doctools2toc
Platform *
Desc     {doctoc export plugin}



Package {doctools::toc::export 0.1}




See   __doctools2toc

Platform *
Desc     {Tcllib package}




#
# #####################

# #############
# Module "exif"
# [1]    | "exif" (1.1.2)
# -------+

Package {exif 1.1.2}
Platform *
Desc     {Tcl EXIF extracts and parses EXIF fields from digital images}
Base     @TAP_DIR@/exif
Path     exif.tcl
Path     pkgIndex.tcl

#
# #############

# #################
# Module "fileutil"
# [1]    | "fileutil::multi::op" (0.5.3)
# [2]    | "fileutil::multi" (0.1)
# [3]    | "fileutil" (1.14.5)
# [4]    | "fileutil::decode" (0.2)
# [5]    | "fileutil::traverse" (0.4.3)
# -------+

Package {__fileutil 0.0}
Platform *
Desc     {file utilities, Documentation tools}
Hidden
Base     @TAP_DIR@/fileutil
Path     decode.tcl
Path     fileutil.tcl
Path     multi.tcl
Path     multiop.tcl
Path     pkgIndex.tcl
Path     traverse.tcl

Package {fileutil::multi::op 0.5.3}
See   __fileutil
Platform *
Desc     {Multi-file operation, scatter/gather}

Package {fileutil::multi 0.1}
See   __fileutil
Platform *
Desc     {Multi-file operation, scatter/gather, standard object}

Package {fileutil 1.14.5}
See   __fileutil
Platform *
Desc     {Processing text in 'subst -novariables' format}

Package {fileutil::decode 0.2}
See   __fileutil
Platform *
Desc     {Tcllib package}

Package {fileutil::traverse 0.4.3}
See   __fileutil
Platform *
Desc     {Iterative directory traversal}

#
# #################

# ############
# Module "ftp"
# [1]    | "ftp::geturl" (0.2.1)
# [2]    | "ftp" (2.4.11)
# -------+

Package {__ftp 0.0}
Platform *
Desc     {ftp client}
Hidden
Base     @TAP_DIR@/ftp
Path     ftp.tcl
Path     ftp_geturl.tcl
Path     pkgIndex.tcl

Package {ftp::geturl 0.2.1}
See   __ftp
Platform *
Desc     {Uri handler for ftp urls}

Package {ftp 2.4.11}
See   __ftp
Platform *
Desc     {Client-side tcl implementation of the ftp protocol}

#
# ############








<
<
<
<
<



>
>
>
>
>
|




|




|




|




|




|




|




|
>
>
>
>
>






|


|




<
|
<
<
<
<




|









|
>
>
>
>
>






>
>
|
>
>
>
>
|
>

|
>
>
>


|




















|

|




|



















|


|






|










|
















|







1077
1078
1079
1080
1081
1082
1083





1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146

1147




1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
Path     msgcat_de.tcl
Path     msgcat_en.tcl
Path     msgcat_fr.tcl
Path     parse.tcl
Path     pkgIndex.tcl
Path     structure.tcl






Package {doctools::msgcat::toc::fr 0.1}
See   __doctools2toc
Platform *
Desc     {Message catalog for the doctoc parser (FR)}

Package {doctools::toc::export::html 0.1}
See   __doctools2toc
Platform *
Desc     {HTML export plugin}

Package {doctools::toc 2}
See   __doctools2toc
Platform *
Desc     {Holding tables of contents}

Package {doctools::msgcat::toc::de 0.1}
See   __doctools2toc
Platform *
Desc     {Message catalog for the doctoc parser (DE)}

Package {doctools::msgcat::toc::en 0.1}
See   __doctools2toc
Platform *
Desc     {Message catalog for the doctoc parser (EN)}

Package {doctools::toc::export::json 0.1}
See   __doctools2toc
Platform *
Desc     {JSON export plugin}

Package {doctools::toc::structure 0.1}
See   __doctools2toc
Platform *
Desc     {Doctoc serialization utilities}

Package {doctools::toc::export::nroff 0.2}
See   __doctools2toc
Platform *
Desc     {nroff export plugin}

Package {doctools::toc::export::wiki 0.1}
See   __doctools2toc
Platform *
Desc     {wiki export plugin}

Package {doctools::toc::import 0.1}
See   __doctools2toc
Platform *
Desc     {Importing keyword indices}

Package {doctools::toc::import::doctoc 0.1}
See   __doctools2toc
Platform *
Desc     {doctoc import plugin}

Package {doctools::toc::export::text 0.1}
See   __doctools2toc
Platform *
Desc     {plain text export plugin}

Package {doctools::toc::parse 0.1}
See   __doctools2toc
Platform *

Desc     {Parsing text in doctoc format}





Package {doctools::msgcat::toc::c 0.1}
See   __doctools2toc
Platform *
Desc     {Message catalog for the doctoc parser (C)}

Package {dict 1}
See   __doctools2toc
Platform *
Desc     {Tcllib package}

Package {doctools::toc::import::json 0.1}
See   __doctools2toc
Platform *
Desc     {JSON import plugin}

Package {doctools::toc::export 0.1}
See   __doctools2toc
Platform *
Desc     {Exporting tables of contents}

Package {doctools::toc::export::doctoc 0.1}
See   __doctools2toc
Platform *
Desc     {doctoc export plugin}

#
# #####################

# ################
# Module "dtplite"
# [1]    | "dtplite" (1.2)
# -------+

Package {dtplite 1.2}
Platform *
Desc     {Lightweight DocTools Markup Processor}
Base     @TAP_DIR@/dtplite
Path     dtplite.tcl
Path     pkgIndex.tcl

#
# ################

# #############
# Module "exif"
# [1]    | "exif" (1.1.2)
# -------+

Package {exif 1.1.2}
Platform *
Desc     {Tcl EXIF extracts and parses EXIF fields from digital images}
Base     @TAP_DIR@/exif
Path     exif.tcl
Path     pkgIndex.tcl

#
# #############

# #################
# Module "fileutil"
# [1]    | "fileutil::multi::op" (0.5.3)
# [2]    | "fileutil::multi" (0.1)
# [3]    | "fileutil" (1.14.10)
# [4]    | "fileutil::decode" (0.2)
# [5]    | "fileutil::traverse" (0.5)
# -------+

Package {__fileutil 0.0}
Platform *
Desc     {file utilities}
Hidden
Base     @TAP_DIR@/fileutil
Path     decode.tcl
Path     fileutil.tcl
Path     multi.tcl
Path     multiop.tcl
Path     pkgIndex.tcl
Path     traverse.tcl

Package {fileutil::multi::op 0.5.3}
See   __fileutil
Platform *
Desc     {Multi-file operation, scatter/gather}

Package {fileutil::multi 0.1}
See   __fileutil
Platform *
Desc     {Multi-file operation, scatter/gather, standard object}

Package {fileutil 1.14.10}
See   __fileutil
Platform *
Desc     {Procedures implementing some file utilities}

Package {fileutil::decode 0.2}
See   __fileutil
Platform *
Desc     {Tcllib package}

Package {fileutil::traverse 0.5}
See   __fileutil
Platform *
Desc     {Iterative directory traversal}

#
# #################

# ############
# Module "ftp"
# [1]    | "ftp::geturl" (0.2.1)
# [2]    | "ftp" (2.4.13)
# -------+

Package {__ftp 0.0}
Platform *
Desc     {ftp client}
Hidden
Base     @TAP_DIR@/ftp
Path     ftp.tcl
Path     ftp_geturl.tcl
Path     pkgIndex.tcl

Package {ftp::geturl 0.2.1}
See   __ftp
Platform *
Desc     {Uri handler for ftp urls}

Package {ftp 2.4.13}
See   __ftp
Platform *
Desc     {Client-side tcl implementation of the ftp protocol}

#
# ############

1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319





1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365

#
# ############

# #######################
# Module "grammar_aycock"
# [1]    | "grammar::aycock::debug" (1.0)
# [2]    | "grammar::aycock" (1.0)
# [3]    | "grammar::aycock::runtime" (1.0)
# -------+

Package {__grammar_aycock 0.0}
Platform *
Desc     {Aycock-Horspool-Earley parser generator for Tcl}
Hidden
Base     @TAP_DIR@/grammar_aycock
Path     aycock-build.tcl
Path     aycock-debug.tcl
Path     aycock-runtime.tcl
Path     pkgIndex.tcl

Package {grammar::aycock::debug 1.0}
See   __grammar_aycock
Platform *
Desc     {Tcllib package}






Package {grammar::aycock 1.0}
See   __grammar_aycock
Platform *
Desc     {Aycock-Horspool-Earley parser generator for Tcl}

Package {grammar::aycock::runtime 1.0}
See   __grammar_aycock
Platform *
Desc     {Tcllib package}

#
# #######################

# ###################
# Module "grammar_fa"
# [1]    | "grammar::fa::op" (0.4.1)
# [2]    | "grammar::fa" (0.4)
# [3]    | "grammar::fa::dexec" (0.2)
# [4]    | "grammar::fa::dacceptor" (0.1.1)
# -------+

Package {__grammar_fa 0.0}
Platform *
Desc     {Finite automaton operations and usage}
Hidden
Base     @TAP_DIR@/grammar_fa
Path     dacceptor.tcl
Path     dexec.tcl
Path     fa.tcl
Path     faop.tcl
Path     pkgIndex.tcl

Package {grammar::fa::op 0.4.1}
See   __grammar_fa
Platform *
Desc     {Operations on finite automatons}

Package {grammar::fa 0.4}
See   __grammar_fa
Platform *
Desc     {Create and manipulate finite automatons}

Package {grammar::fa::dexec 0.2}
See   __grammar_fa
Platform *







|
|
















>
>
>
>
>






<
<
<
<
<






|




















|







1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409





1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444

#
# ############

# #######################
# Module "grammar_aycock"
# [1]    | "grammar::aycock::debug" (1.0)
# [2]    | "grammar::aycock::runtime" (1.0)
# [3]    | "grammar::aycock" (1.0)
# -------+

Package {__grammar_aycock 0.0}
Platform *
Desc     {Aycock-Horspool-Earley parser generator for Tcl}
Hidden
Base     @TAP_DIR@/grammar_aycock
Path     aycock-build.tcl
Path     aycock-debug.tcl
Path     aycock-runtime.tcl
Path     pkgIndex.tcl

Package {grammar::aycock::debug 1.0}
See   __grammar_aycock
Platform *
Desc     {Tcllib package}

Package {grammar::aycock::runtime 1.0}
See   __grammar_aycock
Platform *
Desc     {Tcllib package}

Package {grammar::aycock 1.0}
See   __grammar_aycock
Platform *
Desc     {Aycock-Horspool-Earley parser generator for Tcl}






#
# #######################

# ###################
# Module "grammar_fa"
# [1]    | "grammar::fa::op" (0.4.1)
# [2]    | "grammar::fa" (0.5)
# [3]    | "grammar::fa::dexec" (0.2)
# [4]    | "grammar::fa::dacceptor" (0.1.1)
# -------+

Package {__grammar_fa 0.0}
Platform *
Desc     {Finite automaton operations and usage}
Hidden
Base     @TAP_DIR@/grammar_fa
Path     dacceptor.tcl
Path     dexec.tcl
Path     fa.tcl
Path     faop.tcl
Path     pkgIndex.tcl

Package {grammar::fa::op 0.4.1}
See   __grammar_fa
Platform *
Desc     {Operations on finite automatons}

Package {grammar::fa 0.5}
See   __grammar_fa
Platform *
Desc     {Create and manipulate finite automatons}

Package {grammar::fa::dexec 0.2}
See   __grammar_fa
Platform *
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
Path     pkgIndex.tcl

#
# #############

# #############
# Module "html"
# [1]    | "html" (1.4)
# -------+

Package {html 1.4}
Platform *
Desc     {Procedures to generate HTML structures}
Base     @TAP_DIR@/html
Path     html.tcl
Path     pkgIndex.tcl

#







|


|







1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
Path     pkgIndex.tcl

#
# #############

# #############
# Module "html"
# [1]    | "html" (1.4.4)
# -------+

Package {html 1.4.4}
Platform *
Desc     {Procedures to generate HTML structures}
Base     @TAP_DIR@/html
Path     html.tcl
Path     pkgIndex.tcl

#
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
Path     pkgIndex.tcl

#
# ##############

# ##############
# Module "imap4"
# [1]    | "imap4" (0.5.1)
# -------+

Package {imap4 0.5.1}
Platform *
Desc     {imap client-side tcl implementation of imap protocol}
Base     @TAP_DIR@/imap4
Path     imap4.tcl
Path     pkgIndex.tcl

#
# ##############

# ################
# Module "inifile"
# [1]    | "inifile" (0.2.5)
# -------+

Package {inifile 0.2.5}
Platform *
Desc     {Parsing of Windows INI files}
Base     @TAP_DIR@/inifile
Path     ini.tcl
Path     pkgIndex.tcl

#







|


|











|


|







1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
Path     pkgIndex.tcl

#
# ##############

# ##############
# Module "imap4"
# [1]    | "imap4" (0.5.2)
# -------+

Package {imap4 0.5.2}
Platform *
Desc     {imap client-side tcl implementation of imap protocol}
Base     @TAP_DIR@/imap4
Path     imap4.tcl
Path     pkgIndex.tcl

#
# ##############

# ################
# Module "inifile"
# [1]    | "inifile" (0.3)
# -------+

Package {inifile 0.3}
Platform *
Desc     {Parsing of Windows INI files}
Base     @TAP_DIR@/inifile
Path     ini.tcl
Path     pkgIndex.tcl

#
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662

1663

1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
Path     pkgIndex.tcl

#
# ###################

# #############
# Module "jpeg"
# [1]    | "jpeg" (0.4.0)
# -------+

Package {jpeg 0.4.0}
Platform *
Desc     {JPEG querying and manipulation of meta data}
Base     @TAP_DIR@/jpeg
Path     jpeg.tcl
Path     pkgIndex.tcl

#
# #############

# #############
# Module "json"
# [1]    | "json::write" (1.0.2)
# [2]    | "json" (1.1.2)
# -------+

Package {__json 0.0}
Platform *
Desc     {JSON}
Hidden
Base     @TAP_DIR@/json
Path     json.tcl

Path     json_write.tcl

Path     pkgIndex.tcl

Package {json::write 1.0.2}
See   __json
Platform *
Desc     {JSON generation}

Package {json 1.1.2}
See   __json
Platform *
Desc     {JSON parser}

#
# #############








|


|











|
|








>

>


|




|







1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
Path     pkgIndex.tcl

#
# ###################

# #############
# Module "jpeg"
# [1]    | "jpeg" (0.5)
# -------+

Package {jpeg 0.5}
Platform *
Desc     {JPEG querying and manipulation of meta data}
Base     @TAP_DIR@/jpeg
Path     jpeg.tcl
Path     pkgIndex.tcl

#
# #############

# #############
# Module "json"
# [1]    | "json::write" (1.0.3)
# [2]    | "json" (1.3.3)
# -------+

Package {__json 0.0}
Platform *
Desc     {JSON}
Hidden
Base     @TAP_DIR@/json
Path     json.tcl
Path     json_tcl.tcl
Path     json_write.tcl
Path     jsonc.tcl
Path     pkgIndex.tcl

Package {json::write 1.0.3}
See   __json
Platform *
Desc     {JSON generation}

Package {json 1.3.3}
See   __json
Platform *
Desc     {JSON parser}

#
# #############

1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708





1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
Path     pkgIndex.tcl

#
# ###############

# #############
# Module "ldap"
# [1]    | "ldapx" (1.0)
# [2]    | "ldap" (1.8)
# -------+

Package {__ldap 0.0}
Platform *
Desc     {LDAP client, LDAP extended object interface}
Hidden
Base     @TAP_DIR@/ldap
Path     ldap.tcl
Path     ldapx.tcl
Path     pkgIndex.tcl






Package {ldapx 1.0}
See   __ldap
Platform *
Desc     {LDAP extended object interface}

Package {ldap 1.8}
See   __ldap
Platform *
Desc     {LDAP client}

#
# #############

# ############
# Module "log"
# [1]    | "logger" (0.9.3)
# [2]    | "logger::utils" (1.3)
# [3]    | "log" (1.3)
# [4]    | "logger::appender" (1.3)
# -------+

Package {__log 0.0}
Platform *
Desc     {Logging facility, Object Oriented logging facility, Documentation tools}
Hidden
Base     @TAP_DIR@/log
Path     log.tcl
Path     logger.tcl
Path     loggerAppender.tcl
Path     loggerUtils.tcl
Path     msgs/en.msg
Path     pkgIndex.tcl

Package {logger 0.9.3}
See   __log
Platform *
Desc     {Processing text in 'subst -novariables' format}

Package {logger::utils 1.3}
See   __log
Platform *
Desc     {Utilities for logger}

Package {log 1.3}







|
|











>
>
>
>
>





<
<
<
<
<





|







|









|


|







1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799





1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
Path     pkgIndex.tcl

#
# ###############

# #############
# Module "ldap"
# [1]    | "ldap" (1.8)
# [2]    | "ldapx" (1.0)
# -------+

Package {__ldap 0.0}
Platform *
Desc     {LDAP client, LDAP extended object interface}
Hidden
Base     @TAP_DIR@/ldap
Path     ldap.tcl
Path     ldapx.tcl
Path     pkgIndex.tcl

Package {ldap 1.8}
See   __ldap
Platform *
Desc     {LDAP client}

Package {ldapx 1.0}
See   __ldap
Platform *
Desc     {LDAP extended object interface}






#
# #############

# ############
# Module "log"
# [1]    | "logger" (0.9.4)
# [2]    | "logger::utils" (1.3)
# [3]    | "log" (1.3)
# [4]    | "logger::appender" (1.3)
# -------+

Package {__log 0.0}
Platform *
Desc     {Logging facility, Object Oriented logging facility}
Hidden
Base     @TAP_DIR@/log
Path     log.tcl
Path     logger.tcl
Path     loggerAppender.tcl
Path     loggerUtils.tcl
Path     msgs/en.msg
Path     pkgIndex.tcl

Package {logger 0.9.4}
See   __log
Platform *
Desc     {System to control logging of events.}

Package {logger::utils 1.3}
See   __log
Platform *
Desc     {Utilities for logger}

Package {log 1.3}
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
#
# ############

# ############
# Module "map"
# [1]    | "map::slippy::fetcher" (0.3)
# [2]    | "map::geocode::nominatim" (0.1)
# [3]    | "map::slippy::cache" (0.2)
# [4]    | "map::slippy" (0.5)
# -------+

Package {__map 0.0}
Platform *
Desc     {Mapping utilities}
Hidden
Base     @TAP_DIR@/map







|
|







1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
#
# ############

# ############
# Module "map"
# [1]    | "map::slippy::fetcher" (0.3)
# [2]    | "map::geocode::nominatim" (0.1)
# [3]    | "map::slippy" (0.5)
# [4]    | "map::slippy::cache" (0.2)
# -------+

Package {__map 0.0}
Platform *
Desc     {Mapping utilities}
Hidden
Base     @TAP_DIR@/map
1787
1788
1789
1790
1791
1792
1793





1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
Desc     {Accessing a server providing tiles for slippy-based maps}

Package {map::geocode::nominatim 0.1}
See   __map
Platform *
Desc     {Resolving geographical names with a Nominatim service}






Package {map::slippy::cache 0.2}
See   __map
Platform *
Desc     {Management of a tile cache in the local filesystem}

Package {map::slippy 0.5}
See   __map
Platform *
Desc     {Common code for slippy based map packages}

#
# ############

# ################
# Module "mapproj"
# [1]    | "mapproj" (1.0)
# -------+







>
>
>
>
>





<
<
<
<
<







1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884





1885
1886
1887
1888
1889
1890
1891
Desc     {Accessing a server providing tiles for slippy-based maps}

Package {map::geocode::nominatim 0.1}
See   __map
Platform *
Desc     {Resolving geographical names with a Nominatim service}

Package {map::slippy 0.5}
See   __map
Platform *
Desc     {Common code for slippy based map packages}

Package {map::slippy::cache 0.2}
See   __map
Platform *
Desc     {Management of a tile cache in the local filesystem}






#
# ############

# ################
# Module "mapproj"
# [1]    | "mapproj" (1.0)
# -------+
1818
1819
1820
1821
1822
1823
1824

1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857

#
# ################

# #############
# Module "math"
# [1]    | "math::numtheory" (1.0)

# [2]    | "math::rationalfunctions" (1.0.1)
# [3]    | "math::statistics" (0.8.0)
# [4]    | "math::complexnumbers" (1.0.2)
# [5]    | "math" (1.2.5)
# [6]    | "math::fourier" (1.0.2)
# [7]    | "math::roman" (1.0)
# [8]    | "math::interpolate" (1.0.3)
# [9]    | "math::fuzzy" (0.2.1)
# [10]    | "math::optimize" (1.0)
# [11]    | "math::special" (0.2.2)
# [12]    | "math::linearalgebra" (1.1.4)
# [13]    | "math::bignum" (3.1.1)
# [14]    | "math::calculus::symdiff" (1.0)
# [15]    | "math::geometry" (1.1.2)
# [16]    | "math::calculus" (0.7.1)
# [17]    | "math::constants" (1.0.1)
# [18]    | "math::decimal" (1.0.2)
# [19]    | "math::polynomials" (1.0.1)
# [20]    | "math::bigfloat" (1.2.2)
# [21]    | "math::bigfloat" (2.0.1)
# [22]    | "math::machineparameters" (0.1)
# -------+

Package {__math 0.0}
Platform *
Desc     {Math, Tcl Math Library, Symbolic differentiation for Tcl}
Hidden
Base     @TAP_DIR@/math
Path     bessel.tcl
Path     bigfloat.tcl
Path     bigfloat2.tcl
Path     bignum.tcl
Path     calculus.tcl







>
|
<




|

|
|
|
|
|
|
|

|


|





|







1899
1900
1901
1902
1903
1904
1905
1906
1907

1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938

#
# ################

# #############
# Module "math"
# [1]    | "math::numtheory" (1.0)
# [2]    | "math::statistics" (0.9.3)
# [3]    | "math::rationalfunctions" (1.0.1)

# [4]    | "math::complexnumbers" (1.0.2)
# [5]    | "math" (1.2.5)
# [6]    | "math::fourier" (1.0.2)
# [7]    | "math::roman" (1.0)
# [8]    | "math::interpolate" (1.1)
# [9]    | "math::fuzzy" (0.2.1)
# [10]    | "math::special" (0.3.0)
# [11]    | "math::linearalgebra" (1.1.5)
# [12]    | "math::optimize" (1.0.1)
# [13]    | "math::calculus::symdiff" (1.0)
# [14]    | "math::bignum" (3.1.1)
# [15]    | "math::geometry" (1.1.3)
# [16]    | "math::calculus" (0.8.1)
# [17]    | "math::constants" (1.0.1)
# [18]    | "math::decimal" (1.0.3)
# [19]    | "math::polynomials" (1.0.1)
# [20]    | "math::bigfloat" (1.2.2)
# [21]    | "math::bigfloat" (2.0.2)
# [22]    | "math::machineparameters" (0.1)
# -------+

Package {__math 0.0}
Platform *
Desc     {Tcl Decimal Arithmetic Library, tclrep, Math, Tcl Math Library, Symbolic differentiation for Tcl}
Hidden
Base     @TAP_DIR@/math
Path     bessel.tcl
Path     bigfloat.tcl
Path     bigfloat2.tcl
Path     bignum.tcl
Path     calculus.tcl
1878
1879
1880
1881
1882
1883
1884

1885
1886
1887
1888
1889
1890
1891
1892
1893
1894





1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959





1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
Path     pkgIndex.tcl
Path     plotstat.tcl
Path     polynomials.tcl
Path     qcomplex.tcl
Path     rational_funcs.tcl
Path     romannumerals.tcl
Path     special.tcl

Path     statistics.tcl
Path     symdiff.tcl
Path     tclIndex
Path     wilcoxon.tcl

Package {math::numtheory 1.0}
See   __math
Platform *
Desc     {Number Theory}






Package {math::rationalfunctions 1.0.1}
See   __math
Platform *
Desc     {Polynomial functions}

Package {math::statistics 0.8.0}
See   __math
Platform *
Desc     {Basic statistical functions and procedures}

Package {math::complexnumbers 1.0.2}
See   __math
Platform *
Desc     {Straightforward complex number package}

Package {math 1.2.5}
See   __math
Platform *
Desc     {Tcl Math Library}

Package {math::fourier 1.0.2}
See   __math
Platform *
Desc     {Discrete and fast fourier transforms}

Package {math::roman 1.0}
See   __math
Platform *
Desc     {Tools for creating and manipulating roman numerals}

Package {math::interpolate 1.0.3}
See   __math
Platform *
Desc     {Interpolation routines}

Package {math::fuzzy 0.2.1}
See   __math
Platform *
Desc     {Fuzzy comparison of floating-point numbers}

Package {math::optimize 1.0}
See   __math
Platform *
Desc     {Optimisation routines}

Package {math::special 0.2.2}
See   __math
Platform *
Desc     {Special mathematical functions}

Package {math::linearalgebra 1.1.4}
See   __math
Platform *
Desc     {Linear Algebra}

Package {math::bignum 3.1.1}
See   __math
Platform *
Desc     {Arbitrary precision integer numbers}

Package {math::calculus::symdiff 1.0}
See   __math
Platform *
Desc     {Symbolic differentiation for Tcl}






Package {math::geometry 1.1.2}
See   __math
Platform *
Desc     {Geometrical computations}

Package {math::calculus 0.7.1}
See   __math
Platform *
Desc     {Integration and ordinary differential equations}

Package {math::constants 1.0.1}
See   __math
Platform *
Desc     {Mathematical and numerical constants}

Package {math::decimal 1.0.2}
See   __math
Platform *
Desc     {Tcllib package}

Package {math::polynomials 1.0.1}
See   __math
Platform *
Desc     {Polynomial functions}

Package {math::bigfloat 1.2.2}
See   __math
Platform *
Desc     {Arbitrary precision floating-point numbers}

Package {math::bigfloat 2.0.1}
See   __math
Platform *
Desc     {Arbitrary precision floating-point numbers}

Package {math::machineparameters 0.1}
See   __math
Platform *
Desc     {Tcllib package}

#
# #############

# ############
# Module "md4"
# [1]    | "md4" (1.0.5)
# -------+

Package {md4 1.0.5}
Platform *
Desc     {MD4 Message-Digest Algorithm}
Base     @TAP_DIR@/md4
Path     md4.tcl
Path     md4c.tcl
Path     pkgIndex.tcl








>










>
>
>
>
>





<
<
<
<
<




















|









<
<
<
<
<
|




|




|


|






>
>
>
>
>
|




|


|






|


|











|







|






|


|







1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986





1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016





2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
Path     pkgIndex.tcl
Path     plotstat.tcl
Path     polynomials.tcl
Path     qcomplex.tcl
Path     rational_funcs.tcl
Path     romannumerals.tcl
Path     special.tcl
Path     stat_kernel.tcl
Path     statistics.tcl
Path     symdiff.tcl
Path     tclIndex
Path     wilcoxon.tcl

Package {math::numtheory 1.0}
See   __math
Platform *
Desc     {Number Theory}

Package {math::statistics 0.9.3}
See   __math
Platform *
Desc     {Basic statistical functions and procedures}

Package {math::rationalfunctions 1.0.1}
See   __math
Platform *
Desc     {Polynomial functions}






Package {math::complexnumbers 1.0.2}
See   __math
Platform *
Desc     {Straightforward complex number package}

Package {math 1.2.5}
See   __math
Platform *
Desc     {Tcl Math Library}

Package {math::fourier 1.0.2}
See   __math
Platform *
Desc     {Discrete and fast fourier transforms}

Package {math::roman 1.0}
See   __math
Platform *
Desc     {Tools for creating and manipulating roman numerals}

Package {math::interpolate 1.1}
See   __math
Platform *
Desc     {Interpolation routines}

Package {math::fuzzy 0.2.1}
See   __math
Platform *
Desc     {Fuzzy comparison of floating-point numbers}






Package {math::special 0.3.0}
See   __math
Platform *
Desc     {Special mathematical functions}

Package {math::linearalgebra 1.1.5}
See   __math
Platform *
Desc     {Linear Algebra}

Package {math::optimize 1.0.1}
See   __math
Platform *
Desc     {Optimisation routines}

Package {math::calculus::symdiff 1.0}
See   __math
Platform *
Desc     {Symbolic differentiation for Tcl}

Package {math::bignum 3.1.1}
See   __math
Platform *
Desc     {Arbitrary precision integer numbers}

Package {math::geometry 1.1.3}
See   __math
Platform *
Desc     {Geometrical computations}

Package {math::calculus 0.8.1}
See   __math
Platform *
Desc     {Romberg integration}

Package {math::constants 1.0.1}
See   __math
Platform *
Desc     {Mathematical and numerical constants}

Package {math::decimal 1.0.3}
See   __math
Platform *
Desc     {General decimal arithmetic}

Package {math::polynomials 1.0.1}
See   __math
Platform *
Desc     {Polynomial functions}

Package {math::bigfloat 1.2.2}
See   __math
Platform *
Desc     {Arbitrary precision floating-point numbers}

Package {math::bigfloat 2.0.2}
See   __math
Platform *
Desc     {Arbitrary precision floating-point numbers}

Package {math::machineparameters 0.1}
See   __math
Platform *
Desc     {Compute double precision machine parameters.}

#
# #############

# ############
# Module "md4"
# [1]    | "md4" (1.0.6)
# -------+

Package {md4 1.0.6}
Platform *
Desc     {MD4 Message-Digest Algorithm}
Base     @TAP_DIR@/md4
Path     md4.tcl
Path     md4c.tcl
Path     pkgIndex.tcl

2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
Path     pkgIndex.tcl

#
# #################

# #############
# Module "mime"
# [1]    | "mime" (1.5.6)
# [2]    | "smtp" (1.4.5)
# -------+

Package {__mime 0.0}
Platform *
Desc     {Mime, smtp client}
Hidden
Base     @TAP_DIR@/mime
Path     mime.tcl
Path     pkgIndex.tcl
Path     smtp.tcl

Package {mime 1.5.6}
See   __mime
Platform *
Desc     {Manipulation of MIME body parts}

Package {smtp 1.4.5}
See   __mime
Platform *







|












|







2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
Path     pkgIndex.tcl

#
# #################

# #############
# Module "mime"
# [1]    | "mime" (1.6)
# [2]    | "smtp" (1.4.5)
# -------+

Package {__mime 0.0}
Platform *
Desc     {Mime, smtp client}
Hidden
Base     @TAP_DIR@/mime
Path     mime.tcl
Path     pkgIndex.tcl
Path     smtp.tcl

Package {mime 1.6}
See   __mime
Platform *
Desc     {Manipulation of MIME body parts}

Package {smtp 1.4.5}
See   __mime
Platform *
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135


































2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
Path     pkgIndex.tcl

#
# ###################

# #############
# Module "ncgi"
# [1]    | "ncgi" (1.4.2)
# -------+

Package {ncgi 1.4.2}
Platform *
Desc     {Procedures to manipulate CGI values.}
Base     @TAP_DIR@/ncgi
Path     ncgi.tcl
Path     pkgIndex.tcl

#
# #############



































# #############
# Module "nmea"
# [1]    | "nmea" (1.0.0)
# -------+

Package {nmea 1.0.0}
Platform *
Desc     {Process NMEA data}
Base     @TAP_DIR@/nmea
Path     nmea.tcl
Path     pkgIndex.tcl

#
# #############

# ############
# Module "nns"
# [1]    | "nameserv::server" (0.3.2)
# [2]    | "nameserv" (0.4.2)
# [3]    | "nameserv::common" (0.1)
# [4]    | "nameserv::auto" (0.3)
# -------+

Package {__nns 0.0}
Platform *
Desc     {Name service facility}
Hidden
Base     @TAP_DIR@/nns







|


|








>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




















|
|







2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
Path     pkgIndex.tcl

#
# ###################

# #############
# Module "ncgi"
# [1]    | "ncgi" (1.4.3)
# -------+

Package {ncgi 1.4.3}
Platform *
Desc     {Procedures to manipulate CGI values.}
Base     @TAP_DIR@/ncgi
Path     ncgi.tcl
Path     pkgIndex.tcl

#
# #############

# ################
# Module "nettool"
# [1]    | "nettool" (0.4)
# [2]    | "nettool::platform::windows" (0.1)
# -------+

Package {__nettool 0.0}
Platform *
Desc     {nettool}
Hidden
Base     @TAP_DIR@/nettool
Path     available_ports.tcl
Path     generic.tcl
Path     locateport.tcl
Path     nettool.tcl
Path     pkgIndex.tcl
Path     platform_unix.tcl
Path     platform_unix_linux.tcl
Path     platform_unix_macosx.tcl
Path     platform_windows.tcl

Package {nettool 0.4}
See   __nettool
Platform *
Desc     {Tools for networked applications}

Package {nettool::platform::windows 0.1}
See   __nettool
Platform *
Desc     {Tcllib package}

#
# ################

# #############
# Module "nmea"
# [1]    | "nmea" (1.0.0)
# -------+

Package {nmea 1.0.0}
Platform *
Desc     {Process NMEA data}
Base     @TAP_DIR@/nmea
Path     nmea.tcl
Path     pkgIndex.tcl

#
# #############

# ############
# Module "nns"
# [1]    | "nameserv::server" (0.3.2)
# [2]    | "nameserv" (0.4.2)
# [3]    | "nameserv::auto" (0.3)
# [4]    | "nameserv::common" (0.1)
# -------+

Package {__nns 0.0}
Platform *
Desc     {Name service facility}
Hidden
Base     @TAP_DIR@/nns
2174
2175
2176
2177
2178
2179
2180





2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
Desc     {Name service facility, Server}

Package {nameserv 0.4.2}
See   __nns
Platform *
Desc     {Name service facility, Client}






Package {nameserv::common 0.1}
See   __nns
Platform *
Desc     {Name service facility, shared definitions}

Package {nameserv::auto 0.3}
See   __nns
Platform *
Desc     {Name service facility, Client Extension}

#
# ############

# #############
# Module "nntp"
# [1]    | "nntp" (0.2.1)
# -------+







>
>
>
>
>





<
<
<
<
<







2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306





2307
2308
2309
2310
2311
2312
2313
Desc     {Name service facility, Server}

Package {nameserv 0.4.2}
See   __nns
Platform *
Desc     {Name service facility, Client}

Package {nameserv::auto 0.3}
See   __nns
Platform *
Desc     {Name service facility, Client Extension}

Package {nameserv::common 0.1}
See   __nns
Platform *
Desc     {Name service facility, shared definitions}






#
# ############

# #############
# Module "nntp"
# [1]    | "nntp" (0.2.1)
# -------+
2216
2217
2218
2219
2220
2221
2222















2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
Desc     {Tcl Time Service Client}
Base     @TAP_DIR@/ntp
Path     pkgIndex.tcl
Path     time.tcl

#
# ############
















# ###############
# Module "ooutil"
# [1]    | "oo::util" (1.1)
# -------+

Package {oo::util 1.1}
Platform *
Desc     {Utility commands for TclOO}
Base     @TAP_DIR@/ooutil
Path     ooutil.tcl
Path     pkgIndex.tcl

#







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



|


|







2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
Desc     {Tcl Time Service Client}
Base     @TAP_DIR@/ntp
Path     pkgIndex.tcl
Path     time.tcl

#
# ############

# ##############
# Module "oauth"
# [1]    | "oauth" (1)
# -------+

Package {oauth 1}
Platform *
Desc     {oauth API base signature}
Base     @TAP_DIR@/oauth
Path     oauth.tcl
Path     pkgIndex.tcl

#
# ##############

# ###############
# Module "ooutil"
# [1]    | "oo::util" (1.2.1)
# -------+

Package {oo::util 1.2.1}
Platform *
Desc     {Utility commands for TclOO}
Base     @TAP_DIR@/ooutil
Path     ooutil.tcl
Path     pkgIndex.tcl

#
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275

2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287

2288
2289
2290
2291
2292
2293
2294
2295

2296
2297
2298
2299
2300
2301
2302
Path     pkgIndex.tcl

#
# ############

# #############
# Module "page"
# [1]    | "page::gen::peg::ser" (0.1)
# [2]    | "page::gen::peg::mecpu" (0.1)
# [3]    | "page::gen::peg::hb" (0.1)
# [4]    | "page::gen::peg::me" (0.1)
# [5]    | "page::compiler::peg::mecpu" (0.1.1)
# [6]    | "page::reader::ser" (0.1)
# [7]    | "page::analysis::peg::minimize" (0.1)
# [8]    | "page::writer::mecpu" (0.1.1)
# [9]    | "page::reader::peg" (0.1)
# [10]    | "page::analysis::peg::realizable" (0.1)
# [11]    | "page::parse::peg" (0.1)
# [12]    | "page::transform::realizable" (0.1)
# [13]    | "page::writer::ser" (0.1)
# [14]    | "page::parse::pegser" (0.1)
# [15]    | "page::pluginmgr" (0.2)
# [16]    | "page::writer::peg" (0.1)
# [17]    | "page::analysis::peg::emodes" (0.1)
# [18]    | "page::util::norm::peg" (0.1)
# [19]    | "page::util::peg" (0.1)
# [20]    | "page::gen::tree::text" (0.1)

# [21]    | "page::analysis::peg::reachable" (0.1)
# [22]    | "page::transform::reachable" (0.1)
# [23]    | "page::util::quote" (0.1)
# [24]    | "page::writer::tpc" (0.1)
# [25]    | "@PKG@" (0.1)
# [26]    | "page::reader::hb" (0.1)
# [27]    | "page::writer::tree" (0.1)
# [28]    | "page::reader::treeser" (0.1)
# [29]    | "page::parse::lemon" (0.1)
# [30]    | "page::util::flow" (0.1)
# [31]    | "page::transform::mecpu" (0.1)
# [32]    | "page::reader::lemon" (0.1)

# [33]    | "page::gen::peg::cpkg" (0.1)
# [34]    | "page::writer::identity" (0.1)
# [35]    | "page::writer::me" (0.1)
# [36]    | "page::writer::hb" (0.1)
# [37]    | "page::writer::null" (0.1)
# [38]    | "page::util::norm::lemon" (0.1)
# [39]    | "page::parse::peghb" (0.1)
# [40]    | "page::gen::peg::canon" (0.1)

# [41]    | "page::config::peg" (0.1)
# -------+

Package {__page 0.0}
Platform *
Desc     {Parser generator tools}
Hidden







|
|
|
|



|
|
|
|
|
|
|

|
|
|
|

>
|
<
|
|

|
|
|
<
|
|
|
>

|
|
|

<
|
|
>







2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408

2409
2410
2411
2412
2413
2414

2415
2416
2417
2418
2419
2420
2421
2422
2423

2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
Path     pkgIndex.tcl

#
# ############

# #############
# Module "page"
# [1]    | "page::gen::peg::hb" (0.1)
# [2]    | "page::gen::peg::me" (0.1)
# [3]    | "page::gen::peg::ser" (0.1)
# [4]    | "page::gen::peg::mecpu" (0.1)
# [5]    | "page::compiler::peg::mecpu" (0.1.1)
# [6]    | "page::reader::ser" (0.1)
# [7]    | "page::analysis::peg::minimize" (0.1)
# [8]    | "page::analysis::peg::realizable" (0.1)
# [9]    | "page::parse::peg" (0.1)
# [10]    | "page::reader::peg" (0.1)
# [11]    | "page::writer::ser" (0.1)
# [12]    | "page::writer::mecpu" (0.1.1)
# [13]    | "page::transform::realizable" (0.1)
# [14]    | "page::analysis::peg::emodes" (0.1)
# [15]    | "page::pluginmgr" (0.2)
# [16]    | "page::parse::pegser" (0.1)
# [17]    | "page::writer::peg" (0.1)
# [18]    | "page::util::peg" (0.1)
# [19]    | "page::util::norm::peg" (0.1)
# [20]    | "page::gen::tree::text" (0.1)
# [21]    | "page::transform::reachable" (0.1)
# [22]    | "page::analysis::peg::reachable" (0.1)

# [23]    | "page::writer::tpc" (0.1)
# [24]    | "page::util::quote" (0.1)
# [25]    | "@PKG@" (0.1)
# [26]    | "page::writer::tree" (0.1)
# [27]    | "page::reader::treeser" (0.1)
# [28]    | "page::reader::hb" (0.1)

# [29]    | "page::util::flow" (0.1)
# [30]    | "page::transform::mecpu" (0.1)
# [31]    | "page::reader::lemon" (0.1)
# [32]    | "page::parse::lemon" (0.1)
# [33]    | "page::gen::peg::cpkg" (0.1)
# [34]    | "page::writer::hb" (0.1)
# [35]    | "page::writer::identity" (0.1)
# [36]    | "page::writer::me" (0.1)
# [37]    | "page::writer::null" (0.1)

# [38]    | "page::parse::peghb" (0.1)
# [39]    | "page::gen::peg::canon" (0.1)
# [40]    | "page::util::norm::lemon" (0.1)
# [41]    | "page::config::peg" (0.1)
# -------+

Package {__page 0.0}
Platform *
Desc     {Parser generator tools}
Hidden
2342
2343
2344
2345
2346
2347
2348










2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435










2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508





2509
2510
2511





2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546





2547
2548
2549
2550
2551
2552
2553
Path     plugins/writer_tpc.tcl
Path     plugins/writer_tree.tcl
Path     util_flow.tcl
Path     util_norm_lemon.tcl
Path     util_norm_peg.tcl
Path     util_peg.tcl
Path     util_quote.tcl











Package {page::gen::peg::ser 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::gen::peg::mecpu 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::gen::peg::hb 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::gen::peg::me 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::compiler::peg::mecpu 0.1.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::reader::ser 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::analysis::peg::minimize 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::mecpu 0.1.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::reader::peg 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::analysis::peg::realizable 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::parse::peg 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::transform::realizable 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::ser 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::parse::pegser 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::pluginmgr 0.2}
See   __page
Platform *
Desc     {page plugin manager}

Package {page::writer::peg 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::analysis::peg::emodes 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::util::norm::peg 0.1}










See   __page
Platform *
Desc     {Tcllib package}

Package {page::util::peg 0.1}
See   __page
Platform *
Desc     {page PEG transformation utilities}

Package {page::gen::tree::text 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::analysis::peg::reachable 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::transform::reachable 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::util::quote 0.1}
See   __page
Platform *
Desc     {page character quoting utilities}

Package {page::writer::tpc 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {@PKG@ 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::reader::hb 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::tree 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::reader::treeser 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::parse::lemon 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::util::flow 0.1}
See   __page
Platform *
Desc     {page dataflow/treewalker utility}

Package {page::transform::mecpu 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::reader::lemon 0.1}
See   __page
Platform *
Desc     {Tcllib package}






Package {page::gen::peg::cpkg 0.1}
See   __page





Platform *
Desc     {Tcllib package}

Package {page::writer::identity 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::me 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::hb 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::null 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::util::norm::lemon 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::parse::peghb 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::gen::peg::canon 0.1}
See   __page





Platform *
Desc     {Tcllib package}

Package {page::config::peg 0.1}
See   __page
Platform *
Desc     {Tcllib package}







>
>
>
>
>
>
>
>
>
>









<
<
<
<
<
<
<
<
<
<

















<
<
<
<
<
<
<
<
<
<










|









|




|
<
<
<
<
<









|
>
>
>
>
>
>
>
>
>
>









|




|









|


|






|


|

|














|


















>
>
>
>
>



>
>
>
>
>













<
<
<
<
<



<
<
<
<
<









>
>
>
>
>







2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498










2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515










2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541





2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660





2661
2662
2663





2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
Path     plugins/writer_tpc.tcl
Path     plugins/writer_tree.tcl
Path     util_flow.tcl
Path     util_norm_lemon.tcl
Path     util_norm_peg.tcl
Path     util_peg.tcl
Path     util_quote.tcl

Package {page::gen::peg::hb 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::gen::peg::me 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::gen::peg::ser 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::gen::peg::mecpu 0.1}
See   __page
Platform *










Desc     {Tcllib package}

Package {page::compiler::peg::mecpu 0.1.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::reader::ser 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::analysis::peg::minimize 0.1}
See   __page
Platform *
Desc     {Tcllib package}











Package {page::analysis::peg::realizable 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::parse::peg 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::reader::peg 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::ser 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::mecpu 0.1.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::transform::realizable 0.1}





See   __page
Platform *
Desc     {Tcllib package}

Package {page::analysis::peg::emodes 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::pluginmgr 0.2}
See   __page
Platform *
Desc     {page plugin manager}

Package {page::parse::pegser 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::peg 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::util::peg 0.1}
See   __page
Platform *
Desc     {page PEG transformation utilities}

Package {page::util::norm::peg 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::gen::tree::text 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::transform::reachable 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::analysis::peg::reachable 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::tpc 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::util::quote 0.1}
See   __page
Platform *
Desc     {page character quoting utilities}

Package {@PKG@ 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::tree 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::reader::treeser 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::reader::hb 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::util::flow 0.1}
See   __page
Platform *
Desc     {page dataflow/treewalker utility}

Package {page::transform::mecpu 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::reader::lemon 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::parse::lemon 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::gen::peg::cpkg 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::hb 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::identity 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::writer::me 0.1}
See   __page
Platform *
Desc     {Tcllib package}






Package {page::writer::null 0.1}
See   __page
Platform *





Desc     {Tcllib package}

Package {page::parse::peghb 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::gen::peg::canon 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::util::norm::lemon 0.1}
See   __page
Platform *
Desc     {Tcllib package}

Package {page::config::peg 0.1}
See   __page
Platform *
Desc     {Tcllib package}
2646
2647
2648
2649
2650
2651
2652















2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671

2672
2673
2674
2675
2676

2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701

2702

2703

2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717

2718
2719
2720
2721
2722
2723
2724
See   __pop3d
Platform *
Desc     {Simple mailbox database for pop3d}

#
# ##############
















# #################
# Module "profiler"
# [1]    | "profiler" (0.3)
# -------+

Package {profiler 0.3}
Platform *
Desc     {Tcl source code profiler}
Base     @TAP_DIR@/profiler
Path     pkgIndex.tcl
Path     profiler.tcl

#
# #################

# ###########
# Module "pt"
# [1]    | "pt::rde::critcl" (1)
# [2]    | "configuration" (1)

# [3]    | "pt::peg::export::json" (1)
# [4]    | "pt::peg::to::param" (1)
# [5]    | "pt::tclparam::configuration::snit" (1.0.1)
# [6]    | "pt::peg::from::json" (1)
# [7]    | "pt::peg::export::peg" (1)

# [8]    | "pt::peg::to::cparam" (1.0.1)
# [9]    | "pt::peg::import" (1)
# [10]    | "pt::parse::peg" (1)
# [11]    | "pt::peg::import::peg" (1)
# [12]    | "pt::peg::to::peg" (1)
# [13]    | "pt::rde" (1.0.2)
# [14]    | "pt::peg::from::peg" (1)
# [15]    | "pt::parse::peg_tcl" (1)
# [16]    | "pt::tclparam::configuration::tcloo" (1.0.2)
# [17]    | "pt::cparam::configuration::critcl" (1.0.1)
# [18]    | "pt::peg::op" (1)
# [19]    | "paths" (1)
# [20]    | "pt::pe::op" (1)
# [21]    | "pt::ast" (1.1)
# [22]    | "pt::peg::to::json" (1)
# [23]    | "pt::peg::import::json" (1)
# [24]    | "pt::peg::export::container" (1)
# [25]    | "pt::peg::export" (1)
# [26]    | "pt::peg::interp" (1)
# [27]    | "pt::pgen" (1.0.1)
# [28]    | "pt::peg::to::container" (1)
# [29]    | "pt::peg::container::peg" (1)
# [30]    | "pt::peg::to::tclparam" (1)
# [31]    | "pt::peg::container" (1)
# [32]    | "pt::peg" (1)

# [33]    | "text::write" (1)

# [34]    | "pt::pe" (1)

# [35]    | "char" (1)
# -------+

Package {__pt 0.0}
Platform *
Desc     {Parser Tools}
Hidden
Base     @TAP_DIR@/pt
Path     char.tcl
Path     configuration.tcl
Path     paths.tcl
Path     pkgIndex.tcl
Path     pt_astree.tcl
Path     pt_cparam_config_critcl.tcl

Path     pt_parse_peg.tcl
Path     pt_parse_peg_c.tcl
Path     pt_parse_peg_tcl.tcl
Path     pt_peg_container.tcl
Path     pt_peg_container_peg.tcl
Path     pt_peg_export.tcl
Path     pt_peg_export_container.tcl







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

















<
|
>
|
|
<
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
>
|
>
|
>
|













>







2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815

2816
2817
2818
2819

2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
See   __pop3d
Platform *
Desc     {Simple mailbox database for pop3d}

#
# ##############

# ###################
# Module "processman"
# [1]    | "odie::processman" (0.3)
# -------+

Package {odie::processman 0.3}
Platform *
Desc     {Tcllib package}
Base     @TAP_DIR@/processman
Path     pkgIndex.tcl
Path     processman.tcl

#
# ###################

# #################
# Module "profiler"
# [1]    | "profiler" (0.3)
# -------+

Package {profiler 0.3}
Platform *
Desc     {Tcl source code profiler}
Base     @TAP_DIR@/profiler
Path     pkgIndex.tcl
Path     profiler.tcl

#
# #################

# ###########
# Module "pt"

# [1]    | "configuration" (1)
# [2]    | "pt::rde::critcl" (1.0.3)
# [3]    | "pt::peg::to::param" (1.0.1)
# [4]    | "pt::peg::export::json" (1)

# [5]    | "pt::peg::from::json" (1)
# [6]    | "pt::peg::export::peg" (1)
# [7]    | "pt::tclparam::configuration::snit" (1.0.2)
# [8]    | "pt::rde" (1.0.3)
# [9]    | "pt::parse::peg" (1.0.1)
# [10]    | "pt::peg::import::peg" (1)
# [11]    | "pt::peg::import" (1)
# [12]    | "pt::peg::to::peg" (1.0.2)
# [13]    | "pt::peg::to::cparam" (1.1.3)
# [14]    | "pt::peg::from::peg" (1.0.3)
# [15]    | "pt::cparam::configuration::critcl" (1.0.2)
# [16]    | "pt::tclparam::configuration::tcloo" (1.0.4)
# [17]    | "pt::parse::peg_tcl" (1.0.1)
# [18]    | "pt::util" (1)
# [19]    | "pt::peg::op" (1.0.1)
# [20]    | "pt::ast" (1.1)
# [21]    | "pt::pe::op" (1)
# [22]    | "paths" (1)
# [23]    | "pt::peg::export::container" (1)
# [24]    | "pt::peg::to::json" (1)
# [25]    | "pt::peg::import::json" (1)
# [26]    | "pt::peg::to::container" (1)
# [27]    | "pt::peg::interp" (1.0.1)
# [28]    | "pt::pgen" (1.0.3)
# [29]    | "pt::peg::export" (1)
# [30]    | "pt::peg::to::tclparam" (1.0.2)
# [31]    | "pt::peg::container" (1)
# [32]    | "pt::peg::container::peg" (1)
# [33]    | "pt::peg" (1)
# [34]    | "text::write" (1)
# [35]    | "pt::rde::oo" (1.0.3)
# [36]    | "pt::pe" (1.0.2)
# [37]    | "pt::cparam::configuration::tea" (0.1)
# [38]    | "char" (1.0.1)
# -------+

Package {__pt 0.0}
Platform *
Desc     {Parser Tools}
Hidden
Base     @TAP_DIR@/pt
Path     char.tcl
Path     configuration.tcl
Path     paths.tcl
Path     pkgIndex.tcl
Path     pt_astree.tcl
Path     pt_cparam_config_critcl.tcl
Path     pt_cparam_config_tea.tcl
Path     pt_parse_peg.tcl
Path     pt_parse_peg_c.tcl
Path     pt_parse_peg_tcl.tcl
Path     pt_peg_container.tcl
Path     pt_peg_container_peg.tcl
Path     pt_peg_export.tcl
Path     pt_peg_export_container.tcl
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752




2753
2754





2755




2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806





2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841





2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854

2855




2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870










2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906





2907
2908
2909
2910
2911
2912
2913
2914
2915
2916





2917
2918
2919
2920
2921





2922
2923
2924
2925
2926
2927
2928
2929
Path     pt_pgen.tcl
Path     pt_rdengine.tcl
Path     pt_rdengine_c.tcl
Path     pt_rdengine_oo.tcl
Path     pt_rdengine_tcl.tcl
Path     pt_tclparam_config_snit.tcl
Path     pt_tclparam_config_tcloo.tcl
Path     text_write.tcl

Package {pt::rde::critcl 1}




See   __pt
Platform *





Desc     {Tcllib package}





Package {configuration 1}
See   __pt
Platform *
Desc     {Tcllib package}

Package {pt::peg::export::json 1}
See   __pt
Platform *
Desc     {PEG Export Plugin. Write JSON format}

Package {pt::peg::to::param 1}
See   __pt
Platform *
Desc     {PEG Conversion. Write PARAM format}

Package {pt::tclparam::configuration::snit 1.0.1}
See   __pt
Platform *
Desc     {Tcl/PARAM, Canned configuration, Snit}

Package {pt::peg::from::json 1}
See   __pt
Platform *
Desc     {PEG Conversion. Read JSON format}

Package {pt::peg::export::peg 1}
See   __pt
Platform *
Desc     {PEG Export Plugin. Write PEG format}

Package {pt::peg::to::cparam 1.0.1}
See   __pt
Platform *
Desc     {PEG Conversion. Write CPARAM format}

Package {pt::peg::import 1}
See   __pt
Platform *
Desc     {PEG Import}

Package {pt::parse::peg 1}
See   __pt
Platform *
Desc     {Tcllib package}

Package {pt::peg::import::peg 1}
See   __pt
Platform *
Desc     {PEG Import Plugin. Read PEG format}






Package {pt::peg::to::peg 1}
See   __pt
Platform *
Desc     {PEG Conversion. Write PEG format}

Package {pt::rde 1.0.2}
See   __pt
Platform *
Desc     {Parsing Runtime Support, PARAM based}

Package {pt::peg::from::peg 1}
See   __pt
Platform *
Desc     {PEG Conversion. Read PEG format}

Package {pt::parse::peg_tcl 1}
See   __pt
Platform *
Desc     {Tcllib package}

Package {pt::tclparam::configuration::tcloo 1.0.2}
See   __pt
Platform *
Desc     {Tcl/PARAM, Canned configuration, Tcloo}

Package {pt::cparam::configuration::critcl 1.0.1}
See   __pt
Platform *
Desc     {C/PARAM, Canned configuration, Critcl}

Package {pt::peg::op 1}
See   __pt
Platform *
Desc     {Tcllib package}






Package {paths 1}
See   __pt
Platform *
Desc     {Tcllib package}

Package {pt::pe::op 1}
See   __pt
Platform *
Desc     {Parsing Expression Utilities}

Package {pt::ast 1.1}
See   __pt
Platform *

Desc     {Abstract Syntax Tree Serialization}





Package {pt::peg::to::json 1}
See   __pt
Platform *
Desc     {PEG Conversion. Write JSON format}

Package {pt::peg::import::json 1}
See   __pt
Platform *
Desc     {PEG Import Plugin. Read JSON format}

Package {pt::peg::export::container 1}
See   __pt
Platform *
Desc     {PEG Export Plugin. Write CONTAINER format}











Package {pt::peg::export 1}
See   __pt
Platform *
Desc     {PEG Export}

Package {pt::peg::interp 1}
See   __pt
Platform *
Desc     {Interpreter for parsing expression grammars}

Package {pt::pgen 1.0.1}
See   __pt
Platform *
Desc     {Parser Generator}

Package {pt::peg::to::container 1}
See   __pt
Platform *
Desc     {PEG Conversion. Write CONTAINER format}

Package {pt::peg::container::peg 1}
See   __pt
Platform *
Desc     {PEG Storage. Canned PEG grammar specification}

Package {pt::peg::to::tclparam 1}
See   __pt
Platform *
Desc     {PEG Conversion. Write TCLPARAM format}

Package {pt::peg::container 1}
See   __pt
Platform *
Desc     {PEG Storage}






Package {pt::peg 1}
See   __pt
Platform *
Desc     {Parsing Expression Grammar Serialization}

Package {text::write 1}
See   __pt
Platform *
Desc     {Tcllib package}






Package {pt::pe 1}
See   __pt
Platform *
Desc     {Parsing Expression Serialization}






Package {char 1}
See   __pt
Platform *
Desc     {Tcllib package}

#
# ###########








|
|
|
>
>
>
>
|
|
>
>
>
>
>
|
>
>
>
>






|


|

|




|


|











|


|

|


|

|


|






>
>
>
>
>
|




|


|

|




|


|

|




|


|

|




>
>
>
>
>
|


|






|


>
|
>
>
>
>











|


|
>
>
>
>
>
>
>
>
>
>






<
<
<
<
<
<
<
<
<
<
|
<
<
<
<
<
<
<
<
<
<









>
>
>
>
>










>
>
>
>
>
|




>
>
>
>
>
|







2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064










3065










3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
Path     pt_pgen.tcl
Path     pt_rdengine.tcl
Path     pt_rdengine_c.tcl
Path     pt_rdengine_oo.tcl
Path     pt_rdengine_tcl.tcl
Path     pt_tclparam_config_snit.tcl
Path     pt_tclparam_config_tcloo.tcl
Path     pt_util.tcl
Path     rde_critcl/m.c
Path     rde_critcl/m.h
Path     rde_critcl/ms.c
Path     rde_critcl/ms.h
Path     rde_critcl/ot.c
Path     rde_critcl/ot.h
Path     rde_critcl/p.c
Path     rde_critcl/p.h
Path     rde_critcl/param.c
Path     rde_critcl/param.h
Path     rde_critcl/pInt.h
Path     rde_critcl/stack.c
Path     rde_critcl/stack.h
Path     rde_critcl/tc.c
Path     rde_critcl/tc.h
Path     rde_critcl/util.c
Path     rde_critcl/util.h
Path     text_write.tcl

Package {configuration 1}
See   __pt
Platform *
Desc     {Tcllib package}

Package {pt::rde::critcl 1.0.3}
See   __pt
Platform *
Desc     {Tcllib package}

Package {pt::peg::to::param 1.0.1}
See   __pt
Platform *
Desc     {PEG Conversion. Write PARAM format}

Package {pt::peg::export::json 1}
See   __pt
Platform *
Desc     {PEG Export Plugin. Write JSON format}

Package {pt::peg::from::json 1}
See   __pt
Platform *
Desc     {PEG Conversion. Read JSON format}

Package {pt::peg::export::peg 1}
See   __pt
Platform *
Desc     {PEG Export Plugin. Write PEG format}

Package {pt::tclparam::configuration::snit 1.0.2}
See   __pt
Platform *
Desc     {Tcl/PARAM, Canned configuration, Snit}

Package {pt::rde 1.0.3}
See   __pt
Platform *
Desc     {Parsing Runtime Support, PARAM based}

Package {pt::parse::peg 1.0.1}
See   __pt
Platform *
Desc     {Parser Tools PEG Parser}

Package {pt::peg::import::peg 1}
See   __pt
Platform *
Desc     {PEG Import Plugin. Read PEG format}

Package {pt::peg::import 1}
See   __pt
Platform *
Desc     {PEG Import}

Package {pt::peg::to::peg 1.0.2}
See   __pt
Platform *
Desc     {PEG Conversion. Write PEG format}

Package {pt::peg::to::cparam 1.1.3}
See   __pt
Platform *
Desc     {PEG Conversion. Write CPARAM format}

Package {pt::peg::from::peg 1.0.3}
See   __pt
Platform *
Desc     {PEG Conversion. Read PEG format}

Package {pt::cparam::configuration::critcl 1.0.2}
See   __pt
Platform *
Desc     {C/PARAM, Canned configuration, Critcl}

Package {pt::tclparam::configuration::tcloo 1.0.4}
See   __pt
Platform *
Desc     {Tcl/PARAM, Canned configuration, Tcloo}

Package {pt::parse::peg_tcl 1.0.1}
See   __pt
Platform *
Desc     {Tcllib package}

Package {pt::util 1}
See   __pt
Platform *
Desc     {Tcllib package}

Package {pt::peg::op 1.0.1}
See   __pt
Platform *
Desc     {Parser Tools PE Grammar Utility Operations}

Package {pt::ast 1.1}
See   __pt
Platform *
Desc     {General utilities}

Package {pt::pe::op 1}
See   __pt
Platform *
Desc     {Parsing Expression Utilities}

Package {paths 1}
See   __pt
Platform *
Desc     {Tcllib package}

Package {pt::peg::export::container 1}
See   __pt
Platform *
Desc     {PEG Export Plugin. Write CONTAINER format}

Package {pt::peg::to::json 1}
See   __pt
Platform *
Desc     {PEG Conversion. Write JSON format}

Package {pt::peg::import::json 1}
See   __pt
Platform *
Desc     {PEG Import Plugin. Read JSON format}

Package {pt::peg::to::container 1}
See   __pt
Platform *
Desc     {PEG Conversion. Write CONTAINER format}

Package {pt::peg::interp 1.0.1}
See   __pt
Platform *
Desc     {Interpreter for parsing expression grammars}

Package {pt::pgen 1.0.3}
See   __pt
Platform *
Desc     {Parser Generator}

Package {pt::peg::export 1}
See   __pt
Platform *
Desc     {PEG Export}











Package {pt::peg::to::tclparam 1.0.2}










See   __pt
Platform *
Desc     {PEG Conversion. Write TCLPARAM format}

Package {pt::peg::container 1}
See   __pt
Platform *
Desc     {PEG Storage}

Package {pt::peg::container::peg 1}
See   __pt
Platform *
Desc     {PEG Storage. Canned PEG grammar specification}

Package {pt::peg 1}
See   __pt
Platform *
Desc     {Parsing Expression Grammar Serialization}

Package {text::write 1}
See   __pt
Platform *
Desc     {Tcllib package}

Package {pt::rde::oo 1.0.3}
See   __pt
Platform *
Desc     {Tcllib package}

Package {pt::pe 1.0.2}
See   __pt
Platform *
Desc     {Parsing Expression Serialization}

Package {pt::cparam::configuration::tea 0.1}
See   __pt
Platform *
Desc     {C/PARAM, Canned configuration, TEA}

Package {char 1.0.1}
See   __pt
Platform *
Desc     {Tcllib package}

#
# ###########

2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006





3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023

3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034

3035
3036
3037
3038

3039




3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112





3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
Path     rcs.tcl

#
# ############

# ###############
# Module "report"
# [1]    | "report" (0.3.1)
# -------+

Package {report 0.3.1}
Platform *
Desc     {Create and manipulate report objects}
Base     @TAP_DIR@/report
Path     pkgIndex.tcl
Path     report.tcl

#
# ###############

# #############
# Module "rest"
# [1]    | "rest" (1.0)
# -------+

Package {rest 1.0}
Platform *
Desc     {define REST web APIs and call them inline or asychronously}
Base     @TAP_DIR@/rest
Path     pkgIndex.tcl
Path     rest.tcl

#
# #############

# ###############
# Module "ripemd"
# [1]    | "ripemd128" (1.0.4)
# [2]    | "ripemd160" (1.0.4)
# -------+

Package {__ripemd 0.0}
Platform *
Desc     {RIPEMD Message-Digest Algorithm}
Hidden
Base     @TAP_DIR@/ripemd
Path     pkgIndex.tcl
Path     ripemd128.tcl
Path     ripemd160.tcl

Package {ripemd128 1.0.4}





See   __ripemd
Platform *
Desc     {RIPEMD-128 Message-Digest Algorithm}

Package {ripemd160 1.0.4}
See   __ripemd
Platform *
Desc     {RIPEMD-160 Message-Digest Algorithm}

#
# ###############

# #############
# Module "sasl"
# [1]    | "SASL::XGoogleToken" (1.0.1)
# [2]    | "SASL::NTLM" (1.1.1)
# [3]    | "SASL" (1.3.2)

# -------+

Package {__sasl 0.0}
Platform *
Desc     {Simple Authentication and Security Layer (SASL)}
Hidden
Base     @TAP_DIR@/sasl
Path     gtoken.tcl
Path     ntlm.tcl
Path     pkgIndex.tcl
Path     sasl.tcl


Package {SASL::XGoogleToken 1.0.1}
See   __sasl
Platform *

Desc     {Tcllib package}





Package {SASL::NTLM 1.1.1}
See   __sasl
Platform *
Desc     {Tcllib package}

Package {SASL 1.3.2}
See   __sasl
Platform *
Desc     {Implementation of SASL mechanisms for Tcl}

#
# #############

# #############
# Module "sha1"
# [1]    | "sha256" (1.0.3)
# [2]    | "sha1" (1.1.0)
# [3]    | "sha1" (2.0.3)
# -------+

Package {__sha1 0.0}
Platform *
Desc     {SHA-x Message-Digest Algorithm}
Hidden
Base     @TAP_DIR@/sha1
Path     pkgIndex.tcl
Path     sha1.tcl
Path     sha1c.tcl
Path     sha1v1.tcl
Path     sha256.tcl
Path     sha256c.tcl

Package {sha256 1.0.3}
See   __sha1
Platform *
Desc     {SHA256 Message-Digest Algorithm}

Package {sha1 1.1.0}
See   __sha1
Platform *
Desc     {SHA1 Message-Digest Algorithm}

Package {sha1 2.0.3}
See   __sha1
Platform *
Desc     {SHA1 Message-Digest Algorithm}

#
# #############

# ###################
# Module "simulation"
# [1]    | "simulation::montecarlo" (0.1)
# [2]    | "simulation::annealing" (0.2)
# [3]    | "simulation::random" (0.3.1)
# -------+

Package {__simulation 0.0}
Platform *
Desc     {Tcl Simulation Tools}
Hidden
Base     @TAP_DIR@/simulation
Path     annealing.tcl
Path     montecarlo.tcl
Path     pkgIndex.tcl
Path     random.tcl

Package {simulation::montecarlo 0.1}
See   __simulation
Platform *
Desc     {Monte Carlo simulations}






Package {simulation::annealing 0.2}
See   __simulation
Platform *
Desc     {Simulated annealing}

Package {simulation::random 0.3.1}
See   __simulation
Platform *
Desc     {Pseudo-random number generators}

#
# ###################

# ##############
# Module "smtpd"
# [1]    | "smtpd" (1.5)
# -------+







|


|











|


|











|
|











|
>
>
>
>
>




<
<
<
<
<






|
|
>











>




>
|
>
>
>
>

|


|

|










|




















|















|
|

















>
>
>
>
>





<
<
<
<
<







3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198





3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312





3313
3314
3315
3316
3317
3318
3319
Path     rcs.tcl

#
# ############

# ###############
# Module "report"
# [1]    | "report" (0.3.2)
# -------+

Package {report 0.3.2}
Platform *
Desc     {Create and manipulate report objects}
Base     @TAP_DIR@/report
Path     pkgIndex.tcl
Path     report.tcl

#
# ###############

# #############
# Module "rest"
# [1]    | "rest" (1.0.1)
# -------+

Package {rest 1.0.1}
Platform *
Desc     {define REST web APIs and call them inline or asychronously}
Base     @TAP_DIR@/rest
Path     pkgIndex.tcl
Path     rest.tcl

#
# #############

# ###############
# Module "ripemd"
# [1]    | "ripemd160" (1.0.5)
# [2]    | "ripemd128" (1.0.5)
# -------+

Package {__ripemd 0.0}
Platform *
Desc     {RIPEMD Message-Digest Algorithm}
Hidden
Base     @TAP_DIR@/ripemd
Path     pkgIndex.tcl
Path     ripemd128.tcl
Path     ripemd160.tcl

Package {ripemd160 1.0.5}
See   __ripemd
Platform *
Desc     {RIPEMD-160 Message-Digest Algorithm}

Package {ripemd128 1.0.5}
See   __ripemd
Platform *
Desc     {RIPEMD-128 Message-Digest Algorithm}






#
# ###############

# #############
# Module "sasl"
# [1]    | "SASL::XGoogleToken" (1.0.1)
# [2]    | "SASL::SCRAM" (0.1)
# [3]    | "SASL::NTLM" (1.1.2)
# [4]    | "SASL" (1.3.3)
# -------+

Package {__sasl 0.0}
Platform *
Desc     {Simple Authentication and Security Layer (SASL)}
Hidden
Base     @TAP_DIR@/sasl
Path     gtoken.tcl
Path     ntlm.tcl
Path     pkgIndex.tcl
Path     sasl.tcl
Path     scram.tcl

Package {SASL::XGoogleToken 1.0.1}
See   __sasl
Platform *
Desc     {Implementation of SASL NTLM mechanism for Tcl}

Package {SASL::SCRAM 0.1}
See   __sasl
Platform *
Desc     {Implementation of SASL SCRAM mechanism for Tcl}

Package {SASL::NTLM 1.1.2}
See   __sasl
Platform *
Desc     {Implementation of SASL NTLM mechanism for Tcl}

Package {SASL 1.3.3}
See   __sasl
Platform *
Desc     {Implementation of SASL mechanisms for Tcl}

#
# #############

# #############
# Module "sha1"
# [1]    | "sha256" (1.0.3)
# [2]    | "sha1" (1.1.1)
# [3]    | "sha1" (2.0.3)
# -------+

Package {__sha1 0.0}
Platform *
Desc     {SHA-x Message-Digest Algorithm}
Hidden
Base     @TAP_DIR@/sha1
Path     pkgIndex.tcl
Path     sha1.tcl
Path     sha1c.tcl
Path     sha1v1.tcl
Path     sha256.tcl
Path     sha256c.tcl

Package {sha256 1.0.3}
See   __sha1
Platform *
Desc     {SHA256 Message-Digest Algorithm}

Package {sha1 1.1.1}
See   __sha1
Platform *
Desc     {SHA1 Message-Digest Algorithm}

Package {sha1 2.0.3}
See   __sha1
Platform *
Desc     {SHA1 Message-Digest Algorithm}

#
# #############

# ###################
# Module "simulation"
# [1]    | "simulation::montecarlo" (0.1)
# [2]    | "simulation::random" (0.3.1)
# [3]    | "simulation::annealing" (0.2)
# -------+

Package {__simulation 0.0}
Platform *
Desc     {Tcl Simulation Tools}
Hidden
Base     @TAP_DIR@/simulation
Path     annealing.tcl
Path     montecarlo.tcl
Path     pkgIndex.tcl
Path     random.tcl

Package {simulation::montecarlo 0.1}
See   __simulation
Platform *
Desc     {Monte Carlo simulations}

Package {simulation::random 0.3.1}
See   __simulation
Platform *
Desc     {Pseudo-random number generators}

Package {simulation::annealing 0.2}
See   __simulation
Platform *
Desc     {Simulated annealing}






#
# ###################

# ##############
# Module "smtpd"
# [1]    | "smtpd" (1.5)
# -------+
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
Path     snit2.tcl
Path     snit_tcl83_utils.tcl
Path     validate.tcl

Package {snit 1.4.2}
See   __snit
Platform *
Desc     {page PEG transformation utilities}

Package {snit 2.3.2}
See   __snit
Platform *
Desc     {page PEG transformation utilities}

#
# #############

# ################
# Module "soundex"
# [1]    | "soundex" (1.0)







|




|







3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
Path     snit2.tcl
Path     snit_tcl83_utils.tcl
Path     validate.tcl

Package {snit 1.4.2}
See   __snit
Platform *
Desc     {page character quoting utilities}

Package {snit 2.3.2}
See   __snit
Platform *
Desc     {page character quoting utilities}

#
# #############

# ################
# Module "soundex"
# [1]    | "soundex" (1.0)
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243





3244
3245
3246
3247
3248
3249
3250
See   __stooop
Platform *
Desc     {Object oriented extension.}

Package {switched 2.2.1}
See   __stooop
Platform *
Desc     {Tcllib package}

#
# ###############

# ###############
# Module "string"
# [1]    | "string::token::shell" (1)
# [2]    | "string::token" (1)
# -------+

Package {__string 0.0}
Platform *
Desc     {Text and string utilities}
Hidden
Base     @TAP_DIR@/string
Path     pkgIndex.tcl
Path     token.tcl
Path     token_shell.tcl

Package {string::token::shell 1}
See   __string
Platform *
Desc     {Parsing of shell command line}

Package {string::token 1}
See   __string
Platform *
Desc     {Regex based iterative lexing}






#
# ###############

# ###################
# Module "stringprep"
# [1]    | "stringprep::data" (1.0.1)
# [2]    | "unicode::data" (1.0.0)







|






|
|











<
<
<
<
<





>
>
>
>
>







3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423





3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
See   __stooop
Platform *
Desc     {Object oriented extension.}

Package {switched 2.2.1}
See   __stooop
Platform *
Desc     {switch/option management.}

#
# ###############

# ###############
# Module "string"
# [1]    | "string::token" (1)
# [2]    | "string::token::shell" (1.2)
# -------+

Package {__string 0.0}
Platform *
Desc     {Text and string utilities}
Hidden
Base     @TAP_DIR@/string
Path     pkgIndex.tcl
Path     token.tcl
Path     token_shell.tcl






Package {string::token 1}
See   __string
Platform *
Desc     {Regex based iterative lexing}

Package {string::token::shell 1.2}
See   __string
Platform *
Desc     {Parsing of shell command line}

#
# ###############

# ###################
# Module "stringprep"
# [1]    | "stringprep::data" (1.0.1)
# [2]    | "unicode::data" (1.0.0)
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
# [3]    | "struct::tree" (2.1.2)
# [4]    | "struct::graph" (1.2.1)
# [5]    | "struct::graph" (2.4)
# [6]    | "struct::skiplist" (1.3)
# [7]    | "struct" (1.4)
# [8]    | "struct" (2.1)
# [9]    | "struct::set" (2.2.3)
# [10]    | "struct::queue" (1.4.4)
# [11]    | "struct::prioqueue" (1.4)
# [12]    | "struct::disjointset" (1.0)
# [13]    | "struct::pool" (1.2.1)
# [14]    | "struct::list" (1.8.2)
# [15]    | "struct::matrix" (1.2.1)
# [16]    | "struct::matrix" (2.0.2)
# [17]    | "struct::graph::op" (0.11.3)
# [18]    | "struct::stack" (1.5.3)
# -------+

Package {__struct 0.0}
Platform *
Desc     {Tcl Data Structures, Documentation tools}
Hidden
Base     @TAP_DIR@/struct
Path     disjointset.tcl
Path     graph.tcl
Path     graph1.tcl
Path     graph_c.tcl
Path     graph_tcl.tcl







|


|
|
|
|
|





|







3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
# [3]    | "struct::tree" (2.1.2)
# [4]    | "struct::graph" (1.2.1)
# [5]    | "struct::graph" (2.4)
# [6]    | "struct::skiplist" (1.3)
# [7]    | "struct" (1.4)
# [8]    | "struct" (2.1)
# [9]    | "struct::set" (2.2.3)
# [10]    | "struct::queue" (1.4.5)
# [11]    | "struct::prioqueue" (1.4)
# [12]    | "struct::disjointset" (1.0)
# [13]    | "struct::pool" (1.2.3)
# [14]    | "struct::list" (1.8.3)
# [15]    | "struct::graph::op" (0.11.3)
# [16]    | "struct::matrix" (1.2.1)
# [17]    | "struct::matrix" (2.0.3)
# [18]    | "struct::stack" (1.5.3)
# -------+

Package {__struct 0.0}
Platform *
Desc     {Tcl Data Structures}
Hidden
Base     @TAP_DIR@/struct
Path     disjointset.tcl
Path     graph.tcl
Path     graph1.tcl
Path     graph_c.tcl
Path     graph_tcl.tcl
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415

3416




3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458

3459
3460
3461
3462
3463

3464
3465
3466











3467
3468
3469
3470
3471
3472

3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
Desc     {Tcllib package}

Package {struct::set 2.2.3}
See   __struct
Platform *
Desc     {Procedures for manipulating sets}

Package {struct::queue 1.4.4}
See   __struct
Platform *
Desc     {Create and manipulate queue objects}

Package {struct::prioqueue 1.4}
See   __struct
Platform *
Desc     {Create and manipulate prioqueue objects}

Package {struct::disjointset 1.0}
See   __struct
Platform *
Desc     {Disjoint set data structure}

Package {struct::pool 1.2.1}
See   __struct
Platform *
Desc     {Create and manipulate pool objects (of discrete items)}

Package {struct::list 1.8.2}
See   __struct
Platform *

Desc     {Processing text in 'subst -novariables' format}





Package {struct::matrix 1.2.1}
See   __struct
Platform *
Desc     {Create and manipulate matrix objects}

Package {struct::matrix 2.0.2}
See   __struct
Platform *
Desc     {Create and manipulate matrix objects}

Package {struct::graph::op 0.11.3}
See   __struct
Platform *
Desc     {Operation for (un)directed graph objects}

Package {struct::stack 1.5.3}
See   __struct
Platform *
Desc     {Processing text in 'subst -novariables' format}

#
# ###############

# ############
# Module "tar"
# [1]    | "tar" (0.7.1)
# -------+

Package {tar 0.7.1}
Platform *
Desc     {Tar file creation, extraction & manipulation}
Base     @TAP_DIR@/tar
Path     pkgIndex.tcl
Path     tar.tcl

#
# ############

# ##############
# Module "tepam"
# [1]    | "tepam" (0.4.0)

# -------+

Package {tepam 0.4.0}
Platform *
Desc     {TEPAM argument_dialogbox, reference manual}

Base     @TAP_DIR@/tepam
Path     pkgIndex.tcl
Path     tepam.tcl












#
# ##############

# #############
# Module "term"

# [1]    | "term::ansi::ctrl::unix" (0.1.1)
# [2]    | "term::receive::bind" (0.1)
# [3]    | "term::ansi::code::attr" (0.1)
# [4]    | "term::interact::menu" (0.1)
# [5]    | "term" (0.1)
# [6]    | "term::interact::pager" (0.1)
# [7]    | "term::ansi::send" (0.1)
# [8]    | "term::ansi::code" (0.1)
# [9]    | "term::send" (0.1)
# [10]    | "term::ansi::code::ctrl" (0.1.2)
# [11]    | "term::ansi::code::macros" (0.1)
# [12]    | "term::receive" (0.1)
# -------+

Package {__term 0.0}
Platform *
Desc     {Terminal control}
Hidden
Base     @TAP_DIR@/term







|














|




|


>
|
>
>
>
>






|




<
<
<
<
<



|






|


|











|
>


|

|
>



>
>
>
>
>
>
>
>
>
>
>






>
|
<




|
|
|
|

|







3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622





3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677

3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
Desc     {Tcllib package}

Package {struct::set 2.2.3}
See   __struct
Platform *
Desc     {Procedures for manipulating sets}

Package {struct::queue 1.4.5}
See   __struct
Platform *
Desc     {Create and manipulate queue objects}

Package {struct::prioqueue 1.4}
See   __struct
Platform *
Desc     {Create and manipulate prioqueue objects}

Package {struct::disjointset 1.0}
See   __struct
Platform *
Desc     {Disjoint set data structure}

Package {struct::pool 1.2.3}
See   __struct
Platform *
Desc     {Create and manipulate pool objects (of discrete items)}

Package {struct::list 1.8.3}
See   __struct
Platform *
Desc     {Procedures for manipulating lists}

Package {struct::graph::op 0.11.3}
See   __struct
Platform *
Desc     {Operation for (un)directed graph objects}

Package {struct::matrix 1.2.1}
See   __struct
Platform *
Desc     {Create and manipulate matrix objects}

Package {struct::matrix 2.0.3}
See   __struct
Platform *
Desc     {Create and manipulate matrix objects}






Package {struct::stack 1.5.3}
See   __struct
Platform *
Desc     {Create and manipulate stack objects}

#
# ###############

# ############
# Module "tar"
# [1]    | "tar" (0.10)
# -------+

Package {tar 0.10}
Platform *
Desc     {Tar file creation, extraction & manipulation}
Base     @TAP_DIR@/tar
Path     pkgIndex.tcl
Path     tar.tcl

#
# ############

# ##############
# Module "tepam"
# [1]    | "tepam::doc_gen" (0.1.1)
# [2]    | "tepam" (0.5)
# -------+

Package {__tepam 0.0}
Platform *
Desc     {Tcl's Enhanced Procedure and Argument Manager}
Hidden
Base     @TAP_DIR@/tepam
Path     pkgIndex.tcl
Path     tepam.tcl
Path     tepam_doc_gen.tcl

Package {tepam::doc_gen 0.1.1}
See   __tepam
Platform *
Desc     {TEPAM DOC Generation, reference manual}

Package {tepam 0.5}
See   __tepam
Platform *
Desc     {TEPAM argument_dialogbox, reference manual}

#
# ##############

# #############
# Module "term"
# [1]    | "term::receive::bind" (0.1)
# [2]    | "term::ansi::ctrl::unix" (0.1.1)

# [3]    | "term::ansi::code::attr" (0.1)
# [4]    | "term::interact::menu" (0.1)
# [5]    | "term" (0.1)
# [6]    | "term::interact::pager" (0.1)
# [7]    | "term::ansi::send" (0.2)
# [8]    | "term::send" (0.1)
# [9]    | "term::ansi::code" (0.2)
# [10]    | "term::receive" (0.1)
# [11]    | "term::ansi::code::macros" (0.1)
# [12]    | "term::ansi::code::ctrl" (0.2)
# -------+

Package {__term 0.0}
Platform *
Desc     {Terminal control}
Hidden
Base     @TAP_DIR@/term
3499
3500
3501
3502
3503
3504
3505





3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554





3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
Path     imenu.tcl
Path     ipager.tcl
Path     pkgIndex.tcl
Path     receive.tcl
Path     send.tcl
Path     term.tcl






Package {term::ansi::ctrl::unix 0.1.1}
See   __term
Platform *
Desc     {Control operations and queries}

Package {term::receive::bind 0.1}
See   __term
Platform *
Desc     {Keyboard dispatch from terminals}

Package {term::ansi::code::attr 0.1}
See   __term
Platform *
Desc     {ANSI attribute sequences}

Package {term::interact::menu 0.1}
See   __term
Platform *
Desc     {Terminal widget, menu}

Package {term 0.1}
See   __term
Platform *
Desc     {General terminal control}

Package {term::interact::pager 0.1}
See   __term
Platform *
Desc     {Terminal widget, paging}

Package {term::ansi::send 0.1}
See   __term
Platform *
Desc     {Output of ANSI control sequences to terminals}

Package {term::ansi::code 0.1}
See   __term
Platform *
Desc     {Helper for control sequences}

Package {term::send 0.1}
See   __term
Platform *
Desc     {General output to terminals}

Package {term::ansi::code::ctrl 0.1.2}
See   __term
Platform *
Desc     {ANSI control sequences}






Package {term::ansi::code::macros 0.1}
See   __term
Platform *
Desc     {Macro sequences}

Package {term::receive 0.1}
See   __term
Platform *
Desc     {General input from terminals}

#
# #############

# #################
# Module "textutil"
# [1]    | "textutil::repeat" (0.7)
# [2]    | "textutil::tabify" (0.7)
# [3]    | "textutil::string" (0.7.1)
# [4]    | "textutil::adjust" (0.7.1)
# [5]    | "textutil::expander" (1.3.1)
# [6]    | "textutil::trim" (0.7)
# [7]    | "textutil::split" (0.7)
# [8]    | "textutil" (0.7.1)
# -------+

Package {__textutil 0.0}
Platform *
Desc     {Text and string utilities, macro processing}
Hidden
Base     @TAP_DIR@/textutil







>
>
>
>
>





<
<
<
<
<




















|




<
<
<
<
<





|


|
>
>
>
>
>






|


|







|
|
|

|
|
|







3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718





3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743





3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
Path     imenu.tcl
Path     ipager.tcl
Path     pkgIndex.tcl
Path     receive.tcl
Path     send.tcl
Path     term.tcl

Package {term::receive::bind 0.1}
See   __term
Platform *
Desc     {Keyboard dispatch from terminals}

Package {term::ansi::ctrl::unix 0.1.1}
See   __term
Platform *
Desc     {Control operations and queries}






Package {term::ansi::code::attr 0.1}
See   __term
Platform *
Desc     {ANSI attribute sequences}

Package {term::interact::menu 0.1}
See   __term
Platform *
Desc     {Terminal widget, menu}

Package {term 0.1}
See   __term
Platform *
Desc     {General terminal control}

Package {term::interact::pager 0.1}
See   __term
Platform *
Desc     {Terminal widget, paging}

Package {term::ansi::send 0.2}
See   __term
Platform *
Desc     {Output of ANSI control sequences to terminals}






Package {term::send 0.1}
See   __term
Platform *
Desc     {General output to terminals}

Package {term::ansi::code 0.2}
See   __term
Platform *
Desc     {Helper for control sequences}

Package {term::receive 0.1}
See   __term
Platform *
Desc     {General input from terminals}

Package {term::ansi::code::macros 0.1}
See   __term
Platform *
Desc     {Macro sequences}

Package {term::ansi::code::ctrl 0.2}
See   __term
Platform *
Desc     {ANSI control sequences}

#
# #############

# #################
# Module "textutil"
# [1]    | "textutil::repeat" (0.7)
# [2]    | "textutil::string" (0.8)
# [3]    | "textutil::tabify" (0.7)
# [4]    | "textutil::adjust" (0.7.3)
# [5]    | "textutil::expander" (1.3.1)
# [6]    | "textutil::split" (0.7)
# [7]    | "textutil" (0.8)
# [8]    | "textutil::trim" (0.7)
# -------+

Package {__textutil 0.0}
Platform *
Desc     {Text and string utilities, macro processing}
Hidden
Base     @TAP_DIR@/textutil
3597
3598
3599
3600
3601
3602
3603





3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638





3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
Path     trim.tcl

Package {textutil::repeat 0.7}
See   __textutil
Platform *
Desc     {Procedures to repeat strings.}






Package {textutil::tabify 0.7}
See   __textutil
Platform *
Desc     {Procedures to (un)tabify strings}

Package {textutil::string 0.7.1}
See   __textutil
Platform *
Desc     {Procedures to manipulate texts and strings.}

Package {textutil::adjust 0.7.1}
See   __textutil
Platform *
Desc     {Procedures to adjust, indent, and undent paragraphs}

Package {textutil::expander 1.3.1}
See   __textutil
Platform *
Desc     {Procedures to process templates and expand text.}

Package {textutil::trim 0.7}
See   __textutil
Platform *
Desc     {Procedures to trim strings}

Package {textutil::split 0.7}
See   __textutil
Platform *
Desc     {Procedures to split texts}

Package {textutil 0.7.1}
See   __textutil
Platform *
Desc     {Procedures to manipulate texts and strings.}






#
# #################

# ############
# Module "tie"
# [1]    | "tie::std::array" (1.0)
# [2]    | "tie::std::growfile" (1.0)
# [3]    | "tie::std::file" (1.0.4)
# [4]    | "tie" (1.1)
# [5]    | "tie::std::rarray" (1.0)
# [6]    | "tie::std::dsource" (1.0)
# [7]    | "tie::std::log" (1.0)
# -------+








>
>
>
>
>





<
<
<
<
<
|









<
<
<
<
<





|




>
>
>
>
>





|
|







3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816





3817
3818
3819
3820
3821
3822
3823
3824
3825
3826





3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
Path     trim.tcl

Package {textutil::repeat 0.7}
See   __textutil
Platform *
Desc     {Procedures to repeat strings.}

Package {textutil::string 0.8}
See   __textutil
Platform *
Desc     {Procedures to manipulate texts and strings.}

Package {textutil::tabify 0.7}
See   __textutil
Platform *
Desc     {Procedures to (un)tabify strings}






Package {textutil::adjust 0.7.3}
See   __textutil
Platform *
Desc     {Procedures to adjust, indent, and undent paragraphs}

Package {textutil::expander 1.3.1}
See   __textutil
Platform *
Desc     {Procedures to process templates and expand text.}






Package {textutil::split 0.7}
See   __textutil
Platform *
Desc     {Procedures to split texts}

Package {textutil 0.8}
See   __textutil
Platform *
Desc     {Procedures to manipulate texts and strings.}

Package {textutil::trim 0.7}
See   __textutil
Platform *
Desc     {Procedures to trim strings}

#
# #################

# ############
# Module "tie"
# [1]    | "tie::std::growfile" (1.0)
# [2]    | "tie::std::array" (1.0)
# [3]    | "tie::std::file" (1.0.4)
# [4]    | "tie" (1.1)
# [5]    | "tie::std::rarray" (1.0)
# [6]    | "tie::std::dsource" (1.0)
# [7]    | "tie::std::log" (1.0)
# -------+

3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
Path     tie_array.tcl
Path     tie_dsource.tcl
Path     tie_file.tcl
Path     tie_growfile.tcl
Path     tie_log.tcl
Path     tie_rarray.tcl

Package {tie::std::array 1.0}
See   __tie
Platform *
Desc     {Array persistence, standard data sources}

Package {tie::std::growfile 1.0}
See   __tie
Platform *
Desc     {Array persistence, standard data sources}

Package {tie::std::file 1.0.4}
See   __tie
Platform *







|




|







3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
Path     tie_array.tcl
Path     tie_dsource.tcl
Path     tie_file.tcl
Path     tie_growfile.tcl
Path     tie_log.tcl
Path     tie_rarray.tcl

Package {tie::std::growfile 1.0}
See   __tie
Platform *
Desc     {Array persistence, standard data sources}

Package {tie::std::array 1.0}
See   __tie
Platform *
Desc     {Array persistence, standard data sources}

Package {tie::std::file 1.0.4}
See   __tie
Platform *
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744





3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
Path     tiff.tcl

#
# #############

# #################
# Module "transfer"
# [1]    | "transfer::data::source" (0.2)
# [2]    | "transfer::copy" (0.3)
# [3]    | "transfer::data::destination" (0.2)
# [4]    | "transfer::copy::queue" (0.1)
# [5]    | "transfer::transmitter" (0.2)
# [6]    | "transfer::receiver" (0.2)
# [7]    | "transfer::connect" (0.2)
# -------+

Package {__transfer 0.0}
Platform *
Desc     {Data transfer facilities}
Hidden
Base     @TAP_DIR@/transfer
Path     connect.tcl
Path     copyops.tcl
Path     ddest.tcl
Path     dsource.tcl
Path     pkgIndex.tcl
Path     receiver.tcl
Path     tqueue.tcl
Path     transmitter.tcl






Package {transfer::data::source 0.2}
See   __transfer
Platform *
Desc     {Data source}

Package {transfer::copy 0.3}
See   __transfer
Platform *
Desc     {Data transfer foundation}

Package {transfer::data::destination 0.2}
See   __transfer
Platform *
Desc     {Data destination}

Package {transfer::copy::queue 0.1}
See   __transfer
Platform *
Desc     {Queued transfers}

Package {transfer::transmitter 0.2}
See   __transfer
Platform *
Desc     {Data source}

Package {transfer::receiver 0.2}
See   __transfer
Platform *
Desc     {Data source}

Package {transfer::connect 0.2}
See   __transfer
Platform *
Desc     {Connection setup}

#
# #################

# ###############
# Module "treeql"
# [1]    | "treeql" (1.3.1)
# -------+

Package {treeql 1.3.1}
Platform *
Desc     {Processing text in 'subst -novariables' format}
Base     @TAP_DIR@/treeql
Path     pkgIndex.tcl
Path     treeql.tcl
Path     treeql84.tcl
Path     treeql85.tcl

#







|
|
|
|
|
|

















>
>
>
>
>





|


|






|
<
<
<
<
<




|



















|







3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968





3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
Path     tiff.tcl

#
# #############

# #################
# Module "transfer"
# [1]    | "transfer::copy" (0.3)
# [2]    | "transfer::data::source" (0.2)
# [3]    | "transfer::copy::queue" (0.1)
# [4]    | "transfer::data::destination" (0.2)
# [5]    | "transfer::receiver" (0.2)
# [6]    | "transfer::transmitter" (0.2)
# [7]    | "transfer::connect" (0.2)
# -------+

Package {__transfer 0.0}
Platform *
Desc     {Data transfer facilities}
Hidden
Base     @TAP_DIR@/transfer
Path     connect.tcl
Path     copyops.tcl
Path     ddest.tcl
Path     dsource.tcl
Path     pkgIndex.tcl
Path     receiver.tcl
Path     tqueue.tcl
Path     transmitter.tcl

Package {transfer::copy 0.3}
See   __transfer
Platform *
Desc     {Data transfer foundation}

Package {transfer::data::source 0.2}
See   __transfer
Platform *
Desc     {Data source}

Package {transfer::copy::queue 0.1}
See   __transfer
Platform *
Desc     {Queued transfers}

Package {transfer::data::destination 0.2}
See   __transfer
Platform *
Desc     {Data destination}

Package {transfer::receiver 0.2}





See   __transfer
Platform *
Desc     {Data source}

Package {transfer::transmitter 0.2}
See   __transfer
Platform *
Desc     {Data source}

Package {transfer::connect 0.2}
See   __transfer
Platform *
Desc     {Connection setup}

#
# #################

# ###############
# Module "treeql"
# [1]    | "treeql" (1.3.1)
# -------+

Package {treeql 1.3.1}
Platform *
Desc     {Query tree objects}
Base     @TAP_DIR@/treeql
Path     pkgIndex.tcl
Path     treeql.tcl
Path     treeql84.tcl
Path     treeql85.tcl

#
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
Path     units.tcl

#
# ##############

# ############
# Module "uri"
# [1]    | "uri" (1.2.2)
# [2]    | "uri::urn" (1.0.2)
# -------+

Package {__uri 0.0}
Platform *
Desc     {Tcl Uniform Resource Identifier Management}
Hidden
Base     @TAP_DIR@/uri
Path     pkgIndex.tcl
Path     uri.tcl
Path     urn-scheme.tcl

Package {uri 1.2.2}
See   __uri
Platform *
Desc     {URI utilities}

Package {uri::urn 1.0.2}
See   __uri
Platform *
Desc     {URI utilities, URN scheme}

#
# ############

# #############
# Module "uuid"
# [1]    | "uuid" (1.0.2)
# -------+

Package {uuid 1.0.2}
Platform *
Desc     {UUID generation and comparison}
Base     @TAP_DIR@/uuid
Path     pkgIndex.tcl
Path     uuid.tcl

#
# #############

# ################
# Module "valtype"
# [1]    | "valtype::creditcard::mastercard" (1)
# [2]    | "valtype::usnpi" (1)
# [3]    | "valtype::creditcard::discover" (1)
# [4]    | "valtype::common" (1)
# [5]    | "valtype::creditcard::visa" (1)
# [6]    | "valtype::imei" (1)
# [7]    | "valtype::isbn" (1)
# [8]    | "valtype::creditcard::amex" (1)
# [9]    | "valtype::gs1::ean13" (1)
# [10]    | "valtype::luhn" (1)
# [11]    | "valtype::iban" (1.1)
# [12]    | "valtype::luhn5" (1)
# [13]    | "valtype::verhoeff" (1)
# -------+

Package {__valtype 0.0}
Platform *
Desc     {Validation types}







|
|











|




|









|


|















|
|
|
|


|







4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
Path     units.tcl

#
# ##############

# ############
# Module "uri"
# [1]    | "uri" (1.2.5)
# [2]    | "uri::urn" (1.0.3)
# -------+

Package {__uri 0.0}
Platform *
Desc     {Tcl Uniform Resource Identifier Management}
Hidden
Base     @TAP_DIR@/uri
Path     pkgIndex.tcl
Path     uri.tcl
Path     urn-scheme.tcl

Package {uri 1.2.5}
See   __uri
Platform *
Desc     {URI utilities}

Package {uri::urn 1.0.3}
See   __uri
Platform *
Desc     {URI utilities, URN scheme}

#
# ############

# #############
# Module "uuid"
# [1]    | "uuid" (1.0.4)
# -------+

Package {uuid 1.0.4}
Platform *
Desc     {UUID generation and comparison}
Base     @TAP_DIR@/uuid
Path     pkgIndex.tcl
Path     uuid.tcl

#
# #############

# ################
# Module "valtype"
# [1]    | "valtype::creditcard::mastercard" (1)
# [2]    | "valtype::usnpi" (1)
# [3]    | "valtype::creditcard::discover" (1)
# [4]    | "valtype::common" (1)
# [5]    | "valtype::creditcard::amex" (1)
# [6]    | "valtype::isbn" (1)
# [7]    | "valtype::creditcard::visa" (1)
# [8]    | "valtype::imei" (1)
# [9]    | "valtype::gs1::ean13" (1)
# [10]    | "valtype::luhn" (1)
# [11]    | "valtype::iban" (1.5)
# [12]    | "valtype::luhn5" (1)
# [13]    | "valtype::verhoeff" (1)
# -------+

Package {__valtype 0.0}
Platform *
Desc     {Validation types}
3950
3951
3952
3953
3954
3955
3956










3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
Platform *
Desc     {Validation for Discover creditcard number}

Package {valtype::common 1}
See   __valtype
Platform *
Desc     {Validation, common code}











Package {valtype::creditcard::visa 1}
See   __valtype
Platform *
Desc     {Validation for VISA creditcard number}

Package {valtype::imei 1}
See   __valtype
Platform *
Desc     {Validation for IMEI}

Package {valtype::isbn 1}
See   __valtype
Platform *
Desc     {Validation for ISBN}

Package {valtype::creditcard::amex 1}
See   __valtype
Platform *
Desc     {Validation for AMEX creditcard number}

Package {valtype::gs1::ean13 1}
See   __valtype
Platform *
Desc     {Validation for EAN13}

Package {valtype::luhn 1}
See   __valtype
Platform *
Desc     {Validation for plain number with a LUHN checkdigit}

Package {valtype::iban 1.1}
See   __valtype
Platform *
Desc     {Validation for IBAN}

Package {valtype::luhn5 1}
See   __valtype
Platform *







>
>
>
>
>
>
>
>
>
>











<
<
<
<
<
<
<
<
<
<










|







4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180










4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
Platform *
Desc     {Validation for Discover creditcard number}

Package {valtype::common 1}
See   __valtype
Platform *
Desc     {Validation, common code}

Package {valtype::creditcard::amex 1}
See   __valtype
Platform *
Desc     {Validation for AMEX creditcard number}

Package {valtype::isbn 1}
See   __valtype
Platform *
Desc     {Validation for ISBN}

Package {valtype::creditcard::visa 1}
See   __valtype
Platform *
Desc     {Validation for VISA creditcard number}

Package {valtype::imei 1}
See   __valtype
Platform *
Desc     {Validation for IMEI}











Package {valtype::gs1::ean13 1}
See   __valtype
Platform *
Desc     {Validation for EAN13}

Package {valtype::luhn 1}
See   __valtype
Platform *
Desc     {Validation for plain number with a LUHN checkdigit}

Package {valtype::iban 1.5}
See   __valtype
Platform *
Desc     {Validation for IBAN}

Package {valtype::luhn5 1}
See   __valtype
Platform *
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
# ################

# #########################
# Module "virtchannel_base"
# [1]    | "tcl::chan::std" (1.0.1)
# [2]    | "tcl::chan::fifo" (1)
# [3]    | "tcl::chan::cat" (1.0.2)
# [4]    | "tcl::chan::halfpipe" (1)
# [5]    | "tcl::chan::memchan" (1.0.2)
# [6]    | "tcl::chan::random" (1)
# [7]    | "tcl::chan::null" (1)
# [8]    | "tcl::chan::nullzero" (1)
# [9]    | "tcl::chan::facade" (1.0.1)
# [10]    | "tcl::randomseed" (1)
# [11]    | "tcl::chan::textwindow" (1)
# [12]    | "tcl::chan::variable" (1.0.2)
# [13]    | "tcl::chan::fifo2" (1)
# [14]    | "tcl::chan::string" (1.0.1)
# [15]    | "tcl::chan::zero" (1)
# -------+

Package {__virtchannel_base 0.0}
Platform *
Desc     {Reflected/virtual channel support}
Hidden







|
|
|


|
|

|
|
|







4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
# ################

# #########################
# Module "virtchannel_base"
# [1]    | "tcl::chan::std" (1.0.1)
# [2]    | "tcl::chan::fifo" (1)
# [3]    | "tcl::chan::cat" (1.0.2)
# [4]    | "tcl::chan::memchan" (1.0.3)
# [5]    | "tcl::chan::random" (1)
# [6]    | "tcl::chan::halfpipe" (1)
# [7]    | "tcl::chan::null" (1)
# [8]    | "tcl::chan::nullzero" (1)
# [9]    | "tcl::randomseed" (1)
# [10]    | "tcl::chan::facade" (1.0.1)
# [11]    | "tcl::chan::textwindow" (1)
# [12]    | "tcl::chan::fifo2" (1)
# [13]    | "tcl::chan::variable" (1.0.3)
# [14]    | "tcl::chan::string" (1.0.2)
# [15]    | "tcl::chan::zero" (1)
# -------+

Package {__virtchannel_base 0.0}
Platform *
Desc     {Reflected/virtual channel support}
Hidden
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076





4077
4078
4079
4080
4081
4082
4083
4084
4085
4086





4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111





4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146





4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
Desc     {In-memory fifo channel}

Package {tcl::chan::cat 1.0.2}
See   __virtchannel_base
Platform *
Desc     {Concatenation channel}

Package {tcl::chan::halfpipe 1}
See   __virtchannel_base
Platform *
Desc     {In-memory channel, half of a fifo2}

Package {tcl::chan::memchan 1.0.2}
See   __virtchannel_base
Platform *
Desc     {In-memory channel}

Package {tcl::chan::random 1}
See   __virtchannel_base
Platform *
Desc     {Random channel}






Package {tcl::chan::null 1}
See   __virtchannel_base
Platform *
Desc     {Null channel}

Package {tcl::chan::nullzero 1}
See   __virtchannel_base
Platform *
Desc     {Null/Zero channel combination}






Package {tcl::chan::facade 1.0.1}
See   __virtchannel_base
Platform *
Desc     {Facade channel}

Package {tcl::randomseed 1}
See   __virtchannel_base
Platform *
Desc     {Tcllib package}

Package {tcl::chan::textwindow 1}
See   __virtchannel_base
Platform *
Desc     {Textwindow channel}

Package {tcl::chan::variable 1.0.2}
See   __virtchannel_base
Platform *
Desc     {In-memory channel using variable for storage}

Package {tcl::chan::fifo2 1}
See   __virtchannel_base
Platform *
Desc     {In-memory interconnected fifo channels}






Package {tcl::chan::string 1.0.1}
See   __virtchannel_base
Platform *
Desc     {Read-only in-memory channel}

Package {tcl::chan::zero 1}
See   __virtchannel_base
Platform *
Desc     {Zero channel}

#
# #########################

# #########################
# Module "virtchannel_core"
# [1]    | "tcl::transform::core" (1)
# [2]    | "tcl::chan::events" (1)
# [3]    | "tcl::chan::core" (1)
# -------+

Package {__virtchannel_core 0.0}
Platform *
Desc     {Reflected/virtual channel support}
Hidden
Base     @TAP_DIR@/virtchannel_core
Path     core.tcl
Path     events.tcl
Path     pkgIndex.tcl
Path     transformcore.tcl

Package {tcl::transform::core 1}
See   __virtchannel_core
Platform *
Desc     {Basic reflected/virtual channel transform support}






Package {tcl::chan::events 1}
See   __virtchannel_core
Platform *
Desc     {Event support for reflected/virtual channels}

Package {tcl::chan::core 1}
See   __virtchannel_core
Platform *
Desc     {Basic reflected/virtual channel support}

#
# #########################

# ##############################
# Module "virtchannel_transform"
# [1]    | "tcl::transform::zlib" (1)
# [2]    | "tcl::transform::limitsize" (1)
# [3]    | "tcl::transform::identity" (1)
# [4]    | "tcl::transform::otp" (1)
# [5]    | "tcl::transform::crc32" (1)
# [6]    | "tcl::transform::base64" (1)
# [7]    | "tcl::transform::adler32" (1)
# [8]    | "tcl::transform::rot" (1)
# [9]    | "tcl::transform::hex" (1)
# [10]    | "tcl::transform::observe" (1)
# [11]    | "tcl::transform::spacer" (1)
# [12]    | "tcl::transform::counter" (1)
# -------+

Package {__virtchannel_transform 0.0}
Platform *







|
<
<
<
<
<









>
>
>
>
>










>
>
>
>
>





<
<
<
<
<





<
<
<
<
<





>
>
>
>
>
|















|
|

















>
>
>
>
>





<
<
<
<
<





|
|
|

|
|
|
|
|







4258
4259
4260
4261
4262
4263
4264
4265





4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299





4300
4301
4302
4303
4304





4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359





4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
Desc     {In-memory fifo channel}

Package {tcl::chan::cat 1.0.2}
See   __virtchannel_base
Platform *
Desc     {Concatenation channel}

Package {tcl::chan::memchan 1.0.3}





See   __virtchannel_base
Platform *
Desc     {In-memory channel}

Package {tcl::chan::random 1}
See   __virtchannel_base
Platform *
Desc     {Random channel}

Package {tcl::chan::halfpipe 1}
See   __virtchannel_base
Platform *
Desc     {In-memory channel, half of a fifo2}

Package {tcl::chan::null 1}
See   __virtchannel_base
Platform *
Desc     {Null channel}

Package {tcl::chan::nullzero 1}
See   __virtchannel_base
Platform *
Desc     {Null/Zero channel combination}

Package {tcl::randomseed 1}
See   __virtchannel_base
Platform *
Desc     {Utilities for random channels}

Package {tcl::chan::facade 1.0.1}
See   __virtchannel_base
Platform *
Desc     {Facade channel}






Package {tcl::chan::textwindow 1}
See   __virtchannel_base
Platform *
Desc     {Textwindow channel}






Package {tcl::chan::fifo2 1}
See   __virtchannel_base
Platform *
Desc     {In-memory interconnected fifo channels}

Package {tcl::chan::variable 1.0.3}
See   __virtchannel_base
Platform *
Desc     {In-memory channel using variable for storage}

Package {tcl::chan::string 1.0.2}
See   __virtchannel_base
Platform *
Desc     {Read-only in-memory channel}

Package {tcl::chan::zero 1}
See   __virtchannel_base
Platform *
Desc     {Zero channel}

#
# #########################

# #########################
# Module "virtchannel_core"
# [1]    | "tcl::transform::core" (1)
# [2]    | "tcl::chan::core" (1)
# [3]    | "tcl::chan::events" (1)
# -------+

Package {__virtchannel_core 0.0}
Platform *
Desc     {Reflected/virtual channel support}
Hidden
Base     @TAP_DIR@/virtchannel_core
Path     core.tcl
Path     events.tcl
Path     pkgIndex.tcl
Path     transformcore.tcl

Package {tcl::transform::core 1}
See   __virtchannel_core
Platform *
Desc     {Basic reflected/virtual channel transform support}

Package {tcl::chan::core 1}
See   __virtchannel_core
Platform *
Desc     {Basic reflected/virtual channel support}

Package {tcl::chan::events 1}
See   __virtchannel_core
Platform *
Desc     {Event support for reflected/virtual channels}






#
# #########################

# ##############################
# Module "virtchannel_transform"
# [1]    | "tcl::transform::zlib" (1.0.1)
# [2]    | "tcl::transform::identity" (1)
# [3]    | "tcl::transform::limitsize" (1)
# [4]    | "tcl::transform::otp" (1)
# [5]    | "tcl::transform::base64" (1)
# [6]    | "tcl::transform::crc32" (1)
# [7]    | "tcl::transform::rot" (1)
# [8]    | "tcl::transform::hex" (1)
# [9]    | "tcl::transform::adler32" (1)
# [10]    | "tcl::transform::observe" (1)
# [11]    | "tcl::transform::spacer" (1)
# [12]    | "tcl::transform::counter" (1)
# -------+

Package {__virtchannel_transform 0.0}
Platform *
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208





4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238





4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256















4257
4258
4259
4260
4261
4262
4263
Path     observe.tcl
Path     otp.tcl
Path     pkgIndex.tcl
Path     rot.tcl
Path     spacer.tcl
Path     zlib.tcl

Package {tcl::transform::zlib 1}
See   __virtchannel_transform
Platform *
Desc     {zlib (de)compression}

Package {tcl::transform::limitsize 1}
See   __virtchannel_transform
Platform *
Desc     {limiting input}

Package {tcl::transform::identity 1}
See   __virtchannel_transform
Platform *
Desc     {Identity transformation}






Package {tcl::transform::otp 1}
See   __virtchannel_transform
Platform *
Desc     {Tcllib package}

Package {tcl::transform::crc32 1}
See   __virtchannel_transform
Platform *
Desc     {Tcllib package}

Package {tcl::transform::base64 1}
See   __virtchannel_transform
Platform *
Desc     {Tcllib package}

Package {tcl::transform::adler32 1}
See   __virtchannel_transform
Platform *
Desc     {Adler32 transformation}

Package {tcl::transform::rot 1}
See   __virtchannel_transform
Platform *
Desc     {rot-encryption}

Package {tcl::transform::hex 1}
See   __virtchannel_transform
Platform *
Desc     {Hexadecimal encoding transformation}






Package {tcl::transform::observe 1}
See   __virtchannel_transform
Platform *
Desc     {Observer transformation, stream copy}

Package {tcl::transform::spacer 1}
See   __virtchannel_transform
Platform *
Desc     {Space insertation and removal}

Package {tcl::transform::counter 1}
See   __virtchannel_transform
Platform *
Desc     {Tcllib package}

#
# ##############################
















# ############
# Module "wip"
# [1]    | "wip" (1.2)
# [2]    | "wip" (2.2)
# -------+








|




<
<
<
<
<




>
>
>
>
>




<
|
<
<
<
<




|

|


|










>
>
>
>
>














|



>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402





4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415

4416




4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
Path     observe.tcl
Path     otp.tcl
Path     pkgIndex.tcl
Path     rot.tcl
Path     spacer.tcl
Path     zlib.tcl

Package {tcl::transform::zlib 1.0.1}
See   __virtchannel_transform
Platform *
Desc     {zlib (de)compression}






Package {tcl::transform::identity 1}
See   __virtchannel_transform
Platform *
Desc     {Identity transformation}

Package {tcl::transform::limitsize 1}
See   __virtchannel_transform
Platform *
Desc     {limiting input}

Package {tcl::transform::otp 1}
See   __virtchannel_transform
Platform *

Desc     {Encryption via one-time pad}





Package {tcl::transform::base64 1}
See   __virtchannel_transform
Platform *
Desc     {Base64 encoding transformation}

Package {tcl::transform::crc32 1}
See   __virtchannel_transform
Platform *
Desc     {Crc32 transformation}

Package {tcl::transform::rot 1}
See   __virtchannel_transform
Platform *
Desc     {rot-encryption}

Package {tcl::transform::hex 1}
See   __virtchannel_transform
Platform *
Desc     {Hexadecimal encoding transformation}

Package {tcl::transform::adler32 1}
See   __virtchannel_transform
Platform *
Desc     {Adler32 transformation}

Package {tcl::transform::observe 1}
See   __virtchannel_transform
Platform *
Desc     {Observer transformation, stream copy}

Package {tcl::transform::spacer 1}
See   __virtchannel_transform
Platform *
Desc     {Space insertation and removal}

Package {tcl::transform::counter 1}
See   __virtchannel_transform
Platform *
Desc     {Counter transformation}

#
# ##############################

# ##################
# Module "websocket"
# [1]    | "websocket" (1.4)
# -------+

Package {websocket 1.4}
Platform *
Desc     {Tcl implementation of the websocket protocol}
Base     @TAP_DIR@/websocket
Path     pkgIndex.tcl
Path     websocket.tcl

#
# ##################

# ############
# Module "wip"
# [1]    | "wip" (1.2)
# [2]    | "wip" (2.2)
# -------+

4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346

#
# ############

# #############
# Module "yaml"
# [1]    | "huddle" (0.1.5)
# [2]    | "yaml" (0.3.6)
# -------+

Package {__yaml 0.0}
Platform *
Desc     {YAML processing, HUDDLE}
Hidden
Base     @TAP_DIR@/yaml
Path     huddle.tcl
Path     pkgIndex.tcl
Path     yaml.tcl

Package {huddle 0.1.5}
See   __yaml
Platform *
Desc     {Create and manipulate huddle object}

Package {yaml 0.3.6}
See   __yaml
Platform *
Desc     {YAML Format Encoder/Decoder}

#
# #############

# ############
# Module "zip"
# [1]    | "zipfile::encode" (0.2)
# [2]    | "zipfile::decode" (0.3)
# -------+

Package {__zip 0.0}
Platform *
Desc     {Tcllib module}
Hidden
Base     @TAP_DIR@/zip
Path     decode.tcl
Path     encode.tcl
Path     pkgIndex.tcl

Package {zipfile::encode 0.2}
See   __zip
Platform *
Desc     {Tcllib package}

Package {zipfile::decode 0.3}
See   __zip
Platform *
Desc     {Tcllib package}

#
# ############

#
##
###
#####
########







|
















|









|
|




|






|


|

|


|









4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564

#
# ############

# #############
# Module "yaml"
# [1]    | "huddle" (0.1.5)
# [2]    | "yaml" (0.3.7)
# -------+

Package {__yaml 0.0}
Platform *
Desc     {YAML processing, HUDDLE}
Hidden
Base     @TAP_DIR@/yaml
Path     huddle.tcl
Path     pkgIndex.tcl
Path     yaml.tcl

Package {huddle 0.1.5}
See   __yaml
Platform *
Desc     {Create and manipulate huddle object}

Package {yaml 0.3.7}
See   __yaml
Platform *
Desc     {YAML Format Encoder/Decoder}

#
# #############

# ############
# Module "zip"
# [1]    | "zipfile::encode" (0.3)
# [2]    | "zipfile::decode" (0.6.1)
# -------+

Package {__zip 0.0}
Platform *
Desc     {Zip archive handling}
Hidden
Base     @TAP_DIR@/zip
Path     decode.tcl
Path     encode.tcl
Path     pkgIndex.tcl

Package {zipfile::encode 0.3}
See   __zip
Platform *
Desc     {Generation of zip archives}

Package {zipfile::decode 0.6.1}
See   __zip
Platform *
Desc     {Access to zip archives}

#
# ############

#
##
###
#####
########

Changes to tcllib.yml.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
dist_id: tcllib
version: 1.15
language: tcl
description: |
   This package is intended to be a collection of Tcl packages that provide
   utility functions useful to a large collection of Tcl programmers.

   The home web site for this code is http://core.tcl.tk/tcllib/.
   At this web site, you will find mailing lists, web forums, databases
   for bug reports and feature requests, the CVS repository (browsable
   on the web, or read-only accessible via CVS ), and more.

categories: 
  - Library/Utility
  - Library/Mail
  - Library/Cryptography
  - Library/Math
license: BSD
owner_id: AndreasKupries
wrapped_content: tcllib-1.15/

|

















|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
dist_id: tcllib
version: 1.17
language: tcl
description: |
   This package is intended to be a collection of Tcl packages that provide
   utility functions useful to a large collection of Tcl programmers.

   The home web site for this code is http://core.tcl.tk/tcllib/.
   At this web site, you will find mailing lists, web forums, databases
   for bug reports and feature requests, the CVS repository (browsable
   on the web, or read-only accessible via CVS ), and more.

categories: 
  - Library/Utility
  - Library/Mail
  - Library/Cryptography
  - Library/Math
license: BSD
owner_id: AndreasKupries
wrapped_content: tcllib-1.17/