summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2002-04-18 13:49:30 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2002-04-18 13:49:30 (GMT)
commit85e2515f134ae9dee84eaab360465cc92116796f (patch)
tree63c60de2e22e0b8f825bd1291f28c908e299356f
parent1b9f7ed6c59cd402cd53aee313010d341a5420be (diff)
downloadtcl-85e2515f134ae9dee84eaab360465cc92116796f.zip
tcl-85e2515f134ae9dee84eaab360465cc92116796f.tar.gz
tcl-85e2515f134ae9dee84eaab360465cc92116796f.tar.bz2
Partial resolution of Bug #536831; the comment is a bit clearer!
-rw-r--r--ChangeLog9
-rw-r--r--generic/tclCmdMZ.c12
2 files changed, 18 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index f0f32fb..b8d8616 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2002-04-18 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * generic/tclCmdMZ.c (Tcl_SubstObj): More clarification for
+ comment on behaviour when substitutions are not well-formed,
+ prompted by [Bug #536831]; alas, removing the ill-defined
+ behaviour is a lot of work.
+
2002-04-18 Miguel Sofer <msofer@users.sourceforge.net>
* generic/tclExecute.c:
@@ -296,7 +303,7 @@
2002-03-21 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * doc/expr.n: Improved documentation for ceil and floor [Bug 350535]
+ * doc/expr.n: Improved documentation for ceil and floor [Bug 530535]
2002-03-20 Don Porter <dgp@users.sourceforge.net>
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c
index 63da4d3..0f39ecb 100644
--- a/generic/tclCmdMZ.c
+++ b/generic/tclCmdMZ.c
@@ -14,7 +14,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclCmdMZ.c,v 1.66 2002/04/05 19:26:35 dgp Exp $
+ * RCS: @(#) $Id: tclCmdMZ.c,v 1.67 2002/04/18 13:49:30 dkf Exp $
*/
#include "tclInt.h"
@@ -2445,7 +2445,15 @@ Tcl_SubstObjCmd(dummy, interp, objc, objv)
* implementation by Andrew Payne. Note that if a command
* substitution returns TCL_CONTINUE or TCL_RETURN from its
* evaluation and is not completely well-formed, the results are
- * not defined.
+ * not defined (or at least hard to characterise.) This fault
+ * will be fixed at some point, but the cost of the only sane
+ * fix (well-formedness check first) is such that you need to
+ * "precompile and cache" to stop everyone from being hit with
+ * the consequences every time through. Note that the current
+ * behaviour is not a security hole; it just restarts parsing
+ * the string following the substitution in a mildly surprising
+ * place, and it is a very bad idea to count on this remaining
+ * the same in future...
*
* Results:
* A Tcl_Obj* containing the substituted string, or NULL to