diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-11-16 11:05:15 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-11-16 11:05:15 (GMT) |
commit | 695035081b74788abdf394ea4c031ad31bfd390c (patch) | |
tree | 655ed9d1b4809d59f9104e44b58566f181ffc9e6 /generic | |
parent | 3c7407a9c70065df9759aa768962b07a0f37df21 (diff) | |
parent | a3a070b13cb5312958d8193be0e406362776a528 (diff) | |
download | tcl-695035081b74788abdf394ea4c031ad31bfd390c.zip tcl-695035081b74788abdf394ea4c031ad31bfd390c.tar.gz tcl-695035081b74788abdf394ea4c031ad31bfd390c.tar.bz2 |
Merge 8.7
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclBinary.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/generic/tclBinary.c b/generic/tclBinary.c index 3d12e24..df4b87b 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; |