| Ticket UUID: | dc1e1ba10ec786bbafcf5bf75def9b5ab6f14199 | |||
| Title: | yencode-1.0 failure w/Tcl 9.0 (trunk) | |||
| Type: | Bug | Version: | 1.1.4 | |
| Submitter: | anonymous | Created on: | 2023-11-15 00:54:19 | |
| Subsystem: | base64 | Assigned To: | ||
| Priority: | 5 Medium | Severity: | Important | |
| Status: | Closed | Last Modified: | 2024-01-06 01:00:43 | |
| Resolution: | Fixed | Closed By: | pointsman | |
| Closed on: | 2024-01-06 01:00:43 | |||
| Description: |
Platform: Linux
@@ Testsuite modules/base64/yencode.test
@@ StartFile 1699998934
- tcllib::testutils 1.2
* yencode 1.1.4
> pure tcl
---- yencode-1.0 start
==== yencode-1.0 yencode yEnc test file FAILED
==== Contents of test case:
set enc [::yencode::yencode -file $datafile]
set dec [::yencode::ydecode $enc]
set chk [::yencode::loaddata $datafile]
string equal $dec $chk
---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: error reading "file5": invalid or incomplete multibyte or wide character
while executing
"read $f"
(procedure "::yencode::loaddata" line 4)
invoked from within
"::yencode::loaddata $datafile"
("uplevel" body line 4)
invoked from within
"uplevel 1 $script"
---- errorCode: POSIX EILSEQ {invalid or incomplete multibyte or wide character}
==== yencode-1.0 FAILED
| |||
| User Comments: |
pointsman added on 2024-01-06 01:00:43:
This was a "fall-out" of making the Tcl 9 I/O default profile -strict (which was done after the basically port of tcllib to Tcl 9.) Fixed with [648ae400f9]. Thanks for reporting. anonymous added on 2023-11-26 18:22:17: Proposed fix:
Index: modules/base64/yencode.tcl
==================================================================
--- modules/base64/yencode.tcl
+++ modules/base64/yencode.tcl
@@ -190,12 +190,12 @@
if {! [string is boolean $opts(crc32)]} {
return -code error "bad option -crc32: argument must be true or false"
}
if {$opts(filename) != {}} {
- set f [open $opts(filename) r]
- fconfigure $f -translation binary
+ set f [open $opts(filename) rb]
+ #fconfigure $f -translation binary
set data [read $f]
close $f
} else {
if {[llength $args] != 1} {
return -code error "wrong \# args: should be\
@@ -302,6 +302,5 @@
#
# Local variables:
# mode: tcl
# indent-tabs-mode: nil
# End:
-
Index: modules/base64/yencode.test
==================================================================
--- modules/base64/yencode.test
+++ modules/base64/yencode.test
@@ -29,11 +29,11 @@
} else {
puts "> pure tcl"
}
proc ::yencode::loaddata {filename {translation auto}} {
- set f [open $filename r]
+ set f [open $filename rb]
fconfigure $f -translation $translation
set data [read $f]
close $f
return $data
}
| |||
Home
Blog
Docs
Downloads
Tickets
Timeline
Branches
Tags
Wiki