diff options
-rw-r--r-- | generic/tclStringObj.c | 4 | ||||
-rw-r--r-- | tests/string.test | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index d1e709c..4afd12a 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -576,7 +576,7 @@ Tcl_GetUniChar( TclNumUtfChars(stringPtr->numChars, objPtr->bytes, objPtr->length); } if (stringPtr->numChars == objPtr->length) { - return (Tcl_UniChar) objPtr->bytes[index]; + return (unsigned char) objPtr->bytes[index]; } FillUnicodeRep(objPtr); stringPtr = GET_STRING(objPtr); @@ -632,7 +632,7 @@ TclGetUCS4( TclNumUtfChars(stringPtr->numChars, objPtr->bytes, objPtr->length); } if (stringPtr->numChars == objPtr->length) { - return (Tcl_UniChar) objPtr->bytes[index]; + return (unsigned char) objPtr->bytes[index]; } FillUnicodeRep(objPtr); stringPtr = GET_STRING(objPtr); diff --git a/tests/string.test b/tests/string.test index 66eb6ad..977e875 100644 --- a/tests/string.test +++ b/tests/string.test @@ -323,6 +323,13 @@ test string-5.20 {string index, bytearray object out of bounds} { string index [binary format I* {0x50515253 0x52}] 20 } {} +test string-5.22 {string index} -constraints testbytestring -setup { + set string string +} -body { + list [scan [$string index [testbytestring \xFF] 0] %c var] $var +} -cleanup { + unset string +} -result {1 255} proc largest_int {} { # This will give us what the largest valid int on this machine is, |