summaryrefslogtreecommitdiffstats
path: root/generic/tclBinary.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-11-19 08:57:49 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-11-19 08:57:49 (GMT)
commit14ec7c1d858d00e7c69c80c28cf599095dd3feaf (patch)
treec1bbe67b99dbfd4a521682975956b358f53f7bb2 /generic/tclBinary.c
parent72c49f69099c98bd55334dbad3d68645c72bc707 (diff)
parent8e1f957a669b2f4b84dca7e8a27f2985c0625172 (diff)
downloadtcl-14ec7c1d858d00e7c69c80c28cf599095dd3feaf.zip
tcl-14ec7c1d858d00e7c69c80c28cf599095dd3feaf.tar.gz
tcl-14ec7c1d858d00e7c69c80c28cf599095dd3feaf.tar.bz2
Merge 8.7
Diffstat (limited to 'generic/tclBinary.c')
-rw-r--r--generic/tclBinary.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/generic/tclBinary.c b/generic/tclBinary.c
index f53c707..8a3541b 100644
--- a/generic/tclBinary.c
+++ b/generic/tclBinary.c
@@ -1518,7 +1518,8 @@ BinaryScanCmd(
}
switch (cmd) {
case 'a':
- case 'A': {
+ case 'A':
+ case 'C': {
unsigned char *src;
if (arg >= objc) {
@@ -1540,10 +1541,18 @@ BinaryScanCmd(
size = count;
/*
- * Trim trailing nulls and spaces, if necessary.
+ * Apply C string semantics or trim trailing
+ * nulls and spaces, if necessary.
*/
- if (cmd == 'A') {
+ if (cmd == 'C') {
+ for (i = 0; i < size; i++) {
+ if (src[i] == '\0') {
+ size = i;
+ break;
+ }
+ }
+ } else if (cmd == 'A') {
while (size > 0) {
if (src[size - 1] != '\0' && src[size - 1] != ' ') {
break;