summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandreask <andreask>2012-03-07 18:59:34 (GMT)
committerandreask <andreask>2012-03-07 18:59:34 (GMT)
commit36d2d21ef756fd3321cecf1e7b278ee2d2c8a8dd (patch)
treef4736d7e3dd8e3c53a1c7ddf044f267945c24494
parentab122b015c2810b81d4b677ee1bd956d81b9f506 (diff)
parent85723f7753964dfd99076945efd55744ee3e52a2 (diff)
downloadtcl-36d2d21ef756fd3321cecf1e7b278ee2d2c8a8dd.zip
tcl-36d2d21ef756fd3321cecf1e7b278ee2d2c8a8dd.tar.gz
tcl-36d2d21ef756fd3321cecf1e7b278ee2d2c8a8dd.tar.bz2
Merged from 8.5 branch -- http package. Fix Bug 3498327. Generate upper-case hexadecimal output for compliance with RFC 3986. Bumped version to 2.8.4.
-rw-r--r--ChangeLog8
-rw-r--r--library/http/http.tcl6
-rw-r--r--library/http/pkgIndex.tcl2
-rw-r--r--tests/http.test12
-rw-r--r--unix/Makefile.in4
-rw-r--r--win/Makefile.in4
6 files changed, 22 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 3dfccfc..af6d1ca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2012-03-07 Andreas Kupries <andreask@activestate.com>
+
+ * library/http/http.tcl: [Bug 3498327]: Generate upper-case
+ * library/http/pkgIndex.tcl: hexadecimal output for compliance
+ * tests/http.test: with RFC 3986. Bumped version to 2.8.4.
+ * unix/Makefile.in:
+ * win/Makefile.in:
+
2012-03-06 Jan Nijtmans <nijtmans@users.sf.net>
* win/tclWinPort.h: Compatibility with older Visual Studio versions.
diff --git a/library/http/http.tcl b/library/http/http.tcl
index 6f0f4ce..b5ce82b 100644
--- a/library/http/http.tcl
+++ b/library/http/http.tcl
@@ -11,7 +11,7 @@
package require Tcl 8.6
# Keep this in sync with pkgIndex.tcl and with the install directories in
# Makefiles
-package provide http 2.8.3
+package provide http 2.8.4
namespace eval http {
# Allow resourcing to not clobber existing data
@@ -43,11 +43,11 @@ namespace eval http {
for {set i 0} {$i <= 256} {incr i} {
set c [format %c $i]
if {![string match {[-._~a-zA-Z0-9]} $c]} {
- set map($c) %[format %.2x $i]
+ set map($c) %[format %.2X $i]
}
}
# These are handled specially
- set map(\n) %0d%0a
+ set map(\n) %0D%0A
variable formMap [array get map]
# Create a map for HTTP/1.1 open sockets
diff --git a/library/http/pkgIndex.tcl b/library/http/pkgIndex.tcl
index d89b14b..d51f8a8 100644
--- a/library/http/pkgIndex.tcl
+++ b/library/http/pkgIndex.tcl
@@ -1,2 +1,2 @@
if {![package vsatisfies [package provide Tcl] 8.6]} {return}
-package ifneeded http 2.8.3 [list tclPkgSetup $dir http 2.8.3 {{http.tcl source {::http::config ::http::formatQuery ::http::geturl ::http::reset ::http::wait ::http::register ::http::unregister ::http::mapReply}}}]
+package ifneeded http 2.8.4 [list tclPkgSetup $dir http 2.8.4 {{http.tcl source {::http::config ::http::formatQuery ::http::geturl ::http::reset ::http::wait ::http::register ::http::unregister ::http::mapReply}}}]
diff --git a/tests/http.test b/tests/http.test
index d9c1efb..37d4a05 100644
--- a/tests/http.test
+++ b/tests/http.test
@@ -555,17 +555,17 @@ test http-5.1 {http::formatQuery} {
# test http-5.2 obsoleted by 5.4 and 5.5 with http 2.5
test http-5.3 {http::formatQuery} {
http::formatQuery lines "line1\nline2\nline3"
-} {lines=line1%0d%0aline2%0d%0aline3}
+} {lines=line1%0D%0Aline2%0D%0Aline3}
test http-5.4 {http::formatQuery} {
http::formatQuery name1 ~bwelch name2 \xa1\xa2\xa2
-} {name1=~bwelch&name2=%c2%a1%c2%a2%c2%a2}
+} {name1=~bwelch&name2=%C2%A1%C2%A2%C2%A2}
test http-5.5 {http::formatQuery} {
set enc [http::config -urlencoding]
http::config -urlencoding iso8859-1
set res [http::formatQuery name1 ~bwelch name2 \xa1\xa2\xa2]
http::config -urlencoding $enc
set res
-} {name1=~bwelch&name2=%a1%a2%a2}
+} {name1=~bwelch&name2=%A1%A2%A2}
test http-6.1 {http::ProxyRequired} -body {
http::config -proxyhost [info hostname] -proxyport $port
@@ -583,12 +583,12 @@ test http-6.1 {http::ProxyRequired} -body {
test http-7.1 {http::mapReply} {
http::mapReply "abc\$\[\]\"\\()\}\{"
-} {abc%24%5b%5d%22%5c%28%29%7d%7b}
+} {abc%24%5B%5D%22%5C%28%29%7D%7B}
test http-7.2 {http::mapReply} {
# RFC 2718 specifies that we pass urlencoding on utf-8 chars by default,
# so make sure this gets converted to utf-8 then urlencoded.
http::mapReply "\u2208"
-} {%e2%88%88}
+} {%E2%88%88}
test http-7.3 {http::formatQuery} -setup {
set enc [http::config -urlencoding]
} -returnCodes error -body {
@@ -607,7 +607,7 @@ test http-7.4 {http::formatQuery} -setup {
http::mapReply "\u2208"
} -cleanup {
http::config -urlencoding $enc
-} -result {%3f}
+} -result {%3F}
# cleanup
catch {unset url}
diff --git a/unix/Makefile.in b/unix/Makefile.in
index 154f1b9..34b9003 100644
--- a/unix/Makefile.in
+++ b/unix/Makefile.in
@@ -829,8 +829,8 @@ install-libraries: libraries
do \
$(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)"/http1.0; \
done;
- @echo "Installing package http 2.8.3 as a Tcl Module";
- @$(INSTALL_DATA) $(TOP_DIR)/library/http/http.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.6/http-2.8.3.tm;
+ @echo "Installing package http 2.8.4 as a Tcl Module";
+ @$(INSTALL_DATA) $(TOP_DIR)/library/http/http.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.6/http-2.8.4.tm;
@echo "Installing package opt0.4 files to $(SCRIPT_INSTALL_DIR)/opt0.4/";
@for i in $(TOP_DIR)/library/opt/*.tcl ; \
do \
diff --git a/win/Makefile.in b/win/Makefile.in
index 8880dc6..8492b8f 100644
--- a/win/Makefile.in
+++ b/win/Makefile.in
@@ -662,8 +662,8 @@ install-libraries: libraries install-tzdata install-msgs
do \
$(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/http1.0"; \
done;
- @echo "Installing package http 2.8.3 as a Tcl Module";
- @$(COPY) $(ROOT_DIR)/library/http/http.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.6/http-2.8.3.tm;
+ @echo "Installing package http 2.8.4 as a Tcl Module";
+ @$(COPY) $(ROOT_DIR)/library/http/http.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.6/http-2.8.4.tm;
@echo "Installing library opt0.4 directory";
@for j in $(ROOT_DIR)/library/opt/*.tcl; \
do \