1 |
commit: 2714e9a707652692bb0290a1f154768b409f863e |
2 |
Author: Michał Górny <mgorny <AT> gentoo <DOT> org> |
3 |
AuthorDate: Fri Dec 8 18:45:42 2017 +0000 |
4 |
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Dec 8 18:47:12 2017 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2714e9a7 |
7 |
|
8 |
dev-tcltk/tcllib: [QA] Move patches to distfiles |
9 |
|
10 |
While at it, also collect the currently separate patches into one |
11 |
tarball. |
12 |
|
13 |
Closes: https://bugs.gentoo.org/620570 |
14 |
|
15 |
dev-tcltk/tcllib/Manifest | 8 +- |
16 |
dev-tcltk/tcllib/files/tcllib-1.15-XSS-vuln.patch | 907 --------------------- |
17 |
.../tcllib/files/tcllib-1.15-tcl8.6-test.patch | 411 ---------- |
18 |
dev-tcltk/tcllib/files/tcllib-1.15-test.patch | 81 -- |
19 |
dev-tcltk/tcllib/files/tcllib-1.16-XSS-vuln.patch | 572 ------------- |
20 |
dev-tcltk/tcllib/files/tcllib-1.16-test.patch | 81 -- |
21 |
dev-tcltk/tcllib/tcllib-1.15-r2.ebuild | 13 +- |
22 |
dev-tcltk/tcllib/tcllib-1.16.ebuild | 7 +- |
23 |
8 files changed, 14 insertions(+), 2066 deletions(-) |
24 |
|
25 |
diff --git a/dev-tcltk/tcllib/Manifest b/dev-tcltk/tcllib/Manifest |
26 |
index 816a671a73e..0659ab857d3 100644 |
27 |
--- a/dev-tcltk/tcllib/Manifest |
28 |
+++ b/dev-tcltk/tcllib/Manifest |
29 |
@@ -1,4 +1,4 @@ |
30 |
-DIST Tcllib-1.16.tar.bz2 6089076 SHA256 033334306d3ffc499c8830d393bf7528227e49c68077b3e9247c4171b15be012 SHA512 5e0656c178c0fae907c101b5324f04ba1bb5c26f4d1015868194dbb393e88a281ecf66bc4701167db24ddb526b87acfd88223e0e9e6db1f9d0ffb919b3372752 WHIRLPOOL 543f5ef8b337eb2c34f90201c829f20cfd3beb0f7dcf146f4d27b66f0b8796bf518d44dad31e2be66857b50a515b5a10ae8e394d6b393e1b202903b6b68f04aa |
31 |
-DIST tcllib-1.15-manpage-rename.patch.xz 3188 SHA256 d86f60e98013fe35a1038247e1992a0afc9314462d693ee10ee30ded501e1869 SHA512 9bcdb6c7dcb492a58e767529a8bb5a2c83912577ae124fec40f3bbd6fb283a4befb2dfc3d7a986b287ba9709bba7261b676d78441c8be0f614f31bc123d81126 WHIRLPOOL 1ac9fd5fddba5adab9560cabb0a5df9a3e0c2bafda861cabb6519bcef2a94c54f2dcd2e04e3b3892cda2c374c0186d7e21e4e435f109a8915eaa507019a53db8 |
32 |
-DIST tcllib-1.15-test.patch.xz 3208 SHA256 16fbf7d564f3b0f338d3f21774199738ca0014e4d689b053bef8840023cf8889 SHA512 8b9de181cdc39e0f9361694fb1bb9ee42b3fba269d13e91be31643ce3509c34e3e6b74b043e067dda49d75b6f4a009a79361f7a9ecf4613a509decb3eacf8447 WHIRLPOOL 1b138a1d742e8b7aeb574ec1eb1d7688b9a7bcf469269b4b27004f23f9d7947b9dd4828322739606bd3a9aecc11202d3712f15cd459448f18f6e9a2896911a12 |
33 |
-DIST tcllib-1.15.tar.bz2 5030648 SHA256 7a1e27f6d2e625af15d13df6117958815c8482e662a914fc1cbd7f0b0e780e71 SHA512 544b1193266e860eb59a4c313645376bba8488711b2afc629d99d0e719252db79caae73022ae1dc21dc123f949fa8930f81112c3f80328fc83952b64f93ca3c4 WHIRLPOOL 75ef40710859c0f669fdac96ee7ed5d76d6a10081649d890cadc970c21478b2daddd8289853e38239d68ad9aae0dd9ee5ee94827f1bf0e4b5b511134024e062c |
34 |
+DIST Tcllib-1.16.tar.bz2 6089076 BLAKE2B d3b2d439689320e85a2a31f9dcd7bbb23af6d54eec299cb2b4248b961f98de95a878cc20c2bca712f907f6359ae6152d912e849a47d9394910b9278ff748d617 SHA512 5e0656c178c0fae907c101b5324f04ba1bb5c26f4d1015868194dbb393e88a281ecf66bc4701167db24ddb526b87acfd88223e0e9e6db1f9d0ffb919b3372752 |
35 |
+DIST tcllib-1.15-patchset.tar.xz 16164 BLAKE2B 590f6ea38aa2cf98e80011591d5bf06f27d4ca2af03b2e633a2752c184d2c1d78cc22f9b8472a2e5af7052cbb742a22fec0d487974a7599e4d4081bd5e80dcfe SHA512 85507cd00692138ea3c791f88bf4bbdadefa91168a55aebd1da7a89a9de37c3352be27db25bfdb7478dfc90865f906b290fdcbd858be0c01e3502f0446f03262 |
36 |
+DIST tcllib-1.15.tar.bz2 5030648 BLAKE2B 9731be4282bc3b3b0bb56021c3f0a7943ff4163d04ae397b1e0543cbce0642cbf5f64b66c57348a932d9e29c53273223998f2d8b0b087ff7ac679191e8a35ece SHA512 544b1193266e860eb59a4c313645376bba8488711b2afc629d99d0e719252db79caae73022ae1dc21dc123f949fa8930f81112c3f80328fc83952b64f93ca3c4 |
37 |
+DIST tcllib-1.16-patchset.tar.xz 5484 BLAKE2B b7dc4cd1045cc88e7cc85412734cd036a77af276635e20ff7df207bf5296df63f9c4b1374957f2d01ef278daabdb1b7bb5cb1bb9e3d2a4e0100be02d23ddbb2a SHA512 1bb3b7ed698a77502eecc7ae9fe28b0370770d08235994fd083828af4e87aee49f60c529774bf54dc339122b68fc1841acdd05b27f95ef78145934268567fc03 |
38 |
|
39 |
diff --git a/dev-tcltk/tcllib/files/tcllib-1.15-XSS-vuln.patch b/dev-tcltk/tcllib/files/tcllib-1.15-XSS-vuln.patch |
40 |
deleted file mode 100644 |
41 |
index 4b3502dd86f..00000000000 |
42 |
--- a/dev-tcltk/tcllib/files/tcllib-1.15-XSS-vuln.patch |
43 |
+++ /dev/null |
44 |
@@ -1,907 +0,0 @@ |
45 |
- modules/html/html.man | 146 +++++++++++++++++------------- |
46 |
- modules/html/html.tcl | 55 +++++++++--- |
47 |
- modules/html/html.test | 224 +++++++++++++++++++++++++++++++++++----------- |
48 |
- modules/html/pkgIndex.tcl | 2 +- |
49 |
- 4 files changed, 297 insertions(+), 130 deletions(-) |
50 |
- |
51 |
-diff --git a/modules/html/html.man b/modules/html/html.man |
52 |
-index efb41fc..f18cf4b 100644 |
53 |
---- a/modules/html/html.man |
54 |
-+++ b/modules/html/html.man |
55 |
-@@ -1,10 +1,19 @@ |
56 |
- [comment {-*- tcl -*- doctools manpage}] |
57 |
--[manpage_begin html n 1.4] |
58 |
-+[vset HTML_VERSION 1.4.4] |
59 |
-+[manpage_begin html n [vset HTML_VERSION]] |
60 |
-+[see_also htmlparse] |
61 |
-+[see_also ncgi] |
62 |
-+[keywords checkbox] |
63 |
-+[keywords checkbutton] |
64 |
-+[keywords form] |
65 |
-+[keywords html] |
66 |
-+[keywords radiobutton] |
67 |
-+[keywords table] |
68 |
- [moddesc {HTML Generation}] |
69 |
- [titledesc {Procedures to generate HTML structures}] |
70 |
- [category {CGI programming}] |
71 |
- [require Tcl 8.2] |
72 |
--[require html [opt 1.4]] |
73 |
-+[require html [opt [vset HTML_VERSION]]] |
74 |
- [description] |
75 |
- [para] |
76 |
- |
77 |
-@@ -26,13 +35,11 @@ for HTML tag parameters. |
78 |
- define an author for the page. The author is noted in a comment in |
79 |
- the HEAD section. |
80 |
- |
81 |
-- |
82 |
- [call [cmd ::html::bodyTag] [arg args]] |
83 |
- |
84 |
- Generate a [term body] tag. The tag parameters are taken from [arg args] or |
85 |
- from the body.* attributes define with [cmd ::html::init]. |
86 |
- |
87 |
-- |
88 |
- [call [cmd ::html::cell] [arg {param value}] [opt [arg tag]]] |
89 |
- |
90 |
- Generate a [term td] (or [term th]) tag, a value, and a closing |
91 |
-@@ -41,13 +48,11 @@ tag parameters come from [arg param] or TD.* attributes defined with |
92 |
- [cmd ::html::init]. This uses [cmd ::html::font] to insert a standard |
93 |
- [term font] tag into the table cell. The [arg tag] argument defaults to "td". |
94 |
- |
95 |
-- |
96 |
- [call [cmd ::html::checkbox] [arg {name value}]] |
97 |
- |
98 |
- Generate a [term checkbox] form element with the specified name and value. |
99 |
- This uses [cmd ::html::checkValue]. |
100 |
- |
101 |
-- |
102 |
- [call [cmd ::html::checkSet] [arg {key sep list}]] |
103 |
- |
104 |
- Generate a set of [term checkbox] form elements and associated labels. The |
105 |
-@@ -56,21 +61,18 @@ This uses [cmd ::html::checkbox]. All the [term checkbox] buttons share the |
106 |
- same [arg key] for their name. The [arg sep] is text used to separate |
107 |
- the elements. |
108 |
- |
109 |
-- |
110 |
- [call [cmd ::html::checkValue] [arg name] [opt [arg value]]] |
111 |
- |
112 |
--Generate the "name=[arg name] value=[arg value] for a [term checkbox] form |
113 |
-+Generate the "name=[arg name] value=[arg value]" for a [term checkbox] form |
114 |
- element. If the CGI variable [arg name] has the value [arg value], |
115 |
- then SELECTED is added to the return value. [arg value] defaults to |
116 |
- "1". |
117 |
- |
118 |
-- |
119 |
- [call [cmd ::html::closeTag]] |
120 |
- |
121 |
- Pop a tag off the stack created by [cmd ::html::openTag] and generate |
122 |
- the corresponding close tag (e.g., </body>). |
123 |
- |
124 |
-- |
125 |
- [call [cmd ::html::default] [arg key] [opt [arg param]]] |
126 |
- |
127 |
- This procedure is used by [cmd ::html::tagParam] to generate the name, |
128 |
-@@ -83,27 +85,23 @@ identified by [arg key]. The [arg key] has the form "tag.parameter" |
129 |
- (e.g., body.bgcolor). Use [cmd ::html::init] to register default |
130 |
- values. [arg param] defaults to the empty string. |
131 |
- |
132 |
-- |
133 |
- [call [cmd ::html::description] [arg description]] |
134 |
- |
135 |
- [emph {Side effect only}]. Call this before [cmd ::html::head] to |
136 |
- define a description [term meta] tag for the page. This tag is generated |
137 |
- later in the call to [cmd ::html::head]. |
138 |
- |
139 |
-- |
140 |
- [call [cmd ::html::end]] |
141 |
- |
142 |
- Pop all open tags from the stack and generate the corresponding close |
143 |
- HTML tags, (e.g., </body></html>). |
144 |
- |
145 |
-- |
146 |
- [call [cmd ::html::eval] [arg arg] [opt [arg args]]] |
147 |
- |
148 |
- This procedure is similar to the built-in Tcl [cmd eval] command. The |
149 |
- only difference is that it returns "" so it can be called from an HTML |
150 |
- template file without appending unwanted results. |
151 |
- |
152 |
-- |
153 |
- [call [cmd ::html::extractParam] [arg {param key}] [opt [arg varName]]] |
154 |
- |
155 |
- This is a parsing procedure that extracts the value of [arg key] from |
156 |
-@@ -115,13 +113,11 @@ parameter was found in [arg param], otherwise it returns 0. If the |
157 |
- [arg varName] is not specified, then [arg key] is used as the variable |
158 |
- name. |
159 |
- |
160 |
-- |
161 |
- [call [cmd ::html::font] [arg args]] |
162 |
- |
163 |
- Generate a standard [term font] tag. The parameters to the tag are taken |
164 |
- from [arg args] and the HTML defaults defined with [cmd ::html::init]. |
165 |
- |
166 |
-- |
167 |
- [call [cmd ::html::for] [arg {start test next body}]] |
168 |
- |
169 |
- This procedure is similar to the built-in Tcl [cmd for] control |
170 |
-@@ -129,7 +125,6 @@ structure. Rather than evaluating the body, it returns the subst'ed |
171 |
- [arg body]. Each iteration of the loop causes another string to be |
172 |
- concatenated to the result value. |
173 |
- |
174 |
-- |
175 |
- [call [cmd ::html::foreach] [arg {varlist1 list1}] [opt [arg {varlist2 list2 ...}]] [arg body]] |
176 |
- |
177 |
- This procedure is similar to the built-in Tcl [cmd foreach] control |
178 |
-@@ -137,7 +132,6 @@ structure. Rather than evaluating the body, it returns the subst'ed |
179 |
- [arg body]. Each iteration of the loop causes another string to be |
180 |
- concatenated to the result value. |
181 |
- |
182 |
-- |
183 |
- [call [cmd ::html::formValue] [arg name] [opt [arg defvalue]]] |
184 |
- |
185 |
- Return a name and value pair, where the value is initialized from |
186 |
-@@ -148,20 +142,17 @@ existing CGI data, if any. The result has this form: |
187 |
- name="fred" value="freds value" |
188 |
- }] |
189 |
- |
190 |
-- |
191 |
- [call [cmd ::html::getFormInfo] [arg args]] |
192 |
- |
193 |
- Generate hidden fields to capture form values. If [arg args] is |
194 |
- empty, then hidden fields are generated for all CGI values. Otherwise |
195 |
- args is a list of string match patterns for form element names. |
196 |
- |
197 |
-- |
198 |
- [call [cmd ::html::getTitle]] |
199 |
- |
200 |
- Return the title string, with out the surrounding [term title] tag, |
201 |
- set with a previous call to [cmd ::html::title]. |
202 |
- |
203 |
-- |
204 |
- [call [cmd ::html::h] [arg {level string}] [opt [arg param]]] |
205 |
- |
206 |
- Generate a heading (e.g., [term h[var level]]) tag. The [arg string] is nested in the |
207 |
-@@ -191,28 +182,25 @@ Generate an [term h5] tag. See [cmd ::html::h]. |
208 |
- |
209 |
- Generate an [term h6] tag. See [cmd ::html::h]. |
210 |
- |
211 |
-- |
212 |
- [call [cmd ::html::hdrRow] [arg args]] |
213 |
- |
214 |
- Generate a table row, including [term tr] and [term th] tags. |
215 |
- Each value in [arg args] is place into its own table cell. |
216 |
- This uses [cmd ::html::cell]. |
217 |
- |
218 |
-- |
219 |
- [call [cmd ::html::head] [arg title]] |
220 |
- |
221 |
- Generate the [term head] section that includes the page [term title]. |
222 |
- If previous calls have been made to |
223 |
--[cmd ::html::author], |
224 |
--[cmd ::html::keywords], |
225 |
--[cmd ::html::description], |
226 |
-+[cmd ::html::author], |
227 |
-+[cmd ::html::keywords], |
228 |
-+[cmd ::html::description], |
229 |
- or |
230 |
- [cmd ::html::meta] |
231 |
- then additional tags are inserted into the [term head] section. |
232 |
- This leaves an open [term html] tag pushed on the stack with |
233 |
- [cmd ::html::openTag]. |
234 |
- |
235 |
-- |
236 |
- [call [cmd ::html::headTag] [arg string]] |
237 |
- |
238 |
- Save a tag for inclusion in the [term head] section generated by |
239 |
-@@ -220,13 +208,11 @@ Save a tag for inclusion in the [term head] section generated by |
240 |
- [cmd ::html::head]. The [arg string] is everything in the tag except |
241 |
- the enclosing angle brackets, < >. |
242 |
- |
243 |
-- |
244 |
- [call [cmd ::html::html_entities] [arg string]] |
245 |
- |
246 |
- This command replaces all special characters in the [arg string] with |
247 |
- their HTML entities and returns the modified text. |
248 |
- |
249 |
-- |
250 |
- [call [cmd ::html::if] [arg {expr1 body1}] [opt "[const elseif] [arg {expr2 body2 ...}]"] [opt "[const else] [arg bodyN]"]] |
251 |
- |
252 |
- This procedure is similar to the built-in Tcl [cmd if] control |
253 |
-@@ -235,7 +221,6 @@ taken, it returns the subst'ed [arg body]. Note that the syntax is |
254 |
- slightly more restrictive than that of the built-in Tcl [cmd if] |
255 |
- control structure. |
256 |
- |
257 |
-- |
258 |
- [call [cmd ::html::init] [opt [arg list]]] |
259 |
- |
260 |
- [cmd ::html::init] accepts a Tcl-style name-value list that defines |
261 |
-@@ -243,19 +228,16 @@ values for items with a name of the form "tag.parameter". For |
262 |
- example, a default with key "body.bgcolor" defines the background |
263 |
- color for the [term body] tag. |
264 |
- |
265 |
-- |
266 |
- [call [cmd ::html::keywords] [arg args]] |
267 |
- |
268 |
- [emph {Side effect only}]. Call this before [cmd ::html::head] to |
269 |
- define a keyword [term meta] tag for the page. The [term meta] tag |
270 |
- is included in the result of [cmd ::html::head]. |
271 |
- |
272 |
-- |
273 |
- [call [cmd ::html::mailto] [arg email] [opt [arg subject]]] |
274 |
- |
275 |
- Generate a hypertext link to a mailto: URL. |
276 |
- |
277 |
-- |
278 |
- [call [cmd ::html::meta] [arg args]] |
279 |
- |
280 |
- [emph {Side effect only}]. Call this before [cmd ::html::head] to |
281 |
-@@ -264,6 +246,50 @@ value list that is used for the name= and value= parameters for the |
282 |
- [term meta] tag. The [term meta] tag is included in the result of |
283 |
- [cmd ::html::head]. |
284 |
- |
285 |
-+[call [cmd ::html::css] [arg href]] |
286 |
-+ |
287 |
-+[emph {Side effect only}]. Call this before [cmd ::html::head] to |
288 |
-+define a [term link] tag for a linked CSS document. The [arg href] |
289 |
-+value is a HTTP URL to a CSS document. The [term link] tag is included |
290 |
-+in the result of [cmd ::html::head]. |
291 |
-+ |
292 |
-+[para] |
293 |
-+ |
294 |
-+Multiple calls of this command are allowed, enabling the use of |
295 |
-+multiple CSS document references. In other words, the arguments |
296 |
-+of multiple calls are accumulated, and do not overwrite each other. |
297 |
-+ |
298 |
-+[call [cmd ::html::css-clear]] |
299 |
-+ |
300 |
-+[emph {Side effect only}]. Call this before [cmd ::html::head] to |
301 |
-+clear all links to CSS documents. |
302 |
-+[para] |
303 |
-+ |
304 |
-+Multiple calls of this command are allowed, doing nothing after the |
305 |
-+first of a sequence with no intervening [cmd ::html::css]. |
306 |
-+ |
307 |
-+[call [cmd ::html::js] [arg href]] |
308 |
-+ |
309 |
-+[emph {Side effect only}]. Call this before [cmd ::html::head] to |
310 |
-+define a [term script] tag for a linked JavaScript document. The |
311 |
-+[arg href] is a HTTP URL to a JavaScript document. The [term script] |
312 |
-+tag is included in the result of [cmd ::html::head]. |
313 |
-+ |
314 |
-+[para] |
315 |
-+ |
316 |
-+Multiple calls of this command are allowed, enabling the use of |
317 |
-+multiple JavaScript document references. In other words, the arguments |
318 |
-+of multiple calls are accumulated, and do not overwrite each other. |
319 |
-+ |
320 |
-+ |
321 |
-+[call [cmd ::html::js-clear]] |
322 |
-+ |
323 |
-+[emph {Side effect only}]. Call this before [cmd ::html::head] to |
324 |
-+clear all links to JavaScript documents. |
325 |
-+[para] |
326 |
-+ |
327 |
-+Multiple calls of this command are allowed, doing nothing after the |
328 |
-+first of a sequence with no intervening [cmd ::html::js]. |
329 |
- |
330 |
- [call [cmd ::html::minorList] [arg list] [opt [arg ordered]]] |
331 |
- |
332 |
-@@ -273,20 +299,17 @@ Tcl-style name, value list of labels and urls for the links. |
333 |
- [arg ordered] is a boolean used to choose between an ordered or |
334 |
- unordered list. It defaults to [const false]. |
335 |
- |
336 |
-- |
337 |
- [call [cmd ::html::minorMenu] [arg list] [opt [arg sep]]] |
338 |
- |
339 |
- Generate a series of hypertext links. The [arg list] is a Tcl-style |
340 |
- name, value list of labels and urls for the links. The [arg sep] is |
341 |
- the text to put between each link. It defaults to " | ". |
342 |
- |
343 |
-- |
344 |
- [call [cmd ::html::nl2br] [arg string]] |
345 |
- |
346 |
- This command replaces all line-endings in the [arg string] with a |
347 |
- [term br] tag and returns the modified text. |
348 |
- |
349 |
-- |
350 |
- [call [cmd ::html::openTag] [arg tag] [opt [arg param]]] |
351 |
- |
352 |
- Push [arg tag] onto a stack and generate the opening tag for |
353 |
-@@ -295,7 +318,6 @@ stack. The second argument provides any tag arguments, as a |
354 |
- list whose elements are formatted to be in the form |
355 |
- "[var key]=[const value]". |
356 |
- |
357 |
-- |
358 |
- [call [cmd ::html::paramRow] [arg list] [opt [arg rparam]] [opt [arg cparam]]] |
359 |
- |
360 |
- Generate a table row, including [term tr] and [term td] tags. Each value in |
361 |
-@@ -306,25 +328,21 @@ Generate a table row, including [term tr] and [term td] tags. Each value in |
362 |
- the [term tr] tag. The value of [arg cparam] is passed to [cmd ::html::cell] |
363 |
- as parameter for the [term td] tags. |
364 |
- |
365 |
-- |
366 |
- [call [cmd ::html::passwordInput] [opt [arg name]]] |
367 |
- |
368 |
- Generate an [term input] tag of type [term password]. The [arg name] defaults to |
369 |
- "password". |
370 |
- |
371 |
-- |
372 |
- [call [cmd ::html::passwordInputRow] [arg label] [opt [arg name]]] |
373 |
- |
374 |
- Format a table row containing a label and an [term input] tag of type |
375 |
- [term password]. The [arg name] defaults to "password". |
376 |
- |
377 |
-- |
378 |
- [call [cmd ::html::quoteFormValue] [arg value]] |
379 |
- |
380 |
- Quote special characters in [arg value] by replacing them with HTML |
381 |
- entities for quotes, ampersand, and angle brackets. |
382 |
- |
383 |
-- |
384 |
- [call [cmd ::html::radioSet] [arg {key sep list}]] |
385 |
- |
386 |
- Generate a set of [term input] tags of type [term radio] and an associated text |
387 |
-@@ -332,14 +350,12 @@ label. All the radio buttons share the same [arg key] for their name. |
388 |
- The [arg sep] is text used to separate the elements. The [arg list] |
389 |
- is a Tcl-style label, value list. |
390 |
- |
391 |
-- |
392 |
- [call [cmd ::html::radioValue] [arg {name value}]] |
393 |
- |
394 |
--Generate the "name=[arg name] value=[arg value] for a [term radio] form |
395 |
-+Generate the "name=[arg name] value=[arg value]" for a [term radio] form |
396 |
- element. If the CGI variable [arg name] has the value [arg value], |
397 |
- then SELECTED is added to the return value. |
398 |
- |
399 |
-- |
400 |
- [call [cmd ::html::refresh] [arg {seconds url}]] |
401 |
- |
402 |
- Set up a refresh [term meta] tag. Call this before [cmd ::html::head] and the |
403 |
-@@ -347,7 +363,6 @@ HEAD section will contain a [term meta] tag that causes the document to |
404 |
- refresh in [arg seconds] seconds. The [arg url] is optional. If |
405 |
- specified, it specifies a new page to load after the refresh interval. |
406 |
- |
407 |
-- |
408 |
- [call [cmd ::html::row] [arg args]] |
409 |
- |
410 |
- Generate a table row, including [term tr] and [term td] tags. Each value in |
411 |
-@@ -355,14 +370,12 @@ Generate a table row, including [term tr] and [term td] tags. Each value in |
412 |
- [cmd ::html::cell]. Ignores any default information set up via |
413 |
- [cmd ::html::init]. |
414 |
- |
415 |
-- |
416 |
- [call [cmd ::html::select] [arg {name param choices}] [opt [arg current]]] |
417 |
- |
418 |
- Generate a [term select] form element and nested [term option] tags. The [arg name] |
419 |
- and [arg param] are used to generate the [term select] tag. The [arg choices] |
420 |
- list is a Tcl-style name, value list. |
421 |
- |
422 |
-- |
423 |
- [call [cmd ::html::selectPlain] [arg {name param choices}] [opt [arg current]]] |
424 |
- |
425 |
- Like [cmd ::html::select] except that [arg choices] is a Tcl list of |
426 |
-@@ -376,12 +389,10 @@ main difference is that it returns "" so it can be called from an HTML |
427 |
- template file without appending unwanted results. The other |
428 |
- difference is that it must take two arguments. |
429 |
- |
430 |
-- |
431 |
- [call [cmd ::html::submit] [arg label] [opt [arg name]]] |
432 |
- |
433 |
- Generate an [term input] tag of type [term submit]. [arg name] defaults to "submit". |
434 |
- |
435 |
-- |
436 |
- [call [cmd ::html::tableFromArray] [arg arrname] [opt [arg param]] [opt [arg pat]]] |
437 |
- |
438 |
- Generate a two-column [term table] and nested rows to display a Tcl array. The |
439 |
-@@ -404,7 +415,6 @@ pre-formatted string. |
440 |
- |
441 |
- Generate a [term textarea] tag wrapped around its current values. |
442 |
- |
443 |
-- |
444 |
- [call [cmd ::html::textInput] [arg {name value args}]] |
445 |
- |
446 |
- Generate an [term input] form tag with type [term text]. This uses |
447 |
-@@ -412,7 +422,6 @@ Generate an [term input] form tag with type [term text]. This uses |
448 |
- [cmd ::html::formValue]. The args is any additional tag attributes |
449 |
- you want to put into the [term input] tag. |
450 |
- |
451 |
-- |
452 |
- [call [cmd ::html::textInputRow] [arg {label name value args}]] |
453 |
- |
454 |
- Generate an [term input] form tag with type [term text] formatted into a table row |
455 |
-@@ -431,7 +440,6 @@ define the [term title] for a page. |
456 |
- This returns 1 if the named variable either does not exist or has the |
457 |
- empty string for its value. |
458 |
- |
459 |
-- |
460 |
- [call [cmd ::html::while] [arg {test body}]] |
461 |
- |
462 |
- This procedure is similar to the built-in Tcl [cmd while] control |
463 |
-@@ -439,20 +447,30 @@ structure. Rather than evaluating the body, it returns the subst'ed |
464 |
- [arg body]. Each iteration of the loop causes another string to be |
465 |
- concatenated to the result value. |
466 |
- |
467 |
--[list_end] |
468 |
-- |
469 |
--[section {BUGS, IDEAS, FEEDBACK}] |
470 |
-- |
471 |
--This document, and the package it describes, will undoubtedly contain |
472 |
--bugs and other problems. |
473 |
-+[call [cmd ::html::doctype] [arg id]] |
474 |
- |
475 |
--Please report such in the category [emph html] of the |
476 |
--[uri {http://sourceforge.net/tracker/?group_id=12883} {Tcllib SF Trackers}]. |
477 |
-+This procedure can be used to build the standard DOCTYPE |
478 |
-+declaration string. It will return the standard declaration |
479 |
-+string for the id, or throw an error if the id is not known. |
480 |
-+The following id's are defined: |
481 |
- |
482 |
--Please also report any ideas for enhancements you may have for either |
483 |
--package and/or documentation. |
484 |
-+[list_begin enumerated] |
485 |
-+[enum] HTML32 |
486 |
-+[enum] HTML40 |
487 |
-+[enum] HTML40T |
488 |
-+[enum] HTML40F |
489 |
-+[enum] HTML401 |
490 |
-+[enum] HTML401T |
491 |
-+[enum] HTML401F |
492 |
-+[enum] XHTML10S |
493 |
-+[enum] XHTML10T |
494 |
-+[enum] XHTML10F |
495 |
-+[enum] XHTML11 |
496 |
-+[enum] XHTMLB |
497 |
-+[list_end] |
498 |
- |
499 |
-+[list_end] |
500 |
- |
501 |
--[see_also ncgi htmlparse] |
502 |
--[keywords html form table checkbox radiobutton checkbutton] |
503 |
-+[vset CATEGORY html] |
504 |
-+[include ../doctools2base/include/feedback.inc] |
505 |
- [manpage_end] |
506 |
-diff --git a/modules/html/html.tcl b/modules/html/html.tcl |
507 |
-index 77e517e..3c0c443 100644 |
508 |
---- a/modules/html/html.tcl |
509 |
-+++ b/modules/html/html.tcl |
510 |
-@@ -15,7 +15,7 @@ |
511 |
- |
512 |
- package require Tcl 8.2 |
513 |
- package require ncgi |
514 |
--package provide html 1.4 |
515 |
-+package provide html 1.4.4 |
516 |
- |
517 |
- namespace eval ::html { |
518 |
- |
519 |
-@@ -510,7 +510,7 @@ proc ::html::refresh {content {url {}}} { |
520 |
- ::if {[string length $url]} { |
521 |
- append html "; url=$url" |
522 |
- } |
523 |
-- append html "\">\n" |
524 |
-+ append html "\">" |
525 |
- lappend page(meta) $html |
526 |
- return "" |
527 |
- } |
528 |
-@@ -912,7 +912,7 @@ proc ::html::selectPlain {name param choices {current {}}} { |
529 |
- # The html fragment |
530 |
- |
531 |
- proc ::html::textarea {name {param {}} {current {}}} { |
532 |
-- ::set value [ncgi::value $name $current] |
533 |
-+ ::set value [quoteFormValue [ncgi::value $name $current]] |
534 |
- return "<[string trimright \ |
535 |
- "textarea name=\"$name\"\ |
536 |
- [tagParam textarea $param]"]>$value</textarea>\n" |
537 |
-@@ -1405,7 +1405,7 @@ proc ::html::html_entities {s} { |
538 |
- # The text with <br> in place of line-endings. |
539 |
- |
540 |
- proc ::html::nl2br {s} { |
541 |
-- return [string map [list \n\r <br> \n <br> \r <br>] $s] |
542 |
-+ return [string map [list \n\r <br> \r\n <br> \n <br> \r <br>] $s] |
543 |
- } |
544 |
- |
545 |
- # ::html::doctype |
546 |
-@@ -1419,9 +1419,10 @@ proc ::html::nl2br {s} { |
547 |
- |
548 |
- proc ::html::doctype {arg} { |
549 |
- variable doctypes |
550 |
-- set code [string toupper $arg] |
551 |
-- if {![info exists doctypes($code)]} { |
552 |
-- return -code error "Unknown doctype \"$arg\"" |
553 |
-+ ::set code [string toupper $arg] |
554 |
-+ ::if {![info exists doctypes($code)]} { |
555 |
-+ return -code error -errorcode {HTML DOCTYPE BAD} \ |
556 |
-+ "Unknown doctype \"$arg\"" |
557 |
- } |
558 |
- return $doctypes($code) |
559 |
- } |
560 |
-@@ -1451,12 +1452,26 @@ namespace eval ::html { |
561 |
- # href The location of the css file to include the filename and path |
562 |
- # |
563 |
- # Results: |
564 |
--# HTML for the section |
565 |
-+# None. |
566 |
- |
567 |
- proc ::html::css {href} { |
568 |
- variable page |
569 |
-- set page(css) \ |
570 |
-- "<link rel=\"stylesheet\" type=\"text/css\" href=\"[quoteFormValue $href]\">\n" |
571 |
-+ lappend page(css) "<link rel=\"stylesheet\" type=\"text/css\" href=\"[quoteFormValue $href]\">" |
572 |
-+ return |
573 |
-+} |
574 |
-+ |
575 |
-+# ::html::css-clear |
576 |
-+# Drop all text/css references. |
577 |
-+# |
578 |
-+# Arguments: |
579 |
-+# None. |
580 |
-+# |
581 |
-+# Results: |
582 |
-+# None. |
583 |
-+ |
584 |
-+proc ::html::css-clear {} { |
585 |
-+ variable page |
586 |
-+ catch { unset page(css) } |
587 |
- return |
588 |
- } |
589 |
- |
590 |
-@@ -1467,11 +1482,25 @@ proc ::html::css {href} { |
591 |
- # href The location of the javascript file to include the filename and path |
592 |
- # |
593 |
- # Results: |
594 |
--# HTML for the section |
595 |
-+# None. |
596 |
- |
597 |
- proc ::html::js {href} { |
598 |
- variable page |
599 |
-- set page(js) \ |
600 |
-- "<script language=\"javascript\" type=\"text/javascript\" src=\"[quoteFormValue $href]\"></script>\n" |
601 |
-+ lappend page(js) "<script language=\"javascript\" type=\"text/javascript\" src=\"[quoteFormValue $href]\"></script>" |
602 |
-+ return |
603 |
-+} |
604 |
-+ |
605 |
-+# ::html::js-clear |
606 |
-+# Drop all text/javascript references. |
607 |
-+# |
608 |
-+# Arguments: |
609 |
-+# None. |
610 |
-+# |
611 |
-+# Results: |
612 |
-+# None. |
613 |
-+ |
614 |
-+proc ::html::js-clear {} { |
615 |
-+ variable page |
616 |
-+ catch { unset page(js) } |
617 |
- return |
618 |
- } |
619 |
-diff --git a/modules/html/html.test b/modules/html/html.test |
620 |
-index 7a03c54..6646fb6 100644 |
621 |
---- a/modules/html/html.test |
622 |
-+++ b/modules/html/html.test |
623 |
-@@ -17,8 +17,8 @@ source [file join \ |
624 |
- [file dirname [file dirname [file join [pwd] [info script]]]] \ |
625 |
- devtools testutilities.tcl] |
626 |
- |
627 |
--testsNeedTcl 8.2 |
628 |
--testsNeedTcltest 1.0 |
629 |
-+testsNeedTcl 8.4 |
630 |
-+testsNeedTcltest 2.0 |
631 |
- |
632 |
- testing { |
633 |
- useLocal html.tcl html |
634 |
-@@ -26,45 +26,46 @@ testing { |
635 |
- |
636 |
- # ------------------------------------------------------------------------- |
637 |
- |
638 |
--test html-1.1 {html::init} { |
639 |
-+test html-1.1 {html::init} -body { |
640 |
- html::init |
641 |
-- list [array exists html::defaults] \ |
642 |
-- [array size html::defaults] \ |
643 |
-- [info exists html::page] |
644 |
--} {1 0 0} |
645 |
-+ list \ |
646 |
-+ [array exists html::defaults] \ |
647 |
-+ [array size html::defaults] \ |
648 |
-+ [info exists html::page] |
649 |
-+} -result {1 0 0} |
650 |
- |
651 |
--test html-1.2 {html::init} { |
652 |
-+test html-1.2 {html::init} -body { |
653 |
- html::init { |
654 |
- font.face arial |
655 |
- body.bgcolor white |
656 |
- body.text black |
657 |
- } |
658 |
- lsort [array names html::defaults] |
659 |
--} {body.bgcolor body.text font.face} |
660 |
-+} -result {body.bgcolor body.text font.face} |
661 |
- |
662 |
--test html-1.3 {html::init} { |
663 |
-- catch {html::init wrong num args} |
664 |
--} 1 |
665 |
-+test html-1.3 {html::init, too many args} -body { |
666 |
-+ html::init wrong num args |
667 |
-+} -returnCodes error -result {wrong # args: should be "html::init ?nvlist?"} |
668 |
- |
669 |
--test html-1.4 {html::init} { |
670 |
-- catch {html::init {wrong num args}} |
671 |
--} 1 |
672 |
-+test html-1.4 {html::init, bad arg, odd-length list} -body { |
673 |
-+ html::init {wrong num args} |
674 |
-+} -returnCodes error -result {list must have an even number of elements} |
675 |
- |
676 |
--test html-2.1 {html::head} { |
677 |
-- catch {html::head} |
678 |
--} 1 |
679 |
-+test html-2.1 {html::head, not enough args} -body { |
680 |
-+ html::head |
681 |
-+} -returnCodes error -result {wrong # args: should be "html::head title"} |
682 |
- |
683 |
--test html-2.2 {html::head} { |
684 |
-+test html-2.2 {html::head} -body { |
685 |
- html::head "The Title" |
686 |
--} "<html><head>\n\t<title>The Title</title>\n</head>\n" |
687 |
-+} -result "<html><head>\n\t<title>The Title</title>\n</head>\n" |
688 |
- |
689 |
--test html-2.3 {html::head} { |
690 |
-+test html-2.3 {html::head} -body { |
691 |
- html::description "The Description" |
692 |
- html::keywords key word |
693 |
- html::author "Cathy Coder" |
694 |
- html::meta metakey metavalue |
695 |
- html::head "The Title" |
696 |
--} {<html><head> |
697 |
-+} -result {<html><head> |
698 |
- <title>The Title</title> |
699 |
- <!-- Cathy Coder --> |
700 |
- <meta name="description" content="The Description"> |
701 |
-@@ -73,24 +74,24 @@ test html-2.3 {html::head} { |
702 |
- </head> |
703 |
- } |
704 |
- |
705 |
--test html-3.1 {html::title} { |
706 |
-- catch html::title |
707 |
--} 1 |
708 |
-+test html-3.1 {html::title, not enough args} -body { |
709 |
-+ html::title |
710 |
-+} -returnCodes error -result {wrong # args: should be "html::title title"} |
711 |
- |
712 |
--test html-3.2 {html::title} { |
713 |
-+test html-3.2 {html::title} -body { |
714 |
- html::title "blah blah" |
715 |
--} "<title>blah blah</title>\n" |
716 |
-+} -result "<title>blah blah</title>\n" |
717 |
- |
718 |
--test html-4.1 {html::getTitle} { |
719 |
-+test html-4.1 {html::getTitle} -body { |
720 |
- html::init |
721 |
- html::getTitle |
722 |
--} "" |
723 |
-+} -result "" |
724 |
- |
725 |
--test html-4.2 {html::getTitle} { |
726 |
-+test html-4.2 {html::getTitle} -body { |
727 |
- html::init |
728 |
- html::title "blah blah" |
729 |
- html::getTitle |
730 |
--} {blah blah} |
731 |
-+} -result {blah blah} |
732 |
- |
733 |
- test html-5.1 {html::meta} { |
734 |
- html::init |
735 |
-@@ -453,6 +454,18 @@ test html-23.2 {html::textarea} { |
736 |
- } {<textarea name="info" cols="50" rows="8">The textarea value.</textarea> |
737 |
- } |
738 |
- |
739 |
-+test html-23.3 {html::textarea, dangerous input} { |
740 |
-+ html::init { |
741 |
-+ textarea.cols 50 |
742 |
-+ textarea.rows 8 |
743 |
-+ } |
744 |
-+ ncgi::reset info=[ncgi::encode "</textarea><script>alert(1)</script>"] |
745 |
-+ ncgi::parse |
746 |
-+ html::textarea info |
747 |
-+} {<textarea name="info" cols="50" rows="8"></textarea><script>alert(1)</script></textarea> |
748 |
-+} |
749 |
-+ |
750 |
-+ |
751 |
- test html-24.1 {html::submit} { |
752 |
- catch {html::submit} |
753 |
- } {1} |
754 |
-@@ -516,7 +529,6 @@ test html-26.4 {html::refresh} { |
755 |
- } {<html><head> |
756 |
- <title>title</title> |
757 |
- <meta http-equiv="Refresh" content="4"> |
758 |
-- |
759 |
- </head> |
760 |
- } |
761 |
- test html-26.5 {html::refresh} { |
762 |
-@@ -526,7 +538,6 @@ test html-26.5 {html::refresh} { |
763 |
- } {<html><head> |
764 |
- <title>title</title> |
765 |
- <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> |
766 |
-- |
767 |
- </head> |
768 |
- } |
769 |
- |
770 |
-@@ -794,6 +805,7 @@ test html-32.1 {single argument} { |
771 |
- set result [html::eval {set x [format 22]}] |
772 |
- list $result $x |
773 |
- } {{} 22} |
774 |
-+ |
775 |
- test html-32.2 {multiple arguments} { |
776 |
- set a {$b} |
777 |
- set b xyzzy |
778 |
-@@ -801,38 +813,146 @@ test html-32.2 {multiple arguments} { |
779 |
- set result [html::eval {set x [eval format $a]}] |
780 |
- list $result $x |
781 |
- } {{} xyzzy} |
782 |
-+ |
783 |
- test html-32.3 {single argument} { |
784 |
- set x [list] |
785 |
- set y 1 |
786 |
- set result [html::eval lappend x a b c d {$y} e f g] |
787 |
- list $result $x |
788 |
- } {{} {a b c d 1 e f g}} |
789 |
--test html-32.4 {error: not enough arguments} {catch html::eval} 1 |
790 |
--test html-32.5 {error: not enough arguments} { |
791 |
-- catch html::eval msg |
792 |
-- set msg |
793 |
--} {wrong # args: should be "uplevel ?level? command ?arg ...?"} |
794 |
--test html-32.6 {error in eval'ed command} { |
795 |
-- catch {html::eval {error "test error"}} |
796 |
--} 1 |
797 |
--test html-32.7 {error in eval'ed command} { |
798 |
-- catch {html::eval {error "test error"}} msg |
799 |
-- set msg |
800 |
--} {test error} |
801 |
- |
802 |
-+test html-32.4 {error: not enough arguments} -body { |
803 |
-+ html::eval |
804 |
-+} -returnCodes error -result {wrong # args: should be "uplevel ?level? command ?arg ...?"} |
805 |
- |
806 |
--test html-33.0 {html::font} { |
807 |
-+test html-32.6 {error in eval'ed command} -body { |
808 |
-+ html::eval {error "test error"} |
809 |
-+} -returnCodes error -result {test error} |
810 |
-+ |
811 |
-+test html-33.0 {html::font} -body { |
812 |
- html::font |
813 |
--} {} |
814 |
-+} -result {} |
815 |
- |
816 |
--test html-33.1 {html::font} { |
817 |
-+test html-33.1 {html::font} -body { |
818 |
- html::font size=18 |
819 |
--} {<font size=18>} |
820 |
-+} -result {<font size=18>} |
821 |
- |
822 |
-- |
823 |
--test html-34.0 {html::nl2br} { |
824 |
-+test html-34.0 {html::nl2br} -body { |
825 |
- html::nl2br "a\n\rb\nc\rd" |
826 |
--} {a<br>b<br>c<br>d} |
827 |
-+} -result {a<br>b<br>c<br>d} |
828 |
- |
829 |
-+test html-34.1 {html::nl2br, ticket 1742078} -body { |
830 |
-+ html::nl2br "a\r\nb" |
831 |
-+} -result {a<br>b} |
832 |
- |
833 |
-+# ------------------------------------------------------------------------- |
834 |
-+ |
835 |
-+test html-tkt3439702-35.0 {html::css, not enough arguments} -body { |
836 |
-+ html::css |
837 |
-+} -returnCodes error -result {wrong # args: should be "html::css href"} |
838 |
-+ |
839 |
-+test html-tkt3439702-35.1 {html::css, too many arguments} -body { |
840 |
-+ html::css REF X |
841 |
-+} -returnCodes error -result {wrong # args: should be "html::css href"} |
842 |
-+ |
843 |
-+test html-tkt3439702-35.2 {html::css, single ref} -setup { |
844 |
-+ html::css-clear |
845 |
-+} -body { |
846 |
-+ html::css "http://test.css" |
847 |
-+ string trim [html::head T] |
848 |
-+} -cleanup { |
849 |
-+ html::css-clear |
850 |
-+} -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>" |
851 |
-+ |
852 |
-+test html-tkt3439702-35.3 {html::css, multiple ref} -setup { |
853 |
-+ html::css-clear |
854 |
-+} -body { |
855 |
-+ html::css "http://test1.css" |
856 |
-+ html::css "http://test2.css" |
857 |
-+ string trim [html::head T] |
858 |
-+} -cleanup { |
859 |
-+ html::css-clear |
860 |
-+} -result {<html><head> |
861 |
-+ <title>T</title> |
862 |
-+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> |
863 |
-+ <link rel="stylesheet" type="text/css" href="http://test1.css"> |
864 |
-+ <link rel="stylesheet" type="text/css" href="http://test2.css"> |
865 |
-+</head>} |
866 |
-+ |
867 |
-+# ------------------------------------------------------------------------- |
868 |
-+ |
869 |
-+test html-tkt3439702-36.0 {html::js, not enough arguments} -body { |
870 |
-+ html::js |
871 |
-+} -returnCodes error -result {wrong # args: should be "html::js href"} |
872 |
-+ |
873 |
-+test html-tkt3439702-36.1 {html::js, too many arguments} -body { |
874 |
-+ html::js REF X |
875 |
-+} -returnCodes error -result {wrong # args: should be "html::js href"} |
876 |
-+ |
877 |
-+test html-tkt3439702-36.2 {html::js, single ref} -setup { |
878 |
-+ html::js-clear |
879 |
-+} -body { |
880 |
-+ html::js "http://test.js" |
881 |
-+ string trim [html::head T] |
882 |
-+} -cleanup { |
883 |
-+ html::js-clear |
884 |
-+} -result {<html><head> |
885 |
-+ <title>T</title> |
886 |
-+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> |
887 |
-+ <script language="javascript" type="text/javascript" src="http://test.js"></script> |
888 |
-+</head>} |
889 |
-+ |
890 |
-+test html-tkt3439702-36.3 {html::js, multiple ref} -setup { |
891 |
-+ html::js-clear |
892 |
-+} -body { |
893 |
-+ html::js "http://test1.js" |
894 |
-+ html::js "http://test2.js" |
895 |
-+ string trim [html::head T] |
896 |
-+} -cleanup { |
897 |
-+ html::js-clear |
898 |
-+} -result {<html><head> |
899 |
-+ <title>T</title> |
900 |
-+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> |
901 |
-+ <script language="javascript" type="text/javascript" src="http://test1.js"></script> |
902 |
-+ <script language="javascript" type="text/javascript" src="http://test2.js"></script> |
903 |
-+</head>} |
904 |
-+ |
905 |
-+test html-tkt3439702-37.0 {html::js, html::css, mixed} -setup { |
906 |
-+ html::css-clear |
907 |
-+ html::js-clear |
908 |
-+} -body { |
909 |
-+ html::css "http://test.css" |
910 |
-+ html::js "http://test.js" |
911 |
-+ string trim [html::head T] |
912 |
-+} -cleanup { |
913 |
-+ html::js-clear |
914 |
-+ html::css-clear |
915 |
-+} -result {<html><head> |
916 |
-+ <title>T</title> |
917 |
-+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> |
918 |
-+ <link rel="stylesheet" type="text/css" href="http://test.css"> |
919 |
-+ <script language="javascript" type="text/javascript" src="http://test.js"></script> |
920 |
-+</head>} |
921 |
-+ |
922 |
-+# ------------------------------------------------------------------------- |
923 |
-+# TODO: html::css-clear, html::js-clear |
924 |
-+ |
925 |
-+ |
926 |
-+test html-tktafe4366e2e-38.0 {html::doctype, not enough args} -body { |
927 |
-+ html::doctype |
928 |
-+} -returnCodes error -result {wrong # args: should be "html::doctype arg"} |
929 |
-+ |
930 |
-+test html-tktafe4366e2e-38.1 {html::doctype, too many args} -body { |
931 |
-+ html::doctype HTML401T X |
932 |
-+} -returnCodes error -result {wrong # args: should be "html::doctype arg"} |
933 |
-+ |
934 |
-+test html-tktafe4366e2e-38.2 {html::doctype, unknown type} -body { |
935 |
-+ html::doctype HTML401TXXX |
936 |
-+} -returnCodes error -result {Unknown doctype "HTML401TXXX"} |
937 |
-+ |
938 |
-+test html-tktafe4366e2e-38.3 {html::doctype} -body { |
939 |
-+ html::doctype HTML401T |
940 |
-+} -result {<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">} |
941 |
-+ |
942 |
-+# ------------------------------------------------------------------------- |
943 |
- testsuiteCleanup |
944 |
-diff --git a/modules/html/pkgIndex.tcl b/modules/html/pkgIndex.tcl |
945 |
-index 88a71b2..9d91097 100644 |
946 |
---- a/modules/html/pkgIndex.tcl |
947 |
-+++ b/modules/html/pkgIndex.tcl |
948 |
-@@ -1,2 +1,2 @@ |
949 |
- if {![package vsatisfies [package provide Tcl] 8.2]} {return} |
950 |
--package ifneeded html 1.4 [list source [file join $dir html.tcl]] |
951 |
-+package ifneeded html 1.4.4 [list source [file join $dir html.tcl]] |
952 |
|
953 |
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 |
954 |
deleted file mode 100644 |
955 |
index 2256c5a50a0..00000000000 |
956 |
--- a/dev-tcltk/tcllib/files/tcllib-1.15-tcl8.6-test.patch |
957 |
+++ /dev/null |
958 |
@@ -1,411 +0,0 @@ |
959 |
- modules/clock/iso8601.test | 5 ++--- |
960 |
- modules/doctools/mpformats/_nroff.tcl | 18 ++++++++++-------- |
961 |
- modules/doctools/mpformats/fmt.nroff | 4 ++-- |
962 |
- modules/doctools/tests/nroff/00 | 8 ++++---- |
963 |
- modules/doctools/tests/nroff/01 | 4 ++-- |
964 |
- modules/doctools/tests/nroff/02 | 10 +++++----- |
965 |
- modules/doctools/tests/nroff/03 | 16 ++++++++-------- |
966 |
- modules/doctools/tests/nroff/04 | 8 ++++---- |
967 |
- modules/doctools/tests/nroff/05 | 8 ++++---- |
968 |
- modules/doctools/tests/nroff/06 | 8 ++++---- |
969 |
- modules/doctools/tests/nroff/07 | 8 ++++---- |
970 |
- modules/doctools/tests/nroff/08 | 18 +++++++++--------- |
971 |
- support/devel/sak/validate/syntax.tcl | 4 +++- |
972 |
- support/devel/sak/validate/testsuites.tcl | 4 +++- |
973 |
- 14 files changed, 64 insertions(+), 59 deletions(-) |
974 |
- |
975 |
-diff --git a/modules/clock/iso8601.test b/modules/clock/iso8601.test |
976 |
-index 85d6416..6fce938 100644 |
977 |
---- a/modules/clock/iso8601.test |
978 |
-+++ b/modules/clock/iso8601.test |
979 |
-@@ -40,9 +40,8 @@ test clock-iso8601-2.0 {parse_date, bad input} -body { |
980 |
- } -returnCodes error -result {not an iso8601 date string} |
981 |
- |
982 |
- test clock-iso8601-2.1 {parse_date} -body { |
983 |
-- clock::iso8601 parse_date 1994-11-05 |
984 |
-- # It is unclear if this is influenced by TZ. |
985 |
--} -result 784022400 |
986 |
-+ clock format [clock::iso8601 parse_date 1994-11-05] -format %D |
987 |
-+} -result 11/05/1994 |
988 |
- |
989 |
- # ------------------------------------------------------------------------- |
990 |
- |
991 |
-diff --git a/modules/doctools/mpformats/_nroff.tcl b/modules/doctools/mpformats/_nroff.tcl |
992 |
-index be73a02..7669d07 100644 |
993 |
---- a/modules/doctools/mpformats/_nroff.tcl |
994 |
-+++ b/modules/doctools/mpformats/_nroff.tcl |
995 |
-@@ -15,7 +15,7 @@ |
996 |
- |
997 |
- |
998 |
- proc nr_lp {} {return \n\1.LP} |
999 |
--proc nr_ta {{text {}}} {return ".ta$text"} |
1000 |
-+proc nr_ta {{text {}}} {return "\1.ta$text"} |
1001 |
- proc nr_bld {} {return \1\\fB} |
1002 |
- proc nr_bldt {t} {return "\n\1.B $t\n"} |
1003 |
- proc nr_ul {} {return \1\\fI} |
1004 |
-@@ -75,6 +75,7 @@ set finalMap [list \ |
1005 |
- "\1\\" "\\" \ |
1006 |
- "\1'" "'" \ |
1007 |
- "\1." "." \ |
1008 |
-+ "." "\\&." \ |
1009 |
- "\\" "\\\\"] |
1010 |
- global textMap |
1011 |
- set textMap [list "\\" "\\\\"] |
1012 |
-@@ -103,8 +104,8 @@ proc nroff_postprocess {nroff} { |
1013 |
- # - Exceptions to the above: Keep empty lines and leading |
1014 |
- # whitespace when in verbatim sections (no-fill-mode) |
1015 |
- |
1016 |
-- set nfMode [list .nf .CS] ; # commands which start no-fill mode |
1017 |
-- set fiMode [list .fi .CE] ; # commands which terminate no-fill mode |
1018 |
-+ set nfMode [list \1.nf \1.CS] ; # commands which start no-fill mode |
1019 |
-+ set fiMode [list \1.fi \1.CE] ; # commands which terminate no-fill mode |
1020 |
- set lines [list] ; # Result buffer |
1021 |
- set verbatim 0 ; # Automaton mode/state |
1022 |
- |
1023 |
-@@ -139,7 +140,7 @@ proc nroff_postprocess {nroff} { |
1024 |
- set lines [lreplace $lines end end] |
1025 |
- set line "$last $line" |
1026 |
- } |
1027 |
-- } elseif {[string match {['.]*} $line]} { |
1028 |
-+ } elseif {[string match {[']*} $line]} { |
1029 |
- # Apostrophes or periods at the beginning of a line have to |
1030 |
- # quoted to prevent misinterpretation as comments or directives. |
1031 |
- # The true comments and directive are quoted with \1 |
1032 |
-@@ -166,10 +167,11 @@ proc nroff_postprocess {nroff} { |
1033 |
- # Remove superfluous .IP commands (empty paragraph). The first |
1034 |
- # identity mapping is there to avoid smashing a man macro |
1035 |
- # definition. |
1036 |
-- set lines [string map [list \ |
1037 |
-- \n\1.IP\n\1..\n \n\1.IP\n\1..\n \ |
1038 |
-- \n\1.IP\n\1. \n\1.] \ |
1039 |
-- $lines] |
1040 |
-+ |
1041 |
-+ lappend map \n\1.IP\n\1.\1.\n \n\1.IP\n\1.\1.\n |
1042 |
-+ lappend map \n\1.IP\n\1. \n\1. |
1043 |
-+ |
1044 |
-+ set lines [string map $map $lines] |
1045 |
- |
1046 |
- # Return the modified result buffer |
1047 |
- return [string map $finalMap $lines] |
1048 |
-diff --git a/modules/doctools/mpformats/fmt.nroff b/modules/doctools/mpformats/fmt.nroff |
1049 |
-index e844dbf..5230688 100644 |
1050 |
---- a/modules/doctools/mpformats/fmt.nroff |
1051 |
-+++ b/modules/doctools/mpformats/fmt.nroff |
1052 |
-@@ -269,11 +269,11 @@ proc fmt_image {text {label {}}} { |
1053 |
- |
1054 |
- set img [dt_imgdata $text {pic}] |
1055 |
- if {$img ne {}} { |
1056 |
-- return \n.PS\n$img\n.PE\n |
1057 |
-+ return \n\1.PS\n$img\n\1.PE\n |
1058 |
- } |
1059 |
- set img [dt_imgdata $text {txt}] |
1060 |
- if {$img ne {}} { |
1061 |
-- return \n.PS\n.nf\n$img\n.fi\n.PE\n |
1062 |
-+ return \n\1.PS\n\1.nf\n$img\n\1.fi\n\1.PE\n |
1063 |
- } |
1064 |
- if {$label eq {}} { |
1065 |
- return "IMAGE: $text" |
1066 |
-diff --git a/modules/doctools/tests/nroff/00 b/modules/doctools/tests/nroff/00 |
1067 |
-index 8ac0ebf..8f68ee1 100644 |
1068 |
---- a/modules/doctools/tests/nroff/00 |
1069 |
-+++ b/modules/doctools/tests/nroff/00 |
1070 |
-@@ -1,15 +1,15 @@ |
1071 |
- '\" |
1072 |
--'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' |
1073 |
--'\" Copyright (c) .COPYRIGHT. |
1074 |
-+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' |
1075 |
-+'\" Copyright (c) \&.COPYRIGHT\&. |
1076 |
- '\" |
1077 |
- .so man.macros |
1078 |
--.TH "TEST" z 3.14.15.926 .MODULE. "" |
1079 |
-+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "" |
1080 |
- .BS |
1081 |
- .SH NAME |
1082 |
- TEST \- |
1083 |
- .SH DESCRIPTION |
1084 |
- .SH COPYRIGHT |
1085 |
- .nf |
1086 |
--Copyright (c) .COPYRIGHT. |
1087 |
-+Copyright (c) \&.COPYRIGHT\&. |
1088 |
- |
1089 |
- .fi |
1090 |
-\ No newline at end of file |
1091 |
-diff --git a/modules/doctools/tests/nroff/01 b/modules/doctools/tests/nroff/01 |
1092 |
-index 3a4563f..588894a 100644 |
1093 |
---- a/modules/doctools/tests/nroff/01 |
1094 |
-+++ b/modules/doctools/tests/nroff/01 |
1095 |
-@@ -1,9 +1,9 @@ |
1096 |
- '\" |
1097 |
--'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' |
1098 |
-+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' |
1099 |
- '\" Copyright (c) **Copyright** |
1100 |
- '\" |
1101 |
- .so man.macros |
1102 |
--.TH "TEST" z 3.14.15.926 .MODULE. "" |
1103 |
-+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "" |
1104 |
- .BS |
1105 |
- .SH NAME |
1106 |
- TEST \- |
1107 |
-diff --git a/modules/doctools/tests/nroff/02 b/modules/doctools/tests/nroff/02 |
1108 |
-index 89d6cb7..49fbf18 100644 |
1109 |
---- a/modules/doctools/tests/nroff/02 |
1110 |
-+++ b/modules/doctools/tests/nroff/02 |
1111 |
-@@ -1,12 +1,12 @@ |
1112 |
- '\" |
1113 |
--'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' |
1114 |
--'\" Copyright (c) .COPYRIGHT. |
1115 |
-+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' |
1116 |
-+'\" Copyright (c) \&.COPYRIGHT\&. |
1117 |
- '\" |
1118 |
- .so man.macros |
1119 |
--.TH "TEST" z 3.14.15.926 .MODULE. "..THE_MODULE.." |
1120 |
-+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "\&.\&.THE_MODULE\&.\&." |
1121 |
- .BS |
1122 |
- .SH NAME |
1123 |
--TEST \- ..THE_TITLE.. |
1124 |
-+TEST \- \&.\&.THE_TITLE\&.\&. |
1125 |
- .SH SYNOPSIS |
1126 |
- package require \fBAAA \fR |
1127 |
- .sp |
1128 |
-@@ -20,6 +20,6 @@ ELSE, OTHER |
1129 |
- KEYA, KEYZ |
1130 |
- .SH COPYRIGHT |
1131 |
- .nf |
1132 |
--Copyright (c) .COPYRIGHT. |
1133 |
-+Copyright (c) \&.COPYRIGHT\&. |
1134 |
- |
1135 |
- .fi |
1136 |
-\ No newline at end of file |
1137 |
-diff --git a/modules/doctools/tests/nroff/03 b/modules/doctools/tests/nroff/03 |
1138 |
-index eb0bdd3..6393ecb 100644 |
1139 |
---- a/modules/doctools/tests/nroff/03 |
1140 |
-+++ b/modules/doctools/tests/nroff/03 |
1141 |
-@@ -1,9 +1,9 @@ |
1142 |
- '\" |
1143 |
--'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' |
1144 |
--'\" Copyright (c) .COPYRIGHT. |
1145 |
-+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' |
1146 |
-+'\" Copyright (c) \&.COPYRIGHT\&. |
1147 |
- '\" |
1148 |
- .so man.macros |
1149 |
--.TH "TEST" z 3.14.15.926 .MODULE. "" |
1150 |
-+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "" |
1151 |
- .BS |
1152 |
- .SH NAME |
1153 |
- TEST \- |
1154 |
-@@ -12,18 +12,18 @@ TEST \- |
1155 |
- 1 |
1156 |
- .SH BBB |
1157 |
- 22 |
1158 |
--.SS BBB.CCC |
1159 |
-+.SS BBB\&.CCC |
1160 |
- 333 |
1161 |
--.SS BBB.DDD |
1162 |
-+.SS BBB\&.DDD |
1163 |
- 4444 |
1164 |
- .SH EEE |
1165 |
- 5555 |
1166 |
- .PP |
1167 |
--At \fBAaA\fR. |
1168 |
-+At \fBAaA\fR\&. |
1169 |
- .PP |
1170 |
--At \fB__undefined__\fR. |
1171 |
-+At \fB__undefined__\fR\&. |
1172 |
- .SH COPYRIGHT |
1173 |
- .nf |
1174 |
--Copyright (c) .COPYRIGHT. |
1175 |
-+Copyright (c) \&.COPYRIGHT\&. |
1176 |
- |
1177 |
- .fi |
1178 |
-\ No newline at end of file |
1179 |
-diff --git a/modules/doctools/tests/nroff/04 b/modules/doctools/tests/nroff/04 |
1180 |
-index ee22d7a..27aa037 100644 |
1181 |
---- a/modules/doctools/tests/nroff/04 |
1182 |
-+++ b/modules/doctools/tests/nroff/04 |
1183 |
-@@ -1,9 +1,9 @@ |
1184 |
- '\" |
1185 |
--'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' |
1186 |
--'\" Copyright (c) .COPYRIGHT. |
1187 |
-+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' |
1188 |
-+'\" Copyright (c) \&.COPYRIGHT\&. |
1189 |
- '\" |
1190 |
- .so man.macros |
1191 |
--.TH "TEST" z 3.14.15.926 .MODULE. "" |
1192 |
-+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "" |
1193 |
- .BS |
1194 |
- .SH NAME |
1195 |
- TEST \- |
1196 |
-@@ -27,6 +27,6 @@ Next Line |
1197 |
- FERTIG |
1198 |
- .SH COPYRIGHT |
1199 |
- .nf |
1200 |
--Copyright (c) .COPYRIGHT. |
1201 |
-+Copyright (c) \&.COPYRIGHT\&. |
1202 |
- |
1203 |
- .fi |
1204 |
-\ No newline at end of file |
1205 |
-diff --git a/modules/doctools/tests/nroff/05 b/modules/doctools/tests/nroff/05 |
1206 |
-index c25c179..3df0180 100644 |
1207 |
---- a/modules/doctools/tests/nroff/05 |
1208 |
-+++ b/modules/doctools/tests/nroff/05 |
1209 |
-@@ -1,9 +1,9 @@ |
1210 |
- '\" |
1211 |
--'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' |
1212 |
--'\" Copyright (c) .COPYRIGHT. |
1213 |
-+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' |
1214 |
-+'\" Copyright (c) \&.COPYRIGHT\&. |
1215 |
- '\" |
1216 |
- .so man.macros |
1217 |
--.TH "BASIC" a 5 .MODULE. "" |
1218 |
-+.TH "BASIC" a 5 \&.MODULE\&. "" |
1219 |
- .BS |
1220 |
- .SH NAME |
1221 |
- BASIC \- |
1222 |
-@@ -91,6 +91,6 @@ caramel |
1223 |
- KO |
1224 |
- .SH COPYRIGHT |
1225 |
- .nf |
1226 |
--Copyright (c) .COPYRIGHT. |
1227 |
-+Copyright (c) \&.COPYRIGHT\&. |
1228 |
- |
1229 |
- .fi |
1230 |
-\ No newline at end of file |
1231 |
-diff --git a/modules/doctools/tests/nroff/06 b/modules/doctools/tests/nroff/06 |
1232 |
-index e7fee7c..10fed25 100644 |
1233 |
---- a/modules/doctools/tests/nroff/06 |
1234 |
-+++ b/modules/doctools/tests/nroff/06 |
1235 |
-@@ -1,9 +1,9 @@ |
1236 |
- '\" |
1237 |
--'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' |
1238 |
--'\" Copyright (c) .COPYRIGHT. |
1239 |
-+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' |
1240 |
-+'\" Copyright (c) \&.COPYRIGHT\&. |
1241 |
- '\" |
1242 |
- .so man.macros |
1243 |
--.TH "TEST" z 3.14.15.926 .MODULE. "" |
1244 |
-+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "" |
1245 |
- .BS |
1246 |
- .SH NAME |
1247 |
- TEST \- |
1248 |
-@@ -50,6 +50,6 @@ c |
1249 |
- .PP |
1250 |
- .SH COPYRIGHT |
1251 |
- .nf |
1252 |
--Copyright (c) .COPYRIGHT. |
1253 |
-+Copyright (c) \&.COPYRIGHT\&. |
1254 |
- |
1255 |
- .fi |
1256 |
-\ No newline at end of file |
1257 |
-diff --git a/modules/doctools/tests/nroff/07 b/modules/doctools/tests/nroff/07 |
1258 |
-index 696a715..08ff9ee 100644 |
1259 |
---- a/modules/doctools/tests/nroff/07 |
1260 |
-+++ b/modules/doctools/tests/nroff/07 |
1261 |
-@@ -1,9 +1,9 @@ |
1262 |
- '\" |
1263 |
--'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' |
1264 |
--'\" Copyright (c) .COPYRIGHT. |
1265 |
-+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' |
1266 |
-+'\" Copyright (c) \&.COPYRIGHT\&. |
1267 |
- '\" |
1268 |
- .so man.macros |
1269 |
--.TH "TEST" z 3.14.15.926 .MODULE. "" |
1270 |
-+.TH "TEST" z 3\&.14\&.15\&.926 \&.MODULE\&. "" |
1271 |
- .BS |
1272 |
- .SH NAME |
1273 |
- TEST \- |
1274 |
-@@ -40,6 +40,6 @@ a |
1275 |
- .PP |
1276 |
- .SH COPYRIGHT |
1277 |
- .nf |
1278 |
--Copyright (c) .COPYRIGHT. |
1279 |
-+Copyright (c) \&.COPYRIGHT\&. |
1280 |
- |
1281 |
- .fi |
1282 |
-\ No newline at end of file |
1283 |
-diff --git a/modules/doctools/tests/nroff/08 b/modules/doctools/tests/nroff/08 |
1284 |
-index b1bc4ea..50cecb6 100644 |
1285 |
---- a/modules/doctools/tests/nroff/08 |
1286 |
-+++ b/modules/doctools/tests/nroff/08 |
1287 |
-@@ -1,12 +1,12 @@ |
1288 |
- '\" |
1289 |
--'\" Generated from file '.FILE.' by tcllib/doctools with format 'nroff' |
1290 |
-+'\" Generated from file '\&.FILE\&.' by tcllib/doctools with format 'nroff' |
1291 |
- '\" Copyright (c) **Copyright** |
1292 |
- '\" |
1293 |
- .so man.macros |
1294 |
--.TH "ALL" a 5 .MODULE. "..THE_MODULE.." |
1295 |
-+.TH "ALL" a 5 \&.MODULE\&. "\&.\&.THE_MODULE\&.\&." |
1296 |
- .BS |
1297 |
- .SH NAME |
1298 |
--ALL \- ..THE_TITLE.. |
1299 |
-+ALL \- \&.\&.THE_TITLE\&.\&. |
1300 |
- .SH SYNOPSIS |
1301 |
- package require \fBAAA \fR |
1302 |
- .sp |
1303 |
-@@ -14,11 +14,11 @@ package require \fBBBB VVV\fR |
1304 |
- .sp |
1305 |
- package require \fBCCC ?VVV?\fR |
1306 |
- .sp |
1307 |
--CMDNAME ... |
1308 |
-+CMDNAME \&.\&.\&. |
1309 |
- .sp |
1310 |
--CMDNAME ... |
1311 |
-+CMDNAME \&.\&.\&. |
1312 |
- .sp |
1313 |
--CMDNAME ... |
1314 |
-+CMDNAME \&.\&.\&. |
1315 |
- .sp |
1316 |
- .BE |
1317 |
- .SH DESCRIPTION |
1318 |
-@@ -75,7 +75,7 @@ DESCRIPTION ::\fBMethod\fR:: |
1319 |
- TERM |
1320 |
- DESCRIPTION |
1321 |
- .TP |
1322 |
--CMDNAME ... |
1323 |
-+CMDNAME \&.\&.\&. |
1324 |
- DESCRIPTION ::\fBNamespace\fR:: |
1325 |
- .RS |
1326 |
- .TP |
1327 |
-@@ -96,10 +96,10 @@ DESCRIPTION ::?Optional?:: |
1328 |
- .CE |
1329 |
- .RE |
1330 |
- .TP |
1331 |
--CMDNAME ... |
1332 |
-+CMDNAME \&.\&.\&. |
1333 |
- DESCRIPTION ::\fBPackage\fR:: |
1334 |
- .TP |
1335 |
--CMDNAME ... |
1336 |
-+CMDNAME \&.\&.\&. |
1337 |
- DESCRIPTION ::\fBSystemCommand\fR:: |
1338 |
- .RS |
1339 |
- .TP |
1340 |
-diff --git a/support/devel/sak/validate/syntax.tcl b/support/devel/sak/validate/syntax.tcl |
1341 |
-index 20b7d33..24e06d2 100644 |
1342 |
---- a/support/devel/sak/validate/syntax.tcl |
1343 |
-+++ b/support/devel/sak/validate/syntax.tcl |
1344 |
-@@ -194,7 +194,9 @@ proc ::sak::validate::syntax::Setup {} { |
1345 |
- interp eval $ip [list ::rename $c {}] |
1346 |
- } |
1347 |
- |
1348 |
-- interp eval $ip [list ::namespace delete ::tcl] |
1349 |
-+ if {![package vsatisfies [package present Tcl] 8.6]} { |
1350 |
-+ interp eval $ip [list ::namespace delete ::tcl] |
1351 |
-+ } |
1352 |
- interp eval $ip [list ::rename namespace {}] |
1353 |
- interp eval $ip [list ::rename rename {}] |
1354 |
- |
1355 |
-diff --git a/support/devel/sak/validate/testsuites.tcl b/support/devel/sak/validate/testsuites.tcl |
1356 |
-index 7072662..71ea694 100644 |
1357 |
---- a/support/devel/sak/validate/testsuites.tcl |
1358 |
-+++ b/support/devel/sak/validate/testsuites.tcl |
1359 |
-@@ -139,7 +139,9 @@ proc ::sak::validate::testsuites::Setup {} { |
1360 |
- interp eval $ip [list ::rename $c {}] |
1361 |
- } |
1362 |
- |
1363 |
-- interp eval $ip [list ::namespace delete ::tcl] |
1364 |
-+ if {![package vsatisfies [package present Tcl] 8.6]} { |
1365 |
-+ interp eval $ip [list ::namespace delete ::tcl] |
1366 |
-+ } |
1367 |
- interp eval $ip [list ::rename namespace {}] |
1368 |
- interp eval $ip [list ::rename rename {}] |
1369 |
- |
1370 |
|
1371 |
diff --git a/dev-tcltk/tcllib/files/tcllib-1.15-test.patch b/dev-tcltk/tcllib/files/tcllib-1.15-test.patch |
1372 |
deleted file mode 100644 |
1373 |
index 8692cf2cd2d..00000000000 |
1374 |
--- a/dev-tcltk/tcllib/files/tcllib-1.15-test.patch |
1375 |
+++ /dev/null |
1376 |
@@ -1,81 +0,0 @@ |
1377 |
- modules/clock/iso8601.test | 2 +- |
1378 |
- modules/multiplexer/multiplexer.test | 2 +- |
1379 |
- modules/snit/snit.test | 4 ++-- |
1380 |
- modules/struct/sets.testsuite | 2 +- |
1381 |
- modules/uev/uevent.test | 2 +- |
1382 |
- 5 files changed, 6 insertions(+), 6 deletions(-) |
1383 |
- |
1384 |
-diff --git a/modules/clock/iso8601.test b/modules/clock/iso8601.test |
1385 |
-index 85d6416..f1b478e 100644 |
1386 |
---- a/modules/clock/iso8601.test |
1387 |
-+++ b/modules/clock/iso8601.test |
1388 |
-@@ -26,7 +26,7 @@ test clock-iso8601-1.0.1 {parse_date wrong\#args} -constraints {tcl8.6plus} -bod |
1389 |
- |
1390 |
- test clock-iso8601-1.1 {parse_date, bad option} -body { |
1391 |
- clock::iso8601 parse_date 1994-11-05 -foo x |
1392 |
--} -returnCodes error -result {bad switch "-foo", must be -base, -format, -gmt, -locale or -timezone} |
1393 |
-+} -returnCodes error -result {bad option "-foo", must be -base, -format, -gmt, -locale or -timezone} |
1394 |
- |
1395 |
- # NOTE: While listed as legal, -format is NOT. This is because the |
1396 |
- # command simply hands off to clock scan, and we are seeing its error |
1397 |
-diff --git a/modules/multiplexer/multiplexer.test b/modules/multiplexer/multiplexer.test |
1398 |
-index d778253..e5dfeff 100644 |
1399 |
---- a/modules/multiplexer/multiplexer.test |
1400 |
-+++ b/modules/multiplexer/multiplexer.test |
1401 |
-@@ -189,7 +189,7 @@ proc DenyAccessFilter {chan clientaddress clientport} { |
1402 |
- return -1 |
1403 |
- } |
1404 |
- |
1405 |
--test multiplexer-5.2 {add access filter which denies access} { |
1406 |
-+test multiplexer-5.2 {add access filter which denies access} {broken without network} { |
1407 |
- set ::forever {} |
1408 |
- set mp [multiplexer::create] |
1409 |
- ${mp}::Init 37465 |
1410 |
-diff --git a/modules/snit/snit.test b/modules/snit/snit.test |
1411 |
-index 66d7bd1..00c0769 100644 |
1412 |
---- a/modules/snit/snit.test |
1413 |
-+++ b/modules/snit/snit.test |
1414 |
-@@ -783,7 +783,7 @@ test dtypemethod-1.6a {delegating unknown typemethod to existing typecomponent w |
1415 |
- snit2 |
1416 |
- } -returnCodes { |
1417 |
- error |
1418 |
--} -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} |
1419 |
-+} -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} |
1420 |
- |
1421 |
- test dtypemethod-1.7 {can't delegate local typemethod: order 1} -body { |
1422 |
- type dog { |
1423 |
-@@ -3339,7 +3339,7 @@ test dmethod-1.6a {delegating unknown method to existing component with error} - |
1424 |
- error |
1425 |
- } -cleanup { |
1426 |
- dog destroy |
1427 |
--} -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} |
1428 |
-+} -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} |
1429 |
- |
1430 |
- test dmethod-1.7 {can't delegate local method: order 1} -body { |
1431 |
- type cat { |
1432 |
-diff --git a/modules/struct/sets.testsuite b/modules/struct/sets.testsuite |
1433 |
-index 29fd3ef..28a9dd6 100644 |
1434 |
---- a/modules/struct/sets.testsuite |
1435 |
-+++ b/modules/struct/sets.testsuite |
1436 |
-@@ -13,7 +13,7 @@ |
1437 |
- test set-${impl}-1.0 {nothing} { |
1438 |
- catch {setop} msg |
1439 |
- set msg |
1440 |
--} [Nothing] |
1441 |
-+} {wrong # args: should be "::struct::set cmd ?arg ...?"} |
1442 |
- |
1443 |
- test set-${impl}-1.1 {bogus} { |
1444 |
- catch {setop foo} msg |
1445 |
-diff --git a/modules/uev/uevent.test b/modules/uev/uevent.test |
1446 |
-index 91754a7..6544112 100644 |
1447 |
---- a/modules/uev/uevent.test |
1448 |
-+++ b/modules/uev/uevent.test |
1449 |
-@@ -453,7 +453,7 @@ test uevent-10.3 {watch events, watch after bind, glob} { |
1450 |
- ::uevent::unbind $t4 |
1451 |
- ::uevent::watch::event::remove $tw |
1452 |
- set res |
1453 |
--} {bound TAG EX bound TAGX EX bound TAG E bound TAGX E unbound TAGX E unbound TAG E unbound TAGX EX unbound TAG EX} |
1454 |
-+} {bound TAGX E bound TAGX EX bound TAG E bound TAG EX unbound TAGX E unbound TAG E unbound TAGX EX unbound TAG EX} |
1455 |
- |
1456 |
- # ------------------------------------------------------------------------- |
1457 |
- rename EVENT {} |
1458 |
|
1459 |
diff --git a/dev-tcltk/tcllib/files/tcllib-1.16-XSS-vuln.patch b/dev-tcltk/tcllib/files/tcllib-1.16-XSS-vuln.patch |
1460 |
deleted file mode 100644 |
1461 |
index 4a08e31e330..00000000000 |
1462 |
--- a/dev-tcltk/tcllib/files/tcllib-1.16-XSS-vuln.patch |
1463 |
+++ /dev/null |
1464 |
@@ -1,572 +0,0 @@ |
1465 |
- modules/html/html.man | 76 +++++++++++++++- |
1466 |
- modules/html/html.tcl | 55 +++++++++--- |
1467 |
- modules/html/html.test | 224 +++++++++++++++++++++++++++++++++++----------- |
1468 |
- modules/html/pkgIndex.tcl | 2 +- |
1469 |
- 4 files changed, 287 insertions(+), 70 deletions(-) |
1470 |
- |
1471 |
-diff --git a/modules/html/html.man b/modules/html/html.man |
1472 |
-index 705a8a2..f18cf4b 100644 |
1473 |
---- a/modules/html/html.man |
1474 |
-+++ b/modules/html/html.man |
1475 |
-@@ -1,5 +1,6 @@ |
1476 |
- [comment {-*- tcl -*- doctools manpage}] |
1477 |
--[manpage_begin html n 1.4] |
1478 |
-+[vset HTML_VERSION 1.4.4] |
1479 |
-+[manpage_begin html n [vset HTML_VERSION]] |
1480 |
- [see_also htmlparse] |
1481 |
- [see_also ncgi] |
1482 |
- [keywords checkbox] |
1483 |
-@@ -12,7 +13,7 @@ |
1484 |
- [titledesc {Procedures to generate HTML structures}] |
1485 |
- [category {CGI programming}] |
1486 |
- [require Tcl 8.2] |
1487 |
--[require html [opt 1.4]] |
1488 |
-+[require html [opt [vset HTML_VERSION]]] |
1489 |
- [description] |
1490 |
- [para] |
1491 |
- |
1492 |
-@@ -62,7 +63,7 @@ the elements. |
1493 |
- |
1494 |
- [call [cmd ::html::checkValue] [arg name] [opt [arg value]]] |
1495 |
- |
1496 |
--Generate the "name=[arg name] value=[arg value] for a [term checkbox] form |
1497 |
-+Generate the "name=[arg name] value=[arg value]" for a [term checkbox] form |
1498 |
- element. If the CGI variable [arg name] has the value [arg value], |
1499 |
- then SELECTED is added to the return value. [arg value] defaults to |
1500 |
- "1". |
1501 |
-@@ -245,6 +246,51 @@ value list that is used for the name= and value= parameters for the |
1502 |
- [term meta] tag. The [term meta] tag is included in the result of |
1503 |
- [cmd ::html::head]. |
1504 |
- |
1505 |
-+[call [cmd ::html::css] [arg href]] |
1506 |
-+ |
1507 |
-+[emph {Side effect only}]. Call this before [cmd ::html::head] to |
1508 |
-+define a [term link] tag for a linked CSS document. The [arg href] |
1509 |
-+value is a HTTP URL to a CSS document. The [term link] tag is included |
1510 |
-+in the result of [cmd ::html::head]. |
1511 |
-+ |
1512 |
-+[para] |
1513 |
-+ |
1514 |
-+Multiple calls of this command are allowed, enabling the use of |
1515 |
-+multiple CSS document references. In other words, the arguments |
1516 |
-+of multiple calls are accumulated, and do not overwrite each other. |
1517 |
-+ |
1518 |
-+[call [cmd ::html::css-clear]] |
1519 |
-+ |
1520 |
-+[emph {Side effect only}]. Call this before [cmd ::html::head] to |
1521 |
-+clear all links to CSS documents. |
1522 |
-+[para] |
1523 |
-+ |
1524 |
-+Multiple calls of this command are allowed, doing nothing after the |
1525 |
-+first of a sequence with no intervening [cmd ::html::css]. |
1526 |
-+ |
1527 |
-+[call [cmd ::html::js] [arg href]] |
1528 |
-+ |
1529 |
-+[emph {Side effect only}]. Call this before [cmd ::html::head] to |
1530 |
-+define a [term script] tag for a linked JavaScript document. The |
1531 |
-+[arg href] is a HTTP URL to a JavaScript document. The [term script] |
1532 |
-+tag is included in the result of [cmd ::html::head]. |
1533 |
-+ |
1534 |
-+[para] |
1535 |
-+ |
1536 |
-+Multiple calls of this command are allowed, enabling the use of |
1537 |
-+multiple JavaScript document references. In other words, the arguments |
1538 |
-+of multiple calls are accumulated, and do not overwrite each other. |
1539 |
-+ |
1540 |
-+ |
1541 |
-+[call [cmd ::html::js-clear]] |
1542 |
-+ |
1543 |
-+[emph {Side effect only}]. Call this before [cmd ::html::head] to |
1544 |
-+clear all links to JavaScript documents. |
1545 |
-+[para] |
1546 |
-+ |
1547 |
-+Multiple calls of this command are allowed, doing nothing after the |
1548 |
-+first of a sequence with no intervening [cmd ::html::js]. |
1549 |
-+ |
1550 |
- [call [cmd ::html::minorList] [arg list] [opt [arg ordered]]] |
1551 |
- |
1552 |
- Generate an ordered or unordered list of links. The [arg list] is a |
1553 |
-@@ -306,7 +352,7 @@ is a Tcl-style label, value list. |
1554 |
- |
1555 |
- [call [cmd ::html::radioValue] [arg {name value}]] |
1556 |
- |
1557 |
--Generate the "name=[arg name] value=[arg value] for a [term radio] form |
1558 |
-+Generate the "name=[arg name] value=[arg value]" for a [term radio] form |
1559 |
- element. If the CGI variable [arg name] has the value [arg value], |
1560 |
- then SELECTED is added to the return value. |
1561 |
- |
1562 |
-@@ -401,6 +447,28 @@ structure. Rather than evaluating the body, it returns the subst'ed |
1563 |
- [arg body]. Each iteration of the loop causes another string to be |
1564 |
- concatenated to the result value. |
1565 |
- |
1566 |
-+[call [cmd ::html::doctype] [arg id]] |
1567 |
-+ |
1568 |
-+This procedure can be used to build the standard DOCTYPE |
1569 |
-+declaration string. It will return the standard declaration |
1570 |
-+string for the id, or throw an error if the id is not known. |
1571 |
-+The following id's are defined: |
1572 |
-+ |
1573 |
-+[list_begin enumerated] |
1574 |
-+[enum] HTML32 |
1575 |
-+[enum] HTML40 |
1576 |
-+[enum] HTML40T |
1577 |
-+[enum] HTML40F |
1578 |
-+[enum] HTML401 |
1579 |
-+[enum] HTML401T |
1580 |
-+[enum] HTML401F |
1581 |
-+[enum] XHTML10S |
1582 |
-+[enum] XHTML10T |
1583 |
-+[enum] XHTML10F |
1584 |
-+[enum] XHTML11 |
1585 |
-+[enum] XHTMLB |
1586 |
-+[list_end] |
1587 |
-+ |
1588 |
- [list_end] |
1589 |
- |
1590 |
- [vset CATEGORY html] |
1591 |
-diff --git a/modules/html/html.tcl b/modules/html/html.tcl |
1592 |
-index 77e517e..3c0c443 100644 |
1593 |
---- a/modules/html/html.tcl |
1594 |
-+++ b/modules/html/html.tcl |
1595 |
-@@ -15,7 +15,7 @@ |
1596 |
- |
1597 |
- package require Tcl 8.2 |
1598 |
- package require ncgi |
1599 |
--package provide html 1.4 |
1600 |
-+package provide html 1.4.4 |
1601 |
- |
1602 |
- namespace eval ::html { |
1603 |
- |
1604 |
-@@ -510,7 +510,7 @@ proc ::html::refresh {content {url {}}} { |
1605 |
- ::if {[string length $url]} { |
1606 |
- append html "; url=$url" |
1607 |
- } |
1608 |
-- append html "\">\n" |
1609 |
-+ append html "\">" |
1610 |
- lappend page(meta) $html |
1611 |
- return "" |
1612 |
- } |
1613 |
-@@ -912,7 +912,7 @@ proc ::html::selectPlain {name param choices {current {}}} { |
1614 |
- # The html fragment |
1615 |
- |
1616 |
- proc ::html::textarea {name {param {}} {current {}}} { |
1617 |
-- ::set value [ncgi::value $name $current] |
1618 |
-+ ::set value [quoteFormValue [ncgi::value $name $current]] |
1619 |
- return "<[string trimright \ |
1620 |
- "textarea name=\"$name\"\ |
1621 |
- [tagParam textarea $param]"]>$value</textarea>\n" |
1622 |
-@@ -1405,7 +1405,7 @@ proc ::html::html_entities {s} { |
1623 |
- # The text with <br> in place of line-endings. |
1624 |
- |
1625 |
- proc ::html::nl2br {s} { |
1626 |
-- return [string map [list \n\r <br> \n <br> \r <br>] $s] |
1627 |
-+ return [string map [list \n\r <br> \r\n <br> \n <br> \r <br>] $s] |
1628 |
- } |
1629 |
- |
1630 |
- # ::html::doctype |
1631 |
-@@ -1419,9 +1419,10 @@ proc ::html::nl2br {s} { |
1632 |
- |
1633 |
- proc ::html::doctype {arg} { |
1634 |
- variable doctypes |
1635 |
-- set code [string toupper $arg] |
1636 |
-- if {![info exists doctypes($code)]} { |
1637 |
-- return -code error "Unknown doctype \"$arg\"" |
1638 |
-+ ::set code [string toupper $arg] |
1639 |
-+ ::if {![info exists doctypes($code)]} { |
1640 |
-+ return -code error -errorcode {HTML DOCTYPE BAD} \ |
1641 |
-+ "Unknown doctype \"$arg\"" |
1642 |
- } |
1643 |
- return $doctypes($code) |
1644 |
- } |
1645 |
-@@ -1451,12 +1452,26 @@ namespace eval ::html { |
1646 |
- # href The location of the css file to include the filename and path |
1647 |
- # |
1648 |
- # Results: |
1649 |
--# HTML for the section |
1650 |
-+# None. |
1651 |
- |
1652 |
- proc ::html::css {href} { |
1653 |
- variable page |
1654 |
-- set page(css) \ |
1655 |
-- "<link rel=\"stylesheet\" type=\"text/css\" href=\"[quoteFormValue $href]\">\n" |
1656 |
-+ lappend page(css) "<link rel=\"stylesheet\" type=\"text/css\" href=\"[quoteFormValue $href]\">" |
1657 |
-+ return |
1658 |
-+} |
1659 |
-+ |
1660 |
-+# ::html::css-clear |
1661 |
-+# Drop all text/css references. |
1662 |
-+# |
1663 |
-+# Arguments: |
1664 |
-+# None. |
1665 |
-+# |
1666 |
-+# Results: |
1667 |
-+# None. |
1668 |
-+ |
1669 |
-+proc ::html::css-clear {} { |
1670 |
-+ variable page |
1671 |
-+ catch { unset page(css) } |
1672 |
- return |
1673 |
- } |
1674 |
- |
1675 |
-@@ -1467,11 +1482,25 @@ proc ::html::css {href} { |
1676 |
- # href The location of the javascript file to include the filename and path |
1677 |
- # |
1678 |
- # Results: |
1679 |
--# HTML for the section |
1680 |
-+# None. |
1681 |
- |
1682 |
- proc ::html::js {href} { |
1683 |
- variable page |
1684 |
-- set page(js) \ |
1685 |
-- "<script language=\"javascript\" type=\"text/javascript\" src=\"[quoteFormValue $href]\"></script>\n" |
1686 |
-+ lappend page(js) "<script language=\"javascript\" type=\"text/javascript\" src=\"[quoteFormValue $href]\"></script>" |
1687 |
-+ return |
1688 |
-+} |
1689 |
-+ |
1690 |
-+# ::html::js-clear |
1691 |
-+# Drop all text/javascript references. |
1692 |
-+# |
1693 |
-+# Arguments: |
1694 |
-+# None. |
1695 |
-+# |
1696 |
-+# Results: |
1697 |
-+# None. |
1698 |
-+ |
1699 |
-+proc ::html::js-clear {} { |
1700 |
-+ variable page |
1701 |
-+ catch { unset page(js) } |
1702 |
- return |
1703 |
- } |
1704 |
-diff --git a/modules/html/html.test b/modules/html/html.test |
1705 |
-index 7a03c54..6646fb6 100644 |
1706 |
---- a/modules/html/html.test |
1707 |
-+++ b/modules/html/html.test |
1708 |
-@@ -17,8 +17,8 @@ source [file join \ |
1709 |
- [file dirname [file dirname [file join [pwd] [info script]]]] \ |
1710 |
- devtools testutilities.tcl] |
1711 |
- |
1712 |
--testsNeedTcl 8.2 |
1713 |
--testsNeedTcltest 1.0 |
1714 |
-+testsNeedTcl 8.4 |
1715 |
-+testsNeedTcltest 2.0 |
1716 |
- |
1717 |
- testing { |
1718 |
- useLocal html.tcl html |
1719 |
-@@ -26,45 +26,46 @@ testing { |
1720 |
- |
1721 |
- # ------------------------------------------------------------------------- |
1722 |
- |
1723 |
--test html-1.1 {html::init} { |
1724 |
-+test html-1.1 {html::init} -body { |
1725 |
- html::init |
1726 |
-- list [array exists html::defaults] \ |
1727 |
-- [array size html::defaults] \ |
1728 |
-- [info exists html::page] |
1729 |
--} {1 0 0} |
1730 |
-+ list \ |
1731 |
-+ [array exists html::defaults] \ |
1732 |
-+ [array size html::defaults] \ |
1733 |
-+ [info exists html::page] |
1734 |
-+} -result {1 0 0} |
1735 |
- |
1736 |
--test html-1.2 {html::init} { |
1737 |
-+test html-1.2 {html::init} -body { |
1738 |
- html::init { |
1739 |
- font.face arial |
1740 |
- body.bgcolor white |
1741 |
- body.text black |
1742 |
- } |
1743 |
- lsort [array names html::defaults] |
1744 |
--} {body.bgcolor body.text font.face} |
1745 |
-+} -result {body.bgcolor body.text font.face} |
1746 |
- |
1747 |
--test html-1.3 {html::init} { |
1748 |
-- catch {html::init wrong num args} |
1749 |
--} 1 |
1750 |
-+test html-1.3 {html::init, too many args} -body { |
1751 |
-+ html::init wrong num args |
1752 |
-+} -returnCodes error -result {wrong # args: should be "html::init ?nvlist?"} |
1753 |
- |
1754 |
--test html-1.4 {html::init} { |
1755 |
-- catch {html::init {wrong num args}} |
1756 |
--} 1 |
1757 |
-+test html-1.4 {html::init, bad arg, odd-length list} -body { |
1758 |
-+ html::init {wrong num args} |
1759 |
-+} -returnCodes error -result {list must have an even number of elements} |
1760 |
- |
1761 |
--test html-2.1 {html::head} { |
1762 |
-- catch {html::head} |
1763 |
--} 1 |
1764 |
-+test html-2.1 {html::head, not enough args} -body { |
1765 |
-+ html::head |
1766 |
-+} -returnCodes error -result {wrong # args: should be "html::head title"} |
1767 |
- |
1768 |
--test html-2.2 {html::head} { |
1769 |
-+test html-2.2 {html::head} -body { |
1770 |
- html::head "The Title" |
1771 |
--} "<html><head>\n\t<title>The Title</title>\n</head>\n" |
1772 |
-+} -result "<html><head>\n\t<title>The Title</title>\n</head>\n" |
1773 |
- |
1774 |
--test html-2.3 {html::head} { |
1775 |
-+test html-2.3 {html::head} -body { |
1776 |
- html::description "The Description" |
1777 |
- html::keywords key word |
1778 |
- html::author "Cathy Coder" |
1779 |
- html::meta metakey metavalue |
1780 |
- html::head "The Title" |
1781 |
--} {<html><head> |
1782 |
-+} -result {<html><head> |
1783 |
- <title>The Title</title> |
1784 |
- <!-- Cathy Coder --> |
1785 |
- <meta name="description" content="The Description"> |
1786 |
-@@ -73,24 +74,24 @@ test html-2.3 {html::head} { |
1787 |
- </head> |
1788 |
- } |
1789 |
- |
1790 |
--test html-3.1 {html::title} { |
1791 |
-- catch html::title |
1792 |
--} 1 |
1793 |
-+test html-3.1 {html::title, not enough args} -body { |
1794 |
-+ html::title |
1795 |
-+} -returnCodes error -result {wrong # args: should be "html::title title"} |
1796 |
- |
1797 |
--test html-3.2 {html::title} { |
1798 |
-+test html-3.2 {html::title} -body { |
1799 |
- html::title "blah blah" |
1800 |
--} "<title>blah blah</title>\n" |
1801 |
-+} -result "<title>blah blah</title>\n" |
1802 |
- |
1803 |
--test html-4.1 {html::getTitle} { |
1804 |
-+test html-4.1 {html::getTitle} -body { |
1805 |
- html::init |
1806 |
- html::getTitle |
1807 |
--} "" |
1808 |
-+} -result "" |
1809 |
- |
1810 |
--test html-4.2 {html::getTitle} { |
1811 |
-+test html-4.2 {html::getTitle} -body { |
1812 |
- html::init |
1813 |
- html::title "blah blah" |
1814 |
- html::getTitle |
1815 |
--} {blah blah} |
1816 |
-+} -result {blah blah} |
1817 |
- |
1818 |
- test html-5.1 {html::meta} { |
1819 |
- html::init |
1820 |
-@@ -453,6 +454,18 @@ test html-23.2 {html::textarea} { |
1821 |
- } {<textarea name="info" cols="50" rows="8">The textarea value.</textarea> |
1822 |
- } |
1823 |
- |
1824 |
-+test html-23.3 {html::textarea, dangerous input} { |
1825 |
-+ html::init { |
1826 |
-+ textarea.cols 50 |
1827 |
-+ textarea.rows 8 |
1828 |
-+ } |
1829 |
-+ ncgi::reset info=[ncgi::encode "</textarea><script>alert(1)</script>"] |
1830 |
-+ ncgi::parse |
1831 |
-+ html::textarea info |
1832 |
-+} {<textarea name="info" cols="50" rows="8"></textarea><script>alert(1)</script></textarea> |
1833 |
-+} |
1834 |
-+ |
1835 |
-+ |
1836 |
- test html-24.1 {html::submit} { |
1837 |
- catch {html::submit} |
1838 |
- } {1} |
1839 |
-@@ -516,7 +529,6 @@ test html-26.4 {html::refresh} { |
1840 |
- } {<html><head> |
1841 |
- <title>title</title> |
1842 |
- <meta http-equiv="Refresh" content="4"> |
1843 |
-- |
1844 |
- </head> |
1845 |
- } |
1846 |
- test html-26.5 {html::refresh} { |
1847 |
-@@ -526,7 +538,6 @@ test html-26.5 {html::refresh} { |
1848 |
- } {<html><head> |
1849 |
- <title>title</title> |
1850 |
- <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> |
1851 |
-- |
1852 |
- </head> |
1853 |
- } |
1854 |
- |
1855 |
-@@ -794,6 +805,7 @@ test html-32.1 {single argument} { |
1856 |
- set result [html::eval {set x [format 22]}] |
1857 |
- list $result $x |
1858 |
- } {{} 22} |
1859 |
-+ |
1860 |
- test html-32.2 {multiple arguments} { |
1861 |
- set a {$b} |
1862 |
- set b xyzzy |
1863 |
-@@ -801,38 +813,146 @@ test html-32.2 {multiple arguments} { |
1864 |
- set result [html::eval {set x [eval format $a]}] |
1865 |
- list $result $x |
1866 |
- } {{} xyzzy} |
1867 |
-+ |
1868 |
- test html-32.3 {single argument} { |
1869 |
- set x [list] |
1870 |
- set y 1 |
1871 |
- set result [html::eval lappend x a b c d {$y} e f g] |
1872 |
- list $result $x |
1873 |
- } {{} {a b c d 1 e f g}} |
1874 |
--test html-32.4 {error: not enough arguments} {catch html::eval} 1 |
1875 |
--test html-32.5 {error: not enough arguments} { |
1876 |
-- catch html::eval msg |
1877 |
-- set msg |
1878 |
--} {wrong # args: should be "uplevel ?level? command ?arg ...?"} |
1879 |
--test html-32.6 {error in eval'ed command} { |
1880 |
-- catch {html::eval {error "test error"}} |
1881 |
--} 1 |
1882 |
--test html-32.7 {error in eval'ed command} { |
1883 |
-- catch {html::eval {error "test error"}} msg |
1884 |
-- set msg |
1885 |
--} {test error} |
1886 |
- |
1887 |
-+test html-32.4 {error: not enough arguments} -body { |
1888 |
-+ html::eval |
1889 |
-+} -returnCodes error -result {wrong # args: should be "uplevel ?level? command ?arg ...?"} |
1890 |
- |
1891 |
--test html-33.0 {html::font} { |
1892 |
-+test html-32.6 {error in eval'ed command} -body { |
1893 |
-+ html::eval {error "test error"} |
1894 |
-+} -returnCodes error -result {test error} |
1895 |
-+ |
1896 |
-+test html-33.0 {html::font} -body { |
1897 |
- html::font |
1898 |
--} {} |
1899 |
-+} -result {} |
1900 |
- |
1901 |
--test html-33.1 {html::font} { |
1902 |
-+test html-33.1 {html::font} -body { |
1903 |
- html::font size=18 |
1904 |
--} {<font size=18>} |
1905 |
-+} -result {<font size=18>} |
1906 |
- |
1907 |
-- |
1908 |
--test html-34.0 {html::nl2br} { |
1909 |
-+test html-34.0 {html::nl2br} -body { |
1910 |
- html::nl2br "a\n\rb\nc\rd" |
1911 |
--} {a<br>b<br>c<br>d} |
1912 |
-+} -result {a<br>b<br>c<br>d} |
1913 |
- |
1914 |
-+test html-34.1 {html::nl2br, ticket 1742078} -body { |
1915 |
-+ html::nl2br "a\r\nb" |
1916 |
-+} -result {a<br>b} |
1917 |
- |
1918 |
-+# ------------------------------------------------------------------------- |
1919 |
-+ |
1920 |
-+test html-tkt3439702-35.0 {html::css, not enough arguments} -body { |
1921 |
-+ html::css |
1922 |
-+} -returnCodes error -result {wrong # args: should be "html::css href"} |
1923 |
-+ |
1924 |
-+test html-tkt3439702-35.1 {html::css, too many arguments} -body { |
1925 |
-+ html::css REF X |
1926 |
-+} -returnCodes error -result {wrong # args: should be "html::css href"} |
1927 |
-+ |
1928 |
-+test html-tkt3439702-35.2 {html::css, single ref} -setup { |
1929 |
-+ html::css-clear |
1930 |
-+} -body { |
1931 |
-+ html::css "http://test.css" |
1932 |
-+ string trim [html::head T] |
1933 |
-+} -cleanup { |
1934 |
-+ html::css-clear |
1935 |
-+} -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>" |
1936 |
-+ |
1937 |
-+test html-tkt3439702-35.3 {html::css, multiple ref} -setup { |
1938 |
-+ html::css-clear |
1939 |
-+} -body { |
1940 |
-+ html::css "http://test1.css" |
1941 |
-+ html::css "http://test2.css" |
1942 |
-+ string trim [html::head T] |
1943 |
-+} -cleanup { |
1944 |
-+ html::css-clear |
1945 |
-+} -result {<html><head> |
1946 |
-+ <title>T</title> |
1947 |
-+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> |
1948 |
-+ <link rel="stylesheet" type="text/css" href="http://test1.css"> |
1949 |
-+ <link rel="stylesheet" type="text/css" href="http://test2.css"> |
1950 |
-+</head>} |
1951 |
-+ |
1952 |
-+# ------------------------------------------------------------------------- |
1953 |
-+ |
1954 |
-+test html-tkt3439702-36.0 {html::js, not enough arguments} -body { |
1955 |
-+ html::js |
1956 |
-+} -returnCodes error -result {wrong # args: should be "html::js href"} |
1957 |
-+ |
1958 |
-+test html-tkt3439702-36.1 {html::js, too many arguments} -body { |
1959 |
-+ html::js REF X |
1960 |
-+} -returnCodes error -result {wrong # args: should be "html::js href"} |
1961 |
-+ |
1962 |
-+test html-tkt3439702-36.2 {html::js, single ref} -setup { |
1963 |
-+ html::js-clear |
1964 |
-+} -body { |
1965 |
-+ html::js "http://test.js" |
1966 |
-+ string trim [html::head T] |
1967 |
-+} -cleanup { |
1968 |
-+ html::js-clear |
1969 |
-+} -result {<html><head> |
1970 |
-+ <title>T</title> |
1971 |
-+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> |
1972 |
-+ <script language="javascript" type="text/javascript" src="http://test.js"></script> |
1973 |
-+</head>} |
1974 |
-+ |
1975 |
-+test html-tkt3439702-36.3 {html::js, multiple ref} -setup { |
1976 |
-+ html::js-clear |
1977 |
-+} -body { |
1978 |
-+ html::js "http://test1.js" |
1979 |
-+ html::js "http://test2.js" |
1980 |
-+ string trim [html::head T] |
1981 |
-+} -cleanup { |
1982 |
-+ html::js-clear |
1983 |
-+} -result {<html><head> |
1984 |
-+ <title>T</title> |
1985 |
-+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> |
1986 |
-+ <script language="javascript" type="text/javascript" src="http://test1.js"></script> |
1987 |
-+ <script language="javascript" type="text/javascript" src="http://test2.js"></script> |
1988 |
-+</head>} |
1989 |
-+ |
1990 |
-+test html-tkt3439702-37.0 {html::js, html::css, mixed} -setup { |
1991 |
-+ html::css-clear |
1992 |
-+ html::js-clear |
1993 |
-+} -body { |
1994 |
-+ html::css "http://test.css" |
1995 |
-+ html::js "http://test.js" |
1996 |
-+ string trim [html::head T] |
1997 |
-+} -cleanup { |
1998 |
-+ html::js-clear |
1999 |
-+ html::css-clear |
2000 |
-+} -result {<html><head> |
2001 |
-+ <title>T</title> |
2002 |
-+ <meta http-equiv="Refresh" content="9; url=http://www.scriptics.com"> |
2003 |
-+ <link rel="stylesheet" type="text/css" href="http://test.css"> |
2004 |
-+ <script language="javascript" type="text/javascript" src="http://test.js"></script> |
2005 |
-+</head>} |
2006 |
-+ |
2007 |
-+# ------------------------------------------------------------------------- |
2008 |
-+# TODO: html::css-clear, html::js-clear |
2009 |
-+ |
2010 |
-+ |
2011 |
-+test html-tktafe4366e2e-38.0 {html::doctype, not enough args} -body { |
2012 |
-+ html::doctype |
2013 |
-+} -returnCodes error -result {wrong # args: should be "html::doctype arg"} |
2014 |
-+ |
2015 |
-+test html-tktafe4366e2e-38.1 {html::doctype, too many args} -body { |
2016 |
-+ html::doctype HTML401T X |
2017 |
-+} -returnCodes error -result {wrong # args: should be "html::doctype arg"} |
2018 |
-+ |
2019 |
-+test html-tktafe4366e2e-38.2 {html::doctype, unknown type} -body { |
2020 |
-+ html::doctype HTML401TXXX |
2021 |
-+} -returnCodes error -result {Unknown doctype "HTML401TXXX"} |
2022 |
-+ |
2023 |
-+test html-tktafe4366e2e-38.3 {html::doctype} -body { |
2024 |
-+ html::doctype HTML401T |
2025 |
-+} -result {<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">} |
2026 |
-+ |
2027 |
-+# ------------------------------------------------------------------------- |
2028 |
- testsuiteCleanup |
2029 |
-diff --git a/modules/html/pkgIndex.tcl b/modules/html/pkgIndex.tcl |
2030 |
-index 88a71b2..9d91097 100644 |
2031 |
---- a/modules/html/pkgIndex.tcl |
2032 |
-+++ b/modules/html/pkgIndex.tcl |
2033 |
-@@ -1,2 +1,2 @@ |
2034 |
- if {![package vsatisfies [package provide Tcl] 8.2]} {return} |
2035 |
--package ifneeded html 1.4 [list source [file join $dir html.tcl]] |
2036 |
-+package ifneeded html 1.4.4 [list source [file join $dir html.tcl]] |
2037 |
|
2038 |
diff --git a/dev-tcltk/tcllib/files/tcllib-1.16-test.patch b/dev-tcltk/tcllib/files/tcllib-1.16-test.patch |
2039 |
deleted file mode 100644 |
2040 |
index 8b3c8ca2590..00000000000 |
2041 |
--- a/dev-tcltk/tcllib/files/tcllib-1.16-test.patch |
2042 |
+++ /dev/null |
2043 |
@@ -1,81 +0,0 @@ |
2044 |
- modules/clock/iso8601.test | 2 +- |
2045 |
- modules/multiplexer/multiplexer.test | 2 +- |
2046 |
- modules/snit/snit.test | 4 ++-- |
2047 |
- modules/struct/sets.testsuite | 2 +- |
2048 |
- modules/uev/uevent.test | 2 +- |
2049 |
- 5 files changed, 6 insertions(+), 6 deletions(-) |
2050 |
- |
2051 |
-diff --git a/modules/clock/iso8601.test b/modules/clock/iso8601.test |
2052 |
-index 6fce938..a9db5b0 100644 |
2053 |
---- a/modules/clock/iso8601.test |
2054 |
-+++ b/modules/clock/iso8601.test |
2055 |
-@@ -26,7 +26,7 @@ test clock-iso8601-1.0.1 {parse_date wrong\#args} -constraints {tcl8.6plus} -bod |
2056 |
- |
2057 |
- test clock-iso8601-1.1 {parse_date, bad option} -body { |
2058 |
- clock::iso8601 parse_date 1994-11-05 -foo x |
2059 |
--} -returnCodes error -result {bad switch "-foo", must be -base, -format, -gmt, -locale or -timezone} |
2060 |
-+} -returnCodes error -result {bad option "-foo", must be -base, -format, -gmt, -locale or -timezone} |
2061 |
- |
2062 |
- # NOTE: While listed as legal, -format is NOT. This is because the |
2063 |
- # command simply hands off to clock scan, and we are seeing its error |
2064 |
-diff --git a/modules/multiplexer/multiplexer.test b/modules/multiplexer/multiplexer.test |
2065 |
-index d778253..e5dfeff 100644 |
2066 |
---- a/modules/multiplexer/multiplexer.test |
2067 |
-+++ b/modules/multiplexer/multiplexer.test |
2068 |
-@@ -189,7 +189,7 @@ proc DenyAccessFilter {chan clientaddress clientport} { |
2069 |
- return -1 |
2070 |
- } |
2071 |
- |
2072 |
--test multiplexer-5.2 {add access filter which denies access} { |
2073 |
-+test multiplexer-5.2 {add access filter which denies access} {broken without network} { |
2074 |
- set ::forever {} |
2075 |
- set mp [multiplexer::create] |
2076 |
- ${mp}::Init 37465 |
2077 |
-diff --git a/modules/snit/snit.test b/modules/snit/snit.test |
2078 |
-index 66d7bd1..00c0769 100644 |
2079 |
---- a/modules/snit/snit.test |
2080 |
-+++ b/modules/snit/snit.test |
2081 |
-@@ -783,7 +783,7 @@ test dtypemethod-1.6a {delegating unknown typemethod to existing typecomponent w |
2082 |
- snit2 |
2083 |
- } -returnCodes { |
2084 |
- error |
2085 |
--} -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} |
2086 |
-+} -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} |
2087 |
- |
2088 |
- test dtypemethod-1.7 {can't delegate local typemethod: order 1} -body { |
2089 |
- type dog { |
2090 |
-@@ -3339,7 +3339,7 @@ test dmethod-1.6a {delegating unknown method to existing component with error} - |
2091 |
- error |
2092 |
- } -cleanup { |
2093 |
- dog destroy |
2094 |
--} -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} |
2095 |
-+} -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} |
2096 |
- |
2097 |
- test dmethod-1.7 {can't delegate local method: order 1} -body { |
2098 |
- type cat { |
2099 |
-diff --git a/modules/struct/sets.testsuite b/modules/struct/sets.testsuite |
2100 |
-index 29fd3ef..28a9dd6 100644 |
2101 |
---- a/modules/struct/sets.testsuite |
2102 |
-+++ b/modules/struct/sets.testsuite |
2103 |
-@@ -13,7 +13,7 @@ |
2104 |
- test set-${impl}-1.0 {nothing} { |
2105 |
- catch {setop} msg |
2106 |
- set msg |
2107 |
--} [Nothing] |
2108 |
-+} {wrong # args: should be "::struct::set cmd ?arg ...?"} |
2109 |
- |
2110 |
- test set-${impl}-1.1 {bogus} { |
2111 |
- catch {setop foo} msg |
2112 |
-diff --git a/modules/uev/uevent.test b/modules/uev/uevent.test |
2113 |
-index 91754a7..6544112 100644 |
2114 |
---- a/modules/uev/uevent.test |
2115 |
-+++ b/modules/uev/uevent.test |
2116 |
-@@ -453,7 +453,7 @@ test uevent-10.3 {watch events, watch after bind, glob} { |
2117 |
- ::uevent::unbind $t4 |
2118 |
- ::uevent::watch::event::remove $tw |
2119 |
- set res |
2120 |
--} {bound TAG EX bound TAGX EX bound TAG E bound TAGX E unbound TAGX E unbound TAG E unbound TAGX EX unbound TAG EX} |
2121 |
-+} {bound TAGX E bound TAGX EX bound TAG E bound TAG EX unbound TAGX E unbound TAG E unbound TAGX EX unbound TAG EX} |
2122 |
- |
2123 |
- # ------------------------------------------------------------------------- |
2124 |
- rename EVENT {} |
2125 |
|
2126 |
diff --git a/dev-tcltk/tcllib/tcllib-1.15-r2.ebuild b/dev-tcltk/tcllib/tcllib-1.15-r2.ebuild |
2127 |
index 38fc5f78a41..9b88517a441 100644 |
2128 |
--- a/dev-tcltk/tcllib/tcllib-1.15-r2.ebuild |
2129 |
+++ b/dev-tcltk/tcllib/tcllib-1.15-r2.ebuild |
2130 |
@@ -8,8 +8,7 @@ inherit eutils virtualx |
2131 |
DESCRIPTION="Tcl Standard Library" |
2132 |
HOMEPAGE="http://www.tcl.tk/software/tcllib/" |
2133 |
SRC_URI=" |
2134 |
- https://dev.gentoo.org/~jlec/distfiles/${P}-manpage-rename.patch.xz |
2135 |
- https://dev.gentoo.org/~jlec/distfiles/${P}-test.patch.xz |
2136 |
+ https://dev.gentoo.org/~mgorny/dist/${P}-patchset.tar.xz |
2137 |
mirror://sourceforge/tcllib/${P}.tar.bz2" |
2138 |
|
2139 |
LICENSE="BSD" |
2140 |
@@ -23,15 +22,15 @@ DEPEND="${RDEPEND}" |
2141 |
DOCS=( DESCRIPTION.txt STATUS ) |
2142 |
|
2143 |
PATCHES=( |
2144 |
- "${FILESDIR}"/${P}-tcl8.6-test.patch |
2145 |
- "${WORKDIR}"/${P}-test.patch |
2146 |
- "${WORKDIR}"/${P}-manpage-rename.patch |
2147 |
- "${FILESDIR}"/${P}-XSS-vuln.patch |
2148 |
+ "${WORKDIR}"/${P}-patchset/${P}-tcl8.6-test.patch |
2149 |
+ "${WORKDIR}"/${P}-patchset/${P}-test.patch |
2150 |
+ "${WORKDIR}"/${P}-patchset/${P}-manpage-rename.patch |
2151 |
+ "${WORKDIR}"/${P}-patchset/${P}-XSS-vuln.patch |
2152 |
) |
2153 |
|
2154 |
src_prepare() { |
2155 |
has_version ">=dev-lang/tcl-8.6" && \ |
2156 |
- PATCHES+=( "${FILESDIR}"/${P}-test.patch ) |
2157 |
+ PATCHES+=( "${WORKDIR}"/${P}-patchset/${P}-tcl8.6-test-2.patch ) |
2158 |
epatch "${PATCHES[@]}" |
2159 |
} |
2160 |
|
2161 |
|
2162 |
diff --git a/dev-tcltk/tcllib/tcllib-1.16.ebuild b/dev-tcltk/tcllib/tcllib-1.16.ebuild |
2163 |
index 4232724bc11..1f34a46571b 100644 |
2164 |
--- a/dev-tcltk/tcllib/tcllib-1.16.ebuild |
2165 |
+++ b/dev-tcltk/tcllib/tcllib-1.16.ebuild |
2166 |
@@ -10,7 +10,8 @@ MY_P=${MY_PN}-${PV} |
2167 |
|
2168 |
DESCRIPTION="Tcl Standard Library" |
2169 |
HOMEPAGE="http://www.tcl.tk/software/tcllib/" |
2170 |
-SRC_URI="mirror://sourceforge//project/${PN}/${PN}/${PV}/${MY_P}.tar.bz2" |
2171 |
+SRC_URI="mirror://sourceforge//project/${PN}/${PN}/${PV}/${MY_P}.tar.bz2 |
2172 |
+ https://dev.gentoo.org/~mgorny/dist/${P}-patchset.tar.xz" |
2173 |
|
2174 |
LICENSE="BSD" |
2175 |
SLOT="0" |
2176 |
@@ -27,11 +28,11 @@ DOCS=( DESCRIPTION.txt STATUS ) |
2177 |
|
2178 |
S="${WORKDIR}"/${MY_P} |
2179 |
|
2180 |
-PATCHES=( "${FILESDIR}"/${P}-XSS-vuln.patch ) |
2181 |
+PATCHES=( "${WORKDIR}"/${P}-patchset/${P}-XSS-vuln.patch ) |
2182 |
|
2183 |
src_prepare() { |
2184 |
has_version ">=dev-lang/tcl-8.6" && \ |
2185 |
- PATCHES+=( "${FILESDIR}"/${P}-test.patch ) |
2186 |
+ PATCHES+=( "${WORKDIR}"/${P}-patchset/${P}-test.patch ) |
2187 |
epatch "${PATCHES[@]}" |
2188 |
|
2189 |
sed \ |