| Ticket UUID: | 1565751 | ||
| Title: | [TIP#275] unsigned field flag for binary scan | ||
| Type: | Patch | Created on: | 2006-09-26 13:54:33 |
| Submitter: | patthoyts | Assigned to: | patthoyts |
| Subsystem: | 12. ByteArray Object | Severity: | |
| Priority: | 5 Medium | Last modified: | 2006-10-06 21:18:40 |
| Status: | Closed | Closed by: | patthoyts |
| Resolution: | Accepted | Closed on: | 2006-10-06 14:18:40 |
| Version: | TIP Implementation | ||
| Description: | ||||
This patch adds a format field flag to mark fields to be read as unsigned. The flag must come between the type identifier and the count (if any). For instance % binary scan \xff\xff cuc a b; list $a $b 255 1- | ||||
| User Comments: | ||||
patthoyts added on 2006-09-26 20:54:33:
File Added - 195333: binary_flag.patch patthoyts added on 2006-09-29 04:31:32:
File Added - 195702: binary_flag.patch Logged In: YES user_id=202636 Ensure unsigned results from 32bit longs and wide values. Avoid caching unsigned longs to avoid confusion with signed values from the cached Tcl_Objs. Added tests. patthoyts added on 2006-09-29 04:32:06:
File Deleted - 195333: dgp added on 2006-10-02 22:49:58:
Logged In: YES
user_id=80530
Failures on LP64 system:
==== binary-29.10 Tcl_BinaryObjCmd: scan FAILED
==== Contents of test case:
catch {unset arg1 arg2}
list [binary scan \xff\xff\xff\xff\xff\xff\xff\xff iui
arg1 arg2] $arg1 $arg2
---- Result was:
2 -1 -1
---- Result should have been (exact matching):
2 4294967295 -1
==== binary-29.10 FAILED
==== binary-29.11 Tcl_BinaryObjCmd: scan FAILED
==== Contents of test case:
catch {unset arg1 arg2}
list [binary scan \xff\xff\xff\xff\xff\xff\xff\xff iiu
arg1 arg2] $arg1 $arg2
---- Result was:
2 -1 -1
---- Result should have been (exact matching):
2 -1 4294967295
==== binary-29.11 FAILED
==== binary-29.12 Tcl_BinaryObjCmd: scan FAILED
==== Contents of test case:
catch {unset arg1 arg2}
list [binary scan \x80\x00\x00\x00\x00\x00\x00\x80 iuiu
arg1 arg2] $arg1 $arg2
---- Result was:
2 128 -2147483648
---- Result should have been (exact matching):
2 128 2147483648
==== binary-29.12 FAILED
==== binary-30.10 Tcl_BinaryObjCmd: scan FAILED
==== Contents of test case:
catch {unset arg1 arg2}
list [binary scan \xff\xff\xff\xff\xff\xff\xff\xff IuI
arg1 arg2] $arg1 $arg2
---- Result was:
2 -1 -1
---- Result should have been (exact matching):
2 4294967295 -1
==== binary-30.10 FAILED
==== binary-30.11 Tcl_BinaryObjCmd: scan FAILED
==== Contents of test case:
catch {unset arg1 arg2}
list [binary scan \xff\xff\xff\xff\xff\xff\xff\xff IIu
arg1 arg2] $arg1 $arg2
---- Result was:
2 -1 -1
---- Result should have been (exact matching):
2 -1 4294967295
==== binary-30.11 FAILED
==== binary-30.12 Tcl_BinaryObjCmd: scan FAILED
==== Contents of test case:
catch {unset arg1 arg2}
list [binary scan \x80\x00\x00\x00\x00\x00\x00\x80 IuIu
arg1 arg2] $arg1 $arg2
---- Result was:
2 -2147483648 128
---- Result should have been (exact matching):
2 2147483648 128
==== binary-30.12 FAILED
==== binary-39.9 ScanNumber: no sign extension FAILED
==== Contents of test case:
catch {unset arg1}
list [binary scan
\x01\x01\x01\x02\x81\x01\x01\x01\x01\x82\x01\x01\x01\x01\x82\x01\x01\x01\x01\x81
iu5 arg1] $arg1
---- Result was:
1 {33620225 16843137 16876033 25297153 -2130640639}
---- Result should have been (exact matching):
1 {33620225 16843137 16876033 25297153 2164326657}
==== binary-39.9 FAILED
==== binary-39.10 ScanNumber: no sign extension FAILED
==== Contents of test case:
catch {unset arg1}
list [binary scan
\x01\x01\x01\x02\x81\x01\x01\x01\x01\x82\x01\x01\x01\x01\x82\x01\x01\x01\x01\x81
Iu5 arg1] $arg1
---- Result was:
1 {16843010 -2130640639 25297153 16876033 16843137}
---- Result should have been (exact matching):
1 {16843010 2164326657 25297153 16876033 16843137}
==== binary-39.10 FAILED
dgp added on 2006-10-02 23:34:40:
File Added - 196205: 1565751.patch Logged In: YES user_id=80530 Revised patch corrects those failures. patthoyts added on 2006-10-06 21:18:40:
Logged In: YES user_id=202636 Added dgp's fix and some more tests. Updated the manual page and committed. | ||||
Attachments:
- 1565751.patch [download] added by dgp on 2006-10-02 23:34:40. [details]
- binary_flag.patch [download] added by patthoyts on 2006-09-29 04:31:32. [details]
