From: <no...@so...> - 2000-11-15 21:26:44
|
Bug #119365, was updated on 2000-Oct-25 22:11 Here is a current snapshot of the bug. Project: Tcl Category: Other Status: Closed Resolution: Invalid Bug Group: 8.3.1 Priority: 5 Summary: fconfigure -encoding binary -translation binary doesn't work Details: OriginalBugID: 5936 Bug Version: 8.3.1 SubmitDate: '2000-06-22' LastModified: '2000-10-25' Severity: SER Status: UnAssn Submitter: techsupp OS: Solaris OSVersion: solaris 2.6 Machine: ultra 1 FixedDate: '2000-10-25' ClosedDate: '2000-10-25' Name: P Vetter ReproducibleScript: Two problems: first one causes failure. #!/bin/sh # The backslash makes the next line a comment in Tcl exec wish "$0" ${1+"$@"} # Client socket - to - stdout converter # This version quits at received "Q". # change values in next 2 lines as appropriate set serveraddr 255.255.255.255 set serverport 8081 set s [socket $serveraddr $serverport] fconfigure $s -buffering none -encoding binary -translation binary fconfigure stdin -buffering none -encoding binary -translation binary fconfigure stdout -buffering none -encoding binary -translation binary set inchar "" set flag [eof $s] clear while {($flag == 0) && ("$inchar" != "Q") } { set inchar [read $s 1] puts -nonewline $inchar set flag [eof $s] } tcl>cli Error in startup script: bad option "-encoding": should be one of -blocking, -buffering, -buffersize, -eofchar, or -translation while executing "fconfigure $s -buffering none -encoding binary -translation binary" (file "cli" line 13) Problem 2: "fconfigure -translation binary" status reported inconsistently; Documentation hints at this but only makes sense after wasted effort. The common man is impressed that "-translation binary" flag doesn't stick like all the others. Recommend consistent status info *or* a sentence or two in the man page. % fconfigure $s -blocking 1 -buffering none -buffersize 4096 -encoding binary -eofchar {{} {}} -translation {lf lf} -peername {255.255.255.255 porter 8081} -sockname {255.255.255.255 porter 55975} % fconfigure $s -translation binary % fconfigure $s -blocking 1 -buffering none -buffersize 4096 -encoding binary -eofchar {{} {}} -translation {lf lf} -peername {255.255.255.255 porter 8081} -sockname {255.255.255.255 porter 55975} % ObservedBehavior: Problem 1: wish rejects a documented option. Strangely no error message given in interactive mode, only when executed as a shell script. Problem 2: It *appears* that the configuration change hasn't stuck. DesiredBehavior: Problem 1: no complaints, or else one that explains why the documented option is not accepted in this case. Problem 2: % fconfigure $s -blocking 1 -buffering none -buffersize 4096 -encoding binary -eofchar {{} {}} -translation {lf lf} -peername etc.... % fconfigure $s -translation binary % fconfigure $s -blocking 1 -buffering none -buffersize 4096 -encoding binary -eofchar {{} {}} -translation BINARY -peername etc... % OR some indication in the man page that -translation option is reported inconsistently. Follow-Ups: Date: 2000-Nov-15 07:05 By: dkf Comment: The first problem just sounds like you're picking up an old (8.0.*?) version of Tcl which didn't support -encoding. It is easily done... :^) I've hit the second problem before. Jeff claimed that it made no difference whether the translation was binary or lf (so long as the encoding was binary) but I remain deeply unconvinced. ------------------------------------------------------- Date: 2000-Nov-15 13:31 By: welch Comment: -binary is a synonm for {lf lf} In the user's first case, they were probably executing an old shell off their path. ------------------------------------------------------- For detailed info, follow this link: http://sourceforge.net/bugs/?func=detailbug&bug_id=119365&group_id=10894 |