diff options
author | Michał Górny <mgorny@gentoo.org> | 2017-12-08 19:45:42 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2017-12-08 19:47:12 +0100 |
commit | 2714e9a707652692bb0290a1f154768b409f863e (patch) | |
tree | 1a5b5db6e180fdb3579eaeb799261d2b4f1d10ea /dev-tcltk | |
parent | dev-python/cvxopt: Drop old (diff) | |
download | gentoo-2714e9a707652692bb0290a1f154768b409f863e.tar.gz gentoo-2714e9a707652692bb0290a1f154768b409f863e.tar.bz2 gentoo-2714e9a707652692bb0290a1f154768b409f863e.zip |
dev-tcltk/tcllib: [QA] Move patches to distfiles
While at it, also collect the currently separate patches into one
tarball.
Closes: https://bugs.gentoo.org/620570
Diffstat (limited to 'dev-tcltk')
-rw-r--r-- | dev-tcltk/tcllib/Manifest | 8 | ||||
-rw-r--r-- | dev-tcltk/tcllib/files/tcllib-1.15-XSS-vuln.patch | 907 | ||||
-rw-r--r-- | dev-tcltk/tcllib/files/tcllib-1.15-tcl8.6-test.patch | 411 | ||||
-rw-r--r-- | dev-tcltk/tcllib/files/tcllib-1.15-test.patch | 81 | ||||
-rw-r--r-- | dev-tcltk/tcllib/files/tcllib-1.16-XSS-vuln.patch | 572 | ||||
-rw-r--r-- | dev-tcltk/tcllib/files/tcllib-1.16-test.patch | 81 | ||||
-rw-r--r-- | dev-tcltk/tcllib/tcllib-1.15-r2.ebuild | 13 | ||||
-rw-r--r-- | dev-tcltk/tcllib/tcllib-1.16.ebuild | 7 |
8 files changed, 14 insertions, 2066 deletions
diff --git a/dev-tcltk/tcllib/Manifest b/dev-tcltk/tcllib/Manifest index 816a671a73e2..0659ab857d34 100644 --- a/dev-tcltk/tcllib/Manifest +++ b/dev-tcltk/tcllib/Manifest @@ -1,4 +1,4 @@ -DIST Tcllib-1.16.tar.bz2 6089076 SHA256 033334306d3ffc499c8830d393bf7528227e49c68077b3e9247c4171b15be012 SHA512 5e0656c178c0fae907c101b5324f04ba1bb5c26f4d1015868194dbb393e88a281ecf66bc4701167db24ddb526b87acfd88223e0e9e6db1f9d0ffb919b3372752 WHIRLPOOL 543f5ef8b337eb2c34f90201c829f20cfd3beb0f7dcf146f4d27b66f0b8796bf518d44dad31e2be66857b50a515b5a10ae8e394d6b393e1b202903b6b68f04aa -DIST tcllib-1.15-manpage-rename.patch.xz 3188 SHA256 d86f60e98013fe35a1038247e1992a0afc9314462d693ee10ee30ded501e1869 SHA512 9bcdb6c7dcb492a58e767529a8bb5a2c83912577ae124fec40f3bbd6fb283a4befb2dfc3d7a986b287ba9709bba7261b676d78441c8be0f614f31bc123d81126 WHIRLPOOL 1ac9fd5fddba5adab9560cabb0a5df9a3e0c2bafda861cabb6519bcef2a94c54f2dcd2e04e3b3892cda2c374c0186d7e21e4e435f109a8915eaa507019a53db8 -DIST tcllib-1.15-test.patch.xz 3208 SHA256 16fbf7d564f3b0f338d3f21774199738ca0014e4d689b053bef8840023cf8889 SHA512 8b9de181cdc39e0f9361694fb1bb9ee42b3fba269d13e91be31643ce3509c34e3e6b74b043e067dda49d75b6f4a009a79361f7a9ecf4613a509decb3eacf8447 WHIRLPOOL 1b138a1d742e8b7aeb574ec1eb1d7688b9a7bcf469269b4b27004f23f9d7947b9dd4828322739606bd3a9aecc11202d3712f15cd459448f18f6e9a2896911a12 -DIST tcllib-1.15.tar.bz2 5030648 SHA256 7a1e27f6d2e625af15d13df6117958815c8482e662a914fc1cbd7f0b0e780e71 SHA512 544b1193266e860eb59a4c313645376bba8488711b2afc629d99d0e719252db79caae73022ae1dc21dc123f949fa8930f81112c3f80328fc83952b64f93ca3c4 WHIRLPOOL 75ef40710859c0f669fdac96ee7ed5d76d6a10081649d890cadc970c21478b2daddd8289853e38239d68ad9aae0dd9ee5ee94827f1bf0e4b5b511134024e062c +DIST Tcllib-1.16.tar.bz2 6089076 BLAKE2B d3b2d439689320e85a2a31f9dcd7bbb23af6d54eec299cb2b4248b961f98de95a878cc20c2bca712f907f6359ae6152d912e849a47d9394910b9278ff748d617 SHA512 5e0656c178c0fae907c101b5324f04ba1bb5c26f4d1015868194dbb393e88a281ecf66bc4701167db24ddb526b87acfd88223e0e9e6db1f9d0ffb919b3372752 +DIST tcllib-1.15-patchset.tar.xz 16164 BLAKE2B 590f6ea38aa2cf98e80011591d5bf06f27d4ca2af03b2e633a2752c184d2c1d78cc22f9b8472a2e5af7052cbb742a22fec0d487974a7599e4d4081bd5e80dcfe SHA512 85507cd00692138ea3c791f88bf4bbdadefa91168a55aebd1da7a89a9de37c3352be27db25bfdb7478dfc90865f906b290fdcbd858be0c01e3502f0446f03262 +DIST tcllib-1.15.tar.bz2 5030648 BLAKE2B 9731be4282bc3b3b0bb56021c3f0a7943ff4163d04ae397b1e0543cbce0642cbf5f64b66c57348a932d9e29c53273223998f2d8b0b087ff7ac679191e8a35ece SHA512 544b1193266e860eb59a4c313645376bba8488711b2afc629d99d0e719252db79caae73022ae1dc21dc123f949fa8930f81112c3f80328fc83952b64f93ca3c4 +DIST tcllib-1.16-patchset.tar.xz 5484 BLAKE2B b7dc4cd1045cc88e7cc85412734cd036a77af276635e20ff7df207bf5296df63f9c4b1374957f2d01ef278daabdb1b7bb5cb1bb9e3d2a4e0100be02d23ddbb2a SHA512 1bb3b7ed698a77502eecc7ae9fe28b0370770d08235994fd083828af4e87aee49f60c529774bf54dc339122b68fc1841acdd05b27f95ef78145934268567fc03 diff --git a/dev-tcltk/tcllib/files/tcllib-1.15-XSS-vuln.patch b/dev-tcltk/tcllib/files/tcllib-1.15-XSS-vuln.patch deleted file mode 100644 index 4b3502dd86ff..000000000000 --- a/dev-tcltk/tcllib/files/tcllib-1.15-XSS-vuln.patch +++ /dev/null @@ -1,907 +0,0 @@ - modules/html/html.man | 146 +++++++++++++++++------------- - modules/html/html.tcl | 55 +++++++++--- - modules/html/html.test | 224 +++++++++++++++++++++++++++++++++++----------- - modules/html/pkgIndex.tcl | 2 +- - 4 files changed, 297 insertions(+), 130 deletions(-) - -diff --git a/modules/html/html.man b/modules/html/html.man -index efb41fc..f18cf4b 100644 ---- a/modules/html/html.man -+++ b/modules/html/html.man -@@ -1,10 +1,19 @@ - [comment {-*- tcl -*- doctools manpage}] --[manpage_begin html n 1.4] -+[vset HTML_VERSION 1.4.4] -+[manpage_begin html n [vset HTML_VERSION]] -+[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]] -+[require html [opt [vset HTML_VERSION]]] - [description] - [para] - -@@ -26,13 +35,11 @@ for HTML tag parameters. - define an author for the page. The author is noted in a comment in - the HEAD section. - -- - [call [cmd ::html::bodyTag] [arg args]] - - Generate a [term body] tag. The tag parameters are taken from [arg args] or - from the body.* attributes define with [cmd ::html::init]. - -- - [call [cmd ::html::cell] [arg {param value}] [opt [arg tag]]] - - Generate a [term td] (or [term th]) tag, a value, and a closing -@@ -41,13 +48,11 @@ tag parameters come from [arg param] or TD.* attributes defined with - [cmd ::html::init]. This uses [cmd ::html::font] to insert a standard - [term font] tag into the table cell. The [arg tag] argument defaults to "td". - -- - [call [cmd ::html::checkbox] [arg {name value}]] - - Generate a [term checkbox] form element with the specified name and value. - This uses [cmd ::html::checkValue]. - -- - [call [cmd ::html::checkSet] [arg {key sep list}]] - - Generate a set of [term checkbox] form elements and associated labels. The -@@ -56,21 +61,18 @@ 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 -+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 - the corresponding close tag (e.g., </body>). - -- - [call [cmd ::html::default] [arg key] [opt [arg param]]] - - This procedure is used by [cmd ::html::tagParam] to generate the name, -@@ -83,27 +85,23 @@ identified by [arg key]. The [arg key] has the form "tag.parameter" - (e.g., body.bgcolor). Use [cmd ::html::init] to register default - values. [arg param] defaults to the empty string. - -- - [call [cmd ::html::description] [arg description]] - - [emph {Side effect only}]. Call this before [cmd ::html::head] to - define a description [term meta] tag for the page. This tag is generated - later in the call to [cmd ::html::head]. - -- - [call [cmd ::html::end]] - - Pop all open tags from the stack and generate the corresponding close - HTML tags, (e.g., </body></html>). - -- - [call [cmd ::html::eval] [arg arg] [opt [arg args]]] - - This procedure is similar to the built-in Tcl [cmd eval] command. The - only difference is that it returns "" so it can be called from an HTML - template file without appending unwanted results. - -- - [call [cmd ::html::extractParam] [arg {param key}] [opt [arg varName]]] - - This is a parsing procedure that extracts the value of [arg key] from -@@ -115,13 +113,11 @@ parameter was found in [arg param], otherwise it returns 0. If the - [arg varName] is not specified, then [arg key] is used as the variable - name. - -- - [call [cmd ::html::font] [arg args]] - - Generate a standard [term font] tag. The parameters to the tag are taken - from [arg args] and the HTML defaults defined with [cmd ::html::init]. - -- - [call [cmd ::html::for] [arg {start test next body}]] - - This procedure is similar to the built-in Tcl [cmd for] control -@@ -129,7 +125,6 @@ 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. - -- - [call [cmd ::html::foreach] [arg {varlist1 list1}] [opt [arg {varlist2 list2 ...}]] [arg body]] - - This procedure is similar to the built-in Tcl [cmd foreach] control -@@ -137,7 +132,6 @@ 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. - -- - [call [cmd ::html::formValue] [arg name] [opt [arg defvalue]]] - - Return a name and value pair, where the value is initialized from -@@ -148,20 +142,17 @@ existing CGI data, if any. The result has this form: - name="fred" value="freds value" - }] - -- - [call [cmd ::html::getFormInfo] [arg args]] - - Generate hidden fields to capture form values. If [arg args] is - empty, then hidden fields are generated for all CGI values. Otherwise - args is a list of string match patterns for form element names. - -- - [call [cmd ::html::getTitle]] - - Return the title string, with out the surrounding [term title] tag, - set with a previous call to [cmd ::html::title]. - -- - [call [cmd ::html::h] [arg {level string}] [opt [arg param]]] - - Generate a heading (e.g., [term h[var level]]) tag. The [arg string] is nested in the -@@ -191,28 +182,25 @@ Generate an [term h5] tag. See [cmd ::html::h]. - - Generate an [term h6] tag. See [cmd ::html::h]. - -- - [call [cmd ::html::hdrRow] [arg args]] - - Generate a table row, including [term tr] and [term th] tags. - Each value in [arg args] is place into its own table cell. - This uses [cmd ::html::cell]. - -- - [call [cmd ::html::head] [arg title]] - - Generate the [term head] section that includes the page [term title]. - If previous calls have been made to --[cmd ::html::author], --[cmd ::html::keywords], --[cmd ::html::description], -+[cmd ::html::author], -+[cmd ::html::keywords], -+[cmd ::html::description], - or - [cmd ::html::meta] - then additional tags are inserted into the [term head] section. - This leaves an open [term html] tag pushed on the stack with - [cmd ::html::openTag]. - -- - [call [cmd ::html::headTag] [arg string]] - - Save a tag for inclusion in the [term head] section generated by -@@ -220,13 +208,11 @@ Save a tag for inclusion in the [term head] section generated by - [cmd ::html::head]. The [arg string] is everything in the tag except - the enclosing angle brackets, < >. - -- - [call [cmd ::html::html_entities] [arg string]] - - This command replaces all special characters in the [arg string] with - their HTML entities and returns the modified text. - -- - [call [cmd ::html::if] [arg {expr1 body1}] [opt "[const elseif] [arg {expr2 body2 ...}]"] [opt "[const else] [arg bodyN]"]] - - This procedure is similar to the built-in Tcl [cmd if] control -@@ -235,7 +221,6 @@ taken, it returns the subst'ed [arg body]. Note that the syntax is - slightly more restrictive than that of the built-in Tcl [cmd if] - control structure. - -- - [call [cmd ::html::init] [opt [arg list]]] - - [cmd ::html::init] accepts a Tcl-style name-value list that defines -@@ -243,19 +228,16 @@ values for items with a name of the form "tag.parameter". For - example, a default with key "body.bgcolor" defines the background - color for the [term body] tag. - -- - [call [cmd ::html::keywords] [arg args]] - - [emph {Side effect only}]. Call this before [cmd ::html::head] to - define a keyword [term meta] tag for the page. The [term meta] tag - is included in the result of [cmd ::html::head]. - -- - [call [cmd ::html::mailto] [arg email] [opt [arg subject]]] - - Generate a hypertext link to a mailto: URL. - -- - [call [cmd ::html::meta] [arg args]] - - [emph {Side effect only}]. Call this before [cmd ::html::head] to -@@ -264,6 +246,50 @@ 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::css] [arg href]] -+ -+[emph {Side effect only}]. Call this before [cmd ::html::head] to -+define a [term link] tag for a linked CSS document. The [arg href] -+value is a HTTP URL to a CSS document. The [term link] tag is included -+in the result of [cmd ::html::head]. -+ -+[para] -+ -+Multiple calls of this command are allowed, enabling the use of -+multiple CSS document references. In other words, the arguments -+of multiple calls are accumulated, and do not overwrite each other. -+ -+[call [cmd ::html::css-clear]] -+ -+[emph {Side effect only}]. Call this before [cmd ::html::head] to -+clear all links to CSS documents. -+[para] -+ -+Multiple calls of this command are allowed, doing nothing after the -+first of a sequence with no intervening [cmd ::html::css]. -+ -+[call [cmd ::html::js] [arg href]] -+ -+[emph {Side effect only}]. Call this before [cmd ::html::head] to -+define a [term script] tag for a linked JavaScript document. The -+[arg href] is a HTTP URL to a JavaScript document. The [term script] -+tag is included in the result of [cmd ::html::head]. -+ -+[para] -+ -+Multiple calls of this command are allowed, enabling the use of -+multiple JavaScript document references. In other words, the arguments -+of multiple calls are accumulated, and do not overwrite each other. -+ -+ -+[call [cmd ::html::js-clear]] -+ -+[emph {Side effect only}]. Call this before [cmd ::html::head] to -+clear all links to JavaScript documents. -+[para] -+ -+Multiple calls of this command are allowed, doing nothing after the -+first of a sequence with no intervening [cmd ::html::js]. - - [call [cmd ::html::minorList] [arg list] [opt [arg ordered]]] - -@@ -273,20 +299,17 @@ 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]. - -- - [call [cmd ::html::minorMenu] [arg list] [opt [arg sep]]] - - Generate a series of hypertext links. The [arg list] is a Tcl-style - name, value list of labels and urls for the links. The [arg sep] is - the text to put between each link. It defaults to " | ". - -- - [call [cmd ::html::nl2br] [arg string]] - - This command replaces all line-endings in the [arg string] with a - [term br] tag and returns the modified text. - -- - [call [cmd ::html::openTag] [arg tag] [opt [arg param]]] - - Push [arg tag] onto a stack and generate the opening tag for -@@ -295,7 +318,6 @@ stack. The second argument provides any tag arguments, as a - list whose elements are formatted to be in the form - "[var key]=[const value]". - -- - [call [cmd ::html::paramRow] [arg list] [opt [arg rparam]] [opt [arg cparam]]] - - Generate a table row, including [term tr] and [term td] tags. Each value in -@@ -306,25 +328,21 @@ Generate a table row, including [term tr] and [term td] tags. Each value in - the [term tr] tag. The value of [arg cparam] is passed to [cmd ::html::cell] - as parameter for the [term td] tags. - -- - [call [cmd ::html::passwordInput] [opt [arg name]]] - - Generate an [term input] tag of type [term password]. The [arg name] defaults to - "password". - -- - [call [cmd ::html::passwordInputRow] [arg label] [opt [arg name]]] - - Format a table row containing a label and an [term input] tag of type - [term password]. The [arg name] defaults to "password". - -- - [call [cmd ::html::quoteFormValue] [arg value]] - - Quote special characters in [arg value] by replacing them with HTML - entities for quotes, ampersand, and angle brackets. - -- - [call [cmd ::html::radioSet] [arg {key sep list}]] - - Generate a set of [term input] tags of type [term radio] and an associated text -@@ -332,14 +350,12 @@ 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 -+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 -@@ -347,7 +363,6 @@ HEAD section will contain a [term meta] tag that causes the document to - refresh in [arg seconds] seconds. The [arg url] is optional. If - specified, it specifies a new page to load after the refresh interval. - -- - [call [cmd ::html::row] [arg args]] - - Generate a table row, including [term tr] and [term td] tags. Each value in -@@ -355,14 +370,12 @@ Generate a table row, including [term tr] and [term td] tags. Each value in - [cmd ::html::cell]. Ignores any default information set up via - [cmd ::html::init]. - -- - [call [cmd ::html::select] [arg {name param choices}] [opt [arg current]]] - - Generate a [term select] form element and nested [term option] tags. The [arg name] - and [arg param] are used to generate the [term select] tag. The [arg choices] - list is a Tcl-style name, value list. - -- - [call [cmd ::html::selectPlain] [arg {name param choices}] [opt [arg current]]] - - Like [cmd ::html::select] except that [arg choices] is a Tcl list of -@@ -376,12 +389,10 @@ 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. - -- - [call [cmd ::html::submit] [arg label] [opt [arg name]]] - - Generate an [term input] tag of type [term submit]. [arg name] defaults to "submit". - -- - [call [cmd ::html::tableFromArray] [arg arrname] [opt [arg param]] [opt [arg pat]]] - - Generate a two-column [term table] and nested rows to display a Tcl array. The -@@ -404,7 +415,6 @@ pre-formatted string. - - Generate a [term textarea] tag wrapped around its current values. - -- - [call [cmd ::html::textInput] [arg {name value args}]] - - Generate an [term input] form tag with type [term text]. This uses -@@ -412,7 +422,6 @@ Generate an [term input] form tag with type [term text]. This uses - [cmd ::html::formValue]. The args is any additional tag attributes - you want to put into the [term input] tag. - -- - [call [cmd ::html::textInputRow] [arg {label name value args}]] - - Generate an [term input] form tag with type [term text] formatted into a table row -@@ -431,7 +440,6 @@ define the [term title] for a page. - This returns 1 if the named variable either does not exist or has the - empty string for its value. - -- - [call [cmd ::html::while] [arg {test body}]] - - This procedure is similar to the built-in Tcl [cmd while] control -@@ -439,20 +447,30 @@ 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] -- --[section {BUGS, IDEAS, FEEDBACK}] -- --This document, and the package it describes, will undoubtedly contain --bugs and other problems. -+[call [cmd ::html::doctype] [arg id]] - --Please report such in the category [emph html] of the --[uri {http://sourceforge.net/tracker/?group_id=12883} {Tcllib SF Trackers}]. -+This procedure can be used to build the standard DOCTYPE -+declaration string. It will return the standard declaration -+string for the id, or throw an error if the id is not known. -+The following id's are defined: - --Please also report any ideas for enhancements you may have for either --package and/or documentation. -+[list_begin enumerated] -+[enum] HTML32 -+[enum] HTML40 -+[enum] HTML40T -+[enum] HTML40F -+[enum] HTML401 -+[enum] HTML401T -+[enum] HTML401F -+[enum] XHTML10S -+[enum] XHTML10T -+[enum] XHTML10F -+[enum] XHTML11 -+[enum] XHTMLB -+[list_end] - -+[list_end] - --[see_also ncgi htmlparse] --[keywords html form table checkbox radiobutton checkbutton] -+[vset CATEGORY html] -+[include ../doctools2base/include/feedback.inc] - [manpage_end] -diff --git a/modules/html/html.tcl b/modules/html/html.tcl -index 77e517e..3c0c443 100644 ---- a/modules/html/html.tcl -+++ b/modules/html/html.tcl -@@ -15,7 +15,7 @@ - - package require Tcl 8.2 - package require ncgi --package provide html 1.4 -+package provide html 1.4.4 - - namespace eval ::html { - -@@ -510,7 +510,7 @@ proc ::html::refresh {content {url {}}} { - ::if {[string length $url]} { - append html "; url=$url" - } -- append html "\">\n" -+ append html "\">" - lappend page(meta) $html - return "" - } -@@ -912,7 +912,7 @@ proc ::html::selectPlain {name param choices {current {}}} { - # The html fragment - - proc ::html::textarea {name {param {}} {current {}}} { -- ::set value [ncgi::value $name $current] -+ ::set value [quoteFormValue [ncgi::value $name $current]] - return "<[string trimright \ - "textarea name=\"$name\"\ - [tagParam textarea $param]"]>$value</textarea>\n" -@@ -1405,7 +1405,7 @@ proc ::html::html_entities {s} { - # 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] -+ return [string map [list \n\r <br> \r\n <br> \n <br> \r <br>] $s] - } - - # ::html::doctype -@@ -1419,9 +1419,10 @@ proc ::html::nl2br {s} { - - proc ::html::doctype {arg} { - variable doctypes -- set code [string toupper $arg] -- if {![info exists doctypes($code)]} { -- return -code error "Unknown doctype \"$arg\"" -+ ::set code [string toupper $arg] -+ ::if {![info exists doctypes($code)]} { -+ return -code error -errorcode {HTML DOCTYPE BAD} \ -+ "Unknown doctype \"$arg\"" - } - return $doctypes($code) - } -@@ -1451,12 +1452,26 @@ namespace eval ::html { - # href The location of the css file to include the filename and path - # - # Results: --# HTML for the section -+# None. - - proc ::html::css {href} { - variable page -- set page(css) \ -- "<link rel=\"stylesheet\" type=\"text/css\" href=\"[quoteFormValue $href]\">\n" -+ lappend page(css) "<link rel=\"stylesheet\" type=\"text/css\" href=\"[quoteFormValue $href]\">" -+ return -+} -+ -+# ::html::css-clear -+# Drop all text/css references. -+# -+# Arguments: -+# None. -+# -+# Results: -+# None. -+ -+proc ::html::css-clear {} { -+ variable page -+ catch { unset page(css) } - return - } - -@@ -1467,11 +1482,25 @@ proc ::html::css {href} { - # href The location of the javascript file to include the filename and path - # - # Results: --# HTML for the section -+# None. - - proc ::html::js {href} { - variable page -- set page(js) \ -- "<script language=\"javascript\" type=\"text/javascript\" src=\"[quoteFormValue $href]\"></script>\n" -+ lappend page(js) "<script language=\"javascript\" type=\"text/javascript\" src=\"[quoteFormValue $href]\"></script>" -+ return -+} -+ -+# ::html::js-clear -+# Drop all text/javascript references. -+# -+# Arguments: -+# None. -+# -+# Results: -+# None. -+ -+proc ::html::js-clear {} { -+ variable page -+ catch { unset page(js) } - return - } -diff --git a/modules/html/html.test b/modules/html/html.test -index 7a03c54..6646fb6 100644 ---- a/modules/html/html.test -+++ b/modules/html/html.test -@@ -17,8 +17,8 @@ source [file join \ - [file dirname [file dirname [file join [pwd] [info script]]]] \ - devtools testutilities.tcl] - --testsNeedTcl 8.2 --testsNeedTcltest 1.0 -+testsNeedTcl 8.4 -+testsNeedTcltest 2.0 - - testing { - useLocal html.tcl html -@@ -26,45 +26,46 @@ testing { - - # ------------------------------------------------------------------------- - --test html-1.1 {html::init} { -+test html-1.1 {html::init} -body { - html::init -- list [array exists html::defaults] \ -- [array size html::defaults] \ -- [info exists html::page] --} {1 0 0} -+ list \ -+ [array exists html::defaults] \ -+ [array size html::defaults] \ -+ [info exists html::page] -+} -result {1 0 0} - --test html-1.2 {html::init} { -+test html-1.2 {html::init} -body { - html::init { - font.face arial - body.bgcolor white - body.text black - } - lsort [array names html::defaults] --} {body.bgcolor body.text font.face} -+} -result {body.bgcolor body.text font.face} - --test html-1.3 {html::init} { -- catch {html::init wrong num args} --} 1 -+test html-1.3 {html::init, too many args} -body { -+ html::init wrong num args -+} -returnCodes error -result {wrong # args: should be "html::init ?nvlist?"} - --test html-1.4 {html::init} { -- catch {html::init {wrong num args}} --} 1 -+test html-1.4 {html::init, bad arg, odd-length list} -body { -+ html::init {wrong num args} -+} -returnCodes error -result {list must have an even number of elements} - --test html-2.1 {html::head} { -- catch {html::head} --} 1 -+test html-2.1 {html::head, not enough args} -body { -+ html::head -+} -returnCodes error -result {wrong # args: should be "html::head title"} - --test html-2.2 {html::head} { -+test html-2.2 {html::head} -body { - html::head "The Title" --} "<html><head>\n\t<title>The Title</title>\n</head>\n" -+} -result "<html><head>\n\t<title>The Title</title>\n</head>\n" - --test html-2.3 {html::head} { -+test html-2.3 {html::head} -body { - html::description "The Description" - html::keywords key word - html::author "Cathy Coder" - html::meta metakey metavalue - html::head "The Title" --} {<html><head> -+} -result {<html><head> - <title>The Title</title> - <!-- Cathy Coder --> - <meta name="description" content="The Description"> -@@ -73,24 +74,24 @@ test html-2.3 {html::head} { - </head> - } - --test html-3.1 {html::title} { -- catch html::title --} 1 -+test html-3.1 {html::title, not enough args} -body { -+ html::title -+} -returnCodes error -result {wrong # args: should be "html::title title"} - --test html-3.2 {html::title} { -+test html-3.2 {html::title} -body { - html::title "blah blah" --} "<title>blah blah</title>\n" -+} -result "<title>blah blah</title>\n" - --test html-4.1 {html::getTitle} { -+test html-4.1 {html::getTitle} -body { - html::init - html::getTitle --} "" -+} -result "" - --test html-4.2 {html::getTitle} { -+test html-4.2 {html::getTitle} -body { - html::init - html::title "blah blah" - html::getTitle --} {blah blah} -+} -result {blah blah} - - test html-5.1 {html::meta} { - html::init -@@ -453,6 +454,18 @@ test html-23.2 {html::textarea} { - } {<textarea name="info" cols="50" rows="8">The textarea value.</textarea> - } - -+test html-23.3 {html::textarea, dangerous input} { -+ html::init { -+ textarea.cols 50 -+ textarea.rows 8 -+ } -+ ncgi::reset info=[ncgi::encode "</textarea><script>alert(1)</script>"] -+ ncgi::parse -+ html::textarea info -+} {<textarea name="info" cols="50" rows="8"></textarea><script>alert(1)</script></textarea> -+} -+ -+ - test html-24.1 {html::submit} { - catch {html::submit} - } {1} -@@ -516,7 +529,6 @@ test html-26.4 {html::refresh} { - } {<html><head> - <title>title</title> - <meta http-equiv="Refresh" content="4"> -- - </head> - } - test html-26.5 {html::refresh} { -@@ -526,7 +538,6 @@ test html-26.5 {html::refresh} { - } {<html><head> - <title>title</title> - <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> -- - </head> - } - -@@ -794,6 +805,7 @@ test html-32.1 {single argument} { - set result [html::eval {set x [format 22]}] - list $result $x - } {{} 22} -+ - test html-32.2 {multiple arguments} { - set a {$b} - set b xyzzy -@@ -801,38 +813,146 @@ test html-32.2 {multiple arguments} { - 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-32.4 {error: not enough arguments} -body { -+ html::eval -+} -returnCodes error -result {wrong # args: should be "uplevel ?level? command ?arg ...?"} - --test html-33.0 {html::font} { -+test html-32.6 {error in eval'ed command} -body { -+ html::eval {error "test error"} -+} -returnCodes error -result {test error} -+ -+test html-33.0 {html::font} -body { - html::font --} {} -+} -result {} - --test html-33.1 {html::font} { -+test html-33.1 {html::font} -body { - html::font size=18 --} {<font size=18>} -+} -result {<font size=18>} - -- --test html-34.0 {html::nl2br} { -+test html-34.0 {html::nl2br} -body { - html::nl2br "a\n\rb\nc\rd" --} {a<br>b<br>c<br>d} -+} -result {a<br>b<br>c<br>d} - -+test html-34.1 {html::nl2br, ticket 1742078} -body { -+ html::nl2br "a\r\nb" -+} -result {a<br>b} - -+# ------------------------------------------------------------------------- -+ -+test html-tkt3439702-35.0 {html::css, not enough arguments} -body { -+ html::css -+} -returnCodes error -result {wrong # args: should be "html::css href"} -+ -+test html-tkt3439702-35.1 {html::css, too many arguments} -body { -+ html::css REF X -+} -returnCodes error -result {wrong # args: should be "html::css href"} -+ -+test html-tkt3439702-35.2 {html::css, single ref} -setup { -+ html::css-clear -+} -body { -+ html::css "http://test.css" -+ string trim [html::head T] -+} -cleanup { -+ html::css-clear -+} -result "<html><head>\n\t<title>T</title>\n\t<meta http-equiv=\"Refresh\" content=\"9; url=http://www.scriptics.com\">\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"http://test.css\">\n</head>" -+ -+test html-tkt3439702-35.3 {html::css, multiple ref} -setup { -+ html::css-clear -+} -body { -+ html::css "http://test1.css" -+ html::css "http://test2.css" -+ string trim [html::head T] -+} -cleanup { -+ html::css-clear -+} -result {<html><head> -+ <title>T</title> -+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> -+ <link rel="stylesheet" type="text/css" href="http://test1.css"> -+ <link rel="stylesheet" type="text/css" href="http://test2.css"> -+</head>} -+ -+# ------------------------------------------------------------------------- -+ -+test html-tkt3439702-36.0 {html::js, not enough arguments} -body { -+ html::js -+} -returnCodes error -result {wrong # args: should be "html::js href"} -+ -+test html-tkt3439702-36.1 {html::js, too many arguments} -body { -+ html::js REF X -+} -returnCodes error -result {wrong # args: should be "html::js href"} -+ -+test html-tkt3439702-36.2 {html::js, single ref} -setup { -+ html::js-clear -+} -body { -+ html::js "http://test.js" -+ string trim [html::head T] -+} -cleanup { -+ html::js-clear -+} -result {<html><head> -+ <title>T</title> -+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> -+ <script language="javascript" type="text/javascript" src="http://test.js"></script> -+</head>} -+ -+test html-tkt3439702-36.3 {html::js, multiple ref} -setup { -+ html::js-clear -+} -body { -+ html::js "http://test1.js" -+ html::js "http://test2.js" -+ string trim [html::head T] -+} -cleanup { -+ html::js-clear -+} -result {<html><head> -+ <title>T</title> -+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> -+ <script language="javascript" type="text/javascript" src="http://test1.js"></script> -+ <script language="javascript" type="text/javascript" src="http://test2.js"></script> -+</head>} -+ -+test html-tkt3439702-37.0 {html::js, html::css, mixed} -setup { -+ html::css-clear -+ html::js-clear -+} -body { -+ html::css "http://test.css" -+ html::js "http://test.js" -+ string trim [html::head T] -+} -cleanup { -+ html::js-clear -+ html::css-clear -+} -result {<html><head> -+ <title>T</title> -+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> -+ <link rel="stylesheet" type="text/css" href="http://test.css"> -+ <script language="javascript" type="text/javascript" src="http://test.js"></script> -+</head>} -+ -+# ------------------------------------------------------------------------- -+# TODO: html::css-clear, html::js-clear -+ -+ -+test html-tktafe4366e2e-38.0 {html::doctype, not enough args} -body { -+ html::doctype -+} -returnCodes error -result {wrong # args: should be "html::doctype arg"} -+ -+test html-tktafe4366e2e-38.1 {html::doctype, too many args} -body { -+ html::doctype HTML401T X -+} -returnCodes error -result {wrong # args: should be "html::doctype arg"} -+ -+test html-tktafe4366e2e-38.2 {html::doctype, unknown type} -body { -+ html::doctype HTML401TXXX -+} -returnCodes error -result {Unknown doctype "HTML401TXXX"} -+ -+test html-tktafe4366e2e-38.3 {html::doctype} -body { -+ html::doctype HTML401T -+} -result {<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">} -+ -+# ------------------------------------------------------------------------- - testsuiteCleanup -diff --git a/modules/html/pkgIndex.tcl b/modules/html/pkgIndex.tcl -index 88a71b2..9d91097 100644 ---- a/modules/html/pkgIndex.tcl -+++ b/modules/html/pkgIndex.tcl -@@ -1,2 +1,2 @@ - if {![package vsatisfies [package provide Tcl] 8.2]} {return} --package ifneeded html 1.4 [list source [file join $dir html.tcl]] -+package ifneeded html 1.4.4 [list source [file join $dir html.tcl]] diff --git a/dev-tcltk/tcllib/files/tcllib-1.15-tcl8.6-test.patch b/dev-tcltk/tcllib/files/tcllib-1.15-tcl8.6-test.patch deleted file mode 100644 index 2256c5a50a0d..000000000000 --- a/dev-tcltk/tcllib/files/tcllib-1.15-tcl8.6-test.patch +++ /dev/null @@ -1,411 +0,0 @@ - modules/clock/iso8601.test | 5 ++--- - modules/doctools/mpformats/_nroff.tcl | 18 ++++++++++-------- - modules/doctools/mpformats/fmt.nroff | 4 ++-- - modules/doctools/tests/nroff/00 | 8 ++++---- - modules/doctools/tests/nroff/01 | 4 ++-- - modules/doctools/tests/nroff/02 | 10 +++++----- - modules/doctools/tests/nroff/03 | 16 ++++++++-------- - modules/doctools/tests/nroff/04 | 8 ++++---- - modules/doctools/tests/nroff/05 | 8 ++++---- - modules/doctools/tests/nroff/06 | 8 ++++---- - modules/doctools/tests/nroff/07 | 8 ++++---- - modules/doctools/tests/nroff/08 | 18 +++++++++--------- - support/devel/sak/validate/syntax.tcl | 4 +++- - support/devel/sak/validate/testsuites.tcl | 4 +++- - 14 files changed, 64 insertions(+), 59 deletions(-) - -diff --git a/modules/clock/iso8601.test b/modules/clock/iso8601.test -index 85d6416..6fce938 100644 ---- a/modules/clock/iso8601.test -+++ b/modules/clock/iso8601.test -@@ -40,9 +40,8 @@ test clock-iso8601-2.0 {parse_date, bad input} -body { - } -returnCodes error -result {not an iso8601 date string} - - test clock-iso8601-2.1 {parse_date} -body { -- clock::iso8601 parse_date 1994-11-05 -- # It is unclear if this is influenced by TZ. --} -result 784022400 -+ clock format [clock::iso8601 parse_date 1994-11-05] -format %D -+} -result 11/05/1994 - - # ------------------------------------------------------------------------- - -diff --git a/modules/doctools/mpformats/_nroff.tcl b/modules/doctools/mpformats/_nroff.tcl -index be73a02..7669d07 100644 ---- a/modules/doctools/mpformats/_nroff.tcl -+++ b/modules/doctools/mpformats/_nroff.tcl -@@ -15,7 +15,7 @@ - - - proc nr_lp {} {return \n\1.LP} --proc nr_ta {{text {}}} {return ".ta$text"} -+proc nr_ta {{text {}}} {return "\1.ta$text"} - proc nr_bld {} {return \1\\fB} - proc nr_bldt {t} {return "\n\1.B $t\n"} - proc nr_ul {} {return \1\\fI} -@@ -75,6 +75,7 @@ set finalMap [list \ - "\1\\" "\\" \ - "\1'" "'" \ - "\1." "." \ -+ "." "\\&." \ - "\\" "\\\\"] - global textMap - set textMap [list "\\" "\\\\"] -@@ -103,8 +104,8 @@ proc nroff_postprocess {nroff} { - # - Exceptions to the above: Keep empty lines and leading - # whitespace when in verbatim sections (no-fill-mode) - -- set nfMode [list .nf .CS] ; # commands which start no-fill mode -- set fiMode [list .fi .CE] ; # commands which terminate no-fill mode -+ set nfMode [list \1.nf \1.CS] ; # commands which start no-fill mode -+ set fiMode [list \1.fi \1.CE] ; # commands which terminate no-fill mode - set lines [list] ; # Result buffer - set verbatim 0 ; # Automaton mode/state - -@@ -139,7 +140,7 @@ proc nroff_postprocess {nroff} { - set lines [lreplace $lines end end] - set line "$last $line" - } -- } elseif {[string match {['.]*} $line]} { -+ } elseif {[string match {[']*} $line]} { - # Apostrophes or periods at the beginning of a line have to - # quoted to prevent misinterpretation as comments or directives. - # The true comments and directive are quoted with \1 -@@ -166,10 +167,11 @@ proc nroff_postprocess {nroff} { - # Remove superfluous .IP commands (empty paragraph). The first - # identity mapping is there to avoid smashing a man macro - # definition. -- set lines [string map [list \ -- \n\1.IP\n\1..\n \n\1.IP\n\1..\n \ -- \n\1.IP\n\1. \n\1.] \ -- $lines] -+ -+ lappend map \n\1.IP\n\1.\1.\n \n\1.IP\n\1.\1.\n -+ lappend map \n\1.IP\n\1. \n\1. -+ -+ set lines [string map $map $lines] - - # Return the modified result buffer - return [string map $finalMap $lines] -diff --git a/modules/doctools/mpformats/fmt.nroff b/modules/doctools/mpformats/fmt.nroff -index e844dbf..5230688 100644 ---- a/modules/doctools/mpformats/fmt.nroff -+++ b/modules/doctools/mpformats/fmt.nroff -@@ -269,11 +269,11 @@ proc fmt_image {text {label {}}} { - - set img [dt_imgdata $text {pic}] - if {$img ne {}} { -- return \n.PS\n$img\n.PE\n -+ return \n\1.PS\n$img\n\1.PE\n - } - set img [dt_imgdata $text {txt}] - if {$img ne {}} { -- return \n.PS\n.nf\n$img\n.fi\n.PE\n -+ return \n\1.PS\n\1.nf\n$img\n\1.fi\n\1.PE\n - } - if {$label eq {}} { - return "IMAGE: $text" -diff --git a/modules/doctools/tests/nroff/00 b/modules/doctools/tests/nroff/00 -index 8ac0ebf..8f68ee1 100644 ---- a/modules/doctools/tests/nroff/00 -+++ b/modules/doctools/tests/nroff/00 -@@ -1,15 +1,15 @@ - '\" --'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' --'\" Copyright (c) .COPYRIGHT. -+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' -+'\" Copyright (c) \&.COPYRIGHT\&. - '\" - .so man.macros --.TH "TEST" z 3.14.15.926 .MODULE. "" -+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "" - .BS - .SH NAME - TEST \- - .SH DESCRIPTION - .SH COPYRIGHT - .nf --Copyright (c) .COPYRIGHT. -+Copyright (c) \&.COPYRIGHT\&. - - .fi -\ No newline at end of file -diff --git a/modules/doctools/tests/nroff/01 b/modules/doctools/tests/nroff/01 -index 3a4563f..588894a 100644 ---- a/modules/doctools/tests/nroff/01 -+++ b/modules/doctools/tests/nroff/01 -@@ -1,9 +1,9 @@ - '\" --'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' -+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' - '\" Copyright (c) **Copyright** - '\" - .so man.macros --.TH "TEST" z 3.14.15.926 .MODULE. "" -+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "" - .BS - .SH NAME - TEST \- -diff --git a/modules/doctools/tests/nroff/02 b/modules/doctools/tests/nroff/02 -index 89d6cb7..49fbf18 100644 ---- a/modules/doctools/tests/nroff/02 -+++ b/modules/doctools/tests/nroff/02 -@@ -1,12 +1,12 @@ - '\" --'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' --'\" Copyright (c) .COPYRIGHT. -+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' -+'\" Copyright (c) \&.COPYRIGHT\&. - '\" - .so man.macros --.TH "TEST" z 3.14.15.926 .MODULE. "..THE_MODULE.." -+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "\&.\&.THE_MODULE\&.\&." - .BS - .SH NAME --TEST \- ..THE_TITLE.. -+TEST \- \&.\&.THE_TITLE\&.\&. - .SH SYNOPSIS - package require \fBAAA \fR - .sp -@@ -20,6 +20,6 @@ ELSE, OTHER - KEYA, KEYZ - .SH COPYRIGHT - .nf --Copyright (c) .COPYRIGHT. -+Copyright (c) \&.COPYRIGHT\&. - - .fi -\ No newline at end of file -diff --git a/modules/doctools/tests/nroff/03 b/modules/doctools/tests/nroff/03 -index eb0bdd3..6393ecb 100644 ---- a/modules/doctools/tests/nroff/03 -+++ b/modules/doctools/tests/nroff/03 -@@ -1,9 +1,9 @@ - '\" --'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' --'\" Copyright (c) .COPYRIGHT. -+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' -+'\" Copyright (c) \&.COPYRIGHT\&. - '\" - .so man.macros --.TH "TEST" z 3.14.15.926 .MODULE. "" -+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "" - .BS - .SH NAME - TEST \- -@@ -12,18 +12,18 @@ TEST \- - 1 - .SH BBB - 22 --.SS BBB.CCC -+.SS BBB\&.CCC - 333 --.SS BBB.DDD -+.SS BBB\&.DDD - 4444 - .SH EEE - 5555 - .PP --At \fBAaA\fR. -+At \fBAaA\fR\&. - .PP --At \fB__undefined__\fR. -+At \fB__undefined__\fR\&. - .SH COPYRIGHT - .nf --Copyright (c) .COPYRIGHT. -+Copyright (c) \&.COPYRIGHT\&. - - .fi -\ No newline at end of file -diff --git a/modules/doctools/tests/nroff/04 b/modules/doctools/tests/nroff/04 -index ee22d7a..27aa037 100644 ---- a/modules/doctools/tests/nroff/04 -+++ b/modules/doctools/tests/nroff/04 -@@ -1,9 +1,9 @@ - '\" --'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' --'\" Copyright (c) .COPYRIGHT. -+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' -+'\" Copyright (c) \&.COPYRIGHT\&. - '\" - .so man.macros --.TH "TEST" z 3.14.15.926 .MODULE. "" -+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "" - .BS - .SH NAME - TEST \- -@@ -27,6 +27,6 @@ Next Line - FERTIG - .SH COPYRIGHT - .nf --Copyright (c) .COPYRIGHT. -+Copyright (c) \&.COPYRIGHT\&. - - .fi -\ No newline at end of file -diff --git a/modules/doctools/tests/nroff/05 b/modules/doctools/tests/nroff/05 -index c25c179..3df0180 100644 ---- a/modules/doctools/tests/nroff/05 -+++ b/modules/doctools/tests/nroff/05 -@@ -1,9 +1,9 @@ - '\" --'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' --'\" Copyright (c) .COPYRIGHT. -+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' -+'\" Copyright (c) \&.COPYRIGHT\&. - '\" - .so man.macros --.TH "BASIC" a 5 .MODULE. "" -+.TH "BASIC" a 5 \&.MODULE\&. "" - .BS - .SH NAME - BASIC \- -@@ -91,6 +91,6 @@ caramel - KO - .SH COPYRIGHT - .nf --Copyright (c) .COPYRIGHT. -+Copyright (c) \&.COPYRIGHT\&. - - .fi -\ No newline at end of file -diff --git a/modules/doctools/tests/nroff/06 b/modules/doctools/tests/nroff/06 -index e7fee7c..10fed25 100644 ---- a/modules/doctools/tests/nroff/06 -+++ b/modules/doctools/tests/nroff/06 -@@ -1,9 +1,9 @@ - '\" --'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' --'\" Copyright (c) .COPYRIGHT. -+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' -+'\" Copyright (c) \&.COPYRIGHT\&. - '\" - .so man.macros --.TH "TEST" z 3.14.15.926 .MODULE. "" -+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "" - .BS - .SH NAME - TEST \- -@@ -50,6 +50,6 @@ c - .PP - .SH COPYRIGHT - .nf --Copyright (c) .COPYRIGHT. -+Copyright (c) \&.COPYRIGHT\&. - - .fi -\ No newline at end of file -diff --git a/modules/doctools/tests/nroff/07 b/modules/doctools/tests/nroff/07 -index 696a715..08ff9ee 100644 ---- a/modules/doctools/tests/nroff/07 -+++ b/modules/doctools/tests/nroff/07 -@@ -1,9 +1,9 @@ - '\" --'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' --'\" Copyright (c) .COPYRIGHT. -+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' -+'\" Copyright (c) \&.COPYRIGHT\&. - '\" - .so man.macros --.TH "TEST" z 3.14.15.926 .MODULE. "" -+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "" - .BS - .SH NAME - TEST \- -@@ -40,6 +40,6 @@ a - .PP - .SH COPYRIGHT - .nf --Copyright (c) .COPYRIGHT. -+Copyright (c) \&.COPYRIGHT\&. - - .fi -\ No newline at end of file -diff --git a/modules/doctools/tests/nroff/08 b/modules/doctools/tests/nroff/08 -index b1bc4ea..50cecb6 100644 ---- a/modules/doctools/tests/nroff/08 -+++ b/modules/doctools/tests/nroff/08 -@@ -1,12 +1,12 @@ - '\" --'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' -+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' - '\" Copyright (c) **Copyright** - '\" - .so man.macros --.TH "ALL" a 5 .MODULE. "..THE_MODULE.." -+.TH "ALL" a 5 \&.MODULE\&. "\&.\&.THE_MODULE\&.\&." - .BS - .SH NAME --ALL \- ..THE_TITLE.. -+ALL \- \&.\&.THE_TITLE\&.\&. - .SH SYNOPSIS - package require \fBAAA \fR - .sp -@@ -14,11 +14,11 @@ package require \fBBBB VVV\fR - .sp - package require \fBCCC ?VVV?\fR - .sp --CMDNAME ... -+CMDNAME \&.\&.\&. - .sp --CMDNAME ... -+CMDNAME \&.\&.\&. - .sp --CMDNAME ... -+CMDNAME \&.\&.\&. - .sp - .BE - .SH DESCRIPTION -@@ -75,7 +75,7 @@ DESCRIPTION ::\fBMethod\fR:: - TERM - DESCRIPTION - .TP --CMDNAME ... -+CMDNAME \&.\&.\&. - DESCRIPTION ::\fBNamespace\fR:: - .RS - .TP -@@ -96,10 +96,10 @@ DESCRIPTION ::?Optional?:: - .CE - .RE - .TP --CMDNAME ... -+CMDNAME \&.\&.\&. - DESCRIPTION ::\fBPackage\fR:: - .TP --CMDNAME ... -+CMDNAME \&.\&.\&. - DESCRIPTION ::\fBSystemCommand\fR:: - .RS - .TP -diff --git a/support/devel/sak/validate/syntax.tcl b/support/devel/sak/validate/syntax.tcl -index 20b7d33..24e06d2 100644 ---- a/support/devel/sak/validate/syntax.tcl -+++ b/support/devel/sak/validate/syntax.tcl -@@ -194,7 +194,9 @@ proc ::sak::validate::syntax::Setup {} { - interp eval $ip [list ::rename $c {}] - } - -- interp eval $ip [list ::namespace delete ::tcl] -+ if {![package vsatisfies [package present Tcl] 8.6]} { -+ interp eval $ip [list ::namespace delete ::tcl] -+ } - interp eval $ip [list ::rename namespace {}] - interp eval $ip [list ::rename rename {}] - -diff --git a/support/devel/sak/validate/testsuites.tcl b/support/devel/sak/validate/testsuites.tcl -index 7072662..71ea694 100644 ---- a/support/devel/sak/validate/testsuites.tcl -+++ b/support/devel/sak/validate/testsuites.tcl -@@ -139,7 +139,9 @@ proc ::sak::validate::testsuites::Setup {} { - interp eval $ip [list ::rename $c {}] - } - -- interp eval $ip [list ::namespace delete ::tcl] -+ if {![package vsatisfies [package present Tcl] 8.6]} { -+ interp eval $ip [list ::namespace delete ::tcl] -+ } - interp eval $ip [list ::rename namespace {}] - interp eval $ip [list ::rename rename {}] - diff --git a/dev-tcltk/tcllib/files/tcllib-1.15-test.patch b/dev-tcltk/tcllib/files/tcllib-1.15-test.patch deleted file mode 100644 index 8692cf2cd2df..000000000000 --- a/dev-tcltk/tcllib/files/tcllib-1.15-test.patch +++ /dev/null @@ -1,81 +0,0 @@ - modules/clock/iso8601.test | 2 +- - modules/multiplexer/multiplexer.test | 2 +- - modules/snit/snit.test | 4 ++-- - modules/struct/sets.testsuite | 2 +- - modules/uev/uevent.test | 2 +- - 5 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/modules/clock/iso8601.test b/modules/clock/iso8601.test -index 85d6416..f1b478e 100644 ---- a/modules/clock/iso8601.test -+++ b/modules/clock/iso8601.test -@@ -26,7 +26,7 @@ test clock-iso8601-1.0.1 {parse_date wrong\#args} -constraints {tcl8.6plus} -bod - - test clock-iso8601-1.1 {parse_date, bad option} -body { - clock::iso8601 parse_date 1994-11-05 -foo x --} -returnCodes error -result {bad switch "-foo", must be -base, -format, -gmt, -locale or -timezone} -+} -returnCodes error -result {bad option "-foo", must be -base, -format, -gmt, -locale or -timezone} - - # NOTE: While listed as legal, -format is NOT. This is because the - # command simply hands off to clock scan, and we are seeing its error -diff --git a/modules/multiplexer/multiplexer.test b/modules/multiplexer/multiplexer.test -index d778253..e5dfeff 100644 ---- a/modules/multiplexer/multiplexer.test -+++ b/modules/multiplexer/multiplexer.test -@@ -189,7 +189,7 @@ proc DenyAccessFilter {chan clientaddress clientport} { - return -1 - } - --test multiplexer-5.2 {add access filter which denies access} { -+test multiplexer-5.2 {add access filter which denies access} {broken without network} { - set ::forever {} - set mp [multiplexer::create] - ${mp}::Init 37465 -diff --git a/modules/snit/snit.test b/modules/snit/snit.test -index 66d7bd1..00c0769 100644 ---- a/modules/snit/snit.test -+++ b/modules/snit/snit.test -@@ -783,7 +783,7 @@ test dtypemethod-1.6a {delegating unknown typemethod to existing typecomponent w - snit2 - } -returnCodes { - error --} -result {unknown or ambiguous subcommand "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart} -+} -result {unknown or ambiguous subcommand "foo": must be bytelength, cat, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart} - - test dtypemethod-1.7 {can't delegate local typemethod: order 1} -body { - type dog { -@@ -3339,7 +3339,7 @@ test dmethod-1.6a {delegating unknown method to existing component with error} - - error - } -cleanup { - dog destroy --} -result {unknown or ambiguous subcommand "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart} -+} -result {unknown or ambiguous subcommand "foo": must be bytelength, cat, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart} - - test dmethod-1.7 {can't delegate local method: order 1} -body { - type cat { -diff --git a/modules/struct/sets.testsuite b/modules/struct/sets.testsuite -index 29fd3ef..28a9dd6 100644 ---- a/modules/struct/sets.testsuite -+++ b/modules/struct/sets.testsuite -@@ -13,7 +13,7 @@ - test set-${impl}-1.0 {nothing} { - catch {setop} msg - set msg --} [Nothing] -+} {wrong # args: should be "::struct::set cmd ?arg ...?"} - - test set-${impl}-1.1 {bogus} { - catch {setop foo} msg -diff --git a/modules/uev/uevent.test b/modules/uev/uevent.test -index 91754a7..6544112 100644 ---- a/modules/uev/uevent.test -+++ b/modules/uev/uevent.test -@@ -453,7 +453,7 @@ test uevent-10.3 {watch events, watch after bind, glob} { - ::uevent::unbind $t4 - ::uevent::watch::event::remove $tw - set res --} {bound TAG EX bound TAGX EX bound TAG E bound TAGX E unbound TAGX E unbound TAG E unbound TAGX EX unbound TAG EX} -+} {bound TAGX E bound TAGX EX bound TAG E bound TAG EX unbound TAGX E unbound TAG E unbound TAGX EX unbound TAG EX} - - # ------------------------------------------------------------------------- - rename EVENT {} diff --git a/dev-tcltk/tcllib/files/tcllib-1.16-XSS-vuln.patch b/dev-tcltk/tcllib/files/tcllib-1.16-XSS-vuln.patch deleted file mode 100644 index 4a08e31e330b..000000000000 --- a/dev-tcltk/tcllib/files/tcllib-1.16-XSS-vuln.patch +++ /dev/null @@ -1,572 +0,0 @@ - modules/html/html.man | 76 +++++++++++++++- - modules/html/html.tcl | 55 +++++++++--- - modules/html/html.test | 224 +++++++++++++++++++++++++++++++++++----------- - modules/html/pkgIndex.tcl | 2 +- - 4 files changed, 287 insertions(+), 70 deletions(-) - -diff --git a/modules/html/html.man b/modules/html/html.man -index 705a8a2..f18cf4b 100644 ---- a/modules/html/html.man -+++ b/modules/html/html.man -@@ -1,5 +1,6 @@ - [comment {-*- tcl -*- doctools manpage}] --[manpage_begin html n 1.4] -+[vset HTML_VERSION 1.4.4] -+[manpage_begin html n [vset HTML_VERSION]] - [see_also htmlparse] - [see_also ncgi] - [keywords checkbox] -@@ -12,7 +13,7 @@ - [titledesc {Procedures to generate HTML structures}] - [category {CGI programming}] - [require Tcl 8.2] --[require html [opt 1.4]] -+[require html [opt [vset HTML_VERSION]]] - [description] - [para] - -@@ -62,7 +63,7 @@ the elements. - - [call [cmd ::html::checkValue] [arg name] [opt [arg value]]] - --Generate the "name=[arg name] value=[arg value] for a [term checkbox] form -+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". -@@ -245,6 +246,51 @@ 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::css] [arg href]] -+ -+[emph {Side effect only}]. Call this before [cmd ::html::head] to -+define a [term link] tag for a linked CSS document. The [arg href] -+value is a HTTP URL to a CSS document. The [term link] tag is included -+in the result of [cmd ::html::head]. -+ -+[para] -+ -+Multiple calls of this command are allowed, enabling the use of -+multiple CSS document references. In other words, the arguments -+of multiple calls are accumulated, and do not overwrite each other. -+ -+[call [cmd ::html::css-clear]] -+ -+[emph {Side effect only}]. Call this before [cmd ::html::head] to -+clear all links to CSS documents. -+[para] -+ -+Multiple calls of this command are allowed, doing nothing after the -+first of a sequence with no intervening [cmd ::html::css]. -+ -+[call [cmd ::html::js] [arg href]] -+ -+[emph {Side effect only}]. Call this before [cmd ::html::head] to -+define a [term script] tag for a linked JavaScript document. The -+[arg href] is a HTTP URL to a JavaScript document. The [term script] -+tag is included in the result of [cmd ::html::head]. -+ -+[para] -+ -+Multiple calls of this command are allowed, enabling the use of -+multiple JavaScript document references. In other words, the arguments -+of multiple calls are accumulated, and do not overwrite each other. -+ -+ -+[call [cmd ::html::js-clear]] -+ -+[emph {Side effect only}]. Call this before [cmd ::html::head] to -+clear all links to JavaScript documents. -+[para] -+ -+Multiple calls of this command are allowed, doing nothing after the -+first of a sequence with no intervening [cmd ::html::js]. -+ - [call [cmd ::html::minorList] [arg list] [opt [arg ordered]]] - - Generate an ordered or unordered list of links. The [arg list] is a -@@ -306,7 +352,7 @@ 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 -+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. - -@@ -401,6 +447,28 @@ 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. - -+[call [cmd ::html::doctype] [arg id]] -+ -+This procedure can be used to build the standard DOCTYPE -+declaration string. It will return the standard declaration -+string for the id, or throw an error if the id is not known. -+The following id's are defined: -+ -+[list_begin enumerated] -+[enum] HTML32 -+[enum] HTML40 -+[enum] HTML40T -+[enum] HTML40F -+[enum] HTML401 -+[enum] HTML401T -+[enum] HTML401F -+[enum] XHTML10S -+[enum] XHTML10T -+[enum] XHTML10F -+[enum] XHTML11 -+[enum] XHTMLB -+[list_end] -+ - [list_end] - - [vset CATEGORY html] -diff --git a/modules/html/html.tcl b/modules/html/html.tcl -index 77e517e..3c0c443 100644 ---- a/modules/html/html.tcl -+++ b/modules/html/html.tcl -@@ -15,7 +15,7 @@ - - package require Tcl 8.2 - package require ncgi --package provide html 1.4 -+package provide html 1.4.4 - - namespace eval ::html { - -@@ -510,7 +510,7 @@ proc ::html::refresh {content {url {}}} { - ::if {[string length $url]} { - append html "; url=$url" - } -- append html "\">\n" -+ append html "\">" - lappend page(meta) $html - return "" - } -@@ -912,7 +912,7 @@ proc ::html::selectPlain {name param choices {current {}}} { - # The html fragment - - proc ::html::textarea {name {param {}} {current {}}} { -- ::set value [ncgi::value $name $current] -+ ::set value [quoteFormValue [ncgi::value $name $current]] - return "<[string trimright \ - "textarea name=\"$name\"\ - [tagParam textarea $param]"]>$value</textarea>\n" -@@ -1405,7 +1405,7 @@ proc ::html::html_entities {s} { - # 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] -+ return [string map [list \n\r <br> \r\n <br> \n <br> \r <br>] $s] - } - - # ::html::doctype -@@ -1419,9 +1419,10 @@ proc ::html::nl2br {s} { - - proc ::html::doctype {arg} { - variable doctypes -- set code [string toupper $arg] -- if {![info exists doctypes($code)]} { -- return -code error "Unknown doctype \"$arg\"" -+ ::set code [string toupper $arg] -+ ::if {![info exists doctypes($code)]} { -+ return -code error -errorcode {HTML DOCTYPE BAD} \ -+ "Unknown doctype \"$arg\"" - } - return $doctypes($code) - } -@@ -1451,12 +1452,26 @@ namespace eval ::html { - # href The location of the css file to include the filename and path - # - # Results: --# HTML for the section -+# None. - - proc ::html::css {href} { - variable page -- set page(css) \ -- "<link rel=\"stylesheet\" type=\"text/css\" href=\"[quoteFormValue $href]\">\n" -+ lappend page(css) "<link rel=\"stylesheet\" type=\"text/css\" href=\"[quoteFormValue $href]\">" -+ return -+} -+ -+# ::html::css-clear -+# Drop all text/css references. -+# -+# Arguments: -+# None. -+# -+# Results: -+# None. -+ -+proc ::html::css-clear {} { -+ variable page -+ catch { unset page(css) } - return - } - -@@ -1467,11 +1482,25 @@ proc ::html::css {href} { - # href The location of the javascript file to include the filename and path - # - # Results: --# HTML for the section -+# None. - - proc ::html::js {href} { - variable page -- set page(js) \ -- "<script language=\"javascript\" type=\"text/javascript\" src=\"[quoteFormValue $href]\"></script>\n" -+ lappend page(js) "<script language=\"javascript\" type=\"text/javascript\" src=\"[quoteFormValue $href]\"></script>" -+ return -+} -+ -+# ::html::js-clear -+# Drop all text/javascript references. -+# -+# Arguments: -+# None. -+# -+# Results: -+# None. -+ -+proc ::html::js-clear {} { -+ variable page -+ catch { unset page(js) } - return - } -diff --git a/modules/html/html.test b/modules/html/html.test -index 7a03c54..6646fb6 100644 ---- a/modules/html/html.test -+++ b/modules/html/html.test -@@ -17,8 +17,8 @@ source [file join \ - [file dirname [file dirname [file join [pwd] [info script]]]] \ - devtools testutilities.tcl] - --testsNeedTcl 8.2 --testsNeedTcltest 1.0 -+testsNeedTcl 8.4 -+testsNeedTcltest 2.0 - - testing { - useLocal html.tcl html -@@ -26,45 +26,46 @@ testing { - - # ------------------------------------------------------------------------- - --test html-1.1 {html::init} { -+test html-1.1 {html::init} -body { - html::init -- list [array exists html::defaults] \ -- [array size html::defaults] \ -- [info exists html::page] --} {1 0 0} -+ list \ -+ [array exists html::defaults] \ -+ [array size html::defaults] \ -+ [info exists html::page] -+} -result {1 0 0} - --test html-1.2 {html::init} { -+test html-1.2 {html::init} -body { - html::init { - font.face arial - body.bgcolor white - body.text black - } - lsort [array names html::defaults] --} {body.bgcolor body.text font.face} -+} -result {body.bgcolor body.text font.face} - --test html-1.3 {html::init} { -- catch {html::init wrong num args} --} 1 -+test html-1.3 {html::init, too many args} -body { -+ html::init wrong num args -+} -returnCodes error -result {wrong # args: should be "html::init ?nvlist?"} - --test html-1.4 {html::init} { -- catch {html::init {wrong num args}} --} 1 -+test html-1.4 {html::init, bad arg, odd-length list} -body { -+ html::init {wrong num args} -+} -returnCodes error -result {list must have an even number of elements} - --test html-2.1 {html::head} { -- catch {html::head} --} 1 -+test html-2.1 {html::head, not enough args} -body { -+ html::head -+} -returnCodes error -result {wrong # args: should be "html::head title"} - --test html-2.2 {html::head} { -+test html-2.2 {html::head} -body { - html::head "The Title" --} "<html><head>\n\t<title>The Title</title>\n</head>\n" -+} -result "<html><head>\n\t<title>The Title</title>\n</head>\n" - --test html-2.3 {html::head} { -+test html-2.3 {html::head} -body { - html::description "The Description" - html::keywords key word - html::author "Cathy Coder" - html::meta metakey metavalue - html::head "The Title" --} {<html><head> -+} -result {<html><head> - <title>The Title</title> - <!-- Cathy Coder --> - <meta name="description" content="The Description"> -@@ -73,24 +74,24 @@ test html-2.3 {html::head} { - </head> - } - --test html-3.1 {html::title} { -- catch html::title --} 1 -+test html-3.1 {html::title, not enough args} -body { -+ html::title -+} -returnCodes error -result {wrong # args: should be "html::title title"} - --test html-3.2 {html::title} { -+test html-3.2 {html::title} -body { - html::title "blah blah" --} "<title>blah blah</title>\n" -+} -result "<title>blah blah</title>\n" - --test html-4.1 {html::getTitle} { -+test html-4.1 {html::getTitle} -body { - html::init - html::getTitle --} "" -+} -result "" - --test html-4.2 {html::getTitle} { -+test html-4.2 {html::getTitle} -body { - html::init - html::title "blah blah" - html::getTitle --} {blah blah} -+} -result {blah blah} - - test html-5.1 {html::meta} { - html::init -@@ -453,6 +454,18 @@ test html-23.2 {html::textarea} { - } {<textarea name="info" cols="50" rows="8">The textarea value.</textarea> - } - -+test html-23.3 {html::textarea, dangerous input} { -+ html::init { -+ textarea.cols 50 -+ textarea.rows 8 -+ } -+ ncgi::reset info=[ncgi::encode "</textarea><script>alert(1)</script>"] -+ ncgi::parse -+ html::textarea info -+} {<textarea name="info" cols="50" rows="8"></textarea><script>alert(1)</script></textarea> -+} -+ -+ - test html-24.1 {html::submit} { - catch {html::submit} - } {1} -@@ -516,7 +529,6 @@ test html-26.4 {html::refresh} { - } {<html><head> - <title>title</title> - <meta http-equiv="Refresh" content="4"> -- - </head> - } - test html-26.5 {html::refresh} { -@@ -526,7 +538,6 @@ test html-26.5 {html::refresh} { - } {<html><head> - <title>title</title> - <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> -- - </head> - } - -@@ -794,6 +805,7 @@ test html-32.1 {single argument} { - set result [html::eval {set x [format 22]}] - list $result $x - } {{} 22} -+ - test html-32.2 {multiple arguments} { - set a {$b} - set b xyzzy -@@ -801,38 +813,146 @@ test html-32.2 {multiple arguments} { - 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-32.4 {error: not enough arguments} -body { -+ html::eval -+} -returnCodes error -result {wrong # args: should be "uplevel ?level? command ?arg ...?"} - --test html-33.0 {html::font} { -+test html-32.6 {error in eval'ed command} -body { -+ html::eval {error "test error"} -+} -returnCodes error -result {test error} -+ -+test html-33.0 {html::font} -body { - html::font --} {} -+} -result {} - --test html-33.1 {html::font} { -+test html-33.1 {html::font} -body { - html::font size=18 --} {<font size=18>} -+} -result {<font size=18>} - -- --test html-34.0 {html::nl2br} { -+test html-34.0 {html::nl2br} -body { - html::nl2br "a\n\rb\nc\rd" --} {a<br>b<br>c<br>d} -+} -result {a<br>b<br>c<br>d} - -+test html-34.1 {html::nl2br, ticket 1742078} -body { -+ html::nl2br "a\r\nb" -+} -result {a<br>b} - -+# ------------------------------------------------------------------------- -+ -+test html-tkt3439702-35.0 {html::css, not enough arguments} -body { -+ html::css -+} -returnCodes error -result {wrong # args: should be "html::css href"} -+ -+test html-tkt3439702-35.1 {html::css, too many arguments} -body { -+ html::css REF X -+} -returnCodes error -result {wrong # args: should be "html::css href"} -+ -+test html-tkt3439702-35.2 {html::css, single ref} -setup { -+ html::css-clear -+} -body { -+ html::css "http://test.css" -+ string trim [html::head T] -+} -cleanup { -+ html::css-clear -+} -result "<html><head>\n\t<title>T</title>\n\t<meta http-equiv=\"Refresh\" content=\"9; url=http://www.scriptics.com\">\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"http://test.css\">\n</head>" -+ -+test html-tkt3439702-35.3 {html::css, multiple ref} -setup { -+ html::css-clear -+} -body { -+ html::css "http://test1.css" -+ html::css "http://test2.css" -+ string trim [html::head T] -+} -cleanup { -+ html::css-clear -+} -result {<html><head> -+ <title>T</title> -+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> -+ <link rel="stylesheet" type="text/css" href="http://test1.css"> -+ <link rel="stylesheet" type="text/css" href="http://test2.css"> -+</head>} -+ -+# ------------------------------------------------------------------------- -+ -+test html-tkt3439702-36.0 {html::js, not enough arguments} -body { -+ html::js -+} -returnCodes error -result {wrong # args: should be "html::js href"} -+ -+test html-tkt3439702-36.1 {html::js, too many arguments} -body { -+ html::js REF X -+} -returnCodes error -result {wrong # args: should be "html::js href"} -+ -+test html-tkt3439702-36.2 {html::js, single ref} -setup { -+ html::js-clear -+} -body { -+ html::js "http://test.js" -+ string trim [html::head T] -+} -cleanup { -+ html::js-clear -+} -result {<html><head> -+ <title>T</title> -+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> -+ <script language="javascript" type="text/javascript" src="http://test.js"></script> -+</head>} -+ -+test html-tkt3439702-36.3 {html::js, multiple ref} -setup { -+ html::js-clear -+} -body { -+ html::js "http://test1.js" -+ html::js "http://test2.js" -+ string trim [html::head T] -+} -cleanup { -+ html::js-clear -+} -result {<html><head> -+ <title>T</title> -+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> -+ <script language="javascript" type="text/javascript" src="http://test1.js"></script> -+ <script language="javascript" type="text/javascript" src="http://test2.js"></script> -+</head>} -+ -+test html-tkt3439702-37.0 {html::js, html::css, mixed} -setup { -+ html::css-clear -+ html::js-clear -+} -body { -+ html::css "http://test.css" -+ html::js "http://test.js" -+ string trim [html::head T] -+} -cleanup { -+ html::js-clear -+ html::css-clear -+} -result {<html><head> -+ <title>T</title> -+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> -+ <link rel="stylesheet" type="text/css" href="http://test.css"> -+ <script language="javascript" type="text/javascript" src="http://test.js"></script> -+</head>} -+ -+# ------------------------------------------------------------------------- -+# TODO: html::css-clear, html::js-clear -+ -+ -+test html-tktafe4366e2e-38.0 {html::doctype, not enough args} -body { -+ html::doctype -+} -returnCodes error -result {wrong # args: should be "html::doctype arg"} -+ -+test html-tktafe4366e2e-38.1 {html::doctype, too many args} -body { -+ html::doctype HTML401T X -+} -returnCodes error -result {wrong # args: should be "html::doctype arg"} -+ -+test html-tktafe4366e2e-38.2 {html::doctype, unknown type} -body { -+ html::doctype HTML401TXXX -+} -returnCodes error -result {Unknown doctype "HTML401TXXX"} -+ -+test html-tktafe4366e2e-38.3 {html::doctype} -body { -+ html::doctype HTML401T -+} -result {<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">} -+ -+# ------------------------------------------------------------------------- - testsuiteCleanup -diff --git a/modules/html/pkgIndex.tcl b/modules/html/pkgIndex.tcl -index 88a71b2..9d91097 100644 ---- a/modules/html/pkgIndex.tcl -+++ b/modules/html/pkgIndex.tcl -@@ -1,2 +1,2 @@ - if {![package vsatisfies [package provide Tcl] 8.2]} {return} --package ifneeded html 1.4 [list source [file join $dir html.tcl]] -+package ifneeded html 1.4.4 [list source [file join $dir html.tcl]] diff --git a/dev-tcltk/tcllib/files/tcllib-1.16-test.patch b/dev-tcltk/tcllib/files/tcllib-1.16-test.patch deleted file mode 100644 index 8b3c8ca25905..000000000000 --- a/dev-tcltk/tcllib/files/tcllib-1.16-test.patch +++ /dev/null @@ -1,81 +0,0 @@ - modules/clock/iso8601.test | 2 +- - modules/multiplexer/multiplexer.test | 2 +- - modules/snit/snit.test | 4 ++-- - modules/struct/sets.testsuite | 2 +- - modules/uev/uevent.test | 2 +- - 5 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/modules/clock/iso8601.test b/modules/clock/iso8601.test -index 6fce938..a9db5b0 100644 ---- a/modules/clock/iso8601.test -+++ b/modules/clock/iso8601.test -@@ -26,7 +26,7 @@ test clock-iso8601-1.0.1 {parse_date wrong\#args} -constraints {tcl8.6plus} -bod - - test clock-iso8601-1.1 {parse_date, bad option} -body { - clock::iso8601 parse_date 1994-11-05 -foo x --} -returnCodes error -result {bad switch "-foo", must be -base, -format, -gmt, -locale or -timezone} -+} -returnCodes error -result {bad option "-foo", must be -base, -format, -gmt, -locale or -timezone} - - # NOTE: While listed as legal, -format is NOT. This is because the - # command simply hands off to clock scan, and we are seeing its error -diff --git a/modules/multiplexer/multiplexer.test b/modules/multiplexer/multiplexer.test -index d778253..e5dfeff 100644 ---- a/modules/multiplexer/multiplexer.test -+++ b/modules/multiplexer/multiplexer.test -@@ -189,7 +189,7 @@ proc DenyAccessFilter {chan clientaddress clientport} { - return -1 - } - --test multiplexer-5.2 {add access filter which denies access} { -+test multiplexer-5.2 {add access filter which denies access} {broken without network} { - set ::forever {} - set mp [multiplexer::create] - ${mp}::Init 37465 -diff --git a/modules/snit/snit.test b/modules/snit/snit.test -index 66d7bd1..00c0769 100644 ---- a/modules/snit/snit.test -+++ b/modules/snit/snit.test -@@ -783,7 +783,7 @@ test dtypemethod-1.6a {delegating unknown typemethod to existing typecomponent w - snit2 - } -returnCodes { - error --} -result {unknown or ambiguous subcommand "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart} -+} -result {unknown or ambiguous subcommand "foo": must be bytelength, cat, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart} - - test dtypemethod-1.7 {can't delegate local typemethod: order 1} -body { - type dog { -@@ -3339,7 +3339,7 @@ test dmethod-1.6a {delegating unknown method to existing component with error} - - error - } -cleanup { - dog destroy --} -result {unknown or ambiguous subcommand "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart} -+} -result {unknown or ambiguous subcommand "foo": must be bytelength, cat, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, totitle, toupper, trim, trimleft, trimright, wordend, or wordstart} - - test dmethod-1.7 {can't delegate local method: order 1} -body { - type cat { -diff --git a/modules/struct/sets.testsuite b/modules/struct/sets.testsuite -index 29fd3ef..28a9dd6 100644 ---- a/modules/struct/sets.testsuite -+++ b/modules/struct/sets.testsuite -@@ -13,7 +13,7 @@ - test set-${impl}-1.0 {nothing} { - catch {setop} msg - set msg --} [Nothing] -+} {wrong # args: should be "::struct::set cmd ?arg ...?"} - - test set-${impl}-1.1 {bogus} { - catch {setop foo} msg -diff --git a/modules/uev/uevent.test b/modules/uev/uevent.test -index 91754a7..6544112 100644 ---- a/modules/uev/uevent.test -+++ b/modules/uev/uevent.test -@@ -453,7 +453,7 @@ test uevent-10.3 {watch events, watch after bind, glob} { - ::uevent::unbind $t4 - ::uevent::watch::event::remove $tw - set res --} {bound TAG EX bound TAGX EX bound TAG E bound TAGX E unbound TAGX E unbound TAG E unbound TAGX EX unbound TAG EX} -+} {bound TAGX E bound TAGX EX bound TAG E bound TAG EX unbound TAGX E unbound TAG E unbound TAGX EX unbound TAG EX} - - # ------------------------------------------------------------------------- - rename EVENT {} diff --git a/dev-tcltk/tcllib/tcllib-1.15-r2.ebuild b/dev-tcltk/tcllib/tcllib-1.15-r2.ebuild index 38fc5f78a415..9b88517a4413 100644 --- a/dev-tcltk/tcllib/tcllib-1.15-r2.ebuild +++ b/dev-tcltk/tcllib/tcllib-1.15-r2.ebuild @@ -8,8 +8,7 @@ inherit eutils virtualx DESCRIPTION="Tcl Standard Library" HOMEPAGE="http://www.tcl.tk/software/tcllib/" SRC_URI=" - https://dev.gentoo.org/~jlec/distfiles/${P}-manpage-rename.patch.xz - https://dev.gentoo.org/~jlec/distfiles/${P}-test.patch.xz + https://dev.gentoo.org/~mgorny/dist/${P}-patchset.tar.xz mirror://sourceforge/tcllib/${P}.tar.bz2" LICENSE="BSD" @@ -23,15 +22,15 @@ DEPEND="${RDEPEND}" DOCS=( DESCRIPTION.txt STATUS ) PATCHES=( - "${FILESDIR}"/${P}-tcl8.6-test.patch - "${WORKDIR}"/${P}-test.patch - "${WORKDIR}"/${P}-manpage-rename.patch - "${FILESDIR}"/${P}-XSS-vuln.patch + "${WORKDIR}"/${P}-patchset/${P}-tcl8.6-test.patch + "${WORKDIR}"/${P}-patchset/${P}-test.patch + "${WORKDIR}"/${P}-patchset/${P}-manpage-rename.patch + "${WORKDIR}"/${P}-patchset/${P}-XSS-vuln.patch ) src_prepare() { has_version ">=dev-lang/tcl-8.6" && \ - PATCHES+=( "${FILESDIR}"/${P}-test.patch ) + PATCHES+=( "${WORKDIR}"/${P}-patchset/${P}-tcl8.6-test-2.patch ) epatch "${PATCHES[@]}" } diff --git a/dev-tcltk/tcllib/tcllib-1.16.ebuild b/dev-tcltk/tcllib/tcllib-1.16.ebuild index 4232724bc11a..1f34a46571b6 100644 --- a/dev-tcltk/tcllib/tcllib-1.16.ebuild +++ b/dev-tcltk/tcllib/tcllib-1.16.ebuild @@ -10,7 +10,8 @@ MY_P=${MY_PN}-${PV} DESCRIPTION="Tcl Standard Library" HOMEPAGE="http://www.tcl.tk/software/tcllib/" -SRC_URI="mirror://sourceforge//project/${PN}/${PN}/${PV}/${MY_P}.tar.bz2" +SRC_URI="mirror://sourceforge//project/${PN}/${PN}/${PV}/${MY_P}.tar.bz2 + https://dev.gentoo.org/~mgorny/dist/${P}-patchset.tar.xz" LICENSE="BSD" SLOT="0" @@ -27,11 +28,11 @@ DOCS=( DESCRIPTION.txt STATUS ) S="${WORKDIR}"/${MY_P} -PATCHES=( "${FILESDIR}"/${P}-XSS-vuln.patch ) +PATCHES=( "${WORKDIR}"/${P}-patchset/${P}-XSS-vuln.patch ) src_prepare() { has_version ">=dev-lang/tcl-8.6" && \ - PATCHES+=( "${FILESDIR}"/${P}-test.patch ) + PATCHES+=( "${WORKDIR}"/${P}-patchset/${P}-test.patch ) epatch "${PATCHES[@]}" sed \ |