diff options
author | Ruben Undheim <ruben.undheim@gmail.com> | 2018-12-20 10:40:35 +0100 |
---|---|---|
committer | Ruben Undheim <ruben.undheim@gmail.com> | 2018-12-20 10:40:35 +0100 |
commit | e7fa4837732c4cc5ef2cca4a382b3a97c6c5fc32 (patch) | |
tree | 913d2e9610bd229d0d1b2278d9e7537e9c95c1be | |
parent | 2503cd99c49f6c0c962a74339fd0c3a9931d1052 (diff) |
New upstream version 9.7.101
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | base/rsim.c | 10 |
2 files changed, 9 insertions, 3 deletions
@@ -1 +1 @@ -9.7.100 +9.7.101 diff --git a/base/rsim.c b/base/rsim.c index c09cb14..56b3ef0 100644 --- a/base/rsim.c +++ b/base/rsim.c @@ -4226,7 +4226,13 @@ private int do_stats() /* - * Shift the command left/right by 1. + * Shift the command left/right by 1. HOWEVER, never overwrite the + * command (argument 0), as otherwise the Tcl tag callback feature + * gets messed up, since it does a lookup on a table indexed by the + * command name. NOTE: This is a hack solution, as a tag callback + * function could try to look at command arguments. A proper + * solution would be to always pass the index of the argument to + * shift over, rather than shifting everything. */ void shift_args( left ) int left; @@ -4238,7 +4244,7 @@ void shift_args( left ) if( left ) { targc--; - for( ac = 0, ap = targv, wp = wildCard; ac < targc; ac++ ) + for( ac = 1, ap = targv, wp = wildCard; ac < targc; ac++ ) ap[ac] = ap[ac + 1], wp[ac] = wp[ac + 1]; } else |