Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Difference From cce4ddc36cca1845 To a9b2ee05e38e52f4
2014-06-11
| ||
22:41 | RDE C runtime, killed a few compiler warnings. check-in: 3ea2dbb6c0 user: andreask tags: pt-work | |
22:20 | Fixed two comment misspellings. check-in: cce4ddc36c user: andreask tags: pt-work | |
22:17 | pt::peg::to::cparam - Fix bug in cparam generator, missing global initialization of the "comments" flag introduced by the fixes for ticket [da61329276]. check-in: a9bc5f4335 user: andreask tags: pt-work | |
2014-01-31
| ||
08:04 | Updated embedded release documentation. check-in: 4f04f7e130 user: aku tags: tcllib-1-16-rc | |
07:43 | Bumped overall version to 1.16, generated the release README. check-in: a9b2ee05e3 user: aku tags: tcllib-1-16-rc | |
07:39 | Bumped versions of modified packages and missed so far. check-in: d62c5a4fed user: aku tags: tcllib-1-16-rc | |
Changes to README.releasemgr.
︙ | ︙ | |||
19 20 21 22 23 24 25 | and anybody else interested in the task. Basics ------ < Flesh this out > | | < < < < < < < < | < | < < | < < | < < < < | < < < < < | < | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | and anybody else interested in the task. Basics ------ < Flesh this out > sak.tcl < Tasks, and how to perform them > Uploading and releasing files to SourceForge -------------------------------------------- The main form to upload files is https://frs.sourceforge.net/webupload This is WebDAV. The place to manage the releases the files are for is https://sourceforge.net/project/admin/editpackages.php?group_id=12883 |
Changes to embedded/man/files/modules/crc/sum.n.
1 2 3 4 | '\" '\" Generated from file 'sum\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2002, Pat Thoyts <patthoyts@users\&.sourceforge\&.net> '\" | | | 1 2 3 4 5 6 7 8 9 10 11 12 | '\" '\" Generated from file 'sum\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2002, Pat Thoyts <patthoyts@users\&.sourceforge\&.net> '\" .TH "sum" n 1\&.1\&.0 tcllib "Cyclic Redundancy Checks" .\" 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 | .. .BS .SH NAME sum \- Calculate a sum(1) compatible checksum .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp | | | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | .. .BS .SH NAME sum \- Calculate a sum(1) compatible checksum .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp package require \fBsum ?1\&.1\&.0?\fR .sp \fB::crc::sum\fR ?\fI-bsd\fR | \fI-sysv\fR? ?\fI-format fmt\fR? ?\fI-chunksize size\fR? [ \fI-filename file\fR | \fI-channel chan\fR | \fIstring\fR ] .sp .BE .SH DESCRIPTION .PP This package provides a Tcl-only implementation of the sum(1) command |
︙ | ︙ |
Changes to embedded/man/files/modules/debug/debug.n.
︙ | ︙ | |||
311 312 313 314 315 316 317 | .SH DESCRIPTION Debugging areas of interest are represented by 'tags' which have independently settable levels of interest (an integer, higher is more detailed)\&. .SH API .TP \fBdebug\&.\fBtag\fR\fR \fImessage\fR ?\fIlevel\fR? | | | 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 | .SH DESCRIPTION Debugging areas of interest are represented by 'tags' which have independently settable levels of interest (an integer, higher is more detailed)\&. .SH API .TP \fBdebug\&.\fBtag\fR\fR \fImessage\fR ?\fIlevel\fR? For each known tag the package creates a command with this signatur the user can then use to provide the debug narrative of the tag\&. The narrative \fImessage\fR is provided as a Tcl script whose value is \fBsubst\fRed in the caller's scope if and only if the current level of interest for the \fItag\fR matches or exceeds the call's \fIlevel\fR of detail\&. This is useful, as one can place arbitrarily complex narrative in code without unnecessarily evaluating it\&. .sp |
︙ | ︙ |
Changes to embedded/man/files/modules/dns/tcllib_ip.n.
1 2 3 4 5 | '\" '\" Generated from file 'tcllib_ip\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2004, Pat Thoyts '\" Copyright (c) 2005 Aamer Akhter <aakhter@cisco\&.com> '\" | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | '\" '\" Generated from file 'tcllib_ip\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2004, Pat Thoyts '\" Copyright (c) 2005 Aamer Akhter <aakhter@cisco\&.com> '\" .TH "tcllib_ip" n 1\&.2\&.1 tcllib "Domain Name Service" .\" 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, |
︙ | ︙ | |||
273 274 275 276 277 278 279 | .. .BS .SH NAME tcllib_ip \- IPv4 and IPv6 address manipulation .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp | | | 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 | .. .BS .SH NAME tcllib_ip \- IPv4 and IPv6 address manipulation .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp package require \fBip ?1\&.2\&.1?\fR .sp \fB::ip::version\fR \fIaddress\fR .sp \fB::ip::is\fR \fIclass\fR \fIaddress\fR .sp \fB::ip::equal\fR \fIaddress\fR \fIaddress\fR .sp |
︙ | ︙ |
Changes to embedded/man/files/modules/doctools/doctools.n.
1 2 | '\" '\" Generated from file 'doctools\&.man' by tcllib/doctools with format 'nroff' | | | | 1 2 3 4 5 6 7 8 9 10 11 12 | '\" '\" Generated from file 'doctools\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2003-2013 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" .TH "doctools" n 1\&.4\&.16 tcllib "Documentation tools" .\" 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 | .. .BS .SH NAME doctools \- doctools - Processing documents .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp | | | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | .. .BS .SH NAME doctools \- doctools - Processing documents .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp package require \fBdoctools ?1\&.4\&.16?\fR .sp \fB::doctools::new\fR \fIobjectName\fR ?\fIoption value\fR\&.\&.\&.? .sp \fB::doctools::help\fR .sp \fB::doctools::search\fR \fIpath\fR .sp |
︙ | ︙ | |||
697 698 699 700 701 702 703 | doctools_intro, doctools_lang_cmdref, doctools_lang_intro, doctools_lang_syntax, doctools_plugin_apiref .SH KEYWORDS HTML, TMML, conversion, documentation, manpage, markup, nroff .SH CATEGORY Documentation tools .SH COPYRIGHT .nf | | | 697 698 699 700 701 702 703 704 705 706 | doctools_intro, doctools_lang_cmdref, doctools_lang_intro, doctools_lang_syntax, doctools_plugin_apiref .SH KEYWORDS HTML, TMML, conversion, documentation, manpage, markup, nroff .SH CATEGORY Documentation tools .SH COPYRIGHT .nf Copyright (c) 2003-2013 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> .fi |
Changes to embedded/man/files/modules/dtplite/pkg_dtplite.n.
1 2 3 4 | '\" '\" Generated from file 'pkg_dtplite\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2004-2013 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" | | | 1 2 3 4 5 6 7 8 9 10 11 12 | '\" '\" Generated from file 'pkg_dtplite\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2004-2013 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" .TH "dtplite" n 1\&.1 tcllib "Documentation toolbox" .\" 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, |
︙ | ︙ | |||
270 271 272 273 274 275 276 | .de MT .QW "" .. .BS .SH NAME dtplite \- Lightweight DocTools Markup Processor .SH SYNOPSIS | < < | 270 271 272 273 274 275 276 277 278 279 280 281 282 283 | .de MT .QW "" .. .BS .SH NAME dtplite \- Lightweight DocTools Markup Processor .SH SYNOPSIS \fBdtplite\fR \fB-o\fR \fIoutput\fR ?options? \fIformat\fR \fIinputfile\fR .sp \fBdtplite\fR \fBvalidate\fR \fIinputfile\fR .sp \fBdtplite\fR \fB-o\fR \fIoutput\fR ?options? \fIformat\fR \fIinputdirectory\fR .sp \fBdtplite\fR \fB-merge\fR \fB-o\fR \fIoutput\fR ?options? \fIformat\fR \fIinputdirectory\fR |
︙ | ︙ |
Changes to embedded/man/files/modules/ftp/ftp.n.
1 2 3 | '\" '\" Generated from file 'ftp\&.man' by tcllib/doctools with format 'nroff' '\" | | | 1 2 3 4 5 6 7 8 9 10 11 | '\" '\" Generated from file 'ftp\&.man' by tcllib/doctools with format 'nroff' '\" .TH "ftp" n 2\&.4\&.11 tcllib "ftp client" .\" 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 | .. .BS .SH NAME ftp \- Client-side tcl implementation of the ftp protocol .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp | | | 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 | .. .BS .SH NAME ftp \- Client-side tcl implementation of the ftp protocol .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp package require \fBftp ?2\&.4\&.11?\fR .sp \fB::ftp::Open\fR \fIserver\fR \fIuser\fR \fIpasswd\fR ?\fIoptions\fR? .sp \fB::ftp::Close\fR \fIhandle\fR .sp \fB::ftp::Cd\fR \fIhandle\fR \fIdirectory\fR .sp |
︙ | ︙ |
Changes to embedded/man/files/modules/html/html.n.
1 2 3 | '\" '\" Generated from file 'html\&.man' by tcllib/doctools with format 'nroff' '\" | | | 1 2 3 4 5 6 7 8 9 10 11 | '\" '\" Generated from file 'html\&.man' by tcllib/doctools with format 'nroff' '\" .TH "html" n 1\&.4 tcllib "HTML Generation" .\" 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 | .. .BS .SH NAME html \- Procedures to generate HTML structures .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp | | | 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 | .. .BS .SH NAME html \- Procedures to generate HTML structures .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp package require \fBhtml ?1\&.4?\fR .sp \fB::html::author\fR \fIauthor\fR .sp \fB::html::bodyTag\fR \fIargs\fR .sp \fB::html::cell\fR \fIparam value\fR ?\fItag\fR? .sp |
︙ | ︙ | |||
341 342 343 344 345 346 347 | .sp \fB::html::keywords\fR \fIargs\fR .sp \fB::html::mailto\fR \fIemail\fR ?\fIsubject\fR? .sp \fB::html::meta\fR \fIargs\fR .sp | < < < < < < < < | 341 342 343 344 345 346 347 348 349 350 351 352 353 354 | .sp \fB::html::keywords\fR \fIargs\fR .sp \fB::html::mailto\fR \fIemail\fR ?\fIsubject\fR? .sp \fB::html::meta\fR \fIargs\fR .sp \fB::html::minorList\fR \fIlist\fR ?\fIordered\fR? .sp \fB::html::minorMenu\fR \fIlist\fR ?\fIsep\fR? .sp \fB::html::nl2br\fR \fIstring\fR .sp \fB::html::openTag\fR \fItag\fR ?\fIparam\fR? |
︙ | ︙ | |||
395 396 397 398 399 400 401 | .sp \fB::html::textInputRow\fR \fIlabel name value args\fR .sp \fB::html::varEmpty\fR \fIname\fR .sp \fB::html::while\fR \fItest body\fR .sp | < < | 387 388 389 390 391 392 393 394 395 396 397 398 399 400 | .sp \fB::html::textInputRow\fR \fIlabel name value args\fR .sp \fB::html::varEmpty\fR \fIname\fR .sp \fB::html::while\fR \fItest body\fR .sp .BE .SH DESCRIPTION .PP The package \fBhtml\fR provides commands that generate HTML\&. These commands typically return an HTML string as their result\&. In particular, they do not output their result to \fBstdout\fR\&. .PP |
︙ | ︙ | |||
436 437 438 439 440 441 442 | Generate a set of \fIcheckbox\fR form elements and associated labels\&. The \fIlist\fR should contain an alternating list of labels and values\&. This uses \fB::html::checkbox\fR\&. All the \fIcheckbox\fR buttons share the same \fIkey\fR for their name\&. The \fIsep\fR is text used to separate the elements\&. .TP \fB::html::checkValue\fR \fIname\fR ?\fIvalue\fR? | | | 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 | Generate a set of \fIcheckbox\fR form elements and associated labels\&. The \fIlist\fR should contain an alternating list of labels and values\&. This uses \fB::html::checkbox\fR\&. All the \fIcheckbox\fR buttons share the same \fIkey\fR for their name\&. The \fIsep\fR is text used to separate the elements\&. .TP \fB::html::checkValue\fR \fIname\fR ?\fIvalue\fR? Generate the "name=\fIname\fR value=\fIvalue\fR for a \fIcheckbox\fR form element\&. If the CGI variable \fIname\fR has the value \fIvalue\fR, then SELECTED is added to the return value\&. \fIvalue\fR defaults to "1"\&. .TP \fB::html::closeTag\fR Pop a tag off the stack created by \fB::html::openTag\fR and generate the corresponding close tag (e\&.g\&., </body>)\&. |
︙ | ︙ | |||
591 592 593 594 595 596 597 | \fB::html::meta\fR \fIargs\fR \fISide effect only\fR\&. Call this before \fB::html::head\fR to define a \fImeta\fR tag for the page\&. The \fIargs\fR is a Tcl-style name, value list that is used for the name= and value= parameters for the \fImeta\fR tag\&. The \fImeta\fR tag is included in the result of \fB::html::head\fR\&. .TP | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 581 582 583 584 585 586 587 588 589 590 591 592 593 594 | \fB::html::meta\fR \fIargs\fR \fISide effect only\fR\&. Call this before \fB::html::head\fR to define a \fImeta\fR tag for the page\&. The \fIargs\fR is a Tcl-style name, value list that is used for the name= and value= parameters for the \fImeta\fR tag\&. The \fImeta\fR tag is included in the result of \fB::html::head\fR\&. .TP \fB::html::minorList\fR \fIlist\fR ?\fIordered\fR? Generate an ordered or unordered list of links\&. The \fIlist\fR is a Tcl-style name, value list of labels and urls for the links\&. \fIordered\fR is a boolean used to choose between an ordered or unordered list\&. It defaults to \fBfalse\fR\&. .TP \fB::html::minorMenu\fR \fIlist\fR ?\fIsep\fR? |
︙ | ︙ | |||
673 674 675 676 677 678 679 | \fB::html::radioSet\fR \fIkey sep list\fR Generate a set of \fIinput\fR tags of type \fIradio\fR and an associated text label\&. All the radio buttons share the same \fIkey\fR for their name\&. The \fIsep\fR is text used to separate the elements\&. The \fIlist\fR is a Tcl-style label, value list\&. .TP \fB::html::radioValue\fR \fIname value\fR | | | 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 | \fB::html::radioSet\fR \fIkey sep list\fR Generate a set of \fIinput\fR tags of type \fIradio\fR and an associated text label\&. All the radio buttons share the same \fIkey\fR for their name\&. The \fIsep\fR is text used to separate the elements\&. The \fIlist\fR is a Tcl-style label, value list\&. .TP \fB::html::radioValue\fR \fIname value\fR Generate the "name=\fIname\fR value=\fIvalue\fR for a \fIradio\fR form element\&. If the CGI variable \fIname\fR has the value \fIvalue\fR, then SELECTED is added to the return value\&. .TP \fB::html::refresh\fR \fIseconds url\fR Set up a refresh \fImeta\fR tag\&. Call this before \fB::html::head\fR and the HEAD section will contain a \fImeta\fR tag that causes the document to refresh in \fIseconds\fR seconds\&. The \fIurl\fR is optional\&. If |
︙ | ︙ | |||
746 747 748 749 750 751 752 | empty string for its value\&. .TP \fB::html::while\fR \fItest body\fR This procedure is similar to the built-in Tcl \fBwhile\fR control structure\&. Rather than evaluating the body, it returns the subst'ed \fIbody\fR\&. Each iteration of the loop causes another string to be concatenated to the result value\&. | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 702 703 704 705 706 707 708 709 710 711 712 713 714 715 | empty string for its value\&. .TP \fB::html::while\fR \fItest body\fR This procedure is similar to the built-in Tcl \fBwhile\fR control structure\&. Rather than evaluating the body, it returns the subst'ed \fIbody\fR\&. Each iteration of the loop causes another string to be concatenated to the result value\&. .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 \fIhtml\fR of the \fITcllib Trackers\fR [http://core\&.tcl\&.tk/tcllib/reportlist]\&. Please also report any ideas for enhancements you may have for either |
︙ | ︙ |
Changes to embedded/man/files/modules/json/json_write.n.
1 2 3 4 | '\" '\" Generated from file 'json_write\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2009-2013 Andreas Kupries <andreas_kupries@sourceforge\&.net> '\" | | | 1 2 3 4 5 6 7 8 9 10 11 12 | '\" '\" Generated from file 'json_write\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2009-2013 Andreas Kupries <andreas_kupries@sourceforge\&.net> '\" .TH "json::write" n 1\&.0\&.2 tcllib "JSON" .\" 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 | .. .BS .SH NAME json::write \- JSON generation .SH SYNOPSIS package require \fBTcl 8\&.5\fR .sp | | | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | .. .BS .SH NAME json::write \- JSON generation .SH SYNOPSIS package require \fBTcl 8\&.5\fR .sp package require \fBjson::write ?1\&.0\&.2?\fR .sp \fB::json::write\fR \fBindented\fR .sp \fB::json::write\fR \fBindented\fR \fIflag\fR .sp \fB::json::write\fR \fBaligned\fR .sp |
︙ | ︙ |
Changes to embedded/man/files/modules/math/math_geometry.n.
1 2 3 4 5 6 7 | '\" '\" Generated from file 'math_geometry\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2001 by Ideogramic ApS and other parties '\" Copyright (c) 2004 by Arjen Markus '\" Copyright (c) 2010 by Andreas Kupries '\" Copyright (c) 2010 by Kevin Kenny '\" | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | '\" '\" Generated from file 'math_geometry\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2001 by Ideogramic ApS and other parties '\" Copyright (c) 2004 by Arjen Markus '\" Copyright (c) 2010 by Andreas Kupries '\" Copyright (c) 2010 by Kevin Kenny '\" .TH "math::geometry" n 1\&.1\&.2 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, |
︙ | ︙ | |||
275 276 277 278 279 280 281 | .. .BS .SH NAME math::geometry \- Geometrical computations .SH SYNOPSIS package require \fBTcl ?8\&.3?\fR .sp | | | 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 | .. .BS .SH NAME math::geometry \- Geometrical computations .SH SYNOPSIS package require \fBTcl ?8\&.3?\fR .sp package require \fBmath::geometry ?1\&.1\&.2?\fR .sp \fB::math::geometry::+\fR \fIpoint1\fR \fIpoint2\fR .sp \fB::math::geometry::-\fR \fIpoint1\fR \fIpoint2\fR .sp \fB::math::geometry::p\fR \fIx\fR \fIy\fR .sp |
︙ | ︙ | |||
311 312 313 314 315 316 317 | .sp \fB::math::geometry::calculateDistanceToLine\fR \fIP\fR \fIline\fR .sp \fB::math::geometry::calculateDistanceToLineSegment\fR \fIP\fR \fIlinesegment\fR .sp \fB::math::geometry::calculateDistanceToPolyline\fR \fIP\fR \fIpolyline\fR .sp | < < | 311 312 313 314 315 316 317 318 319 320 321 322 323 324 | .sp \fB::math::geometry::calculateDistanceToLine\fR \fIP\fR \fIline\fR .sp \fB::math::geometry::calculateDistanceToLineSegment\fR \fIP\fR \fIlinesegment\fR .sp \fB::math::geometry::calculateDistanceToPolyline\fR \fIP\fR \fIpolyline\fR .sp \fB::math::geometry::findClosestPointOnLine\fR \fIP\fR \fIline\fR .sp \fB::math::geometry::findClosestPointOnLineSegment\fR \fIP\fR \fIlinesegment\fR .sp \fB::math::geometry::findClosestPointOnPolyline\fR \fIP\fR \fIpolyline\fR .sp \fB::math::geometry::lengthOfPolyline\fR \fIpolyline\fR |
︙ | ︙ | |||
511 512 513 514 515 516 517 | first and last points of the line segment .RE .sp .sp .TP \fB::math::geometry::calculateDistanceToPolyline\fR \fIP\fR \fIpolyline\fR Calculate the distance of point P to the polyline and | | < < < < < < < < < < < < < < < | 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 | first and last points of the line segment .RE .sp .sp .TP \fB::math::geometry::calculateDistanceToPolyline\fR \fIP\fR \fIpolyline\fR Calculate the distance of point P to the polyline and return the result\&. .RS .TP list \fIP\fR List of two numbers, the coordinates of the point .TP list \fIpolyline\fR List of numbers, the coordinates of the vertices of the polyline .RE .sp .TP \fB::math::geometry::findClosestPointOnLine\fR \fIP\fR \fIline\fR Return the point on a line which is closest to a given point\&. .RS .TP list \fIP\fR |
︙ | ︙ | |||
607 608 609 610 611 612 613 | list \fIdist\fR Distance over which to move the point .RE .sp .TP \fB::math::geometry::lineSegmentsIntersect\fR \fIlinesegment1\fR \fIlinesegment2\fR Check if two line segments intersect or coincide\&. Returns 1 if that is | | < | 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 | list \fIdist\fR Distance over which to move the point .RE .sp .TP \fB::math::geometry::lineSegmentsIntersect\fR \fIlinesegment1\fR \fIlinesegment2\fR Check if two line segments intersect or coincide\&. Returns 1 if that is the case, 0 otherwise (in two dimensions only)\&. .RS .TP list \fIlinesegment1\fR First line segment .TP list \fIlinesegment2\fR Second line segment |
︙ | ︙ |
Changes to embedded/man/files/modules/pt/pt_peg_from_peg.n.
1 2 3 4 | '\" '\" Generated from file 'from\&.inc' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2009 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" | | | 1 2 3 4 5 6 7 8 9 10 11 12 | '\" '\" Generated from file 'from\&.inc' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2009 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" .TH "pt::peg::from::peg" n 1 tcllib "Parser Tools" .\" 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 | .. .BS .SH NAME pt::peg::from::peg \- PEG Conversion\&. Read PEG format .SH SYNOPSIS package require \fBTcl 8\&.5\fR .sp | | | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | .. .BS .SH NAME pt::peg::from::peg \- PEG Conversion\&. Read PEG format .SH SYNOPSIS package require \fBTcl 8\&.5\fR .sp package require \fBpt::peg::from::peg ?1?\fR .sp \fBpt::peg::from::peg\fR \fBconvert\fR \fItext\fR .sp .BE .SH DESCRIPTION .PP Are you lost ? |
︙ | ︙ |
Changes to embedded/man/files/modules/pt/pt_peg_op.n.
1 2 3 4 | '\" '\" Generated from file 'pt_peg_op\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2009 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" | | | 1 2 3 4 5 6 7 8 9 10 11 12 | '\" '\" Generated from file 'pt_peg_op\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2009 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" .TH "pt_peg_op" i 1 tcllib "Parser Tools" .\" 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 | .. .BS .SH NAME pt_peg_op \- Parser Tools PE Grammar Utility Operations .SH SYNOPSIS package require \fBTcl 8\&.5\fR .sp | | | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | .. .BS .SH NAME pt_peg_op \- Parser Tools PE Grammar Utility Operations .SH SYNOPSIS package require \fBTcl 8\&.5\fR .sp package require \fBpt::peg::op 1\fR .sp \fB::peg::peg::op\fR \fBcalled\fR \fIcontainer\fR .sp \fB::peg::peg::op\fR \fBdechain\fR \fIcontainer\fR .sp \fB::peg::peg::op\fR \fBdrop unreachable\fR \fIcontainer\fR .sp |
︙ | ︙ |
Changes to embedded/man/files/modules/pt/pt_peg_to_peg.n.
1 2 3 4 | '\" '\" Generated from file 'to\&.inc' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2009 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" | | | 1 2 3 4 5 6 7 8 9 10 11 12 | '\" '\" Generated from file 'to\&.inc' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2009 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" .TH "pt::peg::to::peg" n 1 tcllib "Parser Tools" .\" 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 | .. .BS .SH NAME pt::peg::to::peg \- PEG Conversion\&. Write PEG format .SH SYNOPSIS package require \fBTcl 8\&.5\fR .sp | | | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | .. .BS .SH NAME pt::peg::to::peg \- PEG Conversion\&. Write PEG format .SH SYNOPSIS package require \fBTcl 8\&.5\fR .sp package require \fBpt::peg::to::peg ?1?\fR .sp package require \fBpt::peg \fR .sp package require \fBpt::pe \fR .sp package require \fBtext::write \fR .sp |
︙ | ︙ |
Changes to embedded/man/files/modules/pt/pt_pgen.n.
1 2 3 4 | '\" '\" Generated from file 'pt_pgen\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2009 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" | | | 1 2 3 4 5 6 7 8 9 10 11 12 | '\" '\" Generated from file 'pt_pgen\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2009 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" .TH "pt::pgen" n 1\&.0\&.1 tcllib "Parser Tools" .\" 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 | .. .BS .SH NAME pt::pgen \- Parser Generator .SH SYNOPSIS package require \fBTcl 8\&.5\fR .sp | | | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | .. .BS .SH NAME pt::pgen \- Parser Generator .SH SYNOPSIS package require \fBTcl 8\&.5\fR .sp package require \fBpt::pgen ?1\&.0\&.1?\fR .sp \fB::pt::pgen\fR \fIinputformat\fR \fItext\fR \fIresultformat\fR ?\fIoptions\&.\&.\&.\fR? .sp .BE .SH DESCRIPTION .PP Are you lost ? |
︙ | ︙ |
Changes to embedded/man/files/modules/rest/rest.n.
1 2 3 | '\" '\" Generated from file 'rest\&.man' by tcllib/doctools with format 'nroff' '\" | | | 1 2 3 4 5 6 7 8 9 10 11 | '\" '\" Generated from file 'rest\&.man' by tcllib/doctools with format 'nroff' '\" .TH "rest" n 1\&.0 tcllib "A framework for RESTful web services" .\" 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 | .. .BS .SH NAME rest \- define REST web APIs and call them inline or asychronously .SH SYNOPSIS package require \fBTcl 8\&.5\fR .sp | | | 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 | .. .BS .SH NAME rest \- define REST web APIs and call them inline or asychronously .SH SYNOPSIS package require \fBTcl 8\&.5\fR .sp package require \fBrest ?1\&.0?\fR .sp \fB::rest::simple\fR \fIurl\fR \fIquery\fR ?config? ?body? .sp \fB::rest::get\fR \fIurl\fR \fIquery\fR ?config? ?body? .sp \fB::rest::post\fR \fIurl\fR \fIquery\fR ?config? ?body? .sp |
︙ | ︙ |
Changes to embedded/man/files/modules/struct/struct_list.n.
1 2 3 4 5 | '\" '\" Generated from file 'struct_list\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2003-2005 by Kevin B\&. Kenny\&. All rights reserved '\" Copyright (c) 2003-2012 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | '\" '\" Generated from file 'struct_list\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2003-2005 by Kevin B\&. Kenny\&. All rights reserved '\" Copyright (c) 2003-2012 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" .TH "struct::list" n 1\&.8\&.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, |
︙ | ︙ | |||
273 274 275 276 277 278 279 | .. .BS .SH NAME struct::list \- Procedures for manipulating lists .SH SYNOPSIS package require \fBTcl 8\&.4\fR .sp | | | 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 | .. .BS .SH NAME struct::list \- Procedures for manipulating lists .SH SYNOPSIS package require \fBTcl 8\&.4\fR .sp package require \fBstruct::list ?1\&.8\&.2?\fR .sp \fB::struct::list\fR \fBlongestCommonSubsequence\fR \fIsequence1\fR \fIsequence2\fR ?\fImaxOccurs\fR? .sp \fB::struct::list\fR \fBlongestCommonSubsequence2\fR \fIsequence1 sequence2\fR ?\fImaxOccurs\fR? .sp \fB::struct::list\fR \fBlcsInvert\fR \fIlcsData\fR \fIlen1\fR \fIlen2\fR .sp |
︙ | ︙ |
Changes to embedded/man/files/modules/tar/tar.n.
1 2 3 | '\" '\" Generated from file 'tar\&.man' by tcllib/doctools with format 'nroff' '\" | | | 1 2 3 4 5 6 7 8 9 10 11 | '\" '\" Generated from file 'tar\&.man' by tcllib/doctools with format 'nroff' '\" .TH "tar" n 0\&.9 tcllib "Tar file handling" .\" 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 | .. .BS .SH NAME tar \- Tar file creation, extraction & manipulation .SH SYNOPSIS package require \fBTcl 8\&.4\fR .sp | | | 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 | .. .BS .SH NAME tar \- Tar file creation, extraction & manipulation .SH SYNOPSIS package require \fBTcl 8\&.4\fR .sp package require \fBtar ?0\&.9?\fR .sp \fB::tar::contents\fR \fItarball\fR ?\fB-chan\fR? .sp \fB::tar::stat\fR \fItarball\fR ?file? ?\fB-chan\fR? .sp \fB::tar::untar\fR \fItarball\fR \fIargs\fR .sp |
︙ | ︙ |
Changes to embedded/man/files/modules/term/ansi_cctrl.n.
1 2 3 4 | '\" '\" Generated from file 'ansi_cctrl\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2006-2008 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" | | | 1 2 3 4 5 6 7 8 9 10 11 12 | '\" '\" Generated from file 'ansi_cctrl\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2006-2008 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" .TH "term::ansi::code::ctrl" n 0\&.1 tcllib "Terminal control" .\" 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 | .. .BS .SH NAME term::ansi::code::ctrl \- ANSI control sequences .SH SYNOPSIS package require \fBTcl 8\&.4\fR .sp | | | | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 | .. .BS .SH NAME term::ansi::code::ctrl \- ANSI control sequences .SH SYNOPSIS package require \fBTcl 8\&.4\fR .sp package require \fBterm::ansi::code ?0\&.1?\fR .sp package require \fBterm::ansi::code::ctrl ?0\&.1\&.1?\fR .sp \fB::term::ansi::code::ctrl::names\fR .sp \fB::term::ansi::code::ctrl::import\fR ?\fIns\fR? ?\fIarg\fR\&.\&.\&.? .sp \fB::term::ansi::code::ctrl::eeol\fR .sp |
︙ | ︙ |
Changes to embedded/man/files/modules/term/ansi_code.n.
1 2 3 4 | '\" '\" Generated from file 'ansi_code\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2006 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" | | | 1 2 3 4 5 6 7 8 9 10 11 12 | '\" '\" Generated from file 'ansi_code\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2006 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" .TH "term::ansi::code" n 0\&.1 tcllib "Terminal control" .\" 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 | .. .BS .SH NAME term::ansi::code \- Helper for control sequences .SH SYNOPSIS package require \fBTcl 8\&.4\fR .sp | | | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | .. .BS .SH NAME term::ansi::code \- Helper for control sequences .SH SYNOPSIS package require \fBTcl 8\&.4\fR .sp package require \fBterm::ansi::code ?0\&.1?\fR .sp \fB::term::ansi::code::esc\fR \fIstr\fR .sp \fB::term::ansi::code::escb\fR \fIstr\fR .sp \fB::term::ansi::code::define\fR \fIname\fR \fIescape\fR \fIcode\fR .sp |
︙ | ︙ |
Changes to embedded/man/files/modules/term/ansi_send.n.
1 2 3 4 | '\" '\" Generated from file 'ansi_send\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2006 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" | | | 1 2 3 4 5 6 7 8 9 10 11 12 | '\" '\" Generated from file 'ansi_send\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2006 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net> '\" .TH "term::ansi::send" n 0\&.1 tcllib "Terminal control" .\" 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 | .. .BS .SH NAME term::ansi::send \- Output of ANSI control sequences to terminals .SH SYNOPSIS package require \fBTcl 8\&.4\fR .sp | | | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | .. .BS .SH NAME term::ansi::send \- Output of ANSI control sequences to terminals .SH SYNOPSIS package require \fBTcl 8\&.4\fR .sp package require \fBterm::ansi::send ?0\&.1?\fR .sp \fB::term::ansi::send::import\fR ?\fIns\fR? \fI\&.\&.\&.\fR .sp \fB::term::ansi::send::eeol\fR .sp \fB::term::ansi::send::esol\fR .sp |
︙ | ︙ |
Changes to embedded/man/files/modules/textutil/textutil.n.
1 2 3 | '\" '\" Generated from file 'textutil\&.man' by tcllib/doctools with format 'nroff' '\" | | | 1 2 3 4 5 6 7 8 9 10 11 | '\" '\" Generated from file 'textutil\&.man' by tcllib/doctools with format 'nroff' '\" .TH "textutil" n 0\&.7\&.1 tcllib "Text and string utilities, macro processing" .\" 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 | .. .BS .SH NAME textutil \- Procedures to manipulate texts and strings\&. .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp | | | 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 | .. .BS .SH NAME textutil \- Procedures to manipulate texts and strings\&. .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp package require \fBtextutil ?0\&.7\&.1?\fR .sp \fB::textutil::adjust\fR \fIstring args\fR .sp \fB::textutil::adjust::readPatterns\fR \fIfilename\fR .sp \fB::textutil::adjust::listPredefined\fR .sp |
︙ | ︙ |
Changes to embedded/man/files/modules/textutil/textutil_string.n.
1 2 3 | '\" '\" Generated from file 'textutil_string\&.man' by tcllib/doctools with format 'nroff' '\" | | | 1 2 3 4 5 6 7 8 9 10 11 | '\" '\" Generated from file 'textutil_string\&.man' by tcllib/doctools with format 'nroff' '\" .TH "textutil::string" n 0\&.7 tcllib "Text and string utilities, macro processing" .\" 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 | .. .BS .SH NAME textutil::string \- Procedures to manipulate texts and strings\&. .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp | | < < | 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 | .. .BS .SH NAME textutil::string \- Procedures to manipulate texts and strings\&. .SH SYNOPSIS package require \fBTcl 8\&.2\fR .sp package require \fBtextutil::string ?0\&.7?\fR .sp \fB::textutil::string::chop\fR \fIstring\fR .sp \fB::textutil::string::tail\fR \fIstring\fR .sp \fB::textutil::string::cap\fR \fIstring\fR .sp \fB::textutil::string::uncap\fR \fIstring\fR .sp \fB::textutil::string::longestCommonPrefixList\fR \fIlist\fR .sp \fB::textutil::string::longestCommonPrefix\fR ?\fIstring\fR\&.\&.\&.? .sp .BE |
︙ | ︙ | |||
306 307 308 309 310 311 312 | A convenience command\&. Removes the first character of \fIstring\fR and returns the shortened string\&. .TP \fB::textutil::string::cap\fR \fIstring\fR Capitalizes the first character of \fIstring\fR and returns the modified string\&. .TP | < < < < < | 304 305 306 307 308 309 310 311 312 313 314 315 316 317 | A convenience command\&. Removes the first character of \fIstring\fR and returns the shortened string\&. .TP \fB::textutil::string::cap\fR \fIstring\fR Capitalizes the first character of \fIstring\fR and returns the modified string\&. .TP \fB::textutil::string::uncap\fR \fIstring\fR The complementary operation to \fB::textutil::string::cap\fR\&. Forces the first character of \fIstring\fR to lower case and returns the modified string\&. .TP \fB::textutil::string::longestCommonPrefixList\fR \fIlist\fR .TP |
︙ | ︙ |
Changes to embedded/man/files/modules/zip/decode.n.
1 2 | '\" '\" Generated from file 'decode\&.man' by tcllib/doctools with format 'nroff' | | | | 1 2 3 4 5 6 7 8 9 10 11 12 | '\" '\" Generated from file 'decode\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2008-2012 Andreas Kupries '\" .TH "zipfile::encode" n 0\&.3 tcllib "Zip archive handling" .\" 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, |
︙ | ︙ | |||
268 269 270 271 272 273 274 | .. .\" # MT - "empty" string .de MT .QW "" .. .BS .SH NAME | | | | 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 | .. .\" # MT - "empty" string .de MT .QW "" .. .BS .SH NAME zipfile::encode \- Access to zip archives .SH SYNOPSIS package require \fBTcl 8\&.4\fR .sp package require \fBfileutil::magic::mimetype \fR .sp package require \fBfileutil::decode 0\&.2\fR .sp package require \fBTrf \fR .sp package require \fBzlibtcl \fR .sp package require \fBzipfile::decode ?0\&.4?\fR .sp \fB::zipfile::decode::archive\fR .sp \fB::zipfile::decode::close\fR .sp \fB::zipfile::decode::comment\fR \fIadict\fR .sp |
︙ | ︙ | |||
392 393 394 395 396 397 398 | package and/or documentation\&. .SH KEYWORDS decompression, zip .SH CATEGORY File .SH COPYRIGHT .nf | | | 392 393 394 395 396 397 398 399 400 401 | package and/or documentation\&. .SH KEYWORDS decompression, zip .SH CATEGORY File .SH COPYRIGHT .nf Copyright (c) 2008-2012 Andreas Kupries .fi |
Changes to embedded/man/index.n.
︙ | ︙ | |||
2144 2145 2146 2147 2148 2149 2150 | decompression .RS .TP \fBfiles/modules/virtchannel_transform/tcllib_zlib\&.n\fR tcl::transform::zlib .TP \fBfiles/modules/zip/decode\&.n\fR | | | 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 | decompression .RS .TP \fBfiles/modules/virtchannel_transform/tcllib_zlib\&.n\fR tcl::transform::zlib .TP \fBfiles/modules/zip/decode\&.n\fR zipfile::encode .RE decryption .RS .TP \fBfiles/modules/virtchannel_transform/vt_otp\&.n\fR tcl::transform::otp .TP |
︙ | ︙ | |||
11284 11285 11286 11287 11288 11289 11290 | .TP \fBfiles/modules/virtchannel_base/tcllib_zero\&.n\fR tcl::chan::zero .RE zip .RS .TP | | | | | 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 | .TP \fBfiles/modules/virtchannel_base/tcllib_zero\&.n\fR tcl::chan::zero .RE zip .RS .TP \fBfiles/modules/zip/encode\&.n\fR zipfile::encode .TP \fBfiles/modules/zip/decode\&.n\fR zipfile::encode .RE zlib .RS .TP \fBfiles/modules/virtchannel_transform/tcllib_zlib\&.n\fR tcl::transform::zlib |
︙ | ︙ |
Changes to embedded/man/toc.n.
︙ | ︙ | |||
1484 1485 1486 1487 1488 1489 1490 | .TP \fByaml\fR \fIfiles/modules/yaml/yaml\&.n\fR: YAML Format Encoder/Decoder .TP \fByencode\fR \fIfiles/modules/base64/yencode\&.n\fR: Y-encode/decode binary data .TP | | | | | 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 | .TP \fByaml\fR \fIfiles/modules/yaml/yaml\&.n\fR: YAML Format Encoder/Decoder .TP \fByencode\fR \fIfiles/modules/base64/yencode\&.n\fR: Y-encode/decode binary data .TP \fBzipfile::encode\fR \fIfiles/modules/zip/encode\&.n\fR: Generation of zip archives .TP \fBzipfile::encode\fR \fIfiles/modules/zip/decode\&.n\fR: Access to zip archives |
Changes to embedded/www/index.html.
︙ | ︙ | |||
944 945 946 947 948 949 950 | <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%"> | | | 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 | <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> · <a href="tcllib/files/modules/zip/decode.html"> zipfile::encode </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> · <a href="tcllib/files/modules/virtchannel_transform/rot.html"> tcl::transform::rot </a> </td></tr> <tr class="#idxodd" valign=top> |
︙ | ︙ | |||
4225 4226 4227 4228 4229 4230 4231 | <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> · <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%"> | | | 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 | <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> · <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::encode </a> · <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> · <a href="tcllib/files/modules/map/map_slippy_cache.html"> map::slippy::cache </a> · <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/modules/crc/sum.html.
|
| < | 1 2 3 4 5 6 7 | <html><head> <title>sum - Cyclic Redundancy Checks</title> <style type="text/css"><!-- HTML { background: #FFFFFF; color: black; } |
︙ | ︙ | |||
104 105 106 107 108 109 110 | | <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> | | | 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">sum(n) 1.1.0 tcllib "Cyclic Redundancy Checks"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>sum - Calculate a sum(1) compatible checksum</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> |
︙ | ︙ | |||
128 129 130 131 132 133 134 | <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> | | | 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">sum <span class="opt">?1.1.0?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::crc::sum</b> <span class="opt">?<i class="arg">-bsd</i> | <i class="arg">-sysv</i>?</span> <span class="opt">?<i class="arg">-format fmt</i>?</span> <span class="opt">?<i class="arg">-chunksize size</i>?</span> [ <i class="arg">-filename file</i> | <i class="arg">-channel chan</i> | <i class="arg">string</i> ]</a></li> </ul> </div> </div> <div id="section1" class="section"><h2><a name="section1">Description</a></h2> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/debug/debug.html.
︙ | ︙ | |||
152 153 154 155 156 157 158 | <p>Debugging areas of interest are represented by 'tags' which have independently settable levels of interest (an integer, higher is more detailed).</p> </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> | | | 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | <p>Debugging areas of interest are represented by 'tags' which have independently settable levels of interest (an integer, higher is more detailed).</p> </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 signatur 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 |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/dns/tcllib_ip.html.
|
| < | 1 2 3 4 5 6 7 | <html><head> <title>tcllib_ip - Domain Name Service</title> <style type="text/css"><!-- HTML { background: #FFFFFF; color: black; } |
︙ | ︙ | |||
104 105 106 107 108 109 110 | | <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> | | | 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">tcllib_ip(n) 1.2.1 tcllib "Domain Name Service"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>tcllib_ip - IPv4 and IPv6 address manipulation</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> |
︙ | ︙ | |||
128 129 130 131 132 133 134 | <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> | | | 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">ip <span class="opt">?1.2.1?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::ip::version</b> <i class="arg">address</i></a></li> <li><a href="#2"><b class="cmd">::ip::is</b> <i class="arg">class</i> <i class="arg">address</i></a></li> <li><a href="#3"><b class="cmd">::ip::equal</b> <i class="arg">address</i> <i class="arg">address</i></a></li> <li><a href="#4"><b class="cmd">::ip::normalize</b> <i class="arg">address</i></a></li> <li><a href="#5"><b class="cmd">::ip::contract</b> <i class="arg">address</i></a></li> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/doctools/doctools.html.
︙ | ︙ | |||
90 91 92 93 94 95 96 | margin-bottom: 1em; border-bottom: 1px solid black; } --></style> </head> <! -- Generated from file 'doctools.man' by tcllib/doctools with format 'html' --> | | | | 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 | margin-bottom: 1em; border-bottom: 1px solid black; } --></style> </head> <! -- Generated from file 'doctools.man' by tcllib/doctools with format 'html' --> <! -- Copyright © 2003-2013 Andreas Kupries <[email protected]> --> <! -- CVS: $Id$ doctools.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">doctools(n) 1.4.16 tcllib "Documentation tools"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>doctools - doctools - Processing documents</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> |
︙ | ︙ | |||
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.2</b></li> | | | 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | <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">doctools <span class="opt">?1.4.16?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::doctools::new</b> <i class="arg">objectName</i> <span class="opt">?<i class="arg">option value</i>...?</span></a></li> <li><a href="#2"><b class="cmd">::doctools::help</b></a></li> <li><a href="#3"><b class="cmd">::doctools::search</b> <i class="arg">path</i></a></li> <li><a href="#4"><b class="cmd">objectName</b> <b class="method">method</b> <span class="opt">?<i class="arg">arg arg ...</i>?</span></a></li> <li><a href="#5"><i class="arg">objectName</i> <b class="method">configure</b></a></li> |
︙ | ︙ | |||
495 496 497 498 499 500 501 | <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#key185">documentation</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> | | | 495 496 497 498 499 500 501 502 503 504 | <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#key185">documentation</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 © 2003-2013 Andreas Kupries <[email protected]></p> </div> </div></body></html> |
Changes to embedded/www/tcllib/files/modules/dtplite/pkg_dtplite.html.
︙ | ︙ | |||
104 105 106 107 108 109 110 | | <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> | | | 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">dtplite(n) 1.1 tcllib "Documentation toolbox"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>dtplite - Lightweight DocTools Markup Processor</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> |
︙ | ︙ | |||
130 131 132 133 134 135 136 | <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"> | < < < | 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | <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="syntax"> <li><a href="#1"><b class="cmd">dtplite</b> <b class="option">-o</b> <i class="arg">output</i> <span class="opt">?options?</span> <i class="arg">format</i> <i class="arg">inputfile</i></a></li> <li><a href="#2"><b class="cmd">dtplite</b> <b class="const">validate</b> <i class="arg">inputfile</i></a></li> <li><a href="#3"><b class="cmd">dtplite</b> <b class="option">-o</b> <i class="arg">output</i> <span class="opt">?options?</span> <i class="arg">format</i> <i class="arg">inputdirectory</i></a></li> <li><a href="#4"><b class="cmd">dtplite</b> <b class="option">-merge</b> <b class="option">-o</b> <i class="arg">output</i> <span class="opt">?options?</span> <i class="arg">format</i> <i class="arg">inputdirectory</i></a></li> </ul> </div> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/ftp/ftp.html.
︙ | ︙ | |||
102 103 104 105 106 107 108 | | <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> | | | | 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 | | <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">ftp(n) 2.4.11 tcllib "ftp client"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>ftp - Client-side tcl implementation of the ftp protocol</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">API</a></li> <li class="section"><a href="#section3">BUGS</a></li> <li class="section"><a href="#section4">Bugs, Ideas, Feedback</a></li> <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> </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">ftp <span class="opt">?2.4.11?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::ftp::Open</b> <i class="arg">server</i> <i class="arg">user</i> <i class="arg">passwd</i> <span class="opt">?<i class="arg">options</i>?</span></a></li> <li><a href="#2"><b class="cmd">::ftp::Close</b> <i class="arg">handle</i></a></li> <li><a href="#3"><b class="cmd">::ftp::Cd</b> <i class="arg">handle</i> <i class="arg">directory</i></a></li> <li><a href="#4"><b class="cmd">::ftp::Pwd</b> <i class="arg">handle</i></a></li> <li><a href="#5"><b class="cmd">::ftp::Type</b> <i class="arg">handle</i> <span class="opt">?<b class="const">ascii|binary|tenex</b>?</span></a></li> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/html/html.html.
︙ | ︙ | |||
102 103 104 105 106 107 108 | | <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> | | | | 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">html(n) 1.4 tcllib "HTML Generation"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>html - Procedures to generate HTML structures</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="#see-also">See Also</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.2</b></li> <li>package require <b class="pkgname">html <span class="opt">?1.4?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::html::author</b> <i class="arg">author</i></a></li> <li><a href="#2"><b class="cmd">::html::bodyTag</b> <i class="arg">args</i></a></li> <li><a href="#3"><b class="cmd">::html::cell</b> <i class="arg">param value</i> <span class="opt">?<i class="arg">tag</i>?</span></a></li> <li><a href="#4"><b class="cmd">::html::checkbox</b> <i class="arg">name value</i></a></li> <li><a href="#5"><b class="cmd">::html::checkSet</b> <i class="arg">key sep list</i></a></li> |
︙ | ︙ | |||
158 159 160 161 162 163 164 | <li><a href="#28"><b class="cmd">::html::headTag</b> <i class="arg">string</i></a></li> <li><a href="#29"><b class="cmd">::html::html_entities</b> <i class="arg">string</i></a></li> <li><a href="#30"><b class="cmd">::html::if</b> <i class="arg">expr1 body1</i> <span class="opt">?<b class="const">elseif</b> <i class="arg">expr2 body2 ...</i>?</span> <span class="opt">?<b class="const">else</b> <i class="arg">bodyN</i>?</span></a></li> <li><a href="#31"><b class="cmd">::html::init</b> <span class="opt">?<i class="arg">list</i>?</span></a></li> <li><a href="#32"><b class="cmd">::html::keywords</b> <i class="arg">args</i></a></li> <li><a href="#33"><b class="cmd">::html::mailto</b> <i class="arg">email</i> <span class="opt">?<i class="arg">subject</i>?</span></a></li> <li><a href="#34"><b class="cmd">::html::meta</b> <i class="arg">args</i></a></li> | < < < < | | | | | | | | | | | | | | | | | | | | | | | < | 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 | <li><a href="#28"><b class="cmd">::html::headTag</b> <i class="arg">string</i></a></li> <li><a href="#29"><b class="cmd">::html::html_entities</b> <i class="arg">string</i></a></li> <li><a href="#30"><b class="cmd">::html::if</b> <i class="arg">expr1 body1</i> <span class="opt">?<b class="const">elseif</b> <i class="arg">expr2 body2 ...</i>?</span> <span class="opt">?<b class="const">else</b> <i class="arg">bodyN</i>?</span></a></li> <li><a href="#31"><b class="cmd">::html::init</b> <span class="opt">?<i class="arg">list</i>?</span></a></li> <li><a href="#32"><b class="cmd">::html::keywords</b> <i class="arg">args</i></a></li> <li><a href="#33"><b class="cmd">::html::mailto</b> <i class="arg">email</i> <span class="opt">?<i class="arg">subject</i>?</span></a></li> <li><a href="#34"><b class="cmd">::html::meta</b> <i class="arg">args</i></a></li> <li><a href="#35"><b class="cmd">::html::minorList</b> <i class="arg">list</i> <span class="opt">?<i class="arg">ordered</i>?</span></a></li> <li><a href="#36"><b class="cmd">::html::minorMenu</b> <i class="arg">list</i> <span class="opt">?<i class="arg">sep</i>?</span></a></li> <li><a href="#37"><b class="cmd">::html::nl2br</b> <i class="arg">string</i></a></li> <li><a href="#38"><b class="cmd">::html::openTag</b> <i class="arg">tag</i> <span class="opt">?<i class="arg">param</i>?</span></a></li> <li><a href="#39"><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></li> <li><a href="#40"><b class="cmd">::html::passwordInput</b> <span class="opt">?<i class="arg">name</i>?</span></a></li> <li><a href="#41"><b class="cmd">::html::passwordInputRow</b> <i class="arg">label</i> <span class="opt">?<i class="arg">name</i>?</span></a></li> <li><a href="#42"><b class="cmd">::html::quoteFormValue</b> <i class="arg">value</i></a></li> <li><a href="#43"><b class="cmd">::html::radioSet</b> <i class="arg">key sep list</i></a></li> <li><a href="#44"><b class="cmd">::html::radioValue</b> <i class="arg">name value</i></a></li> <li><a href="#45"><b class="cmd">::html::refresh</b> <i class="arg">seconds url</i></a></li> <li><a href="#46"><b class="cmd">::html::row</b> <i class="arg">args</i></a></li> <li><a href="#47"><b class="cmd">::html::select</b> <i class="arg">name param choices</i> <span class="opt">?<i class="arg">current</i>?</span></a></li> <li><a href="#48"><b class="cmd">::html::selectPlain</b> <i class="arg">name param choices</i> <span class="opt">?<i class="arg">current</i>?</span></a></li> <li><a href="#49"><b class="cmd">::html::set</b> <i class="arg">var val</i></a></li> <li><a href="#50"><b class="cmd">::html::submit</b> <i class="arg">label</i> <span class="opt">?<i class="arg">name</i>?</span></a></li> <li><a href="#51"><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></li> <li><a href="#52"><b class="cmd">::html::tableFromList</b> <i class="arg">querylist</i> <span class="opt">?<i class="arg">param</i>?</span></a></li> <li><a href="#53"><b class="cmd">::html::textarea</b> <i class="arg">name</i> <span class="opt">?<i class="arg">param</i>?</span> <span class="opt">?<i class="arg">current</i>?</span></a></li> <li><a href="#54"><b class="cmd">::html::textInput</b> <i class="arg">name value args</i></a></li> <li><a href="#55"><b class="cmd">::html::textInputRow</b> <i class="arg">label name value args</i></a></li> <li><a href="#56"><b class="cmd">::html::varEmpty</b> <i class="arg">name</i></a></li> <li><a href="#57"><b class="cmd">::html::while</b> <i class="arg">test body</i></a></li> </ul> </div> </div> <div id="section1" class="section"><h2><a name="section1">Description</a></h2> <p>The package <b class="package">html</b> provides commands that generate HTML. These commands typically return an HTML string as their result. In particular, they do not output their result to <b class="const">stdout</b>.</p> |
︙ | ︙ | |||
220 221 222 223 224 225 226 | <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> | | | 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 | <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 "name=<i class="arg">name</i> value=<i class="arg">value</i> 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 "1".</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., </body>).</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> |
︙ | ︙ | |||
343 344 345 346 347 348 349 | <dd><p>Generate a hypertext link to a mailto: URL.</p></dd> <dt><a name="34"><b class="cmd">::html::meta</b> <i class="arg">args</i></a></dt> <dd><p><em>Side effect only</em>. Call this before <b class="cmd">::html::head</b> to define a <i class="term">meta</i> tag for the page. The <i class="arg">args</i> is a Tcl-style name, value list that is used for the name= and value= parameters for the <i class="term">meta</i> tag. The <i class="term">meta</i> tag is included in the result of <b class="cmd">::html::head</b>.</p></dd> | < < < < < < < < < < < < < < < < < < < < < < < < < < | | | | | | | | | | | | | | | | | | | | | | | | < < < < < < < < < < < < < < < < < < < | 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 | <dd><p>Generate a hypertext link to a mailto: URL.</p></dd> <dt><a name="34"><b class="cmd">::html::meta</b> <i class="arg">args</i></a></dt> <dd><p><em>Side effect only</em>. Call this before <b class="cmd">::html::head</b> to define a <i class="term">meta</i> tag for the page. The <i class="arg">args</i> is a Tcl-style name, value list that is used for the name= and value= parameters for the <i class="term">meta</i> tag. The <i class="term">meta</i> tag is included in the result of <b class="cmd">::html::head</b>.</p></dd> <dt><a name="35"><b class="cmd">::html::minorList</b> <i class="arg">list</i> <span class="opt">?<i class="arg">ordered</i>?</span></a></dt> <dd><p>Generate an ordered or unordered list of links. The <i class="arg">list</i> is a Tcl-style name, value list of labels and urls for the links. <i class="arg">ordered</i> is a boolean used to choose between an ordered or unordered list. It defaults to <b class="const">false</b>.</p></dd> <dt><a name="36"><b class="cmd">::html::minorMenu</b> <i class="arg">list</i> <span class="opt">?<i class="arg">sep</i>?</span></a></dt> <dd><p>Generate a series of hypertext links. The <i class="arg">list</i> is a Tcl-style name, value list of labels and urls for the links. The <i class="arg">sep</i> is the text to put between each link. It defaults to " | ".</p></dd> <dt><a name="37"><b class="cmd">::html::nl2br</b> <i class="arg">string</i></a></dt> <dd><p>This command replaces all line-endings in the <i class="arg">string</i> with a <i class="term">br</i> tag and returns the modified text.</p></dd> <dt><a name="38"><b class="cmd">::html::openTag</b> <i class="arg">tag</i> <span class="opt">?<i class="arg">param</i>?</span></a></dt> <dd><p>Push <i class="arg">tag</i> onto a stack and generate the opening tag for <i class="arg">tag</i>. Use <b class="cmd">::html::closeTag</b> to pop the tag from the stack. The second argument provides any tag arguments, as a list whose elements are formatted to be in the form "<b class="variable">key</b>=<b class="const">value</b>".</p></dd> <dt><a name="39"><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="40"><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 "password".</p></dd> <dt><a name="41"><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 "password".</p></dd> <dt><a name="42"><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="43"><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> is a Tcl-style label, value list.</p></dd> <dt><a name="44"><b class="cmd">::html::radioValue</b> <i class="arg">name value</i></a></dt> <dd><p>Generate the "name=<i class="arg">name</i> value=<i class="arg">value</i> for a <i class="term">radio</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.</p></dd> <dt><a name="45"><b class="cmd">::html::refresh</b> <i class="arg">seconds url</i></a></dt> <dd><p>Set up a refresh <i class="term">meta</i> tag. Call this before <b class="cmd">::html::head</b> and the HEAD section will contain a <i class="term">meta</i> tag that causes the document to refresh in <i class="arg">seconds</i> seconds. The <i class="arg">url</i> is optional. If specified, it specifies a new page to load after the refresh interval.</p></dd> <dt><a name="46"><b class="cmd">::html::row</b> <i class="arg">args</i></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">args</i> is place into its own table cell. This uses <b class="cmd">::html::cell</b>. Ignores any default information set up via <b class="cmd">::html::init</b>.</p></dd> <dt><a name="47"><b class="cmd">::html::select</b> <i class="arg">name param choices</i> <span class="opt">?<i class="arg">current</i>?</span></a></dt> <dd><p>Generate a <i class="term">select</i> form element and nested <i class="term">option</i> tags. The <i class="arg">name</i> 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="48"><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="49"><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 "" 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="50"><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 "submit".</p></dd> <dt><a name="51"><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 table gets a heading that matches the array name, and each generated row contains a name, value pair. The array names are sorted (<b class="cmd">lsort</b> without special options). The argument <i class="arg">param</i> is for the <i class="term"><a href="../../../../index.html#key106">table</a></i> tag and has to contain a pre-formatted string. The <i class="arg">pat</i> is a <b class="cmd">string match</b> pattern used to select the array elements to show in the table. It defaults to <b class="const">*</b>, i.e. the whole array is shown.</p></dd> <dt><a name="52"><b class="cmd">::html::tableFromList</b> <i class="arg">querylist</i> <span class="opt">?<i class="arg">param</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 <i class="arg">querylist</i>, which is a Tcl dictionary. Each generated row contains a name, value pair. The information is shown in the same order as specified in the dictionary. The argument <i class="arg">param</i> is for the <i class="term"><a href="../../../../index.html#key106">table</a></i> tag and has to contain a pre-formatted string.</p></dd> <dt><a name="53"><b class="cmd">::html::textarea</b> <i class="arg">name</i> <span class="opt">?<i class="arg">param</i>?</span> <span class="opt">?<i class="arg">current</i>?</span></a></dt> <dd><p>Generate a <i class="term">textarea</i> tag wrapped around its current values.</p></dd> <dt><a name="54"><b class="cmd">::html::textInput</b> <i class="arg">name value args</i></a></dt> <dd><p>Generate an <i class="term">input</i> form tag with type <i class="term"><a href="../../../../index.html#key246">text</a></i>. This uses <b class="cmd">::html::formValue</b>. The args is any additional tag attributes you want to put into the <i class="term">input</i> tag.</p></dd> <dt><a name="55"><b class="cmd">::html::textInputRow</b> <i class="arg">label name value args</i></a></dt> <dd><p>Generate an <i class="term">input</i> form tag with type <i class="term"><a href="../../../../index.html#key246">text</a></i> formatted into a table row with an associated label. The args is any additional tag attributes you want to put into the <i class="term">input</i> tag.</p></dd> <dt><a name="56"><b class="cmd">::html::varEmpty</b> <i class="arg">name</i></a></dt> <dd><p>This returns 1 if the named variable either does not exist or has the empty string for its value.</p></dd> <dt><a name="57"><b class="cmd">::html::while</b> <i class="arg">test body</i></a></dt> <dd><p>This procedure is similar to the built-in Tcl <b class="cmd">while</b> control structure. Rather than evaluating the body, it returns the subst'ed <i class="arg">body</i>. Each iteration of the loop causes another string to be concatenated to the result value.</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>html</em> of the <a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>. |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/json/json_write.html.
︙ | ︙ | |||
104 105 106 107 108 109 110 | | <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> | | | | 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 | | <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">json::write(n) 1.0.2 tcllib "JSON"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>json::write - JSON generation</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">json::write <span class="opt">?1.0.2?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::json::write</b> <b class="method">indented</b></a></li> <li><a href="#2"><b class="cmd">::json::write</b> <b class="method">indented</b> <i class="arg">flag</i></a></li> <li><a href="#3"><b class="cmd">::json::write</b> <b class="method">aligned</b></a></li> <li><a href="#4"><b class="cmd">::json::write</b> <b class="method">aligned</b> <i class="arg">flag</i></a></li> <li><a href="#5"><b class="cmd">::json::write</b> <b class="method">string</b> <i class="arg">s</i></a></li> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/math/math_geometry.html.
︙ | ︙ | |||
104 105 106 107 108 109 110 | | <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> | | | < | | | | | | | | | | | | | | | | | 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 | | <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::geometry(n) 1.1.2 tcllib "Tcl Math Library"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>math::geometry - Geometrical computations</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">PROCEDURES</a></li> <li class="section"><a href="#section3">References</a></li> <li class="section"><a href="#section4">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 <span class="opt">?8.3?</span></b></li> <li>package require <b class="pkgname">math::geometry <span class="opt">?1.1.2?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::math::geometry::+</b> <i class="arg">point1</i> <i class="arg">point2</i></a></li> <li><a href="#2"><b class="cmd">::math::geometry::-</b> <i class="arg">point1</i> <i class="arg">point2</i></a></li> <li><a href="#3"><b class="cmd">::math::geometry::p</b> <i class="arg">x</i> <i class="arg">y</i></a></li> <li><a href="#4"><b class="cmd">::math::geometry::distance</b> <i class="arg">point1</i> <i class="arg">point2</i></a></li> <li><a href="#5"><b class="cmd">::math::geometry::length</b> <i class="arg">point</i></a></li> <li><a href="#6"><b class="cmd">::math::geometry::s*</b> <i class="arg">factor</i> <i class="arg">point</i></a></li> <li><a href="#7"><b class="cmd">::math::geometry::direction</b> <i class="arg">angle</i></a></li> <li><a href="#8"><b class="cmd">::math::geometry::h</b> <i class="arg">length</i></a></li> <li><a href="#9"><b class="cmd">::math::geometry::v</b> <i class="arg">length</i></a></li> <li><a href="#10"><b class="cmd">::math::geometry::between</b> <i class="arg">point1</i> <i class="arg">point2</i> <i class="arg">s</i></a></li> <li><a href="#11"><b class="cmd">::math::geometry::octant</b> <i class="arg">point</i></a></li> <li><a href="#12"><b class="cmd">::math::geometry::rect</b> <i class="arg">nw</i> <i class="arg">se</i></a></li> <li><a href="#13"><b class="cmd">::math::geometry::nwse</b> <i class="arg">rect</i></a></li> <li><a href="#14"><b class="cmd">::math::geometry::angle</b> <i class="arg">line</i></a></li> <li><a href="#15"><b class="cmd">::math::geometry::calculateDistanceToLine</b> <i class="arg">P</i> <i class="arg">line</i></a></li> <li><a href="#16"><b class="cmd">::math::geometry::calculateDistanceToLineSegment</b> <i class="arg">P</i> <i class="arg">linesegment</i></a></li> <li><a href="#17"><b class="cmd">::math::geometry::calculateDistanceToPolyline</b> <i class="arg">P</i> <i class="arg">polyline</i></a></li> <li><a href="#18"><b class="cmd">::math::geometry::findClosestPointOnLine</b> <i class="arg">P</i> <i class="arg">line</i></a></li> <li><a href="#19"><b class="cmd">::math::geometry::findClosestPointOnLineSegment</b> <i class="arg">P</i> <i class="arg">linesegment</i></a></li> <li><a href="#20"><b class="cmd">::math::geometry::findClosestPointOnPolyline</b> <i class="arg">P</i> <i class="arg">polyline</i></a></li> <li><a href="#21"><b class="cmd">::math::geometry::lengthOfPolyline</b> <i class="arg">polyline</i></a></li> <li><a href="#22"><b class="cmd">::math::geometry::movePointInDirection</b> <i class="arg">P</i> <i class="arg">direction</i> <i class="arg">dist</i></a></li> <li><a href="#23"><b class="cmd">::math::geometry::lineSegmentsIntersect</b> <i class="arg">linesegment1</i> <i class="arg">linesegment2</i></a></li> <li><a href="#24"><b class="cmd">::math::geometry::findLineSegmentIntersection</b> <i class="arg">linesegment1</i> <i class="arg">linesegment2</i></a></li> <li><a href="#25"><b class="cmd">::math::geometry::findLineIntersection</b> <i class="arg">line1</i> <i class="arg">line2</i></a></li> <li><a href="#26"><b class="cmd">::math::geometry::polylinesIntersect</b> <i class="arg">polyline1</i> <i class="arg">polyline2</i></a></li> <li><a href="#27"><b class="cmd">::math::geometry::polylinesBoundingIntersect</b> <i class="arg">polyline1</i> <i class="arg">polyline2</i> <i class="arg">granularity</i></a></li> <li><a href="#28"><b class="cmd">::math::geometry::intervalsOverlap</b> <i class="arg">y1</i> <i class="arg">y2</i> <i class="arg">y3</i> <i class="arg">y4</i> <i class="arg">strict</i></a></li> <li><a href="#29"><b class="cmd">::math::geometry::rectanglesOverlap</b> <i class="arg">P1</i> <i class="arg">P2</i> <i class="arg">Q1</i> <i class="arg">Q2</i> <i class="arg">strict</i></a></li> <li><a href="#30"><b class="cmd">::math::geometry::bbox</b> <i class="arg">polyline</i></a></li> <li><a href="#31"><b class="cmd">::math::geometry::pointInsidePolygon</b> <i class="arg">P</i> <i class="arg">polyline</i></a></li> <li><a href="#32"><b class="cmd">::math::geometry::rectangleInsidePolygon</b> <i class="arg">P1</i> <i class="arg">P2</i> <i class="arg">polyline</i></a></li> <li><a href="#33"><b class="cmd">::math::geometry::areaPolygon</b> <i class="arg">polygon</i></a></li> </ul> </div> </div> <div id="section1" class="section"><h2><a name="section1">Description</a></h2> <p>The <b class="package">math::geometry</b> package is a collection of functions for computations and manipulations on two-dimensional geometrical objects, such as points, lines and polygons.</p> |
︙ | ︙ | |||
286 287 288 289 290 291 292 | <dd><p>List of two numbers, the coordinates of the point</p></dd> <dt>list <i class="arg">linesegment</i></dt> <dd><p>List of four numbers, the coordinates of the first and last points of the line segment</p></dd> </dl></dd> <dt><a name="17"><b class="cmd">::math::geometry::calculateDistanceToPolyline</b> <i class="arg">P</i> <i class="arg">polyline</i></a></dt> <dd><p>Calculate the distance of point P to the polyline and | | < < < < < < < < < < < | | | | | | | < | | | | | | | | | | | 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 | <dd><p>List of two numbers, the coordinates of the point</p></dd> <dt>list <i class="arg">linesegment</i></dt> <dd><p>List of four numbers, the coordinates of the first and last points of the line segment</p></dd> </dl></dd> <dt><a name="17"><b class="cmd">::math::geometry::calculateDistanceToPolyline</b> <i class="arg">P</i> <i class="arg">polyline</i></a></dt> <dd><p>Calculate the distance of point P to the polyline and return the result.</p> <dl class="arguments"> <dt>list <i class="arg">P</i></dt> <dd><p>List of two numbers, the coordinates of the point</p></dd> <dt>list <i class="arg">polyline</i></dt> <dd><p>List of numbers, the coordinates of the vertices of the polyline</p></dd> </dl></dd> <dt><a name="18"><b class="cmd">::math::geometry::findClosestPointOnLine</b> <i class="arg">P</i> <i class="arg">line</i></a></dt> <dd><p>Return the point on a line which is closest to a given point.</p> <dl class="arguments"> <dt>list <i class="arg">P</i></dt> <dd><p>List of two numbers, the coordinates of the point</p></dd> <dt>list <i class="arg">line</i></dt> <dd><p>List of four numbers, the coordinates of two points on the line</p></dd> </dl></dd> <dt><a name="19"><b class="cmd">::math::geometry::findClosestPointOnLineSegment</b> <i class="arg">P</i> <i class="arg">linesegment</i></a></dt> <dd><p>Return the point on a <em>line segment</em> which is closest to a given point.</p> <dl class="arguments"> <dt>list <i class="arg">P</i></dt> <dd><p>List of two numbers, the coordinates of the point</p></dd> <dt>list <i class="arg">linesegment</i></dt> <dd><p>List of four numbers, the first and last points on the line segment</p></dd> </dl></dd> <dt><a name="20"><b class="cmd">::math::geometry::findClosestPointOnPolyline</b> <i class="arg">P</i> <i class="arg">polyline</i></a></dt> <dd><p>Return the point on a <em>polyline</em> which is closest to a given point.</p> <dl class="arguments"> <dt>list <i class="arg">P</i></dt> <dd><p>List of two numbers, the coordinates of the point</p></dd> <dt>list <i class="arg">polyline</i></dt> <dd><p>List of numbers, the vertices of the polyline</p></dd> </dl></dd> <dt><a name="21"><b class="cmd">::math::geometry::lengthOfPolyline</b> <i class="arg">polyline</i></a></dt> <dd><p>Return the length of the <em>polyline</em> (note: it not regarded as a polygon)</p> <dl class="arguments"> <dt>list <i class="arg">polyline</i></dt> <dd><p>List of numbers, the vertices of the polyline</p></dd> </dl></dd> <dt><a name="22"><b class="cmd">::math::geometry::movePointInDirection</b> <i class="arg">P</i> <i class="arg">direction</i> <i class="arg">dist</i></a></dt> <dd><p>Move a point over a given distance in a given direction and return the new coordinates (in two dimensions only).</p> <dl class="arguments"> <dt>list <i class="arg">P</i></dt> <dd><p>Coordinates of the point to be moved</p></dd> <dt>double <i class="arg">direction</i></dt> <dd><p>Direction (in degrees; 0 is to the right, 90 upwards)</p></dd> <dt>list <i class="arg">dist</i></dt> <dd><p>Distance over which to move the point</p></dd> </dl></dd> <dt><a name="23"><b class="cmd">::math::geometry::lineSegmentsIntersect</b> <i class="arg">linesegment1</i> <i class="arg">linesegment2</i></a></dt> <dd><p>Check if two line segments intersect or coincide. Returns 1 if that is the case, 0 otherwise (in two dimensions only).</p> <dl class="arguments"> <dt>list <i class="arg">linesegment1</i></dt> <dd><p>First line segment</p></dd> <dt>list <i class="arg">linesegment2</i></dt> <dd><p>Second line segment</p></dd> </dl></dd> <dt><a name="24"><b class="cmd">::math::geometry::findLineSegmentIntersection</b> <i class="arg">linesegment1</i> <i class="arg">linesegment2</i></a></dt> <dd><p>Find the intersection point of two line segments. Return the coordinates or the keywords "coincident" or "none" if the line segments coincide or have no points in common (in two dimensions only).</p> <dl class="arguments"> <dt>list <i class="arg">linesegment1</i></dt> <dd><p>First line segment</p></dd> <dt>list <i class="arg">linesegment2</i></dt> <dd><p>Second line segment</p></dd> </dl></dd> <dt><a name="25"><b class="cmd">::math::geometry::findLineIntersection</b> <i class="arg">line1</i> <i class="arg">line2</i></a></dt> <dd><p>Find the intersection point of two (infinite) lines. Return the coordinates or the keywords "coincident" or "none" if the lines coincide or have no points in common (in two dimensions only).</p> <dl class="arguments"> <dt>list <i class="arg">line1</i></dt> <dd><p>First line</p></dd> <dt>list <i class="arg">line2</i></dt> <dd><p>Second line</p></dd> </dl> <p>See section <span class="sectref"><a href="#section3">References</a></span> for details on the algorithm and math behind it.</p></dd> <dt><a name="26"><b class="cmd">::math::geometry::polylinesIntersect</b> <i class="arg">polyline1</i> <i class="arg">polyline2</i></a></dt> <dd><p>Check if two polylines intersect or not (in two dimensions only).</p> <dl class="arguments"> <dt>list <i class="arg">polyline1</i></dt> <dd><p>First polyline</p></dd> <dt>list <i class="arg">polyline2</i></dt> <dd><p>Second polyline</p></dd> </dl></dd> <dt><a name="27"><b class="cmd">::math::geometry::polylinesBoundingIntersect</b> <i class="arg">polyline1</i> <i class="arg">polyline2</i> <i class="arg">granularity</i></a></dt> <dd><p>Check whether two polylines intersect, but reduce the correctness of the result to the given granularity. Use this for faster, but weaker, intersection checking.</p> <p>How it works:</p> <p>Each polyline is split into a number of smaller polylines, consisting of granularity points each. If a pair of those smaller lines' bounding boxes intersect, then this procedure returns 1, otherwise it returns 0.</p> <dl class="arguments"> <dt>list <i class="arg">polyline1</i></dt> <dd><p>First polyline</p></dd> <dt>list <i class="arg">polyline2</i></dt> <dd><p>Second polyline</p></dd> <dt>int <i class="arg">granularity</i></dt> <dd><p>Number of points in each part (<=1 means check every edge)</p></dd> </dl></dd> <dt><a name="28"><b class="cmd">::math::geometry::intervalsOverlap</b> <i class="arg">y1</i> <i class="arg">y2</i> <i class="arg">y3</i> <i class="arg">y4</i> <i class="arg">strict</i></a></dt> <dd><p>Check if two intervals overlap.</p> <dl class="arguments"> <dt>double <i class="arg">y1,y2</i></dt> <dd><p>Begin and end of first interval</p></dd> <dt>double <i class="arg">y3,y4</i></dt> <dd><p>Begin and end of second interval</p></dd> <dt>logical <i class="arg">strict</i></dt> <dd><p>Check for strict or non-strict overlap</p></dd> </dl></dd> <dt><a name="29"><b class="cmd">::math::geometry::rectanglesOverlap</b> <i class="arg">P1</i> <i class="arg">P2</i> <i class="arg">Q1</i> <i class="arg">Q2</i> <i class="arg">strict</i></a></dt> <dd><p>Check if two rectangles overlap.</p> <dl class="arguments"> <dt>list <i class="arg">P1</i></dt> <dd><p>upper-left corner of the first rectangle</p></dd> <dt>list <i class="arg">P2</i></dt> <dd><p>lower-right corner of the first rectangle</p></dd> <dt>list <i class="arg">Q1</i></dt> <dd><p>upper-left corner of the second rectangle</p></dd> <dt>list <i class="arg">Q2</i></dt> <dd><p>lower-right corner of the second rectangle</p></dd> <dt>list <i class="arg">strict</i></dt> <dd><p>choosing strict or non-strict interpretation</p></dd> </dl></dd> <dt><a name="30"><b class="cmd">::math::geometry::bbox</b> <i class="arg">polyline</i></a></dt> <dd><p>Calculate the bounding box of a polyline. Returns a list of four coordinates: the upper-left and the lower-right corner of the box.</p> <dl class="arguments"> <dt>list <i class="arg">polyline</i></dt> <dd><p>The polyline to be examined</p></dd> </dl></dd> <dt><a name="31"><b class="cmd">::math::geometry::pointInsidePolygon</b> <i class="arg">P</i> <i class="arg">polyline</i></a></dt> <dd><p>Determine if a point is completely inside a polygon. If the point touches the polygon, then the point is not completely inside the polygon.</p> <dl class="arguments"> <dt>list <i class="arg">P</i></dt> <dd><p>Coordinates of the point</p></dd> <dt>list <i class="arg">polyline</i></dt> <dd><p>The polyline to be examined</p></dd> </dl></dd> <dt><a name="32"><b class="cmd">::math::geometry::rectangleInsidePolygon</b> <i class="arg">P1</i> <i class="arg">P2</i> <i class="arg">polyline</i></a></dt> <dd><p>Determine if a rectangle is completely inside a polygon. If polygon touches the rectangle, then the rectangle is not complete inside the polygon.</p> <dl class="arguments"> <dt>list <i class="arg">P1</i></dt> <dd><p>Upper-left corner of the rectangle</p></dd> <dt>list <i class="arg">P2</i></dt> <dd><p>Lower-right corner of the rectangle</p></dd> <dt>list <i class="arg">polygon</i></dt> <dd><p>The polygon in question</p></dd> </dl></dd> <dt><a name="33"><b class="cmd">::math::geometry::areaPolygon</b> <i class="arg">polygon</i></a></dt> <dd><p>Calculate the area of a polygon.</p> <dl class="arguments"> <dt>list <i class="arg">polygon</i></dt> <dd><p>The polygon in question</p></dd> </dl></dd> </dl> </div> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/pt/pt_peg_from_peg.html.
︙ | ︙ | |||
104 105 106 107 108 109 110 | | <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> | | | 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">pt::peg::from::peg(n) 1 tcllib "Parser Tools"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>pt::peg::from::peg - PEG Conversion. Read PEG format</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> |
︙ | ︙ | |||
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> | | | 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | <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">pt::peg::from::peg <span class="opt">?1?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">pt::peg::from::peg</b> <b class="method">convert</b> <i class="arg">text</i></a></li> </ul> </div> </div> <div id="section1" class="section"><h2><a name="section1">Description</a></h2> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/pt/pt_peg_op.html.
︙ | ︙ | |||
104 105 106 107 108 109 110 | | <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> | | | | 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 | | <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">pt_peg_op(i) 1 tcllib "Parser Tools"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>pt_peg_op - Parser Tools PE Grammar Utility Operations</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">API</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">pt::peg::op 1</b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::peg::peg::op</b> <b class="method">called</b> <i class="arg">container</i></a></li> <li><a href="#2"><b class="cmd">::peg::peg::op</b> <b class="method">dechain</b> <i class="arg">container</i></a></li> <li><a href="#3"><b class="cmd">::peg::peg::op</b> <b class="method">drop unreachable</b> <i class="arg">container</i></a></li> <li><a href="#4"><b class="cmd">::peg::peg::op</b> <b class="method">drop unrealizable</b> <i class="arg">container</i></a></li> <li><a href="#5"><b class="cmd">::peg::peg::op</b> <b class="method">flatten</b> <i class="arg">container</i></a></li> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/pt/pt_peg_to_peg.html.
︙ | ︙ | |||
104 105 106 107 108 109 110 | | <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> | | | 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">pt::peg::to::peg(n) 1 tcllib "Parser Tools"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>pt::peg::to::peg - PEG Conversion. Write PEG format</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> |
︙ | ︙ | |||
140 141 142 143 144 145 146 | <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> | | | 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | <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">pt::peg::to::peg <span class="opt">?1?</span></b></li> <li>package require <b class="pkgname">pt::peg</b></li> <li>package require <b class="pkgname">pt::pe</b></li> <li>package require <b class="pkgname">text::write</b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">pt::peg::to::peg</b> <b class="method">reset</b></a></li> <li><a href="#2"><b class="cmd">pt::peg::to::peg</b> <b class="method">configure</b></a></li> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/pt/pt_pgen.html.
︙ | ︙ | |||
104 105 106 107 108 109 110 | | <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> | | | | 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 | | <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">pt::pgen(n) 1.0.1 tcllib "Parser Tools"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>pt::pgen - Parser Generator</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">API</a></li> <li class="section"><a href="#section3">Example</a></li> <li class="section"><a href="#section4">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">pt::pgen <span class="opt">?1.0.1?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::pt::pgen</b> <i class="arg">inputformat</i> <i class="arg">text</i> <i class="arg">resultformat</i> <span class="opt">?<i class="arg">options...</i>?</span></a></li> </ul> </div> </div> <div id="section1" class="section"><h2><a name="section1">Description</a></h2> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/rest/rest.html.
︙ | ︙ | |||
102 103 104 105 106 107 108 | | <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> | | | | 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 | | <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">rest(n) 1.0 tcllib "A framework for RESTful web services"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>rest - define REST web APIs and call them inline or asychronously</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">INCLUDED</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">rest <span class="opt">?1.0?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::rest::simple</b> <i class="arg">url</i> <i class="arg">query</i> <span class="opt">?config?</span> <span class="opt">?body?</span></a></li> <li><a href="#2"><b class="cmd">::rest::get</b> <i class="arg">url</i> <i class="arg">query</i> <span class="opt">?config?</span> <span class="opt">?body?</span></a></li> <li><a href="#3"><b class="cmd">::rest::post</b> <i class="arg">url</i> <i class="arg">query</i> <span class="opt">?config?</span> <span class="opt">?body?</span></a></li> <li><a href="#4"><b class="cmd">::rest::head</b> <i class="arg">url</i> <i class="arg">query</i> <span class="opt">?config?</span> <span class="opt">?body?</span></a></li> <li><a href="#5"><b class="cmd">::rest::put</b> <i class="arg">url</i> <i class="arg">query</i> <span class="opt">?config?</span> <span class="opt">?body?</span></a></li> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/struct/struct_list.html.
︙ | ︙ | |||
104 105 106 107 108 109 110 | | <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> | | | 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::list(n) 1.8.2 tcllib "Tcl Data Structures"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>struct::list - Procedures for manipulating lists</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 | <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> | | | 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.4</b></li> <li>package require <b class="pkgname">struct::list <span class="opt">?1.8.2?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::struct::list</b> <b class="method">longestCommonSubsequence</b> <i class="arg">sequence1</i> <i class="arg">sequence2</i> <span class="opt">?<i class="arg">maxOccurs</i>?</span></a></li> <li><a href="#2"><b class="cmd">::struct::list</b> <b class="method">longestCommonSubsequence2</b> <i class="arg">sequence1 sequence2</i> <span class="opt">?<i class="arg">maxOccurs</i>?</span></a></li> <li><a href="#3"><b class="cmd">::struct::list</b> <b class="method">lcsInvert</b> <i class="arg">lcsData</i> <i class="arg">len1</i> <i class="arg">len2</i></a></li> <li><a href="#4"><b class="cmd">::struct::list</b> <b class="method">lcsInvert2</b> <i class="arg">lcs1</i> <i class="arg">lcs2</i> <i class="arg">len1</i> <i class="arg">len2</i></a></li> <li><a href="#5"><b class="cmd">::struct::list</b> <b class="method">lcsInvertMerge</b> <i class="arg">lcsData</i> <i class="arg">len1</i> <i class="arg">len2</i></a></li> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/tar/tar.html.
︙ | ︙ | |||
102 103 104 105 106 107 108 | | <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> | | | | 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 | | <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">tar(n) 0.9 tcllib "Tar file handling"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>tar - Tar file creation, extraction & manipulation</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> </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">tar <span class="opt">?0.9?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::tar::contents</b> <i class="arg">tarball</i> <span class="opt">?<b class="option">-chan</b>?</span></a></li> <li><a href="#2"><b class="cmd">::tar::stat</b> <i class="arg">tarball</i> <span class="opt">?file?</span> <span class="opt">?<b class="option">-chan</b>?</span></a></li> <li><a href="#3"><b class="cmd">::tar::untar</b> <i class="arg">tarball</i> <i class="arg">args</i></a></li> <li><a href="#4"><b class="cmd">::tar::get</b> <i class="arg">tarball</i> <i class="arg">fileName</i> <span class="opt">?<b class="option">-chan</b>?</span></a></li> <li><a href="#5"><b class="cmd">::tar::create</b> <i class="arg">tarball</i> <i class="arg">files</i> <i class="arg">args</i></a></li> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/term/ansi_cctrl.html.
︙ | ︙ | |||
104 105 106 107 108 109 110 | | <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> | | | 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">term::ansi::code::ctrl(n) 0.1 tcllib "Terminal control"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>term::ansi::code::ctrl - ANSI control sequences</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> |
︙ | ︙ | |||
129 130 131 132 133 134 135 | <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> | | | | 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | <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">term::ansi::code <span class="opt">?0.1?</span></b></li> <li>package require <b class="pkgname">term::ansi::code::ctrl <span class="opt">?0.1.1?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::term::ansi::code::ctrl::names</b></a></li> <li><a href="#2"><b class="cmd">::term::ansi::code::ctrl::import</b> <span class="opt">?<i class="arg">ns</i>?</span> <span class="opt">?<i class="arg">arg</i>...?</span></a></li> <li><a href="#3"><b class="cmd">::term::ansi::code::ctrl::eeol</b></a></li> <li><a href="#4"><b class="cmd">::term::ansi::code::ctrl::esol</b></a></li> <li><a href="#5"><b class="cmd">::term::ansi::code::ctrl::el</b></a></li> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/term/ansi_code.html.
︙ | ︙ | |||
104 105 106 107 108 109 110 | | <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> | | | | 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 | | <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">term::ansi::code(n) 0.1 tcllib "Terminal control"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>term::ansi::code - Helper for control sequences</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">term::ansi::code <span class="opt">?0.1?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::term::ansi::code::esc</b> <i class="arg">str</i></a></li> <li><a href="#2"><b class="cmd">::term::ansi::code::escb</b> <i class="arg">str</i></a></li> <li><a href="#3"><b class="cmd">::term::ansi::code::define</b> <i class="arg">name</i> <i class="arg">escape</i> <i class="arg">code</i></a></li> <li><a href="#4"><b class="cmd">::term::ansi::code::const</b> <i class="arg">name</i> <i class="arg">code</i></a></li> </ul> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/term/ansi_send.html.
︙ | ︙ | |||
104 105 106 107 108 109 110 | | <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> | | | | 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 | | <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">term::ansi::send(n) 0.1 tcllib "Terminal control"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>term::ansi::send - Output of ANSI control sequences to terminals</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">term::ansi::send <span class="opt">?0.1?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::term::ansi::send::import</b> <span class="opt">?<i class="arg">ns</i>?</span> <i class="arg">...</i></a></li> <li><a href="#2"><b class="cmd">::term::ansi::send::eeol</b></a></li> <li><a href="#3"><b class="cmd">::term::ansi::send::esol</b></a></li> <li><a href="#4"><b class="cmd">::term::ansi::send::el</b></a></li> <li><a href="#5"><b class="cmd">::term::ansi::send::ed</b></a></li> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/textutil/textutil.html.
︙ | ︙ | |||
101 102 103 104 105 106 107 | | <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> | | | | 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 | | <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">textutil(n) 0.7.1 tcllib "Text and string utilities, macro processing"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>textutil - Procedures to manipulate texts and strings.</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="#see-also">See Also</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.2</b></li> <li>package require <b class="pkgname">textutil <span class="opt">?0.7.1?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::textutil::adjust</b> <i class="arg">string args</i></a></li> <li><a href="#2"><b class="cmd">::textutil::adjust::readPatterns</b> <i class="arg">filename</i></a></li> <li><a href="#3"><b class="cmd">::textutil::adjust::listPredefined</b></a></li> <li><a href="#4"><b class="cmd">::textutil::adjust::getPredefined</b> <i class="arg">filename</i></a></li> <li><a href="#5"><b class="cmd">::textutil::indent</b> <i class="arg">string</i> <i class="arg">prefix</i> <span class="opt">?<i class="arg">skip</i>?</span></a></li> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/textutil/textutil_string.html.
|
| < | 1 2 3 4 5 6 7 | <html><head> <title>textutil::string - Text and string utilities, macro processing</title> <style type="text/css"><!-- HTML { background: #FFFFFF; color: black; } |
︙ | ︙ | |||
102 103 104 105 106 107 108 | | <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> | | | < | | | < < < < | | | | 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 | | <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">textutil::string(n) 0.7 tcllib "Text and string utilities, macro processing"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>textutil::string - Procedures to manipulate texts and strings.</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="#see-also">See Also</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.2</b></li> <li>package require <b class="pkgname">textutil::string <span class="opt">?0.7?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::textutil::string::chop</b> <i class="arg">string</i></a></li> <li><a href="#2"><b class="cmd">::textutil::string::tail</b> <i class="arg">string</i></a></li> <li><a href="#3"><b class="cmd">::textutil::string::cap</b> <i class="arg">string</i></a></li> <li><a href="#4"><b class="cmd">::textutil::string::uncap</b> <i class="arg">string</i></a></li> <li><a href="#5"><b class="cmd">::textutil::string::longestCommonPrefixList</b> <i class="arg">list</i></a></li> <li><a href="#6"><b class="cmd">::textutil::string::longestCommonPrefix</b> <span class="opt">?<i class="arg">string</i>...?</span></a></li> </ul> </div> </div> <div id="section1" class="section"><h2><a name="section1">Description</a></h2> <p>The package <b class="package">textutil::string</b> provides miscellaneous string manipulation commands.</p> <p>The complete set of procedures is described below.</p> <dl class="definitions"> <dt><a name="1"><b class="cmd">::textutil::string::chop</b> <i class="arg">string</i></a></dt> <dd><p>A convenience command. Removes the last character of <i class="arg">string</i> and returns the shortened string.</p></dd> <dt><a name="2"><b class="cmd">::textutil::string::tail</b> <i class="arg">string</i></a></dt> <dd><p>A convenience command. Removes the first character of <i class="arg">string</i> and returns the shortened string.</p></dd> <dt><a name="3"><b class="cmd">::textutil::string::cap</b> <i class="arg">string</i></a></dt> <dd><p>Capitalizes the first character of <i class="arg">string</i> and returns the modified string.</p></dd> <dt><a name="4"><b class="cmd">::textutil::string::uncap</b> <i class="arg">string</i></a></dt> <dd><p>The complementary operation to <b class="cmd">::textutil::string::cap</b>. Forces the first character of <i class="arg">string</i> to lower case and returns the modified string.</p></dd> <dt><a name="5"><b class="cmd">::textutil::string::longestCommonPrefixList</b> <i class="arg">list</i></a></dt> <dd></dd> <dt><a name="6"><b class="cmd">::textutil::string::longestCommonPrefix</b> <span class="opt">?<i class="arg">string</i>...?</span></a></dt> <dd><p>Computes the longest common prefix for either the <i class="arg">string</i>s given to the command, or the strings specified in the single <i class="arg">list</i>, and returns it as the result of the command.</p> <p>If no strings were specified the result is the empty string. If only one string was specified, the string itself is returned, as it is its own longest common prefix.</p></dd> </dl> |
︙ | ︙ |
Changes to embedded/www/tcllib/files/modules/zip/decode.html.
1 2 | <html><head> | | | 1 2 3 4 5 6 7 8 9 10 | <html><head> <title>zipfile::encode - Zip archive handling</title> <style type="text/css"><!-- HTML { background: #FFFFFF; color: black; } BODY { background: #FFFFFF; |
︙ | ︙ | |||
90 91 92 93 94 95 96 | margin-bottom: 1em; border-bottom: 1px solid black; } --></style> </head> <! -- Generated from file 'decode.man' by tcllib/doctools with format 'html' --> | | | | | | 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 | margin-bottom: 1em; border-bottom: 1px solid black; } --></style> </head> <! -- Generated from file 'decode.man' by tcllib/doctools with format 'html' --> <! -- Copyright © 2008-2012 Andreas Kupries --> <! -- CVS: $Id$ zipfile::encode.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">zipfile::encode(n) 0.3 tcllib "Zip archive handling"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>zipfile::encode - Access to zip archives</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">API</a></li> |
︙ | ︙ | |||
128 129 130 131 132 133 134 | <div class="synopsis"> <ul class="requirements"> <li>package require <b class="pkgname">Tcl 8.4</b></li> <li>package require <b class="pkgname">fileutil::magic::mimetype</b></li> <li>package require <b class="pkgname">fileutil::decode 0.2</b></li> <li>package require <b class="pkgname">Trf</b></li> <li>package require <b class="pkgname">zlibtcl</b></li> | | | 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | <div class="synopsis"> <ul class="requirements"> <li>package require <b class="pkgname">Tcl 8.4</b></li> <li>package require <b class="pkgname">fileutil::magic::mimetype</b></li> <li>package require <b class="pkgname">fileutil::decode 0.2</b></li> <li>package require <b class="pkgname">Trf</b></li> <li>package require <b class="pkgname">zlibtcl</b></li> <li>package require <b class="pkgname">zipfile::decode <span class="opt">?0.4?</span></b></li> </ul> <ul class="syntax"> <li><a href="#1"><b class="cmd">::zipfile::decode::archive</b></a></li> <li><a href="#2"><b class="cmd">::zipfile::decode::close</b></a></li> <li><a href="#3"><b class="cmd">::zipfile::decode::comment</b> <i class="arg">adict</i></a></li> <li><a href="#4"><b class="cmd">::zipfile::decode::content</b> <i class="arg">archive</i></a></li> <li><a href="#5"><b class="cmd">::zipfile::decode::copyfile</b> <i class="arg">adict</i> <i class="arg">path</i> <i class="arg">dst</i></a></li> |
︙ | ︙ | |||
224 225 226 227 228 229 230 | <div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2> <p><a href="../../../../index.html#key43">decompression</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> | | | 224 225 226 227 228 229 230 231 232 233 | <div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2> <p><a href="../../../../index.html#key43">decompression</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 © 2008-2012 Andreas Kupries</p> </div> </div></body></html> |
Changes to embedded/www/tcllib/toc.html.
︙ | ︙ | |||
1633 1634 1635 1636 1637 1638 1639 | <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" > | | | 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 | <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::encode</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> |
︙ | ︙ |
Changes to embedded/www/toc.html.
︙ | ︙ | |||
531 532 533 534 535 536 537 | <td class="#tocleft" ><a href="tcllib/files/modules/textutil/expander.html">textutil::expander</a></td> <td class="#tocright">Procedures to process templates and expand text.</td> </tr> </table></dl> <dl><dt>File<dd> <table class="#toc"> <tr class="#toceven" > | | | 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 | <td class="#tocleft" ><a href="tcllib/files/modules/textutil/expander.html">textutil::expander</a></td> <td class="#tocright">Procedures to process templates and expand text.</td> </tr> </table></dl> <dl><dt>File<dd> <table class="#toc"> <tr class="#toceven" > <td class="#tocleft" ><a href="tcllib/files/modules/zip/decode.html">zipfile::encode</a></td> <td class="#tocright">Access to zip archives</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="tcllib/files/modules/zip/encode.html">zipfile::encode</a></td> <td class="#tocright">Generation of zip archives</td> </tr> </table></dl> |
︙ | ︙ | |||
3687 3688 3689 3690 3691 3692 3693 | <td class="#tocleft" ><a href="tcllib/files/modules/yaml/yaml.html">yaml</a></td> <td class="#tocright">YAML Format Encoder/Decoder</td> </tr> </table></dl> <dl><dt>zip<dd> <table class="#toc"> <tr class="#toceven" > | | | 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 | <td class="#tocleft" ><a href="tcllib/files/modules/yaml/yaml.html">yaml</a></td> <td class="#tocright">YAML Format Encoder/Decoder</td> </tr> </table></dl> <dl><dt>zip<dd> <table class="#toc"> <tr class="#toceven" > <td class="#tocleft" ><a href="tcllib/files/modules/zip/decode.html">zipfile::encode</a></td> <td class="#tocright">Access to zip archives</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="tcllib/files/modules/zip/encode.html">zipfile::encode</a></td> <td class="#tocright">Generation of zip archives</td> </tr> </table></dl></table></dl></table></dl> </dl><hr></body></html> |
Changes to embedded/www/toc0.html.
︙ | ︙ | |||
531 532 533 534 535 536 537 | <td class="#tocleft" ><a href="tcllib/files/modules/textutil/expander.html">textutil::expander</a></td> <td class="#tocright">Procedures to process templates and expand text.</td> </tr> </table></dl> <dl><dt>File<dd> <table class="#toc"> <tr class="#toceven" > | | | 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 | <td class="#tocleft" ><a href="tcllib/files/modules/textutil/expander.html">textutil::expander</a></td> <td class="#tocright">Procedures to process templates and expand text.</td> </tr> </table></dl> <dl><dt>File<dd> <table class="#toc"> <tr class="#toceven" > <td class="#tocleft" ><a href="tcllib/files/modules/zip/decode.html">zipfile::encode</a></td> <td class="#tocright">Access to zip archives</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="tcllib/files/modules/zip/encode.html">zipfile::encode</a></td> <td class="#tocright">Generation of zip archives</td> </tr> </table></dl> |
︙ | ︙ |
Changes to embedded/www/toc1.html.
︙ | ︙ | |||
1947 1948 1949 1950 1951 1952 1953 | <td class="#tocleft" ><a href="tcllib/files/modules/yaml/yaml.html">yaml</a></td> <td class="#tocright">YAML Format Encoder/Decoder</td> </tr> </table></dl> <dl><dt>zip<dd> <table class="#toc"> <tr class="#toceven" > | | | 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 | <td class="#tocleft" ><a href="tcllib/files/modules/yaml/yaml.html">yaml</a></td> <td class="#tocright">YAML Format Encoder/Decoder</td> </tr> </table></dl> <dl><dt>zip<dd> <table class="#toc"> <tr class="#toceven" > <td class="#tocleft" ><a href="tcllib/files/modules/zip/decode.html">zipfile::encode</a></td> <td class="#tocright">Access to zip archives</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="tcllib/files/modules/zip/encode.html">zipfile::encode</a></td> <td class="#tocright">Generation of zip archives</td> </tr> </table></dl></table></dl> |
︙ | ︙ |
Changes to modules/comm/comm.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 | [manpage_begin comm n 4.6.2] [see_also send(n)] [keywords comm] [keywords communication] [keywords ipc] [keywords message] [keywords {remote communication}] [keywords {remote execution}] [keywords rpc] [keywords secure] [keywords send] [keywords socket] [keywords ssl] [keywords tls] [copyright {1995-1998 The Open Group. All Rights Reserved.}] [copyright {2003-2004 ActiveState Corporation.}] [copyright {2006-2009 Andreas Kupries <[email protected]>}] [moddesc {Remote communication}] [titledesc {A remote communication facility for Tcl (8.3 and later)}] [category {Programming tools}] [require Tcl 8.3] [require comm [opt 4.6.2]] [description] [para] The [package comm] command provides an inter-interpreter remote execution facility much like Tk's [cmd send(n)], except that it uses sockets rather than the X server for the communication path. As a |
︙ | ︙ | |||
878 879 880 881 882 883 884 | Note that requiring no version (or a specific version) can also be done. [para] The revision history of [package comm] includes these releases: [list_begin definitions] | < < < < < | 877 878 879 880 881 882 883 884 885 886 887 888 889 890 | Note that requiring no version (or a specific version) can also be done. [para] The revision history of [package comm] includes these releases: [list_begin definitions] [def 4.6.2] Fixed bugs 2972571 and 3066872, the first a misdetection of quoted brace after double backslash, the other a blocking gets making for an obvious (hinsight) DoS attack on comm channels. [def 4.6.1] |
︙ | ︙ |
Changes to modules/comm/comm.tcl.
︙ | ︙ | |||
925 926 927 928 929 930 931 | } proc ::comm::commIncomingOffered {chan fid addr remport} { variable comm # Check if we have a complete line. if {[gets $fid protoline] < 0} { | < < < < < < < | 925 926 927 928 929 930 931 932 933 934 935 936 937 938 | } proc ::comm::commIncomingOffered {chan fid addr remport} { variable comm # Check if we have a complete line. if {[gets $fid protoline] < 0} { return } # Protocol version line has been received, disable event handling # again. fileevent $fid readable {} fconfigure $fid -blocking 1 |
︙ | ︙ | |||
1811 1812 1813 1814 1815 1816 1817 | ::comm::comm config -local 1 } else { ::comm::comm new ::comm::comm -port 0 -local 1 -listen 1 } } #eof | | | 1804 1805 1806 1807 1808 1809 1810 1811 | ::comm::comm config -local 1 } else { ::comm::comm new ::comm::comm -port 0 -local 1 -listen 1 } } #eof package provide comm 4.6.2 |
Changes to modules/comm/pkgIndex.tcl.
1 | if {![package vsatisfies [package provide Tcl] 8.3]} {return} | | | 1 2 | if {![package vsatisfies [package provide Tcl] 8.3]} {return} package ifneeded comm 4.6.2 [list source [file join $dir comm.tcl]] |
Changes to modules/coroutine/coro_auto.man.
1 | [comment {-*- tcl -*- doctools manpage}] | < | | | | 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 | [comment {-*- tcl -*- doctools manpage}] [manpage_begin coroutine::auto n 1] [keywords after] [keywords channel] [keywords coroutine] [keywords events] [keywords exit] [keywords gets] [keywords global] [keywords {green threads}] [keywords read] [keywords threads] [keywords update] [keywords vwait] [copyright {2010-2011 Andreas Kupries <[email protected]>}] [moddesc {Coroutine utilities}] [category Coroutine] [titledesc {Automatic event and IO coroutine awareness}] [require Tcl 8.6] [require coroutine::auto 1.1.1] [require coroutine 1.1] [description] The [package coroutine::auto] package provides no commands or other directly visible functionality. Built on top of the package [package coroutine], it intercepts various |
︙ | ︙ |
Changes to modules/coroutine/coro_auto.tcl.
1 2 3 4 | ## -- Tcl Module -- -*- tcl -*- # # ## ### ##### ######## ############# # @@ Meta Begin | | | | 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 | ## -- Tcl Module -- -*- tcl -*- # # ## ### ##### ######## ############# # @@ Meta Begin # Package coroutine::auto 1.1 # Meta platform tcl # Meta require {Tcl 8.6} # Meta require {coroutine 1.1} # Meta license BSD # Meta as::author {Andreas Kupries} # Meta as::origin http://wiki.tcl.tk/21555 # Meta summary Coroutine Event and Channel Support # Meta description Built on top of coroutine, this # Meta description package intercepts various builtin # Meta description commands to make the code using them # Meta description coroutine-oblivious, i.e. able to run # Meta description inside and outside of a coroutine # Meta description without changes. # @@ Meta End # Copyright (c) 2009-2011 Andreas Kupries ## $Id: coro_auto.tcl,v 1.3 2011/11/17 08:00:45 andreas_kupries Exp $ # # ## ### ##### ######## ############# ## Requisites, and ensemble setup. package require Tcl 8.6 package require coroutine |
︙ | ︙ | |||
132 133 134 135 136 137 138 | # where necessary. During while {1} { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 try { | | | 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | # where necessary. During while {1} { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 try { ::coroutine::auto::core_gets $chan line } on error {result opts} { ::chan configure $chan -blocking $blocking return -code $result -options $opts } if {[::chan blocked $chan]} { ::chan event $chan readable [list [info coroutine]] |
︙ | ︙ | |||
207 208 209 210 211 212 213 | # Loop until eof. while {1} { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 try { | | | | 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 | # Loop until eof. while {1} { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 try { ::coroutine::auto::core_read $chan } on error {result opts} { ::chan configure $chan -blocking $blocking return -code $result -options $opts } if {[fblocked $chan]} { ::chan event $chan readable [list [info coroutine]] yield ::chan event $chan readable {} } else { ::chan configure $chan -blocking $blocking append buf $result |
︙ | ︙ | |||
237 238 239 240 241 242 243 | set left $total while {1} { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 try { | | | 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 | set left $total while {1} { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 try { ::coroutine::auto::core_read $chan $left } on error {result opts} { ::chan configure $chan -blocking $blocking return -code $result -options $opts } if {[::chan blocked $chan]} { ::chan event $chan readable [list [info coroutine]] |
︙ | ︙ | |||
306 307 308 309 310 311 312 | return } ::coroutine::auto} # # ## ### ##### ######## ############# ## Ready | | | 306 307 308 309 310 311 312 313 314 | return } ::coroutine::auto} # # ## ### ##### ######## ############# ## Ready package provide coroutine::auto 1.1.1 return |
Changes to modules/coroutine/coroutine.tcl.
1 2 3 4 | ## -- Tcl Module -- -*- tcl -*- # # ## ### ##### ######## ############# # @@ Meta Begin | | | 1 2 3 4 5 6 7 8 9 10 11 12 | ## -- Tcl Module -- -*- tcl -*- # # ## ### ##### ######## ############# # @@ Meta Begin # Package coroutine 1 # Meta platform tcl # Meta require {Tcl 8.6} # Meta license BSD # Meta as::author {Andreas Kupries} # Meta as::author {Colin Macleod} # Meta as::author {Colin McCormack} # Meta as::author {Donal Fellows} |
︙ | ︙ | |||
33 34 35 36 37 38 39 | # Meta description coroutine::auto, which intercepts # Meta description the relevant builtin commands and changes # Meta description their implementation dependending on the # Meta description context they are run in, i.e. inside or # Meta description outside of a coroutine. # @@ Meta End | | | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | # Meta description coroutine::auto, which intercepts # Meta description the relevant builtin commands and changes # Meta description their implementation dependending on the # Meta description context they are run in, i.e. inside or # Meta description outside of a coroutine. # @@ Meta End # Copyright (c) 2009 Andreas Kupries # Copyright (c) 2009 Colin Macleod # Copyright (c) 2009 Colin McCormack # Copyright (c) 2009 Donal Fellows # Copyright (c) 2009 Kevin Kenny # Copyright (c) 2009 Neil Madden # Copyright (c) 2009 Peter Spjuth |
︙ | ︙ | |||
177 178 179 180 181 182 183 | # where necessary. During while {1} { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 try { | | | 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | # where necessary. During while {1} { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 try { ::chan gets $chan line } on error {result opts} { ::chan configure $chan -blocking $blocking return -code $result -options $opts } if {[::chan blocked $chan]} { ::chan event $chan readable [list [info coroutine]] |
︙ | ︙ | |||
244 245 246 247 248 249 250 | # Loop until eof. while {1} { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 try { | | | | 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 | # Loop until eof. while {1} { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 try { ::chan read $chan } on error {result opts} { ::chan configure $chan -blocking $blocking return -code $result -options $opts } if {[fblocked $chan]} { ::chan event $chan readable [list [info coroutine]] yield ::chan event $chan readable {} } else { ::chan configure $chan -blocking $blocking append buf $result |
︙ | ︙ | |||
274 275 276 277 278 279 280 | set left $total while {1} { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 try { | | | 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 | set left $total while {1} { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 try { ::chan read $chan $left } on error {result opts} { ::chan configure $chan -blocking $blocking return -code $result -options $opts } if {[::chan blocked $chan]} { ::chan event $chan readable [list [info coroutine]] |
︙ | ︙ | |||
369 370 371 372 373 374 375 | namespace eval ::coroutine::util { #checker exclude warnShadowVar variable counter 0 } # # ## ### ##### ######## ############# ## Ready | | | 369 370 371 372 373 374 375 376 377 | namespace eval ::coroutine::util { #checker exclude warnShadowVar variable counter 0 } # # ## ### ##### ######## ############# ## Ready package provide coroutine 1.1 return |
Changes to modules/coroutine/pkgIndex.tcl.
1 | if {![package vsatisfies [package provide Tcl] 8.6]} {return} | | | 1 2 3 | if {![package vsatisfies [package provide Tcl] 8.6]} {return} package ifneeded coroutine 1.1 [list source [file join $dir coroutine.tcl]] package ifneeded coroutine::auto 1.1.1 [list source [file join $dir coro_auto.tcl]] |
Changes to modules/coroutine/tcllib_coroutine.man.
1 | [comment {-*- tcl -*- doctools manpage}] | < | | | | 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 | [comment {-*- tcl -*- doctools manpage}] [manpage_begin coroutine n 1] [keywords after] [keywords channel] [keywords coroutine] [keywords events] [keywords exit] [keywords gets] [keywords global] [keywords {green threads}] [keywords read] [keywords threads] [keywords update] [keywords vwait] [copyright {2010-2011 Andreas Kupries <[email protected]>}] [moddesc {Coroutine utilities}] [category Coroutine] [titledesc {Coroutine based event and IO handling}] [require Tcl 8.6] [require coroutine 1.1] [description] The [package coroutine] package provides coroutine-aware implementations of various event- and channel related commands. It can be in multiple modes: [list_begin enumerated] |
︙ | ︙ |
Changes to modules/crc/cksum.man.
|
| < | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [manpage_begin cksum n 1.1.3] [see_also crc32(n)] [see_also sum(n)] [keywords checksum] [keywords cksum] [keywords crc] [keywords crc32] [keywords {cyclic redundancy check}] [keywords {data integrity}] [keywords security] [copyright {2002, Pat Thoyts}] [moddesc {Cyclic Redundancy Checks}] [titledesc {Calculate a cksum(1) compatible checksum}] [category {Hashes, checksums, and encryption}] [require Tcl 8.2] [require cksum [opt 1.1.3]] [description] [para] This package provides a Tcl implementation of the cksum(1) algorithm based upon information provided at in the GNU implementation of this program as part of the GNU Textutils 2.0 package. |
︙ | ︙ |
Changes to modules/crc/cksum.tcl.
︙ | ︙ | |||
12 13 14 15 16 17 18 | # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # ------------------------------------------------------------------------- # $Id: cksum.tcl,v 1.11 2009/04/21 20:06:19 andreas_kupries Exp $ package require Tcl 8.2; # tcl minimum version namespace eval ::crc { | | | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # ------------------------------------------------------------------------- # $Id: cksum.tcl,v 1.11 2009/04/21 20:06:19 andreas_kupries Exp $ package require Tcl 8.2; # tcl minimum version namespace eval ::crc { variable cksum_version 1.1.3 namespace export cksum variable cksum_tbl [list 0x0 \ 0x04C11DB7 0x09823B6E 0x0D4326D9 0x130476DC 0x17C56B6B \ 0x1A864DB2 0x1E475005 0x2608EDB8 0x22C9F00F 0x2F8AD6D6 \ 0x2B4BCB61 0x350C9B64 0x31CD86D3 0x3C8EA00A 0x384FBDBD \ |
︙ | ︙ | |||
69 70 71 72 73 74 75 | 0xCC2B1D17 0xC8EA00A0 0xD6AD50A5 0xD26C4D12 0xDF2F6BCB \ 0xDBEE767C 0xE3A1CBC1 0xE760D676 0xEA23F0AF 0xEEE2ED18 \ 0xF0A5BD1D 0xF464A0AA 0xF9278673 0xFDE69BC4 0x89B8FD09 \ 0x8D79E0BE 0x803AC667 0x84FBDBD0 0x9ABC8BD5 0x9E7D9662 \ 0x933EB0BB 0x97FFAD0C 0xAFB010B1 0xAB710D06 0xA6322BDF \ 0xA2F33668 0xBCB4666D 0xB8757BDA 0xB5365D03 0xB1F740B4 ] | < | | 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | 0xCC2B1D17 0xC8EA00A0 0xD6AD50A5 0xD26C4D12 0xDF2F6BCB \ 0xDBEE767C 0xE3A1CBC1 0xE760D676 0xEA23F0AF 0xEEE2ED18 \ 0xF0A5BD1D 0xF464A0AA 0xF9278673 0xFDE69BC4 0x89B8FD09 \ 0x8D79E0BE 0x803AC667 0x84FBDBD0 0x9ABC8BD5 0x9E7D9662 \ 0x933EB0BB 0x97FFAD0C 0xAFB010B1 0xAB710D06 0xA6322BDF \ 0xA2F33668 0xBCB4666D 0xB8757BDA 0xB5365D03 0xB1F740B4 ] variable uid ; if {![info exists uid]} {set uid 0} } # crc::CksumInit -- # # Create and initialize a cksum context. This is cleaned up when we # call CksumFinal to obtain the result. # |
︙ | ︙ | |||
92 93 94 95 96 97 98 | proc ::crc::CksumUpdate {token data} { variable cksum_tbl upvar #0 $token state set t $state(t) binary scan $data c* r foreach {n} $r { | | < < < < < < | > > > > > | < | 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 | proc ::crc::CksumUpdate {token data} { variable cksum_tbl upvar #0 $token state set t $state(t) binary scan $data c* r foreach {n} $r { set t [expr {($t << 8) ^ [lindex $cksum_tbl [expr { (($t >> 24) \ ^ ($n & 0xFF)) & 0xFF }]]}] incr state(l) } set state(t) $t return } proc ::crc::CksumFinal {token} { variable cksum_tbl upvar #0 $token state set t $state(t) for {set i $state(l)} {$i > 0} {set i [expr {$i>>8}]} { set t [expr {($t << 8) \ ^ [lindex $cksum_tbl \ [expr {(($t >> 24) ^ $i) & 0xFF}]]}] } unset state return [expr {~$t & 0xFFFFFFFF}] } # crc::Pop -- # |
︙ | ︙ |
Changes to modules/crc/pkgIndex.tcl.
1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} | | | | 1 2 3 4 5 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} package ifneeded cksum 1.1.3 [list source [file join $dir cksum.tcl]] package ifneeded crc16 1.1.2 [list source [file join $dir crc16.tcl]] package ifneeded crc32 1.3.1 [list source [file join $dir crc32.tcl]] package ifneeded sum 1.1.0 [list source [file join $dir sum.tcl]] |
Changes to modules/crc/sum.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 | [manpage_begin sum n 1.1.0] [see_also cksum(n)] [see_also crc32(n)] [see_also sum(1)] [keywords checksum] [keywords cksum] [keywords crc] [keywords crc32] [keywords {cyclic redundancy check}] [keywords {data integrity}] [keywords security] [keywords sum] [copyright {2002, Pat Thoyts <[email protected]>}] [moddesc {Cyclic Redundancy Checks}] [titledesc {Calculate a sum(1) compatible checksum}] [category {Hashes, checksums, and encryption}] [require Tcl 8.2] [require sum [opt 1.1.0]] [description] [para] This package provides a Tcl-only implementation of the sum(1) command which calculates a 16 bit checksum value from the input data. The BSD sum algorithm is used by default but the SysV algorithm is also available. |
︙ | ︙ |
Changes to modules/crc/sum.tcl.
︙ | ︙ | |||
17 18 19 20 21 22 23 | package require Tcl 8.2; # tcl minimum version catch {package require tcllibc}; # critcl enhancements to tcllib #catch {package require crcc}; # critcl enhanced crc module namespace eval ::crc { | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | package require Tcl 8.2; # tcl minimum version catch {package require tcllibc}; # critcl enhancements to tcllib #catch {package require crcc}; # critcl enhanced crc module namespace eval ::crc { variable sum_version 1.1.0 namespace export sum variable uid if {![info exists uid]} { set uid 0 } } |
︙ | ︙ | |||
40 41 42 43 44 45 46 | # proc ::crc::SumSysV {s {seed 0}} { set t $seed binary scan $s c* r foreach n $r { incr t [expr {$n & 0xFF}] } | | | 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | # proc ::crc::SumSysV {s {seed 0}} { set t $seed binary scan $s c* r foreach n $r { incr t [expr {$n & 0xFF}] } return [expr {$t % 0xFFFF}] } # ------------------------------------------------------------------------- # Description: # This algorithm is similar to the SysV version but includes a bit rotation # step which provides a dependency on the order of the data values. # |
︙ | ︙ |
Changes to modules/crc/sum.test.
︙ | ︙ | |||
10 11 12 13 14 15 16 | # ------------------------------------------------------------------------- source [file join \ [file dirname [file dirname [file join [pwd] [info script]]]] \ devtools testutilities.tcl] | | | | | | > | | | > | 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 | # ------------------------------------------------------------------------- source [file join \ [file dirname [file dirname [file join [pwd] [info script]]]] \ devtools testutilities.tcl] testsNeedTcl 8.2 testsNeedTcltest 1.0 testing { useLocal sum.tcl sum ::crc } # ------------------------------------------------------------------------- if {[info command ::crc::SumBsd_c] == {}} { puts "> pure tcl" } else { puts "> critcl based" } # ------------------------------------------------------------------------- test sum-1.0 {sum with no parameters } { list [catch {::crc::sum} result] \ [string match "wrong \# args: *" $result] } {1 1} test sum-1.1 {sum with incorrect parameters } { list [catch {::crc::sum -zxcv} result] \ [string match "bad option -zxcv: *" $result] } {1 1} # ------------------------------------------------------------------------- foreach {n msg expected} { 1 "" "0" 2 "a" |
︙ | ︙ | |||
57 58 59 60 61 62 63 | 7 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" "25587" 8 "12345678901234567890123456789012345678901234567890123456789012345678901234567890" "21845" 9 "\uFFFE\u0000\u0001\u0002" "16418" } { | | | | 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | 7 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" "25587" 8 "12345678901234567890123456789012345678901234567890123456789012345678901234567890" "21845" 9 "\uFFFE\u0000\u0001\u0002" "16418" } { test sum-2.$n {sum using BSD algorithm and unsigned integer} { ::crc::sum -bsd $msg } $expected } # ------------------------------------------------------------------------- foreach {n msg expected} { 1 "" "0" 2 "a" |
︙ | ︙ | |||
83 84 85 86 87 88 89 | 7 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" "5387" 8 "12345678901234567890123456789012345678901234567890123456789012345678901234567890" "4200" 9 "\uFFFE\u0000\u0001\u0002" "257" } { | | | | | | | | | | | | | | < < < < < < < < < | < < < < | 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 | 7 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" "5387" 8 "12345678901234567890123456789012345678901234567890123456789012345678901234567890" "4200" 9 "\uFFFE\u0000\u0001\u0002" "257" } { test sum-3.$n {sum using SysV algorithm and unsigned integer} { ::crc::sum -sysv $msg } $expected } # ------------------------------------------------------------------------- set crc::testfile [info script] proc ::crc::loaddata {filename} { set f [open $filename r] fconfigure $f -translation binary set data [read $f] close $f return $data } test sum-4.0 {sum file option (BSD)} { set r1 [::crc::sum -bsd -file $::crc::testfile] set r2 [::crc::sum -bsd [::crc::loaddata $::crc::testfile]] if {$r1 != $r2} { set r "differing results: $r1 != $r2" } else { set r ok } } {ok} test sum-4.1 {sum file option (SysV)} { set r1 [::crc::sum -sysv -file $::crc::testfile] set r2 [::crc::sum -sysv [::crc::loaddata $crc::testfile]] if {$r1 != $r2} { set r "differing results: $r1 != $r2" } else { set r ok } } {ok} test sum-4.2 {sum -channel option (BSD)} { set r1 [::crc::sum -bsd [::crc::loaddata $::crc::testfile]] set f [open $::crc::testfile r] fconfigure $f -translation binary set r2 [::crc::sum -bsd -channel $f] close $f if {$r1 != $r2} { set r "differing results: $r1 != $r2" } else { set r ok } } {ok} test sum-4.3 {sum -channel option (SysV)} { set r1 [::crc::sum -sysv -file $::crc::testfile] set f [open $::crc::testfile r] fconfigure $f -translation binary set r2 [::crc::sum -sysv -channel $f] close $f if {$r1 != $r2} { set r "differing results: $r1 != $r2" } else { set r ok } } {ok} # ------------------------------------------------------------------------- test sum-5.0 {sum format option (BSD)} { ::crc::sum -bsd -format 0x%X [string repeat x 200] } {0xF8EE} test sum-5.1 {sum format option (SysV)} { ::crc::sum -sysv -format 0x%X [string repeat x 200] } {0x5DC0} # ------------------------------------------------------------------------- catch {unset ::crc::testfile} testsuiteCleanup # Local Variables: # mode: tcl # indent-tabs-mode: nil # End: |
Changes to modules/debug/debug.man.
1 | [comment {-*- tcl -*- doctools manpage}] | | | | | 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 | [comment {-*- tcl -*- doctools manpage}] [vset PACKAGE_VERSION 1.0.2] [manpage_begin debug n [vset PACKAGE_VERSION]] [keywords debug] [keywords log] [keywords narrative] [keywords trace] [copyright {200?, Colin McCormack, Wub Server Utilities}] [copyright {2012, Andreas Kupries <[email protected]>}] [moddesc {debug narrative}] [titledesc {debug narrative - core}] [category {debugging, tracing, and logging}] [require Tcl 8.5] [require debug [opt [vset PACKAGE_VERSION]]] [description] Debugging areas of interest are represented by 'tags' which have independently settable levels of interest (an integer, higher is more detailed). [section API] [list_begin definitions] [comment {= = == === ===== ======== ============= =====================}] [call [cmd debug.[var tag]] [arg message] [opt [arg level]]] For each known tag the package creates a command with this signatur the user can then use to provide the debug narrative of the tag. The narrative [arg message] is provided as a Tcl script whose value is [cmd subst]ed in the caller's scope if and only if the current level of interest for the [arg tag] matches or exceeds the call's [arg level] of detail. This is useful, as one can place arbitrarily complex narrative in code without unnecessarily evaluating it. |
︙ | ︙ | |||
126 127 128 129 130 131 132 | This is a convenience method formatting the dictionary similarly to how the builtin command [cmd parray] does for array, and returns the resulting string. [para] This makes it suitable for use in debug messages. | < < < < < < < < < < < < < < < < < < < < < < < | 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | This is a convenience method formatting the dictionary similarly to how the builtin command [cmd parray] does for array, and returns the resulting string. [para] This makes it suitable for use in debug messages. [comment {= = == === ===== ======== ============= =====================}] [call [cmd debug] [method prefix] [arg tag] [opt [arg text]]] This method is similar to the method [method header] above, in that it defines [cmd subst]able Tcl script which provides more text for debug messages. |
︙ | ︙ |
Changes to modules/debug/debug.tcl.
︙ | ︙ | |||
17 18 19 20 21 22 23 | ## Requisites package require Tcl 8.5 namespace eval ::debug { namespace export -clear \ define on off prefix suffix header trailer \ | | < | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | ## Requisites package require Tcl 8.5 namespace eval ::debug { namespace export -clear \ define on off prefix suffix header trailer \ names 2array level setting parray pdict namespace ensemble create -subcommands {} } # # ## ### ##### ######## ############# ##################### ## API & Implementation proc ::debug::noop {args} {} |
︙ | ︙ | |||
203 204 205 206 207 208 209 | interp alias {} debug.$tag {} ::debug::noop } } return } # # ## ### ##### ######## ############# ##################### | | < < < < < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | | 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 | interp alias {} debug.$tag {} ::debug::noop } } return } # # ## ### ##### ######## ############# ##################### ## Convenience command. Format an array as multi-line message. proc ::debug::parray {a {pattern *}} { upvar 1 $a array if {![array exists array]} { error "\"$a\" isn't an array" } pdict [array get array] $pattern } proc ::debug::pdict {dict {pattern *}} { set maxl 0 set names [lsort -dict [dict keys $dict $pattern]] foreach name $names { if {[string length $name] > $maxl} { set maxl [string length $name] } } set maxl [expr {$maxl + 2}] set lines {} foreach name $names { set nameString [format %s(%s) $name] lappend lines [format "%-*s = %s" \ $maxl $nameString \ [dict get $dict $name]] } return [join $lines \n] } # # ## ### ##### ######## ############# ##################### namespace eval debug { variable detail ; # map: TAG -> level of interest variable prefix ; # map: TAG -> message prefix to use variable suffix ; # map: TAG -> message suffix to use variable fds ; # map: TAG -> handle of open channel to log to. variable header {} ; # per-line heading, subst'ed variable trailer {} ; # per-line ending, subst'ed # Notes: # - The tag '::' is reserved. "prefix" and "suffix" use it to store # the global message prefix / suffix. # - prefix and suffix are applied per message. # - header and trailer are per line. And should not generate multiple lines! } # # ## ### ##### ######## ############# ##################### ## Ready package provide debug 1.0.2 return |
Changes to modules/debug/pkgIndex.tcl.
1 | if {![package vsatisfies [package require Tcl] 8.5]} return | | | 1 2 3 4 5 | if {![package vsatisfies [package require Tcl] 8.5]} return package ifneeded debug 1.0.2 [list source [file join $dir debug.tcl]] package ifneeded debug::heartbeat 1 [list source [file join $dir heartbeat.tcl]] package ifneeded debug::timestamp 1 [list source [file join $dir timestamp.tcl]] package ifneeded debug::caller 1 [list source [file join $dir caller.tcl]] |
Changes to modules/dns/dns.tcl.
︙ | ︙ | |||
34 35 36 37 38 39 40 | package require Tcl 8.2; # tcl minimum version package require logger; # tcllib 1.3 package require uri; # tcllib 1.1 package require uri::urn; # tcllib 1.2 package require ip; # tcllib 1.7 namespace eval ::dns { | | | 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | package require Tcl 8.2; # tcl minimum version package require logger; # tcllib 1.3 package require uri; # tcllib 1.1 package require uri::urn; # tcllib 1.2 package require ip; # tcllib 1.7 namespace eval ::dns { variable version 1.3.3 variable rcsid {$Id: dns.tcl,v 1.36 2008/11/22 12:28:54 mic42 Exp $} namespace export configure resolve name address cname \ status reset wait cleanup errorcode variable options if {![info exists options]} { |
︙ | ︙ | |||
1323 1324 1325 1326 1327 1328 1329 | # dns://nameserver/target?type=A # # URI quoting to be accounted for. # catch { uri::register {dns} { | | | | | | | | | | 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 | # dns://nameserver/target?type=A # # URI quoting to be accounted for. # catch { uri::register {dns} { set escape [set [namespace parent [namespace current]]::basic::escape] set host [set [namespace parent [namespace current]]::basic::host] set hostOrPort [set [namespace parent [namespace current]]::basic::hostOrPort] set class [string map {* \\\\*} \ "class=([join [array names ::dns::classes] {|}])"] set type [string map {* \\\\*} \ "type=([join [array names ::dns::types] {|}])"] set classOrType "(?:${class}|${type})" set classOrTypeSpec "(?:${class}|${type})(?:;(?:${class}|${type}))?" set query "${host}(${classOrTypeSpec})?" variable schemepart "(//${hostOrPort}/)?(${query})" variable url "dns:$schemepart" } } namespace eval ::uri {} ;# needed for pkg_mkIndex. |
︙ | ︙ |
Changes to modules/dns/ip.tcl.
︙ | ︙ | |||
12 13 14 15 16 17 18 | # $Id: ip.tcl,v 1.14 2010/08/16 17:35:18 andreas_kupries Exp $ # @mdgen EXCLUDE: ipMoreC.tcl package require Tcl 8.2; # tcl minimum version namespace eval ip { | | | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # $Id: ip.tcl,v 1.14 2010/08/16 17:35:18 andreas_kupries Exp $ # @mdgen EXCLUDE: ipMoreC.tcl package require Tcl 8.2; # tcl minimum version namespace eval ip { variable version 1.2.1 variable rcsid {$Id: ip.tcl,v 1.14 2010/08/16 17:35:18 andreas_kupries Exp $} namespace export is version normalize equal type contract mask collapse subtract #catch {namespace ensemble create} variable IPv4Ranges if {![info exists IPv4Ranges]} { |
︙ | ︙ |
Changes to modules/dns/ip.test.
︙ | ︙ | |||
223 224 225 226 227 228 229 | 3 255.0.0.0 8 8 0xff000000 8 4 0.0.0.0 0 9 0x00000000 0 } { test ip-11.$i "maskToLength, $m" { ip::maskToLength $m } $e } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 223 224 225 226 227 228 229 230 231 232 233 234 235 236 | 3 255.0.0.0 8 8 0xff000000 8 4 0.0.0.0 0 9 0x00000000 0 } { test ip-11.$i "maskToLength, $m" { ip::maskToLength $m } $e } # ------------------------------------------------------------------------- testsuiteCleanup # Local Variables: # mode: tcl |
︙ | ︙ |
Changes to modules/dns/ipMore.tcl.
︙ | ︙ | |||
308 309 310 311 312 313 314 | # # See Also: # # End of Header proc ::ip::toInteger {ip} { binary scan [ip::Normalize4 $ip] I out | | | 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 | # # See Also: # # End of Header proc ::ip::toInteger {ip} { binary scan [ip::Normalize4 $ip] I out return $out } ##Procedure Header # Copyright (c) 2004 Cisco Systems, Inc. # # Name: # ::ip::toHex |
︙ | ︙ | |||
651 652 653 654 655 656 657 | } } if {![string is integer -strict $prefix]} { set prefix [toInteger $prefix] } if {![string is integer -strict $mask] || ($mask < 33 && $mask > 0)} { set mask [maskToInt $mask] | | > | | 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 | } } if {![string is integer -strict $prefix]} { set prefix [toInteger $prefix] } if {![string is integer -strict $mask] || ($mask < 33 && $mask > 0)} { set mask [maskToInt $mask] } set prefix [expr $prefix + ($mask ^ 0xFFffFFff) + $count ] return [format "0x%08x" $prefix] } ##Procedure Header # Copyright (c) 2004 Cisco Systems, Inc. # |
︙ | ︙ |
Changes to modules/dns/pkgIndex.tcl.
1 2 3 4 5 | # pkgIndex.tcl - # # $Id: pkgIndex.tcl,v 1.21 2010/08/16 17:35:18 andreas_kupries Exp $ if {![package vsatisfies [package provide Tcl] 8.2]} {return} | | | | 1 2 3 4 5 6 7 8 9 | # pkgIndex.tcl - # # $Id: pkgIndex.tcl,v 1.21 2010/08/16 17:35:18 andreas_kupries Exp $ if {![package vsatisfies [package provide Tcl] 8.2]} {return} package ifneeded dns 1.3.3 [list source [file join $dir dns.tcl]] package ifneeded resolv 1.0.3 [list source [file join $dir resolv.tcl]] package ifneeded ip 1.2.1 [list source [file join $dir ip.tcl]] package ifneeded spf 1.1.1 [list source [file join $dir spf.tcl]] |
Changes to modules/dns/tcllib_dns.man.
|
| < | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [manpage_begin dns n 1.3.3] [see_also resolver(5)] [keywords DNS] [keywords {domain name service}] [keywords resolver] [keywords {rfc 1034}] [keywords {rfc 1035}] [keywords {rfc 1886}] [copyright {2002, Pat Thoyts}] [moddesc {Domain Name Service}] [titledesc {Tcl Domain Name Service Client}] [category Networking] [require Tcl 8.2] [require dns [opt 1.3.3]] [description] [para] The dns package provides a Tcl only Domain Name Service client. You should refer to (1) and (2) for information about the DNS protocol or read resolver(3) to find out how the C library resolves domain names. |
︙ | ︙ |
Changes to modules/dns/tcllib_ip.man.
|
| < | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [manpage_begin tcllib_ip n 1.2.1] [see_also inet(3)] [see_also ip(7)] [see_also ipv6(7)] [keywords {internet address}] [keywords ip] [keywords ipv4] [keywords ipv6] [keywords {rfc 3513}] [copyright {2004, Pat Thoyts}] [copyright {2005 Aamer Akhter <[email protected]>}] [moddesc {Domain Name Service}] [titledesc {IPv4 and IPv6 address manipulation}] [category Networking] [require Tcl 8.2] [require ip [opt 1.2.1]] [description] [para] This package provides a set of commands to help in parsing, displaying and comparing internet addresses. The package can handle both IPv4 (1) and IPv6 (2) address types. |
︙ | ︙ |
Changes to modules/doctools/checker.tcl.
1 2 3 4 5 6 | # -*- tcl -*- # checker.tcl # # Code used inside of a checker interpreter to ensure correct usage of # doctools formatting commands. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # -*- tcl -*- # checker.tcl # # Code used inside of a checker interpreter to ensure correct usage of # doctools formatting commands. # # Copyright (c) 2003-2010 Andreas Kupries <[email protected]> # L10N package require msgcat proc ::msgcat::mcunknown {locale code} { return "unknown error code \"$code\" (for locale $locale)" |
︙ | ︙ | |||
248 249 250 251 252 253 254 | # Variable handling ... proc vset {var args} { switch -exact -- [llength $args] { 0 { # Retrieve contents of variable VAR upvar #0 __$var data | < < < | 248 249 250 251 252 253 254 255 256 257 258 259 260 261 | # Variable handling ... proc vset {var args} { switch -exact -- [llength $args] { 0 { # Retrieve contents of variable VAR upvar #0 __$var data return $data } 1 { # Set contents of variable VAR global __$var set __$var [lindex $args 0] return "" ; # Empty string ! Nothing for output. |
︙ | ︙ |
Changes to modules/doctools/doctools.man.
1 | [comment {-*- tcl -*- doctools manpage}] | < | | | | 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 | [comment {-*- tcl -*- doctools manpage}] [manpage_begin doctools n 1.4.16] [see_also doctools_intro] [see_also doctools_lang_cmdref] [see_also doctools_lang_intro] [see_also doctools_lang_syntax] [see_also doctools_plugin_apiref] [keywords conversion] [keywords documentation] [keywords HTML] [keywords manpage] [keywords markup] [keywords nroff] [keywords TMML] [copyright {2003-2013 Andreas Kupries <[email protected]>}] [moddesc {Documentation tools}] [titledesc {doctools - Processing documents}] [category {Documentation tools}] [require Tcl 8.2] [require doctools [opt 1.4.16]] [description] This package provides a class for the creation of objects able to process and convert text written in the [term doctools] markup language into any output format X for which a [term {formatting engine}] is available. |
︙ | ︙ |
Changes to modules/doctools/doctools.tcl.
1 2 3 4 | # doctools.tcl -- # # Implementation of doctools objects for Tcl. # | | > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # doctools.tcl -- # # Implementation of doctools objects for Tcl. # # Copyright (c) 2003-2013 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: doctools.tcl,v 1.45 2011/02/23 22:11:59 andreas_kupries Exp $ package require Tcl 8.2 package require textutil::expander # @mdgen OWNER: api.tcl # @mdgen OWNER: checker.tcl # @mdgen OWNER: mpformats/*.tcl |
︙ | ︙ | |||
489 490 491 492 493 494 495 | if {!$ex_ok} {SetupExpander $name} if {$chk_ip == ""} {SetupChecker $name} # assert (format_ip != "") set warnings [list] if {[catch {$format_ip eval fmt_initialize}]} { | < | < | | < < | < < | < | < | | 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 | if {!$ex_ok} {SetupExpander $name} if {$chk_ip == ""} {SetupChecker $name} # assert (format_ip != "") set warnings [list] if {[catch {$format_ip eval fmt_initialize}]} { return -code error "Could not initialize engine" } set result "" for { set p $passes ; set n 1 } { $p > 0 } { incr p -1 ; incr n } { if {[catch {$format_ip eval [list fmt_setup $n]}]} { catch {$format_ip eval fmt_shutdown} return -code error "Could not initialize pass $n of engine" } $chk_ip eval ck_initialize $n if {[catch {set result [$expander expand $text]} msg]} { catch {$format_ip eval fmt_shutdown} # Filter for checker errors and reduce them to the essential message. if {![regexp {^Error in} $msg]} {return -code error $msg} #set msg [join [lrange [split $msg \n] 2 end]] if {![regexp {^--> \(FmtError\) } $msg]} {return -code error "Doctools $msg"} set msg [lindex [split $msg \n] 0] regsub {^--> \(FmtError\) } $msg {} msg return -code error $msg } $chk_ip eval ck_complete } if {[catch {set result [$format_ip eval [list fmt_postprocess $result]]}]} { return -code error "Unable to post process final result" } if {[catch {$format_ip eval fmt_shutdown}]} { return -code error "Could not shut engine down" } return $result } # ::doctools::_search -- # |
︙ | ︙ | |||
1352 1353 1354 1355 1356 1357 1358 | # => FOO/mpformats #catch {search [file join $here lib doctools mpformats]} #catch {search [file join [file dirname $here] lib doctools mpformats]} catch {search [file join $here mpformats]} } | | | 1346 1347 1348 1349 1350 1351 1352 1353 | # => FOO/mpformats #catch {search [file join $here lib doctools mpformats]} #catch {search [file join [file dirname $here] lib doctools mpformats]} catch {search [file join $here mpformats]} } package provide doctools 1.4.17 |
Changes to modules/doctools/pkgIndex.tcl.
1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} | | | 1 2 3 4 5 6 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} package ifneeded doctools 1.4.17 [list source [file join $dir doctools.tcl]] package ifneeded doctools::toc 1.1.3 [list source [file join $dir doctoc.tcl]] package ifneeded doctools::idx 1.0.4 [list source [file join $dir docidx.tcl]] package ifneeded doctools::cvs 1 [list source [file join $dir cvs.tcl]] package ifneeded doctools::changelog 1.1 [list source [file join $dir changelog.tcl]] |
Changes to modules/dtplite/dtplite.tcl.
1 2 | # -*- tcl -*- \ # @@ Meta Begin | | | | 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 | # -*- tcl -*- \ # @@ Meta Begin # Application dtplite 1.1 # Meta platform tcl # Meta summary Lightweight DocTools Processor # Meta description This application is a simple processor # Meta description for documents written in the doctools # Meta description markup language. It covers the most # Meta description common use cases, but is not as # Meta description configurable as its big brother dtp. # Meta category Processing doctools documents # Meta subject doctools doctoc docidx # Meta require {doctools 1} # Meta require {doctools::idx 1} # Meta require {doctools::toc 1} # Meta require fileutil # Meta require textutil::repeat # Meta author Andreas Kupries # Meta license BSD # @@ Meta End package provide dtplite 1.1 # dtp lite - Lightweight DocTools Processor # ======== = ============================== # # Use cases # --------- # |
︙ | ︙ | |||
634 635 636 637 638 639 640 | proc ::dtplite::Usage {} { global argv0 Print stderr "$argv0 wrong#args, expected:\ -o outputpath ?-merge? ?-ext ext?\ ?-style file? ?-header file?\ ?-footer file? ?-nav label url?...\ format inputpath" | | | | 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 | proc ::dtplite::Usage {} { global argv0 Print stderr "$argv0 wrong#args, expected:\ -o outputpath ?-merge? ?-ext ext?\ ?-style file? ?-header file?\ ?-footer file? ?-nav label url?...\ format inputpath" return -code error -errorcode STOP {} } proc ::dtplite::ArgError {text} { global argv0 Print stderr "$argv0: $text" return -code error -errorcode STOP {} } proc ::dtplite::Print {args} { variable print set cmd [concat $print $args] return [uplevel 1 $cmd] } |
︙ | ︙ |
Changes to modules/dtplite/pkgIndex.tcl.
1 2 3 4 | if {![package vsatisfies [package provide Tcl] 8.2]} { # PRAGMA: returnok return } | | | 1 2 3 4 5 | if {![package vsatisfies [package provide Tcl] 8.2]} { # PRAGMA: returnok return } package ifneeded dtplite 1.1 [list source [file join $dir dtplite.tcl]] |
Changes to modules/dtplite/pkg_dtplite.man.
1 | [comment {-*- tcl -*- doctools manpage}] | < | < | 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 | [comment {-*- tcl -*- doctools manpage}] [manpage_begin dtplite n 1.1] [see_also {docidx introduction}] [see_also {doctoc introduction}] [see_also {doctools introduction}] [keywords conversion] [keywords docidx] [keywords doctoc] [keywords doctools] [keywords HTML] [keywords manpage] [keywords markup] [keywords nroff] [keywords TMML] [copyright {2004-2013 Andreas Kupries <[email protected]>}] [titledesc {Lightweight DocTools Markup Processor}] [moddesc {Documentation toolbox}] [category {Documentation tools}] [description] [para] The application described by this document, [syscmd dtplite], is the successor to the extremely simple [syscmd mpexpand]. Influenced in its functionality by the [syscmd dtp] doctools processor it is much more powerful than [syscmd mpexpand], yet still as easy to use; definitely |
︙ | ︙ |
Changes to modules/ftp/ftp.man.
1 | [comment {-*- tcl -*- doctools manpage}] | < | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | [comment {-*- tcl -*- doctools manpage}] [manpage_begin ftp n 2.4.11] [see_also ftpd] [see_also mime] [see_also pop3] [see_also smtp] [keywords ftp] [keywords internet] [keywords net] [keywords {rfc 959}] [moddesc {ftp client}] [titledesc {Client-side tcl implementation of the ftp protocol}] [category Networking] [require Tcl 8.2] [require ftp [opt 2.4.11]] [description] [para] The ftp package provides the client side of the ftp protocol as specified in RFC 959 ([uri http://www.rfc-editor.org/rfc/rfc959.txt]). The package implements both active (default) and passive ftp sessions. |
︙ | ︙ |
Changes to modules/ftp/ftp.tcl.
︙ | ︙ | |||
114 115 116 117 118 119 120 | # Handle timeouts # # Arguments: # - # proc ::ftp::Timeout {s} { upvar ::ftp::ftp$s ftp | < < < | 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | # Handle timeouts # # Arguments: # - # proc ::ftp::Timeout {s} { upvar ::ftp::ftp$s ftp after cancel $ftp(Wait) set ftp(state.control) 1 DisplayMsg "" "Timeout of control connection after $ftp(Timeout) sec.!" error Command $ftp(Command) timeout return |
︙ | ︙ | |||
143 144 145 146 147 148 149 | # # Arguments: # - # proc ::ftp::WaitOrTimeout {s} { upvar ::ftp::ftp$s ftp | < < < < < < < < < < < < < < < < < < < | 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 | # # Arguments: # - # proc ::ftp::WaitOrTimeout {s} { upvar ::ftp::ftp$s ftp set retvar 1 if { ![string length $ftp(Command)] && [info exists ftp(state.control)] } { set ftp(Wait) [after [expr {$ftp(Timeout) * 1000}] [list [namespace current]::Timeout $s]] vwait ::ftp::ftp${s}(state.control) set retvar $ftp(state.control) } if {$ftp(Error) != ""} { set errmsg $ftp(Error) set ftp(Error) "" DisplayMsg $s $errmsg error } return $retvar } ############################################################################# # # WaitComplete -- # # Transaction completed. # Cancel execution of the delayed command declared in procedure WaitOrTimeout. # # Arguments: # value - result of the transaction # 0 ... Error # 1 ... OK # proc ::ftp::WaitComplete {s value} { upvar ::ftp::ftp$s ftp if {![info exists ftp(Command)]} { set ftp(state.control) $value return $value } if { ![string length $ftp(Command)] && [info exists ftp(state.data)] } { vwait ::ftp::ftp${s}(state.data) } catch {after cancel $ftp(Wait)} set ftp(state.control) $value return $ftp(state.control) } ############################################################################# # # PutsCtrlSocket -- # |
︙ | ︙ | |||
253 254 255 256 257 258 259 | # the socket channel identifier. proc ::ftp::StateHandler {s {sock ""}} { upvar ::ftp::ftp$s ftp variable DEBUG variable VERBOSE | < < | 231 232 233 234 235 236 237 238 239 240 241 242 243 244 | # the socket channel identifier. proc ::ftp::StateHandler {s {sock ""}} { upvar ::ftp::ftp$s ftp variable DEBUG variable VERBOSE # disable fileevent on control socket, enable it at the and of the state machine # fileevent $ftp(CtrlSock) readable {} # there is no socket (and no channel to get) if called from a procedure set rc " " set msgtext {} |
︙ | ︙ | |||
328 329 330 331 332 333 334 | if {![string equal $ftp(State) "quit_sent"]} { set ftp(Error) "Service not available!" } CloseDataConn $s WaitComplete $s 0 Command $ftp(Command) terminated catch {unset ftp(State)} | < < < | < | < < | 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 | if {![string equal $ftp(State) "quit_sent"]} { set ftp(Error) "Service not available!" } CloseDataConn $s WaitComplete $s 0 Command $ftp(Command) terminated catch {unset ftp(State)} return } else { # Fix SF bug #466746: Incomplete line, do nothing. return } } if { $DEBUG } { DisplayMsg $s "-> rc=\"$rc\"\n-> msgtext=\"$msgtext\"\n-> state=\"$ftp(State)\"" } # In asynchronous mode, should we move on to the next state? set nextState 0 # system status replay if { [string equal $rc "211"] } { return } # use only the first digit regexp -- "^\[0-9\]?" $rc rc switch -exact -- $ftp(State) { user { switch -exact -- $rc { 2 { PutsCtrlSock $s "USER $ftp(User)" set ftp(State) passwd Command $ftp(Command) user |
︙ | ︙ | |||
564 565 566 567 568 569 570 | } } } list_close { switch -exact -- $rc { 1 {} 2 { | < < < < | 534 535 536 537 538 539 540 541 542 543 544 545 546 547 | } } } list_close { switch -exact -- $rc { 1 {} 2 { set nextState 1 if {[info exists ftp(NextState)] && ![llength $ftp(NextState)]} { Command $ftp(Command) list [ListPostProcess $ftp(List)] } else { set complete_with 1 } } |
︙ | ︙ | |||
814 815 816 817 818 819 820 | } } } put_close { switch -exact -- $rc { 1 { # Keep going | < < < < < | 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 | } } } put_close { switch -exact -- $rc { 1 { # Keep going return } 2 { set complete_with 1 set nextState 1 Command $ftp(Command) put $ftp(RemoteFilename) } default { DisplayMsg $s "rc = $rc msgtext = \"$msgtext\"" set errmsg "Error storing file \"$ftp(RemoteFilename)\" due to \"$msgtext\"" |
︙ | ︙ | |||
891 892 893 894 895 896 897 | Command $ftp(Command) error $errmsg } } } append_close { switch -exact -- $rc { 2 { | < < < < | 852 853 854 855 856 857 858 859 860 861 862 863 864 865 | Command $ftp(Command) error $errmsg } } } append_close { switch -exact -- $rc { 2 { set complete_with 1 set nextState 1 Command $ftp(Command) append $ftp(RemoteFilename) } default { set errmsg "Error storing file \"$ftp(RemoteFilename)\"!" set complete_with 0 |
︙ | ︙ | |||
956 957 958 959 960 961 962 | set ftp(State) reget_sent } default { if { [string equal $ftp(Mode) "passive"] } { set errmsg "Error setting PASSIVE mode!" } else { set errmsg "Error setting port!" | | | 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 | set ftp(State) reget_sent } default { if { [string equal $ftp(Mode) "passive"] } { set errmsg "Error setting PASSIVE mode!" } else { set errmsg "Error setting port!" } set complete_with 0 Command $ftp(Command) error $errmsg } } } reget_sent { switch -exact -- $rc { |
︙ | ︙ | |||
981 982 983 984 985 986 987 | Command $ftp(Command) error $errmsg } } } reget_close { switch -exact -- $rc { 2 { | < < < < | 938 939 940 941 942 943 944 945 946 947 948 949 950 951 | Command $ftp(Command) error $errmsg } } } reget_close { switch -exact -- $rc { 2 { set complete_with 1 set nextState 1 Command $ftp(Command) get $ftp(RemoteFilename):$ftp(From):$ftp(To) unset ftp(From) ftp(To) } default { set errmsg "Error retrieving file \"$ftp(RemoteFilename)\"!" |
︙ | ︙ | |||
1055 1056 1057 1058 1059 1060 1061 | Command $ftp(Command) error $errmsg } } } get_close { switch -exact -- $rc { 2 { | < < < < | 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 | Command $ftp(Command) error $errmsg } } } get_close { switch -exact -- $rc { 2 { set complete_with 1 set nextState 1 if {$ftp(inline)} { upvar #0 $ftp(get:varname) returnData set returnData $ftp(GetData) Command $ftp(Command) get $ftp(GetData) } else { |
︙ | ︙ | |||
1081 1082 1083 1084 1085 1086 1087 | } } default { error "Unknown state \"$ftp(State)\"" } } | < < < < < < < < < < < | < < < < | 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 | } } default { error "Unknown state \"$ftp(State)\"" } } # finish waiting if { [info exists complete_with] } { WaitComplete $s $complete_with } # display control channel message if { [info exists buffer] } { if { $VERBOSE } { foreach line [split $buffer \n] { DisplayMsg $s "C: $line" control } } } # Rather than throwing an error in the event loop, set the ftp(Error) # variable to hold the message so that it can later be thrown after the # the StateHandler has completed. if { [info exists errmsg] } { set ftp(Error) $errmsg } # If operating asynchronously, commence next state if {$nextState && [info exists ftp(NextState)] && [llength $ftp(NextState)]} { # Pop the head of the NextState queue set ftp(State) [lindex $ftp(NextState) 0] set ftp(NextState) [lreplace $ftp(NextState) 0 0] StateHandler $s } # enable fileevent on control socket again #fileevent $ftp(CtrlSock) readable [list ::ftp::StateHandler $ftp(CtrlSock)] } ############################################################################# # # Type -- # # REPRESENTATION TYPE - Sets the file transfer type to ascii or binary. |
︙ | ︙ | |||
1199 1200 1201 1202 1203 1204 1205 | # Arguments: # dir - directory to list # # Returns: # sorted list of files or {} if listing fails proc ::ftp::NList {s { dir ""}} { | < < < < < < < < < < < < < < < < | 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 | # Arguments: # dir - directory to list # # Returns: # sorted list of files or {} if listing fails proc ::ftp::NList {s { dir ""}} { upvar ::ftp::ftp$s ftp if { ![info exists ftp(State)] } { if { ![string is digit -strict $s] } { DisplayMsg $s "Bad connection name \"$s\"" error } else { DisplayMsg $s "Not connected!" error } return {} } set ftp(List) {} if { $dir == "" } { set ftp(Dir) "" } else { set ftp(Dir) " $dir" } # save current type and force ascii mode set old_type $ftp(Type) if { $ftp(Type) != "ascii" } { if {[string length $ftp(Command)]} { set ftp(NextState) [list nlist_$ftp(Mode) type_change list_last] set ftp(type:changeto) $old_type Type $s ascii return {} } Type $s ascii } set ftp(State) nlist_$ftp(Mode) StateHandler $s # wait for synchronization set rc [WaitOrTimeout $s] # restore old type if { [Type $s] != $old_type } { Type $s $old_type } unset ftp(Dir) if { $rc } { return [lsort [split [string trim $ftp(List) \n] \n]] } else { CloseDataConn $s return {} } } ############################################################################# # # List -- # # LIST - This command causes a list to be sent from the server |
︙ | ︙ | |||
2835 2836 2837 2838 2839 2840 2841 | # from the caller. Closing it is not our responsibility. if {[info exists ftp(get:channel)]} { catch {unset ftp(get:channel)} catch {unset ftp(DestCI)} } | < | 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 | # from the caller. Closing it is not our responsibility. if {[info exists ftp(get:channel)]} { catch {unset ftp(get:channel)} catch {unset ftp(DestCI)} } catch {after cancel $ftp(Wait)} catch {fileevent $ftp(DataSock) readable {}} catch {close $ftp(DataSock); unset ftp(DataSock)} catch {close $ftp(DestCI); unset ftp(DestCI)} catch {close $ftp(SourceCI); unset ftp(SourceCI)} catch {close $ftp(DummySock); unset ftp(DummySock)} return |
︙ | ︙ | |||
2863 2864 2865 2866 2867 2868 2869 | # of the client's host, # port - the client's port number proc ::ftp::InitDataConn {s sock addr port} { upvar ::ftp::ftp$s ftp variable VERBOSE | < < < < < | 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 | # of the client's host, # port - the client's port number proc ::ftp::InitDataConn {s sock addr port} { upvar ::ftp::ftp$s ftp variable VERBOSE # If the new channel is accepted, the dummy channel will be closed catch {close $ftp(DummySock); unset ftp(DummySock)} set ftp(state.data) 0 # Configure translation and blocking modes |
︙ | ︙ | |||
2923 2924 2925 2926 2927 2928 2929 | } default { error "Unknown state \"$ftp(State)\"" } } if { $VERBOSE } { | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 | } default { error "Unknown state \"$ftp(State)\"" } } if { $VERBOSE } { DisplayMsg $s "D: Connection from $addr:$port" data } return } ############################################################################# # # OpenActiveConn -- # |
︙ | ︙ | |||
3018 3019 3020 3021 3022 3023 3024 | set p [lindex [fconfigure $ftp(DummySock) -sockname] 2] if { $VERBOSE } { DisplayMsg $s "D: Port is $p" data } set ftp(DataPort) "[expr {$p / 256}],[expr {$p % 256}]" | < < | 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 | set p [lindex [fconfigure $ftp(DummySock) -sockname] 2] if { $VERBOSE } { DisplayMsg $s "D: Port is $p" data } set ftp(DataPort) "[expr {$p / 256}],[expr {$p % 256}]" return 1 } ############################################################################# # # OpenPassiveConn -- # |
︙ | ︙ | |||
3152 3153 3154 3155 3156 3157 3158 | set ::ftp::VERBOSE 1 set ::ftp::DEBUG 0 } # ================================================================== # At last, everything is fine, we can provide the package. | | | 3013 3014 3015 3016 3017 3018 3019 3020 | set ::ftp::VERBOSE 1 set ::ftp::DEBUG 0 } # ================================================================== # At last, everything is fine, we can provide the package. package provide ftp [lindex {Revision: 2.4.12} 1] |
Changes to modules/ftp/pkgIndex.tcl.
1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} | | | 1 2 3 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} package ifneeded ftp 2.4.12 [list source [file join $dir ftp.tcl]] package ifneeded ftp::geturl 0.2.1 [list source [file join $dir ftp_geturl.tcl]] |
Changes to modules/html/html.man.
1 | [comment {-*- tcl -*- doctools manpage}] | < | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | [comment {-*- tcl -*- doctools manpage}] [manpage_begin html n 1.4] [see_also htmlparse] [see_also ncgi] [keywords checkbox] [keywords checkbutton] [keywords form] [keywords html] [keywords radiobutton] [keywords table] [moddesc {HTML Generation}] [titledesc {Procedures to generate HTML structures}] [category {CGI programming}] [require Tcl 8.2] [require html [opt 1.4]] [description] [para] The package [package html] provides commands that generate HTML. These commands typically return an HTML string as their result. In particular, they do not output their result to [const stdout]. |
︙ | ︙ | |||
59 60 61 62 63 64 65 | [arg list] should contain an alternating list of labels and values. This uses [cmd ::html::checkbox]. All the [term checkbox] buttons share the same [arg key] for their name. The [arg sep] is text used to separate the elements. [call [cmd ::html::checkValue] [arg name] [opt [arg value]]] | | | 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | [arg list] should contain an alternating list of labels and values. This uses [cmd ::html::checkbox]. All the [term checkbox] buttons share the same [arg key] for their name. The [arg sep] is text used to separate the elements. [call [cmd ::html::checkValue] [arg name] [opt [arg value]]] Generate the "name=[arg name] value=[arg value] for a [term checkbox] form element. If the CGI variable [arg name] has the value [arg value], then SELECTED is added to the return value. [arg value] defaults to "1". [call [cmd ::html::closeTag]] Pop a tag off the stack created by [cmd ::html::openTag] and generate |
︙ | ︙ | |||
242 243 244 245 246 247 248 | [emph {Side effect only}]. Call this before [cmd ::html::head] to define a [term meta] tag for the page. The [arg args] is a Tcl-style name, value list that is used for the name= and value= parameters for the [term meta] tag. The [term meta] tag is included in the result of [cmd ::html::head]. | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 241 242 243 244 245 246 247 248 249 250 251 252 253 254 | [emph {Side effect only}]. Call this before [cmd ::html::head] to define a [term meta] tag for the page. The [arg args] is a Tcl-style name, value list that is used for the name= and value= parameters for the [term meta] tag. The [term meta] tag is included in the result of [cmd ::html::head]. [call [cmd ::html::minorList] [arg list] [opt [arg ordered]]] Generate an ordered or unordered list of links. The [arg list] is a Tcl-style name, value list of labels and urls for the links. [arg ordered] is a boolean used to choose between an ordered or unordered list. It defaults to [const false]. |
︙ | ︙ | |||
348 349 350 351 352 353 354 | Generate a set of [term input] tags of type [term radio] and an associated text label. All the radio buttons share the same [arg key] for their name. The [arg sep] is text used to separate the elements. The [arg list] is a Tcl-style label, value list. [call [cmd ::html::radioValue] [arg {name value}]] | | | 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 | Generate a set of [term input] tags of type [term radio] and an associated text label. All the radio buttons share the same [arg key] for their name. The [arg sep] is text used to separate the elements. The [arg list] is a Tcl-style label, value list. [call [cmd ::html::radioValue] [arg {name value}]] Generate the "name=[arg name] value=[arg value] for a [term radio] form element. If the CGI variable [arg name] has the value [arg value], then SELECTED is added to the return value. [call [cmd ::html::refresh] [arg {seconds url}]] Set up a refresh [term meta] tag. Call this before [cmd ::html::head] and the HEAD section will contain a [term meta] tag that causes the document to |
︙ | ︙ | |||
443 444 445 446 447 448 449 | [call [cmd ::html::while] [arg {test body}]] This procedure is similar to the built-in Tcl [cmd while] control structure. Rather than evaluating the body, it returns the subst'ed [arg body]. Each iteration of the loop causes another string to be concatenated to the result value. | < < < < < < < < < < < < < < < < < < < < < < | 397 398 399 400 401 402 403 404 405 406 407 408 | [call [cmd ::html::while] [arg {test body}]] This procedure is similar to the built-in Tcl [cmd while] control structure. Rather than evaluating the body, it returns the subst'ed [arg body]. Each iteration of the loop causes another string to be concatenated to the result value. [list_end] [vset CATEGORY html] [include ../doctools2base/include/feedback.inc] [manpage_end] |
Changes to modules/html/html.tcl.
︙ | ︙ | |||
11 12 13 14 15 16 17 | # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # Originally by Brent Welch, with help from Dan Kuchler and Melissa Chawla package require Tcl 8.2 package require ncgi | | | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # Originally by Brent Welch, with help from Dan Kuchler and Melissa Chawla package require Tcl 8.2 package require ncgi package provide html 1.4 namespace eval ::html { # State about the current page variable page |
︙ | ︙ | |||
506 507 508 509 510 511 512 | proc ::html::refresh {content {url {}}} { variable page ::set html "<meta http-equiv=\"Refresh\" content=\"$content" ::if {[string length $url]} { append html "; url=$url" } | | | 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 | proc ::html::refresh {content {url {}}} { variable page ::set html "<meta http-equiv=\"Refresh\" content=\"$content" ::if {[string length $url]} { append html "; url=$url" } append html "\">\n" lappend page(meta) $html return "" } # ::html::headTag # # Embed a tag into the HEAD section |
︙ | ︙ | |||
1401 1402 1403 1404 1405 1406 1407 | # Arguments: # s The near-HTML text # # Results: # The text with <br> in place of line-endings. proc ::html::nl2br {s} { | | | | < | | 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 | # Arguments: # s The near-HTML text # # Results: # The text with <br> in place of line-endings. proc ::html::nl2br {s} { return [string map [list \n\r <br> \n <br> \r <br>] $s] } # ::html::doctype # Create the DOCTYPE tag and tuck it away for usage # # Arguments: # arg The DOCTYPE you want to declare # # Results: # HTML for the doctype section proc ::html::doctype {arg} { variable doctypes set code [string toupper $arg] if {![info exists doctypes($code)]} { return -code error "Unknown doctype \"$arg\"" } return $doctypes($code) } namespace eval ::html { variable doctypes array set doctypes { |
︙ | ︙ | |||
1448 1449 1450 1451 1452 1453 1454 | # ::html::css # Create the text/css tag and tuck it away for usage # # Arguments: # href The location of the css file to include the filename and path # # Results: | | > | < < < < < < < < < < < < < < < | > | < < < < < < < < < < < < < < < | 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 | # ::html::css # Create the text/css tag and tuck it away for usage # # Arguments: # href The location of the css file to include the filename and path # # Results: # HTML for the section proc ::html::css {href} { variable page set page(css) \ "<link rel=\"stylesheet\" type=\"text/css\" href=\"[quoteFormValue $href]\">\n" return } # ::html::js # Create the text/javascript tag and tuck it away for usage # # Arguments: # href The location of the javascript file to include the filename and path # # Results: # HTML for the section proc ::html::js {href} { variable page set page(js) \ "<script language=\"javascript\" type=\"text/javascript\" src=\"[quoteFormValue $href]\"></script>\n" return } |
Changes to modules/html/html.test.
︙ | ︙ | |||
13 14 15 16 17 18 19 | # ------------------------------------------------------------------------- source [file join \ [file dirname [file dirname [file join [pwd] [info script]]]] \ devtools testutilities.tcl] | | | | < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 | # ------------------------------------------------------------------------- source [file join \ [file dirname [file dirname [file join [pwd] [info script]]]] \ devtools testutilities.tcl] testsNeedTcl 8.2 testsNeedTcltest 1.0 testing { useLocal html.tcl html } # ------------------------------------------------------------------------- test html-1.1 {html::init} { html::init list [array exists html::defaults] \ [array size html::defaults] \ [info exists html::page] } {1 0 0} test html-1.2 {html::init} { html::init { font.face arial body.bgcolor white body.text black } lsort [array names html::defaults] } {body.bgcolor body.text font.face} test html-1.3 {html::init} { catch {html::init wrong num args} } 1 test html-1.4 {html::init} { catch {html::init {wrong num args}} } 1 test html-2.1 {html::head} { catch {html::head} } 1 test html-2.2 {html::head} { html::head "The Title" } "<html><head>\n\t<title>The Title</title>\n</head>\n" test html-2.3 {html::head} { html::description "The Description" html::keywords key word html::author "Cathy Coder" html::meta metakey metavalue html::head "The Title" } {<html><head> <title>The Title</title> <!-- Cathy Coder --> <meta name="description" content="The Description"> <meta name="keywords" content="key, word"> <meta name="metakey" content="metavalue"> </head> } test html-3.1 {html::title} { catch html::title } 1 test html-3.2 {html::title} { html::title "blah blah" } "<title>blah blah</title>\n" test html-4.1 {html::getTitle} { html::init html::getTitle } "" test html-4.2 {html::getTitle} { html::init html::title "blah blah" html::getTitle } {blah blah} test html-5.1 {html::meta} { html::init html::meta one two } {} test html-5.2 {html::meta} { |
︙ | ︙ | |||
513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 | test html-26.4 {html::refresh} { html::init html::refresh 4 html::head title } {<html><head> <title>title</title> <meta http-equiv="Refresh" content="4"> </head> } test html-26.5 {html::refresh} { html::init html::refresh 9 http://www.scriptics.com html::head title } {<html><head> <title>title</title> <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> </head> } test html-27.1 {html::foreach--1 var, 1 iteration} { html::foreach x {a} {<td>$x</td>} } {<td>a</td>} | > > | 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 | test html-26.4 {html::refresh} { html::init html::refresh 4 html::head title } {<html><head> <title>title</title> <meta http-equiv="Refresh" content="4"> </head> } test html-26.5 {html::refresh} { html::init html::refresh 9 http://www.scriptics.com html::head title } {<html><head> <title>title</title> <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> </head> } test html-27.1 {html::foreach--1 var, 1 iteration} { html::foreach x {a} {<td>$x</td>} } {<td>a</td>} |
︙ | ︙ | |||
789 790 791 792 793 794 795 | } {{} 1} test html-32.1 {single argument} { set x 0 set result [html::eval {set x [format 22]}] list $result $x } {{} 22} | < < < | > | > | < | | < | < < < | < < < | < < < | < < < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | < | | < < < < < < < < < < < < < | < < < < < | < < < < < < < | < < < | < | < < < | < < < < < < < | 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 | } {{} 1} test html-32.1 {single argument} { set x 0 set result [html::eval {set x [format 22]}] list $result $x } {{} 22} test html-32.2 {multiple arguments} { set a {$b} set b xyzzy set x 0 set result [html::eval {set x [eval format $a]}] list $result $x } {{} xyzzy} test html-32.3 {single argument} { set x [list] set y 1 set result [html::eval lappend x a b c d {$y} e f g] list $result $x } {{} {a b c d 1 e f g}} test html-32.4 {error: not enough arguments} {catch html::eval} 1 test html-32.5 {error: not enough arguments} { catch html::eval msg set msg } {wrong # args: should be "uplevel ?level? command ?arg ...?"} test html-32.6 {error in eval'ed command} { catch {html::eval {error "test error"}} } 1 test html-32.7 {error in eval'ed command} { catch {html::eval {error "test error"}} msg set msg } {test error} test html-33.0 {html::font} { html::font } {} test html-33.1 {html::font} { html::font size=18 } {<font size=18>} test html-34.0 {html::nl2br} { html::nl2br "a\n\rb\nc\rd" } {a<br>b<br>c<br>d} testsuiteCleanup |
Changes to modules/html/pkgIndex.tcl.
1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} | | | 1 2 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} package ifneeded html 1.4 [list source [file join $dir html.tcl]] |
Changes to modules/json/json.bench.
︙ | ︙ | |||
87 88 89 90 91 92 93 | bench_puts "=== === === === === ===" bench_puts "=== === === $impl ===" bench_puts "=== === === === === ===" bench_puts {=== test-data =========} | | | | 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 | bench_puts "=== === === === === ===" bench_puts "=== === === $impl ===" bench_puts "=== === === === === ===" bench_puts {=== test-data =========} foreach f [glob -nocomplain -directory $self/test-data *.json] { set in [cat $f] bench -desc "parse [file rootname [file tail $f]] ($impl)" -body { json::json2dict $in } bench -desc "validate [file rootname [file tail $f]] ($impl)" -body { json::validate $in } } foreach f [glob -nocomplain -directory $self/test-data *.bench] { set in [cat $f] bench -desc "parse [file rootname [file tail $f]] ($impl)" -body { json::json2dict $in } bench -desc "validate [file rootname [file tail $f]] ($impl)" -body { |
︙ | ︙ |
Changes to modules/json/json.test.
︙ | ︙ | |||
14 15 16 17 18 19 20 | [file dirname [file dirname [file join [pwd] [info script]]]] \ devtools testutilities.tcl] testsNeedTcl [expr {[catch {package require dict}] ? "8.5" : "8.4"}] testsNeedTcltest 2.0 support { | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | [file dirname [file dirname [file join [pwd] [info script]]]] \ devtools testutilities.tcl] testsNeedTcl [expr {[catch {package require dict}] ? "8.5" : "8.4"}] testsNeedTcltest 2.0 support { useLocalFile test_support.tcl } testing { useAccel [useTcllibC] json/json.tcl json TestAccelInit json } |
︙ | ︙ |
Changes to modules/json/json_write.man.
1 | [comment {-*- tcl -*- doctools manpage}] | < | | | 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 json::write n 1.0.2] [keywords {data exchange}] [keywords {exchange format}] [keywords javascript] [keywords json] [copyright {2009-2013 Andreas Kupries <[email protected]>}] [moddesc {JSON}] [titledesc {JSON generation}] [category {CGI programming}] [require Tcl 8.5] [require json::write [opt 1.0.2]] [description] [para] The [package json::write] package provides a simple Tcl-only library for generation of text in the JSON [uri http://www.json.org/] data exchange format as specified in RFC 4627 [uri http://www.ietf.org/rfc/rfc4627.txt]. |
︙ | ︙ |
Changes to modules/json/json_write.tcl.
︙ | ︙ | |||
171 172 173 174 175 176 177 | # 1 1 | Indented + vertically aligned keys # - - + --------------------- variable indented 1 variable aligned 1 variable quotes \ | | < < < < < < < < < < < < < < < | | 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | # 1 1 | Indented + vertically aligned keys # - - + --------------------- variable indented 1 variable aligned 1 variable quotes \ [list "\"" "\\\"" \\ \\\\ \b \\b \f \\f \n \\n \r \\r \t \\t] } # ### ### ### ######### ######### ######### ## Ready package provide json::write 1.0.2 return |
Changes to modules/json/json_write.test.
︙ | ︙ | |||
99 100 101 102 103 104 105 | test json-write-2.4 {argument errors} -body { json::write object A } -returnCodes 1 -result {wrong # args, expected an even number of arguments} # ------------------------------------------------------------------------- | | < | 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | test json-write-2.4 {argument errors} -body { json::write object A } -returnCodes 1 -result {wrong # args, expected an even number of arguments} # ------------------------------------------------------------------------- test json-write-3.0 {indented, aligned} -body { json::write indented 1 json::write aligned 1 gen $data } -result {{ "grammar" : { "rules" : { "A" : { "is" : "/ {t +} {t -}", "mode" : "value" |
︙ | ︙ | |||
144 145 146 147 148 149 150 | "mode" : "value" } }, "start" : "n Expression" } }} | | < | 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | "mode" : "value" } }, "start" : "n Expression" } }} test json-write-3.1 {indented, !aligned} -body { json::write indented 1 json::write aligned 0 gen $data } -result {{ "grammar" : { "rules" : { "A" : { "is" : "/ {t +} {t -}", "mode" : "value" |
︙ | ︙ | |||
189 190 191 192 193 194 195 | "mode" : "value" } }, "start" : "n Expression" } }} | | < < < < < < < < | 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 | "mode" : "value" } }, "start" : "n Expression" } }} test json-write-3.1 {!indented, !aligned} -body { json::write indented 0 json::write aligned 0 gen $data } -result {{"grammar":{"rules":{"A":{"is":"/ {t +} {t -}","mode":"value"},"D":{"is":"/ {t 0} {t 1} ","mode":"value"},"E":{"is":"/ {x {t (} {n E} {t )}} {x {n F} {* {x {n M} {n F}}}}","mode":"value"},"F":{"is":"x {n T} {* {x {n A} {n T}}}","mode":"value"},"M":{"is":"/ {t *} {t /}","mode":"value"},"N":{"is":"x {? {n S}} {+ {n D}}","mode":"value"},"S":{"is":"/ {t +} {t -}","mode":"value"},"T":{"is":"n N","mode":"value"}},"start":"n Expression"}}} # ------------------------------------------------------------------------- unset data rename gen {} testsuiteCleanup # Local Variables: # mode: tcl # indent-tabs-mode: nil # End: |
Changes to modules/json/pkgIndex.tcl.
1 2 3 4 5 6 | # Tcl package index file, version 1.1 if {![package vsatisfies [package provide Tcl] 8.4]} {return} package ifneeded json 1.3.2 [list source [file join $dir json.tcl]] if {![package vsatisfies [package provide Tcl] 8.5]} {return} | | | 1 2 3 4 5 6 7 | # Tcl package index file, version 1.1 if {![package vsatisfies [package provide Tcl] 8.4]} {return} package ifneeded json 1.3.2 [list source [file join $dir json.tcl]] if {![package vsatisfies [package provide Tcl] 8.5]} {return} package ifneeded json::write 1.0.2 [list source [file join $dir json_write.tcl]] |
Added modules/json/test-data/array.json.
> > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | [ { "precision": "zip", "Latitude": 37.7668, "Longitude": -122.3959, "Address": "", "City": "SAN FRANCISCO", "State": "CA", "Zip": "94107", "Country": "US" }, { "precision": "zip", "Latitude": 37.371991, "Longitude": -122.026020, "Address": "", "City": "SUNNYVALE", "State": "CA", "Zip": "94085", "Country": "US" } ] |
Added modules/json/test-data/array.result.
> | 1 | {precision zip Latitude 37.7668 Longitude -122.3959 Address {} City {SAN FRANCISCO} State CA Zip 94107 Country US} {precision zip Latitude 37.371991 Longitude -122.026020 Address {} City SUNNYVALE State CA Zip 94085 Country US} |
Added modules/json/test-data/array.sort.
> | 1 | list dict |
Added modules/json/test-data/glossary.json.
> > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | { "glossary": { "title": "example glossary", "mixlist": ["a \"\" str", -0.09, null, "", {"member":true}], "GlossDiv": { "title": "S", "GlossList": [{ "ID": "SGML", "GlossTerm": "Standard \\\" Language", "Acronym": "SGML\\", "Abbrev": "ISO 8879:1986", "GlossDef": "A meta-markup language, used ...", "GlossSeeAlso": ["GML", "XML", "markup"]}]}} } |
Added modules/json/test-data/glossary.result.
> | 1 | glossary {title {example glossary} mixlist {{a "" str} -0.09 null {} {member true}} GlossDiv {title S GlossList {{ID SGML GlossTerm {Standard \" Language} Acronym SGML\\ Abbrev {ISO 8879:1986} GlossDef {A meta-markup language, used ...} GlossSeeAlso {GML XML markup}}}}} |
Added modules/json/test-data/glossary.sort.
> | 1 | dict * {dict GlossDiv {dict GlossList {list dict}}} |
Added modules/json/test-data/menu.json.
> > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 | {"menu": { "id": "file", "value": "File:", "unival": "\u6021:", "popup": { "menuitem": [ {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } } } |
Added modules/json/test-data/menu.result.
> | 1 | menu {id file value File: unival @@@: popup {menuitem {{value Open onclick OpenDoc()} {value Close onclick CloseDoc()}}}} |
Added modules/json/test-data/menu.sort.
> | 1 | dict * {dict popup {dict * {list dict}}} |
Added modules/json/test-data/menu2.json.
> > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | {"menu": { "header": "Viewer", "items": [ {"id": "Open"}, {"id": "OpenNew", "label": "Open New"}, null, {"id": "ZoomIn", "label": "Zoom In"}, {"id": "ZoomOut", "label": "Zoom Out"}, null, {"id": "Help"}, {"id": "About", "label": "About Viewer..."} ] } } |
Added modules/json/test-data/menu2.result.
> | 1 | menu {header Viewer items {{id Open} {id OpenNew label {Open New}} null {id ZoomIn label {Zoom In}} {id ZoomOut label {Zoom Out}} null {id Help} {id About label {About Viewer...}}}} |
Added modules/json/test-data/menu2.sort.
> | 1 | dict * {dict items {list 0 dict 1 dict 3 dict 4 dict 6 dict 7 dict}} |
Added modules/json/test-data/widget.json.
> > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | {"widget": { "debug": "on", "window": { "title":"Sample Widget", "name": "main_window", "width": 500, "height": 500}, "text": { "data": "Click Here", "size": 36, "style": "bold", "name": null, "hOffset":250, "vOffset": 100, "alignment": "center", "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;" } } } |
Added modules/json/test-data/widget.result.
> | 1 | widget {debug on window {title {Sample Widget} name main_window width 500 height 500} text {data {Click Here} size 36 style bold name null hOffset 250 vOffset 100 alignment center onMouseUp {sun1.opacity = (sun1.opacity / 100) * 90;}}} |
Added modules/json/test-data/widget.sort.
> | 1 | dict * {dict text dict window dict} |
Added modules/json/test_support.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 | #use fileutil/fileutil.tcl fileutil catch {unset JSON} catch {unset TCL} catch {unset DICTSORT} proc dictsort3 {spec data} { while [llength $spec] { set type [lindex $spec 0] set spec [lrange $spec 1 end] switch -- $type { dict { lappend spec * string set json {} foreach {key} [lsort [dict keys $data]] { set val [dict get $data $key] foreach {keymatch valtype} $spec { if {[string match $keymatch $key]} { lappend json $key [dictsort3 $valtype $val] break } } } return $json } list { lappend spec * string set json {} set idx 0 foreach {val} $data { foreach {keymatch valtype} $spec { if {$idx == $keymatch || $keymatch eq "*"} { lappend json [dictsort3 $valtype $val] break } } incr idx } return $json } string { return $data } default { error "Invalid type" } } } } foreach f [TestFilesGlob test-data/*.json] { set name [file rootname [file tail $f]] set JSON($name) [tcltest::viewFile $f] } foreach f [TestFilesGlob test-data/*.result] { set name [file rootname [file tail $f]] set TCL($name) [tcltest::viewFile $f] } foreach f [TestFilesGlob test-data/*.sort] { set name [file rootname [file tail $f]] set DICTSORT($name) [tcltest::viewFile $f] } # Postprocessing result of one test case, insert proper expected unicodepoint set TCL(menu) [string map [list @@@ \u6021] $TCL(menu)] set JSON(emptyList) {[]} set TCL(emptyList) {} set JSON(emptyList2) {{"menu": []}} set TCL(emptyList2) {menu {}} set JSON(emptyList3) {["menu", []]} set TCL(emptyList3) {menu {}} set JSON(emptyList4) {[[]]} set TCL(emptyList4) {{}} set JSON(escapes) {"\t\r\n\f\b\/\\\""} set TCL(escapes) "\t\r\n\f\b/\\\"" foreach f [TestFilesGlob test-data/*.fail] { set name [file rootname [file tail $f]] set FAIL($name) [tcltest::viewFile $f] } foreach f [TestFilesGlob test-data/*.err] { set name [file rootname [file tail $f]] set ERR($name) [tcltest::viewFile $f] } ## Tcl has strict escape checking. ## C uses Tcl_UtfBacklash, and allows lots of irregular escapes. # # set FAIL(escape1) {"\%"} # set ERR(escape1-tcl) {unexpected token "END" at position 0; expecting VALUE} # set ERR(escape1-critcl) {syntax error 0 bytes before end, around ``%''} # # set FAIL(escape2) {"\."} # set ERR(escape2-tcl) {unexpected token "END" at position 0; expecting VALUE} # set ERR(escape2-critcl) {syntax error 0 bytes before end, around ``.''} proc resultfor {name} { global TCL transform $TCL($name) $name } proc transform {res name} { global DICTSORT if {[info exists DICTSORT($name)]} { return [dictsort3 $DICTSORT($name) $res] } else { return $res } } proc transform* {res args} { set t {} foreach r $res n $args { lappend t [transform $r $n] } return $t } |
Deleted modules/json/tests/array.json.
|
| < < < < < < < < < < < < < < < < < < < < < < |
Deleted modules/json/tests/array.result.
|
| < |
Deleted modules/json/tests/array.sort.
|
| < |
Deleted modules/json/tests/glossary.json.
|
| < < < < < < < < < < < < < < < |
Deleted modules/json/tests/glossary.result.
|
| < |
Deleted modules/json/tests/glossary.sort.
|
| < |
Deleted modules/json/tests/menu.json.
|
| < < < < < < < < < < < < |
Deleted modules/json/tests/menu.result.
|
| < |
Deleted modules/json/tests/menu.sort.
|
| < |
Deleted modules/json/tests/menu2.json.
|
| < < < < < < < < < < < < < < |
Deleted modules/json/tests/menu2.result.
|
| < |
Deleted modules/json/tests/menu2.sort.
|
| < |
Deleted modules/json/tests/support.tcl.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted modules/json/tests/widget.json.
|
| < < < < < < < < < < < < < < < < < < < |
Deleted modules/json/tests/widget.result.
|
| < |
Deleted modules/json/tests/widget.sort.
|
| < |
Changes to modules/math/geometry.tcl.
︙ | ︙ | |||
1258 1259 1260 1261 1262 1263 1264 | namespace export \ + - s* direction v h p between distance length \ nwse rect octant findLineSegmentIntersection \ findLineIntersection bbox x y conjx conjy } | | | 1258 1259 1260 1261 1262 1263 1264 1265 | namespace export \ + - s* direction v h p between distance length \ nwse rect octant findLineSegmentIntersection \ findLineIntersection bbox x y conjx conjy } package provide math::geometry 1.1.2 |
Changes to modules/pt/include/format/cparam.inc.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [section {C/PARAM code representation of parsing expression grammars}] [include whatis_cparam_rawc.inc] [para] The bulk of such a framework has to be specified through the option [option -template]. The additional options [list_begin options] [opt_def -fun-qualifier string] [opt_def -main string] [opt_def -namespace string] [opt_def -prelude string] [opt_def -self-command string] [opt_def -state-decl string] [opt_def -state-ref string] [opt_def -string-varname string] [list_end] provide code snippets which help to glue framework and generated code together. Their placeholders are in the [emph generated] code. | > < < < < < < < < < < < | 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 | [section {C/PARAM code representation of parsing expression grammars}] [include whatis_cparam_rawc.inc] [para] The bulk of such a framework has to be specified through the option [option -template]. The additional options [list_begin options] [opt_def -fun-qualifier string] [opt_def -indent integer] [opt_def -main string] [opt_def -namespace string] [opt_def -prelude string] [opt_def -self-command string] [opt_def -state-decl string] [opt_def -state-ref string] [opt_def -string-varname string] [list_end] provide code snippets which help to glue framework and generated code together. Their placeholders are in the [emph generated] code. [subsection Example] We are forgoing an example of this representation, with apologies. It would be way to large for this document. |
Changes to modules/pt/include/format/options_cparam_rawc.inc.
︙ | ︙ | |||
127 128 129 130 131 132 133 | [opt_def -indent integer] The number of characters to indent each line of the generated code by. The default value is [const 0]. | < < < < < < < < | 127 128 129 130 131 132 133 134 | [opt_def -indent integer] The number of characters to indent each line of the generated code by. The default value is [const 0]. [list_end] |
Changes to modules/pt/pkgIndex.tcl.
︙ | ︙ | |||
32 33 34 35 36 37 38 | # Import plugins, connecting manager to the core conversion packages. package ifneeded pt::peg::import::json 1 [list source [file join $dir pt_peg_import_json.tcl]] package ifneeded pt::peg::import::peg 1 [list source [file join $dir pt_peg_import_peg.tcl]] # Export core functionality: Conversion from PEG to a specific format. package ifneeded pt::peg::to::container 1 [list source [file join $dir pt_peg_to_container.tcl]] | | | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # Import plugins, connecting manager to the core conversion packages. package ifneeded pt::peg::import::json 1 [list source [file join $dir pt_peg_import_json.tcl]] package ifneeded pt::peg::import::peg 1 [list source [file join $dir pt_peg_import_peg.tcl]] # Export core functionality: Conversion from PEG to a specific format. package ifneeded pt::peg::to::container 1 [list source [file join $dir pt_peg_to_container.tcl]] package ifneeded pt::peg::to::cparam 1.0.1 [list source [file join $dir pt_peg_to_cparam.tcl]] package ifneeded pt::peg::to::json 1 [list source [file join $dir pt_peg_to_json.tcl]] package ifneeded pt::peg::to::param 1 [list source [file join $dir pt_peg_to_param.tcl]] package ifneeded pt::peg::to::peg 1.0.1 [list source [file join $dir pt_peg_to_peg.tcl]] package ifneeded pt::peg::to::tclparam 1 [list source [file join $dir pt_peg_to_tclparam.tcl]] # Import core functionality: Conversion from a specific format to PEG. package ifneeded pt::peg::from::json 1 [list source [file join $dir pt_peg_from_json.tcl]] |
︙ | ︙ |
Changes to modules/pt/pt_cparam_config_critcl.tcl.
︙ | ︙ | |||
90 91 92 93 94 95 96 | ## namespace eval ::@@CHEAD@@ { # # ## ### ##### ######## ############# ##################### ## Supporting code for the main command. catch { | | | 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | ## namespace eval ::@@CHEAD@@ { # # ## ### ##### ######## ############# ##################### ## Supporting code for the main command. catch { #critcl::cheaders -g #critcl::debug memory symbols } # # ## ### ###### ######## ############# ## RDE runtime, inlined, and made static. # This is the C code for the RDE, i.e. the implementation |
︙ | ︙ | |||
243 244 245 246 247 248 249 | memcpy(lv + 3, av, ac * sizeof (Tcl_Obj*)); lv [0] = Tcl_NewObj (); lv [1] = Tcl_NewIntObj (1 + lsv [lsc-1]); lv [2] = Tcl_NewIntObj (rde_param_query_cl (p)); Tcl_SetObjResult (interp, Tcl_NewListObj (3, lv)); ckfree ((char*) lv); | < < < < < < < | 243 244 245 246 247 248 249 250 251 252 253 254 255 256 | memcpy(lv + 3, av, ac * sizeof (Tcl_Obj*)); lv [0] = Tcl_NewObj (); lv [1] = Tcl_NewIntObj (1 + lsv [lsc-1]); lv [2] = Tcl_NewIntObj (rde_param_query_cl (p)); Tcl_SetObjResult (interp, Tcl_NewListObj (3, lv)); ckfree ((char*) lv); } else { Tcl_SetObjResult (interp, av [0]); } return TCL_OK; } else { Tcl_Obj* xv [1]; |
︙ | ︙ |
Changes to modules/pt/pt_parse_peg_c.tcl.
︙ | ︙ | |||
380 381 382 383 384 385 386 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } if ((tc->num + len) >= tc->max) { int new = len + (tc->max ? (2 * tc->max) : RDE_STACK_INITIAL_SIZE); char* str = ckrealloc (tc->str, new * sizeof(char)); ASSERT (str,"Memory allocation failure for token character array"); tc->max = new; |
︙ | ︙ |
Changes to modules/pt/pt_peg_to_cparam.man.
1 2 3 4 5 | [comment {--- doctools ---}] [vset PACKAGE cparam] [vset NAME CPARAM] [vset REQUIRE cparam] [vset CONFIG cparam] | | | 1 2 3 4 5 6 7 | [comment {--- doctools ---}] [vset PACKAGE cparam] [vset NAME CPARAM] [vset REQUIRE cparam] [vset CONFIG cparam] [vset VERSION 1.0.1] [include include/export/to.inc] |
Changes to modules/pt/pt_peg_to_cparam.tcl.
︙ | ︙ | |||
46 47 48 49 50 51 52 | variable file unknown ; # -file variable user unknown ; # -user variable self {} ; # -self-command variable ns {} ; # -namespace variable def static ; # -fun-qualifier variable main __main ; # -main variable indent 0 ; # -indent | < < < | | < < < < < | 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 | variable file unknown ; # -file variable user unknown ; # -user variable self {} ; # -self-command variable ns {} ; # -namespace variable def static ; # -fun-qualifier variable main __main ; # -main variable indent 0 ; # -indent variable prelude {} ; # -prelude variable statedecl {RDE_PARAM p} ; # -state-decl variable stateref {p} ; # -state-ref variable strings p_string ; # -string-varname return } proc ::pt::peg::to::cparam::configure {args} { variable template variable name variable file variable user variable self variable ns variable def variable main variable omap variable indent variable prelude variable statedecl variable stateref variable strings if {[llength $args] == 0} { return [list \ -file $file \ -fun-qualifier $def \ -indent $indent \ -main $main \ -name $name \ -namespace $ns \ -self-command $self \ -state-decl $statedecl \ -state-ref $stateref \ -string-varname $strings \ -template $template \ -user $user \ ] } elseif {[llength $args] == 1} { lassign $args option set variable [string range $option 1 end] if {[info exists omap($variable)]} { return [set $omap($variable)] } else { return -code error "Expected one of -file, -fun-qualifier, -indent, -main, -name, -namespace, -self-command, -state-decl, -state-ref, -string-varname, -template, or -user, got \"$option\"" } } elseif {[llength $args] % 2 == 0} { foreach {option value} $args { set variable [string range $option 1 end] if {![info exists omap($variable)]} { return -code error "Expected one of -file, -fun-qualifier, -indent, -main, -name, -namespace, -self-command, -state-decl, -state-ref, -string-varname, -template, or -user, got \"$option\"" } } foreach {option value} $args { set variable $omap([string range $option 1 end]) switch -exact -- $variable { template { if {$value eq {}} { return -code error "Expected template, got the empty string" } } indent { if {![string is integer -strict $value] || ($value < 0)} { return -code error "Expected int > 0, got \"$value\"" } } statedecl - stateref - strings - self - def - ns - main - |
︙ | ︙ | |||
1308 1309 1310 1311 1312 1313 1314 | if {[text::write exists FUN_HEADER]} { text::write recall FUN_HEADER text::write undef FUN_HEADER } FunStart $name | < | 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 | if {[text::write exists FUN_HEADER]} { text::write recall FUN_HEADER text::write undef FUN_HEADER } FunStart $name text::write recall PE ; # Generated in Asm::ReExpression, printed text::write undef PE ; # representation of the expression, to # make the generated code more readable. uplevel 1 $def CStmt return FunClose |
︙ | ︙ | |||
1480 1481 1482 1483 1484 1485 1486 | text::write field " */" text::write /line #text::write /line return } proc ::pt::peg::to::cparam::Op::Asm::PE {pe} { | < < < | | < < < < < < < < < < < < < < < | | | | | | | < < < | 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 | text::write field " */" text::write /line #text::write /line return } proc ::pt::peg::to::cparam::Op::Asm::PE {pe} { text::write clear text::write field " /*" text::write /line foreach l [split [pt::pe print $pe] \n] { text::write field " * $l" text::write /line } text::write field " */" text::write /line text::write /line text::write store PE return } proc ::pt::peg::to::cparam::Op::Asm::String {s} { variable cache |
︙ | ︙ | |||
1555 1556 1557 1558 1559 1560 1561 | variable field 3 variable cache array set cache {} set cache(_str,counter) -1 set cache(_strings) {} } | < < < < | 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 | variable field 3 variable cache array set cache {} set cache(_str,counter) -1 set cache(_strings) {} } variable omap ; array set omap { file file fun-qualifier def indent indent main main name name namespace ns prelude prelude self-command self state-decl statedecl state-ref stateref string-varname strings template template user user } variable self {} variable ns {} variable def static variable main __main variable indent 0 variable prelude {} variable statedecl {RDE_PARAM p} |
︙ | ︙ | |||
1601 1602 1603 1604 1605 1606 1607 | # which behalf the conversion has # been invoked. } # ### ### ### ######### ######### ######### ## Ready | | | 1567 1568 1569 1570 1571 1572 1573 1574 1575 | # which behalf the conversion has # been invoked. } # ### ### ### ######### ######### ######### ## Ready package provide pt::peg::to::cparam 1.0.1 return |
Deleted modules/pt/pt_pgen.test.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Changes to modules/pt/pt_rdengine_c.tcl.
︙ | ︙ | |||
14 15 16 17 18 19 20 | # # ## ### ##### ######## ############# ##################### ## Requisites package require Tcl 8.4 package require critcl # @sak notprovided pt_rde_critcl | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # # ## ### ##### ######## ############# ##################### ## Requisites package require Tcl 8.4 package require critcl # @sak notprovided pt_rde_critcl package provide pt_rde_critcl 1.3.1 # # ## ### ##### ######## ############# ##################### ## Implementation namespace eval ::pt { # # ## ### ##### ######## ############# ##################### |
︙ | ︙ |
Changes to modules/pt/pt_rdengine_oo.tcl.
1 2 | # -*- tcl -*- # | | | 1 2 3 4 5 6 7 8 9 10 | # -*- tcl -*- # # Copyright (c) 2009 by Andreas Kupries <[email protected]> # # ## ### ##### ######## ############# ##################### ## Package description ## Implementation of the PackRat Machine (PARAM), a virtual machine on ## top of which parsers for Parsing Expression Grammars (PEGs) can be ## realized. This implementation is tied to Tcl for control flow. We |
︙ | ︙ | |||
68 69 70 71 72 73 74 | if {$myok} { set n [$mystackast size] if {$n > 1} { set pos [$mystackloc peek] incr pos set children [lreverse [$mystackast peek [$mystackast size]]] ; # SaveToMark return [pt::ast new {} $pos $myloc {*}$children] ; # Reduce ALL | < < < < | | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | if {$myok} { set n [$mystackast size] if {$n > 1} { set pos [$mystackloc peek] incr pos set children [lreverse [$mystackast peek [$mystackast size]]] ; # SaveToMark return [pt::ast new {} $pos $myloc {*}$children] ; # Reduce ALL } else { return [$mystackast peek] } } else { lassign $myerror loc messages return -code error [list pt::rde $loc [$self position $loc] $messages] } } # # ## ### ##### ######## ############# ##################### ## API - State accessors method chan {} { return $mychan } |
︙ | ︙ | |||
359 360 361 362 363 364 365 | } if {$myok} { $mystackloc pop return -code return } set myloc [$mystackloc peek] | | | 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 | } if {$myok} { $mystackloc pop return -code return } set myloc [$mystackloc peek] $mystackerr push {} return } method si:voidvalue_branch {} { # i_error_pop_merge # i:ok_loc_pop_discard # i:ok_return |
︙ | ︙ | |||
1115 1116 1117 1118 1119 1120 1121 | set mysvalue [pt::ast new $symbol $pos $myloc {*}$mysvalue] ; # Reduce $symbol } } set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] | < | < > | 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 | set mysvalue [pt::ast new $symbol $pos $myloc {*}$mysvalue] ; # Reduce $symbol } } set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] if {[llength $myerror]} { set pos $at incr pos lassign $myerror loc messages if {$loc == $pos} { set myerror [list $loc [list [list n $symbol]]] } } $mystackast trim* [$mystackmark pop] if {$myok} { $mystackast push $mysvalue } return } |
︙ | ︙ | |||
1159 1160 1161 1162 1163 1164 1165 | set mysvalue [pt::ast new $symbol $pos $myloc] } } set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] | < | < > | 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 | set mysvalue [pt::ast new $symbol $pos $myloc] } } set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] if {[llength $myerror]} { set pos $at incr pos lassign $myerror loc messages if {$loc == $pos} { set myerror [list $loc [list [list n $symbol]]] } } if {$myok} { $mystackast push $mysvalue } return } |
︙ | ︙ | |||
1203 1204 1205 1206 1207 1208 1209 | set mysvalue [pt::ast new $symbol $pos $myloc] } } set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] | < | < > | 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 | set mysvalue [pt::ast new $symbol $pos $myloc] } } set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] if {[llength $myerror]} { set pos $at incr pos lassign $myerror loc messages if {$loc == $pos} { set myerror [list $loc [list [list n $symbol]]] } } $mystackast trim* [$mystackmark pop] if {$myok} { $mystackast push $mysvalue } return } |
︙ | ︙ | |||
1233 1234 1235 1236 1237 1238 1239 | set mysvalue {} set at [$mystackloc pop] set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] | < | < > < | < > | 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 | set mysvalue {} set at [$mystackloc pop] set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] if {[llength $myerror]} { set pos $at incr pos lassign $myerror loc messages if {$loc == $pos} { set myerror [list $loc [list [list n $symbol]]] } } $mystackast trim* [$mystackmark pop] return } method si:void_clear_symbol_end {symbol} { # i_value_clear # i_symbol_save $symbol # i_error_nonterminal $symbol # i_loc_pop_discard set mysvalue {} set at [$mystackloc pop] set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] if {[llength $myerror]} { set pos $at incr pos lassign $myerror loc messages if {$loc == $pos} { set myerror [list $loc [list [list n $symbol]]] } } return } # # ## ### ##### ######## ############# ##################### ## API - Instructions - Control flow method i:ok_continue {} { |
︙ | ︙ | |||
1355 1356 1357 1358 1359 1360 1361 | # Equal locations, merge the message lists. #set myerror [list $loe [struct::set union $msgse $msgsn]] set myerror [list $loe [lsort -uniq [list {*}$msgse {*}$msgsn]]] return } method i_error_nonterminal {symbol} { | < < < < < < < | 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 | # Equal locations, merge the message lists. #set myerror [list $loe [struct::set union $msgse $msgsn]] set myerror [list $loe [lsort -uniq [list {*}$msgse {*}$msgsn]]] return } method i_error_nonterminal {symbol} { # Inlined: Errors, Expected. if {![llength $myerror]} return set pos [$mystackloc peek] incr pos lassign $myerror loc messages if {$loc != $pos} return set myerror [list $loc [list $symbol]] |
︙ | ︙ |
Changes to modules/pt/pt_rdengine_tcl.tcl.
1 2 | # -*- tcl -*- # | | | 1 2 3 4 5 6 7 8 9 10 | # -*- tcl -*- # # Copyright (c) 2009 by Andreas Kupries <[email protected]> # # ## ### ##### ######## ############# ##################### ## Package description ## Implementation of the PackRat Machine (PARAM), a virtual machine on ## top of which parsers for Parsing Expression Grammars (PEGs) can be ## realized. This implementation is tied to Tcl for control flow. We |
︙ | ︙ | |||
35 36 37 38 39 40 41 | set mystackerr [struct::stack ${selfns}::ERR] ; # ES set mystackast [struct::stack ${selfns}::AST] ; # ARS/AS set mystackmark [struct::stack ${selfns}::MARK] ; # s.a. return } #TRACE variable count 0 | < < | | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | set mystackerr [struct::stack ${selfns}::ERR] ; # ES set mystackast [struct::stack ${selfns}::AST] ; # ARS/AS set mystackmark [struct::stack ${selfns}::MARK] ; # s.a. return } #TRACE variable count 0 method reset {{chan {}}} { ; #TRACE puts "[format %8d [incr count]] RDE reset" set mychan $chan ; # IN set mycurrent {} ; # CC set myloc -1 ; # CL set myok 0 ; # ST set msvalue {} ; # SV set myerror {} ; # ER set mytoken {} ; # TC |
︙ | ︙ | |||
63 64 65 66 67 68 69 | if {$myok} { set n [$mystackast size] if {$n > 1} { set pos [$mystackloc peek] incr pos set children [$mystackast peekr [$mystackast size]] ; # SaveToMark return [pt::ast new {} $pos $myloc {*}$children] ; # Reduce ALL | < < < < | 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | if {$myok} { set n [$mystackast size] if {$n > 1} { set pos [$mystackloc peek] incr pos set children [$mystackast peekr [$mystackast size]] ; # SaveToMark return [pt::ast new {} $pos $myloc {*}$children] ; # Reduce ALL } else { return [$mystackast peek] } } else { lassign $myerror loc messages return -code error [list pt::rde $loc $messages] } |
︙ | ︙ | |||
129 130 131 132 133 134 135 | append mytoken $data return } # # ## ### ##### ######## ############# ##################### ## Common instruction sequences | | | | | | 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 | append mytoken $data return } # # ## ### ##### ######## ############# ##################### ## Common instruction sequences method si:void_state_push {} { # i_loc_push # i_error_clear_push $mystackloc push $myloc set myerror {} $mystackerr push {} return } method si:void2_state_push {} { # i_loc_push # i_error_push $mystackloc push $myloc $mystackerr push {} return } method si:value_state_push {} { # i_ast_push # i_loc_push # i_error_clear_push $mystackmark push [$mystackast size] $mystackloc push $myloc set myerror {} $mystackerr push {} return } # - -- --- ----- -------- ------------- --------------------- method si:void_state_merge {} { # i_error_pop_merge # i_loc_pop_rewind/discard set olderror [$mystackerr pop] # We have either old or new error data, keep it. if {![llength $myerror]} { set myerror $olderror |
︙ | ︙ | |||
188 189 190 191 192 193 194 | set last [$mystackloc pop] if {$myok} return set myloc $last return } | | | 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 | set last [$mystackloc pop] if {$myok} return set myloc $last return } method si:void_state_merge_ok {} { # i_error_pop_merge # i_loc_pop_rewind/discard # i_status_ok set olderror [$mystackerr pop] # We have either old or new error data, keep it. if {![llength $myerror]} { |
︙ | ︙ | |||
219 220 221 222 223 224 225 | set last [$mystackloc pop] if {$myok} return set myloc $last set myok 1 return } | | | 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 | set last [$mystackloc pop] if {$myok} return set myloc $last set myok 1 return } method si:value_state_merge {} { # i_error_pop_merge # i_ast_pop_rewind/discard # i_loc_pop_rewind/discard set olderror [$mystackerr pop] # We have either old or new error data, keep it. if {![llength $myerror]} { |
︙ | ︙ | |||
253 254 255 256 257 258 259 | $mystackast trim* $mark set myloc $last return } # - -- --- ----- -------- ------------- --------------------- | | | | | | | 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 | $mystackast trim* $mark set myloc $last return } # - -- --- ----- -------- ------------- --------------------- method si:value_notahead_start {} { # i_loc_push # i_ast_push $mystackloc push $myloc $mystackmark push [$mystackast size] return } method si:void_notahead_exit {} { # i_loc_pop_rewind # i_status_negate set myloc [$mystackloc pop] set myok [expr {!$myok}] return } method si:value_notahead_exit {} { # i_ast_pop_discard/rewind # i_loc_pop_rewind # i_status_negate set mark [$mystackmark pop] if {$myok} { $mystackast trim* $mark } set myloc [$mystackloc pop] set myok [expr {!$myok}] return } # - -- --- ----- -------- ------------- --------------------- method si:kleene_abort {} { # i_loc_pop_rewind/discard # i:fail_return set last [$mystackloc pop] if {$myok} return set myloc $last return -code return } method si:kleene_close {} { # i_error_pop_merge # i_loc_pop_rewind/discard # i:fail_status_ok # i:fail_return set olderror [$mystackerr pop] # We have either old or new error data, keep it. |
︙ | ︙ | |||
331 332 333 334 335 336 337 | set myok 1 set myloc $last return -code return } # - -- --- ----- -------- ------------- --------------------- | | | 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 | set myok 1 set myloc $last return -code return } # - -- --- ----- -------- ------------- --------------------- method si:voidvoid_branch {} { # i_error_pop_merge # i:ok_loc_pop_discard # i:ok_return # i_loc_rewind # i_error_push set olderror [$mystackerr pop] |
︙ | ︙ | |||
362 363 364 365 366 367 368 | } if {$myok} { $mystackloc pop return -code return } set myloc [$mystackloc peek] | | | | 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 | } if {$myok} { $mystackloc pop return -code return } set myloc [$mystackloc peek] $mystackerr push {} return } method si:voidvalue_branch {} { # i_error_pop_merge # i:ok_loc_pop_discard # i:ok_return # i_ast_push # i_loc_rewind # i_error_push |
︙ | ︙ | |||
403 404 405 406 407 408 409 | } $mystackmark push [$mystackast size] set myloc [$mystackloc peek] $mystackerr push {} return } | | | 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 | } $mystackmark push [$mystackast size] set myloc [$mystackloc peek] $mystackerr push {} return } method si:valuevoid_branch {} { # i_error_pop_merge # i_ast_pop_rewind/discard # i:ok_loc_pop_discard # i:ok_return # i_loc_rewind # i_error_push |
︙ | ︙ | |||
440 441 442 443 444 445 446 | } $mystackast trim* $mark set myloc [$mystackloc peek] $mystackerr push {} return } | | | 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 | } $mystackast trim* $mark set myloc [$mystackloc peek] $mystackerr push {} return } method si:valuevalue_branch {} { # i_error_pop_merge # i_ast_pop_discard # i:ok_loc_pop_discard # i:ok_return # i_ast_rewind # i_loc_rewind # i_error_push |
︙ | ︙ | |||
480 481 482 483 484 485 486 | set myloc [$mystackloc peek] $mystackerr push {} return } # - -- --- ----- -------- ------------- --------------------- | | | 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 | set myloc [$mystackloc peek] $mystackerr push {} return } # - -- --- ----- -------- ------------- --------------------- method si:voidvoid_part {} { # i_error_pop_merge # i:fail_loc_pop_rewind # i:fail_return # i_error_push set olderror [$mystackerr pop] # We have either old or new error data, keep it. |
︙ | ︙ | |||
512 513 514 515 516 517 518 | set myloc [$mystackloc pop] return -code return } $mystackerr push $myerror return } | | | 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 | set myloc [$mystackloc pop] return -code return } $mystackerr push $myerror return } method si:voidvalue_part {} { # i_error_pop_merge # i:fail_loc_pop_rewind # i:fail_return # i_ast_push # i_error_push set olderror [$mystackerr pop] |
︙ | ︙ | |||
546 547 548 549 550 551 552 | return -code return } $mystackmark push [$mystackast size] $mystackerr push $myerror return } | | | 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 | return -code return } $mystackmark push [$mystackast size] $mystackerr push $myerror return } method si:valuevalue_part {} { # i_error_pop_merge # i:fail_ast_pop_rewind # i:fail_loc_pop_rewind # i:fail_return # i_error_push set olderror [$mystackerr pop] |
︙ | ︙ | |||
582 583 584 585 586 587 588 | } $mystackerr push $myerror return } # - -- --- ----- -------- ------------- --------------------- | | < < < < < < < < | | 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 | } $mystackerr push $myerror return } # - -- --- ----- -------- ------------- --------------------- method si:next_str {tok} { # String = sequence of characters. No need for all the intermediate # stack churn. set n [string length $tok] set last [expr {$myloc + $n}] set max [string length $mytoken] incr myloc if {($last >= $max) && ![ExtendTCN [expr {$last - $max + 1}]]} { set myok 0 set myerror [list $myloc [list [list t $tok]]] # i:fail_return return } set lex [string range $mytoken $myloc $last] set mycurrent [string index $mytoken $last] set myok [expr {$tok eq $lex}] if {$myok} { set myloc $last set myerror {} } else { set myerror [list $myloc [list [list t $tok]]] incr myloc -1 } return } method si:next_class {tok} { # Class = Choice of characters. No need for stack churn. # i_input_next "\{t $c\}" # i:fail_return # i_test_<user class> incr myloc |
︙ | ︙ | |||
650 651 652 653 654 655 656 | } else { set myerror [list $myloc [list [list t $tok]]] incr myloc -1 } return } | | | 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 | } else { set myerror [list $myloc [list [list t $tok]]] incr myloc -1 } return } method si:next_char {tok} { # i_input_next "\{t $c\}" # i:fail_return # i_test_char $c incr myloc if {($myloc >= [string length $mytoken]) && ![ExtendTC]} { set myok 0 |
︙ | ︙ | |||
674 675 676 677 678 679 680 | } else { set myerror [list $myloc [list [list t $tok]]] incr myloc -1 } return } | | | 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 | } else { set myerror [list $myloc [list [list t $tok]]] incr myloc -1 } return } method si:next_range {toks toke} { #Asm::Ins i_input_next "\{.. $s $e\}" #Asm::Ins i:fail_return #Asm::Ins i_test_range $s $e incr myloc if {($myloc >= [string length $mytoken]) && ![ExtendTC]} { set myok 0 |
︙ | ︙ | |||
1017 1018 1019 1020 1021 1022 1023 | set myerror {} } return } # - -- --- ----- -------- ------------- --------------------- | | | | | | | 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 | set myerror {} } return } # - -- --- ----- -------- ------------- --------------------- method si:value_symbol_start {symbol} { # if @runtime@ i_symbol_restore $symbol # i:found:ok_ast_value_push # i:found_return # i_loc_push # i_ast_push set k [list $myloc $symbol] if {[info exists mysymbol($k)]} { lassign $mysymbol($k) myloc myok myerror mysvalue if {$myok} { $mystackast push $mysvalue } return -code return } $mystackloc push $myloc $mystackmark push [$mystackast size] return } method si:value_void_symbol_start {symbol} { # if @runtime@ i_symbol_restore $symbol # i:found_return # i_loc_push # i_ast_push set k [list $myloc $symbol] if {[info exists mysymbol($k)]} { lassign $mysymbol($k) myloc myok myerror mysvalue return -code return } $mystackloc push $myloc $mystackmark push [$mystackast size] return } method si:void_symbol_start {symbol} { # if @runtime@ i_symbol_restore $symbol # i:found:ok_ast_value_push # i:found_return # i_loc_push set k [list $myloc $symbol] if {[info exists mysymbol($k)]} { lassign $mysymbol($k) myloc myok myerror mysvalue if {$myok} { $mystackast push $mysvalue } return -code return } $mystackloc push $myloc return } method si:void_void_symbol_start {symbol} { # if @runtime@ i_symbol_restore $symbol # i:found_return # i_loc_push set k [list $myloc $symbol] if {[info exists mysymbol($k)]} { lassign $mysymbol($k) myloc myok myerror mysvalue return -code return } $mystackloc push $myloc return } method si:reduce_symbol_end {symbol} { # i_value_clear/reduce $symbol # i_symbol_save $symbol # i_error_nonterminal $symbol # i_ast_pop_rewind # i_loc_pop_discard # i:ok_ast_value_push |
︙ | ︙ | |||
1126 1127 1128 1129 1130 1131 1132 | set mysvalue [pt::ast new $symbol $pos $myloc {*}$mysvalue] ; # Reduce $symbol } } set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] | < | < > | | 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 | set mysvalue [pt::ast new $symbol $pos $myloc {*}$mysvalue] ; # Reduce $symbol } } set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] if {[llength $myerror]} { set pos $at incr pos lassign $myerror loc messages if {$loc == $pos} { set myerror [list $loc [list [list n $symbol]]] } } $mystackast trim* [$mystackmark pop] if {$myok} { $mystackast push $mysvalue } return } method si:void_leaf_symbol_end {symbol} { # i_value_clear/leaf $symbol # i_symbol_save $symbol # i_error_nonterminal $symbol # i_loc_pop_discard # i:ok_ast_value_push set mysvalue {} |
︙ | ︙ | |||
1170 1171 1172 1173 1174 1175 1176 | set mysvalue [pt::ast new $symbol $pos $myloc] } } set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] | < | < > | | 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 | set mysvalue [pt::ast new $symbol $pos $myloc] } } set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] if {[llength $myerror]} { set pos $at incr pos lassign $myerror loc messages if {$loc == $pos} { set myerror [list $loc [list [list n $symbol]]] } } if {$myok} { $mystackast push $mysvalue } return } method si:value_leaf_symbol_end {symbol} { # i_value_clear/leaf $symbol # i_symbol_save $symbol # i_error_nonterminal $symbol # i_loc_pop_discard # i_ast_pop_rewind # i:ok_ast_value_push |
︙ | ︙ | |||
1214 1215 1216 1217 1218 1219 1220 | set mysvalue [pt::ast new $symbol $pos $myloc] } } set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] | < | < > | < | < > | < | < > | 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 | set mysvalue [pt::ast new $symbol $pos $myloc] } } set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] if {[llength $myerror]} { set pos $at incr pos lassign $myerror loc messages if {$loc == $pos} { set myerror [list $loc [list [list n $symbol]]] } } $mystackast trim* [$mystackmark pop] if {$myok} { $mystackast push $mysvalue } return } method si:value_clear_symbol_end {symbol} { # i_value_clear # i_symbol_save $symbol # i_error_nonterminal $symbol # i_loc_pop_discard # i_ast_pop_rewind set mysvalue {} set at [$mystackloc pop] set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] if {[llength $myerror]} { set pos $at incr pos lassign $myerror loc messages if {$loc == $pos} { set myerror [list $loc [list [list n $symbol]]] } } $mystackast trim* [$mystackmark pop] return } method si:void_clear_symbol_end {symbol} { # i_value_clear # i_symbol_save $symbol # i_error_nonterminal $symbol # i_loc_pop_discard set mysvalue {} set at [$mystackloc pop] set k [list $at $symbol] set mysymbol($k) [list $myloc $myok $myerror $mysvalue] if {[llength $myerror]} { set pos $at incr pos lassign $myerror loc messages if {$loc == $pos} { set myerror [list $loc [list [list n $symbol]]] } } return } # # ## ### ##### ######## ############# ##################### ## API - Instructions - Control flow method i:ok_continue {} { ; #TRACE puts "[format %8d [incr count]] RDE i:ok_continue" |
︙ | ︙ | |||
1331 1332 1333 1334 1335 1336 1337 | ## API - Instructions - Error handling. method i_error_clear {} { ; #TRACE puts "[format %8d [incr count]] RDE i_error_clear" set myerror {} return } | | | | | 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 | ## API - Instructions - Error handling. method i_error_clear {} { ; #TRACE puts "[format %8d [incr count]] RDE i_error_clear" set myerror {} return } method i_error_push {} { ; #TRACE puts "[format %8d [incr count]] RDE i_error_push" $mystackerr push $myerror return } method i_error_clear_push {} { ; #TRACE puts "[format %8d [incr count]] RDE i_error_clear_push" set myerror {} $mystackerr push {} return } method i_error_pop_merge {} { ; #TRACE puts "[format %8d [incr count]] RDE i_error_pop_merge" set olderror [$mystackerr pop] # We have either old or new error data, keep it. if {![llength $myerror]} { set myerror $olderror ; return } if {![llength $olderror]} return |
︙ | ︙ | |||
1364 1365 1366 1367 1368 1369 1370 | if {$loe > $lon} return # Equal locations, merge the message lists, set-like. set myerror [list $loe [lsort -uniq [list {*}$msgse {*}$msgsn]]] return } | | < < < < < < < | < < < | < < < < | 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 | if {$loe > $lon} return # Equal locations, merge the message lists, set-like. set myerror [list $loe [lsort -uniq [list {*}$msgse {*}$msgsn]]] return } method i_error_nonterminal {symbol} { ; #TRACE puts "[format %8d [incr count]] RDE i_error_nonterminal" # Inlined: Errors, Expected. if {![llength $myerror]} return set pos [$mystackloc peek] incr pos lassign $myerror loc messages if {$loc != $pos} return set myerror [list $loc [list [list n $symbol]]] return } # # ## ### ##### ######## ############# ##################### ## API - Instructions - Basic input handling and tracking method i_loc_pop_rewind/discard {} { ; #TRACE puts "[format %8d [incr count]] RDE i_loc_pop_rewind/discard (ok $myok ([expr {$myok ? "keep $myloc drop" : "back@"}] [$mystackloc peek]))" |
︙ | ︙ | |||
1530 1531 1532 1533 1534 1535 1536 | ## API - Instructions - Semantic values. method i_value_clear {} { ; #TRACE puts "[format %8d [incr count]] RDE i_value_clear" set mysvalue {} return } | | | | 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 | ## API - Instructions - Semantic values. method i_value_clear {} { ; #TRACE puts "[format %8d [incr count]] RDE i_value_clear" set mysvalue {} return } method i_value_clear/leaf {symbol} { ; #TRACE puts "[format %8d [incr count]] RDE i_value_clear/leaf (ok $myok ([expr {[$mystackloc peek]+1}])-@$myloc)" # not quite value_lead (guarded, and clear on fail) # Inlined clear, reduce, and optimized. # Clear ; if {$ok} {Reduce $symbol} set mysvalue {} if {!$myok} return set pos [$mystackloc peek] incr pos if {($pos - 1) == $myloc} { # The symbol did not process any input. As this is # signaled to be ok (*) we create a node covering an empty # range. (Ad *): Can happen for a RHS using toplevel # operators * or ?. set mysvalue [pt::ast new0 $symbol $pos] } else { set mysvalue [pt::ast new $symbol $pos $myloc] } return } method i_value_clear/reduce {symbol} { ; #TRACE puts "[format %8d [incr count]] RDE i_value_clear/reduce" set mysvalue {} if {!$myok} return set mark [$mystackmark peek];# Old size of stack before current nt pushed more. set newa [expr {[$mystackast size] - $mark}] set pos [$mystackloc peek] |
︙ | ︙ | |||
1586 1587 1588 1589 1590 1591 1592 | } return } # # ## ### ##### ######## ############# ##################### ## API - Instructions - Terminal matching | | | 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 | } return } # # ## ### ##### ######## ############# ##################### ## API - Instructions - Terminal matching method i_input_next {msg} { ; #TRACE puts "[format %8d [incr count]] RDE i_input_next" # Inlined: Getch, Expected, ClearErrors # Satisfy from input cache if possible. incr myloc # May read from the input (ExtendTC), and remember the # information. Note: We are implicitly incrementing the # location! |
︙ | ︙ | |||
1617 1618 1619 1620 1621 1622 1623 | } else { set myerror [list $myloc [list [pt::pe terminal $tok]]] incr myloc -1 } return } | | | 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 | } else { set myerror [list $myloc [list [pt::pe terminal $tok]]] incr myloc -1 } return } method i_test_range {toks toke} { ; #TRACE puts "[format %8d [incr count]] RDE i_test_range" set myok [expr { ([string compare $toks $mycurrent] <= 0) && ([string compare $mycurrent $toke] <= 0) }] ; # {} if {$myok} { set myerror {} } else { |
︙ | ︙ |
Changes to modules/pt/rde_critcl/param.c.
︙ | ︙ | |||
539 540 541 542 543 544 545 | { ER_CLEAR (p); } SCOPE void rde_param_i_error_nonterminal (RDE_PARAM p, int s) { | < < < < < < < < | 539 540 541 542 543 544 545 546 547 548 549 550 551 552 | { ER_CLEAR (p); } SCOPE void rde_param_i_error_nonterminal (RDE_PARAM p, int s) { 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; } |
︙ | ︙ |
Changes to modules/pt/rde_critcl/tc.c.
︙ | ︙ | |||
66 67 68 69 70 71 72 | long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } /* * Extend character buffer to hold the new string, and copy the string in. */ if ((tc->num + len) >= tc->max) { |
︙ | ︙ |
Changes to modules/pt/tests/common.
1 2 3 | # -*- tcl -*- # Code common to the various control files. # | | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 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 | # -*- tcl -*- # Code common to the various control files. # # Copyright (c) 2009 by Andreas Kupries <[email protected]> # All rights reserved. # # RCS: @(#) $Id: common,v 1.1 2010/03/26 05:07:24 andreas_kupries Exp $ # ------------------------------------------------------------------------- # Similar to TestFiles in devtools/testutilities.tcl, but not # identical. Here we do not expect source'able test suites, but data # files, organized in sections under a main directory. proc TestFilesProcess {maindir section inset outset -> nv lv iv dv ev script} { upvar 1 $nv n $lv label $dv data $ev expected $iv inputfile set pattern $maindir/$section/$inset/* set files [TestFilesGlob $pattern] if {![llength $files]} { return -code error "No files matching \"$pattern\"" } foreach src $files { if {[string match *README* $src]} continue if {[file isdirectory $src]} continue set srcname [file tail $src] set exp [localPath $maindir]/$section/$outset/$srcname set data [fileutil::cat -translation binary -encoding utf-8 $src] set expected [string trim [fileutil::cat -translation binary -encoding utf-8 $exp]] set expected [string map [list \ @sak @sak \ @line @line \ {@ %d} {@ %d} \ {@ %p} {@ %p} \ @ $::tcltest::testsDirectory] $expected] regexp -- {^([0-9]+)} $srcname -> n regsub -all -- {^[0-9]+} $srcname {} label scan $n %d n set label [string trim [string map {_ { }} $label]] set inputfile $src |
︙ | ︙ | |||
267 268 269 270 271 272 273 274 | } foreach ca [$ta children $a] cb [$tb children $b] { match_node $ta $ca $tb $cb } return } # ------------------------------------------------------------------------- | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 237 238 239 240 241 242 243 244 245 | } foreach ca [$ta children $a] cb [$tb children $b] { match_node $ta $ca $tb $cb } return } # ------------------------------------------------------------------------- return |
Deleted modules/pt/tests/data/gr/def/0_sequence.
|
| < < |
Deleted modules/pt/tests/data/gr/def/1_sym-sequence.
|
| < < < |
Deleted modules/pt/tests/data/gr/def/2_choice.
|
| < < |
Deleted modules/pt/tests/data/gr/fail-choice-container-res/0_aleph.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice-container-res/1_anumber.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice-container-res/2_digup.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice-container-res/3_other.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice-oo-res/0_aleph.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice-oo-res/1_anumber.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice-oo-res/2_digup.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice-oo-res/3_other.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice-snit-res/0_aleph.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice-snit-res/1_anumber.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice-snit-res/2_digup.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice-snit-res/3_other.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice/0_aleph.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice/1_anumber.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice/2_digup.
|
| < |
Deleted modules/pt/tests/data/gr/fail-choice/3_other.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sequence-container-res/0_abe.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sequence-container-res/1_b.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sequence-oo-res/0_abe.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sequence-oo-res/1_b.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sequence-snit-res/0_abe.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sequence-snit-res/1_b.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sequence/0_abe.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sequence/1_b.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sym-sequence-container-res/0_abe.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sym-sequence-container-res/1_b.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sym-sequence-oo-res/0_abe.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sym-sequence-oo-res/1_b.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sym-sequence-snit-res/0_abe.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sym-sequence-snit-res/1_b.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sym-sequence/0_abe.
|
| < |
Deleted modules/pt/tests/data/gr/fail-sym-sequence/1_b.
|
| < |
Deleted modules/pt/tests/data/gr/ok-choice-res/0_alpha.
Deleted modules/pt/tests/data/gr/ok-choice-res/1_digit.
Deleted modules/pt/tests/data/gr/ok-choice-res/2_anumeric.
Deleted modules/pt/tests/data/gr/ok-choice/0_alpha.
|
| < |
Deleted modules/pt/tests/data/gr/ok-choice/1_digit.
|
| < |
Deleted modules/pt/tests/data/gr/ok-choice/2_anumeric.
|
| < |
Deleted modules/pt/tests/data/gr/ok-sequence-res/0_abc.
Deleted modules/pt/tests/data/gr/ok-sequence/0_abc.
|
| < |
Deleted modules/pt/tests/data/gr/ok-sym-sequence-res/0_abc.
|
| < |
Deleted modules/pt/tests/data/gr/ok-sym-sequence/0_abc.
|
| < |
Changes to modules/pt/tests/data/ok/peg_cparam-critcl/0_basic_arithmetic.
︙ | ︙ | |||
380 381 382 383 384 385 386 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } if ((tc->num + len) >= tc->max) { int new = len + (tc->max ? (2 * tc->max) : RDE_STACK_INITIAL_SIZE); char* str = ckrealloc (tc->str, new * sizeof(char)); ASSERT (str,"Memory allocation failure for token character array"); tc->max = new; |
︙ | ︙ | |||
1958 1959 1960 1961 1962 1963 1964 | /* * value Symbol 'MulOp' */ static void sym_MulOp (RDE_PARAM p) { /* | | | 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 | /* * value Symbol 'MulOp' */ static void sym_MulOp (RDE_PARAM p) { /* * [*/] */ if (rde_param_i_symbol_start (p, 14)) return ; rde_param_i_next_class (p, "*/", 12); rde_param_i_symbol_done_leaf (p, 14, 13); return; } |
︙ | ︙ |
Changes to modules/pt/tests/data/ok/peg_cparam-critcl/10_notahead.
︙ | ︙ | |||
380 381 382 383 384 385 386 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } if ((tc->num + len) >= tc->max) { int new = len + (tc->max ? (2 * tc->max) : RDE_STACK_INITIAL_SIZE); char* str = ckrealloc (tc->str, new * sizeof(char)); ASSERT (str,"Memory allocation failure for token character array"); tc->max = new; |
︙ | ︙ |
Changes to modules/pt/tests/data/ok/peg_cparam-critcl/11_epsilon.
︙ | ︙ | |||
380 381 382 383 384 385 386 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } if ((tc->num + len) >= tc->max) { int new = len + (tc->max ? (2 * tc->max) : RDE_STACK_INITIAL_SIZE); char* str = ckrealloc (tc->str, new * sizeof(char)); ASSERT (str,"Memory allocation failure for token character array"); tc->max = new; |
︙ | ︙ |
Changes to modules/pt/tests/data/ok/peg_cparam-critcl/1_functions.
︙ | ︙ | |||
380 381 382 383 384 385 386 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } if ((tc->num + len) >= tc->max) { int new = len + (tc->max ? (2 * tc->max) : RDE_STACK_INITIAL_SIZE); char* str = ckrealloc (tc->str, new * sizeof(char)); ASSERT (str,"Memory allocation failure for token character array"); tc->max = new; |
︙ | ︙ |
Changes to modules/pt/tests/data/ok/peg_cparam-critcl/2_fun_arithmetic.
︙ | ︙ | |||
380 381 382 383 384 385 386 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } if ((tc->num + len) >= tc->max) { int new = len + (tc->max ? (2 * tc->max) : RDE_STACK_INITIAL_SIZE); char* str = ckrealloc (tc->str, new * sizeof(char)); ASSERT (str,"Memory allocation failure for token character array"); tc->max = new; |
︙ | ︙ | |||
1985 1986 1987 1988 1989 1990 1991 | /* * value Symbol 'MulOp' */ static void sym_MulOp (RDE_PARAM p) { /* | | | 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 | /* * value Symbol 'MulOp' */ static void sym_MulOp (RDE_PARAM p) { /* * [*/] */ if (rde_param_i_symbol_start (p, 16)) return ; rde_param_i_next_class (p, "*/", 14); rde_param_i_symbol_done_leaf (p, 16, 15); return; } |
︙ | ︙ |
Changes to modules/pt/tests/data/ok/peg_cparam-critcl/3_peg_itself.
︙ | ︙ | |||
380 381 382 383 384 385 386 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } if ((tc->num + len) >= tc->max) { int new = len + (tc->max ? (2 * tc->max) : RDE_STACK_INITIAL_SIZE); char* str = ckrealloc (tc->str, new * sizeof(char)); ASSERT (str,"Memory allocation failure for token character array"); tc->max = new; |
︙ | ︙ |
Changes to modules/pt/tests/data/ok/peg_cparam-critcl/4_choice.
︙ | ︙ | |||
380 381 382 383 384 385 386 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } if ((tc->num + len) >= tc->max) { int new = len + (tc->max ? (2 * tc->max) : RDE_STACK_INITIAL_SIZE); char* str = ckrealloc (tc->str, new * sizeof(char)); ASSERT (str,"Memory allocation failure for token character array"); tc->max = new; |
︙ | ︙ |
Changes to modules/pt/tests/data/ok/peg_cparam-critcl/5_sequence.
︙ | ︙ | |||
380 381 382 383 384 385 386 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } if ((tc->num + len) >= tc->max) { int new = len + (tc->max ? (2 * tc->max) : RDE_STACK_INITIAL_SIZE); char* str = ckrealloc (tc->str, new * sizeof(char)); ASSERT (str,"Memory allocation failure for token character array"); tc->max = new; |
︙ | ︙ |
Changes to modules/pt/tests/data/ok/peg_cparam-critcl/6_optional.
︙ | ︙ | |||
380 381 382 383 384 385 386 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } if ((tc->num + len) >= tc->max) { int new = len + (tc->max ? (2 * tc->max) : RDE_STACK_INITIAL_SIZE); char* str = ckrealloc (tc->str, new * sizeof(char)); ASSERT (str,"Memory allocation failure for token character array"); tc->max = new; |
︙ | ︙ |
Changes to modules/pt/tests/data/ok/peg_cparam-critcl/7_kleene.
︙ | ︙ | |||
380 381 382 383 384 385 386 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } if ((tc->num + len) >= tc->max) { int new = len + (tc->max ? (2 * tc->max) : RDE_STACK_INITIAL_SIZE); char* str = ckrealloc (tc->str, new * sizeof(char)); ASSERT (str,"Memory allocation failure for token character array"); tc->max = new; |
︙ | ︙ |
Changes to modules/pt/tests/data/ok/peg_cparam-critcl/8_pkleene.
︙ | ︙ | |||
380 381 382 383 384 385 386 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } if ((tc->num + len) >= tc->max) { int new = len + (tc->max ? (2 * tc->max) : RDE_STACK_INITIAL_SIZE); char* str = ckrealloc (tc->str, new * sizeof(char)); ASSERT (str,"Memory allocation failure for token character array"); tc->max = new; |
︙ | ︙ |
Changes to modules/pt/tests/data/ok/peg_cparam-critcl/9_ahead.
︙ | ︙ | |||
380 381 382 383 384 385 386 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { | | | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 | { long int base = tc->num; long int off = tc->num; char* ch; int clen; Tcl_UniChar uni; if (len < 0) { len = strlen (ch); } if ((tc->num + len) >= tc->max) { int new = len + (tc->max ? (2 * tc->max) : RDE_STACK_INITIAL_SIZE); char* str = ckrealloc (tc->str, new * sizeof(char)); ASSERT (str,"Memory allocation failure for token character array"); tc->max = new; |
︙ | ︙ |
Changes to modules/pt/tests/data/ok/peg_cparam/0_basic_arithmetic.
︙ | ︙ | |||
281 282 283 284 285 286 287 | /* * value Symbol 'MulOp' */ <<attributes>> void <<ns>>sym_MulOp (<<STATE>> <<state>>) { <<prelude>> /* | | | 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 | /* * value Symbol 'MulOp' */ <<attributes>> void <<ns>>sym_MulOp (<<STATE>> <<state>>) { <<prelude>> /* * [*/] */ if (rde_param_i_symbol_start (<<state>>, 14)) return ; rde_param_i_next_class (<<state>>, "*/", 12); rde_param_i_symbol_done_leaf (<<state>>, 14, 13); return; } |
︙ | ︙ |
Changes to modules/pt/tests/data/ok/peg_cparam/2_fun_arithmetic.
︙ | ︙ | |||
308 309 310 311 312 313 314 | /* * value Symbol 'MulOp' */ <<attributes>> void <<ns>>sym_MulOp (<<STATE>> <<state>>) { <<prelude>> /* | | | 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 | /* * value Symbol 'MulOp' */ <<attributes>> void <<ns>>sym_MulOp (<<STATE>> <<state>>) { <<prelude>> /* * [*/] */ if (rde_param_i_symbol_start (<<state>>, 16)) return ; rde_param_i_next_class (<<state>>, "*/", 14); rde_param_i_symbol_done_leaf (<<state>>, 16, 15); return; } |
︙ | ︙ |
Deleted modules/pt/tests/pt_pgen.tests.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Changes to modules/struct/list.tcl.
︙ | ︙ | |||
754 755 756 757 758 759 760 | # # Side effects: # None of its own, but the command prefix can perform arbitrary actions. proc ::struct::list::Lfilter {sequence cmdprefix} { # Shortcut when nothing is to be done. if {[::llength $sequence] == 0} {return $sequence} | | | 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 | # # Side effects: # None of its own, but the command prefix can perform arbitrary actions. proc ::struct::list::Lfilter {sequence cmdprefix} { # Shortcut when nothing is to be done. if {[::llength $sequence] == 0} {return $sequence} return [Lfold $sequence {} [::list ::struct::list::FTest $cmdprefix]] } proc ::struct::list::FTest {cmdprefix result item} { set pass [uplevel 1 [::linsert $cmdprefix end $item]] if {$pass} {::lappend result $item} return $result } |
︙ | ︙ | |||
828 829 830 831 832 833 834 | foreach {pv fv} $args break upvar 1 $pv pass $fv fail if {[::llength $sequence] == 0} { set pass {} set fail {} return {0 0} } | | | 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 | foreach {pv fv} $args break upvar 1 $pv pass $fv fail if {[::llength $sequence] == 0} { set pass {} set fail {} return {0 0} } foreach {pass fail} [Lfold $sequence {} [::list ::struct::list::PFTest $cmdprefix]] break return [::list [llength $pass] [llength $fail]] } else { return -code error \ "wrong#args: should be \"::struct::list::Lsplit sequence cmdprefix ?passVar failVar?" } } |
︙ | ︙ | |||
1821 1822 1823 1824 1825 1826 1827 | ## Ready namespace eval ::struct { # Get 'list::list' into the general structure namespace. namespace import -force list::list namespace export list } | | | 1821 1822 1823 1824 1825 1826 1827 1828 | ## Ready namespace eval ::struct { # Get 'list::list' into the general structure namespace. namespace import -force list::list namespace export list } package provide struct::list 1.8.2 |
Changes to modules/struct/list.test.
︙ | ︙ | |||
496 497 498 499 500 501 502 | filter {3 5 7} even } {} test filter-4.4 {filter command} { filter {2 4 6} even } {2 4 6} | < < < < < < < < < < < < < < < < < < < < | 496 497 498 499 500 501 502 503 504 505 506 507 508 509 | filter {3 5 7} even } {} test filter-4.4 {filter command} { filter {2 4 6} even } {2 4 6} #---------------------------------------------------------------------- interp alias {} filterfor {} ::struct::list::list filterfor test filterfor-4.1 {filterfor command} { filterfor i {1 2 3 4 5 6 7 8} {($i % 2) == 0} } {2 4 6 8} |
︙ | ︙ | |||
574 575 576 577 578 579 580 | list [lsplit {3 5 7} even pass fail] $pass $fail } {{0 3} {} {3 5 7}} test split-4.8 {split command} { list [lsplit {2 4 6} even pass fail] $pass $fail } {{3 0} {2 4 6} {}} | < < < < < < < < < < < | 554 555 556 557 558 559 560 561 562 563 564 565 566 567 | list [lsplit {3 5 7} even pass fail] $pass $fail } {{0 3} {} {3 5 7}} test split-4.8 {split command} { list [lsplit {2 4 6} even pass fail] $pass $fail } {{3 0} {2 4 6} {}} #---------------------------------------------------------------------- interp alias {} shift {} ::struct::list::list shift test shift-4.1 {shift command} { set v {1 2 3 4 5 6 7 8} list [shift v] $v |
︙ | ︙ |
Changes to modules/struct/matrix.man.
1 | [comment {-*- tcl -*-}] | | | 1 2 3 4 5 6 7 8 9 | [comment {-*- tcl -*-}] [manpage_begin struct::matrix n 2.0.1] [keywords matrix] [copyright {2002-2013 Andreas Kupries <[email protected]>}] [moddesc {Tcl Data Structures}] [titledesc {Create and manipulate matrix objects}] [category {Data structures}] [require Tcl 8.2] [require struct::matrix [opt 2.0.3]] |
︙ | ︙ | |||
432 433 434 435 436 437 438 | submatrix whose top-left cell is specified by the two indices. If the sublists of the outerlist are not of equal length the shorter sublists will be filled with empty strings to the length of the longest sublist. If the submatrix specified by the top-left cell and the number of rows and columns in the [arg values] extends beyond the matrix we are modifying the over-extending parts of the values are ignored, i.e. essentially cut off. This subcommand expects its input | | | 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 | submatrix whose top-left cell is specified by the two indices. If the sublists of the outerlist are not of equal length the shorter sublists will be filled with empty strings to the length of the longest sublist. If the submatrix specified by the top-left cell and the number of rows and columns in the [arg values] extends beyond the matrix we are modifying the over-extending parts of the values are ignored, i.e. essentially cut off. This subcommand expects its input in the format as returned by [method getrect]. [call [arg matrixName] [method {set row}] [arg {row values}]] Sets the values in the cells identified by the row index to the elements of the list provided as the third argument. Each element of the list is assigned to one cell, with the first element going into the cell in column 0 and then upward. If there are less values in the |
︙ | ︙ | |||
489 490 491 492 493 494 495 | The examples below assume a 5x5 matrix M with the first row containing the values 1 to 5, with 1 in the top-left cell. Each other row contains the contents of the row above it, rotated by one cell to the right. [para] [example { | | | | | 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 | The examples below assume a 5x5 matrix M with the first row containing the values 1 to 5, with 1 in the top-left cell. Each other row contains the contents of the row above it, rotated by one cell to the right. [para] [example { % M getrect 0 0 4 4 {{1 2 3 4 5} {5 1 2 3 4} {4 5 1 2 3} {3 4 5 1 2} {2 3 4 5 1}} }] [para] [example { % M setrect 1 1 {{0 0 0} {0 0 0} {0 0 0}} % M getrect 0 0 4 4 {{1 2 3 4 5} {5 0 0 0 4} {4 0 0 0 3} {3 0 0 0 2} {2 3 4 5 1}} }] [para] Assuming that the style definitions in the example section of the manpage for the package [package report] are loaded into the |
︙ | ︙ |
Changes to modules/struct/pkgIndex.tcl.
︙ | ︙ | |||
14 15 16 17 18 19 20 | 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]] package ifneeded struct::tree 1.2.2 [list source [file join $dir tree1.tcl]] package ifneeded struct::matrix 1.2.1 [list source [file join $dir matrix1.tcl]] if {![package vsatisfies [package provide Tcl] 8.4]} {return} | | | 14 15 16 17 18 19 20 21 22 23 | 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]] package ifneeded struct::tree 1.2.2 [list source [file join $dir tree1.tcl]] package ifneeded struct::matrix 1.2.1 [list source [file join $dir matrix1.tcl]] if {![package vsatisfies [package provide Tcl] 8.4]} {return} package ifneeded struct::list 1.8.2 [list source [file join $dir list.tcl]] package ifneeded struct::graph 2.4 [list source [file join $dir graph.tcl]] package ifneeded struct::graph::op 0.11.3 [list source [file join $dir graphops.tcl]] |
Changes to modules/struct/struct_list.man.
1 2 | [comment {-*- tcl -*- doctools manpage}] [comment {$Id: struct_list.man,v 1.24 2010/10/05 21:47:25 andreas_kupries Exp $}] | < | | 1 2 3 4 5 6 7 8 9 10 | [comment {-*- tcl -*- doctools manpage}] [comment {$Id: struct_list.man,v 1.24 2010/10/05 21:47:25 andreas_kupries Exp $}] [manpage_begin struct::list n 1.8.2] [keywords assign] [keywords common] [keywords comparison] [keywords diff] [keywords differential] [keywords equal] [keywords equality] |
︙ | ︙ | |||
36 37 38 39 40 41 42 | [keywords swapping] [copyright {2003-2005 by Kevin B. Kenny. All rights reserved}] [copyright {2003-2012 Andreas Kupries <[email protected]>}] [moddesc {Tcl Data Structures}] [titledesc {Procedures for manipulating lists}] [category {Data structures}] [require Tcl 8.4] | | | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | [keywords swapping] [copyright {2003-2005 by Kevin B. Kenny. All rights reserved}] [copyright {2003-2012 Andreas Kupries <[email protected]>}] [moddesc {Tcl Data Structures}] [titledesc {Procedures for manipulating lists}] [category {Data structures}] [require Tcl 8.4] [require struct::list [opt 1.8.2]] [description] [para] The [cmd ::struct::list] namespace contains several useful commands for processing Tcl lists. Generally speaking, they implement algorithms more complex or specialized than the ones provided by Tcl |
︙ | ︙ |
Changes to modules/tar/pkgIndex.tcl.
1 2 3 4 | if {![package vsatisfies [package provide Tcl] 8.4]} { # PRAGMA: returnok return } | | | 1 2 3 4 5 | if {![package vsatisfies [package provide Tcl] 8.4]} { # PRAGMA: returnok return } package ifneeded tar 0.9 [list source [file join $dir tar.tcl]] |
Changes to modules/tar/tar.man.
|
| | | 1 2 3 4 5 6 7 8 | [vset PACKAGE_VERSION 0.9] [comment {-*- tcl -*- doctools manpage}] [manpage_begin tar n [vset PACKAGE_VERSION]] [keywords archive] [keywords {tape archive}] [keywords tar] [moddesc {Tar file handling}] [titledesc {Tar file creation, extraction & manipulation}] |
︙ | ︙ |
Changes to modules/tar/tar.tcl.
︙ | ︙ | |||
8 9 10 11 12 13 14 | # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # RCS: @(#) $Id: tar.tcl,v 1.17 2012/09/11 17:22:24 andreas_kupries Exp $ package require Tcl 8.4 | | | 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: tar.tcl,v 1.17 2012/09/11 17:22:24 andreas_kupries Exp $ package require Tcl 8.4 package provide tar 0.9 namespace eval ::tar {} proc ::tar::parseOpts {acc opts} { array set flags $acc foreach {x y} $acc {upvar $x $x} |
︙ | ︙ | |||
141 142 143 144 145 146 147 | fconfigure $fh -encoding binary -translation lf -eofchar {} } set ret {} while {![eof $fh]} { array set header [readHeader [read $fh 512]] HandleLongLink $fh header if {$header(name) == ""} break | < | 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | fconfigure $fh -encoding binary -translation lf -eofchar {} } set ret {} while {![eof $fh]} { array set header [readHeader [read $fh 512]] HandleLongLink $fh header if {$header(name) == ""} break lappend ret $header(prefix)$header(name) seekorskip $fh [expr {$header(size) + [pad $header(size)]}] current } if {!$chan} { close $fh } return $ret |
︙ | ︙ | |||
165 166 167 168 169 170 171 | fconfigure $fh -encoding binary -translation lf -eofchar {} } set ret {} while {![eof $fh]} { array set header [readHeader [read $fh 512]] HandleLongLink $fh header if {$header(name) == ""} break | < | 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | fconfigure $fh -encoding binary -translation lf -eofchar {} } set ret {} while {![eof $fh]} { array set header [readHeader [read $fh 512]] HandleLongLink $fh header if {$header(name) == ""} break seekorskip $fh [expr {$header(size) + [pad $header(size)]}] current if {$file != "" && "$header(prefix)$header(name)" != $file} {continue} set header(type) [string map {0 file 5 directory 3 characterSpecial 4 blockSpecial 6 fifo 2 link} $header(type)] set header(mode) [string range $header(mode) 2 end] lappend ret $header(prefix)$header(name) [list mode $header(mode) uid $header(uid) gid $header(gid) \ size $header(size) mtime $header(mtime) type $header(type) linkname $header(linkname) \ uname $header(uname) gname $header(gname) devmajor $header(devmajor) devminor $header(devminor)] |
︙ | ︙ | |||
194 195 196 197 198 199 200 | fconfigure $fh -encoding binary -translation lf -eofchar {} } while {![eof $fh]} { set data [read $fh 512] array set header [readHeader $data] HandleLongLink $fh header if {$header(name) == ""} break | < | 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | fconfigure $fh -encoding binary -translation lf -eofchar {} } while {![eof $fh]} { set data [read $fh 512] array set header [readHeader $data] HandleLongLink $fh header if {$header(name) == ""} break set name [string trimleft $header(prefix)$header(name) /] if {$name == $file} { set file [read $fh $header(size)] if {!$chan} { close $fh } return $file |
︙ | ︙ | |||
237 238 239 240 241 242 243 | set fh [::open $tar] fconfigure $fh -encoding binary -translation lf -eofchar {} } while {![eof $fh]} { array set header [readHeader [read $fh 512]] HandleLongLink $fh header if {$header(name) == ""} break | < | 234 235 236 237 238 239 240 241 242 243 244 245 246 247 | set fh [::open $tar] fconfigure $fh -encoding binary -translation lf -eofchar {} } while {![eof $fh]} { array set header [readHeader [read $fh 512]] HandleLongLink $fh header if {$header(name) == ""} break set name [string trimleft $header(prefix)$header(name) /] if {![string match $pattern $name] || ($nooverwrite && [file exists $name])} { seekorskip $fh [expr {$header(size) + [pad $header(size)]}] current continue } set name [file join $dir $name] |
︙ | ︙ | |||
377 378 379 380 381 382 383 | set ouid [format %o $A(uid)] set omtime [format %o $A(mtime)] set name [string trimleft $name /] if {[string length $name] > 255} { return -code error "path name over 255 chars" } elseif {[string length $name] > 100} { | < < < < | | | 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 | set ouid [format %o $A(uid)] set omtime [format %o $A(mtime)] set name [string trimleft $name /] if {[string length $name] > 255} { return -code error "path name over 255 chars" } elseif {[string length $name] > 100} { set prefix [string range $name 0 end-100] set name [string range $name end-99 end] } else { set prefix "" } set header [binary format a100A8A8A8A12A12A8a1a100A6a2a32a32a8a8a155a12 \ $name $A(mode)\x00 $ouid\x00 $ogid\x00\ $osize\x00 $omtime\x00 {} $type \ |
︙ | ︙ | |||
493 494 495 496 497 498 499 | while {![eof $fh]} { array set header [readHeader [read $fh 512]] if {$header(name) == ""} { puts -nonewline $tfh [string repeat \x00 1024] break } | < | 485 486 487 488 489 490 491 492 493 494 495 496 497 498 | while {![eof $fh]} { array set header [readHeader [read $fh 512]] if {$header(name) == ""} { puts -nonewline $tfh [string repeat \x00 1024] break } set name $header(prefix)$header(name) set len [expr {$header(size) + [pad $header(size)]}] if {[lsearch $files $name] > -1} { seek $fh $len current } else { seek $fh -512 current fcopy $fh $tfh -size [expr {$len + 512}] |
︙ | ︙ |
Changes to modules/tar/tar.test.
1 2 3 4 5 6 7 8 9 10 11 12 13 | # -*- tcl -*- # These tests are in the public domain # ------------------------------------------------------------------------- source [file join \ [file dirname [file dirname [file normalize [info script]]]] \ devtools testutilities.tcl] testsNeedTcl 8.5 ; # Virt channel support! testsNeedTcltest 1.0 support { use virtchannel_base/memchan.tcl tcl::chan::memchan | | | | | | | < | | | | | | | > | > > | < < < < < < < < < < < < < < < < < | 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 | # -*- tcl -*- # These tests are in the public domain # ------------------------------------------------------------------------- source [file join \ [file dirname [file dirname [file normalize [info script]]]] \ devtools testutilities.tcl] testsNeedTcl 8.5 ; # Virt channel support! testsNeedTcltest 1.0 support { use virtchannel_base/memchan.tcl tcl::chan::memchan useLocalFile test-support.tcl } testing { useLocal tar.tcl tar } # ------------------------------------------------------------------------- test test-stream {} -setup setup1 -body { string length [read $chan1] } -cleanup cleanup1 -result 128000 test tar-pad {} -body { tar::pad 230 } -result {282} test tar-skip {} -setup setup1 -body { tar::skip $chan1 10 lappend res [read $chan1 10] tar::skip $chan1 72313 lappend res [read $chan1 10] } -cleanup cleanup1 -result {{6 7 8 9 10} {07 13908 1}} test tar-seekorskip-backwards {} -constraints tcl8.6plus -setup setup1 -body { # The zlib push stuff is Tcl 8.6+. Properly restrict the test. zlib push gzip $chan1 catch {tar::seekorskip $chan1 -10 start} cres lappend res $cres catch {tar::seekorskip $chan1 10 start} cres lappend res $cres catch {tar::seekorskip $chan1 -10 end} cres lappend res $cres catch {tar::seekorskip $chan1 10 end} cres lappend res $cres lappend res [read $chan1 10] } -cleanup cleanup1 -match glob -result [ list {WHENCE=start not supported*} \ {WHENCE=start not supported*} \ {WHENCE=end not supported*} \ {WHENCE=end not supported*} \ {1 2 3 4 5 } ] test tar-header {} -body { set file1 [dict get $filesys Dir1 File1] dict set file1 path /Dir1/File1 set header [header_posix $file1] set parsed [string trim [tar::readHeader $header]] set golden "name /Dir1/File1 mode 755 uid 13103 gid 18103 size 100 mtime 5706756101 cksum 3676 type 0 linkname {} magic ustar\0 version 00 uname {} gname {} devmajor 0 devminor 0 prefix {}" set len [string length $parsed] foreach {key value} $golden { if {[set value1 [dict get $parsed $key]] ne $value } { lappend res [list $key $value $value1] } } } -result {} test tar-add {} -setup setup1 -body { tar::create $chan1 [list $tmpdir/one/a $tmpdir/one/two/a $tmpdir/one/three/a] -chan seek $chan1 0 lappend res {*}[tar::contents $chan1 -chan] seek $chan1 0 lappend res [string trim [tar::get $chan1 $tmpdir/one/two/a -chan]] } -cleanup cleanup1 -result {tartest/one/a tartest/one/two/a tartest/one/three/a hello2} # ------------------------------------------------------------------------- testsuiteCleanup |
Added modules/tar/test-support.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 | proc stream {{size 128000}} { set chan [tcl::chan::memchan] set line {} while 1 { incr i set istring $i set ilen [string length $istring] if {$line ne {}} { append line { } incr size -1 } append line $istring incr size -$ilen if {$size < 1} { set line [string range $line 0 end-[expr {abs(1-$size)}]] puts $chan $line break } if {$i % 10 == 0} { puts $chan $line incr size -1 ;# for the [puts] newline set line {} } } seek $chan 0 return $chan } proc header_posix {tarball} { dict with tarball {} tar::formatHeader $path \ [dict create \ mode $mode \ type $type \ uid $uid \ gid $gid \ size $size \ mtime $mtime] } proc setup1 {} { variable chan1 variable res {} variable tmpdir tartest tcltest::makeDirectory $tmpdir foreach directory { one one/two one/three } { tcltest::makeDirectory $tmpdir/$directory set chan [open $tmpdir/$directory/a w] puts $chan hello[incr i] close $chan } set chan1 [stream] } proc cleanup1 {} { variable chan1 close $chan1 tcltest::removeDirectory tartest return } variable filesys { Dir1 { File1 { type 0 mode 755 uid 13103 gid 18103 size 100 mtime 5706756101 } } Dir2 { File1 { type 0 mode 644 uid 15103 gid 19103 size 100 mtime 5706776103 } } } |
Deleted modules/tar/tests/support.tcl.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted modules/uri/uri_urn.pcx.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Changes to modules/uuid/pkgIndex.tcl.
1 2 3 4 5 6 7 | # pkgIndex.tcl - # # uuid package index file # # $Id: pkgIndex.tcl,v 1.3 2012/11/19 19:28:24 andreas_kupries Exp $ if {![package vsatisfies [package provide Tcl] 8.2]} {return} | | | 1 2 3 4 5 6 7 8 | # pkgIndex.tcl - # # uuid package index file # # $Id: pkgIndex.tcl,v 1.3 2012/11/19 19:28:24 andreas_kupries Exp $ if {![package vsatisfies [package provide Tcl] 8.2]} {return} package ifneeded uuid 1.0.2 [list source [file join $dir uuid.tcl]] |
Changes to modules/uuid/uuid.man.
|
| < | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [manpage_begin uuid n 1.0.2] [keywords GUID] [keywords UUID] [moddesc {uuid}] [copyright {2004, Pat Thoyts <[email protected]>}] [titledesc {UUID generation and comparison}] [category {Hashes, checksums, and encryption}] [require Tcl 8.2] [require uuid [opt 1.0.2]] [description] [para] This package provides a generator of universally unique identifiers (UUID) also known as globally unique identifiers (GUID). This implementation follows the draft specification from (1) although this is actually an expired draft document. |
︙ | ︙ |
Changes to modules/uuid/uuid.tcl.
︙ | ︙ | |||
8 9 10 11 12 13 14 | # uuid: scheme: # http://www.globecom.net/ietf/draft/draft-kindel-uuid-uri-00.html # # Usage: uuid::uuid generate # uuid::uuid equal $idA $idB namespace eval uuid { | | | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # uuid: scheme: # http://www.globecom.net/ietf/draft/draft-kindel-uuid-uri-00.html # # Usage: uuid::uuid generate # uuid::uuid equal $idA $idB namespace eval uuid { variable version 1.0.2 variable accel array set accel {critcl 0} namespace export uuid variable uid if {![info exists uid]} { |
︙ | ︙ | |||
81 82 83 84 85 86 87 | foreach string [generate_tcl_machinfo] { md5::MD5Update $tok $string } set r [md5::MD5Final $tok] binary scan $r c* r # 3.4: set uuid versioning fields | | | 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | foreach string [generate_tcl_machinfo] { md5::MD5Update $tok $string } set r [md5::MD5Final $tok] binary scan $r c* r # 3.4: set uuid versioning fields lset r 8 [expr {([lindex $r 8] & 0x7F) | 0x40}] lset r 6 [expr {([lindex $r 6] & 0x0F) | 0x40}] return [binary format c* $r] } if {[string equal $tcl_platform(platform) "windows"] && [package provide critcl] != {}} { |
︙ | ︙ |
Changes to modules/websocket/pkgIndex.tcl.
1 2 3 4 5 6 7 8 9 10 | # 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. | | | 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 websocket 1.3 [list source [file join $dir websocket.tcl]] |
Changes to modules/websocket/websocket.man.
1 | [comment {-*- tcl -*- doctools manpage}] | < | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [comment {-*- tcl -*- doctools manpage}] [manpage_begin websocket n 1.3] [see_also http] [keywords http] [keywords internet] [keywords net] [keywords {rfc 6455}] [moddesc {websocket client and server}] [titledesc {Tcl implementation of the websocket protocol}] [category Networking] [require Tcl 8.4] [require http 2.7] [require logger] [require sha1] [require base64] [require websocket 1.3] [description] [para] NOTE: THIS DOCUMENTATION IS WORK IN PROGRESS... [para] |
︙ | ︙ | |||
297 298 299 300 301 302 303 | keepalive pings being sent along the connection. A zero or negative number will effectively turn off the feature. In servers, [const "-keepalive"] defaults to 30 seconds, and in clients, no pings are initiated. [def [const "-ping"]] is the text that is used during the automated pings. This text defaults to the empty string, leading to an empty ping. [list_end] | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 296 297 298 299 300 301 302 303 304 305 306 307 308 309 | keepalive pings being sent along the connection. A zero or negative number will effectively turn off the feature. In servers, [const "-keepalive"] defaults to 30 seconds, and in clients, no pings are initiated. [def [const "-ping"]] is the text that is used during the automated pings. This text defaults to the empty string, leading to an empty ping. [list_end] [list_end] [section Examples] [para] |
︙ | ︙ |
Changes to modules/websocket/websocket.tcl.
︙ | ︙ | |||
40 41 42 43 44 45 46 | # page of the library and could therefor be subject to change in the # future. namespace eval ::websocket { variable WS if { ! [info exists WS] } { array set WS { | | | 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | # page of the library and could therefor be subject to change in the # future. namespace eval ::websocket { variable WS if { ! [info exists WS] } { array set WS { loglevel "warn" maxlength 16777216 ws_magic "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" ws_version 13 id_gene 0 -keepalive 30 -ping "" } |
︙ | ︙ | |||
879 880 881 882 883 884 885 | } else { set dst "server" } set type [Type $Connection(read:mode)] # If the FIN bit is set, process the frame. if { $header & 0x8000 } { | | | 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 | } else { set dst "server" } set type [Type $Connection(read:mode)] # If the FIN bit is set, process the frame. if { $header & 0x8000 } { ${log}::debug "Received $len long $type final fragment from $dst" switch $opcode { 1 { # Text: decode and notify handler Push $sock text \ [encoding convertfrom utf-8 $Connection(read:msg)] } 2 { |
︙ | ︙ | |||
1017 1018 1019 1020 1021 1022 1023 | # Gather information about local and remote peer. if { [catch {fconfigure $sock -peername} sockinfo] == 0 } { set Connection(peername) [lindex $sockinfo 1] if { $Connection(peername) eq "" } { set Connection(peername) [lindex $sockinfo 0] } | < < < < | 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 | # Gather information about local and remote peer. if { [catch {fconfigure $sock -peername} sockinfo] == 0 } { set Connection(peername) [lindex $sockinfo 1] if { $Connection(peername) eq "" } { set Connection(peername) [lindex $sockinfo 0] } } if { [catch {fconfigure $sock -sockname} sockinfo] == 0 } { set Connection(sockname) [lindex $sockinfo 1] if { $Connection(sockname) eq "" } { set Connection(sockname) [lindex $sockinfo 0] } } # Listen to incoming traffic on socket and make sure we ping if # necessary. fconfigure $sock -translation binary -blocking on fileevent $sock readable [list [namespace current]::Receiver $sock] Liveness $sock |
︙ | ︙ | |||
1134 1135 1136 1137 1138 1139 1140 | "Protocol error during WebSocket connection with $OPEN(url)" \ $OPEN(handler) } ::http::cleanup $token unset $opener; # Always unset the temporary connection opening # array | < | 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 | "Protocol error during WebSocket connection with $OPEN(url)" \ $OPEN(handler) } ::http::cleanup $token unset $opener; # Always unset the temporary connection opening # array } # ::websocket::Finished -- Pass further on HTTP connection finalisation # # Pass further to Connected whenever the HTTP operation has # been finished as implemented by the HTTP package. |
︙ | ︙ | |||
1329 1330 1331 1332 1333 1334 1335 | } set OPEN(nonce) [::base64::encode $OPEN(nonce)] set HDR(Sec-WebSocket-Key) $OPEN(nonce) set HDR(Sec-WebSocket-Protocol) [join $protos ", "] set HDR(Sec-WebSocket-Version) $WS(ws_version) lappend cmd -headers [array get HDR] | | | | | | < < | > | < | 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 | } set OPEN(nonce) [::base64::encode $OPEN(nonce)] set HDR(Sec-WebSocket-Key) $OPEN(nonce) set HDR(Sec-WebSocket-Protocol) [join $protos ", "] set HDR(Sec-WebSocket-Version) $WS(ws_version) lappend cmd -headers [array get HDR] # Add our own handler to intercept the socket once connection has # been opened and established properly and make sure we keep alive # the socket so we can continue using it. In practice, what gets # called is the command that is specified by -command, even though # we would like to intercept this earlier on. This has to do with # the internals of the HTTP package. lappend cmd \ -handler [list [namespace current]::Connected $varname] \ -command [list [namespace current]::Finished $varname] \ -keepalive 1 # Now open the connection to the remote server using the HTTP # package... set sock "" if { [catch {eval $cmd} token] } { ${log}::error "Error while opening WebSocket connection to $url: $token" } else { |
︙ | ︙ | |||
1522 1523 1524 1525 1526 1527 1528 | set Connection(-ping) $v } } } } | | | 1515 1516 1517 1518 1519 1520 1521 1522 | set Connection(-ping) $v } } } } package provide websocket 1.3; |
Deleted modules/yaml/06eef112da.data.
|
| < < < < < < < |
Changes to modules/yaml/pkgIndex.tcl.
1 2 3 4 5 6 7 8 9 10 | # 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. | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # 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 yaml 0.3.6 [list source [file join $dir yaml.tcl]] package ifneeded huddle 0.1.5 [list source [file join $dir huddle.tcl]] |
Changes to modules/yaml/yaml.man.
1 | [comment {-*- tcl -*- doctools manpage}] | < | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | [comment {-*- tcl -*- doctools manpage}] [manpage_begin yaml n 0.3.6] [see_also base64] [see_also huddle] [see_also json] [keywords {data exchange}] [keywords huddle] [keywords parsing] [keywords {text processing}] [keywords yaml] [copyright {2008 KATO Kanryu <[email protected]>}] [moddesc {YAML processing}] [titledesc {YAML Format Encoder/Decoder}] [require Tcl 8.4] [require yaml [opt 0.3.6]] [description] [para] The [package yaml] package provides a simple Tcl-only library for parsing the YAML [uri http://www.yaml.org/] data exchange format as specified in [uri http://www.yaml.org/spec/1.1/]. |
︙ | ︙ |
Changes to modules/yaml/yaml.tcl.
︙ | ︙ | |||
12 13 14 15 16 17 18 | # # if {$::tcl_version < 8.5} { package require dict } | | | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # # if {$::tcl_version < 8.5} { package require dict } package provide yaml 0.3.6 package require cmdline package require huddle namespace eval ::yaml { namespace export load setOptions dict2dump list2dump variable data |
︙ | ︙ | |||
950 951 952 953 954 955 956 | return $token } # get a space separated token proc ::yaml::_getToken {} { variable data | | | 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 | return $token } # get a space separated token proc ::yaml::_getToken {} { variable data set reStr {^[^ \t\n,]+} set result [_getFoldedString $reStr] return $result } proc ::yaml::_skipSpaces {{commentSkip 0}} { variable data |
︙ | ︙ |
Changes to modules/yaml/yaml.test.
︙ | ︙ | |||
72 73 74 75 76 77 78 | lappend out $key $node } return $out } error } | < < < < < < | 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | lappend out $key $node } return $out } error } # ------------ # error ..... test yaml-1.1 "error" -body { set error1 { --- - [name , \{hr: avg \[\hr: avg\} \] ] |
︙ | ︙ |
Changes to modules/zip/decode.man.
|
| < | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [comment {-*- tcl -*- doctools manpage}] [manpage_begin zipfile::encode n 0.3] [keywords decompression zip] [copyright {2008-2012 Andreas Kupries}] [moddesc {Zip archive handling}] [titledesc {Access to zip archives}] [category File] [require Tcl 8.4] [require fileutil::magic::mimetype] [require fileutil::decode 0.2] [require Trf] [require zlibtcl] [require zipfile::decode [opt 0.4]] [description] [para] This package provides commands to decompress and access the contents of zip archives. [section API] |
︙ | ︙ | |||
88 89 90 91 92 93 94 | This command takes a dictionary describing the currently open zip archive file, as returned by [cmd ::zipfile::decode::archive], and check if the specified [arg path] is found in the archive. The result of the command is a boolean flag, [const true] if the path is found, and [const false] otherwise. | < < < < < < < | 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | This command takes a dictionary describing the currently open zip archive file, as returned by [cmd ::zipfile::decode::archive], and check if the specified [arg path] is found in the archive. The result of the command is a boolean flag, [const true] if the path is found, and [const false] otherwise. [comment ---------------------------------------------------------------------] [call [cmd ::zipfile::decode::open] [arg archive]] This command takes the path of a zip [arg archive] file and prepares it for decoding. The result of the command is the empty string. |
︙ | ︙ |
Changes to modules/zip/decode.tcl.
︙ | ︙ | |||
36 37 38 39 40 41 42 | zipfile::decode::close return $f } # ### ### ### ######### ######### ######### ## | < < < < < < < < < | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | zipfile::decode::close return $f } # ### ### ### ######### ######### ######### ## proc ::zipfile::decode::open {fname} { variable eoa if {[catch { set eoa [LocateEnd $fname] } msg]} { return -code error -errorcode {ZIP DECODE BAD ARCHIVE} \ "\"$fname\" is not a zip file" |
︙ | ︙ | |||
185 186 187 188 189 190 191 | # permission. A value of 0 indicates an older teabag where # the encoder did not yet support permissions. These we do not # change from the sustem defaults. Permissions are in the # lower 9 bits of the MSW. file attributes $dst -permissions \ [string map {0 --- 1 --x 2 -w- 3 -wx 4 r-- 5 r-x 6 rw- 7 rwx} \ | | | 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 | # permission. A value of 0 indicates an older teabag where # the encoder did not yet support permissions. These we do not # change from the sustem defaults. Permissions are in the # lower 9 bits of the MSW. file attributes $dst -permissions \ [string map {0 --- 1 --x 2 -w- 3 -wx 4 r-- 5 r-x 6 rw- 7 rwx} \ [format %o [expr {($fd(efattr) >> 16) & 0x1ff}]]] } # FUTURE: Run crc checksum on created file and compare to the # ......: stored information. return } |
︙ | ︙ | |||
671 672 673 674 675 676 677 | #-------------- ::close $fd return [array get cb] } # ### ### ### ######### ######### ######### ## Ready | | | 662 663 664 665 666 667 668 669 670 | #-------------- ::close $fd return [array get cb] } # ### ### ### ######### ######### ######### ## Ready package provide zipfile::decode 0.4 return |
Changes to modules/zip/pkgIndex.tcl.
1 2 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} package ifneeded zipfile::encode 0.3 [list source [file join $dir encode.tcl]] | | | 1 2 3 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} package ifneeded zipfile::encode 0.3 [list source [file join $dir encode.tcl]] package ifneeded zipfile::decode 0.4 [list source [file join $dir decode.tcl]] |
Changes to sak.tcl.
︙ | ︙ | |||
2173 2174 2175 2176 2177 2178 2179 | gd-gen-rpmspec puts "Created RPM spec file \"${package_name}.spec\"" } proc __release {} { # Regenerate PACKAGES, and extend | < < | 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 | gd-gen-rpmspec puts "Created RPM spec file \"${package_name}.spec\"" } proc __release {} { # Regenerate PACKAGES, and extend global argv argv0 distribution package_name package_version getpackage textutil textutil/textutil.tcl if {[llength $argv] != 2} { puts stderr "$argv0: wrong#args: release name sf-user-id" |
︙ | ︙ |
Changes to support/devel/sak/doc/kwic.txt.
︙ | ︙ | |||
620 621 622 623 624 625 626 | [manpage modules/debug/debug_timestamp.man debug::timestamp] [key decimal] [manpage modules/math/decimal.man math::decimal] [key declare] [manpage modules/term/ansi_code.man term::ansi::code] [key decompression] [manpage modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib] | | | 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 | [manpage modules/debug/debug_timestamp.man debug::timestamp] [key decimal] [manpage modules/math/decimal.man math::decimal] [key declare] [manpage modules/term/ansi_code.man term::ansi::code] [key decompression] [manpage modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib] [manpage modules/zip/decode.man zipfile::encode] [key decryption] [manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp] [manpage modules/virtchannel_transform/rot.man tcl::transform::rot] [key deferal] [manpage modules/uev/uevent_onidle.man uevent::onidle] [key define] [manpage modules/term/ansi_code.man term::ansi::code] |
︙ | ︙ | |||
3672 3673 3674 3675 3676 3677 3678 | [manpage modules/base64/yencode.man yencode] [key yencode] [manpage modules/base64/yencode.man yencode] [key zero] [manpage modules/virtchannel_base/nullzero.man tcl::chan::nullzero] [manpage modules/virtchannel_base/tcllib_zero.man tcl::chan::zero] [key zip] | | | 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 | [manpage modules/base64/yencode.man yencode] [key yencode] [manpage modules/base64/yencode.man yencode] [key zero] [manpage modules/virtchannel_base/nullzero.man tcl::chan::nullzero] [manpage modules/virtchannel_base/tcllib_zero.man tcl::chan::zero] [key zip] [manpage modules/zip/decode.man zipfile::encode] [manpage modules/zip/encode.man zipfile::encode] [key zlib] [manpage modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib] [key zoom] [manpage modules/map/map_slippy.man map::slippy] [manpage modules/map/map_slippy_cache.man map::slippy::cache] [manpage modules/map/map_slippy_fetcher.man map::slippy::fetcher] [index_end] |
Changes to support/devel/sak/doc/toc.txt.
︙ | ︙ | |||
136 137 138 139 140 141 142 | [item apps/dtplite.man dtplite {Lightweight DocTools Markup Processor}] [item modules/doctools/mpexpand.man mpexpand {Markup processor}] [item apps/tcldocstrip.man tcldocstrip {Tcl-based Docstrip Processor}] [item modules/tepam/tepam_doc_gen.man tepam::doc_gen {TEPAM DOC Generation, reference manual}] [item modules/textutil/expander.man textutil::expander {Procedures to process templates and expand text.}] [division_end] [division_start File] | | | 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | [item apps/dtplite.man dtplite {Lightweight DocTools Markup Processor}] [item modules/doctools/mpexpand.man mpexpand {Markup processor}] [item apps/tcldocstrip.man tcldocstrip {Tcl-based Docstrip Processor}] [item modules/tepam/tepam_doc_gen.man tepam::doc_gen {TEPAM DOC Generation, reference manual}] [item modules/textutil/expander.man textutil::expander {Procedures to process templates and expand text.}] [division_end] [division_start File] [item modules/zip/decode.man zipfile::encode {Access to zip archives}] [item modules/zip/encode.man zipfile::encode {Generation of zip archives}] [division_end] [division_start {File formats}] [item modules/exif/exif.man exif {Tcl EXIF extracts and parses EXIF fields from digital images}] [item modules/gpx/gpx.man gpx {Extracts waypoints, tracks and routes from GPX files}] [item modules/jpeg/jpeg.man jpeg {JPEG querying and manipulation of meta data}] [item modules/png/png.man png {PNG querying and manipulation of meta data}] |
︙ | ︙ | |||
1090 1091 1092 1093 1094 1095 1096 | [item modules/wip/wip.man wip {Word Interpreter}] [division_end] [division_start yaml] [item modules/yaml/huddle.man huddle {Create and manipulate huddle object}] [item modules/yaml/yaml.man yaml {YAML Format Encoder/Decoder}] [division_end] [division_start zip] | | | 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 | [item modules/wip/wip.man wip {Word Interpreter}] [division_end] [division_start yaml] [item modules/yaml/huddle.man huddle {Create and manipulate huddle object}] [item modules/yaml/yaml.man yaml {YAML Format Encoder/Decoder}] [division_end] [division_start zip] [item modules/zip/decode.man zipfile::encode {Access to zip archives}] [item modules/zip/encode.man zipfile::encode {Generation of zip archives}] [division_end] [division_end] [division_end] [toc_end] |
Changes to support/devel/sak/doc/toc_cats.txt.
︙ | ︙ | |||
136 137 138 139 140 141 142 | [item apps/dtplite.man dtplite {Lightweight DocTools Markup Processor}] [item modules/doctools/mpexpand.man mpexpand {Markup processor}] [item apps/tcldocstrip.man tcldocstrip {Tcl-based Docstrip Processor}] [item modules/tepam/tepam_doc_gen.man tepam::doc_gen {TEPAM DOC Generation, reference manual}] [item modules/textutil/expander.man textutil::expander {Procedures to process templates and expand text.}] [division_end] [division_start File] | | | 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | [item apps/dtplite.man dtplite {Lightweight DocTools Markup Processor}] [item modules/doctools/mpexpand.man mpexpand {Markup processor}] [item apps/tcldocstrip.man tcldocstrip {Tcl-based Docstrip Processor}] [item modules/tepam/tepam_doc_gen.man tepam::doc_gen {TEPAM DOC Generation, reference manual}] [item modules/textutil/expander.man textutil::expander {Procedures to process templates and expand text.}] [division_end] [division_start File] [item modules/zip/decode.man zipfile::encode {Access to zip archives}] [item modules/zip/encode.man zipfile::encode {Generation of zip archives}] [division_end] [division_start {File formats}] [item modules/exif/exif.man exif {Tcl EXIF extracts and parses EXIF fields from digital images}] [item modules/gpx/gpx.man gpx {Extracts waypoints, tracks and routes from GPX files}] [item modules/jpeg/jpeg.man jpeg {JPEG querying and manipulation of meta data}] [item modules/png/png.man png {PNG querying and manipulation of meta data}] |
︙ | ︙ |
Changes to support/devel/sak/doc/toc_mods.txt.
︙ | ︙ | |||
620 621 622 623 624 625 626 | [item modules/wip/wip.man wip {Word Interpreter}] [division_end] [division_start yaml] [item modules/yaml/huddle.man huddle {Create and manipulate huddle object}] [item modules/yaml/yaml.man yaml {YAML Format Encoder/Decoder}] [division_end] [division_start zip] | | | 620 621 622 623 624 625 626 627 628 629 630 631 | [item modules/wip/wip.man wip {Word Interpreter}] [division_end] [division_start yaml] [item modules/yaml/huddle.man huddle {Create and manipulate huddle object}] [item modules/yaml/yaml.man yaml {YAML Format Encoder/Decoder}] [division_end] [division_start zip] [item modules/zip/decode.man zipfile::encode {Access to zip archives}] [item modules/zip/encode.man zipfile::encode {Generation of zip archives}] [division_end] [division_end] [toc_end] |
Changes to support/installation/actions.tcl.
︙ | ︙ | |||
19 20 21 22 23 24 25 | proc _tcr {module libdir} { global distribution xcopy \ [file join $distribution modules $module] \ [file join $libdir $module] \ 1 *.tcl | < < < < < < < < < < < | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | proc _tcr {module libdir} { global distribution xcopy \ [file join $distribution modules $module] \ [file join $libdir $module] \ 1 *.tcl return } proc _doc {module libdir} { global distribution _tcl $module $libdir |
︙ | ︙ |
Changes to support/installation/modules.tcl.
︙ | ︙ | |||
107 108 109 110 111 112 113 | 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 | | | 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | 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 _tcl _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 Module sasl _tcl _man _exa Module sha1 _tcl _man _null |
︙ | ︙ |
Changes to support/releases/PACKAGES.
|
| | | | < | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @@ RELEASE 1.15 S3 1.0.0 SASL 1.3.2 SASL::NTLM 1.1.1 SASL::XGoogleToken 1.0.1 aes 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 |
︙ | ︙ | |||
27 28 29 30 31 32 33 | 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 | | < < < < | | | 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 | 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 counter 2.0.4 crc16 1.1.2 crc32 1.3.1 csv 0.8 des 1.1.0 dns 1.3.3 docstrip 1.2 docstrip::util 1.3 doctools 1.4.14 doctools::changelog 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 |
︙ | ︙ | |||
87 88 89 90 91 92 93 | 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 | < | | | | | | | | | | | | | | | | | 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 | 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 exif 1.1.2 fileutil 1.14.5 fileutil::decode 0.1 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.11 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.4 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.4 inifile 0.2.5 interp 0.1.2 interp::delegate::method 0.2 interp::delegate::proc 0.2 ip 1.2 irc 0.6.1 javascript 1.0.2 jpeg 0.4.0 json 1.1.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.1 math::calculus::symdiff 1.0 math::complexnumbers 1.0.2 math::constants 1.0.1 math::decimal 1.0.2 math::fourier 1.0.2 math::fuzzy 0.2.1 math::geometry 1.1.2 math::interpolate 1.0.3 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.8.0 md4 1.0.5 md5 1.4.4 md5 2.0.7 md5crypt 1.1.0 mime 1.5.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.1 nmea 1.0.0 nntp 0.2.1 oo::util 1.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 |
︙ | ︙ | |||
247 248 249 250 251 252 253 | 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 | | | | | < | | < < | | | | | | | | < | | | | | | 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 | 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 pt::peg::import 1 pt::peg::import::json 1 pt::peg::import::peg 1 pt::peg::interp 1 pt::peg::op 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 pt::peg::to::tclparam 1 pt::pgen 1.0.1 pt::rde 1.0.2 pt::tclparam::configuration::snit 1.0.1 pt::tclparam::configuration::tcloo 1.0.2 rc4 1.1.0 rcs 0.1 report 0.3.1 resolv 1.0.3 rest 1.0 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 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.2 struct::matrix 1.2.1 struct::matrix 2.0.2 struct::pool 1.2.1 struct::prioqueue 1.4 struct::queue 1.4.4 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.7.1 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 tcl::chan::memchan 1.0.2 tcl::chan::null 1 tcl::chan::nullzero 1 tcl::chan::random 1 tcl::chan::std 1.0.1 tcl::chan::string 1.0.1 tcl::chan::textwindow 1 tcl::chan::variable 1.0.2 tcl::chan::zero 1 tcl::randomseed 1 tcl::transform::adler32 1 tcl::transform::base64 1 tcl::transform::core 1 tcl::transform::counter 1 tcl::transform::crc32 1 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.4.0 term 0.1 term::ansi::code 0.1 term::ansi::code::attr 0.1 term::ansi::code::ctrl 0.1.2 term::ansi::code::macros 0.1 term::ansi::ctrl::unix 0.1.1 term::ansi::send 0.1 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.7.1 textutil::adjust 0.7.1 textutil::expander 1.3.1 textutil::repeat 0.7 textutil::split 0.7 textutil::string 0.7.1 textutil::tabify 0.7 textutil::trim 0.7 tie 1.1 tie::std::array 1.0 tie::std::dsource 1.0 tie::std::file 1.0.4 tie::std::growfile 1.0 |
︙ | ︙ | |||
387 388 389 390 391 392 393 | 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 | | | < | | | 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 | 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.2 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.1 valtype::imei 1 valtype::isbn 1 valtype::luhn 1 valtype::luhn5 1 valtype::usnpi 1 valtype::verhoeff 1 wip 1.2 wip 2.2 xsxp 1.0 yaml 0.3.6 yencode 1.1.3 zipfile::decode 0.2 zipfile::encode 0.1 |
Changes to support/releases/history/README-1.16.txt.
1 2 3 4 | Overview ======== 11 new packages in 7 modules | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Overview ======== 11 new packages in 7 modules 44 changed packages in 26 modules 288 internally changed packages in 100 modules 62 unchanged packages in 11 modules 411 packages, total in 114 modules, total New in tcllib 1.16 ================== Module Package New Version Comments ----------- ---------------------- ------------- ---------- |
︙ | ︙ | |||
32 33 34 35 36 37 38 | ================================ tcllib 1.15 tcllib 1.16 Module Package Old Version New Version Comments ------------------ ------------------------------------ ------------- ------------- ---------- aes aes 1.1 1.1.1 B D T coroutine coroutine::auto 1.1 1.1.1 B D | | | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | ================================ tcllib 1.15 tcllib 1.16 Module Package Old Version New Version Comments ------------------ ------------------------------------ ------------- ------------- ---------- aes aes 1.1 1.1.1 B D T coroutine coroutine::auto 1.1 1.1.1 B D dns ip 1.2 1.2.1 B D T ------------------ ------------------------------------ ------------- ------------- ---------- doctools doctools 1.4.14 1.4.17 B D T doctools::changelog 1 1.1 D ------------------ ------------------------------------ ------------- ------------- ---------- fileutil fileutil 1.14.5 1.14.6 B D T fileutil::decode 0.1 0.2 B ------------------ ------------------------------------ ------------- ------------- ---------- |
︙ | ︙ | |||
67 68 69 70 71 72 73 | pt::tclparam::configuration::tcloo 1.0.2 1.0.3 D T ------------------ ------------------------------------ ------------- ------------- ---------- rest rest 1.0 1.0.1 B D ------------------ ------------------------------------ ------------- ------------- ---------- sasl SASL 1.3.2 1.3.3 B D T SASL::NTLM 1.1.1 1.1.2 B D T ------------------ ------------------------------------ ------------- ------------- ---------- | < | | 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | pt::tclparam::configuration::tcloo 1.0.2 1.0.3 D T ------------------ ------------------------------------ ------------- ------------- ---------- rest rest 1.0 1.0.1 B D ------------------ ------------------------------------ ------------- ------------- ---------- sasl SASL 1.3.2 1.3.3 B D T SASL::NTLM 1.1.1 1.1.2 B D T ------------------ ------------------------------------ ------------- ------------- ---------- struct struct::matrix 1.2.1 1.2.1 D struct::matrix 2.0.2 2.0.3 D struct::queue 1.4.4 1.4.5 B D T ------------------ ------------------------------------ ------------- ------------- ---------- tar tar 0.7.1 0.9 B D T tepam tepam 0.4.0 0.5.0 B D T ------------------ ------------------------------------ ------------- ------------- ---------- term term::ansi::code 0.1 0.2 B D |
︙ | ︙ | |||
492 493 494 495 496 497 498 | page::reader::ser, page::reader::treeser, page::transform::mecpu, page::transform::reachable, page::transform::realizable, 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, pt::peg::container::peg, pt::peg::export::container, resolv, | | | | | 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 | page::reader::ser, page::reader::treeser, page::transform::mecpu, page::transform::reachable, page::transform::realizable, 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, pt::peg::container::peg, pt::peg::export::container, resolv, spf, struct, struct::list, text::write, tie::std::array, tie::std::dsource, tie::std::file, tie::std::growfile, tie::std::log, tie::std::rarray, transfer::copy::queue Legend Change Details Comments ------ ------- --------- Major API: ** incompatible ** API changes. Minor EF : Extended functionality, API. I : Major rewrite, but no API change |
︙ | ︙ |